function isLengthRight(length,inStr)
{
	var str=Trim(inStr);
	var	i = 0 
	for (dd=0;dd<str.length; dd++) {
		if (str.charCodeAt(dd) > 255 ) {
			i = i+2;
		} else {
		 	i = i+1;
		}
	}

	//比较长度
	var j=parseInt(length);
	if(i==j)
	{
		return 1;
	}
	else
	{
		return i>j?-1:0;
	}
}

function isDigit(inStr)
{
	var Digits = "0123456789";
	var temp;
	
	if(isEmpty(inStr)==1)
		return 1;

	for(var i=0;i<inStr.length;i++)
	{
		temp=inStr.substring(i,i+1);
		if (Digits.indexOf(temp)==-1)
		{
			return 0;
		}
	}
	return 1;	
}

function isEmpty(inStr)
{
	
	for(var i=0;i<inStr.length;i++)
		if(inStr.substring(i,i+1)!=" ")
			return 0;
	return 1;
}

function Trim(inStr)
{
	if(isEmpty(inStr)==1)
		return "";
	var temp=inStr
	while(temp.indexOf(' ')==0)
		temp=temp.substring(1,temp.length);
	while(temp.lastIndexOf(' ')==temp.length-1)
		temp=temp.substring(0,temp.length-1);
	return temp;
}

function isDate(inStr)
{
	if(inStr=="")return 1;
	var Year;
	var Month;
	var Day;
	strDate=Trim(inStr);
	if(strDate.length!=8)
	{
		return 0;
	}
	Year=strDate.substring(0,4);
	Month=strDate.substring(4,6);
	Day=strDate.substring(6,8);
	if( ( isDigit(Year)!=1 )||( isDigit(Month)!=1 )||( isDigit(Day)!=1 )||( Year<"1900" )||( Year>"2100" ) )
	{
		return 0;
	}
	switch(Month)
	{
		case '01':
		case '03':
		case '05':
		case '07':
		case '08':
		case '10':
		case '12':
		if(Day<'01'||Day>'31')
		return 0;
		break;
		case '04':
		case '06':
		case '09':
		case '11':
		if(Day<'01'||Day>'30')
		return 0;
		break;
		case '02':
		if(( parseInt(Year)%4==0 && parseInt(Year)%100!=0 )|| parseInt(Year)%400==0)
		{
			if(Day<'01'||Day>'29')
			return 0;
		}
		else
		{
			if(Day<'01'||Day>'28')
			return 0;
		}					
		break;
		default:
		return 0;
	}
	return 1;
}

function isWord(inStr)
{
	var validLetters = "abcdefghijkmlnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var temp;
	var strWord=Trim(inStr)	  
	for(var i=0;i<strWord.length;i++)
	{
		temp=strWord.substring(i,i+1);
		if (validLetters.indexOf(temp)==-1)
		{
			return 0;
		}
		if (i>20)
		{
			return -1;
		}	
	}
	return 1;	
}

/*
   检查输入的年份
*/
function isYear(inStr)
{
	var Year;
	
	Year=Trim(inStr);
	if(Year.length==0)
		return 1;
	
	if(Year.length!=4)
	//判断长度是否正确
	{
		return 0;
	}
	
	
	if( ( isDigit(Year)!=1 )||( Year<"1900" )||( Year>"2100" ) )
	//年非数值或者年份过小过大认为不是日期
	{
		return 0;
	}
	return 1;
}

/*
   检查输入的手机号
*/
function checkMobile(mobile)
{
	if (isEmpty(mobile)!=1)
	{   
		if ((isLengthRight(11,mobile)!=1)&&
		(isLengthRight(12,mobile)!=1)|| 
		(isDigit(mobile)!=1))
		{ 
			return 0;
		} 
	}
	return 1;
}

function isEmailFormat(inStr){
	if(inStr.length==0) return 1;
	var AtSym    = inStr.indexOf('@');
	var Period   = inStr.lastIndexOf('.');
	var Space    = inStr.indexOf(' ');
	var Length   = inStr.length - 1;   
	if ((AtSym < 1) ||               
    	(Period <= AtSym+1) ||       
    	(Period == Length ) ||       
    	(Space  != -1)){  
				return 0;
	}
        return 1;
}

function checkUserName(userName){
	
	var LETTERS="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._-";
	var DIGITS="0123456789";
	var exceptExistCharOnly="0123456789.";
	userName=userName.toUpperCase();
	if(userName.substring(0,2)=="FS"){
		alert("用户名不能以fs或FS开头");
		return 0;
	}
	if(userName.length<3)
		return 0;
	if(isEmpty(userName)!=1){
		var flag=0;
		
		if (exceptExistCharOnly_Fun(exceptExistCharOnly,userName)) return 0;
		
		for(var i=0;i<userName.length;i++){
			var temp=userName.substring(i,i+1);
			
			if(LETTERS.indexOf(temp)==-1){
				if(DIGITS.indexOf(temp)==-1){
					return 0;
				}
			}else{
				flag=1
			}
		}
		if(flag==0) return 0;
	}
	return 1;
}

function exceptExistCharOnly_Fun(exceptExistCharOnly,userName){
	var isExcept=true;
	for (var i=0;i<userName.length;i++){
		var temp=userName.substring(i,i+1);
		
		if (exceptExistCharOnly.indexOf(temp)==-1){
			isExcept=false;
			break;
		}
	}
	return isExcept;
}

/*
   检查输入的身份证号码
*/
function checkIDCard(ctrl){	       
	if(isEmpty(ctrl)!=1){
		if((isLengthRight(15,ctrl)!=1)&&(isLengthRight(18,ctrl)!=1)){
			return 0;
		}else if(isLengthRight(15,ctrl)==1){
			if(isDigit(ctrl)!=1){        
				return 0;
			}	
			birthday="19"+(ctrl).substring(6,12);
			if(isDate(birthday)!=1){          
				return 0;
			}
		}else if(isLengthRight(18,ctrl)==1){
			if(isDigit((ctrl).substring(0,17))!=1){        
        		return 0;
      		}      
      		if((isDigit((ctrl).substring(17,18))!=1)&&(isWord((ctrl).substring(17,18))!=1)){        
        		return 0;
      		}      
      		birthday=(ctrl).substring(6,14);      
      		if(isDate(birthday)!=1){
        		return 0;            
			}    	
		}
		return 1;    	
	}
	else{
		return 0;
	}  
}

function checkSecurityCode(idCard){
	var DIGITS="0123456789";
	if(idCard.length<6)
		return 0;
	if(isEmpty(idCard)!=1){
		var flag=0;
		for(var i=0;i<idCard.length;i++){
			var temp=idCard.substring(i,i+1);
			if(DIGITS.indexOf(temp)==-1)	
				return 0;
		}
	}
	return 1;
}

function checkNickName(str){
	str=str.toUpperCase();
	if(str.substring(0,2)=="FS"){
		return 0;
	}
	var lawless=["gm","GM","西藏","达赖","喇嘛","拍拍部落","街头篮球","魔法飞球","FREESTYLE","PANGYA","PAIPAIJOY","SUCK","FUCK","SHIT","GM","ADMIN","GAMEMASTER","T2CN","版主","裁判","客服","客户服务","天联","系统","做爱","去死","测试","ㄇㄉ","他ㄇ的","死GD","马的","妈的","干你娘","干妳娘","干拎娘","操妳娘","操妳妈","干你妈","干妳妈","ㄐ掰","ㄐ巴","ㄐ八","机巴","鸡巴","鸡八","机八","鸡叭","鸡芭","干你老母","干妳老母","塞你老母","塞你娘","塞你爸","塞你母","塞你公","塞你老师","驶你老母","驶你娘","驶你爸","驶你母","驶你公","驶你老师","ㄙㄞ你老母","ㄙㄞ你娘","ㄙㄞ你爸","ㄙㄞ你母","ㄙㄞ你公","ㄙㄞ你老师","懒叫","懒教","操妳祖宗","干七八","妳娘的","靠腰","操妳","操你","妳老母的","我妳老爸","肏","奸","淫","捻","屌","鸠","仆街","陷家铲","含捻","食捻屎","屌西","老母","屌","鸠屎","舔西","食屎","阴茎","鸡掰","屄","日你娘","傻逼","傻比","二逼","装逼呢","丫头养的","死全家","太监","我操","装逼","你姥","傻B","逼毛","阴毛","大花B","大血B","妈卖妈屁","马卖马屁","DICK","烂B","烂逼","TMD","日","踢","滚","干你","屁眼","性交","口交","肛交","吹喇叭","吹箫","烂人","插你","上你","干妳","操妳","插妳","上妳","乳交","王八蛋","操蛋","温家宝","胡锦涛","江泽民","反动派","台独","六四","暴动","新党","民进党","台联","台联","亲民党","宋楚瑜","李登辉","李洪志","连战","蒋中正","蒋介石","蒋经国","吕秀莲","孙中山","孙逸仙","孙文","中共","共产党","中国","中华人民共和国","中华民国","台独","党主席","陈水扁","江泽明","毛泽东","邓小平","朱镕基","李鹏","李瑞环","胡锦涛","尉健行","李岚清","纳粹","台湾公投","国民党","密宗","一贯道","法轮功","摩门教","温家宝","胡锦涛","江泽民","反动派","台独","六四","64运动","马加爵","暴动","外挂","管理者","草你","89事件","十六大","外挂","法轮","操","ㄞ","紫阳","法轮","革命","暴动","六四事件","六四暴动","六四学潮","学潮","学运","日本","起义","李鹏","革命","反革命","赵紫阳","朱鎔基","李洪志","李宏志","李红志","杨尚昆","胡耀邦","法轮","大法","共产","台独","台湾","独裁","民主","自由","天安门","国民党","屠杀","暴行","镇压","邓小平","高治联","低治联","陈水扁","妈的","干你","ㄐ","干你","捻","阴茎","傻B","江core","阴毛","大花B","大血B","Dick","插","叉","89事件","64事件","http://","打倒","党中央","毛主席","周恩来","刘强","靖国神社","静国神社","大日本帝国","大东亚共荣圈","支那猪","支那狗","支那","支那pig","支那dog","西藏独立","达赖喇嘛","管理","奶子","马的","妈的","你妈的","你马的","你妈的","妳妈的","妳马的","妳马的","他妈的","他马的","她马的","她妈的","肏","奸","捻","屌","鸠","仆街","陷家铲","含捻","食捻屎","老母","鸠屎","舔西","食屎","阴茎","鸡掰","傻比","二逼","笨逼","别他妈的","装逼","日你妈","你姥姥","你以为你装逼就能骗我","别以为你是太监我就怕你","太监","我操","装逼","你姥"];
	for(var i=0;i<lawless.length;i++){
	if(str.indexOf(lawless[i],0)!=-1){
	return 0;
	}
	
}
return 1;
}


 function   isChinaIDCard(StrNo){   
   var area={110:"北京",120:"天津",130:"河北",140:"山西",150:"内蒙古",210:"辽宁",220:"吉林",221:"长春市",230:"黑龙江",231:"哈尔滨市",310:"上海",320:"江苏",321:"南京市",330:"浙江",340:"安徽",350:"福建",351:"厦门市",360:"江西",370:"山东",
  371:"青岛市",410:"河南",420:"湖北",421:"武汉市",430:"湖南",440:"广东",441:"广州市",442:"深圳市",450:"广西",460:"海南",511:"重庆",510:"四川",512:"成都市",
  520:"贵州",532:"云南省墨江",522:"贵州地市1",530:"云南",540:"西藏",610:"陕西",611:"西安市",620:"甘肃",630:"青海",640:"宁夏",650:"新疆",710:"台湾",720:"香港",730:"澳门",431:"新增加1",652:"新增加2",513:"新增加3",142:"新增加5",341:"新增加6",331:"新增加7",412:"新增加8",222:"新增加9",131:"新增加10",342:"新增加11",612:"新增加12",500:"新增加13",211:"新增加15",445:"新增加17",332:"新增加18",342:"新增加19",152:"新增加20",211:"新增加21",362:"新增加22",411:"新增加23",413:"新增加25",654:"新增加26",452:"新增加27",339:"新增加28",352:"新增加29",152:"新增加30",622:"新增加30",422:"新增加30",372:"新增加30",533:"新增加31",232:"新增加32",500:"新增加33",330:"新增加35",239:"新增加36",654:"新增加37",422:"新增加38",339:"新增加39",433:"新增加40",659:"新增加41",632:"新增加42",429:"新增加43",432:"新增加45",133:"新增加46",642:"新增加46",132:"新增加46",653:"新增加46",542:"新增加47"};
  var idcard_array = new Array();
  idcard_array = StrNo.split("");
   if(area[parseInt(StrNo.substr(0,3))]==null){
               return false;
            }   
  
  if   (StrNo.length==18)
  {   
           
            var   a,b,c   
            if   (!isInteger(StrNo.substr(0,17)))   {return   false}   
            a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;   
            a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;   
            a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;     
            a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;     
            a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;     
            a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;   
            b=a%11;   
    
            if   (b==2)   //最后一位为校验位   
            {   
            c=StrNo.substr(17,1).toUpperCase();   //转为大写X   
            }   
            else   
            {   
            c=parseInt(StrNo.substr(17,1));   
            }   
    
            switch(b)   
            {   
	            case   0:   if   (   c!=1   )   {
		            //alert("身份证好号码校验位错:最后一位应该为:1");
		            return   false;
	            }
	            break;   
            	case   1:   if   (   c!=0   )   {
		            //alert("身份证好号码校验位错:最后一位应该为:0");
		            return   false;
            	}
            	break;   
            case   2:   if   (   c!="X")   {
            	//alert("身份证好号码校验位错:最后一位应该为:X");
            	return   false;
            }break;   
            case   3:   if   (   c!=9   )   {//alert("身份证好号码校验位错:最后一位应该为:9");
            return   false;}break;   
            case   4:   if   (   c!=8   )   {//alert("身份证好号码校验位错:最后一位应该为:8");
            return   false;}break;   
            case   5:   if   (   c!=7   )   {//alert("身份证好号码校验位错:最后一位应该为:7");
            return   false;}break;   
            case   6:   if   (   c!=6   )   {//alert("身份证好号码校验位错:最后一位应该为:6");
            return   false;}break;   
            case   7:   if   (   c!=5   )   {//alert("身份证好号码校验位错:最后一位应该为:5");
            return   false;}break;   
            case   8:   if   (   c!=4   )   {//alert("身份证好号码校验位错:最后一位应该为:4");
            return   false;}break;   
            case   9:   if   (   c!=3   )   {//alert("身份证好号码校验位错:最后一位应该为:3");
            return   false;}break;   
            case   10:   if   (   c!=2   ){//alert("身份证好号码校验位错:最后一位应该为:2");
            return   false}   
            }   
            }   
  else   //15位身份证号   
            {   
            if   (!isInteger(StrNo))   {//alert("身份证号码错误,前15位不能含有英文字母！");
            return   false}     
            }   
    
  switch(StrNo.length){   
  case   15:     
                  if   (isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2)))   
                          {return   true;}   
                  else   
                          {return   false;}   
  case   18:     
                  if   (isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2)))   
                          {return   true;}   
                  else   
                          {return   false;}   
  }   
  //alert("输入的身份证号码必须为15位或者18位！");   
  return   false   
  }   
    
  function   isValidDate(iY,   iM,   iD)   {     
          var   a=new   Date(iY,iM-1,iD);   
          var   y=a.getFullYear();   
          var   m=a.getMonth()+1;   
          var   d=a.getDate();   
          if   (y!=iY   ||   m!=iM   ||   d!=iD)   
          {   
                  //window.alert   ('身份证号码内日期错误！');   
                  return   false;   
          }   
  return   true   
  }   
    
  function   isInteger(str)   {   
  if   (/[^\d]+$/.test(str)){   
  return   false;   
  }   
  return   true;   
  }