/*
功能：通用JavaScript脚本函数库
包括：
                     1.Trim(str)－－去除字符串两边的空格
                     2.XMLEncode(str)－－对字符串进行XML编码
					 3.IsEmpty(obj)－－验证输入框是否为空
                     4.IsInt(objStr,sign,zero)－－验证是否为整数
                     5.IsFloat(objStr,sign,zero)－－验证是否为浮点数
                     6.IsEnLetter(objStr,size)－－验证是否为26个字母
					 等等
*/

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;
}

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;
}
 

function Trim(str)
{
	if(str == null){
		alert("send a string");
		return "";
	}
    return RTrim(LTrim(str));
}
 
//XMLEncode(string):对字符串进行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;
}
 
//判断是否为空
function IsEmpty(obj)
{
    if(Trim(obj.value)=="")
    {
        alert("字段不能为空。");        
        if(obj.disabled==false && obj.readOnly==false)
        {
            obj.focus();
        }
    }
}
 
/*
IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0
*/
function IsInt(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+$/;            
            break;
        case "+": 
            if(!bolzero)           
            {
                //正整数
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //正整数+0
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //负整数
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //负整数+0
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }            
            break;
        default:
           alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }
    
    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {        
        return true;     
    }
}
 
/*
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(string,string):测试字符串，大小写(UL,U,L or ul,u,l)
*/
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;     
    }
}

/*
 功能:判断传入的字符串是否有中文或者全角字符
 参数:传入的字符
 返回值:是否中文
*/
function isChinese(str){  

	var ret = false;  
	for(var i=0;i<str.length;i++) { 
		ret = ret || (str.charCodeAt(i)>=10000);
	}
	return ret;  

	//return true;
}

/*
 功能:获取中文字符的位置
 参数:传入的字符
 返回值:位置
*/
function chinesePosition(str){  
  var pos = 0;
	for(var i=0;i<str.length;i++) { 
		if(str.charCodeAt(i)>=10000){
			pos = i;
			break;
		}
	}
	return pos;  
}


/*
将字符串与正则表达式比较返回真或假
*/
function RegExpString(regexpstr,string){
	var re = regexpstr;
	var result=true;
	if(!re.test(string))
		result=false;
	return result;
}

/*
 功能:获取对象在页面中的位置,不是很准确,
 参数:e传入的对象
 返回值:位置数组 调用:1
*/
function getoffset(e) 
{  
	var t=e.offsetTop;  
	var l=e.offsetLeft;  
	while(e=e.offsetParent) 
	{  
		t+=e.offsetTop;  
		l+=e.offsetLeft;  
	}  
	var rec = new Array(1); 
	rec[0]  = t; 
	rec[1] = l; 
	return rec;
} 


//ajax feedback
function feedback(response)
{
  if (response.error != null)
  {    
    alert(response.error); //we should probably do better than this
    return;
  }  
  
  var res = response.value;  
  
  alert(typeof(res));
  //if the response wasn't what we expected  
  if (res == null ){
    alert("res :null");  
  }
  if(typeof(res) == "string"){
		alert(res);
  }
}

/*
 功能:设置提交按扭只能在返回结果之间提交一次,多次提交等待时间为3秒
 参数:obj 传入得按钮对象
 返回值:无
*/
		var handleForClickOne ;
	  function ClickOne(obj){
			handleForClickOne = obj;
	 		var i = obj.clickTimes;
			if(i>0){
				obj.disabled = true;
				setTimeout("handleForClickOne.disabled=false;handleForClickOne.clickTimes=0;",3000);
			}
			obj.clickTimes ++;
		}