﻿// Ajax function

function getXmlDoc()
{
    var xmlDoc = null;

    if (window.ActiveXObject) {xmlDoc = new ActiveXObject("Microsoft.XMLDOM");}
    
    else if (document.implementation && document.implementation.createDocument) {xmlDoc = document.implementation.createDocument("","",null);}
          
    return xmlDoc;
}

function getXmlHttpObject()
{
    var xmlHttp = null;
       
    try             {xmlHttp = new XMLHttpRequest();}
    catch (e)
    {
        try         {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
        catch (e)   {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
    }
    
    return xmlHttp;
}

function loadXmlString(strXml)
{
    var xmlDoc;

    if (window.ActiveXObject) 
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        if (xmlDoc.loadXML(strXml))
        {
            //To do
        }
        else
        {
            alert(strXml + " " + xmlDoc.parseError.reason);
        }    
    }
    else if (document.implementation && document.implementation.createDocument) 
    {
       var parser = new DOMParser();
       xmlDoc = parser.parseFromString(strXml,"text/xml");
    }
    
    return xmlDoc;
}

function getNodeText(objNode)
{
    var strValue;
    
    if (objNode != null)
	{
	    if (window.ActiveXObject)
		    strValue = objNode.text;
	    else
		    strValue = objNode.textContent;
    }
    
 	return strValue;
}

function addNode(strObj,strIdAttValue,strType,strValue)
{	
	var xmlDoc = getXmlDoc();
	var objElement = xmlDoc.createElement(strObj);
	objElement.setAttribute("id",strIdAttValue);
	objElement.setAttribute("type",strType);
	var objCDATA = xmlDoc.createCDATASection(strValue);
	objElement.appendChild(objCDATA);
	return objElement;
}

function setSessionVariable(varName,varValue)
{
    var xmlDoc = getXmlDoc();
    var objNode = xmlDoc.createElement("form");
    var objParams = xmlDoc.createElement("params");
    objNode.setAttribute("request","setSessionVariable");
    objParams.appendChild(addNode("param","varName","",varName));
    objParams.appendChild(addNode("param","varValue","",varValue));
    objNode.appendChild(objParams);
    xmlDoc.appendChild(objNode);
    var xmlHttp = getXmlHttpObject();
    xmlHttp.open("POST", "/Service/dataInterfaceHub.aspx", false);
    xmlHttp.send(xmlDoc);
}

function getCombo(objCombo,strRequest,strParam)
{
    if (objCombo != null)
    {
        var strTemp = "";
        var xmlDoc = getXmlDoc();
        var objNode = xmlDoc.createElement("form");
        var objParams = xmlDoc.createElement("params");
        objNode.setAttribute("request",strRequest);
        if (strParam != null)
        {
            objParams.appendChild(addNode("param","idParam","",strParam));
            objNode.appendChild(objParams);
        }
        xmlDoc.appendChild(objNode);
        var xmlHttp = getXmlHttpObject();
        xmlHttp.onreadystatechange = function() 
        {
    	    if (xmlHttp.readyState == 4)
		    { 
	            xmlDoc = loadXmlString(xmlHttp.responseText);
	            listOptions = xmlDoc.childNodes[0].childNodes;
                for(i=0;i<listOptions.length;i++)
                {
                    objCombo.options.add(new Option(getNodeText(listOptions[i].attributes[1]),getNodeText(listOptions[i].attributes[0])));
   	            }
    	    }
        } 
        xmlHttp.open("POST", "/Service/dataInterfaceHub.aspx", true);
        xmlHttp.send(xmlDoc);
    }
}




