function XHR_getMethod(){
	return this.method;
}

function XHR_getUrl(){
	return this.url;
}

function XHR_getDiv(){
	return this.div;
}

function XHR_getSuccess(){
	return this.success;
}

function XHR_getError(){
	return this.error;
}

function XHR(){
	this.getMethod = XHR_getMethod;
	this.getUrl = XHR_getUrl;
	this.getDiv = XHR_getDiv;
	this.getSuccess = XHR_getSuccess;
	this.getError = XHR_getError;
}


function createXHR(request_type){
  var request;
  var browser = navigator.appName;
  (!request_type) ? request_type="text/html": request_type="text/xml";  
 
  //使用IE，则使用XMLHttp对象
  if(browser == "Microsoft Internet Explorer"){
	   var arrVersions = ["Microsoft.XMLHttp", "MSXML2.XMLHttp.4.0",
		  "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp","MSXML2.XMLHttp.5.0"];
		
			for (var i=0; i < arrVersions.length; i++){ 
				try{      
					//从中找到一个支持的版本并建立XMLHttp对象	
					request = new ActiveXObject(arrVersions[i]); 
					return request;
				}catch(exception){
						//异常，创建对象实例失败
						window.alert("不能创建XMLHttpRequest对象实例。");
						return false;
				 }
			}
  }else{  
    //否则返回一个XMLHttpRequest对象
    request = new XMLHttpRequest(); 
     //有些版本的浏览器在处理服务器返回的未包含XML mime-type头部信息的内容时会报错，因此，要确保返回的内容包含text/xml信息。
    if(request.overrideMimeType){    
 　　 request.overrideMimeType(request_type);
 　 }
    return request;
  }   
}//end createXHR()



/*
chkElement 作用处理HTML 文件
method method参数可以是GET、POST或PUT 
url 参数可以是相对URL或绝对URL。
div 是标签的名称
success 正确提示
error 错误提示
*/

var xhr = new XHR();
var nothing="";
var xmlHttp = new createXHR(nothing);

function chkElement(method,url,div,success,error){

  
	if(arguments.length<4) return;
	xhr.method = method;
	xhr.url = url + '&temp=' + Math.random();
	xhr.div = div;
	xhr.success = success;
	xhr.error = error;              
	xmlHttp.open(method,url,true);
	//xmlHttp.setRequestHeader("Content-Type","text/html");
	xmlHttp.setRequestHeader("Content-Type","gb2312");
	xmlHttp.onreadystatechange = updatePage;
	xmlHttp.setRequestHeader("If-Modified-Since","0");//防止IE缓存
	xmlHttp.send(null);
}


function updatePage(){
	
	
	if(xmlHttp.readyState < 4){
		document.getElementById(xhr.getDiv()).innerHTML="<font color=green>loading</font>...";
	}
	
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
			//xmlHttp.setRequestHeader("CONTENT-TYPE","text/html;Charset=gb2312"); 			
			var response = xmlHttp.responseText;	
			//alert(response);
			if(response == 1){			
				document.getElementById(xhr.getDiv()).innerHTML=xhr.getSuccess();				
			}//response == "1"
			
			if(response == 0){				
				document.getElementById(xhr.getDiv()).innerHTML=xhr.getError();		
			}//end  response == "0"
			if(response!=0){
				if( response!=1){					
					document.getElementById(xhr.getDiv()).innerHTML=response;	
				}
				
			}// end response!="0"	
			
		}//xmlHttp.status == 200
	}// xmlHttp.readyState == 4
	
	
}//end updatePage()



/*
ReqXml 作用处理XML 文件
Method Method参数可以是GET、POST或PUT 
URL 参数可以是相对URL或绝对URL。
Fun  为状态处理函数
success 正确提示
error 错误提示
*/

function ReqXml(Method,URL,Fun) {        //主程序函数
        xmlHttp.onreadystatechange = Fun;    //判断URL调用的状态值并处理 Fun 为状态处理函数
        xmlHttp.open(Method,URL,true);   //调用XML文件
        xmlHttp.send(null);                //设置为不发送给服务器任何数据 
} 



function loadXML(method,URL,callback)
{

	xmlHttp.open(method,URL);
	xmlHttp.setRequestHeader("Content-Type","text/xml");
	xmlHttp.setRequestHeader("Content-Type","gb2312");//GBK
	xmlHttp.onreadystatechange=function(){	
	if(xmlHttp.readyState < 4){
		document.getElementById(xhr.getDiv()).innerHTML="<font color=green>loading</font>...";
	}
		if(xmlHttp.readyState!=4)return;
		callback(xmlHttp.responseXML);
	}
	xmlHttp.send(null);
}


function openXHR(method,URL,callback)
{
	
	xmlHttp.open(method,URL);
	xmlHttp.setRequestHeader("Content-Type","text/html");
	xmlHttp.setRequestHeader("Content-Type","gb2312");
	xmlHttp.onreadystatechange=function(){	
		if(xmlHttp.readyState < 4){
		document.getElementById(xhr.getDiv()).innerHTML="<font color=green>loading</font>...";
	    }
		if(xmlHttp.readyState!=4)return;
		callback(xmlHttp);		
	}
	xmlHttp.send(null);
}


function isEmail(s){ 
 	var p = /^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.){1,4}[a-z]{2,3}$/; 
 	return p.test(s);
}