function setcookie(name,value,year,month,day,hour,minute,second){
	var tmp=name+"="+value;

	if(year || month || day || hour || minute || second){
		var date=new Date();

		year=(year?year:date.getFullYear()).toString();
		month=(month?month:date.getMonth()).toString();
		day=(day?day:date.getDate()).toString();
		hour=(hour?hour:date.getHours()+8).toString();
		minute=(minute?minute:date.getMinutes()).toString();
		second=(second?second:date.getSeconds()).toString();
		millisecond=date.getMilliseconds().toString();

		date=new Date(year,month,day,hour,minute,second,millisecond);
	}else{
		var date=false;
	}

	if(date) tmp+=";expires="+date.toGMTString()+";";

	document.cookie=tmp+";path=/";

	cookie[name]=value;
}

// 将 Cookie 串解析并保存至全局变量 cookie 中
function fetchCookie(){
	cookie=new Array();

	var docCookie=document.cookie.split(";");
	var cookieReg=new RegExp("(\\w+)=(.*)");

	for(var i=0;i<docCookie.length;i++){
		var tmp=cookieReg.exec(ltrim(docCookie[i]));

		if(tmp!=null){
			cookie[tmp[1]]=decodeURIComponent(tmp[2]);
		}
	}
}

function ltrim(str){
	var whitespace=new String(" \t\r\n");
	var s=new String(str);
	if (whitespace.indexOf(s.charAt(0))!=-1){
		var j=0,i=s.length;
		while (j<i && whitespace.indexOf(s.charAt(j))!=-1){
			j++;
		}
		s=s.substring(j,i);
	}
	return s;
}

function rtrim(str){
	var whitespace=new String(" \t\r\n");
	var s=new String(str);
	if (whitespace.indexOf(s.charAt(s.length-1))!=-1){
		var i=s.length - 1;
		while (i >= 0 && whitespace.indexOf(s.charAt(i))!=-1){
			i--;
		}
		s=s.substring(0,i+1);
	}
	return s;
}

function trim(str){
	return rtrim(ltrim(str));
}

function http(){
	var isMsie=(navigator.appName=="Microsoft Internet Explorer")?true:false;
	var xmlHttpRequest=null;

	var headName=new Array();
	var headValue=new Array();

	var varName=new Array();
	var varValue=new Array();

	this.onStateChange=null;

	// ================================================================================================
	if(isMsie){
		try {
			xmlHttpRequest=new ActiveXObject("MSXML2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				xmlHttpRequest=false;
			}
		}
	}else{
		try {
			xmlHttpRequest=new XMLHttpRequest();
		} catch (e) {
			xmlHttpRequest=false;
		}
	}

	/**
	* 此方法接受 1 到 2 个不等的参数个数
	* @param string url 一个字符串，即请求的URL
	* @param string method 一个字符串，GET或POST
	* @return boolean
	*/
	// ================================================================================================
	this.send=function(){
		if(arguments.length==1){
			var url=arguments[0];
			var method="GET";
		}else if(arguments.length==2){
			var url=arguments[0];
			var method=arguments[1];
		}else{
			return false;
		}

		xmlHttpRequest.abort();		// 在 IE 中，此操作不可省略

		if(this.onStateChange!=null){
			xmlHttpRequest.onreadystatechange=this.onStateChange;
		}

		var data="";

		if(/GET/i.test(method) && varName.length>0){
			var variableList="";

			for(index in varName){
				variableList+="&"+varName[index]+"="+encodeURIComponent(varValue[index]);
			}

			if(variableList){
				if(new RegExp("\\?.+").test(url)){
					url=url.replace(new RegExp("(.*)\\?(.+)"),"$1?$2"+variableList);
				}else if(new RegExp("\\?").test(url)){
					url=url.replace(new RegExp("(.*)\\?"),"$1?"+variableList.substr(1));
				}else{
					url+="?"+variableList.substr(1);
				}
			}
		}

		xmlHttpRequest.open(method,url);

		if(/POST/i.test(method) && varName.length>0){
			for(index in varName){
				data+="&"+varName[index]+"="+encodeURIComponent(varValue[index]);
			}

			data=data.substr(1);

			this.setHeader("Content-Type","application/x-www-form-urlencoded");
			this.setHeader("Content-Length",data.length);
		}

		for(index in headName){
			xmlHttpRequest.setRequestHeader(headName[index],headValue[index]);
		}

		this.clear();

		xmlHttpRequest.send(data);

		return true;
	};

	// ================================================================================================
	this.busy=function(){
		if(this.getState()>0 && this.getState()<4){
			return true;
		}else{
			return false;
		}
	};

	// ================================================================================================
	this.getText=function(){
		return xmlHttpRequest.responseText;
	};

	// ================================================================================================
	this.getState=function(){
		return xmlHttpRequest.readyState;
	};

	// ================================================================================================
	this.getHeader=function(name){
		return xmlHttpRequest.getResponseHeader(name);
	};

	// ================================================================================================
	this.setHeader=function(name,value){
		if(new RegExp("^\s*$").test(name)){
			return false;
		}

		var index=headName.length;

		headName[index]=name;
		headValue[index]=value;

		return true;
	};

	// ================================================================================================
	this.setVar=function(name,value){
		if(new RegExp("^\s*$").test(name)){
			return false;
		}

		var index=varName.length;

		varName[index]=name;
		varValue[index]=value;

		return true;
	};

	// ================================================================================================
	this.setForm=function(forms){
		if(typeof(forms)=="string"){
			forms=document.forms[forms];
		}

		for(i=0;i<forms.elements.length;i++){
			if(forms.elements[i].type=="checkbox"){
				if(forms.elements[i].checked){
					this.setVar(forms.elements[i].name,forms.elements[i].value);
				}
			}else if(forms.elements[i].type=="radio"){
				if(forms.elements[i].checked){
					this.setVar(forms.elements[i].name,forms.elements[i].value);
				}
			}else{
				this.setVar(forms.elements[i].name,forms.elements[i].value);
			}
		}

		return true;
	};

	// ================================================================================================
	this.clear=function(){
		headName=new Array();
		headValue=new Array();

		varName=new Array();
		varValue=new Array();
	};
}

// ======================================================================================================
fetchCookie();

var http=new http();

var isMsie=(navigator.appName=="Microsoft Internet Explorer")?true:false;