function freshCaptcha(captchaId, captchaUrl)
{
	var cUrl = captchaUrl ? captchaUrl : 'library/validate_code.php';
	var t = new Date();
	var rt = t.getTime();
	$('#'+captchaId).attr('src', cUrl + '?r=' + rt);
}

//判断用户名称规则
function letterFirst(value, element)
{
	var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9_]){4,16}$/;
	if(!patrn.exec(value)){return false;}else{return true;}
}

//判断中文字符长度
function checkCnLength(value, element, params)
{
	var len = 0;
	var cnstrCount = 0; 
	for(var i = 0 ; i < value.length ; i++)
	{
		if(value.charCodeAt(i) > 255) cnstrCount = cnstrCount + 1;
	}
	len = value.length + cnstrCount;
	if(len >= params[0] && len <= params[1] && checkPeoperName(value))
	{
		return true;
	}
	else
	{
		return false;
	}
}

//松散判断用户身份证规则
function checkCIdRule(value, element)
{
	var idLength = value.length;
	if(idLength != 15 && idLength != 18){return false;}
	for(i = 0; i < idLength; i++)
	{
		var nm = value.charAt(i);
		if((nm < 0 || nm > 9) && idLength != 17 && idLength != 15){return false;}
		if(idLength == 17 && (nm != 'X' && isNaN(nm) )){return false;}
	}

	return true;
}

function passStrong(v)
{
	var s = 0
	// PASSWORD LENGTH ~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// Length of 4 or less
	if (v.length<5){ s = (s+3);	}
	// Length between 5 and 7
	else if (v.length>4 && v.length<8){ s = (s+6); }
	// Length between 8 and 15
	else if (v.length>7 && v.length<16){ s = (s+12); }
	// Length of 16 or more
	else if (v.length>15){ s = (s+18); }	
	// LETTERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// At least one lower case letter
	if (v.match(/[a-z]/)){ s = (s+1); }
	// At least one upper case letter
	if (v.match(/[A-Z]/)){ s = (s+5); }
	// NUMBERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// At least one number
	if (v.match(/\d+/)){ s = (s+5); }
	// At least three numbers
	if (v.match(/(.*[0-9].*[0-9].*[0-9])/)){ s = (s+5);	}
	// SPECIAL CHARACTERS ~~~~~~~~~~~~~~~~~~~~~~~~
	// At least one special character
	if (v.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)){ s = (s+5); }
	// At least two special characters
	if (v.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)){ s = (s+5); }
	// COMBOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	// Both upper and lower case
	if (v.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)){ s = (s+4); }
	// Both letters and numbers
	if (v.match(/([a-zA-Z])/) && v.match(/([0-9])/)){ s = (s+4); }
	// Letters, numbers, and special characters
	if (v.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)){ s = (s+7); }
	// Return the score ~~~~~~~~~~~~~~~~~~~~~~~~~~
	return s;
}

// Evaluate score ################################################################
function evalScore(s)
{ 
	var strength = 0;
	switch(true)
	{
		case s<=13:
		strength = 0;
		break;
		case s>=14 && s<=27:
		strength = 1;
		break;
		case s>=28 && s<=40:
		strength = 2;
		break;
		case s>=41:
		strength = 3;
		break;
	}
	return strength;
}

/*function checkIdCard(value, element)
{
	var idLength = value.length;
	if(idLength != 15 && idLength != 18){return false;}
	for(i = 0; i < idLength; i++)
	{
		var nm = value.charAt(i);
		if((nm < 0 || nm > 9) && i != 17 && i != 15){return false;}
		if(i == 17 && (nm != 'X' && isNaN(nm) )){return false;}
	}
	return true;
}*/

function checkIdCard(value, element)
{
	
	var idLength = value.length;
    if(idLength != 15 && idLength != 18){return false;}
    for(i = 0; i < idLength; i++)
    {
    	var nm = value.charAt(i);
    	if((nm < 0 || nm > 9) && idLength != 17 && idLength != 15){return false;}
    	if(idLength == 17 && ((nm != 'X' && nm != 'x') && isNaN(nm) )){return false;}
    }
    return true;                                                                              

	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 value,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = value.split("");
	if(area[parseInt(value.substr(0,2))]==null) return false;
	switch(value.length)
	{
		case 15:
			if ((parseInt(value.substr(6,2))+1900) % 4 == 0 || ((parseInt(value.substr(6,2))+1900) % 100 == 0 && (parseInt(value.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(value))
				return true; 
			else
				return false; 
			break;

		case 18:
			if ( parseInt(value.substr(6,4)) % 4 == 0 || (parseInt(value.substr(6,4)) % 100 == 0 && parseInt(value.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(value))
			{
				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 == idcard_array[17] || (M == 'X' && idcard_array[17] == 'x'))
					return true; 
				else
					return false; 
			}
			else
			{
				return false; 
			}
			break;

		default:
			return false; 
			break;
	}
	
	return true;
}

//判断百家姓
function checkPeoperName(name)
{
	/*
	if(/^[\u4e00-\u9fa5]+$/.test(name))
	{
		var str = name.substr(0, 1);
		var j = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁锺徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄麴家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭历戎祖武符刘景詹束龙叶幸司韶郜黎蓟溥印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阳郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀僪浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东欧殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逮盍益桓公召有舜丛岳寸贰皇侨彤竭端赫实甫集象翠狂辟典良函芒苦其京中夕之冠宾香果蹇称诺来多繁戊朴回毓税荤靖绪愈硕牢买但巧枚撒泰秘亥绍以壬森斋释奕姒朋求羽用占真穰翦闾漆贵代贯旁崇栋告休褒谏锐皋闳在歧禾示是委钊频嬴呼大威昂律冒保系抄定化莱校么抗祢綦悟宏功庚务敏捷拱兆丑丙畅苟随类卯俟友答乙允甲留尾佼玄乘裔延植环矫赛昔侍度旷遇偶前由咎塞敛受泷袭衅叔圣御夫仆镇藩邸府掌首员焉戏可智尔凭悉进笃厚仁业肇资合仍九衷哀刑俎仵圭夷徭蛮汗孛乾帖罕洛淦洋邶郸郯邗邛剑虢隋蒿茆菅苌树桐锁钟机盘铎斛玉线针箕庹绳磨蒉瓮弭刀疏牵浑恽势世仝同蚁止戢睢冼种涂肖己泣潜卷脱谬蹉赧浮顿说次错念夙斯完丹表聊源姓吾寻展出不户闭才无书学愚本性雪霜烟寒少字桥板斐独千诗嘉扬善揭祈析赤紫青柔刚奇拜佛陀弥阿素长僧隐仙隽宇祭酒淡塔琦闪始星南天接波碧速禚腾潮镜似澄潭謇纵渠奈风春濯沐茂英兰檀藤枝检生折登驹骑貊虎肥鹿雀野禽飞节宜鲜粟栗豆帛官布衣藏宝钞银门盈庆喜及普建营巨望希道载声漫犁力贸勤革改兴亓睦修信闽北守坚勇汉练尉士旅五令将旗军行奉敬恭仪母堂丘义礼慈孝理伦卿问永辉位让尧依犹介承市所苑杞剧第零谌招续达忻六鄞战迟候宛励粘萨邝覃辜初楼城区局台原考妫纳泉老清德卑过麦曲竹百福言佟爱年笪谯哈墨赏伯佴佘牟商琴后况亢缑帅海归钦鄢汝法闫楚晋督仉盖逯库郏逢阴薄厉稽开光操瑞眭泥运摩伟铁迮操付';
		if(j.search(name.substr(0, 1)) != -1)
			return true;

		var j2 = '万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于单于太叔申屠公孙仲孙轩辕令狐钟离宇文长孙慕容司徒司空章佳那拉纳喇乌雅范姜碧鲁张廖张简图门太史公叔乌孙完颜马佳佟佳富察费莫西门东门左丘梁丘南宫微生羊舌呼延南门东郭百里谷梁宰父夹谷拓跋壤驷乐正漆雕公西巫马端木颛孙子车司寇亓官第五鲜于锺离闾丘公良段干';
		if(j2.search(name.substr(0, 2)) != -1)
			return true;

		var j3 = '萨嘛喇赫舍里萨克达钮祜禄他塔喇喜塔腊库雅喇瓜尔佳舒穆禄索绰络';
		if(j3.search(name.substr(0, 3)) != -1)
			return true;

		var j4 = '叶赫那拉额尔德特依尔觉罗讷殷富察叶赫那兰爱新觉罗';
		if(j4.search(name.substr(0, 4)) != -1)
			return true;

		var j5= '依尔根觉罗';
		if(name.substr(0, 5) == j5)
			return true;

		return false;
	}
	else
	{
		return false;
	}
	*/
	return true;
}

function checkBirth(id, msg)
{
	var n = $('#'+id).val();
	if(!n || $('#'+id).attr('disabled') == 'disabled') return true;
	var r = new Array();
	r = n.split('-');
	var nDate = new Date();
	var tYear = nDate.getYear();
    var theYear = tYear > 1900 ? (tYear - 1900) : tYear;
    if(theYear + 1900 - parseInt(year) <= 4)
	{
		alert(msg);
		return false;
	}
	else
	{
		return true;
	}
	/*var dn = new Date(Date.UTC(r[0], r[1]-1, r[2]));
	if(dn.getTime() > nDate.getTime())
	{
		alert(msg);
		return false;
	}
	else
	{
		return true;
	}*/
}

/**
 *取得当前url的参数，并解析成数组返回，如果rPar有值，则返回指定的参数的值
 *
 *
 */
function getQuery(rPar)
{
	var query = window.location.search.substr(1);
	if(!query) return;
	var rArr = new Array();
	var tArr = new Array();
	var eArr = new Array();
	tArr = query.split('&');
	var k, v;
	for(var i = 0; i < tArr.length; i++)
	{
		eArr = tArr[i].split('=');
		rArr[eArr[0]] = eArr[1];
	}

	if(typeof(rPar) != 'undefined')
	{
		return rArr[rPar];
	}
	return rArr;
}

function checkLostIn(idCard)
{
	/*
	var idLeng = idCard.length;
	if(idLeng != 15 && idLeng != 18) return 1;
	var year;
	if(idLeng == 15) year = '19' + idCard.substr(6, 2);
	if(idLeng == 18) year = idCard.substr(6, 4);
	var nDate = new Date();
    var tYear = nDate.getYear();
	var theYear = tYear > 1900 ? (tYear - 1900) : tYear;
	if(theYear + 1900 - parseInt(year) < 18)
    {
    	return 1;
    }
    else
    {
    	return 0;
    }
    */
    return 0;
}
