﻿// JScript File

 
function GS_XML_Object() 
{ 

this.GetRequestObject= function()
        {  
            var r;    
            
            if (window.XMLHttpRequest)
            { 
                    r = new XMLHttpRequest();                   
            }    
                else if(window.ActiveXObject)
            {        
                    r = new ActiveXObject("Microsoft.XMLHTTP");         
            }       
                
            return  r;    

        };

this.GetURLResponse= function(URL) 
        {                     
            try
            {        
                var r = this.GetRequestObject();           
                r.open("GET", URL, false);          
                r.send(null);              
                return r.responseText;  
            }
            catch(e)
            {
                return 'Cannot contact service - ' + URL + e; 
            }   
        };
        
this.LoadXMLDomByXMLHTTP= function(url)  
        {
            var text = this.GetURLResponse(url);
            try //Internet Explorer
            {
                var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async="false";
                xmlDoc.loadXML(text);
                return xmlDoc;
            }
            catch(e)
            {
                try //Firefox, Mozilla, Opera, etc.
                {
                    var parser=new DOMParser();
                    var xmlDoc=parser.parseFromString(text,"text/xml");
                    return xmlDoc;
                }
                catch(e)
                {         
                    return null;
                }
           }   
        };


this.LoadUrlXMLDom= function(url)   
        {
            var x = new ActiveXObject("Microsoft.XMLDOM");
            x.async = false; 
            x.load(url);    
            return x;
        };
        
        
this.GetNodeByName= function(e,Name)  
{    
    for (i=0;i<e.childNodes.length;i++)
    {      
        if (e.childNodes.item(i).nodeName==Name)
        {
            return e.childNodes.item(i);
        }
    }    
    return null;
};



this.GetDataRow= function(x,Row)  
    {       
         return  x.childNodes[1].childNodes[Row];      
    };


this.GetDataColumnValue= function(DataRow,Col,DefaultValue)  
    {
        var v = this.GetDataColumnValue(DataRow,Col);

        if(v==null)
        {
            return  DefaultValue;
        }
        else
        {
            return  v;
        }

    };
    
    

this.GetDataColumnValue= function(DataRow,Col)
    {
            
            var DataCol; 
                   
            if (typeof(Col)=='number')
            {
                    DataCol = DataRow.childNodes[Col];
            }
                else
            {
                    DataCol = this.GetNodeByName(DataRow,Col);
            } 
                      
            return DataCol.firstChild.nodeValue;  
    };



this.GetDataValue= function(x,Row,Col) 
    {
        try
        {
          //        Dataset       Row              Column         Text Node   Value   
     
            var DataRow = this.GetDataRow(x,Row);   
            return this.GetDataColumnValue(DataRow,Col); 
        }
        catch(e)
        {
            return null;
        }

    };

 
}
 
var GS_XML  = new GS_XML_Object();
 
