﻿// JavaScript Document
// Must include jquery.js
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function addClass(obj,cssclass){
	if(obj.className == '')
		obj.className = cssclass;
	else
		obj.className = obj.className + " " + cssclass;
}
function removeClass(obj,cssclass){
	obj.className = obj.className.replace(cssclass,"").trim();
}
var regexEnum = 
{
	email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
	chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
	mobile:"^(13|15|18)[0-9]{9}$",				//手机
	qq:"^[1-9]*[1-9][0-9]*$",				//QQ号码
	tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
	username:"^[a-z][a-z0-9]+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	idcard:"^(\\d{14}|\\d{17})(\\d|x|X)$"
}

function RegCheck(formObj,ispw){ 
	//检测不能为空
	var mJson = {   
			"username"	: "请输入公会账号！",
			"password"	: "请输入密码！",
			"realname"	: "请输入真实姓名！",
			"email"		: "请输入Email！",
			"idcard"	: "请输入身份证号码！",
			"oicq"		: "请输入QQ号！",
			"bank"		: "请输入开户银行！",
			"banknum"	: "请输入银行账号！",
			"name"		: "请输入公会名称！",  
			"deacon"	: "请输入会长昵称！",	
			"vcode"		: "请输入验证码！"
	}
	var err=0;
	$.each(mJson, function(i, n){
		if(err==0 && $("#"+i, formObj).size() && $.trim($("#"+i, formObj).val()) == ""){
			alert(n);
			err++;
			return(false);
		}
	});
	if(err!=0) return(false);
	// 如果必填项不为空进行特殊状态检测
	if($("#username", formObj).val().length < 6  && err == 0 ){
		alert("帐号最少6位！");
		return(false);
	}else if(!(new RegExp(regexEnum.username)).test($("#username", formObj).val()) && err == 0 ){
		alert("帐号有误,应为小写字母或数字且首位字母！");
		return(false);
	}
	
	if(ispw == undefined){
		if($("#password", formObj).val().length < 6  && err == 0 ){
			alert("密码最少6位！");
			return(false);
		}
		if($("#password", formObj).val()!=$("#repassword", formObj).val() && err == 0){
			alert("两次输入的密码不一致！");
			return(false);
		}
	}
	if(($("#realname", formObj).val().length < 2 || !(new RegExp(regexEnum.chinese)).test($("#realname", formObj).val())) && err == 0 ){
		alert("真实姓名有误！");
		return(false);
	}
	if(!(new RegExp(regexEnum.email)).test($("#email", formObj).val()) && err == 0 ){
		alert("邮箱格式有误！");
		return(false);
	}
	if($("#mobile", formObj).val()=="" && $("#tel", formObj).val()=="" && err == 0){
		alert("手机号码和固定电话二者必填一项！");
		return(false);
	}
	if($("#mobile", formObj).val() != "" && !(new RegExp(regexEnum.mobile)).test($("#mobile", formObj).val()) && err == 0){
		alert("手机号码有误！");
		return(false);
	}
	if($("#tel", formObj).val() != "" && !(new RegExp(regexEnum.tel)).test($("#tel", formObj).val()) && err == 0){
		alert("固定电话号码有误！示例:+86-021-12345678/021-12345678/12345678");
		return(false);
	}
	if(!(new RegExp(regexEnum.qq)).test($("#oicq", formObj).val()) && err == 0){
		alert("QQ号码有误！");
		return(false);
	}
	if(!isCardID($("#idcard", formObj).val()) && err == 0){
		alert("身份证号码有误！");
		return(false);
	}
}

function PwdCheck(){
	var err=0;
	var mJson = {     
		"newpassword"	: "请输入新密码！",    
		"repassword"	: "请输入重复密码！"
	}
	$.each(mJson, function(i, n){
		if($("#"+i).val()==""){
			alert(n);
			err++;
			return(false);
		}
	});
	if($("#newpassword").val()!=$("#repassword").val()){
		alert("两次输入的密码不一致！");
		err++;
	}
	if($("#password").val().length < 6  && err == 0 ){
		alert("密码最少6位！");
		err++;
	}
	if(err!=0){return(false);}
}

//card验证返回boolean,未做是否满18岁判定;
function isCardID(idcard){  
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}      
	var idcard,Y,JYM;      
	var S,M;      
	var idcard_array = new Array();      
	idcard_array = idcard.split("");      
	   
	switch(idcard.length){      
		case 15:      
		  if ((parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){      
			ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性      
		  }      
		  else{      
			ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性      
		  }      
		  if(ereg.test(idcard)) {
			  return true;
		  } else     
			return false;
		    break;      
		case 18:      
		if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){      
		  ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式      
		}      
		else{      
		ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式      
		}      
		if(ereg.test(idcard)){      
		  S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7 + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9 + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10 + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5 + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8 + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4 + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2 + parseInt(idcard_array[7]) * 1 + parseInt(idcard_array[8]) * 6 + parseInt(idcard_array[9]) * 3 ;      
		  Y = S % 11;      
		  M = "F";      
		  JYM = "10X98765432";      
		  M = JYM.substr(Y,1);      
		  if(M.toLowerCase() == idcard_array[17].toLowerCase()) {
			  return true; 
		  } else     
			return false;
		}      
		else     
		  return false;
		break;      
		default:      
		return false;
	    break;      
	}
	if(area[parseInt(idcard.substr(0,2))]==null) return false;
}
