﻿var xmlhttp;
if(window.ActiveXObject)
{
    var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
var xmlhttp1;
if(window.ActiveXObject)
{
    var xmlhttp1=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
    xmlhttp1=new XMLHttpRequest();
}
var inputstate =new Array(false,false,false,false,false);
var inputcount=5;
var ifapprove=true;

function getfocus(sender)
{
	sender.style.background="#E1E1E1";
}

function losefocus(sender)
{
	sender.style.background="#E8E8E8";
	if(sender.value=="")
	{
		document.getElementById(sender.name+"Error").innerHTML="<font color=red>*</font>";
		return false;
	}
	else
	{
		//document.getElementById(sender.name+"Error").innerHTML="*";
	}
	return true;
}

function checksubmit()
{
	var i;
	var flag=true;
	for(i=0;i<inputcount;i++)
	{
		if(!inputstate[i])
		{
			flag=false;
			break;
		}
	}
	document.getElementById("registerSubmit").disabled=!flag;
	return flag;
}

function checkregisterusernameexist(data)
{
	var url;
    url="../stu/registercheck.asp?type=1&key="+data;
    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange=stateChange;
    xmlhttp.send(null);
}

function stateChange()
{
	var objerror=document.getElementById("registerUsernameError");
    if(xmlhttp.readyState==4&&xmlhttp.status==200)
    {
        data=xmlhttp.responseText;
        if(data==1)
		{
			objerror.innerHTML="<font color=green>Right</font>";
			inputstate[0]=true;
			checksubmit();
		}
		else
		{
			objerror.innerHTML="<font color=red>Used</font>";
			inputstate[0]=false;
		}
    }
	else
	{
		objerror.innerHTML="<font color=red>Checking……</font>";
	}
}

function checkregisterusername()
{
	var usernamereg=/^[a-zA-Z0-9_]{6,16}$/;
	var objusername=document.getElementById("registerUsername");
	var objerror=document.getElementById("registerUsernameError");
	if(!objusername.value.match(usernamereg))
	{
		objerror.innerHTML="<font color=red><br />The username should be a combination of 6 to 16 characters, numbers and/or underscore.</font>";
		inputstate[0]=false;
		checksubmit();
		return false;
	}
	else
	{
		inputstate[0]=true;
		checkregisterusernameexist(objusername.value);
	}
	checksubmit();
	return true;
}

function checkpassword()
{
	var passwordreg=/^[a-zA-Z0-9_\!\@\#\$\%\^\&\*\(\)\_\+\-\=\'\"\;\:\[\{\]\}\\\|\.\>\,\<\/\?\`\~]{6,16}$/;
	var objinput=document.getElementById("registerPassword");
	var objerror=document.getElementById("registerPasswordError");
	if(!objinput.value.match(passwordreg))
	{
		objerror.innerHTML="<font color=red><br />The password should be a combination of 6 to 16 characters, numbers and/or signs.</font>";
		inputstate[1]=false;
		checksubmit();
		return false;
	}
	else
	{
		inputstate[1]=true;
		objerror.innerHTML="<font color=green>Right</font>";
	}
	checksubmit();
	return true;
}

function checkpasswordstrength()
{
	var objinput=document.getElementById("registerPassword");
	var pwd=objinput.value;
	var i;
	var reg1=/[a-zA-Z]{1}/;
	var reg2=/[0-9]/;
	var count=new Array(0,0,0);
	var bgc=new Array("#e8e8e8","#ff0000","#ffff00","#00ff00");
	var strength=0;
	if(checkpassword())
	{
		for(i=0;i<pwd.length;i++)
		{
			if(pwd.substring(i,i+1).match(reg1))
			{
				count[0]++;
			}
			else if(pwd.substring(i,i+1).match(reg2))
			{
				count[1]++;
			}
			else
			{
				count[2]++;
			}
		}
		for(i=0;i<3;i++)
		{
			strength+=(count[i]>0)?1:0;
		}
		for(i=1;i<=3;i++)
		{
			if(strength>=i)
			{
				document.getElementById("fps"+i).style.background=bgc[i];
			}
			else
			{
				document.getElementById("fps"+i).style.background=bgc[0];
			}
		}
	}
	else
	{
		for(i=1;i<=3;i++)
		{
				document.getElementById("fps"+i).style.background=bgc[0];	
		}
	}
}

function checkpasswordconfirm()
{
	var objp1=document.getElementById("registerPassword");
	var objp2=document.getElementById("registerConfirm");
	var objerror=document.getElementById("registerConfirmError");
	if(objp1.value!=objp2.value)
	{
		inputstate[2]=false;
		objerror.innerHTML="<font color=red>Please check</font>";
		checksubmit();
		return false;
	}
	else
	{
		inputstate[2]=true;
		objerror.innerHTML="<font color=green>Right</font>";
	}
	checksubmit();
	return true;
}
function checkemail()
{
	var objinput=document.getElementById("registerEmail");
	var objerror=document.getElementById("registerEmailError");
	var emailreg=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	if(!objinput.value.match(emailreg))
	{
		inputstate[3]=false;
		objerror.innerHTML="<font color=red><br />Wrong E-mail format, please check</font>";
		checksubmit();
		return false;
	}
	else
	{
		inputstate[3]=true;
		objerror.innerHTML="<font color=green>Right</font>";
		checkregisteremailexist(objinput.value)
	}
	checksubmit();
	return true;
}
function checkIDcard()
{
	inputstate[4]=true
	var id=document.getElementById("registerIDCard").value;
	var objerror=document.getElementById("registerIDCardError");
    var id_length=id.length;
    if (id_length==0){
        objerror.innerHTML="<font color=red>Input your ID Number</font>"
        inputstate[4]=false;
    }

    if (id_length!=15 && id_length!=18){
        objerror.innerHTML="<font color=red>Length of ID Number should be 15 or 18</font>"
        inputstate[4]=false;
    }

    if (id_length==15){
        yyyy="19"+id.substring(6,8);
        mm=id.substring(8,10);
        dd=id.substring(10,12);

        if (mm>12 || mm<=0){
            objerror.innerHTML="<font color=red>Invalid Month</font>"
            inputstate[4]=false;
        }

        if (dd>31 || dd<=0){
            objerror.innerHTML="<font color=red>Invalid Date</font>"
            inputstate[4]=false;
        }
		if(inputstate[4]){
		objerror.innerHTML="<font color=green>Right</font>";
		
	}
    }
	else if (id_length==18){
        if (id.indexOf("X") > 0 && id.indexOf("X")!=17 || id.indexOf("x")>0 && id.indexOf("x")!=17){
            objerror.innerHTML="<font color=red>Please check</font>"
            inputstate[4]=false;
        }

        yyyy=id.substring(6,10);
        if (yyyy>2000 || yyyy<1980){
            objerror.innerHTML="<font color=red>Invalid Year</font>"
            inputstate[4]=false;
        }

        mm=id.substring(10,12);
        if (mm>12 || mm<=0){
            objerror.innerHTML="<font color=red>Invalid Month</font>"
            inputstate[4]=false;
        }

        dd=id.substring(12,14);
        if (dd>31 || dd<=0){
            objerror.innerHTML="<font color=red>Invalid Date</font>"
            inputstate[4]=false;
        }


        birthday=id.substring(6,10) + "-" + id.substring(10,12) + "-" + id.substring(12,14);
        if ("13579".indexOf(id.substring(16,17)) > -1){
            sex="1";
        }else{
            sex="2";
        }
		if(inputstate[4]){
		objerror.innerHTML="<font color=green>Right</font>";
		
	}
    }

	checksubmit();
}


function checkregisteremailexist(data)
{
	var url;
    url="../stu/registercheck.asp?type=2&key="+data;
    xmlhttp1.open("GET",url,true);
    xmlhttp1.onreadystatechange=stateChange1;
    xmlhttp1.send(null);
}

function stateChange1()
{
	var objerror=document.getElementById("registerEmailError");
    if(xmlhttp1.readyState==4&&xmlhttp1.status==200)
    {
        data=xmlhttp1.responseText;
        if(data==1)
		{
			objerror.innerHTML="<font color=green>Right</font>";
			inputstate[3]=true;
			checksubmit();
		}
		else
		{
			objerror.innerHTML="<font color=red>Used</font>";
			inputstate[3]=false;
			checksubmit();
		}
    }
	else
	{
		objerror.innerHTML="<font color=green>Checking……</font>";
	}
}

function checkapprove()
{
	var objinput=document.getElementById("registerApprove");
	var objerror=document.getElementById("registerApproveError");
	
	if(ifapprove)
	{
		objinput.cheched=false;
		ifapprove=false
		inputstate[4]=false;
		objerror.innerHTML="请同意";
		checksubmit();
		return false;
	}
	else
	{
		objinput.cheched=true;
		ifapprove=true
		inputstate[4]=true;
		objerror.innerHTML="<font color=green>填写正确</font>";
	}
	checksubmit();
	return true;
}