function $(ID) {
    return document.getElementById(ID);
}
/*-- 隐藏显示层部分 --*/
function show(id){
	$(id).style.display="block"; 
}
function hidd(id){
	$(id).style.display="none"; 
}
function show_msg(n){
	var m = $('m'+n);
	if(m){
		m.style.display = "none";
	}
	var z = $('z'+n);
	if(z){
		z.style.display = "block";
	} 
}
function hidd_msg(n,msg){
	var m = $('m'+n);
	if(m){
		m.style.display="block"; 
		m.className=msg; 
	}
	var z = $('z'+n);
	if(z){
		z.style.display="none";
	} 
}
function trim(str){
	var len;
	var i,j;
	len = str.length;
	i=0;
	j=0;
	while(j<len){
		if(str.charAt(i) == " ") i++;
		else break;
		j++;
	}
	str = str.substr(i,len-i);
	len = str.length;
	i = len - 1;
	j = len - 1;
	while(j>0){
		if(str.charAt(i) == " ") i--;
		else break;
		j--;
	}
	str = str.substr(0,j+1);
	return str;
}
function isUserName(s){
	//alert("s："+s);
	var patrn=/^[a-z]{1}[a-zA-Z0-9_]{5,17}$/;
	s = s.toLowerCase();
	if(patrn.exec(s)){
		return true;
	}else{
		return false;
	}
}
function isPasswd(s){
	var patrn=/^[a-zA-Z0-9]{6,18}$/;
	if(patrn.exec(s)){
		return true;
	}else{
		return false;
	}
}

function InitAjax(){
	var http_request = false;
	
	if(window.XMLHttpRequest){
		http_request = new XMLHttpRequest();
		if(http_request.overrideMimeType){
			http_request.overrideMimeType('text/xml');
		}
	}else if(window.ActiveXObject){
		try{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){}
		}
	}
	if(!http_request){
		alert('Cannot create an XMLHTTP instance');
		return false;
	}
	return http_request;
}
function checkUser(a,id){
	var val = $(id).value;
	//alert(val);
	var msg = $('m'+a);
	if(trim(val)==""){
		msg.innerHTML =  "账号不能为空";
		hidd_msg(a,"no");
		return;
	}

	if(!isUserName(val)){
		msg.innerHTML = "账号请以字母开头，长度6~18位。可以包含数字、字母或下划线。";
		hidd_msg(a,"no");
		return;
	}

	var url = "../member/checkUser.asp";
	var str = val;
	
	var ajax = InitAjax();
	ajax.open("POST", url, true);
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("user="+encodeURIComponent(encodeURIComponent(str)).replace(/%20/g,"+"));
	ajax.onreadystatechange = function(){
		//alert((ajax.responseText));
		if(ajax.readyState == 4 && ajax.status == 200){
			var status = parseInt(ajax.responseText);
			if(!isNaN(status)){
				switch(status){
					case 11:
					var info = "你输入的账号存在非法字符";
					msg.innerHTML = info;
					hidd_msg(a,"no");
					break;
					case 12:
					var info = "账号请以字母开头，长度6~18位。可以包含数字、字母(不分大小写)或下划线。";
					msg.innerHTML = info;
					hidd_msg(a,"no");
					break;
					case 13:
					var info = "此账号已经被注册";
					msg.innerHTML = info;
					hidd_msg(a,"no");
					break;
					case 14:
					var info = "此账号可用";
					msg.innerHTML = info;
					hidd_msg(a,"yes");
					break;
					case 15:
					show_msg(1);
					break;
					default:
					var info = "此账号已经被注册";
					msg.innerHTML = info;
					hidd_msg(a,"no");
					break;
				}
			}
		}
	}
}
function checkPassWord(a,pid,pid2,nid) {
	var v1  = $(pid).value;
	var v2  = $(pid2).value;
	var vn  = $(nid).value;
	var msg = $('m'+a);
	b = a+1;
	var msg2 = $('m'+b);
	pwStrength(v1);
	
	if(v1==""){
		msg.innerHTML = "密码不能为空";
		hidd_msg(a,"no");
		return;
	}
	if(v1==vn){
		msg.innerHTML = "用户名密码不能相同";
		hidd_msg(a,"no");
		return;
	}
	
	if (!isPasswd(v1)) {
		msg.innerHTML = "密码不符合规则";
		hidd_msg(a,"no");
	} else {
		msg.innerHTML = "密码可以使用";
		hidd_msg(a,"yes");
		if (v2.length > 0
			&(v1!=v2)) {
			msg2.innerHTML = "两次输入密码不相同";
			hidd_msg(b,"no");
		}
	}
}
function pwStrength(pwd){
	O_color="pw_0";
	L_color="pw_1";
	M_color="pw_2";
	H_color="pw_3";
	if(pwd==null||pwd==''){
		Lcolor=Mcolor=Hcolor=O_color;
	}else{
		S_level=checkStrong(pwd);
		switch(S_level){
			case 0:
			Lcolor=Mcolor=Hcolor=O_color;
			break;
			case 1:
			Lcolor=L_color;
			Mcolor=Hcolor=O_color;
			break;
			case 2:
			Mcolor=M_color;
			Lcolor=Hcolor=O_color;
			break;
			case 3:
			Hcolor=H_color;
			Lcolor=Mcolor=O_color;
			break;
			case 4:
			Hcolor=H_color;
			Lcolor=Mcolor=O_color;
			break;
		}
	}
	$("strength_L").className=Lcolor;
	$("strength_M").className=Mcolor;
	$("strength_H").className=Hcolor;
	return;
}
function CharMode(iN){
	if(iN>=48 && iN <=57) return 1;
	if(iN>=65 && iN <=90) return 2;
	if(iN>=97 && iN <=122) return 4;
	else return 0;
}
function bitTotal(num){
	modes=0;
	for(i=0;i<3;i++){
		if(num & 1) modes++;
		num>>>=1;
	}
	return modes;
}
function checkStrong(sPW){
	spwlength = sPW.length;
	if (spwlength<6||spwlength>18) return 0;
	Modes=0;
	for(i=0;i<spwlength;i++){
		chmod = CharMode(sPW.charCodeAt(i));
		if(chmod==0) return 0;
		Modes|=CharMode(sPW.charCodeAt(i));
	}
	chspan = bitTotal(Modes);
	if(chspan==1){
		return 1;
	}
	if(chspan==2){
		if(spwlength>=6&&spwlength<=9) return 1;
		if(spwlength>=10&&spwlength<=13) return 2;
		if(spwlength>=14&&spwlength<=18) return 3;
	}
	if(chspan==3){
		if(spwlength>=6&&spwlength<=9) return 2;
		if(spwlength>=10&&spwlength<=13) return 3;
		if(spwlength>=14&&spwlength<=18) return 4;
	}
}
function checkPassRepeat(a,pid,pid2){
	var v1  = $(pid).value;
	var v2  = $(pid2).value;
	var msg = $('m'+a);
	if(v1.length>0){
		if(v1!=v2){
			msg.innerHTML = "两次输入密码不相同";
			hidd_msg(a,"no");
		}else{
			msg.innerHTML = "两次输入密码相同";
			hidd_msg(a,"yes");
		}
	}
}

function checkform(form){
	// UserName 18
	var un = trim(form.UserName.value);
	if(un==''){
		alert("账号不能为空,要填写!");
		form.UserName.focus();
		return false;
	}else if( /^\d.*$/.test( un ) ){
		alert("账号不能以数字开头");
		form.UserName.focus();
		return false;
	}else if(un.length<6 || un.length>18 ){
		alert("合法长度为6-18个字符");
		form.UserName.focus();
		return false;
	}else if(! /^\w+$/.test( un ) ){
		alert("账号只能包含_,英文字母，数字");
		form.UserName.focus();
		return false;
	}else if(! /^([a-z]|[A-Z])[0-9a-zA-Z_]+$/.test( un )){
		alert("账号只能英文字母开头");
		form.UserName.focus();
		return false;
	}else if(! /[0-9a-zA-Z]+$/.test( un )){
		alert("用户名只能英文字母或数字结尾");
		form.UserName.focus();
		return false;
	}

	// pwd1 18
	var pwd = trim(form.pwd1.value);
	if(pwd==''){
		alert("密码不能为空,要填写!");
		form.pwd1.focus();
		return false;
	}else if(pwd.length<6 || pwd.length>18 ){
		alert("合法长度为6-18个字符");
		form.pwd1.focus();
		return false;
	}else if(! /^[0-9a-zA-Z]+$/.test( pwd ) ){
		alert("密码只能包含英文字母，数字");
		form.pwd1.focus();
		return false;
	}

	// pwd2 18
	if(form.pwd2.value==''){
		alert("再次输入密码不能为空,要输入验证密码!");
		form.pwd2.focus();
		return false;
	}
	if(form.pwd2.value!=''&&form.pwd2.value.length>18){
		alert("您的密码长度超过了18个字符！");
		form.pwd2.focus();
		return false;
	}
	if(!compareStr(form.pwd1.value,form.pwd2.value)){
		alert("您两次输入的密码不一样^_^");
		form.pwd1.focus();
		return false;
	}
	return true;
}

