﻿function LUCK_XML()
{
    this.xmlDoc = null;
    this.a = 100;
this.load = function(filePath)
{
    this.xmlDoc = load(filePath);
}
function load(filePath)
{
    var xmlDOC = null;
    if (window.ActiveXObject)
    {
        xmlDOC = new ActiveXObject('Msxml2.DOMDocument');
        xmlDOC.async = false;
        xmlDOC.load(filePath);
    }
    else if (document.implementation && document.implementation.createDocument)
    {
        var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET", filePath, false);
        xmlhttp.send(null);
        var xmlDOC = xmlhttp.responseXML.documentElement;
    }
    else
    {
        xmlDOC = null;
    }
    return xmlDOC;
}
this.loadXML = function(XmlDocument)
{
    this.xmlDoc = loadXML(XmlDocument);
}
function loadXML(XmlDocument)
{
    var xmlDoc = null;
    if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
        xmlDoc.loadXML(XmlDocument);
    }
    else if (document.implementation && document.implementation.createDocument)
    {
        var oParser = new DOMParser();
        var xmlDocument = oParser.parseFromString(XmlDocument, "text/xml");
        var xmlDoc = document.implementation.createDocument("", "", null);
        for (var i = 0; i < xmlDocument.childNodes.length; i++) xmlDoc.appendChild(xmlDoc.importNode(xmlDocument.childNodes[i], true));
    }
    else
    {
        xmlDoc = null;
    }
    return xmlDoc;
}
try
{
    switch (arguments.length)
    {
        case 1: this.xmlDoc = load(arguments[0]);
        break;
        case 2: loadXML(arguments[0]);
        break;
    }
}
catch (e)
{
}
this.selectNodes = function(xPath)
{
    if (this.xmlDoc == null) return [];
    return this.xmlDoc.getElementsByTagName(xPath);
}
this.selectSingleNode = function(xPath)
{
    if (this.xmlDoc == null) return null;
    var Node = null;
    var Nodes = this.selectNodes(xPath);
    if (Nodes.length > 0) Node = Nodes[0];
    return Node;
}
this.searchNodes = function(xPath, Attribute, Value)
{
    if (this.xmlDoc == null) return [];
    var retNodes = [];
    var j = 0, i = 0;
    var Nodes = this.selectNodes(xPath);
    for (i = 0; i < Nodes.length; i++) if (Nodes[i].getAttribute(Attribute) == Value) retNodes[j++] = Nodes[i];
    return retNodes;
}
this.searchNode = function(xPath, Attribute, Value)
{
    if (this.xmlDoc == null) return null;
    var Nodes = this.searchNodes(xPath, Attribute, Value);
    if (Nodes.length > 0) return Nodes[0];
    else return null;
}
this.searchNodesText = function(xPath, TagName, Value)
{
  var nodes= this.selectNodes(xPath);
  var retNode=[];
  k=0;
  for(i=0;i<nodes.length;i++)
  {
	var node=nodes[i].getElementsByTagName(TagName);
	for(j=0;j<node.length;j++)
	  if(node[j].text==Value)retNode[k++]=nodes[i];
   }
   return retNode;
}
   
}

