/**************
* Purpose: initalize ajax
* Precondition: none
* Postcondition: ajax xmlhttp object running
**************/
//variables
var xmlhttp = false; //initalize ajax
var queryString;
var lasttab; //the last tab used

//check if we're using IE
try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
if (!xmlhttp && typeof XMLHttpRequest != "undefined")
{
	xmlhttp = new XMLHttpRequest();
}
	
	/**************
	* Purpose: make an ajax get request
	**************/
	function getrequest(page, objID)
	{
		
		//change cursor
		document.body.style.cursor = 'wait';
		
		//find object
		var obj = document.getElementById(objID);
		
		//remove tinyMCE editors
		//removeTiny();

		//find the object
		var obj = document.getElementById(objID);
		obj.innerHTML = '<div id="loading" align="center"><b>Loading... please wait.</b><br/><img src="http://whiteoakstables.net/images/ajax-loader.gif" /></div>';
		
		//get information
		xmlhttp.open("GET", page);
		xmlhttp.onreadystatechange = function() {
			
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						
				//change the page
				obj.innerHTML = xmlhttp.responseText;
					
				//restore the tinyMCE editors
				//loadTiny();
				
				//change the cursor back
				document.body.style.cursor = 'default';
			}
		}
		
		//send information
		xmlhttp.send(null);
	}
	
	/**************
	* Purpose: make an ajax post request
	**************/
	function postrequest(page, objID)
	{
		//change cursor
		document.body.style.cursor = 'wait';
		
		//remove tinyMCE editors
		//removeTiny();
		
		//find the object
		var obj = document.getElementById(objID);
		obj.innerHTML = '<div id="loading" align="center"><b>Loading... please wait.</b><br/><img src="http://whiteoakstables.net/images/ajax-loader.gif" /></div>';
		
		//open the page
		xmlhttp.open("POST", page);
		
		//send the querystring headers
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		xmlhttp.send(queryString);
		
		xmlhttp.onreadystatechange = function() {
			
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
			{

				//change the page
				obj.innerHTML = xmlhttp.responseText;
					
				//restore the tinyMCE editors
				//loadTiny();
				
				//put back the cursor
				document.body.style.cursor = 'default';
			}
		}
		
		if (queryString) //reset query string
			queryString = "";
			
	}
	
	//initialize the top-level variable; also reset the variable to cover when
	//the user clicks multiple times
	function setQueryString(num)
	{
		if (num == null)
			num = 0;
			
		queryString="";
		var frm, numberElements;
		frm = document.forms[num];
		numberElements = frm.elements.length;
		
		for(var i = 0; i < numberElements; i++) {
			
				//checkbox
				if (frm.elements[i].type == "checkbox" && frm.elements[i].checked == true)
					queryString += frm.elements[i].name+"="+frm.elements[i].value+"&";
				else if (frm.elements[i].type == "checkbox" && frm.elements[i].checked == false)
					queryString += frm.elements[i].name+"=0&";
					
				//radio button
				else if (frm.elements[i].type == "radio" && frm.elements[i].checked == true)
					queryString += frm.elements[i].name+"="+frm.elements[i].value+"&";
				else if (frm.elements[i].type == "radio" && frm.elements[i].checked == false)
					queryString += frm.elements[i].name+"=0&";
					
				//submit button
				else if (frm.elements[i].type == "submit")
					queryString += frm.elements[i].name+"="+frm.elements[i].defaultValue+"&";

				//select-multiple
				else if (frm.elements[i].type == "select-multiple") {
					for (var j = 0; j < frm.elements[i].options.length; ++j) {
						if (frm.elements[i].options[j].selected) {
							queryString += frm.elements[i].name + "=" + frm.elements[i].options[j].value + "&";
						}
					}
				}

				//anything else
				else
					queryString += frm.elements[i].name+"="+frm.elements[i].value+"&";
		}
	}

	/**************
	* Purpose: make an ajax get request
	**************/
	function changePicture(img, objID, align)
	{
		
		//find object
		var obj = document.getElementById(objID);

		//find the object
		var obj = document.getElementById(objID);
		obj.innerHTML = '<br/><br/><br/><br/><br/><br/><br/><b>Loading...</b><br/><br/><img src="http://whiteoakstables.net/images/ajax-loader_small.gif" />';
		
		//get information
		xmlhttp.open("GET", img);
		xmlhttp.onreadystatechange = function() {
			
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						
				//change the page
				obj.innerHTML = '<img src="' + img + '" align="' + align + '"/>';
			}
		}
		
		//send information
		xmlhttp.send(null);
	}

	/**************
	* Purpose: make an ajax get request
	**************/
	function getrequest_auto(page, objID)
	{
		
		//find object
		var obj = document.getElementById(objID);
		
		//get information
		xmlhttp.open("GET", page);
		xmlhttp.onreadystatechange = function() {
			
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
						
				//change the page
				obj.innerHTML = xmlhttp.responseText;

				//change the cursor back
				document.body.style.cursor = 'default';
			}
		}
		
		//send information
		xmlhttp.send(null);

		setTimeout("getrequest_auto('" + page + "', '" + objID + "')", 30000);
	}

