function getXmlHttpRequestObject()
{
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		return false;
	}
}
var xml_request = getXmlHttpRequestObject();
function process_journal_tick(checkbox, my_tocs_container_id)
{
	if (checkbox.checked === true) 
	{
		add_remove_journal(my_tocs_container_id, checkbox.value, false);
		
		if (checkbox.name == "journal[]")
		{
			// tick the entry in the search results if needed
	if (document.getElementById('TOC_result_journal_' + checkbox.value)!=null){
				var TOC_result_journal = document.getElementById('TOC_result_journal_' + checkbox.value);
			if (TOC_result_journal.checked === false) 
			{
				
				TOC_result_journal.checked = true;
				
			}
	}
		}
		
		else if (checkbox.name == "TOC[]")
		{
			// tick the entry in the search results if needed
			if (document.getElementById('search_result_journal_' + checkbox.value)!=null){
				var search_result_journal = document.getElementById('search_result_journal_' + checkbox.value);
			if (search_result_journal.checked === false) 
			{
				
				search_result_journal.checked = true;
				
			}
			}
		}
		
	}
	else 
	{
		add_remove_journal(my_tocs_container_id, checkbox.value, true);
		if (checkbox.name == "my_tocs[]") 
		{
			// untick the entry in the search results if needed
			if (document.getElementById('search_result_journal_' + checkbox.value)!=null){
				var search_result_journal = document.getElementById('search_result_journal_' + checkbox.value);
				if (search_result_journal.checked === true) 
			{
				search_result_journal.checked = false;
				
			}
				}
			if (document.getElementById('TOC_result_journal_' + checkbox.value)!=null){
				var TOC_result_journal = document.getElementById('TOC_result_journal_' + checkbox.value);
				if (TOC_result_journal.checked === true) 
			{
				TOC_result_journal.checked = false;
				
			}
				
				}
			
		}
		
		else if (checkbox.name == "journal[]") 
		{
			// untick the entry in the search results if needed
		if (document.getElementById('TOC_result_journal_' + checkbox.value)!=null){
			var TOC_result_journal = document.getElementById('TOC_result_journal_' + checkbox.value);
			if (TOC_result_journal.checked === true) 
			{
				TOC_result_journal.checked = false;
				
			}
		}
		}
		
		else if (checkbox.name == "TOC[]") 
		{
			// untick the entry in the search results if needed
			if (document.getElementById('search_result_journal_' + checkbox.value)!=null){
			var search_result_journal = document.getElementById('search_result_journal_' + checkbox.value);
			if (search_result_journal.checked === true) 
			{
				search_result_journal.checked = false;
				
			}
			}
		}
		
	}
}
function add_remove_journal(my_tocs_container_id, journal_id, remove)
{
	if ((xml_request.readyState == 4) || (xml_request.readyState == 0))
	{
		var post_variables = "journal=" + encodeURIComponent(journal_id);
		xml_request.open("POST", "add_remove_my_tocs.php", true);
		xml_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		if (remove === true) 
		{
			xml_request.onreadystatechange = function()
			{
				update_my_tocs(my_tocs_container_id, false);
			};
		}
		else 
		{
			xml_request.onreadystatechange = function()
			{
				update_my_tocs(my_tocs_container_id, true);
			};
		}
		if (remove === true) 
		{
			post_variables += "&remove=1";
		}
		else 
		{
			post_variables += "&remove=0";
		}
		xml_request.send(post_variables);
	}
}
function add_remove_multiple_journals(my_tocs_container_id, checkbox_name, remove)
{
	if ((xml_request.readyState == 4) || (xml_request.readyState == 0))
	{
		// get all the relevant checkboxes from the page
		var checkboxes = document.getElementsByName(checkbox_name);
		var post_variables = "";
		for (var i = 0; i < checkboxes.length; i++) 
		{
			var checkbox = checkboxes[i];
			if((checkbox.nodeType == 1) && (checkbox.tagName.toLowerCase() == "input") && (checkbox.checked))
			{
				// add the value of the checkbox to the post variables
				if (post_variables != "") 
				{
					post_variables += "&";
				}
				post_variables += "journal[]=" + encodeURIComponent(checkbox.value);
			}
		}
		if (post_variables != "") 
		{
			xml_request.open("POST", "add_remove_my_tocs.php", true);
			xml_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			if (remove === true) 
			{
				xml_request.onreadystatechange = function()
				{
					update_my_tocs(my_tocs_container_id, false);
				};
			}
			else 
			{
				xml_request.onreadystatechange = function()
				{
					update_my_tocs(my_tocs_container_id, true);
				};
			}
			if (remove === true) 
			{
				post_variables += "&remove=1";
			}
			else 
			{
				post_variables += "&remove=0";
			}
			xml_request.send(post_variables);
		}
		else 
		{
			alert("No journals ticked!");
		}
	}
}
function update_my_tocs(my_tocs_container_id, scroll_to_bottom)
{
	if (xml_request.readyState == 4) 
	{
		if(xml_request.responseText == "failure")
		{
			alert("The journal(s) could not be saved to My Tocs. Please try again.");
		}
		else
		{
			// update the my tocs area with the returned html
			var my_tocs = document.getElementById(my_tocs_container_id);
			my_tocs.innerHTML = xml_request.responseText;
			if (scroll_to_bottom === true) 
			{
				// scroll to the bottom of the div
				my_tocs.scrollTop = my_tocs.offsetHeight;
			}
		}
	}
}
function monitor_expand_item(item_id)
{
	if ((xml_request.readyState == 4) || (xml_request.readyState == 0))
	{
		var post_variables = "item=" + encodeURIComponent(item_id);
		xml_request.open("POST", "monitor_expand_items.php", true);
		xml_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xml_request.onreadystatechange = function()
		{
		};
		xml_request.send(post_variables);
	}
}
function monitor_expand_multiple_items(container_id, id_tag)
{
	if ((xml_request.readyState == 4) || (xml_request.readyState == 0))
	{
		// get the container div for the main content
		var container = document.getElementById(container_id);
		// get all the item ids inside the main content
		var items = container.getElementsByTagName(id_tag);
		var post_variables = "";
		for (var i = 0; i < items.length; i++) 
		{
			var item = items[i];
			if (item.id.substr(0, 13) == "journal_item_") 
			{
				var item_id = item.id.substr(13);
				if (post_variables != "") 
				{
					post_variables += "&";
				}
				post_variables += "item[]=" + encodeURIComponent(item_id);
			}
		}
		xml_request.open("POST", "monitor_expand_items.php", true);
		xml_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xml_request.onreadystatechange = function()
		{
		};
		xml_request.send(post_variables);
	}
}
function set_checkboxes(checkbox_name, ticked)
{
	// get all the relevant checkboxes from the page
	var checkboxes = document.getElementsByName(checkbox_name);
	for (var i = 0; i < checkboxes.length; i++) 
	{
		var checkbox = checkboxes[i];
		if ((checkbox.nodeType == 1) && (checkbox.tagName.toLowerCase() == "input")) 
		{
			checkbox.checked = ticked;
		}
	}
}
