﻿/****************************************************************
 *				JAVASCRIPT UTILITY CLASS 	*
 *								*
 * File Name:  Utility.js     	 				*
 * Written by:  SBQCEL (BLOG:http://doll-net.cnblogs.com)	*
 * Important: to use this script don't remove these comments	*
 * Version 1.1(MSIE 6.0 above,Firefox2.0.)      	    	*
 * Created Date: 2007-12-21 					*
 * Modify Date: 2008-03-06                              	*
 * Summary: http://www.showgame.cn                              *
 ****************************************************************/
function IsValidEmail(email)
{
    var emailPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    return emailPattern.test(email);
}  
//获取URL参数值
function GetQueryString(url,key)
{
   var reg = new RegExp(".*?"+ key+"=([^&]*)?&.*?$"+"|.*?"+key+"=([^&]*)?$|","i");
   if(reg.exec(url) == url) return ""; 
   return url.replace(reg,"$1$2");
}

String.prototype.Replace = function(oldValue,newValue) 
{ 
    return this.replace(new RegExp(oldValue,"gi"), newValue); 
}
String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
function GetObjById(id)
{   
    if (typeof(id) != "string" || id == "") return null;
    if (document.getElementById) return document.getElementById(id);
    if (document.all) return document.all(id);	        
    try {return eval(id);} catch(e){ return null;}
}
//获取Cookie值
function getCookie(sName)
{
    var sRE = "(?:;)?" + sName + "=([^;]*);?";
   var oRE = new RegExp(sRE);
   if(oRE.test(document.cookie))
   {
     return decodeURIComponent(RegExp["$1"]);
   }
   else
   {
        return null;
   } 
}
//确保字符串是合法的数字
function CheckNum(obj)
{  
    var objValue = obj.value; 
    obj.value = objValue.replace(new RegExp('\\D|^0*','g'),''); 
}
//获取JS URL参数值
function getJsUrlParam(jUid,pName)
{
    var reg = new RegExp("(^|\\?|&)"+ pName +"=([^&]*)(\\s|&|$)", "i");
	reg.test(GetObjById(jUid).src);
	return RegExp.$2;
}
//验证生份证号码,周岁在100-10岁
function ValidCertId(certid)
{
	var sErrMsg = "";
	var reg_15 = /\d{15}/;
	var reg_18 = /\d{17}([0-9]{1}|x|X)/;
	var monthPerDays = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	certid = certid.toLowerCase();
	if(certid == "")
	{
		return "请填您的身份证";
	}
	var ret = certid.length == 15?reg_15.test(certid):reg_18.test(certid);
	if(certid=="111111111111111" || !ret)
	{
		return "您的身份证不合法";
	}
	birthDate = certid.length == 15?"19" + certid.substr(6,6):certid.substr(6,8);
	year = birthDate.substr(0,4);
	if(birthDate.substr(4,1) == '0')
		month = birthDate.substr(5,1);
	else
		month = birthDate.substr(4,2);
	if(birthDate.substr(6,1) == '0')
		day = birthDate.substr(7,1);
	else
		day = birthDate.substr(6,2);
	dd = parseInt(day);
	mm = parseInt(month);
	yy = parseInt(year);
	if(yy<(new Date()).getFullYear()-100)
	{
		return "您的年不合法";
	}
	days = new Date();
	gdate = days.getDate();
	gmonth = days.getMonth();
	gyear10 = days.getFullYear()-10;
	if(mm>12 || mm<1 ||dd>31 || dd<1)
	{
		return "您的身份证月日不合法";
	}
	if(year % 100 != 0)
	{
		if(year % 4 ==0)
		monthPerDays[1] = 29;
	}
	else
	{
		if(year % 400 == 0)
		monthPerDays[1] = 29;
	}
	if(monthPerDays[mm - 1] < dd)
	{
		return "您的身份证日不合法";
	}
	if(certid.length == 18)
	{
		var arTemp = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
		var num = 0;
		var proof;
		for(var i=0; i < 17; i ++)
		{
			num = num + certid.substr(i,1) * arTemp[i];
		}
		num = num % 11;
		switch(num)
		{
			case 0:proof='1';break;
			case 1:proof='0';break;
			case 2:proof='x';break;
			case 3:proof='9';break;
			case 4:proof='8';break;
			case 5:proof='7';break;
			case 6:proof='6';break;
			case 7:proof='5';break;
			case 8:proof='4';break;
			case 9:proof='3';break;
			case 10:proof='2';break;
		}
		if(certid.substr(17, 1) != proof)
		{
			return "您的身份证不合法";
		}
	}
	mm = mm -1;
	var prevTS10 = new Date(gyear10, gmonth, gdate,0,0,0);
	var ageTs = new Date(yy,mm,dd,0,0,0)
	if(prevTS10 < ageTs)
	{
		return "您小于10周岁，将被纳入防沉迷。";
	}
	return "";
}
