
/**
 * 通过Get方式，同步获取URL的XML文档。
 *@param queryurl URL地址。
 */
function getXMLDocByURL(queryurl) {

   if(window.ActiveXObject){
	var xmldom = new ActiveXObject("Microsoft.XMLDOM");
	xmldom.async = false;
	xmldom.load(queryurl);
	var xmldoc = xmldom.documentElement;
	return xmldoc;
	}else{
	      var oXmlHttp = new XMLHttpRequest() ;
	      oXmlHttp.open( "GET", queryurl, false);
	      oXmlHttp.send(null) ; 
		  var xmlobject=oXmlHttp.responseXML;
		 
		  return xmlobject;
	}
	
	
}
/**
 *获取xml文档中的节点列表
 *@param xmldoc xmldoc文档对象
 *@param nodepath 节点路径 eg："/proposers/proposer" 
 */
function getNodeListByPath(xmldoc, nodepath) {
	var nodelist = new Array();
	nodelist = xmldoc.selectNodes(nodepath);
	return nodelist;
}
/**
 *获取xml文档中的节点
 *@param xmldoc xmldoc文档对象
 *@param nodepath 节点路径。
 */
function getNodeByPath(xmldoc, nodepath) {
	var nodeList = getNodeListByPath(xmldoc, nodepath);
	return nodeList[0];
}
/**
 *根据父节点，获取指定节点的列表。
 *@param pnode 父节点
 *@param subNodeName 子节点名称。
 */
function getSubNodeList(pnode, subNodeName) {
	return pnode.getElementsByTagName(subNodeName);
}
/**
 * 
 *@param xmldoc xmldoc文档对象
 *@param nodepath 节点路径。
 */
function getNodeTextByPath(xmldoc, nodepath) {
	var node = getNodeByPath(xmldoc, nodepath);
	return node.text;
}
/**
 *  通过节点列表，获取指定的节点属性
 *@param nodeList 节点列表
 *@param attributeName 属性名称
 */
function getAttributeByNodeList(nodeList, attributeName) {
	var arr = [];
	for (var i = 0; i < nodeList.length; i++) {
		arr.push(nodeList[i].getAttribute(attributeName));
	}
	return arr;
}
/**
 *  通过节点列表，获取节点文本
 *@param nodeList 节点列表
 */
function getNodeTextByNodeList(nodeList) {
	var arr = [];
	for (var i = 0; i < nodeList.length; i++) {
		arr.push(nodeList[i].text);
	}
	return arr;
}
/**
 * 获取XMLHttpRequest对象
 */
function getXMLRequest() {
	var http_request = false;
		//开始初始化XMLHttpRequest对象
	if (window.XMLHttpRequest) { //Mozilla 浏览器
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {//设置MiME类别
			http_request.overrideMimeType("text/xml");
		}
	} else {
		if (window.ActiveXObject) { // IE浏览器
			try {
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {
				try {
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
				}
			}
		}
	}
	if (!http_request) { // 异常，创建对象实例失败
		window.alert("\xb2\xbb\xc4\xdc\xb4\xb4\xbd\xa8XMLHttpRequest\xb6\xd4\xcf\xf3\xca\xb5\xc0\xfd.");
		return false;
	} else {
		return http_request;
	}
}
/**
 *发送请求，返回XML结果
 *@param url 要访问的地址
 *@param param 请求参数
 *@callbacl 回调函数,处理请求回应
 *@sync 是否异步 true:异步 false:同步
 *type  返回类型 text:返回文本字符串 xml:XMLDOM对象
 *sendMethod  发送方式 get or post
 */
function sendAjaxRequest(queryurl, param, callback, sync, type, sendMethod) {
	var req = getXMLRequest();
	if (req) {
		req.onreadystatechange = function () {
			if (req.readyState == 4) {
				if (req.status == 200) {
					var response;
					if (type == "text") {
						response = req.responseText;
					} else {
						if (type == "xml") {
							response = req.responseXML;
						}
					}
					callback(response);
					delete req;
					req = null;
				} else {
					if (req.status == 404) {
						alert("\xc4\xe3\xd2\xaa\xb7\xc3\xce\xca\xb5\xc4\xd2\xb3\xc3\xe6\xb2\xbb\xc4\xdc\xd5\xfd\xb3\xa3\xcf\xd4\xca\xbe");
					} else {
						alert("\xb7\xfe\xce\xf1\xc6\xf7\xb7\xa2\xc9\xfa\xd2\xec\xb3\xa3");
					}
				}
			} else {
				//alert("state: " + req.readyState);
			}
		};
		req.open(sendMethod, queryurl, sync);
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		param = encodeURI(param);
        param = encodeURI(param);   
		
		req.send(param);
	}
}


