/*
Standard, simple AJAX functions for reuse are below.  They simply request a page,
retrieve all of it's contents, and replaces the inner HTML of an element (such as
a DIV) with the content of the page requested.
*/
var xmlHttp;

function simpleContentSwap(strUrl, strObj, strLoadingText, strLoadingImage)
{
	createXMLHttpRequest();
	
	var url = strUrl;
	var objName = strObj;
	
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = function() { simpleHtmlInsert(objName, strLoadingText, strLoadingImage); };
	xmlHttp.send(null);
} 

function simpleHtmlInsert(strElemName, strLoadingText, strLoadingImage)
{
	var objName = strElemName;
	
	docObj = eval("document.getElementById('" + objName + "')");
	
	if (xmlHttp.readyState == 1)
	{
		if (strLoadingImage != null)
			docObj.innerHTML = "<div style='text-align: center; font-size: 10px;'><img src='" + strLoadingImage + "' border='0'/><br />" + strLoadingText + "...</div>";
	}
	if (xmlHttp.readyState == 4)
	{
	
		if (xmlHttp.status == 200)
		{
			docObj.innerHTML = xmlHttp.responseText;
		}
		else
		{
			docObj.innerHTML = "<b>Error.</b>" +
				"<div style='width: 300px; margin: 10; padding: 5; background-color: #ffff97; border: 1px solid #ff8040; font-family: tahoma, verdana, arial; font-size: 11px;'>" + xmlHttp.responseText + "</div>"
		}
	} 
}

function createXMLHttpRequest()
{ 
	if (window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest)
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function getFormValues(docForm)
{
	var submitContent = '';
	var formElem;
	var lastElemName = '';
	
	for (i = 0; i < docForm.elements.length; i++)
	{
		formElem = docForm.elements[i];
		switch (formElem.type)
		{
			// Text fields, hidden form elements
			case 'text':
			case 'hidden':
			case 'password':
			case 'textarea':
			case 'select-one':
			submitContent += formElem.name + '=' + escape(formElem.value) + '&'
			break;
	
			// Radio buttons
			case 'radio':
			if (formElem.checked)
			{
				submitContent += formElem.name + '=' + escape(formElem.value) + '&'
			}
			break;
	
			// Checkboxes
			case 'checkbox':
			if (formElem.checked)
			{
				// Continuing multiple, same-name checkboxes
				if (formElem.name == lastElemName)
				{
					// Strip of end ampersand if there is one
					if (submitContent.lastIndexOf('&') == submitContent.length-1)
					{
						submitContent = submitContent.substr(0, submitContent.length - 1);
					}
					// Append value as comma-delimited string
					submitContent += ',' + escape(formElem.value);
				}
				else
				{
					submitContent += formElem.name + '=' + escape(formElem.value);
				}
				submitContent += '&';
				lastElemName = formElem.name;
			}
			break;
		}
	}
	// Remove trailing separator
	submitContent = submitContent.substr(0, submitContent.length - 1);
	return submitContent;
}

/*
End of simple AJAX functions for reuse.
Below are any custom functions not meant for specific reuse.
*/

