// ajax lib 
// version 8.0  09/18/2006 ConsulNet Computing Inc.
var oxmlHttp;
var sElName;
var objTarget;

function ajaxGet(url,handler )
    {
         if (url.length > 0)
         {
            var d = new Date();
            var time = d.getTime();
            oxmlHttp = null;
            if (url.indexOf("?") != -1)
                {
                    url = url + "&t=" + time;
                }
            else
                {
                    url = url + "?t=" + time;
                }
            //Create the xmlHttp object for asyncronious call
            oxmlHttp = GetXmlHttpObject(handler);
            //Send the xmlHttp get to the specified url
            xmlHttp_Get(oxmlHttp, url);
        }
        return(false);
    }

function ajaxGetToObj(url,obj)
    {
		if (url.length > 0 && obj)
		{
			objTarget=obj;
			objTarget.innerHTML = "<b>Processing the request please wait ...</b>";
			ajaxGet(url,fnRequestToEl);
		}
        return(false);
    }

function ajaxGetToEl(url,asElName)
    {
		return(ajaxGetToObj(url,document.getElementById(asElName)));
    }
/*************************************************/

function ajaxPost(url,handler,poststr)
    {
       if (url.length > 0)
       {
            var d = new Date();
            var time = d.getTime();
              if (url.indexOf("?") != -1)
                {
                    url = url + "&t=" + time;
                }
              else
                {
                    url = url + "?t=" + time;
                }
             oxmlHttp = null;
            //Create the xmlHttp object for asyncronious call
             oxmlHttp = GetXmlHttpObject(handler);
            //Send the xmlHttp POST to the specified url
            xmlHttp_Post(oxmlHttp,url,poststr);
        }
        return(false);
    }

function ajaxPostToObj(url,obj,poststr)
    {
        if (url.length > 0 && obj)
        {
            objTarget=obj;
            objTarget.innerHTML = "<b>Processing the request please wait ...</b>";
            ajaxPost(url,fnRequestToEl,poststr);
		}
		return(false);
    }

function ajaxPostToEl(url,asElName,poststr)
    {
		return(ajaxPostToObj(url,document.getElementById(asElName),poststr));
    }
/*************************************************/
    //function will fire when data is received back
function fnRequestToEl()
    {
        if (oxmlHttp.readyState == 4 || oxmlHttp.readyState == 'complete')
        {
            //Get the results
            if(oxmlHttp.status == 200)
            {
              objTarget.innerHTML = oxmlHttp.responseText;
            } 
            else
            {
              objTarget.innerHTML = "AjxLib - An error occured:" + oxmlHttp.statusText;
            } 
            delete oxmlHttp;
            oxmlHttp = null;
        }
       
        return(true);
    }

    //Send GET request
function xmlHttp_Get(xmlhttp,url)
    {
        xmlhttp.open('GET', url, true);
        xmlhttp.send(null);
    }
     //Send POST request
function xmlHttp_Post(xmlhttp,url,poststr)
    {
        xmlhttp.open('POST', url, true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", poststr.length);
        xmlhttp.setRequestHeader("Connection", "close");
        xmlhttp.send(poststr);
    }
    //Get XML HTTP object
function GetXmlHttpObject(handler)
    {
       var objXmlHttp = null;
       var isIe7 = (navigator.appVersion.indexOf("MSIE 7")!=-1 || navigator.appVersion.indexOf("MSIE 8")!=-1)?true:false;       
       if(window.XMLHttpRequest && !isIe7)
        {
           try
           {		
              objXmlHttp = new XMLHttpRequest();
			  objXmlHttp.onload = handler;
			  objXmlHttp.onerror = handler;
			  return objXmlHttp;
		   }
		   catch(e)
		   { 
		      alert('Object could not be created. Verify that active scripting and activeX controls are enabled.');
			  return;
		   }          
        }
        else if(window.ActiveXObject)
        {
            
                 var objXMLHttpNames = ['Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP'];     	
				
				   for (var i=0;i < objXMLHttpNames.length; i++) 
				   {
				    try
						{
								objXmlHttp = new ActiveXObject(objXMLHttpNames[i]);
								objXmlHttp.onreadystatechange = handler;
								return objXmlHttp;
						}
					catch(e)
						{}
					}	
		}
		else
		{
				alert('Unsupported browser detected. Please use Internet Explorer 5.5+,Mozilla FireFox,Opera 8.5+,Safari 1.2+ or Netscape 7+.');
				return;
		}
		return;
    }   
//Convert HTMLForm to  string 
function getFormData(objForm)
{
    var arrFields = new Array();
    for(var i= 0; i< objForm.elements.length; i++) 
       {
          if(objForm.elements[i].name.indexOf('__') != 0 )
          { 
              var sParam = encodeURIComponent(objForm.elements[i].name);
              if (sParam.length == 0)
              {
                sParam = encodeURIComponent(objForm.elements[i].id);
              }
              sParam += "=";
              sParam += encodeURIComponent(objForm.elements[i].value);
              arrFields.push(sParam) ;
          }
       }
   return  arrFields.join("&");    
}
//Post Form to page
function submitFormData(url,asElName,objForm)
{
  var sPostStr = getFormData(objForm);
  ajaxPostToEl(url,asElName,sPostStr);
  return true; 
}