﻿// 清空下拉列表
function dropSelectOption(obj) {
	for (var i=obj.options.length-1; i>=0; i--) {obj.removeChild(obj.options[i]);}
}

function loadXML(path,isurl){
	var xmlDoc;
	if (window.ActiveXObject){
		xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
	}
	else{
		  if (document.implementation && document.implementation.createDocument) {//Firefox
			  xmlDoc = document.implementation.createDocument("","doc",null);
			  
			   XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath){  
					var x = this.selectNodes(xpath);
					if (!x || x.length < 1) return null;  
					return  x[0]; 
			   }  
			   XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath){  
					var xpe = new XPathEvaluator();  
					var nsResolver = xpe.createNSResolver( this.ownerDocument == null ?  
						this.documentElement : this.ownerDocument.documentElement);  
					var result = xpe.evaluate(xpath, this , nsResolver, 0 , null );  
					var found = [];  
					var res;  
					while (res = result.iterateNext()){
						found.push(res);
					}
					return  found;
			   }
		  }
	}
  xmlDoc.async = false;
  xmlDoc.validateOnParse = false;
  if (isurl){
  	xmlDoc.load(path);
  }
  else{
	  try{
		xmlDoc.loadXML(xmlStr);
	  }
	  catch(e){
		var oParser = new DOMParser();
		xmlDoc = oParser.parseFromString(path,"text/xml");
	  }
  }
  return xmlDoc;
}

// 将一个 xmldom 内容copy到另外一个 xmldom 中
function copyXmlRootElement(sourceXml, targerXml) {
	// 1.清除 targerXml 中的所有子节点;
	if (targerXml.childNodes.length>=1) {
		targerXml.removeChild(targerXml.lastChild);
	}
	targerXml.appendChild(sourceXml.documentElement);
}

// 将 xml 对象用指定 xsl 文件转译并插入到页面某 id 中
function transXmlFromXsl(xmlobj, xslsrc, objid) {
	var xsldoc = new ActiveXObject("Microsoft.XMLDOM");
	xsldoc.async = false;
	if(!xsldoc.load(xslsrc)){
		alert('xsl解释文件载入错误！');
		return;
	}

	var node = document.getElementById(objid);
	node.innerHTML = xmlobj.transformNode(xsldoc);
}

// 列表框选项排序后输出
function fnSortSelect(obj) {
	var AryOption = new Array(obj.length);
	for (var i=obj.length-1;i>=0;i--){
		AryOption[i]=new Array(obj.options[i].value, obj.options[i].text);
		obj.options[i] = null;
	}
	AryOption = AryOption.sort();
	for (var i=0;i<AryOption.length;i++ ){
		obj.options[obj.length]=new Option(AryOption[i][1], AryOption[i][0]);
	}
}