function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/*------空格--------*/
/*
pub_trim 功能：去掉字符串左侧和右侧的空格;
	 参数：字符串 str;
	 返回值:去掉空格后的字符串
*/
function pub_trim(str)
{
	if (str.length > 0) {
		while ((str.substring(0,1) == " ") && (str.length > 0)) {
			str = str.substring(1,str.length)
		}
		while (str.substring(str.length-1,str.length) == " ") {
			str = str.substring(0,str.length-1)
		}
	}
	return str
}

/*
pub_trim 功能：去掉obj控制值中的字符串左侧和右侧的空格;
	 参数：字符串 str;
	 返回值:去掉空格后的字符串
*/
function pub_trimObj(obj,ifAlert,alertStr,ifFocus)
{
	var argv = pub_trimObj.arguments
	var argc = pub_trimObj.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null
	var ifFocus=(4<=argc)?argv[1]:false

	var str = obj.value
	if (pub_trim(str)==""){
		if(ifAlert)
			if(alertStr!=null && pub_trim(alertStr!=""))
				alert(alertStr)
		if(ifFocus)
			obj.focus()
		return false
	}
	obj.value=str
	return true
}
/*
pub_ltrim 功能：去掉字符串左边最前的空格
	  参数：字符串 str
	  返回值:去掉左侧空格后的字符串
*/
function pub_ltrim(str)
{
	if (str.length > 0) {
		while ((str.substring(0,1) == " ") && (str.length > 0)) {
			str = str.substring(1,str.length)
		}
	}
	return str
}

/*
pub_rtrim 功能介绍：去掉用字符串右边最后的空格
  	  参数说明：要检查的字符串
  	  返回值:去掉右侧空格后的字符串
*/
function pub_rtrim(str)
{
	if (str.length > 0) {
		while (str.substring(str.length-1,str.length) == " ") {
			str = str.substring(0,str.length-1)
		}
	}
	return str
}

/*
pub_space 功能介绍：去掉字符串重所有的空格
	  参数说明：要检查的字符串
	  返回值：去掉空格后的字符串
*/
function pub_space(str)
{
	var newstr1,newstr2
	newstr1=new String("")
	newstr2=new String("")
	for (i=0;i<str.length;i++)
	{
		newstr2=str.substr(i,1)
		if (newstr2!=' '){newstr1=newstr1+newstr2}
	}
	return newstr1
}

/*-------Check函数--------
只要不特殊说明，一般的pub_check***的函数中包含两个参数ifAlert,alertStr
如果ifAlert为false,不给提示信息
否则:如果alertStr参数存在，并且非空，则给出提示信息alertStr
     如果alertStr参数不存在或者为“”，则给出提示相应的已经写定的提示信息

pub_checkIsEmail 功能介绍：检查是否为Email Address
		 参数说明：要检查的字符串
	         返回值：false：不合法  true：合法
*/

function pub_checkIsEmail(a,ifAlert,alertStr)
{
	var result = true
	var argv = pub_checkIsEmail.arguments
	var argc = pub_checkIsEmail.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	var i=a.length;

	if(i==0) {
		if(ifAlert)
			if(alertStr==null || pub_space(alertStr)==""){alert ("您填写e-mail地址为空!")}else{alert(alertStr)}
		return false
	}

	var temp = a.indexOf('@');
	var tempd = a.indexOf('.');

	for(var k=0;k<a.length;k++)
	{
		if(a.charAt(k)==" "){
			if(ifAlert)
				if(alertStr==null || pub_space(alertStr)==""){alert ("您填写e-mail地址中不可以含空格!")}else{alert(alertStr)}
			return false
		}
	}

	if (temp > 0) {
		if ((i-temp) > 3){
			if(tempd>0){
				if (((tempd-temp)>1) && ((i-tempd)>1)){
					return true;
				}
				else{
					result = false;
				}
			}else{
				result = false;
			}
		}else{
			result = false
		}
	}else{
		result = false;
	}
//	alert("result" + result)
//        alert("ifAlert" + ifAlert)
	if(!result && ifAlert){
		if(alertStr==null || pub_space(alertStr)=="")
                {
                  alert("检查Email地址是否填写正确")
                }
                else
                {
                  alert(alertStr)
                }
	}
	return result
}
function pub_checkRightPassWord(str)
 {
   for (var i=0; i<str.value.length;i++)
    {
     var ch= str.value.substring(i,i+1);


     if (!( (ch>="0"&&ch<="9")||(ch>="a"&&ch<="z")||(ch>="A"&&ch<="Z") ))
        {
         alert("用户密码应该由数字、字母组成");
         return false;
        }
    }
  return true;
 }
/**
 *参数：
 */
function pub_checkPassword(paswObj,confirmPaswObj){
  var passObjValue = paswObj.value
  var confirmPaswObjValue = confirmPaswObj.value
  if(pub_trim(passObjValue)==""){
    alert("请输入用户密码")
    paswObj.focus()
    return false
  }
  if(pub_trim(confirmPaswObjValue)==""){
    alert("请输入确认密码")
    confirmPaswObj.focus()
    return false
  }
  if(passObjValue.length<6){
      alert("输入的密码不少于6位！")
      paswObj.focus()
      return false
  }
  if(confirmPaswObjValue.length<6){
      alert("输入的确认密码不少于6位！")
      confirmPaswObj.focus()
      return false
  }

  if(!pub_checkRightPassWord(paswObj)){
    paswObj.focus()
    return false
  }

  if( passObjValue != confirmPaswObjValue ) {
                 alert("\两次密码输入不一致 !!");
                confirmPaswObj.focus();
                return false;
  }
  return true
}

/*
函数名：pub_checkStrLength
功能介绍：检查字符串的长度,方便判断是不是超过指定长度
参数说明：要检查的字符串strTemp,指定长度strlength
返回值：不超过true，超过false
是否有提示：根据ifAlert的设置
*/
function pub_checkStrLength(strTemp,strLength,ifAlert,alertStr)
{
	var argv = pub_checkStrLength.arguments
	var argc = pub_checkStrLength.arguments.length

	var ifAlert=(3<=argc)?argv[2]:false
	var alertStr=(4<=argc)?argv[3]:null

	if(strTemp.length>strLength )
	{
		if(ifAlert)
			if(alertStr==null || pub_space(alertStr)==""){
				alert("输入的长度不得大于" + strLength)
			}else{
				alert(alertStr)
			}
		return false
	}
	return true
}

/*
功能：判断IP地址的合法性
参数：IPvalue是要检验的IP地址值
返回值：
*/
function pub_checkIsIP(IPvalue,ifAlert,alertStr)
{
	var argv = pub_checkIsIP.arguments
	var argc = pub_checkIsIP.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	errorString = "";
	theName = "IPaddress";

	var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
	var ipArray = IPvalue.match(ipPattern);

	if (IPvalue == "0.0.0.0"){
		errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	}else if (IPvalue == "255.255.255.255"){
		errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	}

	if (ipArray == null){
		errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
	}else {
		for (i = 0; i < 4; i++) {
			thisSegment = ipArray[i];
			if (thisSegment > 255) {
				errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
				i = 4;
			}
			if ((i == 0) && (thisSegment > 255)) {
				errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
				i = 4;
	      		}
	   	}
	}
	extensionLength = 3;
	if (errorString == ""){
		return true;
	}else{
		if(ifAlert){
			if(alertStr==null || pub_space(alertStr)=="")
				alert(errorString)
			else
				alert(alertStr)
		}
		return false
	}
}
/*
函数名：pub_checkIsPostCode
功能介绍：检查邮政编码合法性
参数说明：要检查的字符串
返回值：false：不合法  true：合法
是否提示：Y
*/
function pub_checkIsPostCode(a,ifAlert,alertStr)
{
	var result=true
	var argv = pub_checkIsPostCode.arguments
	var argc = pub_checkIsPostCode.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	var i,j,strTemp;
	strTemp="0123456789";
	if ( a.length!= 6 )
	{
		if(ifAlert)
			if(alertStr==null || pub_space(alertStr)=="")
				alert("你填写的邮政编码不是6位的!")
			else
				alert(alertStr)
		return false
	}
	for (i=0;i<a.length;i++)
	{
		j=strTemp.indexOf(a.charAt(i));
		if (j==-1)
		{
		//说明有字符不是数字
			if(ifAlert)
				if(alertStr==null || pub_space(alertStr)=="")
					alert("你填写的邮政编码不正确！有字符")
				else
					alert(alertStr)
			return false;
		}
	}
	//说明是数字
	return true;
}

/*
函数名：pub_checkIsID
功能介绍：检查身份证是否合法
参数说明：要检查的字符串
返回值：false：不合法  true：合法
是否提示：Y
*/
function pub_checkIsID(a,ifAlert,alertStr)
{
	var result=true
	var argv = pub_checkIsID.arguments
	var argc = pub_checkIsID.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	var i,j,strTemp;
	strTemp="0123456789";
	if ( a.length!= 15 && a.length!=18 )
	{
		if(ifAlert)
			if(alertStr==null || pub_space(alertStr)=="")
				alert("你填写的身份证号码不是15位或18位的！")
			else
				alert(alertStr)
		return false
	}
	for (i=0;i<a.length;i++)
	{
		j=strTemp.indexOf(a.charAt(i));
		if(i==a.length-1 && a.charAt(i)=='X') continue;
		if (j==-1)
		{
		//说明有字符不是数字
			if(ifAlert)
				if(alertStr==null || pub_space(alertStr)=="")
					alert("你填写的身份证号码不正确！有字符")
				else
					alert(alertStr)
			return false;
		}
	}
	//说明是数字
	var as_birthday = new String(a);
	var ls_year,ls_month,ls_day;
	var ld_date = null;
	switch(as_birthday.length)
	{
		case 15:
			ls_year = "19" + as_birthday.substr(6,2);
			ls_month = as_birthday.substr(8,2);
			ls_day = as_birthday.substr(10,2);
			ld_date = new Date(ls_year,ls_month-1,ls_day);
	//		检验月、日、年的合法性
			if (pub_checkIsDate(ls_year,ls_month,ls_day)==false)
				ld_date = null;
			break;
		case 18:
			ls_year = as_birthday.substr(6,4);
			ls_month = as_birthday.substr(10,2);
			ls_day = as_birthday.substr(12,2);
			ld_date = new Date(ls_year,ls_month-1,ls_day);

	//		检验月、日、年的合法性
			if (pub_checkIsDate(ls_year,ls_month,ls_day)==false)
				ld_date = null;
			break;
	}
	if(ld_date==null){
		if(ifAlert)
			if(alertStr==null || pub_space(alertStr)=="")
				alert("身份证不合法")
			else
				alert(alertStr)
		return false
	}
	return true;
}

//校验
/*函数名：pub_checkTel
功能介绍：检查是否为电话号码
参数说明：TEl为检查的字符串
         alertStr为要显示提示语句，可以不输
	 ifAlert如果为TRUE，则显示alertStr
	        如果为flase，则不显示提示语句
返回值：true为是合法，false为不合法
是否有提示语句：ifAlert如果为TRUE，则显示alertStr
	             如果为flase，则不显示提示语句
*/
function pub_checkIsTel(TEL,ifAlert,alertStr)
{
	var argv = pub_checkIsTel.arguments
	var argc = pub_checkIsTel.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	var i,j,strTemp;
	strTemp="0123456789-()# ";
	for (i=0;i<TEL.length;i++)
	{
		j=strTemp.indexOf(TEL.charAt(i));
		if (j==-1)
		{
		//说明有字符不合法
			if(ifAlert)
				if(pub_space(alertStr)=="" || alertStr==null)
					alert("输入的电话号码不合法")
				else
					alert(alertStr)
			return false;
		}
	}
	//说明合法
	return true;
}

/*函数名：pub_checkIsLoginName
功能介绍：检查登录名不为空，而且合法即
         只能由英文字母(a-z)或(A-Z),数字(0-9),下划线(_)组成。登录名必需以字母开头，大小写没有区别
参数说明：name为检查的字符串
返回值：true为是合法，false为不合法
是否有提示语句：Y
*/
function pub_checkIsLoginName(name,ifAlert,alertStr)
{
	var argv = pub_checkIsLoginName.arguments
	var argc = pub_checkIsLoginName.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

        var i, n
        var tempstr1="0123456789-"
        var tempstr2="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
        if(name.length==0 || pub_trim(name)==""){
        	if(ifAlert)
        		if(pub_space(alertStr)=="" || alertStr==null)
					alert("请输入登录名")
			else
					alert(alertStr)
        	return false
        }
        if(tempstr2.indexOf(name.charAt(0))==-1){
        	if(ifAlert)
        		if(pub_space(alertStr)=="" || alertStr==null)
					alert("请输入正确的登录名，必需以字母开头。")
			else
					alert(alertStr)
                return false
        }
        for (i=0; i<name.length; i++)
        {
                n = name.charAt(i)
                if ((tempstr1.indexOf(n)==-1) && (tempstr2.indexOf(n)==-1))
                {
                	if(ifAlert)
                		if(pub_space(alertStr)=="" || alertStr==null)
					alert('请输入正确的登录名，只能由英文字母(a-z)或(A-Z), 数字(0-9)和下划线(_)组成。');
				else
					alert(alertStr)
                        return false;
                }
        }
        if (n=='_')
        {
        	if(ifAlert)
        		if(pub_space(alertStr)=="" || alertStr==null)
					alert('请输入正确的登录名，必须以字母或数字结尾')
			else
					alert(alertStr)
                return false
        }
        return true;
}

/*
功能：检查输入的值是数字，而且小数部分不能超过两位
参数：num 要检查的数字；decimalLen 小数点后的最大位数；ifAlert 参数是否要提示；alertStr 参数提示语句值
返回值：true、false
是否有提示：根据
*/
function pub_checkDecimalLen(num,decimalLen,ifAlert,alertStr)
{
	var argv = pub_checkDecimalLen.arguments
	var argc = pub_checkDecimalLenarguments.length

	var ifAlert=(3<=argc)?argv[2]:false
	var alertStr=(4<=argc)?argv[3]:null

	var len = decimalLen*1+1
	if(!isNaN(num)){
		if(num.indexOf('.')>0)
		{
			num=num.substr(num.indexOf('.')+1,num.length-1);

			if ((num.length)<len){
				return true;
			}else{
				if(ifAlert)
					if(alertStr==null || pub_trim(alertStr)==""){
						alert("输入的值的小数点后最多有"+ decimalLen + "位")
					}else{
						alert(alertStr)
					}
				return false;
			}
		}
		return true;
	}else{
		if(ifAlert)
			if(alertStr==null || pub_trim(alertStr)==""){
				alert("输入"+num+"的值不是数字")
			}else{
				alert(alertStr)
			}
		return false
	}

}

function pub_checkIsNum(num,ifAlert,alertStr){
	var argv = pub_checkIsNum.arguments
	var argc = pub_checkIsNum.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	if(isNaN(num)){
		if(ifAlert)
				if(alertStr==null || pub_trim(alertStr)==""){
						alert(num+"不是数字")
				}else{
						alert(alertStr)
				}

		return false
	}
	return true
}

/*
功能：检查输入的值是浮点数
参数：num 要检查的数字；ifAlert 参数是否要提示；alertStr 参数提示语句值
返回值：true、false
是否有提示：根据
*/
function pub_checkIsFloat(num,ifAlert,alertStr)
{
	var argv = pub_checkIsFloat.arguments
	var argc = pub_checkIsFloat.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

	var temp="0123456789."
	var len = num.length
	var pointIndex = num.indexOf(".")
	for(i=0;i<num.length;i++){
		var value = num.charAt(i)
		if(temp.indexOf(value)==-1){
			if(ifAlert)
				if(alertStr==null || pub_trim(alertStr)==""){
						alert("输入的不是数字")
				}else{
						alert(alertStr)
				}
			return false
		}
	}
	if(pointIndex==0){
		if(ifAlert)
			if(alertStr==null || pub_trim(alertStr)=="")
			{
				alert("请按照正确的格式输入小数")
			}else{
				alert(alertStr)
			}
		return false
	}
	return true
}
/*
函数名：pub_checkIsLetter
功能介绍：检查字符串是否全部为字母
参数说明：   名称               类型     值
	 要检查的字符串c        string
	 是否有提示标志ifAlert  boolean  true/false
	 大小写字母标志flag     string   U/L 或者u/l或者N/n  U大写、L小写 、N不区分大小写
返回值：不超过true，超过false
是否有提示：根据ifAlert的设置
*/
function pub_checkIsLetter(str,flag,ifAlert,alertStr)
{
	var argv = pub_checkIsLetter.arguments
	var argc = pub_checkIsLetter.arguments.length

	var ifAlert=(3<=argc)?argv[2]:false
	var alertStr=(4<=argc)?argv[3]:null

        var f = flag.toUpperCase(flag)
        if(f=='N'){
		for(i=0;i<str.length;i++){
			c = str.charAt(i)
	        	if (!(((c>='a') && (c<='z'))||((c>='A') && (c<='Z')))){
	                	if(ifAlert)
	                		if(alertStr && pub_space(alertStr)!=" "){
	                			alert(alertStr)
	                		}else{
	                			alert("输入的值必须为字符")
	                		}
	                	return false
	                }
		}
		return true
	}
	if(f=='U'){
		for(i=0;i<str.length;i++){
			c = str.charAt(i)
	        	if (!((c>='A') && (c<='Z'))){
	                	if(ifAlert)
	                		if(alertStr && pub_space(alertStr)!=" "){
	                			alert(alertStr)
	                		}else{
	                			alert("输入的值必须为大写字符")
	                		}
	                	return false
	                }
		}
		return true
	}
	if(f=='L'){
		for(i=0;i<str.length;i++){
			c = str.charAt(i)
	        	if (!((c>='a') && (c<='z'))){
	                	if(ifAlert)
	                		if(alertStr && pub_space(alertStr)!=" "){
	                			alert(alertStr)
	                		}else{
	                			alert("输入的值必须为小写字母字符")
	                		}

	                	return false
	                }
		}
		return true
	}
}

/*
函数名：pub_checkIsInt
功能介绍：检查是否为int
参数说明：要检查的字符串acode
返回值：是true，不是false
是否有提示：Y
*/
function pub_checkIsInt(acode,ifAlert,alertStr)
{
	var argv = pub_checkIsInt.arguments
	var argc = pub_checkIsInt.arguments.length

	var ifAlert=(2<=argc)?argv[1]:false
	var alertStr=(3<=argc)?argv[2]:null

        var strTemp="0123456789"
        if (isNaN(acode)) {
        	if(ifAlert)
        		if(alertStr==null || pub_space(alertStr)==""){
        			alert("输入的值不是数字")
        		}else{
        			alert(alertStr)
        		}
                return false;
        }
        for(var i=0;i<acode.length;i++){
        	if (strTemp.indexOf(acode.charAt(i))==-1) {
             		if(ifAlert)
             			if(alertStr==null || pub_space(alertStr)==""){
             				alert("输入的值不是整数")
             			}else{
             				alert(alertStr)
             			}
             		return false;
        	}
        }
	return true;
}

/*
函数名：pub_checkIsTime
功能介绍：检查是否为时间
参数说明：yearStr, monthStr, dayStr,hourStr,minStr
返回值：true,false
是否有提示：N
*/
function pub_checkIsTime(yearStr, monthStr, dayStr,hourStr,minStr,ifAlert,alertStr)
{
	var argv = pub_checkIsTime.arguments
	var argc = pub_checkIsTime.arguments.length

	var ifAlert=(6<=argc)?argv[5]:false
	var alertStr=(7<=argc)?argv[6]:null

        var yearInt = parseInt(yearStr,10);
        var monthInt = parseInt(monthStr,10) - 1;
        var dayInt = parseInt(dayStr,10);
	var hourInt = parseInt(hourStr,10);
	var minStr = parseInt(minStr,10);
	var result=true

	if(yearInt<1 || dayInt<1 ||minStr<1){
		result=false

	}else if (monthInt > 11 || monthInt<0)
        {
                result=false
        }

        monthDays = new Array(12)
        monthDays [0] = 31;
        monthDays [1] = 28;
        monthDays [2] = 31;
        monthDays [3] = 30;
        monthDays [4] = 31;
        monthDays [5] = 30;
        monthDays [6] = 31;
        monthDays [7] = 31;
        monthDays [8] = 30;
        monthDays [9] = 31;
        monthDays [10] = 30;
        monthDays [11] = 31;

        if (yearInt % 100 == 0)
        {
          if (yearInt % 400 == 0)
          {
            monthDays[1] = 29;
          }
        }
        else
        {
          if (yearInt % 4 == 0)
          {
            monthDays[1] = 29;
          }
        }

        if (dayInt > monthDays[monthInt])
        {
          result = false
        }
	if ( (hourInt > 23) || (hourInt < 0))
	{
		result = false
	}
	if ( (minInt > 59) || (minInt < 0))
	{
		result = false
	}

	if(!result && ifAlert){
             	if(alertStr==null || pub_space(alertStr)==""){
             		alert("输入的"+yearStr+","+monthStr+","+dayStr+","+hourStr+","+minStr+"构不成合法的日期时间")
             	}else{
             		alert(alertStr)
             	}
        }
        return result;
}

/*
函数名：pub_checkIsDate
功能介绍：检查是否为日期
参数说明：yearStr, monthStr, dayStr
返回值：true,false
是否有提示语句：N
*/
function pub_checkIsDate(yearStr, monthStr, dayStr,ifAlert,alertStr)
{
	var argv = pub_checkIsDate.arguments
	var argc = pub_checkIsDate.arguments.length

	var ifAlert=(4<=argc)?argv[3]:false
	var alertStr=(5<=argc)?argv[4]:null

        var yearInt = parseInt(yearStr,10);
        var monthInt = parseInt(monthStr,10) - 1;
        var dayInt = parseInt(dayStr,10);
        var result = true

        if(yearInt<1){
		result=false
        }
        if (monthInt > 11 || monthInt<0)
        {
                result=false
        }

        if(dayInt<1){
        	result=false
        }

        monthDays = new Array(12)

        monthDays [0] = 31;
        monthDays [1] = 28;
        monthDays [2] = 31;
        monthDays [3] = 30;
        monthDays [4] = 31;
        monthDays [5] = 30;
        monthDays [6] = 31;
        monthDays [7] = 31;
        monthDays [8] = 30;
        monthDays [9] = 31;
        monthDays [10] = 30;
        monthDays [11] = 31;

	if (yearInt % 100 == 0)
        {
          if (yearInt % 400 == 0)
          {
            monthDays[1] = 29;
          }
        }
        else
        {
          if (yearInt % 4 == 0)
          {
            monthDays[1] = 29;
          }
        }

        if (dayInt > monthDays[monthInt])
        {
          result=false
        }

        if(!result && ifAlert){
             	if(alertStr==null || pub_space(alertStr)==""){
             		alert("输入的"+yearStr+","+monthStr+","+dayStr+"构不成合法的日期")
             	}else{
             		alert(alertStr)
             	}
        }

        return result;
}

/*
函数名：pub_checkIsDateYYYYMMDD
功能介绍：检查是否符合日期格式yyyy-mm-dd或者yyyy/mm/dd等
参数说明：要检查的字符串datestr,格式如“2001-12-21”
         日期链接符：concatStr,格式如：'-'、'/',缺省默认为'-'
返回值：false：不是日期  true：是日期
是否有提示：N
*/
function pub_checkIsDateYYYYMMDD(datestr,concatStr,ifAlert,alertStr)
{
	var result=true
	var argv = pub_checkIsDateYYYYMMDD.arguments
	var argc = pub_checkIsDateYYYYMMDD.arguments.length

	var ifAlert=(3<=argc)?argv[2]:false
	var alertStr=(4<=argc)?argv[3]:null

	var lthdatestr
	var concat
	if (datestr != "")
		lthdatestr= datestr.length ;
	else
		lthdatestr=0;

	var tmpy="";
	var tmpm="";
	var tmpd="";

	var status;

	status=0;

	if(concatStr){
		concat = concatStr
	}else{
		concat = '-'
	}
	if ( lthdatestr== 0){
		result=false
	}
	for (i=0;i<lthdatestr;i++)
	{
		if ((datestr.charAt(i)<'0'||datestr.charAt(i)>'9')&&datestr.charAt(i)!=concat)
		{
			result=false
		}
	}

	for (i=0;i<lthdatestr;i++)
	{

		if (datestr.charAt(i)== concat)
		{
			status++;
		}
		if (status>2)
		{
			result=false
		}
		if ((status==0) && (datestr.charAt(i)!=concat))
		{
			tmpy=tmpy+datestr.charAt(i)
		}
		if ((status==1) && (datestr.charAt(i)!=concat))
		{
			tmpm=tmpm+datestr.charAt(i)
		}
		if ((status==2) && (datestr.charAt(i)!=concat))
		{
			tmpd=tmpd+datestr.charAt(i)
		}

	}

	year=new String (tmpy);
	month=new String (tmpm);
	day=new String (tmpd)

	if(status!=2 ||year=="" || month=="" ||day==""){
		result=false
	}

	if(!pub_checkIsDate(year,month,day)){
		result=false
	}

	if(!result && ifAlert){
             	if(alertStr==null || pub_space(alertStr)==""){
             		alert("输入的"+datestr+"请按照yyyy"+concat+"mm"+concat+"dd的格式录入")
             	}else{
             		alert(alertStr)
             	}
        }

	return result;
}

//判断输入的值是否符合给定的格式    
function pub_checkDateFormate(ObjectValue,ObjectFormate){
	
        var formate=ObjectFormate.toUpperCase()
        var value = ObjectValue
        var year = 0;
        var month = 0;
        var day = 0;

        var formatelen = ObjectFormate.length  //得到日期格式的长度
        var valuelen = ObjectValue.length      //得到日期值得长度

        if(formatelen!=valuelen){
                alert("请按照" + formate  + "格式输入日期")
                return false
        }
        //判断年份
        var startsize = formate.indexOf("Y")
        var endsize = formate.lastIndexOf("Y")
        var tempvalue = value.substring(startsize,endsize+1)
        if(isNaN(tempvalue)){
                alert("输入的年份值含非数字字符！")
                return false
        }
        year = tempvalue*1

        //判断月份的合法性
        startsize = formate.indexOf("M")
        endsize = formate.lastIndexOf("M")
        tempvalue = value.substring(startsize,endsize+1)
        
        if(isNaN(tempvalue)){
                alert("输入的月份值含非数字字符！")
                return false
        }
        month =tempvalue*1
        if((month>12) ||(month<1)){
                alert("月份值在1-12之间")
                return false
        }

        //判断日期的合法性
        if(formate.indexOf("D")){
        startsize = formate.indexOf("D")
        endsize = formate.lastIndexOf("D")
        tempvalue = value.substring(startsize,endsize+1)
        if(isNaN(tempvalue)){
                alert("输入的日期值不是数字")
                return false
        }
        day = tempvalue*1
        var maxvalue = pub_getLastDay(year,month-1)
        if(day>maxvalue){
                alert("日期的最大数值为"+ maxvalue)
                return false
        }
        }
        for(var i=0;i<formatelen;i++){
                tempvalue = formate.charAt(i);
                if((tempvalue=="Y")||(tempvalue=="M")||(tempvalue=="D")){
                        continue
                }
                if(value.charAt(i)!=tempvalue){
                        alert("请按照" + formate  + "格式输入日期")
                        return false
                }
        }
        return true
}    

/*
函数名：pub_addMonthsToDate
功能介绍：给某一合法日期dateStr新增或者减少monthLen个月份
参数说明：要增加的字符串datestr,格式如“2001-12-21”
         日期链接符：concatStr,格式如：'-'、'/',缺省默认为'-'
返回值：成功：增加后的日期字符串 失败：返回""
是否有提示：N
*/
function pub_addMonthsToDate(dateStr,monthLen,concatStr,ifAlert,alertStr)
{
	var result=true
	var argv = pub_addMonthsToDate.arguments
	var argc = pub_addMonthsToDate.arguments.length

	var ifAlert=(4<=argc)?argv[3]:false
	var alertStr=(5<=argc)?argv[4]:null

    if(!pub_checkIsDateYYYYMMDD(dateStr,concatStr,ifAlert,alertStr)){
    		return ""
    }

    var year = parseInt(dateStr.substring(0,dateStr.indexOf(concatStr)),10)
    var	month =parseInt(dateStr.substring(dateStr.indexOf(concatStr)+1,dateStr.lastIndexOf(concatStr)),10)
    var datestr = ""

    datestr = dateStr.substring(dateStr.lastIndexOf(concatStr)+1,dateStr.length)
    var addYear = parseInt(monthLen/12)
    var addMonth = parseInt(monthLen%12)
    var lastYear = ""
    var lastMonth = ""

    if(monthLen>=0){
		if((month+addMonth*1)>12){
			addYear = addYear+1
			lastMonth = month+addMonth*1-12
		}else if((month+addMonth*1)<12){
			lastMonth = month+addMonth*1
		}else if((month+addMonth*1)==12){
			lastMonth = 12
		}
	}else{
		if((month+addMonth*1)>0){
			lastMonth = month+addMonth*1
		}else if((month+addMonth*1)<0){
			addYear = addYear - 1
			lastMonth = 12-(month-addMonth*1)
		}else if((month+addMonth*1)==0)  {
			addYear = addYear - 1
			lastMonth = 12
		}
	}
    lastYear = year + addYear
    if(lastMonth<10)    {
		lastMonth = "0" + lastMonth
    }
    var returnstr = lastYear + concatStr + lastMonth + concatStr + datestr

    return returnstr
}

/*
功能：对于已经通过验证的日期把时间写成标准的格式 :2000-1-1 -> 2000-01-01
concatstr为日期参数的链接符
*/
function pub_convertToDateYYYYMMDD(datestr,concatstr)
{
	var lthdatestr
	lthdatestr= datestr.length ;

	var lastdate="";
	var tmpy="";
	var tmpm="";
	var tmpd="";
	var status =0 ;
	var conStr = "-";
	if(concatstr){
		conStr = concatstr
	}
	for (i=0;i<lthdatestr;i++)
	{	if (datestr.charAt(i)== concatstr)
		{
			status++;
		}
		if ((status==0) && (datestr.charAt(i)!=conStr))
		{
			tmpy=tmpy+datestr.charAt(i)
		}
		if ((status==1) && (datestr.charAt(i)!=conStr))
		{
			tmpm=tmpm+datestr.charAt(i)
		}
		if ((status==2) && (datestr.charAt(i)!=conStr))
		{
			tmpd=tmpd+datestr.charAt(i)
		}
	}
	year=new String (tmpy);
	month=new String (tmpm);
	day=new String (tmpd)
	if (month.length ==1){
	   month = "0"+month;
	}
	if (day.length ==1){
		day = "0"+day;
	}
	lastdate = year + concatstr +month + concatstr + day ;
	return lastdate ;
}

/*
函数名：pub_compareDate
功能介绍：比较日期
参数说明：要比较的日期date1,date2,日期链接符："-","/"
	 concatStr1为date1的日期链接符；concatStr2为date2的链接符
返回值：0：date1等于date2； 1：date1<date2; 2:date1>date2
是否有提示：N
*/
function pub_compareDate(date1,concatStr1,date2,concatStr2)
{
	date1 = pub_convertToDateYYYYMMDD(date1,concatStr1)
	date2 = pub_convertToDateYYYYMMDD(date2,concatStr2)

	if(date1<date2)
	{
		return 1
	}
	if(date1>date2)
	{
		return 2
	}
	else
	{
		return 0
	}
}
/*
将合法的15位身份证转变为18位
参数：i_citizen_id 合法的身份证号码
     i_century “19”或者“20”
返回值：失败：-1；成功：18位身份证
提示语句：无
*/
function pub_certno15to18(i_citizen_id,i_century)
{
	var citizen_id = new String(i_citizen_id);
	var century = new String(i_century);
	var new_citizen_id = new String();

	var tmp = new String();
	var id = new Array(18);
	var i = 1;
	//加权因子W
	var w = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);

	if (citizen_id.length!=15||century.length!=2)
		return -1;

	for(i=1;i<=15;i++)
	{
		tmp = citizen_id.charAt(i-1);
		if(tmp<"0"||tmp>"9")
			return -1;
		if(i<=6)
			id[i-1] = parseInt(tmp,10);
		else
			id[i+1] = parseInt(tmp,10);
	}

	for(i=7;i<=8;i++)
	{
		tmp = century.charAt(i-7);
		if(tmp<"0"||tmp>"9")
			return -1;
		id[i-1] = parseInt(tmp,10);
	}

	var count = 0;
	for(i=1;i<=17;i++)
	{
		count += id[i-1] * w[i-1];
	}
	id[17] = count - Math.floor(Math.floor(count/11)*11);
	id[17] = 12 - id[17];
	id[17] = id[17] - Math.floor(Math.floor(id[17]/11)*11);
	if(id[17] == 10)
		new_citizen_id = citizen_id.substr(0,6) + century + citizen_id.substr(6,9) + "X";
	else
		new_citizen_id = citizen_id.substr(0,6) + century + citizen_id.substr(6,9) + id[17];

	return new_citizen_id;
}

/*
功能：得到身份证中的出生日期
参数：cert_no 合法的身份证号码；concatStr 日期的链接符,缺省时为"-"
返回值：失败：-1；成功：出生日期
提示语句：无
*/
function pub_certnoToBirthday(cert_no,concatStr)
{
	var as_birthday = new String(cert_no);
	var ls_year,ls_month,ls_day;
	var ld_date = null;
	var concat = "-"

	if(concatStr && pub_trim(concatStr)!="")
		concat = concatStr

	if(as_birthday.length!=15&&as_birthday.length!=18)
	{
		ld_date = null;
		return ld_date;
	}

	switch(as_birthday.length)
	{
		case 15:
			ls_year = "19" + as_birthday.substr(6,2);
			ls_month = as_birthday.substr(8,2);
			ls_day = as_birthday.substr(10,2);
			ld_date = new Date(ls_year,ls_month-1,ls_day);
	//		检验月、日、年的合法性
			if (pub_checkIsDate(ls_year,ls_month,ls_day)==false)
				ld_date = null;
			break;
		case 18:
			ls_year = as_birthday.substr(6,4);
			ls_month = as_birthday.substr(10,2);
			ls_day = as_birthday.substr(12,2);
			ld_date = new Date(ls_year,ls_month-1,ls_day);

	//		检验月、日、年的合法性
			if (pub_checkIsDate(ls_year,ls_month,ls_day)==false)
				ld_date = null;
			break;
	}


        if(ld_date==null){
        	return -1
        }else{
        	var currentMonth = ld_date.getMonth()+1
        	var currentDate = ld_date.getDate()
        	if((currentMonth*1)<10){
        		currentMonth = "0" + currentMonth
        	}
        	if((currentDate*1)<10){
        		currentDate = "0" + currentDate
        	}
		return ld_date.getFullYear()+ concat +(currentMonth)+ concat + currentDate;
	}

}

/*
功能：得到身份证中的性别
参数：cert_no 合法的身份证号码
返回值：失败：-1；成功：1(男)、2(女)
提示语句：无
*/
function pub_certnoToSexid(cert_no)
{
	var id_card = new String(cert_no);
	var sexid;
	switch(id_card.length)
	{
		case 15:
			sexid = parseInt(id_card.charAt(id_card.length-1),10);
			if(sexid%2==0) return "2";     //女
			else return "1";//男
		case 18:
			sexid = parseInt(id_card.charAt(id_card.length-2),10);
			if(sexid%2==0) return "2";     //女
			else return "1";//男
	}
	 return -1;
}

//定时查看告警信息
function showFeedBackAlarm(){
	var Digital=new Date();
	var hours=Digital.getHours() ;
	var minutes=Digital.getMinutes();
	var seconds=Digital.getSeconds() ;
	for(var tempid =0;tempid<startArray.length;tempid++){
		if(hours == startArray[tempid] && minutes == 0 && seconds>=0 && seconds<5){
			if(confirm("是否查看告警信息?")){
				//location = "./AlarmForm.jsp";
				var popup = null;
				popup = window.open('','告警信息','alwaysRaised,dependent,height=600,width=750, top=100,left=150, menubar=no,scrollbars=no,resizable=no ,location=no');
				if (popup != null) {
					if (popup.opener == null) {
						popup.opener = self;
					}
					popup.location.href = 'PopupAlarmForm.jsp';
					popup.focus();
					return true ;
				}
			}
			else{
				break ;
				return true ;
			}
		}
	}
	setTimeout("showFeedBackAlarm()",4000);
}

/*
函数名：openAccountKeyDown()
功能介绍：页面中按下回车键，
	如果在提交按钮上则表示提交，
	其他地方表示跳到下一个输入点
	提交和刷新之间，现在可以从提交按向右到刷新，但还不能向左回来
返回值：true or false
营业页面中按键的处理操作
*/
function openAccountKeyDown(){
	if (window.event.keyCode==13){
		//只要不是提交按钮，回车改为tab
		if (window.event.srcElement.name!="Submit"){
			window.event.keyCode=9;
		}
	}
	//在提交按钮上按下向右，相当于tab，转移到刷新按钮
	if (window.event.keyCode==39){
		if (window.event.srcElement.name=="Submit"){
			window.event.keyCode=9;
		}
	}

	return false;
}

 //求出本月的最后一天
function pub_getLastDay(year,month){
	var last_mon = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
	var mon2
	if(year%4==0)
		mon2 = true
        else
		mon2 = false

	last_mon[1] = (mon2)?29:28
	return last_mon[month-1]

}
//判断输入的值是否符合给定的格式
function pub_checkDateFormate(ObjectValue,ObjectFormate){

        var formate=ObjectFormate.toUpperCase()
        var value = ObjectValue
        var year = 0;
        var month = 0;
        var day = 0;

        var formatelen = ObjectFormate.length  //得到日期格式的长度
        var valuelen = ObjectValue.length      //得到日期值得长度

        if(formatelen!=valuelen){
                alert("请按照" + formate  + "格式输入日期")
                return false
        }
        //判断年份
        var startsize = formate.indexOf("Y")
        var endsize = formate.lastIndexOf("Y")
        var tempvalue = value.substring(startsize,endsize+1)
        if(isNaN(tempvalue)){
                alert("输入的年份值含非数字字符！")
                return false
        }
        year = tempvalue*1

        //判断月份的合法性
        startsize = formate.indexOf("M")
        endsize = formate.lastIndexOf("M")
        tempvalue = value.substring(startsize,endsize+1)

        if(isNaN(tempvalue)){
                alert("输入的月份值含非数字字符！")
                return false
        }
        month =tempvalue*1
        if((month>12) ||(month<1)){
                alert("月份值在1-12之间")
                return false
        }

        //判断日期的合法性
        if(formate.indexOf("D")){
        startsize = formate.indexOf("D")
        endsize = formate.lastIndexOf("D")
        tempvalue = value.substring(startsize,endsize+1)
        if(isNaN(tempvalue)){
                alert("输入的日期值不是数字")
                return false
        }
        day = tempvalue*1
        var maxvalue = pub_getLastDay(year,month-1)
        if(day>maxvalue){
                alert("日期的最大数值为"+ maxvalue)
                return false
        }
        }
        for(var i=0;i<formatelen;i++){
                tempvalue = formate.charAt(i);
                if((tempvalue=="Y")||(tempvalue=="M")||(tempvalue=="D")){
                        continue
                }
                if(value.charAt(i)!=tempvalue){
                        alert("请按照" + formate  + "格式输入日期")
                        return false
                }
        }
        return true
}



