/*****************************************************************
** Common JavaScript AJAX Library
*****************************************************************/


// Utility function to obtain a valid XMLHttpRequest object.

    var XMLHttpRequestObject;
    if (window.ActiveXObject)
    {
        try
        {
           XMLHttpRequestObject= new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e)
        {
           XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
    else
	   { 
        XMLHttpRequestObject = new XMLHttpRequest(); 
		XMLHttpRequestObject.overrideMimeType("text/xml")	}
		
		
	var XMLHttpRequestObject2;
    if (window.ActiveXObject)
    {
        try
        {
           XMLHttpRequestObject2= new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e)
        {
           XMLHttpRequestObjec2t = new ActiveXObject("Msxml2.XMLHTTP");
        }
    }
    else
	   { 
        XMLHttpRequestObject2 = new XMLHttpRequest(); 
		XMLHttpRequestObject2.overrideMimeType("text/xml")	}
  
/* Common values for the ReadyState of the XMLHttpRequest object */
var READYSTATE_UNINITIALIZED = 0;
var READYSTATE_LOADING = 1;
var READYSTATE_LOADED = 2;
var READYSTATE_INTERACTIVE = 3;
var READYSTATE_COMPLETE = 4;

/* Common values for HTTP status codes */
var HTTPSTATUS_OK = 200;

function transform(xslt,newXml) 
{
		 if(XMLHttpRequestObject) {
          var obj = document.getElementById('divTransform'); 
          XMLHttpRequestObject.open("Get", xslt); 

          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject.status == HTTPSTATUS_OK) { 
               var xsltDoc = XMLHttpRequestObject.responseXML; 
			  
			  // if firefox
			  if(XSLTProcessor){
			   var xsltProc  = new XSLTProcessor();
			   xsltProc.importStylesheet(xsltDoc); 
			   obj.appendChild(xsltProc.transformToFragment(newXml,document));
			  }
        } 
          } 

          XMLHttpRequestObject.send(null); 
        }



}

function postSoap(webService,soapEnvelope,soapAction,divID,xslt) 
     { 
        if(XMLHttpRequestObject) {
          var obj = document.getElementById(divID); 
          XMLHttpRequestObject.open("POST", webService,false); 
		 
		  XMLHttpRequestObject.setRequestHeader('Content-Type',
		  	'text/xml');
		  
		  XMLHttpRequestObject.setRequestHeader('SOAPAction',soapAction);
          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject.status == HTTPSTATUS_OK) { 
			  var newP = document.createElement("p");
			  var newText = document.createTextNode( XMLHttpRequestObject.responseText); 
			  var fred = XMLHttpRequestObject.responseXML ;
			//  transform(xslt,fred) ;
			  newP.appendChild(newText);
			  obj.appendChild(newP); }
  
          } 
		
          XMLHttpRequestObject.send(soapEnvelope); 
		 
        }
		 
      }


function createSession(dataSource) 
      { var guid ;
        if(XMLHttpRequestObject) {
          
          XMLHttpRequestObject.open("Get", dataSource); 

          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject.status == HTTPSTATUS_OK) {
             var response = XMLHttpRequestObject.responseXML; 
			 guid = response.getElementsByTagName('sessionid')[0].firstChild.data;
            
            } 
          } 

          XMLHttpRequestObject.send(null); 
        }
        return guid ;
      }
function getData(dataSource, divID) 
      { 
        if(XMLHttpRequestObject) {
			
          var obj = document.getElementById(divID); 
		    XMLHttpRequestObject.open("Get", dataSource); 
		    XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject.status == HTTPSTATUS_OK) {
             obj.innerHTML = XMLHttpRequestObject.responseText; 
             
            } 
          } 

          XMLHttpRequestObject.send(null); 
        }
       
      }


function getData2(dataSource, divID) 
      { 
        if(XMLHttpRequestObject2) {
          var obj = document.getElementById(divID); 
          XMLHttpRequestObject2.open("Get", dataSource); 

          XMLHttpRequestObject2.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject2.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject2.status == HTTPSTATUS_OK) {
             obj.innerHTML = XMLHttpRequestObject2.responseText; 
            // obj.innerHTML = "<p> humm this works</p>" ;
            } 
          } 

          XMLHttpRequestObject2.send(null); 
        }
       
      }

function postData(dataSource, divID,data) 
      { 
        if(XMLHttpRequestObject) {
          var obj = document.getElementById(divID); 
          XMLHttpRequestObject.open("POST", dataSource,true); 
		  XMLHttpRequestObject.setRequestHeader('Content-Type',
		  	'application/x-www-form-urlencoded');
          XMLHttpRequestObject.onreadystatechange = function() 
          { 
            if (XMLHttpRequestObject.readyState == READYSTATE_COMPLETE && 
              XMLHttpRequestObject.status == HTTPSTATUS_OK) { 
			 
			    obj.innerHTML = '';
			    var newP = document.createElement("p");
			    var newText = document.createTextNode( XMLHttpRequestObject.responseText); 
			 
			  newP.appendChild(newText);
			  obj.appendChild(newP); 
			
    
            } 
          } 

          XMLHttpRequestObject.send(data); 
		  alert( XMLHttpRequestObject.status + XMLHttpRequestObject.readyState);
        }
      }

// mozXPath [http://km0ti0n.blunted.co.uk/mozxpath/] km0ti0n@gmail.com
// Code licensed under Creative Commons Attribution-ShareAlike License 
// http://creativecommons.org/licenses/by-sa/2.5/
if( document.implementation.hasFeature("XPath", "3.0") )
{
	XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
	{
		if( !xNode ) { xNode = this; } 

		var oNSResolver = this.createNSResolver(this.documentElement)
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++)
		{
			aResult[i] =  aItems.snapshotItem(i);
		}
		
		return aResult;
	}
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
	{
		if( !xNode ) { xNode = this; } 

		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 )
		{
			return xItems[0];
		}
		else
		{
			return null;
		}
	}

	Element.prototype.selectNodes = function(cXPathString)
	{
		if(this.ownerDocument.selectNodes)
		{
			return this.ownerDocument.selectNodes(cXPathString, this);
		}
		else{throw "For XML Elements Only";}
	}

	Element.prototype.selectSingleNode = function(cXPathString)
	{	
		if(this.ownerDocument.selectSingleNode)
		{
			return this.ownerDocument.selectSingleNode(cXPathString, this);
		}
		else{throw "For XML Elements Only";}
	}

}