﻿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 fav(pid,ft,rn,favpName,fpid){
	if(typeof(fpid)=='undefine'){
		fpid=0;
	}
	var url = "./fav.do";
	var parameters = "ac=saveFavProduct4AJAX";
	parameters += "&productId="+pid;
	parameters += "&productColorId="+0;
	parameters += "&favType="+ft;
	parameters += "&recommendNum="+rn;
	parameters += "&fpid="+fpid;
	url += "?"+parameters;
	if(1 === ft){
		$('vcImg').src = "AuthImg";
		showemail.show();
		new sendRequest(url,parameters,function(){});
		var oo = $("pidofmail");
		oo.value=pid;
		insertFigure();
	}else if(-2 === ft){//del fav
		var at = $("alert-title");
		at.innerText="操作信息";
		var ac = $("alert-content");
		ac.innerHTML="<li><img src=\"images/ajaxloading.gif\" style=\"vertical-align:middle\" \/> 删除中...</li>";
		var ab = $("alert-button");
		ab.innerHTML="";
		showalert.show();		
		new sendRequest(url,parameters,callbackdel);
	}else{
		var str="";
		switch(ft){
		case 2:str="--列入后备队";break;
		case 3:str="--不太感兴趣";break;
		case 4:str="--呆会就考虑";break;
		default:str="";break;
		}
		var at = $("alert-title");
		at.innerText="操作结果";
		var ac = $("alert-content");
		ac.innerHTML="<li><b>"+unescape(favpName)+"</b></li><li>已成功放入收藏夹"+str+"</li><li>查看请登录腾龙管理系统“我的收藏夹”。<li>";
		showalert.show();		
		new sendRequest(url,parameters,callbacktt);
	}
}
function callbackdel(data){
	if (data == 1 ){
		insertFigure();
	}
	var args = location.search;
 	if("ac=listFav"==args.substr(1,10)){
 		location.href=location.href;
 	}
}
function callbacktt(data){
	insertFigure();
	var args = location.search;
 	if("ac=listFav"==args.substr(1,10)){ 		
 		location.href=location.href;
 	}
}