﻿
// -------
var xmlDoc;
var _soapRequest;
var _soapResponseXML;
var _request;

// -------
function LoadXmlDocument(xmlContents)
{
   var xdoc;

   if( window.ActiveXObject && /Win/.test(navigator.userAgent) )
   {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async = false;
      xmlDoc.load(xmlContents);     
      return true;
   }
   else if( document.implementation && document.implementation.createDocument )
   {
	
      return true;
      xdoc = document.implementation.createDocument("", "", null);
      xdoc.load(xmlContents);	
      xdoc.onload = function()
      {
         
         xmlDoc = xdoc;
         
      }

		
      return true;
   }
   else
   {
      return false;
   }
}

// -------
function getXmlHttp()
{   
   //get the XMLHttpRequest object for this browser.   
   _soapRequest = false;
   // branch for native XMLHttpRequest object
   if(window.XMLHttpRequest) 
   {
      try 
      {
         _soapRequest = new XMLHttpRequest();
      } 
      catch(e) 
      {
         _soapRequest = false;
      }      
   } 
   else if(window.ActiveXObject) // branch for IE/Windows ActiveX version
   {
      try 
      {
         _soapRequest = new ActiveXObject("Msxml2.XMLHTTP");
      } 
      catch(e) 
      {
         try 
         {
            _soapRequest = new ActiveXObject("Microsoft.XMLHTTP");
         } 
         catch(e) 
         {
            _soapRequest = false;
         }
       }
    }
    
}

// -------
function sendSoapPostRequest(url, host, soapAction, soapBody, callBackFunc)
{   
    var header;   
    var headerName;   
    var headerValue;   
    //the xml sent to the web service     
    var body = '' +    '<?xml version="1.0" encoding="utf-8"?>' +     
         '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '+
         'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' + 
         'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + 
             '<soap:Body>' +      
             soapBody +   
             ' </soap:Body>' +   
             ' </soap:Envelope>' ; 
    getXmlHttp();      
    //alert (_soapRequest);
    if(_soapRequest)   
    {      //once the state changes, fire the processReqChange event      
        _soapRequest.onreadystatechange = callBackFunc;            
        //send a post      
        //attach the necessary headers      
        _soapRequest.open("POST", url,true);      
        _soapRequest.setRequestHeader("Host", host)      
        _soapRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8")      
        _soapRequest.setRequestHeader("Content-Length", body.length)      
        _soapRequest.setRequestHeader("SOAPAction", soapAction)      
        //alert ('Soap Body: ' + body);
        //alert ('Soap Action: ' + soapAction);
        _soapRequest.send(body)    
    }
} 

// -------
// POST or GET AJAX request
// -------
function initiateAjaxRequest(url,responseF,xmlName,xmlData)
{
	_request=false;
	if(window.XMLHttpRequest)
	{
		try{_request=new XMLHttpRequest();
	} catch(e)
		{ _request=false; }
	}
	else if(window.ActiveXObject)
	{
	  try {  _request=new ActiveXObject("Msxml2.XMLHTTP"); }
	  catch(e) { 
	  	try{ _request=new ActiveXObject("Microsoft.XMLHTTP"); }
	  	catch(e){ _request=false; }
	  }
	}

	if(_request)
	{
	    if( responseF != null )
	    {
    		_request.onreadystatechange=function(){ if(_request.readyState==4) { if(_request.status==200) { responseF(); } else{} } };
        }

		if(xmlData==null) 
		{ 
		  _request.open("GET",url,true);
  		  _request.send("");
        }
        else
        {        
          _request.open("POST",url,true);
          _request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
          _request.send(xmlName+"="+encodeURIComponent(xmlData));
        }
    }
} 