
 var elementName;
 var currentMainContact;
 var sto = Array(1);
 var XmlHttpObj;

 function updateSiteList()
 {
 	clearTimeout(sto[sto.length-1]);
 	sto[sto.length] = window.setTimeout("updateRequester()",400);
 }

 function waitImg(on)
 {
 	if(on == 'on' || on == 'noRes')
 	{
		if(on == 'on')
		{
	 		fill = '<img src="Resources/ajax-map-loader.gif" width="16" height="16" align="absmiddle" alt="loading data" />';
	 	}
 	}
 	else
 	{
 		fill = '<img src="Resources/_clear.gif" width="16" height="16" align="absmiddle" alt="" />';
 	}
	document.getElementById('waitSpan').innerHTML = fill;
 }

 function updateRequester()
 {
 	var q = '';
	q = document.getElementById('SearchTerm').value;
	if(q.length < 2)
	{
		return;
	}
 	
 	var requestUrl = "xml_data_provider.php" + "?clientid=" + clientid  + "&SearchTerm=" + encodeURIComponent(q);
 	CreateXmlHttpObj();
 	if(XmlHttpObj)
 	{
		//waitImg('on');
 		XmlHttpObj.onreadystatechange = StateChangeHandler;
 		XmlHttpObj.open("GET", requestUrl,  true);
 		XmlHttpObj.send(null);
 	}	
 }

 function StateChangeHandler()
 {
 	if(XmlHttpObj.readyState == 4)
 	{
 		if(XmlHttpObj.status == 200)
 		{
 			waitImg('off');
 			populateResultsList(XmlHttpObj.responseXML.documentElement);
  		}
 		else
 		{
 			alert("problem retrieving data from the server, status code: "  + XmlHttpObj.status);
 		}
 	}
 	else
 	{
 	 	waitImg('on');
 	}
 }


function populateResultsList(divsNode)
{
 	var mainContactNodes = dom_getElements(divsNode, 'result');
 	textValue = GetInnerText(mainContactNodes[0]);
 	
 	if(textValue == 'NONE')
 	{
		fillText = '<table width="100%" height="20" border="0" cellpadding="0" cellspacing="0">';
		fillText += '<tr><td><span class="redfont">No results for that search.</span>';
		fillText += '</td></tr></table>';

	 	document.getElementById("ajaxresults").innerHTML = fillText; 		
 	 	document.getElementById("resulthead").innerHTML = '<div id="linktitles">Your Results:</div>';
 	 	
 	}
 	else
 	{
	 	document.getElementById("ajaxresults").innerHTML = textValue;
 	 	//document.getElementById("resulthead").innerHTML = '<div id="linktitles">Your Results:</div>';
 	 }
	waitImg('off'); 	 
 }
 

 function CreateXmlHttpObj()
 {
 	try	{ XmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP"); }
 	catch(e){ try {	XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP"); } 
 		catch(oc) { XmlHttpObj = null; } }
 	if(!XmlHttpObj && typeof XMLHttpRequest != "undefined") {
 		XmlHttpObj = new XMLHttpRequest(); }
 }

 // returns the node text value 
 function GetInnerText (node)
 {
 	if(node)
 	{
 		if (typeof node.textContent != 'undefined')
 		{
 			return node.textContent;
 		}
 		else if (typeof node.innerText != 'undefined')
 		{
 			return node.innerText;
 		}
 		else if (typeof node.text != 'undefined')
 		{
 			return node.text;
 		}
 		else
 		{
 			switch (node.nodeType)
 			{
 				case 3:
 				case 4:
 				return node.nodeValue;
 				break;
 				case 1:
 				case 11:
 				var innerText = '';
 				for (var i=0; i<node.childNodes.length; i++)
 				{
 					innerText += GetInnerText(node.childNodes[i]);
 				}
 				return innerText;
 				break;
 				default:
 				return '';
 			}
 		}
 	}
 }

 function dom_getElements(node, elt)
 {
	if(node && elt)
	{
	 	var list = node.getElementsByTagName(elt);
		return (list.length) ? list : node.getElementsByTagNameNS("*", elt);
	}
 }
 
 
 
 
// new js to populate right search results with values from the main form
 
// 1 = activity #activityselect
// 2 = material #mainmaterialselect
// 3 = sub material #submaterialselect
// 4 = city #cityselect
// 4 = LA #localauthorityselect
// 4 = subregion #subregionselect
// 4 = region #regionselect
// 5 = location
 
var MainFormFields = Array(5);
 
MainFormFields[1] = "Recycler";
MainFormFields[2] = "";
MainFormFields[3] = "";
MainFormFields[4] = "";
MainFormFields[5] = "";
 
function updateSiteListFromMainForm(formField, fieldValue)
	{
 	clearTimeout(sto[sto.length-1]);
 	sto[sto.length] = window.setTimeout("updateRequesterFromMainForm(" + formField + ", '" + fieldValue + "');",400);
	}

function repopulateFieldsOnReturn()
	{
	// refresh search box using repopulated fields
	MainFormFields[1] = document.getElementById("process").Activity.value;
	MainFormFields[2] = document.getElementById("process").MainMaterial.value;
	MainFormFields[3] = document.getElementById("process").SubMaterial.value;
	MainFormFields[5] = document.getElementById("process").location.value;
	
	switch(document.getElementById("process").location.value)
		{
		case "City":
			MainFormFields[4] = document.getElementById("process").City.value;
			break;
		case "Authority":
			MainFormFields[4] = document.getElementById("process").LocalAuthority.value;
			break;
		case "SubRegion":
			MainFormFields[4] = document.getElementById("process").SubRegion.value;
			break;
		case "Region":
			MainFormFields[4] = document.getElementById("process").Region.value;
			break;

		}
	
	updateRequesterFromMainForm(6," ");
	}
 
function updateRequesterFromMainForm(formField, fieldValue)
 	{
 	// run from onChange event attached to form contents
 	
 	var searchTerms = "";
 	
	switch(formField)
		{
		case 1:
			// activity
			MainFormFields[1] = fieldValue;
			break;
		case 2: 
			// main material: remove sub material from array
			MainFormFields[2] = fieldValue;
			MainFormFields[3] = "";
			break;
		case 3: 
			// sub material
			MainFormFields[3] = fieldValue;
			break;
		case 4:
			// location value
			MainFormFields[4] = fieldValue;			
			break;
		case 5:
			// location type
			MainFormFields[5] = fieldValue;
			break;
		case 6: //just to refresh search
			break;
		}

	
	for (i=1; i<=5; i++)
		{
		searchTerms += "search" + i + "=" + encodeURIComponent(MainFormFields[i]) + "&";
		}
 	
 	var requestUrl = "xml_data_provider_form.php" + "?clientid=" + clientid + "&" + searchTerms;

	//populate search box

 	CreateXmlHttpObj();
 	if(XmlHttpObj)
 		{
 		XmlHttpObj.onreadystatechange = StateChangeHandler;
 		XmlHttpObj.open("GET", requestUrl,  true);
 		XmlHttpObj.send(null);
 		}
 	
 	}
 