/*
==================================================================
	名字：CommonLib.js
	
	功能：通用JavaScript脚本函数库

	作者：新事业 Martin Guo
	
	日期：2007/06/21
==================================================================
*/ 



/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/

function LTrim(str)
{

    var whitespace = new String(" \t\n\r");
    var s = new String(str);    

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {

        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {

            j++;

        }
        s = s.substring(j, i);

    }

    return s;

}
 

/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/

function RTrim(str)
{

    var whitespace = new String(" \t\n\r");
    var s = new String(str); 

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {

        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {

            i--;

        }

        s = s.substring(0, i+1);
    }

    return s;

}

 

/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/

function Trim(str)
{

    return RTrim(LTrim(str));

}

/*
================================================================================
IsEmpty(strObj):(strobj: 需验证的字符串)
功能：验证是否为空函数
================================================================================
*/

function IsEmpty(strObj)
{

    if(Trim(strObj)=="" || strObj==null)
    {      
      return true;
    }
	else
	   return false;

}

/*
================================================================================
checkDate(strObj):(strDate: 需验证的字符串)
功能：验证字符串是否为正确的日期格式("yyyy/mm/dd")
================================================================================
*/
function checkDate(strDate)
{var m;
var d;
var a=new Date(strDate);
var y=a.getFullYear();
if (a.getMonth()<9)
   m=("0"+(a.getMonth()+1));
else
    m=a.getMonth()+1;
if (a.getDate()<10)
    d=("0"+a.getDate());
else
     d=a.getDate();
var myday=y+"/"+m+"/"+d;   
//var myday=y+"-"+m+"-"+d;   
if (myday!=strDate)
{return false; 
}
return true; 
}

/*
================================================================================
strDateTime(str):(str: 需验证的字符串)
功能：验证字符串是否为正确的日期格式　　　
================================================================================
*/
function strDateTime(str)
      {
	   
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
        var r = str.match(reg);
       
		if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],00,00,00);
        var iis = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
	    return iis;
	
      } 
     
/*
================================================================================
strDateTime(str):(str: 需验证的字符串)
功能：验证字符串是否为正确的日期格式　　　
================================================================================
*/ 
function CompareData(strBeginDate,strEndDate)
{
    var flag = true;
    if (!IsEmpty(strBeginDate) && !IsEmpty(strEndDate))
    {
        var d1 = new Date(strBeginDate.replace(/-/g, "/"));
        var d2 = new Date(strEndDate.replace(/-/g, "/"));
        if (Date.parse(d1) - Date.parse(d2) > 0) 
        {
		    flag = false;
        }
    }
    return flag;
}
	 
/*
================================================================================
Numbercheck(txtvalue):(txtvalue:测试字符串,返回值：TRUE/FALSE)

功能：判断测试字符串是否为全为数字
================================================================================
*/

function Numbercheck(txtvalue)
{  
	if (!IsEmpty(txtvalue))	   
	     return txtvalue.match(/\D/)==null;	   
	 else
	     return false;
} 

/*
================================================================================
OverLengthCheck(txtvalue,intlength):(txtvalue:测试字符串,intlength:指定的长度
返回值：TRUE/FALSE
功能：判断测试字符串是否为超过指定长度
================================================================================
*/

function OverLengthCheck(txtvalue,intlength)
{   
	if (!IsEmpty(txtvalue))
	 {
		 if( (Trim(txtvalue)).length<=intlength)
			 return false;
		  else
			 return true;
	 }
	else
	     return false;
}
/*
================================================================================
SpecialStringCheck(txtvalue):(txtvalue:测试字符串)
返回值：TRUE/FALSE
功能：判断测试字符串是否特殊字符串
================================================================================
*/

function SpecialStringCheck(txtvalue)
{   
	if (!IsEmpty(txtvalue))
	 {var re=/^\?|\'|\<|\>|\%|\*|xp_cmdshell|exec%20master|\;|\:|net%20user|%20or%20|\"|\>|\</;

      var e = re.test(txtvalue);
		 if(e)
		    return true; 
		 else
		    return false;
	 }
	else
	     return false;
}

/*
================================================================================
ChineseCharCheck(str):(str:测试字符串,返回值：TRUE/FALSE)

功能：判断测试字符串是否包含汉字
================================================================================
*/

function ChineseCharCheck(str)
{
	if (/[^\x00-\xff]/g.test(str)) 
	    return trun;
    else 
	   return false;
}
 

/*
================================================================================
IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)

功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
================================================================================
*/

function IsFloat(objStr,sign,zero)
{

    var reg;
    var bolzero;   

    if(Trim(objStr)=="")
    {

        return false;

    }
    else
    {

        objStr=objStr.toString();

    }  
    if((sign==null)||(Trim(sign)==""))
    {

        sign="+-";

    }   

    if((zero==null)||(Trim(zero)==""))
    {

        bolzero=false;

    }
    else
    {

        zero=zero.toString();
        if(zero=="0")
        {

            bolzero=true;

        }

        else

        {

            alert("检查是否包含0参数，只可为(空、0)");

        }

    }   

    switch(sign)
    {

        case "+-":

            //浮点数

            reg=/^((-?|\+?)\d+)(\.\d+)?$/;

            break;

        case "+": 

            if(!bolzero)           

            {

                //正浮点数

                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //正浮点数+0

                reg=/^\+?\d+(\.\d+)?$/;

            }

            break;

        case "-":

            if(!bolzero)

            {

                //负浮点数

                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;

            }

            else

            {

                //负浮点数+0

                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;

            }            

            break;

        default:

            alert("检查符号参数，只可为(空、+、-)");

            return false;

            break;

    }
    var r=objStr.match(reg);
    if(r==null)
    {

        return false;

    }
    else
    {        

        return true;     

    }

}


/*
================================================================================
IsEnLetter(objStr,size)  objStr:测试字符串，size:大小写(UL,U,L or ul,u,l)
返回值：true/false
功能：判断测试字符串是否全由指定的标志（UL/ul/null:大小写,U/u:大写,L/l:小写）组成
例如：IsEnLetter("aaf12","L") 返回:false 
      IsEnLetter("aaf","L") 返回:true
	  IsEnLetter("AAF12","U") 返回:false
	  IsEnLetter("AAF","U") 返回:true
	  IsEnLetter("AAFaaf","UL") 返回:true
================================================================================
*/
function IsEnLetter(objStr,size)
{
	var reg;
    if(Trim(objStr)=="")
    {

        return false;

    }
    else
    {
        objStr=objStr.toString();

    }     

    if((size==null)||(Trim(size)==""))
    {

        size="UL";

    }
    else
    {

        size=size.toUpperCase();

    }
    switch(size)
    {

        case "UL":            
            reg=/^[A-Za-z]+$/; //大小写
            break;

        case "U":            
            reg=/^[A-Z]+$/;  //大写
            break;

        case "L":            
            reg=/^[a-z]+$/; //小写
            break;

        default:
            alert("检查大小写参数，只可为(空、UL、U、L)");
            return false;
            break;
    }   

    var r=objStr.match(reg);
    if(r==null)
    {

        return false;

    }
    else
    {        

        return true;     

    }

}

/*
================================================================================
XMLEncode(str):(str ：需编码的字符串)
功能：对字符串进行XML编码
================================================================================
*/

function XMLEncode(str)
{

       str=Trim(str);
       str=str.replace("&","&amp;");
       str=str.replace("<","&lt;");
       str=str.replace(">","&gt;");
       str=str.replace("'","&apos;");
       str=str.replace("\"","&quot;");
       return str;

}

/*
================================================================================
IsEmail(str):(str ：需检测的字符串)
功能：判断字符串是否为Email格式
返回值：Email格式　　返回 True
        非Email格式　返回 False
================================================================================
*/

function IsEmail(str)
{
   
	    a = str.match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/);
        if(a == null)
         {
          return false;
          }
        else
        {
           return true;
        }	

}
