<!--
//-------------------------------------------
//      函数名： ChkSFZMHM(txtObj)										 
//	  参数说明： 身份证号码所在的TextBox
//    函数说明： 检测是否是正确的身份证号码
//	返回值说明： True  正确的身份证号码
//				 False 错误的身份证号码
//Creater：Stpangpang  2004-10-13
//--------------------------------------------
function ChkSFZMHM(txtObj)
{
	var txt=document.getElementById(txtObj);
	var str=txt.value;
	var birthday
	//判断身份证明号码的长度
	if (str.length!=15 && str.length!=18)
	{
		alert('身份证明号码位数不正确,请确认！');
		txt.select();
		txt.focus();
		return false;	
	}
	else if (str.length==15) 
	{
		birthday='19' + str.substr(6,6)
		if (!ChkData(birthday))
		{
			alert('身份证明号码中出生日期不正确，请确认');
			txt.select();
			txt.focus();
			return false;
		}
		//判断15位是否全部是数字
		if (!/^\d{15}$/.test(str))
		{
			alert('身份证明号码中有非法字符,请确认！')
			txt.select();
			txt.focus();
			return false;
		}
	}
	else if (str.length==18)
	{
		birthday=str.substr(6,8)
		if (!ChkData(birthday))
		{
			alert('身份证明号码中出生日期不正确，请确认');
			txt.select();
			txt.focus();
			return false;
		}
		
		var SFZMHM1 =str.substr(0,17);
		var SFZMHM2=str.substr(17,1);
	
		//判断前17位是否是数字
		//var reg=new RegExp("[^\d{18}|\d{17]}X$]");
		if (!/^\d{17}$/.test(SFZMHM1))
		{
			alert('身份证明号码中有非法字符,请确认！')
			txt.select();
			txt.focus();
			return false;
		}
		//判断身份证明号码的校验位
			var vCode =VerifyCode(str);
	
		if (SFZMHM2.toUpperCase() != vCode)
		{
			alert('身份证明号码中的校验位错误-----应该为 ' + vCode + ' 实际为 ' + SFZMHM2);
			txt.select();
			txt.focus();
			return false;
		}
	}
	return true;
}

//-------------------------------------------
//      函数名： VerifyCode(hm)										 
//	  参数说明： 要计算的身份证号码
//    函数说明： 计算传入18位身份证的校验码
//	返回值说明： 返回校验码
//     Creater： Stpangpang  2004-10-13
//--------------------------------------------
function VerifyCode(hm)
{
	var w=new Array();
	var ll_sum;
	var ll_i;
	var ls_check;
    w[0]=7;
	w[1]=9;
	w[2]=10;
	w[3]=5;
	w[4]=8;
	w[5]=4;
	w[6]=2;
	w[7]=1;
	w[8]=6;
	w[9]=3;
	w[10]=7;
	w[11]=9;
	w[12]=10;
	w[13]=5;
	w[14]=8;
	w[15]=4;
	w[16]=2;
	ll_sum=0;
	for (ll_i=0;ll_i<=16;ll_i++)
	{   
		ll_sum=ll_sum+(hm.substr(ll_i,1)-0)*w[ll_i];
	}
    ll_sum=ll_sum % 11;
    switch (ll_sum)
	{
		case 0 :
			ls_check="1";
			break;
		case 1 :
			ls_check="0";
			break;
		case 2 :
			ls_check="X";
			break;
		case 3 :
			ls_check="9";
			break;
		case 4 :
			ls_check="8";
			break;
		case 5 :
			ls_check="7";
			break;
		case 6 :
			ls_check="6";
			break;
		case 7 :
			ls_check="5";
			break;
		case 8 :
			ls_check="4";
			break;
		case 9 :
			ls_check="3";
			break;
		case 10 :
			ls_check="2";
			break;
		}
	return ls_check  //返回18位身份证的校验码
}
		

function ChkDataPlus(txtObj,allowNull)
{
	var txt=document.getElementById(txtObj);
	var str=txt.value;
	if (allowNull && !ChkData(str))
	{
		alert('日期有错误,请检查！');
		txt.select();
		txt.focus();
		return false ;
	}
	return true;
}

//-------------------------------------------
//      函数名： ChkData(str)										 
//    函数说明： 判断传入的日期是否是正确的日期格式
//	  参数说明： 日期字符串可以是8位或10位
//	返回值说明： True   是正确的日期格式
//				 False  是错误的日期格式
//     Creater：Stpangpang  2004-10-13
//--------------------------------------------

function ChkData(str)
{
	if (str.length==8) 
	{
		str=str.substr(0,4) + '-' + str.substr(4,2) + '-' + str.substr(6,2);
		//alert(str);
	}
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r==null)	return false; 
	var d= new Date(r[1], r[3]-1, r[4]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}


//-------------------------------------------
//      函数名： Trim(str)										 
//    函数说明： 将字符串前后的空格去除
//    参数说明： str 传入日期格式的字符串
//	返回值说明： 返回去除空格的字符串
//     Creater：Stpangpang  2004-10-13
//--------------------------------------------
function Trim(str)
{
	return str.replace(/(^\s*)|(\s*$)/g,"");
}



//---------------------------------------------------------------------------
//    函数名:		ChkLength(str)										 
//    数说明 :	验证输入的字符串是否超过了指定的长度(一个汉字为２个长度)
//    参数说明 :　str 传入日期格式的字符串
//				length 限制的字符串长度
//	返回值说明 :True 字符串没有超过指定的长度
//				False 字符串超过了指定的长度
//    Creater：Stpangpang  2004-10-13
//--------------------------------------------------------------------------
function ChkLength(str,length)
{
	str=str.replace(/[^\x00-\xff]/g,"**");
	if (str.length >length ) return false;
	return true;
}

//-------------------------------
//函数名：Enter2Tab()
//参数  ：无
//说明  ：将文本框中的回车键转换成Tab键
//Creater：Stpangpang  2004-10-13
//-------------------------------
function Enter2Tab()
{
	if ((window.event.srcElement.type=="text" || window.event.srcElement.type=="select-one") && window.event.keyCode==13)
	{
		window.event.keyCode=9;
	}
}

//-------------------------------
//函数名：IsNumeric(txt)
//参数  ：txt
//说明  ：检查输入的是否是数字（针对于记分分值）
//Creater：Stpangpang  2004-10-13
//-------------------------------
function IsNumeric(txt)
{
	if (!/^(0|[1-9]\d{0,})$/.test(txt))
		return false;
	return true;

	
}

//--------------------------------
//函数名 Is15Numeric(txt)
//参数	  txt
//说明	  检查输入的是否是合法的15的数字
//Creater Stpangpang 2004/11/15 16:42
//------------------------------------
function Is15Numeric(txt)
{
	if(!/^\d{15}$/.test(txt))
		return false;
	return true;
}

//-------------------------------
//函数名：CompareDate(txtDate1,txtDate2)
//参数  ：要比较的2个日期字符串
//说明  ：比较2个日期的大小 
//返回值：  > 0   ====>  txtDate1 > txtDate2
//			= 0   ====>  txtDate1 = txtDate2
//			< 0   ====>  txtDate1 < txtDate2
//Creater：Stpangpang  2004-10-13
//-------------------------------
function CompareDate(txtDate1,txtDate2)
{
	try
	{
		//2004-08-09 的格式不认，但是 2004/08/09 可以正确识别 如果需要，可以增加将 "."  到 "/" 的转换
		return(new Date(txtDate1.replace(/-/g,"/")) -new Date(txtDate2.replace(/-/g,"/")));
	}
	catch(e)
	{
		return null;
	}	
}

//-------------------------------
//函数名：ChkZJCX(txtZJCX)
//参数  ：准驾车型代码
//说明  ：检测是否是标准的准驾车型代码
//返回值： 非法的准驾车型代码 （"" 表示全是标准的准驾车型代码）
//			
//Creater：Stpangpang  2004-10-13
//-------------------------------
function ChkZJCX(txtZJCX)
{
	return txtZJCX.replace(/A1|A2|A3|B1|B2|C1|C2|C3|C4|D|E|F|M|N|P/g,"");
}

//--------------------------------------------------
//函数名：ID15To18(zjhm)
//参数  ：15位的证件号码
//说明  ：将15位的身份证号码转换为18位的身份证号码
//返回值： 18位的身份证号码
//
//----------------------------------------------------
function ID15To18(zjhm)
{
	var strJiaoYan =new  Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
	var intQuan =new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
	var ll_sum=0;
	var i;
	var ls_check;
	zjhm = zjhm.substring(0, 6) + "19" + zjhm.substring(6);
	for (i=0;i<=16;i++){
		ll_sum=ll_sum+(parseFloat(zjhm.substr(i,1)))*intQuan[i];
	}
	ll_sum = ll_sum % 11;
	zjhm=zjhm + strJiaoYan[ll_sum];
	return zjhm;
}
	
	//--------------------------------------------------
	//Creater Stpangpang 2004/11/09 13:38
	//函数名:ConvertKeyCode
	//将小键盘的ASCII码转换
	//
	//--------------------------------------------------
	function ConvertKeyCode(keyCode)
	{
		if (keyCode <96 || keyCode>105)
			return keyCode
		return (parseInt(keyCode,10)-48)
	
	}


	//--------------------------------------------------
	//函数名：AutoSelectHPZL
	//Creater Stpangpang 2004/11/09 13:38
	//根据用户键入的数字，自动显示响应的号牌种类
	//参数说明：SelectHPZL - Select 的名字（一般是号牌种类DropDownList.ClientID)
	//-------------------------------------------------
	var keyDown=0;  //保存击键的次数
	var saveKey="";  //保存用户键入的值
	function AutoSelectHPZL(SelectHPZL)
	{
		//非数字退出
		if ((window.event.keyCode<46 || window.event.keyCode>55) && (window.event.keyCode <96 || window.event.keyCode>105))
		{
			return false;
		}
		//keyDown ++ ; //键入的次数增加
		if(++keyDown>2) //如果键入的次数超过2次就退出because Select的Value的值就2位
		{
			keyDown=0;
			saveKey="";
			return false;
		}
		if(keyDown==1) //保存第一次键入的值
		{
			saveKey=String.fromCharCode(ConvertKeyCode(window.event.keyCode));
			return false;
		}
		else if(keyDown==2) //保存第二次的值
		{
			saveKey=saveKey + String.fromCharCode(ConvertKeyCode(window.event.keyCode));	
			var sel =document.getElementById(SelectHPZL);
			sel.value=saveKey;
			keyDown=0;  //清空键入次数
			saveKey=""; //清空保存的键值
		}		
	}

//-->