<!--
// Shared AJAX javascript code

function log(content){
	var log = document.getElementById("log");
	if (log) log.innerHTML += "<br />"+content;
}


function makeAjaxRequest(url, callback_function, p1, return_xml)
{
//log('makeAjaxRequest('+url+','+callback_function+','+p1+','+return_xml+')');
   var http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType) {
           http_request.overrideMimeType('text/xml');
       }
   } else if (window.ActiveXObject) { // IE
       try {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
           try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
       }
   }

   if (!http_request) {
       alert('Unfortunately your browser doesn\'t support this feature.');
       return false;
   }
   http_request.onreadystatechange = function() {
       if (http_request.readyState == 4) {
           if (http_request.status == 200) {
               if (return_xml) {
               	  var xpr = callback_function + '(http_request.responseXML,"'+p1+'")';
               } else {
               	  var xpr = callback_function + '(http_request.responseText,'+p1+')';
               }
		eval(xpr);
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }
   http_request.open('GET', url, true);
   http_request.send(null);
}

function makeAjaxXmlPostRequest(url, XmlData, callback_function, p1)
{
//
// 2009-09-10 slh Created for address checking.  Can use to POST any data.
//
	//alert('makeAjaxXmlPostRequest('+url+',\n'+XmlData+','+callback_function+','+p1+')');
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			}
	} 
	else if (window.ActiveXObject) 
	{ 
		// IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) 
			{ }
		}
	}
	if (!http_request) 
	{
		alert('Unfortunately your browser doesn\'t support this feature.');
		return false;
	}

	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) 
		{
			if (http_request.status == 200) 
			{
				var xpr = callback_function + '(http_request.responseText,"'+p1+'")';
				eval(xpr);
			} 
			else 
			{
				alert('There was a problem with the request.(Code: ' + http_request.status + ')');
			}
		}
	}
	
	http_request.open('POST', url, true);
	http_request.send(XmlData);
}

function loadXMLDoc(dname)
{
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(dname);

		if (xmlDoc.parseError.errorCode != 0)
		{
			alert("Error in line " + xmlDoc.parseError.line +
				" position " + xmlDoc.parseError.linePos +
				"\nError Code: " + xmlDoc.parseError.errorCode +
				"\nError Reason: " + xmlDoc.parseError.reason +
				"Error Line: " + xmlDoc.parseError.srcText);
			return(null);
		}
	}
	catch(e)
	{
		dname=dname.replace('<?xml version="1.0"?>','');
		try //Firefox
		{
			var parser = new DOMParser();
			xmlDoc=parser.parseFromString(dname,"text/xml");
			if (xmlDoc.documentElement.nodeName=="parsererror")
			{
				alert(xmlDoc.documentElement.childNodes[0].nodeValue+'\n'+dname);
				return(null);
			}
		}
		catch(e) {alert(e.message)}
		}
	try
	{
		return(xmlDoc);
	}
	catch(e) {alert(e.message)}
	return(null);
} 


//===========================================================
// Function specific routines
//===========================================================
//-----------------------------------------------------------
// Address validation
//-----------------------------------------------------------
	function checkAddr(ctrl,msgDiv) {
		var c = document.getElementById(msgDiv);
		c.innerHTML = 'checking...';
		//alert(ctrl.value);
		makeAjaxXmlPostRequest('ajax_addrCheck.asp','<address>'+ctrl.value+'</address>','StoreAddress',msgDiv+'|'+ctrl.name);
	}

	function StoreAddress(result,p1)
	{
		var c;
		var ctls = p1.split('|');
		var XmlResp;
		XmlResp = loadXMLDoc(result);

		var ErrNode = XmlResp.getElementsByTagName("Error");
		var ErrCode = ErrNode[0].getElementsByTagName("Code")[0].childNodes[0].nodeValue;
		var ErrDesc = ErrNode[0].getElementsByTagName("Description")[0].childNodes[0].nodeValue;
		c = document.getElementById(ctls[0]);
		c.innerHTML = ErrDesc;

		var Block = XmlResp.getElementsByTagName("Block");
		if(Block.length > 0 && Block[0].childNodes.length > 0){
			Block = Block[0].childNodes[0].nodeValue;
			c = document.getElementById(ctls[1]);
			c.value = Block;
		}
	}

//-----------------------------------------------------------
// Url and username checking
//-----------------------------------------------------------

	function checkValue(checkType,ctrl,msgDiv) {
		// Blank message location
		var msgLocation = document.getElementById(msgDiv);
		msgLocation.innerHTML = "&nbsp;";

		if (checkType=='url') {
			var sQuery = "d=master&t=companies&c=url_name&v="+ctrl.value;
		}
		else {
			// If we have just reset the username to its original value
			// then don't bother checking it.
			if (originalUserName==ctrl.value) { return; }

			var sQuery = "d=master&t=users&c=username&v="+ctrl.value;
		}
		makeAjaxRequest("ajax.asp?mthd=exists&hnd="+msgDiv+"&"+sQuery,'page_alertMe',msgDiv,true);
	}


	function page_alertMe(result,p1) {
		var xmlDocRoot = result.documentElement;
		var handle = xmlDocRoot.getAttribute("handle");

		var xmlNode = xmlDocRoot.getElementsByTagName('found')[0];
		var ctl = document.getElementById(handle);

		if (xmlNode!=null) {
			ctl.style.color = 'Red';
			ctl.innerHTML = "&nbsp;already used!";
		}
		else {
			ctl.style.color = 'Green';
			ctl.innerHTML = "&nbsp;Available";
		}

	}



//-->