// Error Handling
function displayError(message) {throw("Error: " + message);}
	
// Interoperability between script pages when changing from http:// and http://WWW
var www = "http://www.";
var ajaxurl = document.URL;
var checkwww = ajaxurl.substring(7,10);
if (checkwww != "www") {www = "http://";}

// MAIN GATE
function shout(mode, rfielda, rfieldb, vara, varb, varc, vard, vare)
{
	var testnull = 0;
	if (rfielda == "") {rfielda = "NA";}
	if (rfieldb == "") {rfieldb = "NA";}
	if (vara == "" || vara == "NA") {vara = "NA"; testnull + 1;}
	if (varb == "" || varb == "NA") {varb = "NA"; testnull + 1;}
	if (varc == "" || varc == "NA") {varc = "NA"; testnull + 1;}
	if (vard == "" || vard == "NA") {vard = "NA"; testnull + 1;}
	if (vare == "" || vare == "NA") {vare = "NA"; testnull + 1;}
	if (testnull != 4) {  // Make sure at least one variable is set to avoid empty AJAX loops.
		var serverParams = "mode=" + mode + "&rfielda=" + rfielda + "&rfieldb=" + rfieldb + "&vara=" + vara + "&varb=" + varb + "&varc=" + varc + "&vard=" + vard + "&vare=" + vare;
		if (xmlHttp)
		{
			try
			{	
				xmlHttp.open("GET", www + "afwds.com/Scripts/CORE.php?" + serverParams, true);
				xmlHttp.onreadystatechange = returnShout;
				xmlHttp.send("null");
			}
			catch(e)
			{
				throw("Error: " + e.toString());
			}
		}
	}
}

function returnShout()
{
	if (xmlHttp.readyState == 4) 
	{
	if (xmlHttp.status == 200)
		{ 
		try 
		{
			
	var xmlResponse = xmlHttp.responseXML;
	if (!xmlResponse || !xmlResponse.documentElement)
		throw("Invalid XML Structure:\n" + xmlHttp.responseText);
	var rootNodeName = xmlResponse.documentElement.nodeName;
	if (rootNodeName == "parseerror")
		throw("Invalid XML Structure:\n" + xmlHttp.responseText);
	var xmlRoot = xmlResponse.documentElement;
	if (rootNodeName != "response" || !xmlRoot.firstChild)
		throw("Invalid XML Structure:\n" + xmlHttp.responseText);
		
	var result = xmlRoot.getElementsByTagName("result")[0].firstChild.data;
	var overflow = xmlRoot.getElementsByTagName("overflow")[0].firstChild.data;
	var auxresult = xmlRoot.getElementsByTagName("auxresult")[0].firstChild.data;
	var rfielda = xmlRoot.getElementsByTagName("rfielda")[0].firstChild.data;
	var rfieldb = xmlRoot.getElementsByTagName("rfieldb")[0].firstChild.data;
	var javaeval = xmlRoot.getElementsByTagName("javaeval")[0].firstChild.data;
	if (javaeval != "NA") {
		eval(javaeval);
	}
	if (result != "NA") {
		if (overflow != "NA") {result = result + overflow;}
		var scribe = document.getElementById(rfielda);
		scribe.innerHTML = result; 
	}
	if (auxresult != "NA") {
		var auxscribe = document.getElementById(rfieldb);
		auxscribe.innerHTML = auxresult;
	}

} catch(e) {displayError(e.toString());}	// END Try Statement
} else {displayError(xmlHttp.statusText);}	// END Status200
} 											// END ReadyState4
} 											// END Function
