//==========================================================
// SCRIPTING BY: Andrew Gaddis (2009)
//   (some code pieces are from various internet sources)
//==========================================================

loadinghtml = '<div class="ajaxloading"><img src="/EPO/IMG/ajaxloading.gif"><p>Loading...</p></div>';
ajaxcallback = 'none';

//------------------------------------------------------------------------------------------------
function doAJAX(results)
{
	// Input: 'results' is ID of DIV/etc to push results into.
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	xmlHttp.onreadystatechange=function()
	{
		// Note: this function determines WHAT to do when request is handled.
		//	there are more 'states' than just '4'.

		if((xmlHttp.readyState==1) || (xmlHttp.readyState==2) || (xmlHttp.readyState==3))
		{
			document.getElementById(results).innerHTML = loadinghtml;
		}

		if(xmlHttp.readyState==4)
		{
			//Output Response
			var resultstr = xmlHttp.responseText;
			document.getElementById(results).innerHTML = resultstr;
			var str = document.getElementById(results).innerHTML;
			//Run Javascript Callback
			if (ajaxcallback=='none') { /*do-nothing*/ }
			else { eval(ajaxcallback); ajaxcallback = 'none'; }
			//Evaluate Internal JavaScript
			var jxs = (0);
			var jxe = (0);
			var jss = '';
			jxs = str.indexOf('<script type="text/javascript">');
			jxe = str.indexOf('</script>');
			var startIndex = 31;
			if ((jxs<0) || (jxe<0))
			{
				//Check for Upper-Case Variation (Internet Explorer oddity)
				jxs = str.indexOf('<SCRIPT type=text/javascript>');
				jxe = str.indexOf('</SCRIPT>');
				startIndex = 29;
			}
			if ((jxs>0) && (jxe>0))
			{
				jss = str.substring((jxs+startIndex),(jxe));
			}
			else { jss = ''; }
			//Evaluate Internal Javascript (!!! WARNING: POTENTIALLY DANGEROUS !!!)
			eval(jss);
			/*NOTE:above snippet will only evaluate the FIRST script tag, any additional JS will
			not be seen or evaluated. To account for more than 1 script tag, the above code
			needs to be re-adjusted to loop, looking for more script tags and evaluating each one*/
		}
	}
	return xmlHttp;
}
//------------------------------------------------------------------------------------------------
function callAJAX(resultid,url,par)
{
	var ajax = doAJAX(resultid);
	ajax.open('POST',url,true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", par.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(par);
}
//------------------------------------------------------------------------------------------------
function doForm(formid,resultid)
{
	//SETUP VARIABLES
	var forme = document.getElementById(formid);
	var actioner = forme.action;
	var url = actioner;
	var arrlen = forme.elements.length;
	var par = '';
	var ajax = doAJAX(resultid);
	//LOOP THRU FORM PARAMETERS
	for (i=0; i<arrlen; i++)
	{
		par = par + '&' + forme.elements[i].name + '=' + forme.elements[i].value;
	}
	//SEND REQUEST
	ajax.open('POST',url,true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", par.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(par);
	//RETURN
	return false;
}
//------------------------------------------------------------------------------------------------
function procAJAX(resultID,url,par)
{
	//...Process...
	var ajax = doAJAX(resultID);
	ajax.open('POST',url,true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", par.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(par);
	//...Output...
	return false;
}
//------------------------------------------------------------------------------------------------
function loadAJAX(wait,resultID,url,par)
{
	//...Process...
	var waitNum = Number(wait);
	var resultObj = document.getElementById(resultID);
	resultObj.innerHTML = loadinghtml;
	setTimeout("procAJAX('"+resultID+"','"+url+"','"+par+"');",waitNum);
	//...Output...
	return false;
}
//------------------------------------------------------------------------------------------------
function ajaxForm(formid,resultid,action)
{
	//SETUP VARIABLES
	var forme = document.getElementById(formid);
	if (action=='') { var actioner = forme.action; }
	else { var actioner = action; }
	var url = actioner;
	try { var arrlen = forme.elements.length; } catch(e) { arrlen = (0); }
	var par = '';
	var ajax = doAJAX(resultid);
	var objresult = document.getElementById(resultid);
	//LOOP THRU FORM PARAMETERS
	for (i=0; i<arrlen; i++)
	{
		var formfieldname = forme.elements[i].name;
		var formfieldvalue = forme.elements[i].value;
		var formfieldlength = forme.elements[i].length;
		var formfieldtag = forme.elements[i].nodeName;
		var formfieldtype = forme.elements[i].type;
		if (formfieldtype=='radio') { formfieldvalue = get_radio_value(formfieldname); }
		par = par + '&' + formfieldname + '=' + formfieldvalue;
	}
	//SEND REQUEST
	objresult.style.display = '';
	ajax.open('POST',url,true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", par.length);
	ajax.setRequestHeader("Connection", "close");
	ajax.send(par);
	//RETURN
	return false;
}
//------------------------------------------------------------------------------------------------
function get_radio_value(fieldname)
{
	var objfield = document.getElementsByName(fieldname);
	var thislength = objfield.length;
	var thisvalue = '';
	for (var i=0;i<thislength;i++)
	{
		if (objfield[i].checked)
		{
			thisvalue = objfield[i].value;
		}
	}
	if (thisvalue=='') { thisvalue = 'no'; }
	return thisvalue;
}
//------------------------------------------------------------------------------------------------
function get_select_value(fieldname)
{
	var fields = document.getElementsByName(fieldname);
	var field = fields[0];
	var index = field.selectedIndex;
	var options = field.options;
	var option = options[index];
	var value = option.value;
	return value;
}
//------------------------------------------------------------------------------------------------


ajaxloadpic = new Image(32,32); 
ajaxloadpic.src = "/EPO/IMG/ajaxloading.gif";


/* ### END ### */
