function createRequest() {
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = false;
			} 
		}
	}
	return request;
}
function sendRequest(urlpath,parameters,callbackmethod) {
	this.posturl = urlpath;
	this.callbak = callbackmethod;
	this.param   = parameters;
	this.ajaxobj = createRequest();
	this.reqProcess();
}
sendRequest.prototype.reqProcess = function () {
	if (this.ajaxobj) {
		var instanceOfTicker = this;
		this.ajaxobj.onreadystatechange = function () {
			instanceOfTicker.initialize();
		};		
		var submitURL = this.posturl;
		this.ajaxobj.open("post", submitURL, true);	
		this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.ajaxobj.send(this.param);
	}
};
sendRequest.prototype.initialize = function () {
	var retext = "";
	switch (this.ajaxobj.readyState){
		case 0:	//对象已建立，但是尚未初始化（尚未调用open方法）
			retext = "正在初始化...";
			//this.callbak(retext);
			break;
		case 1:	//对象已建立，尚未调用send方法
			retext = "初始化完成...";
			//this.callbak(retext);
			break;
		case 2: //send方法已调用，但是当前的状态及http头未知
			retext = "开始发送数据...";
			//this.callbak(retext);
			break;
		case 3: //已接收部分数据，因为响应及http头不全，通过responseBody和responseText获取部分数据会出现错误
			retext = "数据传送中...";
			//this.callbak(retext);
			break;
		case 4: //数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
			//retext = "处理完成...";
			if (this.ajaxobj.status == 200){
				retext = this.ajaxobj.responseText;
				this.callbak(retext);
			}
			else{
				this.reqProcess();
				//setTimeOut("this.reqProcess()",10*1000);
			}
			break;
		default: //未知状态
			retext = this.ajaxobj.readyState + " 未知状态";
			//this.callbak(retext);
			break;
	}
};

function createXMLHttpRequest() {
	var request = false;
	if(window.XMLHttpRequest) {
		request = new XMLHttpRequest();
		if(request.overrideMimeType) {
			request.overrideMimeType('text/xml');
		}
	} else if(window.ActiveXObject) {
		var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
		for(var i=0; i<versions.length; i++) {
			try {
				request = new ActiveXObject(versions[i]);
				if(request) {
					return request;
				}
			} catch(e) {
				//alert(e.message);
			}
		}
	}
	return request;
} 
function sendAjaxGet(url,handler){
	req = createXMLHttpRequest();
	req.onreadystatechange = callback;
	req.open("get",url);
	req.send(null);
	function callback(){	 
		//var list = '{}';
		if(req.readyState == 4){
			if(req.status == 200){
				var list = req.responseText;
				handler(eval('('+list+')'));
				
			}else
				alert("服务器页面错误！");	
		}		
	}
}
toQueryString = function(obj){
	var queryString = [];
	for (var property in obj) queryString.push(encodeURIComponent(property) + '=' + encodeURIComponent(obj[property]));
	return queryString.join('&');
}; 
function $(idstr) {
	if (null == idstr)
		return null;
	return document.getElementById(idstr);
}
function jiaq_q(a){if(a.className!="au1")a.className="au1";else a.className="au2";}
function shij_j(a){if(a.className!="an1")a.className="an1";else a.className="an2";}


function ajaxcenter(typeid,returntextid,proid){
	var url = "/PublicCount.aspx";
	var parameters = "ac=saveFavProduct4AJAX";
	parameters += "&proid="+proid;
	parameters += "&typeid="+typeid;
	parameters += "&returntextid="+returntextid;	
	url += "?"+parameters;		
	$("SendAjaxUrl").value=url
	new sendRequest(url,parameters,callbackc);


}
function callbackdel(data){
	if (data == 1 ){
		insertFigure();
	}
	var args = location.search;
 	if("ac=listFav"==args.substr(1,10)){
 		location.href=location.href;
 	}
}
function callbackc(data){
	var GetThiAjaxUrl=$("SendAjaxUrl").value
	var typeid=Number(ajaxquery.QueryString(GetThiAjaxUrl,"typeid"))
	switch (typeid){

		case 1:	//酒店推荐与非推荐统计
		var returntextid=ajaxquery.QueryString(GetThiAjaxUrl,"returntextid")
		$(returntextid).innerHTML=data
			break;
		case 2: //酒店推荐与非推荐统计未知
		var returntextid=ajaxquery.QueryString(GetThiAjaxUrl,"returntextid")
		$(returntextid).innerHTML=data	
		break;
		//var returntextid=ajaxquery.QueryString(GetThiAjaxUrl,"returntextid")
		//$(returntextid).innerHTML=data
			//break;
		case 6: //验证手机是否已经注册
	
		var returntextid=ajaxquery.QueryString(GetThiAjaxUrl,"returntextid")
		if(data=="false")
		{$(returntextid).innerHTML="<font color=#000>赶快去注册会员拿奖金吧>> <a href='/user/myProfile.aspx?action=initreg&nowurl="+escape(window.location)+"'><font color=#ff0000>会员注册--</font></a>！^_^不注册会员也可以直接预订！</font>"}
		if(data=="true")
		{$(returntextid).innerHTML="<font color=#000>尊敬的会员您好！感谢您的再次预订>><a href='/user/myProfile.aspx?action=initlogin&nowurl="+escape(window.location)+"'><font color=#ff0000>点我登录--</font></a>后预订积累奖金哦！"}
		
		if(data=="loginpass")
		{$(returntextid).innerHTML="<font color=#ff0000>尊敬的会员您好！感谢您的预订。</font>"}		
		break;
		
		case 7: //验证手机是否已经注册
	
		var returntextid=ajaxquery.QueryString(GetThiAjaxUrl,"returntextid")
		if(data=="true")
		{$(returntextid).innerHTML="<font color=#ff0000>会员自动注册已经成功预订！正在刷新订单……</font>";location.reload()}
		else
		{$(returntextid).innerHTML=data}
		break;
		default: //未知状态
			//retext = this.ajaxobj.readyState + " 未知状态";
			//this.callbak(retext);
	    break;
	}	
	
}

var ajaxquery = {
 QueryString : function(thisurl,query) {
 var uri = thisurl;
 var re = new RegExp("" +query+ "\=([^\&\?]*)", "ig");
 return ((uri.match(re))?(uri.match(re)[0].substr(query.length+1)):null);
 }
}
