
var xmlhttp,alerted,isParentDoc,currentURL, closeParent,isRefresh, runsearch
var ajaxType = "";
var serverDomainPrefix = "http"+(("https:" == document.location.protocol) ? "s" : "")+"://"+greyboxPath(document.location.href) +'/';
isParentDoc = false
closeParent = false
isRefresh = false
var ajax_prefix = "ctl00_Main_";


function RunAJAX(Key,Args){
	if(Args){
		Args = "&"+Args;
	}
	
	go(serverDomainPrefix+'Admin/Code/AJAX/DMSAjaxProcess.aspx?Key='+Key+Args)
}



function parseAjaxData(xml,thisType){


	try {
		var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xml);
		}catch(e){
			try{
				var parser=new DOMParser();
				var xmlDoc=parser.parseFromString(xml,"text/xml");
				}catch(e){
					alert(e.message);
					return;
				}
		}

// get a node list of fields to iterate over
var FieldsObj = xmlDoc.getElementsByTagName("Field")

if(runsearch){
	ajaxsearchprocess(FieldsObj);
	return;
}

	try {
		var t_ = FieldsObj[0].childNodes[0].firstChild.value;
	}catch(e){
		alert('Error:\n\n'+e.message+'\n\n'+xml.substring(xml.indexOf('body'),xml.length));
		return false;
	}
	
	
for(j=0;j<FieldsObj.length;j++){

	var returnColumn = FieldsObj[j].childNodes[0].firstChild.nodeValue;
	var returnType = FieldsObj[j].childNodes[1].firstChild.nodeValue;
	valueObj = FieldsObj[j].getElementsByTagName("Value")

	if(!document.getElementById(returnColumn)){
		returnColumn = ajax_prefix + returnColumn;
	}
	if(document.getElementById(returnColumn)){
			obj = document.getElementById(returnColumn);

			switch(returnType)
			{
				case "VALUE":
					ajaxPopulate_Value(obj,valueObj);
					break;
				case "NAME/VALUE":
					ajaxPopulate_NameValue(obj,valueObj);
					break;				
				case "VALUE/VALUE":
					ajaxPopulate_ValueValue(obj,valueObj);
					break;
			} // end switch			
		} // end return column check
	} // end for j
	

} // end function


function ajaxPopulate_Value(obj,valueObj){
	
	if(obj.src){
		obj.src=valueObj[0].firstChild.nodeValue;
	}else if(obj.type=="select"||obj.type=="select-one"){
		obj.value = valueObj[0].firstChild.nodeValue;
	}else if(obj.type=="image"){
		obj.src=valueObj[0].firstChild.nodeValue;
	}else if(obj.type=="checkbox"){
		obj.checked=valueObj[0].firstChild.nodevalue;
	}else if(!obj.type){
		obj.innerHTML=valueObj[0].firstChild.nodeValue;
	}else{
		obj.value = valueObj[0].firstChild.nodeValue;
	}
}


function ajaxPopulate_ValueValue(obj,valueObj){
	if(!valueObj) return false;
	var a = valueObj[0].childNodes;
	for(j=0;j<a.length;j++){
		addOption(obj,a[j].childNodes[0].childNodes[0].nodeValue,a[j].childNodes[0].childNodes[0].nodeValue);
	}
}


function ajaxPopulate_NameValue(obj,valueObj){
	if(!valueObj) return false;
	var a = valueObj[0].childNodes;
	for(j=0;j<a.length;j++){
		addOption(obj,a[j].childNodes[0].childNodes[0].nodeValue,a[j].childNodes[1].childNodes[0].nodeValue);
	}
}


function addOption(field,name,value){
	var anOption = document.createElement("OPTION") 
	field.options.add(anOption)
	anOption.value = value;
	anOption.innerText = name;
	anOption.textContent = name;
}




function go(thisUrl,parent) {
if (xmlhttp) {


	// append time stamp
	var currentDateTime = new Date()
	thisUrl = thisUrl + '&zz='  + currentDateTime
	
	if (thisUrl.substring(0,7) != 'http://'){
		thisUrl = serverDomainPrefix+thisUrl
	}

	// add date time stamp
	  xmlhttp.open("GET", thisUrl,true);
	  xmlhttp.onreadystatechange=RSchange
	  xmlhttp.send(null)
 }
}





if (!xmlhttp && !alerted) {
 try {
		xmlhttp=new XMLHttpRequest()
  } catch (e) {
	try{
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
		} catch(e){
	}
 }
}

function RSchange() {

	if (xmlhttp.readyState==4) {
		if(xmlhttp.responseText != ''){
			if(isParentDoc){
				if(isParentDoc == true){
	  				parseAjaxData(xmlhttp.responseText,ajaxType);
					isParentDoc = false; // turn off
					closeParent = true;
				}else{
	  				parseAjaxData(xmlhttp.responseText,ajaxType);
				}
			}else{
	  			parseAjaxData(xmlhttp.responseText,ajaxType);
			}
		}
 	}
}




function RemoveOptions(FieldID){
	if(document.getElementById(FieldID)){
		var L_=document.getElementById(FieldID).options.length;
		if(document.getElementById(FieldID).options.length > -1){
			for(z=0;z<L_;z++){
				document.getElementById(FieldID).remove(0);
			}
		}
	}
}






function ajaxsearchlink(itemnumber,prefix,e)
{
	var key = (window.event) ? window.event.keyCode : e.which; 
	if(key==40){
		try{
			// focus next item
			document.getElementById('alink'+parseInt(itemnumber+1)).focus();
			// set current link to normal class
			document.getElementById('alink'+itemnumber).className='';
			// set new link to hover class
			document.getElementById('alink'+parseInt(itemnumber+1)).className='ajaxsearchOnlink';
		}catch(e){
			// does it even exist
			if(!document.getElementById('alink0')){
				//document.getElementById('ajaxsearch').style.display='none';
			}
		}
		return false;
	}else if(key==38){
		try{
			// set current link to normal class
			document.getElementById('alink'+itemnumber).className='';
			// focus next item
			document.getElementById('alink'+parseInt(itemnumber-1)).focus();
			// set new link to hover class
			document.getElementById('alink'+parseInt(itemnumber-1)).className='ajaxsearchOnlink';
		}catch(e){
			// does it even exist
			if(!document.getElementById('alink0')){
				document.getElementById('ajaxsearch').style.display='none';
			}else if(itemnumber==0){
				//document.getElementById('ajaxsearch').style.display='none';
			}
		}
		return false;
	}else if(key==13){
		// enter key submit form
		// document.forms[0].submit();
	}

	
}


function turnoffauto(id){
	var obj = document.getElementById(id);
	if(!obj){
		return false;
	}
	obj.setAttribute('autocomplete','off');
}


var ajaxIDName = "ajaxsearch";

function ajaxsearch(obj,e,idName){

	if(idName) ajaxIDname = idName;
	


	var key = (window.event) ? window.event.keyCode : e.which; 
	if(key==40){
		try{
			document.getElementById('alink0').focus();
			// set new link to hover class
			document.getElementById('alink0').className='ajaxsearchOnlink';
		}catch(e){
			//alert(e);
		}
		return false;
	}	

	var term = obj.value;
	if(obj.value==''){
	     document.getElementById(ajaxIDName).innerHTML = '';
		 //document.getElementById(ajaxIDName).style.display='none';
		 $('#'+ajaxIDname).fadeOut();
		 return;
	}
	
	
	// run ajax
	runsearch = true;
	RunAJAX("STATECITY","t="+obj.value);
	return true;
}

function ajaxsearchprocess(FieldsObj){

	try{
		var valueObj = FieldsObj[0].getElementsByTagName("Value");
	}catch(e){
		var valueObj = null;	
	}

	var obj = document.getElementById(ajaxIDname);
	

	if(!valueObj){
		//obj.style.display='none';
		if(obj.innerHTML==''){
			// only hide it if it is empty
			$('#'+ajaxIDname).fadeOut();
		}
		return;
	}else{
		$('#'+ajaxIDname).fadeIn();	
	}
	
//	obj.style.display='block';
	

	var a = valueObj[0].childNodes;
	var ret = "";
	var term = "";
	var link = "";
	ret+='<ul id="ajaxsearchul">'
	for(j=0;j<a.length;j++){
		term = a[j].childNodes[0].childNodes[0].nodeValue;
		link = a[j].childNodes[1].childNodes[0].nodeValue;
		ret+='<li><a href="#" onkeydown="return ajaxsearchlink('+j+',\'alink\',event);" id="alink'+j+'" onclick="document.getElementById(\'ajaxsearch\').style.display=\'none\';document.location.href=\''+link+'\';"><span>'+term+'</span></a></li>'
	}
	ret+= '</ul>'
	obj.innerHTML = ret;
}


