$(function(){
	//$('#confirmOK').attr('disabled', true);
	$('#username').focus(function(){checkUserName();}).blur(function(){checkUserName();});
	$('#password').focus(function(){checkPassword();}).blur(function(){checkPassword();});
	$('#cpassword').focus(function(){checkCPassword();}).blur(function(){checkCPassword();});
	$('#real_name').focus(function(){checkRealName();}).blur(function(){checkRealName();});
	$('#id_card').focus(function(){checkIdcard();}).blur(function(){checkIdcard();});
	$('#email').focus(function(){checkEmail();}).blur(function(){checkEmail();});
	$('#address').focus(function(){checkAddress();}).blur(function(){checkAddress();});
	$('#phone').focus(function(){checkMobileAndPhone();}).blur(function(){checkMobileAndPhone();});
	$('#auth_code').focus(function(){checkUserCode();}).blur(function(){checkUserCode();});
	$('#courseList input[type=checkbox]').focus(function(){checkCourseSelect();}).blur(function(){checkCourseSelect();});
	/**$('#courseList input[type=checkbox]').click(function(){
		var $obj = $('#courseList input[name=price'+$(this).val()+']');
		if ( $(this).attr('checked') ) {
			$obj.attr('checked', true);
		} else {
			$obj.attr('checked', false);
		}
	});**/
});

function formValidator() {
	if ( !checkValidator() ) {
		window.location.href="#error";
		return false;
	}
	return true;
}

function checkValidator() {
	var count = 0;
	if ( $('#usernamecheck').val() == 0 ) {
		checkUserName();
		//return false;
		count++;
	}
	if  ( $('#passwordcheck').val() == 0 ) {
		checkPassword();
		checkCPassword();
		//return false;
		count++;
	} 
	if  ( $('#idcardcheck').val() == 0 ) {
		checkIdcard();
		//return false;
		count++;
	}
	if  ( $('#emailcheck').val() == 0 ) {
		checkEmail();
		//return false;
		count++;
	}
	if  ( $('#real_name').val() == '' ) {
		checkRealName();
		//return false;
		count++;
	}
	if  ( $('#phone').val() == '' ) {
		checkMobileAndPhone();
		//return false;
		count++;
	}
	if  ( $('#address').val() == '' ) {
		checkAddress();
		//return false;
		count++;
	}
	if  ( $('#usercheckcode').val() == 0 ) {
		checkUserCode();
		//return false;
		count++;
	}
	if ( $('#checkcourse').val() == 0 ) {
		checkCourseSelect();
		count++;
	} else {
		checkCourseSelect();
	}
	
	return count == 0 ? true : false;
}

function checkCourseSelect(){
	var scount = 0;
	$('#courseList input[type=checkbox]').each(function(){
		if ( $(this).attr('checked') ) {
			scount++;
		}
	});
	if ( scount == 0 ) {
		$('#checkcourse').val(0);
		$('#courseTip').html('请至少选择一门课程.').removeClass().addClass('onError');
	} else {
		$('#checkcourse').val(1);
		$('#courseTip').html('已选择课程.').removeClass().addClass('onSuccess');
	}
}

function checkUserName() {
	var username = $('#username').val();
	if ( username == '' || !checkUserString(username) ) {
			$('#usernamecheck').val(0);
			$('#usernameTip').html('请填写有效的用户名.').removeClass().addClass('onError');
		} else {
			$.ajax({
				url: 'reg_check.php?action=checkUserName&username='+username,
			    type: 'GET',
			    dataType: 'html',
			    success: function(data){
			    	if ( data == 1 ) {
			    		$('#usernamecheck').val(1);
			    		$('#usernameTip').html('该用户可以注册').removeClass().addClass('onSuccess');
			    	} else {
			    		$('#usernamecheck').val(0);
			    		$('#usernameTip').html('该用户名已经被使用,请更换其它用户名.').removeClass().addClass('onError');
			    	}
			    }
			});
		$('#usernameTip').html('数据验证中.请稍候..').removeClass().addClass('onLoad');
	}
}

function checkIdcard() {
	var idcard = $('#id_card').val();
	if ( idcard == '' || !isIdCardNo(idcard) ) {
			$('#idcardcheck').val(0);
			$('#idcardTip').html('请填写有效身份证号.').removeClass().addClass('onError');
		} else {
			$.ajax({
				url: '/reg_check.php?action=checkIdcard&id_card='+idcard,
			    type: 'GET',
			    dataType: 'html',
			    success: function(data){
			    	if ( data == 1 ) {
			    		$('#idcardcheck').val(1);
			    		$('#idcardTip').html('该身份证号可以使用.').removeClass().addClass('onSuccess');
			    	} else {
			    		$('#idcardcheck').val(0);
			    		$('#idcardTip').html('该身份证号已被使用,请更换其它身份证号.').removeClass().addClass('onError');
			    	}
			    }
			});
		$('#idcardTip').html('数据验证中.请稍候..').removeClass().addClass('onLoad');
	}
}

function checkUserCode() {
	var code = $('#auth_code').val();
	if ( code == '' ) {
		$('#usercheckcode').val(0);
		$('#authcodeTip').html('请填写验证码.').removeClass().addClass('onError');
	} else {	
			$.ajax({
				url: '/reg_check.php?action=checkCode&code='+code,
			    type: 'GET',
			    dataType: 'html',
			    success: function(data){
			    	if ( data == 1 ) {
			    		$('#usercheckcode').val(1);
			    		$('#authcodeTip').html('验证码填写正确.').removeClass().addClass('onSuccess');
			    	} else {
			    		$('#usercheckcode').val(0);
			    		$('#authcodeTip').html('验证码填写有误.').removeClass().addClass('onError');
			    	}
			   }
		});
		$('#authcodeTip').html('数据验证中.请稍候..').removeClass().addClass('onLoad');
	}
}

function checkEmail() {
	var email = $('#email').val();
		if ( email == '' || !isEmail(email) ) {
			$('#emailcheck').val(0);
		    $('#emailTip').html('请填写有效的邮箱.').removeClass().addClass('onError');
		} else {
			$.ajax({
				url: '/reg_check.php?action=checkEmail&email='+email,
			    type: 'GET',
			    dataType: 'html',
			    success: function(data){
			    	if ( data == 1 ) {
			    		$('#emailcheck').val(1);
			    		$('#emailTip').html('该邮箱可以使用.').removeClass().addClass('onSuccess');
			    	} else {
			    		$('#emailcheck').val(0);
			    		$('#emailTip').html('该邮箱已经被使用.').removeClass().addClass('onError');
			    	}
			    }
			});
		$('#emailTip').html('数据验证中.请稍候..').removeClass().addClass('onLoad');
	}
}

function checkPassword() {			
	var password = $('#password').val();
		if ( password == '' ) {
			$('#passwordcheck').val(0);
			$('#passwordTip').html('请填写密码.').removeClass().addClass('onError');
		} else {
			if ( password.length < 6 ) {
				$('#passwordcheck').val(0);
				$('#passwordTip').html('您填写的密码太短.').removeClass().addClass('onError');
			} else if ( $('#password').val() == $('#cpassword').val() ) {
				$('#passwordcheck').val(1);
				$('#passwordTip, #cpasswordTip').html('密码填写正确.').removeClass().addClass('onSuccess');
			} else if ( $('#cpassword').val() != '' ){
				$('#passwordcheck').val(0);
				$('#passwordTip, #cpasswordTip').html('密码填写不一致.').removeClass().addClass('onError');
			} else {
				$('#passwordcheck').val(1);
				$('#passwordTip').html('密码填写正确.').removeClass().addClass('onSuccess');
			}
	}
}

function checkCPassword() {
	var cpassword = $('#cpassword').val();
	if ( cpassword == '' ) {
		$('#passwordcheck').val(0);
		$('#cpasswordTip').html('请再次填写密码.').removeClass().addClass('onError');
	} else {
		if ( cpassword.length < 6 ) {
			$('#passwordcheck').val(0);
			$('#cpasswordTip').html('您填写的密码太短.').removeClass().addClass('onError');
		} else if ( $('#password').val() == $('#cpassword').val() ) {
			$('#passwordcheck').val(1);
			$('#passwordTip, #cpasswordTip').html('密码填写正确.').removeClass().addClass('onSuccess');
		} else {
			$('#passwordcheck').val(0);
			$('#passwordTip, #cpasswordTip').html('密码填写不一致.').removeClass().addClass('onError');
		}
	}
}

function checkRealName() {
	var real_name = $('#real_name').val();
	if ( real_name == '' ) {
		$('#real_nameTip').html('请填写真实姓名.').removeClass().addClass('onError');
	} else {
		$('#real_nameTip').html('真实姓名填写正确.').removeClass().addClass('onSuccess');
	}
}

function checkMobileAndPhone()
{
	var phone = $('#phone').val();
	if ( phone == ""  ) {
		$('#phoneTip').html('请填写有效的电话号码.').removeClass().addClass('onError');	
	} else {
		$('#phoneTip').html('电话号码填写正确.').removeClass().addClass('onSuccess');
	}
}

function checkPhone(){
	var phone = $('#phone').val();
	if ( !isPhone(phone) ) {
		$('#phonecheck').val(0);
		$('#phoneTip').html('请填写有效的电话号码.').removeClass().addClass('onError');
	} else {
		$('#phonecheck').val(1);
		$('#phoneTip').html('电话号码填写正确.').removeClass().addClass('onSuccess');
	}
}

function checkPostCode() {
	var postcode = $('#postcode').val();
	if ( postcode == '' || !isPostCode(postcode) ) {
		$('#postcodecheck').val(0);
		$('#postcodeTip').html('请填写有效的邮政编码.').removeClass().addClass('onError');
	} else {
		$('#postcodecheck').val(1);
		$('#postcodeTip').html('邮政编码填写正确.').removeClass().addClass('onSuccess');
	}
}

function checkAddress() {
	var address = $('#address').val();
	if ( address == '' ) {
		$('#addressTip').html('请填写您的详细地址.').removeClass().addClass('onError');
	} else {
		$('#addressTip').html('地址填写正确.').removeClass().addClass('onSuccess');
	}
}


function checkUploadFile() {
	var fileName = $('#resume').val();
	if ( fileName != '' ) {
		//$('#resumeTip').html('请填写有效的邮政编码.').removeClass().addClass('onError');
	} 
}

function isEmail(strEmail) {
	if ( strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1 )
		return true;
	else
		return false;
}

function checkNum(str){return str.match(/\D/)==null}

function checkIdCard(strIdCard) {
	if ( strIdCard.search(/^[1-9]([0-9]{14}|[0-9]{17})$/) != -1 ) 
		return true;
	else
		return false;
}

function isIdCardNo(num) 
{
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;    
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "输入身份证号码长度不对！";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码！.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        //if (checkDate(date8) == false) {
            //error = "身份证中日期信息不正确！.";
            //alert(error);
            //return false;
        // }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!...正确为： " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        //if (checkDate(date6) == false) {
           // //alert("身份证日期信息有误！.");
           // return false;
        //}
    }
    //alert ("Correct.");
    return true;
}


function isTrim(str) {
	var m = str.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? "" : m[1];
}

function isPhone(phone)    
{   
	var reg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
	return reg.test(isTrim(phone));
}

function checkUserString(str){
	var reg = /^[a-zA-Z][_\w]{5,19}$/g;
	return reg.test(isTrim(str));
}

// 验证合法的邮政编码
function isPostCode(postcode) {
	var pattern = /^[0-9]{6}$/;
    flag = pattern.test(postcode);
	return flag ? true : false;
}

function isMobile(mobile)
{
	var reg = /^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/;
 	return reg.test(isTrim(mobile));
}    