
    /*
     * Statement: 返回去掉前后空格的字符串
     * @param:      str
     * return     返回去掉前后空格的字符串
     */
    function trim(str)
    {
        if (str==null || str=='' || str==' ') {return '';}
        var Char='';
        do{
            Char=str.substring(0,1);
            if (Char==' ')
            {str=str.substring(1);}
            else
            {break;}
        }while(true)
        do{
            Char=str.substring(str.length-1,str.length);
            if (Char==' ')
            {str=str.substring(0,str.length-1);}
            else
            {break;}
        }while(true)
        return str;
    }

    /*
     * Statement: 判断文本框当前填写内容是否为数值 返回true 正确，返回false失败
     * @param:      strTemp         需要校验的字符串
     * return void
     */
    function IsNumber(strTemp){
        var iLeg=strTemp.length;            // 字符串长度
        var tChar='';                       // 每个字符
        var iQty=0;                         // 小数点个数“.”
        var iQty_=0;                        // 减号个数“-”
        var i;

        if(iLeg>0){
            for (i=1;i<=iLeg;i++){
                tChar=strTemp.substring(i-1,i);
                if(tChar=='.') iQty++;
                if(tChar=='-') iQty_++;

                // 有非数字字符
                if((tChar>'9' || tChar<'0') && tChar!='.' && tChar!='-') return false;
            }
            if(iQty>1) return false;        // 多个小数点

            // 不正常小数点（“.” 在开头）
            if(iQty==1 && strTemp.substring(0,1)=='.') return false;
            if(iQty_>=1)  return false;     // 多个负号“-”

            // 符号在数字中间，错误
            if(iQty_==1 && strTemp.substring(0,1)!="-") return false;
        }
        return true;
    }

    /*
     * Statement: 判断文本框当前填写内容是否为正数 返回true 正确，返回false失败
     * @param:      strTemp         需要校验的字符串
     * return void
     */
    function IsPlusNumber(strTemp){
        var iLeg=strTemp.length;            // 字符串长度
        var tChar='';                       // 每个字符
        var iQty=0;                         // 小数点个数“.”
        var i;
        if(iLeg>0){
            for (i=1;i<=iLeg;i++){
                tChar=strTemp.substring(i-1,i);
                if(tChar=='.') iQty++;

                // 有非数字字符
                if((tChar>'9' || tChar<'0') && tChar!='.') return false;
            }
            if(iQty>1) return false;        // 多个小数点

            // 不正常小数点（“.” 在开头）
            if(iQty==1 && strTemp.substring(0,1)=='.') return false;
        }
        return true;
    }

    /*
     * Statement: 判断文本框当前填写内容是否为整数 返回true 正确，返回false失败
     * @param:    strTemp         需要校验的字符串
     * return void
     */
    function IsInt(strTemp){
        var iLeg=strTemp.length;            // 字符串长度
        var tChar='';                       // 每个字符
        var i;
        if(iLeg>0){
            for (i=1;i<=iLeg;i++){
                tChar=strTemp.substring(i-1,i);

                // 有非数字字符
                if((tChar>'9' || tChar<'0')) return false;
            }
            return true;
        }else{
            return false;
        }
        
    }

    /*
     * Statement: 计算给定字符串的长度
     * @param:    strTemp         需要校验的字符串
     * return   int
     */
    function getLength(strTemp){
        var strT = trim(strTemp);
        return strT.replace(/[^\x00-\xff]/g, "**").length;
    }

    /*
     * Statement: 判断给定字符串是否包含全角字符
     * @param:    strTemp         需要校验的字符串
     * return     boolean         true=有汉字或全角字符;false=全部是半角字符
     */
    function checkChina(strTemp){
        if(getLength(strTemp)>trim(strTemp).length) return true;
        else false;
    }

    /*
     * 点击计算按钮后，计算当前备注内容的长度。
     *
     * return void
     */
    function calculate(val){
        var iCount = getLength(val);
        alert("字符长度为:"+iCount);
    }

    /*
     * 判断给定的字符串szVal的长度是否超出显示长度iLength；
     * 如果超出显示长度，则把显示长度范围内的最后的3个字符用"..."超链接表示，并在鼠标浮动时显示完整描述；
     * 如果"最后3个字符中"有汉字时，截取完整字符。
     *
     * @param szVal           String          完整字符描述
     * @param iLength         int             可以显示的长度
     * return String
     */
    function ShowDiv(szVal, iLength){
        var szShow = "";                     // 显示的字符串
        var szEnd = "";
        var szChar = "";
        var iCharLen = 0;
        var iShowLen = 0;
        if(szVal==null || trim(szVal)=="") return "";
        if(iLength<=3) return trim(szVal);

        // 校验字符长度是否符合显示长度
        if(getLength(szVal)>iLength){
            for(var i=0; i<trim(szVal).length; i++){
                szChar = trim(szVal).substring(i,i+1);
                iShowLen += getLength(szChar); 
                if(iShowLen>=(iLength-3)){
                    szShow = szVal.substring(0,i);
                    szEnd = szVal.substring(i,szVal.length);
                    break;
                }
            }

            // 如果超长，则截取页面显示部分,组合页面显示的信息结果字符串
            szShow = szShow+"<font color='blue' onmouseover=\"showDesc(this,'"+szEnd+"')\" onmouseout=\"HideDesc()\">...</font>";
        }else{
            szShow = trim(szVal);
        }
        return szShow;
    }

    /*
     * Statement: 校验必须输入整数的文本框
     * @param:      doc             文档对象
     * @param:      nam             文本框的名称
     * @param:      val             文本框值
     * return void
     */
    function txt_up(doc,nam,val){
        if(!IsInt(val)){
            eval(doc+"."+nam).value="";
            return false;
        }
        return true;
    }

    /*
     * Statement: 校验必须输入正数的文本框
     * @param:      doc             文档对象
     * @param:      nam             文本框的名称
     * @param:      val             文本框值
     * return void
     */
    function txt_num(doc,nam,val){
        if(!IsPlusNumber(val)){
            eval(doc+"."+nam).value="";
            return false;
        }
        return true;
    }

    /*
     * Statement: 校验必须输入正数的文本框
     * @param:      o            文本框控件对象
     * return void
     */
    function _txt_up(o){
        if(!IsPlusNumber(o.value)){
            o.value="";
            return false;
        }
        return true;
    }

    /*
     * Statement: 校验必须输入正数的文本框
     * @param:      o            文本框控件对象
     * return void
     */
    function _txt_num(o){
        if(!IsPlusNumber(o.value)){
            o.value="";
            return false;
        }
        return true;
    }
    
    /*
     * Statement: 校验必须输入正整数的文本框
     * @param:      doc             文档对象
     * @param:      nam             文本框的名称
     * @param:      val             文本框值
     * return void
     */
    function txt_PlusInt(o){
        if(!IsInt(o.value)||parseInt(o.value)<0){
            o.value="";
            return false;
        }
        return true;
    }
    /**
    * Script Name: openWin()
    * Function:    打开新窗口
    * @param       url     打开的链接地址
    * @param       id      窗口标志
    * @param       width   打开的窗口的宽度
    * @param       height  打开的窗口的高度
    * @param       left    打开的窗口的左边距
    * @param       top     打开的窗口的上边距
    * @return      void
    * Note         当left和top为空时，窗口显示在屏幕的中央
    */
    function openWin(url,id,width,height,left,top){
        var config;
        config = "toolbar=yes,menubar=yes";
        if(width!=null)
            config += ",width="+width;
        if(height!=null)
            config += ",height="+height;
        if(left!=null&&left!="")
            config += ",left="+left;
        if(top!=null&&top!="")
            config += ",top="+top;
        if(width!=null&&height!=null&&left==null&&top==null){
            config += ",left="+(window.screen.availWidth-width)/2;
            config += ",top="+(window.screen.availHeight-height)/2;
        }
            config += ",resizable=yes,status=yes, scrollbars=yes";
        window.open(url,"",config);
    }

    /**
    * Script Name: _openWin()
    * Function:    打开新窗口(没有滚动条，不可改变大小，没有状态条，没有工具栏)
    * @param       url     打开的链接地址
    * @param       id      窗口标志
    * @param       width   打开的窗口的宽度
    * @param       height  打开的窗口的高度
    * @param       left    打开的窗口的左边距
    * @param       top     打开的窗口的上边距
    * @return      void
    * Note         当left和top为空时，窗口显示在屏幕的中央
    */
    function _openWin(url,id,width,height,left,top){
        var config;
        config = "toolbar=yes,menubar=yes";
        if(width!=null)
            config += ",width="+width;
        if(height!=null)
            config += ",height="+height;
        if(left!=null&&left!="")
            config += ",left="+left;
        if(top!=null&&top!="")
            config += ",top="+top;
        if(width!=null&&height!=null&&left==null&&top==null){
            config += ",left="+(window.screen.availWidth-width)/2;
            config += ",top="+(window.screen.availHeight-height)/2;
        }
            config += ",resizable=no,status=no;scrollbars=no,toolbar=no,menubar=no,";
        window.open(url,"",config);
    }

    /* 
     * Statement: 比较指定2个日期的大小
     * @param:      date1       第一个日期（格式：YYYY-MM-DD）
     * @param:      date2       第二个日期（格式：YYYY-MM-DD）
     * return       date1>date2返回1,date1==date2返回0,date1<date2返回-1; -999=异常
     */
    function DateThen(date1,date2){
        if(trim(date1)=="" || trim(date1).length!=10) return -999;
        if(trim(date2)=="" || trim(date2).length!=10) return -999;
        if(trim(date1)==trim(date2)) return 0;
        var d1 = replaceAll(date1,"-","");;
        var d2 = replaceAll(date2,"-","");;
        if(parseInt(d1)>parseInt(d2))      return 1;
        else if(parseInt(d1)<parseInt(d2)) return -1;
        else                               return 0;
    }


    /*
     * Statement: 返回替换完毕的字符串
     * @param:      str         源字符串
     * @param:      dit         被替换的字符串
     * @param:      rec         新字符串（用字符串rec替换字符串dit）
     * return     返回去掉前后空格的字符串
     */
    function replaceAll(str,dit,rec){
        if(str==null || str=="" || trim(dit=="")) return str;
        while(str.indexOf(dit)!=-1){
            str = str.replace(dit,rec);
        }
        return str;
    }

    /*
     * Statement: 校验并转换回车换行字符
     * @param:    strTemp         需要校验的字符串
     * return   int
     */
    function covEnter(strTemp){
        var cur = "";
        var result = strTemp;
        if(strTemp!=null){
            result = "";
            for(var i=0; i<strTemp.length; i++){
                cur = strTemp.substring(i,i+1);
                if(cur=="\n"){
                    cur = "\\n";
                }
                result += cur;
            }
        }
        return result;
    }


    /***********************************************************
    Written by Yanlk
    第一个参数是待格式化的数值，第二个是保留小数位数
    注意：返回的是字符串类型
    第一个函数需要调用第二个函数，所以第二个不能去掉
    ***********************************************************/
    function formatKeep(value,num){ //四舍五入
        var a_str = breakStr(value,num);
        var a_int = parseFloat(a_str);
        if (value.toString().length>a_str.length)    {
            var b_str = value.toString().substring(a_str.length,a_str.length+1)
            var b_int = parseInt(b_str);
            if (b_int<5)        {
                return a_str
            }else{
                var bonus_str,bonus_int;
                if (num==0){
                    return (parseInt(a_str)+1).toString();
                }else{
                    a_str = a_str.substring(0,a_str.indexOf('.'))+a_str.substring(a_str.indexOf('.')+1,a_str.length);
                    a_int = parseInt(a_str)+1;
                    a_str = a_int.toString();
                    a_str = a_str.substring(0,a_str.length-num)+"."+a_str.substring(a_str.length-num,a_str.length);
                    return a_str;
                }
            }
        }
        return a_str
    }
    function breakStr(value,num){ //直接去尾
        var a,b,c,i
        a = value.toString();
        b = a.indexOf('.');
        c = a.length;
        if (num==0){
            if (b!=-1)
                a = a.substring(0,b);
        }else{
            if (b==-1){
                a = a + ".";
                for (i=1;i<=num;i++) a = a + "0";
            }else{
                a = a.substring(0,b+num+1);
                for (i=c;i<=b+num;i++) a = a + "0";
            }
        }
        return a
    }

    /* 
     * Written by LiBin
     * Statement: 检查浮点数的整数位是否超过指定长度
     * @param:      str          浮点数的字符串
     * @param:      length       整数位的长度
     * return       如果超长或不是数字就返回false,否则返回true
     */
    function checkFloatLength(str, length)
    {
        if(!IsPlusNumber(str)) return false;
        var le = trim(str).indexOf(".");
        var strlen = trim(str).length;
        if(le == "-1")
        {        
            if(strlen > length)
                return false;
        }
        if(le > length)
            return false;
        return true;
    }
    
     /*
     * Statement: 校验不能输入中文的文本框
     * @param:      doc             文档对象
     * @param:      nam             文本框的名称
     * @param:      val             文本框值
     * return void
     */
    function txt_nochina(doc,nam,val){
        if(checkChina(val)){
            eval(doc+"."+nam).value="";
            return false;
        }
        return true;
    }

/*
---------------------------------------------------------
以下部分为2007-08-28添加
以下部分为2007-08-28添加
---------------------------------------------------------
*/

     /*
     * Statement: 即使判断并提示输入字符个数
     * @param:      obj             判断的控件
     * @param:      length          最大字符个数
     * @param:      remLen1,remLen2,remLen3,remLen4,remLen5         显示Font
     * return void
     */ 
   function checkMaxInput(obj,length){
       var m=obj.value.length;
       var n=m;
       var j=0;
       for (var i=0;i<m;i++){
          if (obj.value.charCodeAt(i)<0||obj.value.charCodeAt(i)>161){
            n=n+1;
            if ( i <= length ){
               j=j+1;
            }
          }
       }
       if(n>length){
            obj.value=obj.value.substring(0,length-j);
            remLen1.innerText='[最大可输入';
            remLen2.innerText=length;
            remLen3.innerText='字符，';
            remLen4.innerText='您已达到输入上限！';
            remLen5.innerText=']';
        }else{
            remLen1.innerText='[最大可输入';
            remLen2.innerText=length;
            remLen3.innerText='字符，还可输入';
            remLen4.innerText=length-n;
            remLen5.innerText='字符]';
        }
   }
     /*
     * Statement: 清空显示Font（配合上面的checkMaxInput()使用）
     */ 
     function clsInput(){
        remLen1.innerText=' ';
        remLen2.innerText=' ';
        remLen3.innerText=' ';
        remLen4.innerText=' ';
        remLen5.innerText=' ';
     }

