/**
 * 设置焦点
 * 参数：{thisElement:设置焦点的控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function setfocus(thisElement){
	thisElement.focus();
}

/**
 * 禁止输入字符，只允许输入数字
 * 参数：
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function isNumberKeyed(){
	if ((window.event.keyCode>57 || window.event.keyCode<48) && window.event.keyCode!=13)
		window.event.keyCode=0;
	return 1;
}

/**
 * 禁止输入某个字符
 * 参数：
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function charForbid(i){
	if (window.event.keyCode==i || window.event.keyCode==13)
		window.event.keyCode=0;
	return 1;
}

/**
 * 检查输入框(text)的值(string)是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkTextValue(name, thisElement, maxLength, ifMust) {
	if(ifMust==true){
		if( thisElement.value.length<1){
			alert( name + "您还没有输入!!\n");
			if(thisElement.readonly!=true && thisElement.disabled!=true && thisElement.type!='hidden'){
				setfocus(thisElement);
			}
			return false;
		}
	}
	if( thisElement.value.length>0){
		if (!checkLengthOfStr(name, thisElement, maxLength)){
			return false;
		}
	}
	return true;
}

/**
 * 检查输入框(text)的值(int)是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名 ; checkLength:控件最大长度 ; ifMust:是否必须输入值}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkPositiveIntegerValue( name, thisElement , checkLength , ifMust) {
	if(ifMust==true){
		if( thisElement.value.length<1){
			return(alertFocusReturn( name + "您还没有输入!!\n" , thisElement , false));
		}
	}
	if( thisElement.value.length>0){
		if( checkLength != 0 ) {
			iCheckLength = parseInt(checkLength);

			if(!positiveIntegerCheck(thisElement.value)||thisElement.value.length!=iCheckLength){
				return(alertFocusReturn(name + "请您输入长度为" + iCheckLength + "的正整数!!\n", thisElement , false));
			}
		}
		else{
			if(!positiveIntegerCheck(thisElement.value)){
				return(alertFocusReturn(name + "请您输入正整数!!\n", thisElement , false));
			}
		}
	}
	return true;
}
function chkIntegerValue( name, thisElement , checkLength , ifMust) {
	if(ifMust==true){
		if( thisElement.value.length<1){
			return(alertFocusReturn( name + "您还没有输入!!\n" , thisElement , false));
		}
	}
	if( thisElement.value.length>0){
		if( checkLength != 0 ) {
			iCheckLength = parseInt(checkLength);

			if(!(thisElement.value>=0 && thisElement.value.length<=iCheckLength)){
				return(alertFocusReturn(name + "请您输入长度为" + iCheckLength + "的整数!!\n", thisElement , false));
			}
		}
		else{
			if(!(thisElement.value>=0)){
				return(alertFocusReturn(name + "请您输入整数!!\n", thisElement , false));
			}
		}
	}
	return true;
}

/**
 * 检查输入框(text)的值(number)是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名 ; ifMust:是否必须输入值}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkNumericValue( name, thisElement, ifMust) {
	if(ifMust==true){
		if( thisElement.value.length<1){
			return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
		}
	}
	if( thisElement.value.length>0){
		if(!numericCheck(thisElement.value)){
			return(alertFocusReturn( name + "请您输入正浮点数!!\n", thisElement , false));
		}
	}
	return true;
}

/**
 * 检查输入框(text)的值(date)是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkDateValue(name, thisElement, ifMust){
	if(ifMust==true){
		if( thisElement.value==""){
			alert( name + "您还没有输入!!\n");
			return false;
		}
	}
	if( thisElement.value.length>0){
		if (!inputCalendarAsOneStrCheck(name, thisElement)){
			return false;
		}
	}
	return true;
}

/**
 * 检查输入框(text)的值(time)是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkTimeValue(name, thisElement, ifMust){
	if(ifMust==true){
		if( thisElement.value==""){
			return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
			return false;
		}
	}
	if( thisElement.value.length>0){
		if (!inputTimeCheck(name, thisElement)){
			return false;
		}
	}
	return true;
}

/**
 * 检查下拉菜单(select)的值是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkSelectValue( name, thisElement ) {
        if( thisElement.options[0].selected){
		return(alertFocusReturn( name + "您还没有选择!!\n" , thisElement , false));
	}else{
		return true;
	}
}

/**
 * 检查输入框(textarea)的值是否符合要求
 * 参数：{name:控件的中文名 ; thisElement:控件名 ; maxLength:控件最大长度}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function chkTextareaValue(name, thisElement, maxLength, ifMust){
	if(ifMust==true){
		if( thisElement.value.length<1){
			return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
		}
	}
	if (!checkLengthOfStr(name, thisElement, maxLength)){
		return false;
	}
	return true;
}


/**
 * 检测时间差
 * 参数：{beginElement:起始时间的控件名 ; endElement:终止时间的控件名 ; toElement:付值时间的控件名}
 * @creation date: 2002-8-26 10:13
 * @author: 王学锋
 * @return: boolean
 */
function countDate(beginElement,endElement){
	if(beginElement.value<1 || endElement.value<1) return true;
	if(InputDateCmp(0,"起始时间",beginElement,"终止时间",endElement))
		return true;
	else
		return false;
}


/**
 * 正整数判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param:
 * @return: boolean
 */
function positiveIntegerCheck(val){
	var temp = val.match(/\d+/g);
	if(temp != val){
		return false;
	}
	return true;
}

/**
 * 数字判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param:
 * @return: boolean
 */
function numericCheck(val){
	var temp = val.match(/[0-9]+/g);
	if(temp == val){
		return true;
	}
	else
	{
	    var temp1 = val.match(/[0-9]+[\.][0-9]+/g);
	    if(temp1 != val){
		return false;
	    }
	    return true;
	}	
}

/**
 * 显示警告信息，设置焦点并返回true或false
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param:
 * @return: boolean
 */
function alertFocusReturn(message, thisElement, trueOrFalse){
	alert(message);
	thisElement.focus();
	return trueOrFalse;
}

/**
 * 列表框是否选择判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 列表框名称
 * @param: 对象 
 * @return: boolean
 */
function selectCheck( name, thisElement ) {
        if( thisElement.options[0].selected){
		return(alertFocusReturn( name + "您还没有选择!!\n" , thisElement , false));
	}else{
		return true;
	}
}

/**
 * 文字域是否输入判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 文字域名称
 * @param: 对象 
 * @return: boolean
 */
function inputTextCheck(name, thisElement) {
	if( thisElement.value == "" ){
		return(alertFocusReturn( name + "您还没有输入!!\n" , thisElement , false));
	}else{
		return true;
	}
}

/**
 * 是否输入正整数判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 对象长度  
 * @return: boolean
 */
function inputPositiveIntegerCheck( name, thisElement , checkLength ) {
	if( thisElement.value == "" ){
		return(alertFocusReturn( name + "您还没有输入!!\n" , thisElement , false));
	}else{
		if( checkLength != 0 ) {
			iCheckLength = parseInt(checkLength);

			if(!positiveIntegerCheck(thisElement.value)||thisElement.value.length!=iCheckLength){
				return(alertFocusReturn(name + "请您输入长度为" + iCheckLength + "的正整数!!\n", thisElement , false));
			}
		}else{
			if(!positiveIntegerCheck(thisElement.value)){
				return(alertFocusReturn(name + "请您输入正整数!!\n", thisElement , false));
			}
		}
	}
  return true;
}

/**
 * 是否输入数字判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 对象长度  
 * @return: boolean
 */
function inputNumericCheck( name, thisElement) {
	if( thisElement.value == "" ){
		return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
	}else{
		if(!numericCheck(thisElement.value)){
			return(alertFocusReturn( name + "请您输入正浮点数!!\n", thisElement , false));
		}
	}
  return true;
}

/**
 * 日期输入判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 单个的年、月、日  
 * @return: boolean
 */
function inputCalendarCheck(name, thisElement, year, month, day){
	if(!positiveIntegerCheck(year)){
		return(alertFocusReturn(name+"请您输入正确的年份!!\n", thisElement , false));
	}
	if(!positiveIntegerCheck(month)){
		return(alertFocusReturn(name+"请您输入正确的月份!!\n", thisElement , false));
	}
	if(!positiveIntegerCheck(day)){
		return(alertFocusReturn(name+"请您输入正确的日期!!\n", thisElement , false));
	}

        if(year.length!=4){
		return(alertFocusReturn(name+"您输入的年份不合理!!", thisElement , false));
  	}
  	if(month.length!=2){
		return(alertFocusReturn(name+"您输入的月份不合理!!", thisElement , false));
  	}
  	if(day.length!=2){
		return(alertFocusReturn(name+"您输入的日期不合理!!", thisElement , false));
  	}
  	
	var monArray = new Array(00,31,28,31,30,31,30,31,31,30,31,30,31);

	if(month <1 || month > 12){
		return(alertFocusReturn(name+"您输入的月份不合理!!", thisElement , false));
  	}

  	if(year % 4 == 0){
		monArray[2] = 29;
	if(year % 100 == 0)
		monArray[2] = 28;
	if(year % 400 == 0)
	 	monArray[2] = 29;
  	}
	if(((day < 1) || (day > monArray[month]))){
		return(alertFocusReturn(name+"您输入的日期不合理!!", thisElement , false));
	}
	return true;
}

/**
 * 日期输入判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 以yyyy-mm-dd格式表示的日期  
 * @return: boolean
 */
function inputCalendarAsOneStrCheck(name, thisElement){
	var tempStr = escape(thisElement.value);
        if(tempStr.length==0) {
        	return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
        }
        else {
	        var tempArray = thisElement.value.split("-");
	        if(tempArray.length!=3){
		        return alertFocusReturn(name+"您输入了不正确的日期格式!!", thisElement, false);
	        }
	        return inputCalendarCheck(name, thisElement, tempArray[0], tempArray[1], tempArray[2]);
	}
}


/**
 * 日期输入判断
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 单个的年、月、日  
 * @return: boolean
 */
function inputSeparatedCalendarCheck(name, yearElement, monthElement, dateElement){

	if(!positiveIntegerCheck(yearElement.value)){
		return(alertFocusReturn(name+"请您输入正确的年份!!\n", yearElement , false));
	}
	if(!positiveIntegerCheck(monthElement.value)){
		return(alertFocusReturn(name+"请您输入正确的月份!!\n", monthElement , false));
	}
	if(!positiveIntegerCheck(dateElement.value)){
		return(alertFocusReturn(name+"请您输入正确的日期!!\n", dateElement , false));
	}

	var year = parseInt(yearElement.value);
	var month = parseInt(monthElement.value);
	var date = parseInt(dateElement.value);

	if(yearElement.value.length<4){
		return(alertFocusReturn(name+"您输入的年份不合理!!", yearElement , false));
  	}
  	if(monthElement.value.length<2){
		return(alertFocusReturn(name+"您输入的月份不合理!!", monthElement , false));
  	}
  	if(dateElement.value.length<2){
		return(alertFocusReturn(name+"您输入的日期不合理!!", dateElement , false));
  	}

	var monArray = new Array(00,31,28,31,30,31,30,31,31,30,31,30,31);

	if(month <1 || monthElement.value > 12){
		return(alertFocusReturn(name+"您输入的月份不合理!!", monthElement , false));
  	}

  	if(year % 4 == 0){
		monArray[2] = 29;
	if(year % 100 == 0)
		monArray[2] = 28;
	if(year % 400 == 0)
	 	monArray[2] = 29;
  	}
	if(((date < 1) || (date > monArray[month]))){
		return(alertFocusReturn(name+"您输入的日期不合理!!", dateElement , false));
	}
	return( true );
}

/**
 * 统计字符串的长度
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 字符串 
 * @return: 长度
 */
function doubleByteStrLength(str) {
   var len = 0;
   var tempStr = escape(str);
	for (var i = 0; i < tempStr.length; i++) {
		if (tempStr.charAt(i) == "%") {
			i = i+1;
			if (tempStr.charAt(i) == "u") {
				len = len+2;
				i += 4;
			 }
		}else{
			len++;
	  	}
	}
   return len;
}

/**
 * 字符串输入长度检测
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 最大长度，如果是汉字，最大长度应该加倍，待测试  
 * @return: boolean
 */
function checkLengthOfStr(name, thisElement, maxLength) {
 	var str = thisElement.value;
 	var returnLength = doubleByteStrLength(str);
 	if((returnLength > maxLength)){
	  return alertFocusReturn(name + "您不能输入长度超过"+maxLength+"的字符串!!\n"
  		, thisElement
  		, false );
 	}else{
		return true;
	}
}

/**
 * 日期比较
 * @creation date: 2002-4-16 11:08
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 类型
 * @param: 名称 
 * @param: 日期 
 * @return: 提示字符串
 */
function InputDateCmp(type,name1,date1,name2,date2) {
        var today;
        var day1 = "";
        var day2 = "";
        var dnum1;
        var dnum2;
        var ret = 0;

        if(!inputCalendarAsOneStrCheck(name1, date1)) {
        	return alertFocusReturn(name1+"您输入的日期不合理!!", date1 , false);
        }
        if ((type == 0) || (type == 1)){
                if(!inputCalendarAsOneStrCheck(name2, date2)) {
        	       return alertFocusReturn(name2+"您输入的日期不合理!!", date2 , false);
                }
        }
        
        var tempday1 = escape(date1.value);        
        var tempday2 = escape(date2.value);  
        
        //YYYY-MM-DD修改为YYYY/MM/DD
       day1 = tempday1.substr(0,4) + "/" + tempday1.substr(5,2) + "/" + tempday1.substr(8,2);
       
       if ((type == 0) || (type == 1)){
           day2 = tempday2.substr(0,4) + "/" + tempday2.substr(5,2) + "/" + tempday2.substr(8,2);
       } else {
           today = new Date();
	   day2 = today.getYear() + "/" + (today.getMonth() + 1 ) + "/" + today.getDate();
       }

       dnum1 = Date.parse(day1);
       dnum2 = Date.parse(day2);
       if (dnum1 < dnum2)	  ret = 1;
       else if (dnum1 > dnum2)    ret = 2;
       else			  ret = 0;

       switch(type) {
	case 0:
	  err = new Array("","",name1 + "大于" + name2 + "!");
	  break;
	case 1:
	  err = new Array("",name1 + "小于" + name2 + "!","");
	  break;	  
	case 2:
	  err = new Array("",name1 + "小于今天!","");
	  break;
	case 3:
	  err = new Array("","",name1 + "大于今天!");
	  break;

      }
    
      if (err[ret]=="") return true;
      else {
      	alert(err[ret]);
        return false;
      }
}


/**
 * 时间输入判断
 * @creation date: 2002-5-14 10:30
 * @author: 易伟胜
 * @editer:
 * @editer:
 * @version: 1.0
 * @param: 名称
 * @param: 对象 
 * @param: 以hh:mm格式表示的时间  
 * @return: boolean
 */
function inputTimeCheck(name, thisElement){
	var tempStr = escape(thisElement.value);
        if(tempStr.length==0) {
        	return(alertFocusReturn( name + "您还没有输入!!\n", thisElement , false));
        }
        else {
	        var tempArray = thisElement.value.split(":");
	        if(tempArray.length!=2){
		        return alertFocusReturn(name+"您输入了不正确的时间格式!!", thisElement, false);
	        }
	        if(!positiveIntegerCheck(tempArray[0])){
                        return(alertFocusReturn(name+"请您输入正确的时间格式!!\n", thisElement , false));
	        }
	        if(!positiveIntegerCheck(tempArray[1])){
		        return(alertFocusReturn(name+"请您输入正确的时间格式!!\n", thisElement , false));
	        }
		if (tempArray[1].length<3 && tempArray[0].length<3){
	                var hour = parseInt(tempArray[0]);
		        var minute = parseInt(tempArray[1]);
	                if(hour <0 || hour > 23){
			        return(alertFocusReturn(name+"您输入的时间格式不合理!!", thisElement , false));
	  	        }
	  	        if(minute <0 || minute > 60){
			        return(alertFocusReturn(name+"您输入的时间格式不合理!!", thisElement , false));
	  	        }	  	        
		}
		else {
			return(alertFocusReturn(name+"您输入的时间格式不合理!!", thisElement , false));
		}  	
	        return true;
	}
}

