/**
*author:yanjing
*/
/*
*==================================================================
*字符串操作
*==================================================================
*/

/*
*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(str):判断字串是否为空
  */
 function isEmpty(str){
	s=Trim(str);
  return (s==null || s.length==0)
 }
 /*
  *obj:文本框ID
  *label:文本框标签
  *errmsg:错误提示信息
  */
  function isNull(obj,errmsg,label) {

    val=obj.value; 
    if (isEmpty(val)) {
    	if (errmsg!=''){
        setAlert(obj,errmsg,label);
      }  
      return false;
    }
    return true;
  }  
  function setAlert(obj,errmsg,label){
      alert(label+":"+errmsg);
      obj.focus();
      obj.select();
      return ;
  }
  
 /*
*==================================================================
*数值操作
*==================================================================
*/  
/*
*IsInt(string,string,int or string,string):(测试字符串,+ or - or empty,empty or 0)
*功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0
*/

function isint(obj,sign,zero,label){

    var reg;    
    var bolzero;  
    objStr=obj.value;  
    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{
            setAlert(obj,'zero参数传值只可为(空、0)',label)
            return false;
       }
    }
 
    switch(sign){
        case "+-":

            //整数
            reg=/(^-?|^\+?)\d+$/;  
            errmsg='只可为整数';          
            break;
        case "+": 
            if(!bolzero){
                //正整数
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
                errmsg='只可为正整数';          
            }else{
                //正整数+0
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
                errmsg='只可为0或正整数';          
            }
            break;
        case "-":
            if(!bolzero){
                //负整数
                reg=/^-[0-9]*[1-9][0-9]*$/;
                errmsg='只可为负整数';      
  
            }else{
                //负整数+0
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
                errmsg='只可为为0或负整数';          
            }            
            break;
        default:
            setAlert(obj,'sign参数传值只可为(空、+、-)',label)
            return false;
    }
    var r=objStr.match(reg);
    if(r==null){
        setAlert(obj,errmsg,label)
        return false;
    }
   return true;     
}

/*

*isfloat(string,string,int or string,string):(测试字符串,+ or - or empty,empty or 0)

*功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0

*/

function isfloat(obj,sign,zero,label){
    var reg;    
    var bolzero;    
    objStr=obj.value;
    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{
            setAlert(obj,'zero参数传值只可为(空、0)',label)
            return false;
        }
    }

    switch(sign){

        case "+-":
            //浮点数
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            errmsg='只可为浮点数'; 
            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]*))$/;
               errmsg='只可为正浮点数'; 
            }else{
                //正浮点数+0
                reg=/^\+?\d+(\.\d+)?$/;
                errmsg='只可0或为正浮点数'; 
            }
            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]*))$/;
                errmsg='只可负浮点数'; 
            }

            else{
                //负浮点数+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
                errmsg='只可0或为负浮点数'; 
            }            
            break;
        default:
           setAlert(obj,'sign参数传值只可为(空、+、-)',label)
           return false;
    }
    var r=objStr.match(reg);
    if(r==null){
       // setAlert(obj,errmsg,label)
        return errmsg;
    }
    return "";    

}


 /*
  *required:是否需要校验空。
  *obj,object:文本框ID
  *label,string:文本框标签
  *min,string:最小值，不需则传入'-'
  *max,string:最大值,不需则传入'-'
  *point,string:小数位的位数,传入0则认为是整数,只要是数值即可，则传入'-'。
  *sign,string:可传'+'（正数）,'-'（负数）,'+-'(数值即可),''(数值即可),'+-'的传入值与''等同。
  *zero,string:传0或''，默认为''要判断的数值不可零。
  */
 function checkNumber(require,obj,label,min,max,point,sign,zero) {

    if (require==1)
  	   required=true;
  	else
  		 required=false;  
    if (required) {
      if(!(isNull(obj,'不能为空!',label)))
        return false;
    }else{
      if(!(isNull(obj,'',label)))
        return true;
    }
    val=obj.value;
    if (isNaN(val)) {
    	  setAlert(obj,"应为数字!",label)
        return false;
    }
   if((point=='-') && (min=='-') && (max=='-'))
     return true; 
   if(point=='-')   {
   	  if(min!='-'){
   	  	if(eval(val)<eval(min)){
   	  		   setAlert(obj,"应大于"+min+"!",label)
             return false;
   	  	}
   	  }
   	  if(max!='-'){
   	  	if(eval(val)>eval(max)){
   	  		   setAlert(obj,"应小于"+max+"!",label)
             return false;
   	  	}
   	  	
   	  }
   	
   	}
//alert(point);   
   if(point==0){
   	 if (val.indexOf(".")!=-1){
    	  setAlert(obj,"应为整数!",label)
        return false   ;	  	
      }     
      if(sign!=''){
          if(!(isint(obj,sign,zero,label))){
          	 return false;
          }   
      }
   }else{
   	  var errmsg=isfloat(obj,sign,zero,label);
      if(errmsg!=""){
      	     setAlert(obj,errmsg,label)
         	 return false;
      }   
   	  if (val.length -val.indexOf(".")-1 > point && val.indexOf(".")>-1){
   			setAlert(obj,"小数位应不大于"+point+"位",label);
   		  return false;
 	 }	
   }
   	  if(min!='-'){
   	  	if(eval(val)<eval(min)){
   	  		   setAlert(obj,"应大于"+min+"!",label)
             return false;
   	  	}

   	  }
   	  if(max!='-'){
   	  	if(eval(val)>eval(max)){
   	  		   setAlert(obj,"应小于"+max+"!",label)
             return false;
   	  	}
   	  	
   	  }



  return true;
  	
  	
}





/*
  *required:是否需要校验空。
  *obj,object:文本框ID
  *label,string:文本框标签
  *min,string:最小值，不需则传入'-'
  *max,string:最大值,不需则传入'-'
  *point,string:小数位的位数,传入0则认为是整数,只要是数值即可，则传入'-'。
  *sign,string:可传'+'（正数）,'-'（负数）,'+-'(数值即可),''(数值即可),'+-'的传入值与''等同。
  *zero,string:传0或''，默认为''要判断的数值不可零。
  */
 function checkNumberNoAlert(require,obj,label,min,max,point,sign,zero) {

    if (require==1)
  	   required=true;
  	else
  		 required=false;  
    if (required) {
      if(!(isNull(obj,'不能为空!',label)))
        return false;
    }else{
    	if(!(isNull(obj,'',label)))
        return true;
    }
    val=obj.value;
    if (isNaN(val)) {

        return false;
    }
   if((point=='-') && (min=='-') && (max=='-'))
     return true; 
   if(point=='-')   {
   	  if(min!='-'){
   	  	if(eval(val)<eval(min)){

             return false;
   	  	}
   	  }
   	  if(max!='-'){
   	  	if(eval(val)>eval(max)){

             return false;
   	  	}
   	  	
   	  }
   	
   	}
//alert(point);   
   if(point==0){
   	 if (val.indexOf(".")!=-1){

        return false   ;	  	
      }     
      if(sign!=''){
          if(!(isint(obj,sign,zero,label))){
          	 return false;
          }   
      }
   }else{
   	  var errmsg=isfloat(obj,sign,zero,label);
      if(errmsg!=""){

         	 return false;
      } 

   	  if (val.length -val.indexOf(".")-1 > point && val.indexOf(".")>-1){

   		  return false;
 	 }	
   }
   	  if(min!='-'){
   	  	if(eval(val)<eval(min)){

             return false;
   	  	}

   	  }
   	  if(max!='-'){
   	  	if(eval(val)>eval(max)){

             return false;
   	  	}
   	  	
   	  }



  return true;
  	
  	
} 












  
  

/*
*==================================================================
*页面控制串操作
*==================================================================
*/

/*
*@Parm:页面控件
*@Parm:true,false
*/
function selectAll(box,setValue){
 if(box!=null){
	if(box.length>1){
		for( var i=0;i<box.length;i++)
			box[i].checked=setValue;
	}else{
		box.checked=setValue;
	}
 }
}

/*
*@Parm:页面checkbox对象，如document.form.box.
*checknum=0:没有选中，checknum=1:选中一个，checknum>1:多选。
*/	
function haveMuilChecked(obj){
  var checknum=0;
  if(obj!=null){
		l=obj.length;
		if(l>1){
		   for( var i=0;i<l;i++){
			    if (obj[i].checked) {
				       checknum += 1;
				       if (checknum > 1) { 
				       	   return checknum;
				       }
			    }			
		    }
		}else{
			if (obj.checked){
				checknum += 1;   
			}
		}  
  } 
	return checknum;
}
/*
*@Parm:页面checkbox对象，如document.form.box.
*得到第一个被选中的数值。
*/
function getFirstCheckedValue(obj){
  if(obj!=null){
		l=obj.length;
		if(l>1){
		   for( var i=0;i<l;i++){
			    if (obj[i].checked) {
             		return obj[i].value;                
			    }			
		    }
		}else{
			if (obj.checked){
				 return obj.value;
			}
		}   
  }
	
}

/*
*@Parm:页面checkbox对象，如document.form.box.
*得到所有被选中的数据并按指定符号拼成字串返回。
*/
function getAllCheckedValue(obj,splitSign){
  var checkedVal="";
  var checknum=0;
  if(obj!=null){
		l=obj.length;
		if(l>1){
		   for( var i=0;i<l;i++){
			    if (obj[i].checked) {
			    	 checknum += 1;
			    	 if(checknum==1){
			    	 	checkedVal=obj[i].value; 
			    	 }else{
             		 	checkedVal=checkedVal+splitSign+obj[i].value; 
             		 }	               
			    }			
		    }
		}else{
			if (obj.checked){
				 checkedVal=obj.value;
			}
		}   
  }
  return checkedVal;	
}
/*
*@Parm:页面checkbox对象，如document.form.box.
*得到第一个被选中的index。
*/

function getFirstCheckedIndex(obj){
	if(obj!=null){
		l=obj.length;
		if(l>1){
		   for( var i=0;i<l;i++){
			    if (obj[i].checked) {
             return i;                
			    }			
		    }
		}else{
			if (obj.checked){
				 return -1;
			}
		}   
   }
	
}
/*
*@Parm:页面select对象，如document.form.sel
*得到选中的数量。
*/

function getSelectNumber(obj){
    j=0;
	if(obj!=null){
		l=obj.options.length;
		if(l>0){
		   for( var i=0;i<l;i++){
			    if (obj.options[i].selected) {
                   j=j+1;               
			    }			
		   }
		}
  }
  return j;	
}

/*
*检验日期
*/


/*
*得到当前日期
*/
function getToday(){
	var dateObj = new Date();
	var year=dateObj.getFullYear();
	var month=100+dateObj.getMonth()+1;
	month=""+month;
	month=month.substr(1,2);
	var day=100+dateObj.getDate();
	day=day+""
	day=day.substr(1,2);
	today=year+"-"+month+"-"+day;
    return today;
}
  
/*
*检验日期的合法性
*/
function isDate(str)
{
 if(str=="") 
   return true;
 var r = str.match(/^(\d{1,4})(-)(\d{1,2})\2(\d{1,2})$/);
 if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]);
 return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

/*
*检查电话号码的合法性
*/
function checkedPhone(str){
    if(str == "") 
      return true;
	var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
	if(!reg.test(str)){
	   alert("你输入的电话号码不规范，请重新输入！");
	   return false;
	}
	else{
		return true;
	}
}

/*
*	Lanx's 检查电话号码的合法性
*/
function checkPhone(str){
    if(str == "") 
      return true;
    //var reg=/(^[0-9]{3,4}\-[0-9]{6,8}$)|(^[0-9]{3,4}\-[0-9]{6,8}\-[0-9]{3,8}$)|(^[0-9]{6,8}$)|(^\([0-9]{3,4}\)[0-9]{6,8}$)/
	var reg=/(^[0-9]{3,4}\-[0-9]{6,8}$)|(^[0-9]{3,4}\-[0-9]{6,8}\-[0-9]{1,6}$)|(^[0-9]{6,8}$)|(^\([0-9]{3,4}\)[0-9]{6,8}$)|(^[0-9]{6,8}\-[0-9]{1,6}$)/
	//var reg=/^((\d{3,4}+)([-])?)+(\d{3,8})?$/
	if(!reg.test(str)){
	   alert("你输入的电话号码不规范，请重新输入！");
	   return false;
	}
	else{
		return true;
	}
}

function checkMobile(str){
	//alert('str = ' + str);
    if(str == "") 
      return true;
	var reg=/(^[0-9]{3,4}\-[0-9]{8}$)|(^[0-9]{8}$)|(^0{0,1}1[0-9]{10}$)/
	//var reg=/^((\d{3,4}+)([-])?)+(\d{3,8})?$/
	if(!reg.test(str)){
	   alert("你输入的手机号码不规范，请重新输入！");
	   return false;
	}
	else{
		return true;
	}
}

function checkEmail(str){
    if(str == "")
	    return true;
	//var reg =  /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
	//var reg =  /^[_a-z0-9-].*@[a-z0-9-]+(.[a-z0-9-]+)*$/
	//var reg=/^[_a-zA-Z0-9-]+([^@][_a-zA-Z0-9-]*)*@[a-zA-Z0-9-]+\.([a-zA-Z0-9-]+)*$/;
	var reg=/^(?:[a-zA-Z0-9]+[_\-\+\.]?)*[a-zA-Z0-9]+@(?:([a-zA-Z0-9]+[_\-]?)*[a-zA-Z0-9]+\.)+([a-zA-Z]{2,})+$/;
    if(!reg.test(str)){
	     alert("你输入的电子邮箱格式不正确！");
		 return false;
	}
	return true;
     
}

function checkPostalcode(str){
    if(str == "")
	    return true;
	var reg =  /^\d{6}$/
    if(!reg.test(str)){
	     alert("你输入的邮政编码格式不正确！");
		 return false;
	}
	return true;
     
}

// 获得字符串长度
String.prototype.charLen = function() 
{
	var length = 0;
	for (var i = 0; i < this.length; i++) {
		if (this.charCodeAt(i) > 10000) {
			length++;
		}
		length++;
	}
	return length;
}

// 判断字符串是否是正整数
function isInteger(s)
{
  for (i = 0; i < s.length; i++)
    if ((s.charAt(i) < '0') || (s.charAt(i) > '9'))
    {
      if (!((i == 0) && (s.charAt(i) == "-")))
        return false;
    }
  return true;
}

// 判断字符串是否是浮点数串
function isFloat(s)
{
  var periodCount = 0;
  for (i = 0; i < s.length; i++)
  {
    if (((s.charAt(i) < '0') || (s.charAt(i) > '9')) && (s.charAt(i) != "."))
      return false;
    else
    {
    	if (s.charAt(i) == "." && i == 0)
    	{
    		return false;
    	}
	    if (s.charAt(i) == ".")
	    {
	      periodCount++;
	      if (periodCount > 1)
	        return false;
	    }
    }
  }
  return true;
}
//按照指定的宽度和高度缩放图片
function ResizeImage(imageDest, W, H)
{
//显示框宽度W,高度H 
var image = new Image();
image.src = imageDest.src;
	if(image.width>0 && image.height>0)
	{
		//比较纵横比
		if(image.width/image.height >= W/H)//相对显示框：宽>高
		{
			 if(image.width > W) //宽度大于显示框宽度W，应压缩高度
			 {
					   imageDest.width = W; 
					   imageDest.height = (image.height*W)/image.width;   
					  }
			 else //宽度少于或等于显示框宽度W，图片完全显示
			 {
					   imageDest.width = image.width;       
					   imageDest.height = image.height;   
			  }
		}
		else//同理
		{
			 if(image.height > H)
			 {
					   imageDest.height = H;
					   imageDest.width = (image.width*H)/image.height;
			 }
			 else
			 {
					   imageDest.width = image.width;
					   imageDest.height = image.height;
			 }
		}
	}
}


		function getCookie( name ) {
			var start = document.cookie.indexOf( name + "=" );
			var len = start + name.length + 1;
			if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
				return null;
			}
			if ( start == -1 ) return null;
			var end = document.cookie.indexOf( ';', len );
			if ( end == -1 ) end = document.cookie.length;
			return unescape( document.cookie.substring( len, end ) );
		}
		function appendCookie(name,value){
			var cok_value=getCookie(name);
			if(cok_value){
				cok_value=cok_value+','+value;
				setCookie(name,cok_value);
			}else{
				setCookie(name,value);
			}
		}			
					
		/*
		删除某个cookie名下的某一个值
		*/
		function deleteCookie(name,value){
			var cok_value=getCookie(name);
			if(cok_value){
				var cok_length=cok_value.length;
				var v_length=value.length;
				var start = cok_value.indexOf( value );
				if(start>0){
					start-=1;
					v_length+=1;
				}
				if(start==-1){
					alert("请先选择相关商品！");
					return false;
				}else{
					cok_value=cok_value.substring(0,start)+cok_value.substring(start+v_length,cok_length);
					setCookie(name,cok_value);
				}
			}else{
				alert("没有相关记录！");
			}
		}			
		function setCookie( name, value, expires, path, domain, secure ) {
			var today = new Date();
			today.setTime( today.getTime() );
			if ( expires ) {	
				expires = expires * 1000 * 60 * 60 * 24;	
			}else{
				expires = 30 * 1000 * 60 * 60 * 24;
			}
			var expires_date = new Date( today.getTime() + (expires) );
			
			document.cookie = name+'='+ value +( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString() escape( value )
			( ( path ) ? ';path=' + path : '/' ) +( ( domain ) ? ';domain=' + domain : '' ) +( ( secure ) ? ';secure' : '' );
		
		}			
					
