
/** zhang jinhao 2009-09-23 **/
//支持不同浏览器
function GetXmlHttpObject() {
	var xmlHttp = null;
	try {
    // Firefox, Opera 8.0+, Safari 
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) {
    // Internet Explorer
		try {
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}
function loadPage(url, request, container, show_loading) {
	if (container == null) {
		container = _defualMethod;
	}
	ajaxLoadPage(url, request, "post", container, true, show_loading);
}
function _defualMethod(res) {
}

//ajax请求服务器
//url 请求地址
//request 请求参数  格式:name=张三&password=123456
//method 请求方式:post,get
//container 响应方法 带参  如  container(res)
//asynchronism 是否进行异步操作（true or false）
function ajaxLoadPage(url, request, method, container, asynchronism, show_loading) {
	url=encodeURI(url);
	request=encodeURI(request);
	method = method.toUpperCase();
	var loading_msg = "loading";//the text shows on the container on loading.
	var _client_browser = 0;
	var loader = GetXmlHttpObject();//require Cross-Browser XMLHttpRequest
	if (loader == null) {
		alert("\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301AJAX\uff01");
		return;
	}
	if (method == "GET") {
		urls = url.split("?");
		if (urls[1] == "" || typeof urls[1] == "undefined") {
			url = urls[0] + "?" + request;
		} else {
			url = urls[0] + "?" + urls[1] + "&" + request;
		}
		request = null;//for GET method,loader should send NULL
	}
	loader.open(method, url, asynchronism);
	if (method == "POST") {
		loader.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	} else {
		loader.setRequestHeader("Content-Type", "text/html;charset=utf-8");
	}
	loader.onreadystatechange = function () {
		_client_browser = 1;
		var demo = loader.readyState;
		if (demo == 1) {
			if (show_loading != null && show_loading) {
				try {
					diyLoading();
				}
				catch (e) {
				}
			} else {
				container(loading_msg);
			}
			return;
		}
		if (demo == 4) {
			if (show_loading != null && show_loading) {
				try {
					_loadingNone();
				}
				catch (e) {
				}
			}
			var res = loader.responseText;
			if (res.indexOf("<html>") != -1) {
				try {
					window.parent.location.href = "/";
				}
				catch (e) {
					window.location.href = "/";
				}
			} else {
				container(res);
			}
		}
	};
	loader.send(request);
	if (!asynchronism && _client_browser == 0) {
		var res = loader.responseText;
		if (res.indexOf("<html>") != -1) {
			try {
				window.parent.location.href = "/index/login.htm";
			}
			catch (e) {
				window.location.href = "/index/login.htm";
			}
		} else {
			container(res);
		}
	}
}

//拼接表单参数
function formToRequestString(form_obj) {
	var query_string = "";
	var and = "";
	for (i = 0; i < form_obj.length; i++) {
		e = form_obj[i];
		if (e.name != "") {
			if (e.type == "select-one") {
				try {
					element_value = e.options[e.selectedIndex].value;
				}
				catch (e) {
				}
			} else {
				if (e.type == "checkbox" || e.type == "radio") {
					if (!e.checked) {
						continue;
					}
					element_value = e.value;
				} else {
					element_value = e.value;
				}
			}
			query_string += and + e.name + "=" + element_value.replace(/\&/g, "%26");
			and = "&";
		}
	}
	return query_string;
}

//表单提交方法
//form_obj  表单对象
//container 响应方法 带参  如  container(res)
function ajaxFormSubmit(form_obj, container, show_loading) {
	ajaxLoadPage(form_obj.getAttributeNode("action").value, formToRequestString(form_obj), "post", container, true, show_loading);
}
function loadXMLDoc(text) {
	try {	//Internet Explorer
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = "false";
		xmlDoc.loadXML(text);
		return xmlDoc;
	}
	catch (e) {
		try { //Firefox, Mozilla, Opera, etc.
			parser = new DOMParser();
			xmlDoc = parser.parseFromString(text, "text/xml");
			return xmlDoc;
		}
		catch (e) {
			alert(e.message);
		}
	}
	return null;
}


