/* --------------------------------------------------------------------------
 * Project:     IM Common JavaScript
 * Company:     Jasson
 * Copyright:   Copyright (c) 2003 - 2005 Jasson
 * Author:      Jasson
 * History:     2003-06-03  Created By Lance
 * -------------------------------------------------------------------------- */


//数据合法性的及时校验
//*******************************************************************************
//检测是否是否非空
//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;
     }
}
//数据合法性的及时校验
//*******************************************************************************
//检测是否是否非空

//inputStr       输入的字符串
//description    文本框描述,如果为空则不出现提示框
//isClewAll  提示框中内容是否包含所有内容。
//           true 提示内容：description+不许为空!
//			false 提示内容：description
//返回:
//     非空:true;
//     空: false
function isNotNullRe(inputStr,description,isClewAll) 
{
    if (inputStr==null)
   	{
       	if ( (description!=null) && (description.length>0) )
       	{
       		if(isClewAll)
       		{
       			alert(description+"不许为空!");
       		}
       		else
       		{
       			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) )
       	{
            if(isClewAll)
       		{
       			alert(description+"不许为空!");
       		}
       		else
       		{
	       		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) 
{
   inputStr=trim(inputStr);
   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)
        {
        	if((startlimit!=null)&&(endlimit!=null))
        	{
        		alert(description+"只许输入"+startlimit+"到"+endlimit+"间整数!");
        	}
        	else if((startlimit==null)&&(endlimit!=null))
        	{
        		alert(description+"只许输入小于或等于" + endlimit + "的整数!");
        	}
        	else if((startlimit!=null)&&(endlimit==null))
        	{
        		alert(description+"只许输入大于或等于"+startlimit+"的整数!");
        	}
        	else
        	{
        		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);
}

/*
  检查输入的字符串是否含有特殊字符
*/
function checkChar(str,description)
{
  	for(var i=0;i<str.length;i++)
	{
    	if (!check_char(str.charAt(i),"","',\""))
		{
         	alert(description+"中禁止输入',\"");
        	return false;
    	}
  	}
  	return true;
}

/*
  检查输入的字符串是否含有\\或者+号

*/
function checkChar2(str)
{
  	for(var i=0;i<str.length;i++)
	{
    	if (!check_char(str.charAt(i),"","\+"))
		{
        	return false;
    	}
    	if (!check_char(str.charAt(i),"","\\"))
		{
        	return false;
    	}
  	}
  	return true;
}

//检测中国移动手机号码,m:移动，u:联通，t:电信小灵通
//num：手机号码，11位，前面可加0，86，086
function isMobile(num)
{
    num = trim(num);
    if(isAllZero(num))
    {
    	return false;
    }
    if(isMobileFatory(num,'m')||isMobileFatory(num,'u')||isMobileFatory(num,'t')||isMobileFatory(num,'te'))
      	return true;
    else
      	return false;
}

function isAllZero(num)
{
	for(var i=0;i<num.length;i++)
    {
    	if(num.charAt(i)!='0')
    	{
    		return false;
    	}
    }
    return true;
}


//检测手机号码
//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 ||"te" == 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 if("te" == factory) // 电信cdma
    {
    	for (i=0; i<tele.length; i++)
        {
            if ( tele[i] == first3Num )
            {
                haveIn = true;
                break;
            }
        }

        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));
    return str.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}
// 去掉所有空格
function trimAll(str)
{
	var str1="";
	if(str == "")
	{
		return str;
	}
	else
	{
		var len = str.length;
		for(var i=0;i<len;i++)
		{
			 if (str.charAt(i) != " ")
    		{
    			str1 += str.charAt(i);
			}
		}
	}
	return str1;
}

//根据日期完整的字符串,返回制定的年,月,日
// 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];
}



var rootPath = "";
//联通号段
var u = new Array('130', '131', '132', '156','185','186');
//移动号段
var m = new Array('134', '135', '136', '137', '138', '139', 
       '150', '157', '158', '159','187','188');
// 电信号段
var tele = new Array('133','153','180','189');
//错误信息
var err = '';

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;";
    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";
    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;
}

//--------------------------------------------------------------------------------------------

// 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;
}
 

//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 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 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;
}
 
//验证是否为URL地址
function isURL(str_url)
{

    var url_reg = /^((http|ftp|https):\/\/)?(((\w(\-*\w)*\.)+[a-zA-Z]{2,4})|(((1\d\d|2([0-4]\d|5[0-5])|[1-9]\d|\d).){3}(1\d\d|2([0-4]\d|5[0-5])|[1-9]\d|\d).?))(:\d{1,5})?(\/+.*)*$/ ;
    //var url_reg = /^((http|ftp|https):\/\/)(\s+)(?::(\s+))(\/+.*)*$/;
	if (url_reg.test(str_url))
	{
    	return (true); 
    }
	else
	{ 
        return (false); 
    }
}

//检查email是否合法
function isLegalMail(inputStr)
{
 	if(trim(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,}$/;
		if(!trim(inputStr).match(pattern))
		{
			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位!");
      	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 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||trim(subIp).length<subIp.length)
     	return false;
   	return true;
} 

/**
检查IP地址是否有效       
value   IP地址        
有效返回true,返回false
*/
function checkIP(value)
{
	var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
	var reg = value.match(exp); 
	if(reg==null) 
	{ 
		return false; 
	}
	else
	{
		return true; 
	}
}
 
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(Date.parse(dt) == Date.parse(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***********************************************//

//比较输入的两日期是否合法,带提示信息
// 参数:
//    starttime:起始日期字符串
//    endtime: 结束日期字符串
//    starttimedesc:起始日期描述
//    endstimedesc:结束日期描述
 
// 返回:
//    true : 合法    false:非法
function isDateCompareValid(starttime, endtime, starttimedesc, endtimedesc)
{
 	if((starttime!=null && starttime.length>0) && (endtime!=null && endtime.length>0))
 	{    
 		var bOK = compareDate(starttime, endtime) <= 0; 
       	if ( !bOK )
     	{
        	alert(starttimedesc+"所输入的日期必须早于或等于"+endtimedesc+"所输入日期!");
    	}
    	return bOK;
 	}
 	else
 	{
    	return true;
 	}
}
//密码强度校验
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();	
}


//先注释掉，不然标题太丑
//function window.confirm(str)
//{
//    execScript("n = msgbox('"+ str +"', 257)", "vbscript");
//    return(n == 1);
//}


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);
	}
}	
PasswordStrength.prototype.keydown = function()
{
	if(event.ctrlKey){
    	event.returnValue = false;
	}
}
//检测输入内容是否正确的端口号
//inputStr 输入值 description 文本框描述，如果为空则不提示
function isPorts(inputStr, description)
{
	var bOk;
	if(isNumber(inputStr, description))
	{
		if(isIntTypeValid(inputStr,1,65535))
		{
			bOk = true;
		}
		else
		{
			alert(description+"必须在1-65535之间");
			bOk = false;
		}
	}
	else
	{
		bOk = false;
	}
	return bOk;
}
