$$=function(str){return document.getElementById(str);}
//try{window.document.domain = "127.0.0.1";}catch(e){}

function create_request(){var request;try{ /* IE */if (window.ActiveXObject){request = new ActiveXObject("Microsoft.XMLHTTP");return request;};/* Mozilla, Safari,*/if (window.XMLHttpRequest){request = new XMLHttpRequest();if (request.readyState == null) {request.readyState = 1;request.addEventListener("load", function () {request.readyState = 4;if (typeof request.onreadystatechange == "function"){request.onreadystatechange();};}, false);};return request;};}catch(e){};alert("对不起，您的浏览器不支持Web的某些特性。");return null;}
function http_init(request_array, request_count){if (typeof request_array == "undefined") return -1;if (request_array.constructor.toString().toLowerCase().indexOf("array") == -1) return -1;if (isNaN(request_count)) return -1;for (var x = 0; x < request_count; x++){var request = create_request();if (null == request) return -1;request_array[x] = request;};return 0;}
function http_request(rid, url, data, callback){var request = window.conn[rid];if (!request) return null;var method = !data ? "GET" : "POST";request.onreadystatechange = function(){try{/*0 － （未初始化）还没有调用send()方法  1 － （载入）已调用send()方法，正在发送请求 2 － （载入完成）send()方法执行完成，已经接收到全部响应内容 3 － （交互）正在解析响应内容 4 － （完成）响应内容解析完成，可以在客户端调用了*/if ((4 == request.readyState) && (200 == request.status || 304 == request.status)){callback(request.responseText,url,data);request.readyState=0;request.status=0;};}catch(e){};};if(url.indexOf("?")>-1){url=url+"&random="+Math.random();}else{url=url+"?random="+Math.random();};request.open(method, url, true);request.setRequestHeader("Connection","Keep-Alive");request.setRequestHeader("Content-Type","text/html; charset=gb2312");if(method == "POST"){request.setRequestHeader("Content-Length",data.length);request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");};request.send(data);return null;}
function request_init(){var min_conn_count = 3;var conn = new Array();if (http_init(conn, min_conn_count) < 0) return alert('http init failed!');window.conn = conn;}
function request(url, data, call_back,lx){if(!window.conn){request_init();}var conn = window.conn;var x = (lx>0) ? ((lx<conn.length) ? lx : 0 ) : 0 ;for (; x < conn.length; x++){if (0 == conn[x].readyState){break;}};if (x == conn.length){var new_conn = create_request();if (!new_conn) return -1;conn[x] = new_conn;};http_request(x, url, data, call_back);return 0;}


Chf = {
	Require : /.+/,
	Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
	Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,8}(\-\d{1,5})?$/,
	Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
	Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,		//'
	Currency : /^\d+(\.\d+)?$/,
	Number : /^\d+$/,
	Zip : /^[1-9]\d{5}$/,
	QQ : /^[1-9]\d{4,8}$/,
	Integer : /^[-\+]?\d+$/,
	Double : /^[-\+]?\d+(\.\d+)?$/,
	English : /^[A-Za-z]+$/,
	Chinese :   /^[\u0391-\uFFE5]+$/,
	Username : /^[a-z]\w{3,}$/i,
	UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,		//'
	limit : function(len,min, max){
	   min = min || 0;
	   max = max || Number.MAX_VALUE;
	   return min <= len && len <= max;
	},
	LenB : function(str){
	   return str.replace(/[^\x00-\xff]/g,"**").length;
	},
	/*ID,检查方式,最小值，最大值，提示名，不为空吗*/
	Exec : function(o1,reg,min,max,Ename,NNull){
		o=(typeof o1=="string") ? $$(o1) : o1
		NNull=(NNull) ? NNull : false;
		if(!o){alert("错误:不存在["+o+"]这对象!");return false;}
		op=o.value
		if(op.length==0){
			if(NNull){
				alert(Ename+",不能为空！")
				o.focus()
				return false;
			}else{
				return true;	
			}
		}
		if(!Chf.limit(Chf.LenB(op),min,max)){
			alert(Ename+",限制长度为"+min+"-"+max+",中文为2字符，其他为1字符!")
			o.focus()
			return false;
		}
		switch(reg){
			case "Require" : 
			case "Email" : 
			case "Phone" : 
			case "Mobile" : 
			case "Url" : 
			case "Currency" : 
			case "Number" : 
			case "Zip" : 
			case "QQ" : 
			case "Integer" : 
			case "Double" : 
			case "English" : 
			case "Chinese" : 
			case "Username" : 
			case "UnSafe" : 
				reg=eval("Chf."+reg)
				break;
			case "IdCard" :
				return IsIdCard(op)
			case "date" :
				return IsDate(op)
				
		}
		if(reg.test(op)){
			return true;
		}else{
			alert(Ename+",格式不对！")
			o.focus()
		}
		return false;
	},
	IsIdCard : function(number){
	   var date, Ai;
	   var verify = "10x98765432";
	   var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
	   var area = ['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];
	   var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
	   if(re == null) return false;
	   if(re[1] >= area.length || area[re[1]] == "") return false;
	   if(re[2].length == 12){
		Ai = number.substr(0, 17);
		date = [re[9], re[10], re[11]].join("-");
	   }
	   else{
		Ai = number.substr(0, 6) + "19" + number.substr(6);
		date = ["19" + re[4], re[5], re[6]].join("-");
	   }
	   if(!this.IsDate(date, "ymd")) return false;
	   var sum = 0;
	   for(var i = 0;i<=16;i++){
		sum += Ai.charAt(i) * Wi[i];
	   }
	   Ai +=   verify.charAt(sum%11);
	   return (number.length ==15 || number.length == 18 && number == Ai);
	},
	IsDate : function(op, formatString){
		formatString = formatString || "ymd";
		var m, year, month, day;
		switch(formatString){
			case "ymd" :
				m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
				if(m == null ) return false;
				day = m[6];
				month = m[5]*1;
				year =   (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
			break;
			case "dmy" :
				m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
				if(m == null ) return false;
				day = m[1];
				month = m[3]*1;
				year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
				break;
			default :
				break;
		}
		if(!parseInt(month)) return false;
		month = month==0 ?12:month;
		var date = new Date(year, month-1, day);
		return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
		function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
	}
}

Showlist=function(s1,s2,s3,s4){
	for(i=0;i<100;i++){
		o=$$(s1+""+i)
		if(!o)break;
		o.style.display="none"
		o=$$(s1+"c_"+i)
		if(o){
			o.style.color=s4	
		}
	}
	$$(s1+""+s2).style.display=""
	$$(s1+"c_"+s2).style.color=s3
}

SH=function(str){
	o=$$(str)
	if(!o)return;
	if(o.style.display==""){
		o.style.display="none"	
	}else{
		o.style.display=""	
	}
}

