/* --------------------------------------------------------------------------
 * Project:     IM Common JavaScript
 * Company:     Jasson
 * Copyright:   Copyright (c) 2003 - 2005 Jasson
 * Author:      Jasson
 * History:     2003-06-03  Created By Lance
 * -------------------------------------------------------------------------- */


//数据合法性的及时校验
//*******************************************************************************
//联通号段
var u = new Array('130', '131', '132', '133', '185','186','189','180', '153', '155', '156');

//移动号段
var m = new Array('134', '135', '136', '137', '138', '139',
    '150', '151', '154', '157', '158', '159','152','187','188');

var rootPath = "";

//错误信息
var err = '';

//检测是否是否非空
//inputStr       输入的字符串
//description    文本框描述,如果为空则不出现提示框
//返回:
//     非空:true;
//     空: false
function isNotNull(inputStr,description) 
{
    if (inputStr==null)
   	{
       if ( (description!=null) && (description.length>0) )
            alert(description+"不许为空!");
       return false;
 	}

    for (;inputStr.substring(0,1)==" ";)
    {
         inputStr=inputStr.substring(1,inputStr.length);
    }
    for (;inputStr.substring(inputStr.length-1,inputStr.length)==" ";)
    {
          inputStr=inputStr.substring(0,inputStr.length-1);
    }

    if (   (inputStr!=null) && ( inputStr.length > 0 )) 
	{
 		return true;
 	}
    else
    {
       if ( (description!=null) && (description.length>0) )
            alert(description+"不许为空!");
       return false;
     }
}
//检测输入的字符是否符合变量命名规范
//variable      输入的字符
//description   文本描述
function isValidVariable(variable, description)
{
    var pattern = /^[a-zA-Z_]\w*$/;
    if (variable != variable.match(pattern))
    {
        if ( (description == null) || (description.length <= 0) )
        {
            description = "";
        }
        alert(description + "必须符合以下命名规范：以字母或下划线开头，后跟字母、数字或是下划线！");
        return false;
    }
    return true;
}

//检测是否是为有效浮点型
//inputStr  输入的字符串
//fl       整数长度
//fp        浮点数小数长度
//description   文本框描述,如果为空则不出现提示框
function isFloat2(inputStr, fl, fp, description) {
    var iNumber;
    if (inputStr.length > 0) {
               if (!isNumber(inputStr)) {
            if (description != null && description != "")
                alert(description+"中必须填入有效数字!");
            return false;
        }
        iNumber	= Number(inputStr);
        iNumber	= iNumber < 0? -iNumber: iNumber;
        inputStr	= String(iNumber);
        var pp  = inputStr.indexOf(".");
        pp	= (pp < 0)? inputStr.length: pp;
        if (fl!=null&&pp > (fl )) {
            if (description != null && description != "")
                alert(description+"中输入的值超过范围!整数位为"+fl+"位.");
            return false;
        }
        if ( fp!=null && pp > 0 && (inputStr.length - pp - 1) > fp) {
            if (description != null && description != "")
                alert(description+"中输入的值精度太大!小数位为"+fp+"位.");
            return false;
        }
    }
    return true;
}

//本函数用于对输入的单个字符进行检查
//参数:
//     ch:             输入的字符
//     allowedchars:   允许输入的字符,"a,b-e,0-9"格式,"b-e"表示从b到e的所有字符.
//     deniedchars:    禁止输入的字符,"a,b-e,0-9"格式,"b-e"表示从b到e的所有字符.
function check_char(ch,allowedchars,deniedchars)
{
       var bOK=true;
       var iLen,i,iNext;
       var substr;
       var bAllowed=true;
       var bDenied=false;

       if ((allowedchars!=null)&&((iLen=allowedchars.length)>0))
       {
           bAllowed=false;
           i=0;
           for (;i<iLen;)
           {
                iNext=allowedchars.indexOf(",",i);
                if (iNext<0)
                {
                       substr=allowedchars.substring(i,iLen);
                       i=iLen;
                }
                else
                {
                       substr=allowedchars.substring(i,iNext);
                       i=iNext+1;
                }
                if ( (substr!=null) && (substr.length>0) )
                {
                       if (substr.length==1)
                       {
                            var iTemp=0;
                            iTemp=substr.substring(0,1);
                            if (ch==substr.charAt(0))
                            {
                                bAllowed=true;
                                break;
                            }
                       }
                       if ((substr.length==3)&&(substr.substring(1,2)=="-"))
                       {
                            if ( (ch>=substr.charAt(0)) &&  (ch<=substr.charAt(2)) )
                            {
                                bAllowed=true;
                                break;
                            }
                       }
                }
            }  //for
       }

       if (bAllowed)
       if ((deniedchars!=null)&&((iLen=deniedchars.length)>0))
       {
           bDenied=false;
           i=0;
           for (;i<iLen;)
           {
                iNext=deniedchars.indexOf(",",i);
                if (iNext<0)
                {
                       substr=deniedchars.substring(i,iLen);
                       i=iLen;
                }
                else
                {
                       substr=deniedchars.substring(i,iNext);
                       i=iNext+1;
                }
                if ( (substr!=null) && (substr.length>0) )
                {
                       if (substr.length==1)
                       {
                            if (ch==substr.charAt(0))
                            {
                                bDenied=true;
                                break;
                            }
                       }
                       if ((substr.length==3)&&(substr.substring(1,2)=="-"))
                       {
                            if ( (ch>=substr.charAt(0)) &&  (ch<=substr.charAt(2)) )
                            {
                                bDenied=true;
                                break;
                            }
                       }
                }
            }  //for
       }

       bOK=(bAllowed && !bDenied);
       return bOK;
}


//Modified by wzrong 2003-07-31  , forbid to input ' "  <  >
//检测是否字串超长
//inputStr      输入的字符串
//Len           限制长度
//description   文本框描述,如果为空则不出现提示框
//返回:
//     不超长:true;
//     否: false
function isOverLength(inputStr,Len,description) {
   return isExceedLength(inputStr,Len,description);
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;
   var iTrueLen=iLen;


   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);
      
       if (!check_char(ch, "", "',\",<,>,?,\\,`"))
       {
           if ( (description!=null) && (description.length>0) )
             alert(description+"中禁止输入', \", ?, <, >, \\, `非法字符!");
           return false;
       }
      
       if (ch>="\u0080")
       {
            iTrueLen++;
       }
   }
   bOK= iTrueLen<=Len;
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert(description+"中字符串长度不许超过"+Len+"(一个汉字长度为2)!");
   }
   return bOK;

}

//added by zxrong 2006-03-02  , no forbid character
//检测是否字串超长
//inputStr      输入的字符串
//Len           限制长度
//description   文本框描述,如果为空则不出现提示框
//返回:
//     不超长:true;
//     否: false
function isValidLength(inputStr,Len,description) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;
   var iTrueLen=iLen;

   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);
       if (ch>="\u0080")
       {
            iTrueLen++;
       }
   }
   bOK= iTrueLen<=Len;
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert(description+"中字符串长度不许超过"+Len+"(一个汉字长度为2)!");
   }
   return bOK;
}

// Created by Wzrong ,2003-07-04
//输入的整数值是否在指定范围内, 带提示信息
// 参数:
//     inputVal:输入串
//     startlimit:下限,为空表示无下限。
//     endlimit:上限，为空表示无上限。
//     description:文本框描述
// 返回:
//   true : 合法    false:非法
function isIntTypeValid(inputVal, startlimit, endlimit, description)
{
         if (!isNotNull(inputVal))
             return true;
   var bOK=true,i;
   for (i=0;i<inputVal.length;i++)
   {
       if(!  ( (inputVal.charAt(i)>="0") && (inputVal.charAt(i)<="9") ) && !(i==0 && (inputVal.charAt(i)=="+" || inputVal.charAt(i)=="-"  ) ))
                    bOK=false;
   }
   if (bOK )
   {
      if((startlimit!=null)&&(endlimit!=null))
      {
        bOK= (  (Number(inputVal)>=Number(startlimit))&&(Number(inputVal)<=Number(endlimit)));
        if (!bOK && description!=null && description.length>0)
            alert(description+"只许输入"+startlimit+"到"+endlimit+"间整数!");
      }
      else if((startlimit==null)&&(endlimit!=null))
      {
        bOK= Number(inputVal)<=Number(endlimit);
        if (!bOK && description!=null && description.length>0)
            alert(description+"只许输入小于或等于" + endlimit + "的整数!");
      }
      else if((startlimit!=null)&&(endlimit==null))
      {
        bOK= Number(inputVal)>=Number(startlimit);
        if (!bOK && description!=null && description.length>0)
            alert(description+"只许输入大于或等于"+startlimit+"的整数!");
      }

   }
   else
   {
        if (description!=null && description.length>0)
               alert(description+"只许输入整数!");
   }

   return bOK;
}


//限制用户只可以数字,字母
function isOnlyNumberABC(inputStr, description){
        var re=true;

        if(inputStr==null || inputStr=="") return true;

        for (i = 0; i < inputStr.length; i++) {
                codev = inputStr.charCodeAt(i);
                if ( (codev >47 && codev <58) || (codev >96 && codev <123)  || (codev >64 && codev <91)  ) //没找到
                 {
                        ;
                 }
                 else
                 {
                      re = false;
					  if(description != null && description != "")
	                      alert(description + "只能输入数字或字母!");
                      break;
                 }

         }

       return re;
}

// Created by wzrong ,2003-07-04
//输入的实数是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     sign:'+'：正数校验，'-'：负数检验，'*'：实数校验
//     intlen:整数部份长度，null表示不作整数位数限制
//     declen:小数部份长度，null表示不作小树位数限制
//     description: 文本框描述,如果为null则不出现提示框
// 返回:
//   true : 合法    false:非法

function isNumberValid(inputVal,sign,intlen,declen,description)
{
	
   if (!isNotNull(inputVal))
     return true;

    var bOK=true;
    if(intlen != null && declen != null)
    {
            if (inputVal.length > (intlen + declen + 2))
                {
                  alert(description+"只许输入"+intlen+"位以内整数"+declen+"位以内小数"+"的数字!");
                  bOK = false;
                  return bOK;
                }
                if(sign =='+')
            {
				
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)>=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+declen+"位以内小数"+"的正数!");

            }
            else if(sign == '-')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)<=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+declen+"位以内小数"+"的负数!");

            }
            else
            {
            bOK=isFloat2(inputVal,intlen,declen,"");
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+declen+"位以内小数"+"的数字!");
            }
    }
    else if(intlen != null && declen == null)
    {
            if(sign =='+')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)>=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+"的正数!");

            }
            else if(sign == '-')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)<=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+"的负数!");

            }
            else
            {
            bOK=isFloat2(inputVal,intlen,declen,"");
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+intlen+"位以内整数"+"的数字!");
            }
    }
    else if(intlen == null && declen != null)
    {
            if(sign =='+')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)>=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+declen+"位以内小数"+"的正数!");

            }
            else if(sign == '-')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)<=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+declen+"位以内小数"+"的负数!");

            }
            else
            {
            bOK=isFloat2(inputVal,intlen,declen,"");
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入"+declen+"位以内小数"+"的数字!");
            }
    }
    else
    {
            if(sign =='+')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)>=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入正数!");

            }
            else if(sign == '-')
            {
            bOK=isFloat2(inputVal,intlen,declen,"")&&Number(inputVal)<=0;
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入负数!");

            }
            else
            {
            bOK=isFloat2(inputVal,intlen,declen,"");
                if (!bOK && description!=null && description.length>0)
                    alert(description+"只许输入数值!");
            }
    }
   return bOK;
}

// Created by wzrong ,2003-07-25
//输入的实数是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     totallen:整数和小数共同长度，null表示不作整数数位限制
//     declen:小数部份长度，null表示不作小树位数限制
//     description: 文本框描述,如果为null则不出现提示框
// 返回:
//   true : 合法    false:非法

function isFloat(inputVal, totallen,declen,description)
{
        var tmp;
        if (declen==null)
            tmp=0;
        else
            tmp=declen;
        if (totallen==null)
            return isNumberValid(inputVal,"*",null,declen,description);
        else
            return isNumberValid(inputVal,"*",totallen-tmp,declen,description);
}



//比较输入的两日期是否合法,不带提示信息
// 参数:
//    starttime:起始日期字符串
//    endtime: 结束日期字符串
// 返回:
//   true : 合法    false:非法
function isTwoDateCheck(starttime, endtime)
{
        if(starttime=="" || endtime=="")
        {
           return true;
        }
        var shour = "0";
        var sminu = "0";
        var ssec = "0";

        var stmp = starttime;
        var syear = stmp.substring(0, stmp.indexOf("-"));
        stmp = stmp.substring(stmp.indexOf("-") + 1, stmp.length);
        var smonth = stmp.substring(0, stmp.indexOf("-"));
        stmp = stmp.substring(stmp.indexOf("-") + 1, stmp.length);
        var sday = stmp.substring(0, stmp.length);

        var stime = new Date(syear, smonth - 1, sday, shour, sminu, ssec);

        var etmp = endtime;
        var eyear = etmp.substring(0, etmp.indexOf("-"));
        etmp = etmp.substring(etmp.indexOf("-") + 1, etmp.length);
        var emonth = etmp.substring(0, etmp.indexOf("-"));
        etmp = etmp.substring(etmp.indexOf("-") + 1, etmp.length);
        var eday = etmp.substring(0, etmp.length);

        var etime = new Date(eyear, emonth - 1, eday, shour, sminu, ssec);

        var n = Date.parse(new Date(etime)) - Date.parse(new Date(stime));

        if (n * 1 < 0)
        {
                return false;
        }
        else
        {
                return true;
        }
}


/*
  检查输入的字符串是否含有特殊字符
*/
function checkChar(str,description){
  for(var i=0;i<str.length;i++){
    if (!check_char(str.charAt(i),"","',\"")){
         alert(description+"中禁止输入',\"");
        return false;
    }
  }
  return true;
}

//检测中国移动手机号码,m:移动，u:联通，t:电信小灵通
//num：手机号码，11位，前面可加0，86，086
function isMobile(num)
{
    num = trim(num);
    if(num.substring(0,2)== '00')
    {
    	return false;
    }
    if(isMobileFatory(num,'m')||isMobileFatory(num,'u')||isMobileFatory(num,'t'))
      return true;
    else
      return false;
}


//检测手机号码
//num：手机号码，11位，前面可加0，86，086
//factory: m：移动，u：联通 t:电信小灵通
function isMobileFatory(num, factory)
{
	err = "";//清空消息

    //空处理
    if(num==null || num=="")
	{
		err = "手机号码不能为空";
        return false;
	}
    var len = num.length;
    var len = num.length;
    if ( "m" == factory || "u" == factory) //联通和移动长度判断
    {
    	if (len != 11 )
    	{
			err = "手机号码只能为11位";
			return false;
		}
	}
	else //电信小灵通长度判断
	{
    	if (len < 11 || len >12)
    	{
			err = "手机号码只能为11位或12位";
			return false;
		}	
	}

    //长度，是否为数字处理
    var isDigital = true;
    var scope = "0123456789";
     for (var i = 0; i < 11; i++ )
    {
        if ( scope.indexOf(num.charAt(i)) < 0 ) //没找到
        {
            isDigital = false;
            break;
        }
    }

    if ( !isDigital )
    {
        err = "手机号码只能为数字";
        return false;
    }

    var first3Num = num.substring(0,3);

    var haveIn = false;
    if ( "u" == factory ) //联通
    {
        for (i=0; i<u.length; i++)
        {
            if ( u[i] == first3Num )
            {
                haveIn = true;
                break;
            }
        }

        if ( !haveIn )
        {
            err = "不是中国联通的号码";
            return false;
        }
    }
    else if ( "m" == factory ) //移动
    {
        for (i=0; i<m.length; i++)
        {
            if ( m[i] == first3Num )
            {
                haveIn = true;
                break;
            }
        }

        if ( !haveIn )
        {
            err = "不是中国移动的号码";
            return false;
        }
    }
    else if ( "t" == factory ) //电信小灵通
    {
		if ("0" == num.charAt(0))
		{
			haveIn = true;
		}

        if ( !haveIn )
        {
            err = "不是电信小灵通号码";
            return false;
        }
    }
    else
    {
        err = "非法的厂商参数";
        return false;
    }

    return true;
}


//去掉字串左边的空格
function lTrim(str)
{
    if (str.charAt(0) == " ")
    {
       //如果字串左边第一个字符为空格
       str = str.slice(1);//将空格从字串中去掉
       str = lTrim(str); //递归调用
    }
    return str;
}

//去掉字串右边的空格
function rTrim(str)
{
    var iLength;

    iLength = str.length;
    if (str.charAt(iLength - 1) == " ")
    {
    //如果字串右边第一个字符为空格
    str = str.slice(0, iLength - 1);//将空格从字串中去掉
    str = rTrim(str); //递归调用
    }
    return str;
}

//去掉字串两边的空格
function trim(str)
{
    return lTrim(rTrim(str));
}

//根据日期完整的字符串,返回制定的年,月,日
// sDate:2003-5-1
// dataType: year
//           month
//           day
function getDate(sDate,dateType)
{

       if (sDate == null || sDate == "")  return null;

        var sDateStr=sDate.replace(/\//g,"-");
        var vArr=sDateStr.split("-");

        if(dateType=='year') return vArr[0];
        if(dateType=='month') return vArr[1];
        if(dateType=='day') return vArr[2];

}


function readCookie()
{
    var the_path = "";
    var the_cookie = document.cookie;
    var broken_cookie = the_cookie.split(";");
    var isFound =0;
    for(i=0;i<broken_cookie.length;i++)
    {
         if(broken_cookie[i].indexOf("rootPath=")>=0)
         {
                isFound = 1;
                break;
         }
    }
    if(isFound==1)
    {
        the_path = broken_cookie[i].substring(broken_cookie[i].indexOf("=")+1,broken_cookie[i].length);
    }

    rootPath = unescape(the_path);
}

//检测是否为可以直接在IE下查看的文件
function isLegalViewFile(inputStr) {
    var viewstr = ".txt;.jpg;.bmp;.gif;.jpeg;.xls;.doc;.ppt";
    var isok=true;
     if(inputStr.lastIndexOf(".")<0)
     {
        isok=false;
     }
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length).toLowerCase();
    if(viewstr.lastIndexOf(fileext)<0) isok=false;
       if ( isok==false )
            alert("该类型文件不是可以直接在IE下查看的文件,必须为"+viewstr+"格式的!\n请单击右键另存到本地来查看!");
    return isok;
}

//检测是否为可以直接在IE下查看的文件,提醒
function isLegalViewFileInfo(inputStr) {
    var viewstr = ".txt;.jpg;.bmp;.gif;.jpeg;.xls;.doc;.ppt";
    var isok=true;
     if(inputStr.lastIndexOf(".")<0)
     {
        isok=false;
     }
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length).toLowerCase();
    if(viewstr.lastIndexOf(fileext)<0) isok=false;
       if ( isok==false )
            alert("该类型文件在IE下直接查看可能会不正常!\n建议您将它保存到本地来查看!");
    return isok;
}

//检测是否为合格的图片文件
function isLegalPhoto(inputStr,description) 
{ 
    var photostr = ".jpg;.bmp;.gif;.jpeg;.png;";
    var isok = true;
    if(inputStr.lastIndexOf(".")<0)
    {
        isok = false;
    }
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length).toLowerCase();
    if(photostr.lastIndexOf(fileext)<0) 
    {
    	isok=false;
    }
    if ( (description!=null) && (description.length>0) && isok==false )
    {
        alert(description+"不是合法的文件,必须为"+photostr+"格式的!");
    }
    return isok;
}

//检测是否为合格的音乐文件
function isLegalMusic(inputStr,description) 
{ 
    var musicstr = ".mid;.amr";
    var isok=true;
    if(inputStr.lastIndexOf(".")<0)
    {
        isok=false;
    }
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length).toLowerCase();
    if(musicstr.lastIndexOf(fileext)<0) 
    {
    	isok=false;
    }
    if ( (description!=null) && (description.length>0) && isok==false )
    {
        alert(description+"不是合法的文件,必须为" + musicstr + "格式的!");
    }
    return isok;
}

//检测是否为合格的文本文件
function isLegalTxt(inputStr,description) 
{ 
    var textstr = ".txt";
    var isok=true;
    if(inputStr.lastIndexOf(".")<0)
    {
        isok=false;
    }
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length).toLowerCase();
    if(textstr.lastIndexOf(fileext)<0) 
    {
    	isok=false;
    }
    if ( (description!=null) && (description.length>0) && isok==false )
    {
        alert(description+"不是合法的文本文件,必须为" + textstr + "格式的!");
    }
    return isok;
}

//检测是否为容许上传的文件
function isLegalFiles(inputStr,description) {
    var notfilesstr = ".exe;.com;.bat;.jsp;.js;.EXE;.COM;.BAT;.JSP;.JS;";
    var isok=true;
     if(inputStr.lastIndexOf(".")<0)
     {
        isok=false;
     }
     else
{
    iPos = inputStr.lastIndexOf(".");
    var fileext = inputStr.substring(iPos,inputStr.length);
    if(notfilesstr.lastIndexOf(fileext)<0) isok=true;
    else isok=false;
}
   if ( (description!=null) && (description.length>0) && isok==false )
            alert(description+"不是合法的文件,禁止上传"+notfilesstr+"格式的文件!");
    return isok;
}


// Created by LanYongChao ,2003-12-13
//检测HTML字串是否超长,可以包含<>*"等字符
//inputStr      输入的HTML串
//Len           限制长度
//description   文本框描述,如果为空则不出现提示框
//返回:
//     不超长:true;
//     否: false
function isExceedLength(inputStr,Len,description) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;
   var iTrueLen=iLen;


   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);

       if (!check_char(ch,"","',\""))
       {
           if ( (description!=null) && (description.length>0) )
             alert(description+"中禁止输入',\"非法字符!");
           return false;
       }

       if (ch>="\u0080")
       {
            iTrueLen++;
       }
   }
   bOK= iTrueLen<=Len;
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert(description+"中HTML串长度不许超过"+Len+"(一个汉字长度为2)!");
   }
   return bOK;

}




function filedo()
{
   isLegalViewFileInfo(fname);
   newfname = fname;
   while(newfname.indexOf("/")>=0)
   {
     newfname = newfname.replace("/","\\");
   }
   //alert(newfname);
   show.window.location.href = rootPath+"/common/Down.jsp?fdown="+newfname;
   event.returnValue=false;
}



//比较输入的两日期是否合法,带提示信息
// 参数:
//    starttime:起始日期字符串
//    endtime: 结束日期字符串
//   starttimedesc:起始日期描述
//   endstimedesc:结束日期描述
//des
// 返回:
//   true : 合法    false:非法
function isDateCompareValid(starttime,endtime,starttimedesc,endtimedesc)
{
      if((starttime!=null && starttime.length>0) && (endtime!=null && endtime.length>0))
          {
                  var bOK=isTwoDateCheck(starttime, endtime);
                  if (!bOK)
                  {
                          alert(starttimedesc+"所输入的日期必须早于"+endtimedesc+"所输入日期!");
                  }
                  return bOK;
          }
          else
          {
                  return true;
          }
}



//--------------------------------------------------------------------------------------------

// Created by Wzrong ,2003-07-04
//输入的汇率是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     description:描述
// 返回:
//   true : 合法    false:非法
function isExchangeRateValid(inputVal,description)
{
         if (!isNotNull(inputVal))
             return true;
   var bOK;
    bOK=isFloat2(inputVal, 10, 4, "")&&Number(inputVal)>=0  ;
        if (!bOK && description!=null && description.length>0)
            alert(description+"中输入的不是有效的汇率!");
        return bOK;
}


// Created by Wzrong ,2003-07-04
//输入的百分数是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     description:描述
// 返回:
//   true : 合法    false:非法
function isPercentValid(inputVal,description)
{
         if (!isNotNull(inputVal))
             return true;
   var bOK;
    bOK=isLegalInt(inputVal, 3,"*", "")&&Number(inputVal)>=0 &&Number(inputVal)<=100;
        if (!bOK && description!=null && description.length>0)
            alert(description+"中输入的不是有效的百分数!");
        return bOK;
}

// Created by Wzrong ,2003-07-04
//输入的非负数是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     description:描述
// 返回:
//   true : 合法    false:非法
function isNotNegativeValid(inputVal,description)
{
         if (!isNotNull(inputVal))
             return true;
   var bOK;
    bOK= isNumber(inputVal)&&Number(inputVal)>=0 ;
        if (!bOK && description!=null && description.length>0)
            alert(description+"中输入的不是有效的非负数!");
        return bOK;
}

// Created by Wzrong ,2003-07-04
//输入的年份值是否合法,带提示信息
// 参数:
//     inputVal:输入串
//     description:描述
// 返回:
//   true : 合法    false:非法
function isYearValid(inputVal,description)
{
         if (!isNotNull(inputVal))
             return true;
   var bOK;
    bOK= (isLegalInt(inputVal,4,"+", "")&&(Number(inputVal)>1900)&&(Number(inputVal)<3000));
        if (!bOK && description!=null && description.length>0)
            alert(description+"中输入的不是有效的年份!");
        return bOK;
}



// ================================================================
// 本函数用于限制文本输入框中只能输入数字"0"到"9",".","-"
// ================================================================


function onkp_OnlyNumber()
{

if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
|| (window.event.keyCode == 13) || (window.event.keyCode == 46)
|| (window.event.keyCode == 45)))
{
window.event.keyCode = 0 ;
}
}



//2.响应onkeyup事件
function onku_OnlyNumber(obj,showStr)
{
   var s=/\D/gi;
   //var s=/\D/;
   //var=/[^0-9]/;
   //rp=obj.value.search(s);
   //alert(rp);
   obj.value=obj.value.replace(s,"")
   //if(showStr!=null && showStr!="") alert(showStr);
   //else alert("注意:此输入框只能输入数字!!");
}

//3.提交检测函数




//将\n转换成<BR>  :在sql server 中不必转换！！
function str_ui2db(oldstr)
{

    alert("old value="+oldstr);
    while(oldstr.indexOf("\n")>=0)
       oldstr	= oldstr.replace("\n","<BR>");
     alert("new value="+oldstr);
    //document.all("nMaterialDescribe").value = newstr;

}


//判断是否包含有汉字
function isHZ(tstr)
{
if(tstr==null || tstr=="") return false;
for (i=0;i<tstr.length;i++)
        if( tstr.charCodeAt(i)>255 )
                {
                        return true;
                        break;
                }

return false;

}


//检测是否是符合条件的整数
//inputStr  输入的字符串
//fl        整数数长度
//          <=0 不限制
//description   文本框描述
function isInt(inputVal, fl, description) {
   var iNumber;
   if (inputVal.length > 0) {
        iNumber = Number(inputVal);
        if (isNaN(iNumber) || String(iNumber).indexOf(".") >= 0) {
            if ( (description!=null)   && (description.length>0)  )
                alert(description+"中输入的值必须为有效的整数!");
            return false;
        }
        if(fl>0){
          if (String(iNumber).length > fl)
          {
                    if ( (description!=null)   && (description.length>0)  )
                    alert(description+"中输入的值超出范围!整数为"+fl+"位.");
            return false;
          }
        }
    }
    return true;
}


//检测是否是符合条件的整数
//inputStr  输入的字符串
//fl        整数数长度
//sign       - 负整数
//           + 正整数
//           * 不限制
//description   文本框描述
function isLegalInt(inputVal, fl, sign, description) {

    if(!isInt(inputVal, fl, description))
		return false;
	else
    {
        if(sign!="*")
        {
			if(sign=="+")
			{
				if(inputVal < 0)
				{
					if ( (description!=null)   && (description.length>0)  ){
						alert(description+"中输入的值必须为有效的正整数!");
						return false;
					}
				}
			}
			if(sign=="-")
			{
				if(inputVal > 0) 
				{
					if ( (description!=null)   && (description.length>0)  ){
						alert(description+"中输入的值必须为有效的负整数!");
						return false;
					}
				}
			}
        }

    }
	return true;
}



//检测是否是为数字型
function isValidNumber(inputStr, description) {
   var sNumber;
   sNumber=Number(inputStr);
   if (isNaN(sNumber))
   {
       if ( (description!=null)   && (description.length>0)  )
            alert(description+"中输入的值必须为有效的数字!");
       return false;
   }
   return true;
}



//限制用户只可以输入电话号码
function isOnlyTelphone(inputStr){
        var re=true;
        if(inputStr==null || inputStr=="") return true;
        var sGroup="0123456789-()xX."
        for (i = 0; i < inputStr.length; i++) {
          if (sGroup.indexOf(inputStr.charAt(i))<0 ) //没找到
                 {
                      re=false;
                      alert("只能输入电话号码!!");
                      break;
                 }
         }

       return re;
}


//objSnNum为要检查的身份证号码
function isValidSn(objSnNum) {

 var Snnumber = objSnNum;
        if(Snnumber.length!=15 && Snnumber.length!=18) {
                        alert("身份证号码输入错误,号码长度错误");
                        return (false);
        }

        if(Snnumber.length == 15) {
                if(!isValidNumber(objSnNum)) {
                        alert("请输入正确的身份证号码,只能包括数字");
                        return (false);
                }

                var YearNum = parseInt(Snnumber.slice(6,8),10);
                var MonthNum = parseInt(Snnumber.slice(8,10),10);
                var DayNum = parseInt(Snnumber.slice(10,12),10);
                if(MonthNum<1 || MonthNum>12 || DayNum<1 || DayNum>31) {
                  alert("身份证号码输入错误,无该号码");
                  return(false);
                }


        }//end 15

        if(Snnumber.length == 18)	{
                if(!IsValid18Sn(Snnumber)) {
                        alert("请输入正确的身份证号码,只能包括数字及特殊字母");
                        return (false);
                }



                var YearNum = parseInt(Snnumber.slice(6,10),10);
                var MonthNum = parseInt(Snnumber.slice(10,12),10);
                var DayNum = parseInt(Snnumber.slice(12,14),10);
                if(MonthNum<1 || MonthNum>12 || DayNum<1 || DayNum>31) {
                        alert("身份证号码输入错误,无该号码");
                        return(false);
                }



   }//end 18

        return(true);

}

//检查email是否合法
function isLegalMail(inputStr, description)
{
 if(inputStr.length!=0)
  {
    var	pattern = "";
	pattern = /^([a-z0-9_A-Z])+([-|\.]+[a-z0-9_A-Z]+)*@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-z0-9A-Z]{2,}$/;
	//pattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	if(!inputStr.match(pattern))
	{
        if ( (description!=null) && (description.length>0) )
        {
            alert(description + "的格式不正确！");
        }
        else
        {
		    alert("Email的格式不正确！");
        }
        return false;
	}
    /******
	if (inputStr.charAt(0)=="." ||
         inputStr.charAt(0)=="@"||
         inputStr.indexOf('@', 0) == -1 ||
         inputStr.indexOf('.', 0) == -1 ||
         inputStr.lastIndexOf("@")==inputStr.length-1 ||
         inputStr.lastIndexOf(".")==inputStr.length-1 ||
         inputStr.indexOf('@', 0) > inputStr.indexOf('.', 0) )
     {


        alert("Email的格式不正确！");

        return false;
      }
	  /******/
   }
// else
//  {
//   alert("Email的值不能为空！");
//
//   return false;
//   }
 return true;
}



//检测是否是数字
//inputStr       输入的字符串
//description    文本框描述,如果为空则不出现提示框
//返回:
//     是数字:true;
//     否: false
function isNumber(inputStr,description) {
   var iLen=inputStr.length;
   var i,ch;
   var dot=0;
   var bOK=true;
   if (iLen==0)
       bOK=false;
   if (bOK)
   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);
       if (i==0 && (ch=="+" || ch=="-"))
         continue;
       if (ch==".")
       {
          dot++;
          if (dot>=2)
          {
              bOK=false;
              break;
          }
       }
       else
           if (! (  (ch>="0") && (ch<="9")  ))
           {
              bOK=false;
              break;
           }
   }
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0))
           alert(description+"中输入的值不是有效数字!");
   }
   return bOK;

}




//检测是否电话号码
//inputStr      输入的字符串
//description   文本框描述,如果为空则不出现提示框
//返回:
//     是电话号码:true;
//     否: false
function isTelNumber(inputStr,description) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;

   if (iLen==0)
       bOK=false;

   if (bOK)
   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);
       if ( (  ( ch!="-" ) && ( ch!="(" ) && ( ch!= ")" ) && (ch!="+") &&  ( (! (  (ch>="0") && (ch<="9")  )) ) )  || ( (ch=="+")&& (i!=0) ) )
       {
            bOK=false;
            break;
       }
   }
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert(description+"中输入不是有效的电话号码!");
   }
   return bOK;
}


//检测是否身份证号
//inputStr      输入的字符串
//description   文本框描述,如果为空则不出现提示框
//返回:
//     有效身份证号:true;
//     否: false
function isIDNumber(inputStr,description) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;
   if ( (iLen!=18) &&  (iLen!=15) )
        bOK=false;

   if (bOK)
   if (iLen==18 )  //18位身份证号
   {
        var strdate=inputStr.substring(6,10);
        if (  ! ( (Number(strdate)>1900) && (Number(strdate)<2050)  )  )
            bOK=false;
        else
        {
            strdate=inputStr.substring(10,12);
            if (  ! ( (Number(strdate)>=1) && (Number(strdate)<=12)  )  )
                bOK=false;
            else
               {
                   strdate=inputStr.substring(12,14);
                   if (  ! ( (Number(strdate)>=1) && (Number(strdate)<=31)  )  )
                       bOK=false;
               }

        }
   }
   else    //15位身份证号
   {
        var strdate;
        {
            strdate=inputStr.substring(8,10);
            if (  ! ( (Number(strdate)>=1) && (Number(strdate)<=12)  )  )
                bOK=false;
            else
               {
                   strdate=inputStr.substring(10,12);
                   if (  ! ( (Number(strdate)>=1) && (Number(strdate)<=31)  )  )
                   {
                       bOK=false;
                   }
               }
        }
   }

   if (bOK)
	{
	   for (i=0;i<iLen-1;i++)
	   {
		   ch=inputStr.substring(i,i+1);
		   if (  ! (  (ch>="0") && (ch<="9")  ) )
		   {
			   bOK=false;
			   break;
			}
		}
		ch=inputStr.substring(iLen-1);

		if(iLen==18)  //18位身份证号最后一位可以为x或X
		{
			//判断第18位是否是x或X
			if ( ! (  (ch>="0") && (ch<="9")  ) && ! (  (ch=="x") || (ch=="X") ) )
			{
				bOK=false;
			}
		}
		else
		{
			//判断第15位是否是数字
			if ( ! (  (ch>="0") && (ch<="9")  ) )
			{
				bOK=false;
			}
		} 
	}

    if (! bOK)
   {
          if ( (description!=null) && (description.length>0) )
              alert(description+"中输入不是有效的身份证号!");
   }
   return bOK;
}


//added by hheng 2003-08-15
//将返回符合定义的小数位数的数值
//inputStr: 输入的数值
//digit: 需要保留的小数位数
function chgFloatDigit(inputStr, digit) {
    var iNumber;
    inputStr = String(inputStr);
    if (inputStr.length > 0) {
               if (!isNumber(inputStr)) {
             return inputStr;
        }
        iNumber	= Number(inputStr);
        iNumber	= iNumber < 0? -iNumber: iNumber;
        inputStr	= String(iNumber);
        var pp  = inputStr.indexOf(".");
        pp	= (pp < 0)? inputStr.length: pp;
        var intNum = inputStr.substr(0, pp);
        var dNum = inputStr.substr(pp + 1, digit);
        var iLength = digit - dNum.length;
        for(i = 0; i < iLength; i++)
        {
          dNum += "0";
        }
        inputStr = intNum + "." + dNum;
    }
    return inputStr;
}

//upload by chen tie gang
//左右页面响应函数
//n:显示的页面，值为0,1,2。。。

  function secBoard(n)
  {
    for(i=0;i<secTable.cells.length;i++)
      secTable.cells[i].className="sec1";
    secTable.cells[n].className="sec2";
    for(i=0;i<mainTable.tBodies.length;i++)
      mainTable.tBodies[i].style.display="none";
    mainTable.tBodies[n].style.display="block";
  }



//created by wjfeng 2003-12-25  , forbid to input ' "  <  >
//检测密码
//inputStr      输入的字符串
//返回:
//     不超长:true;
//     否: false
function chkPwd(inputStr) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;
   var iTrueLen=iLen;


   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);

       if (!check_char(ch,"","',\",<,>"))
       {
           alert("密码中禁止输入',\",<,>非法字符!");
           return false;
       }

       if (ch>="\u0080")
       {
            iTrueLen++;
       }

       if(((i == (iLen-1))||(i == 0)) &&(ch == ' ')) {alert("密码首尾字符不允许是空格！"); return false;}
   }
   bOK= ((iTrueLen<=20) && (iTrueLen>=8));
   if (! bOK)
   {
           alert("密码长度必须为8～20位(一个汉字长度为2)!");
           return false ;
   }
   return bOK;
}

//检查POP3, SMPT服务器是否合法
function isLegalServer(inputStr)
{
 var isIp = true;
 if(inputStr.length!=0)
  {
   var ValArray = inputStr.split(".");
   if(ValArray.length<3)
   {
      alert("非法的服务器！");
      return false;
   }
   else
   {
    for(var i=0;i<ValArray.length;i++)
    {
       if(!isIp)
       {
          break;
       }
       if(ValArray[i].length==0)
       {
           isIp = false;
       }
    }
    if(!isIp)
    {
       alert("非法的服务器！");
       return false
    }
   }
    for (i=0;i<inputStr.length;i++)
   {
       ch=inputStr.substring(i,i+1);

       if (!check_char(ch,"a-z,A-Z,0-9,.",""))
       {
           alert("字段中包括非法字符！");
           return false;
       }
    }
   }
 return true;
}

/************************
将字符串s中的所有s1替换成s2
************************/
function replaceAll(s,s1,s2){
  var newS = s.replace(s1,s2);
  if(newS.indexOf(s1)<0)
	 return newS;
  return replaceAll(newS,s1,s2);
}

function CloseWin()
{
var ua=navigator.userAgent
var ie=navigator.appName=="Microsoft Internet Explorer"?true:false
if(ie){
    var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))))
 if(IEversion< 5.5){
    var str  = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">'
    str += '<param name="Command" value="Close"></object>';
    document.body.insertAdjacentHTML("beforeEnd", str);
    document.all.noTipClose.Click();
 }
 else{
    window.opener =null;
    window.close();
 }
}
else
    window.close()
}


function isOnlyNumber(inputStr, description){
        var re=true;

        if(inputStr==null || inputStr=="") return true;

        for (i = 0; i < inputStr.length; i++) {
                codev = inputStr.charCodeAt(i);
                if ( (codev >47 && codev <58) ) //没找到
                 {
                        ;
                 }
                 else
                 {
                      re=false;
                      alert(description + "只能输入大于0的整数!!");
                      break;
                 }

         }

       return re;
}

function isLength(inputStr,Len,description) {
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;

   bOK= (iLen==Len);
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert(description+"长度必须为"+Len+"!");
   }
   return bOK;

}   
 
function checkSubIP(subIp){
   if(subIp==''||isNaN(subIp)||parseInt(subIp,10)<0||parseInt(subIp,10)>255)
     return false;
   return true;
} 
/**
检查IP地址是否有效       
ipAddressObj   IP地址文本框        
有效返回true,无效提示错误，返回false
*/
function checkIP(ipAddressObj){
  var a = ipAddressObj.value.split(".");
  if(a.length!=4){
    alert("您输入的IP地址无效！");
	ipAddressObj.focus();
	return false;
  }
  if(checkSubIP(a[0])&&checkSubIP(a[1])&&checkSubIP(a[2])&&checkSubIP(a[3]))
      return true;
  else{
    alert("您输入的IP地址无效！");
	ipAddressObj.focus();
	return false;
  }
}


function newin (url,w,h)
{
     window.open(url,"","toolbar=no,width="+w+",height="+h+",directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no")
}  

//检查是否为中文
function isNotChinese(inputStr,description) 
{
   var iLen=inputStr.length;
   var i,ch;
   var bOK=true;

   for (i=0;i<iLen;i++)
   {
       ch=inputStr.substring(i,i+1);

       if (ch>="\u0080")
       {
           bOK=false;
           break;
       }
   }
   if (! bOK)
   {
       if ( (description!=null) && (description.length>0) )
           alert("暂时不支持中文名文件上传,请重命名后再上传!");
   }
   return bOK;

} 

//************************************************** Add By Allen Begin***********************************************//

/*与当前日期比较的函数，大于（晚于）当前日期则返回true
 *datestring : 格式：2005-10-11 12:11:34
 *备注：当前日期多加了5分钟
 */
function compareNowDateTime(datestring)
{
	var nd = new Date();
	var year   = datestring.substring(0, datestring.indexOf("-"));
	var month  = datestring.substring(datestring.indexOf("-") + 1, datestring.lastIndexOf("-")) - 1;
	var day    = datestring.substring(datestring.lastIndexOf("-") + 1, datestring.indexOf(" "));
	var hour   = datestring.substring(datestring.indexOf(" ") + 1, datestring.indexOf(":"));
	var minute = new Number(datestring.substring(datestring.indexOf(":") + 1, datestring.lastIndexOf(":"))) - 5;
	var second = datestring.substring(datestring.lastIndexOf(":") + 1, datestring.length);
	 
	var cd = new Date(year, month, day, hour, minute, second);
	 
	if(cd > nd)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function getDatetime(datestring)
{
	var year   = datestring.substring(0, datestring.indexOf("-"));
	var month  = datestring.substring(datestring.indexOf("-") + 1, datestring.lastIndexOf("-")) - 1;
	var day    = datestring.substring(datestring.lastIndexOf("-") + 1, datestring.indexOf(" "));
	var hour   = datestring.substring(datestring.indexOf(" ") + 1, datestring.indexOf(":"));
	var minute = datestring.substring(datestring.indexOf(":") + 1, datestring.lastIndexOf(":"));
	var second = datestring.substring(datestring.lastIndexOf(":") + 1, datestring.length);
	 
	var cd = new Date(year, month, day, hour, minute, second);
	return cd;
}

/*比较2个日期，前者大于（晚于）后者则返回true
 *datestring : 格式：2005-10-11 12:11:34 
 */
function compareDateTime(datestring, datestring2)
{
	var dt  = getDatetime(datestring);
	var dt2 = getDatetime(datestring2);
	
	if(dt > dt2)
	{
		return true;
	}
	else
	{
		return false;
	}
}

/*将字符串src中的长度大于len部分转为省略号
 *src：源字符串 len：长度
 *返回值：转换后字符串
 */
function getOmit(src, len)
{
	var strLen = getStrLen(src);   	
   	
	if(strLen <= len)
	{
		return src;
	}
	else
	{ 
		var i=0, realLen=0;
		
		for(; realLen<len-3; i++, realLen++)
		{
			ch = src.substring(i, i+1);
			
			if (ch >= "\u0080")
       			{
            			realLen ++;
       			}
		}
		var omit = src.substring(0, i);		 
		
		omit += "..."; 
		return omit;
	}
}


/**
 *获得字符串长度（中文长度为2）
 */
function getStrLen(src)
{
	var strLen = src.length;


   	for (i=0; i<src.length; i++)
   	{
       		ch = src.substring(i, i+1); 

       		if (ch >= "\u0080")
       		{
            		strLen ++;
       		}
   	}
   	
   	return strLen;
}

function getDateObj(datestring)
{
	var year   = datestring.substring(0, datestring.indexOf("-"));
	var month  = datestring.substring(datestring.indexOf("-") + 1, datestring.lastIndexOf("-")) - 1;
	var day    = datestring.substring(datestring.lastIndexOf("-") + 1, datestring.length); 
	 
	var cd = new Date(year, month, day);
	return cd;
}

/*比较2个日期，前者大于（晚于）后者则返回1
 *      等于返回0，小于返回-1
 *datestring : 格式：2005-10-11 
 */
function compareDate(datestring, datestring2)
{
	var dt  = getDateObj(datestring);
	var dt2 = getDateObj(datestring2);
	
	if(dt > dt2)
	{
		return 1;
	}
	else if(dt = dt2)
	{
		return 0;
	}
	else
	{
		return -1;
	}
}

/**
 *判断是否str是否存在下拉列表selectName中
 *返回:boolean值
 */
function isExistInSelect(selectName, str)
{
	var obj = frm(selectName);
	
	if(obj != null)
	{
		for(var i=0; i<obj.options.length; i++)
		{
			if(obj.options[i].value == str)
			{
				return true;
			}
		}
	}
	
	return false;
}

function escapeXmlString(str)
{
	if(str == null || str == "")
	{
		return "";
	}
	//alert("["+str+"]");
	var ret = "";
	for(var i = 0; i < str.length; i++)
	{
		var ch = str.charAt(i);
		switch(ch)
		{
			case '>' : ch = '〉'; break;
			case '<' : ch = '〈'; break;
			case '\'' : ch = '‘'; break;
			case '"' : ch = '“'; break;
			case '&' : ch = '＆'; break;
			default : ch = ch; break;
		}
		ret += ch;
	}
	//alert("["+ret+"]");
	return ret;
}

/**
 * string: 源字符串
 * vstr  : 需要转义的字符，如“'"，”\“等，如果2者都需要转义，则输入:"',\\"
 * 返回结果：转义后的字符串
 */
function getESCvalue( string, vstr )
{
	var len = string.length;
   	var i, ch;
   	var rstr = "";
	
   	for (i=0; i<len; i++)
   	{
       	ch = string.substring(i, i+1);
 
       	if(vstr.indexOf( ch ) < 0)
		{
			rstr += ch;
		}
		else
		{
			rstr += "\\" + ch;
		}
   	}
	
	return rstr;
}
//************************************************** Add By Allen end***********************************************//
//密码强度校验
function PasswordStrength(showed){	
	this.showed = (typeof(showed) == "boolean")?showed:true;
	this.styles = new Array();	
	this.styles[0] = {backgroundColor:"#EBEBEB",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BEBEBE",borderBottom:"solid 1px #BEBEBE"};	
	this.styles[1] = {backgroundColor:"#FF4545",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BB2B2B",borderBottom:"solid 1px #BB2B2B"};
	this.styles[2] = {backgroundColor:"#FFD35E",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #E9AE10",borderBottom:"solid 1px #E9AE10"};
	this.styles[3] = {backgroundColor:"#95EB81",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #3BBC1B",borderBottom:"solid 1px #3BBC1B"};
	
	this.labels= ["弱","一般","安全"];

	this.divName = "pwd_div_"+Math.ceil(Math.random()*100000);
	this.minLen = 5;
	
	this.width = "150px";
	this.height = "16px";
	
	this.content = "";
	
	this.selectedIndex = 0;
	
	this.init();	
}
PasswordStrength.prototype.init = function(){
	var s = '<table cellpadding="0" id="'+this.divName+'_table" cellspacing="0" style="width:'+this.width+';height:'+this.height+';">';
	s += '<tr>';
	for(var i=0;i<3;i++){
		s += '<td id="'+this.divName+'_td_'+i+'" width="33%" align="center"><span style="font-size:1px">&nbsp;</span><span id="'+this.divName+'_label_'+i+'" style="display:none;font-family: Courier New, Courier, mono;font-size: 12px;color: #000000;">'+this.labels[i]+'</span></td>';
	}	
	s += '</tr>';
	s += '</table>';
	this.content = s;
	if(this.showed){
		document.write(s);
		this.copyToStyle(this.selectedIndex);
	}	
}
PasswordStrength.prototype.copyToObject = function(o1,o2){
	for(var i in o1){
		o2[i] = o1[i];
	}
}
PasswordStrength.prototype.copyToStyle = function(id){
	this.selectedIndex = id;
	for(var i=0;i<3;i++){
		if(i == id-1){
			this.$(this.divName+"_label_"+i).style.display = "inline";
		}else{
			this.$(this.divName+"_label_"+i).style.display = "none";
		}
	}
	for(var i=0;i<id;i++){
		this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style);			
	}
	for(;i<3;i++){
		this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style);
	}
}
PasswordStrength.prototype.$ = function(s){
	return document.getElementById(s);
}
PasswordStrength.prototype.setSize = function(w,h){
	this.width = w;
	this.height = h;
}
PasswordStrength.prototype.setMinLength = function(n){
	if(isNaN(n)){
		return ;
	}
	n = Number(n);
	if(n>1){
		this.minLength = n;
	}
}
PasswordStrength.prototype.setStyles = function(){
	if(arguments.length == 0){
		return ;
	}
	for(var i=0;i<arguments.length && i < 4;i++){
		this.styles[i] = arguments[i];
	}
	this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.write = function(s){
	if(this.showed){
		return ;
	}
	var n = (s == 'string') ? this.$(s) : s;
	if(typeof(n) != "object"){
		return ;
	}
	n.innerHTML = this.content;
	this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.update = function(s){
	if(s.length < this.minLen){
		this.copyToStyle(0);
		return;
	}
	var ls = -1;
	if (s.match(/[a-z]/ig)){
		ls++;
	}
	if (s.match(/[0-9]/ig)){
		ls++;
	}
 	if (s.match(/(.[^a-z0-9])/ig)){
		ls++;
	}
	if (s.length < 6 && ls > 0){
		ls--;
	}
	 switch(ls) { 
		 case 0:
			 this.copyToStyle(1);
			 break;
		 case 1:
			 this.copyToStyle(2);
			 break;
		 case 2:
			 this.copyToStyle(3);
			 break;
		 default:
			 this.copyToStyle(0);
	 }
}
function change(s){
  if(s.length < this.minLen){
		this.copyToStyle(0);
		return;
	}
	
	var ls = -1;
	if (s.match(/[a-z]/ig)){
		ls++;
	}
	if (s.match(/[0-9]/ig)){
		ls++;
	}
 	if (s.match(/(.[^a-z0-9])/ig)){
		ls++;
	}
	if (s.length < 6 && ls > 0){
		ls--;
	}
	if(ls=='0'){
	
	  return false;
	}
	return true;
}


/**
 *	检验如果不是GB编码的  则返回false，认为有特殊编码字符
 */
function isNotGBK(fData)
{
    var c;
    var ret="";
    for (var i=0;i<fData.length;i++)
    {
    	//获得字符的unicode编码值
    	c = fData.charCodeAt(i);
    	//0-255为 C0控制符及拉丁文,包括数字,字母，英文标点符号
    	//12288-12351为 CJK 符号和标点,包括中文标点符号;8304－8351为上标及下标
    	//65280-65519为 半型及全型形式; 19968-40869为 汉字的unicode编码范围;
    	//8216为中文单引号’ 8217为中文单引号‘ 8220为中文双引号“ 8221为中文双引号”
    	//8230为中文省略号…… 8212为中文—
        if( (c <= 255) || ( (c >= 8304)&&(c<=8351) ) ||
        	( (c >= 12288)&&(c<=12351) ) || ( (c >= 19968)&&(c<=40869) ) ||
        	( (c >= 65280)&&(c<=65519) ) || c==8216 ||c==8217 || c==8220 || c==8221 ||
        	c==8230 || c==8212 || c==8451 || c==8240)
        {
        	continue; 
        }
        else
        {
        	ret = ret+fData.charAt(i);
        }
    }
    if(ret!="")
    {
    	alert("您的输入中包含特殊字符"+ret);
    	return true;
    }
    else
    {
    	return false;
    }
}

/**
 * 是否含有, ; . # % & < > \\ | 和/等特殊字符
 *
 */
 var signs = new Array(',',';','.','#','%','&','$','<','>','|','/','\\',':','?','\'','‘','\"','”','“','’','‘','’',
 											'[',']',')','(','{','}','，','；','。','#','%','&','￥','《','》','|','/','、','：','？',
 											'【','】','（','）','{','}','，','；','。','＃','％','—','￥','《','》','｜','／','＼','：','？',
 											'【','】','（','）','｛','｝','+','-','=','＋','－','＝');
function hasSign(str)
{
	for(var i =0; i<signs.length;i++)
	{
		if(str.indexOf(signs[i]) > -1)
		{
			return true;
		}
	}
	return false;
}
