function isNull(val){
	if(val == null) return true;
	val = val.replace(/\r\n/g,"");
	val = val.replace(/\r/g,"");
	val = val.replace(/\n/g,"");
	return(trim(val) == "");
}

function chkLength(val, min, max){
	if(val.length < min){
		return(val.length - min);
	}
	
	if(val.length > max){
		return(val.length - max);
	}
	
	return(0);
}

function isDomain(val) {
	if(!val || trim(val).length < 3) {
		return false;
	}
	var reg = /^w{3}\.[a-zA-Z0-9]{5,9}\.(?:com|net|com\.cn|cn)$/;
	return reg.test(val);
}

function isInteger(val){
	return val.match( /^[+-]?[0-9]+$/ );
}

function isIntegerDfp(val){
	if(val==""){
		return true;
	}
	return val.match( /^[+-]?[0-9]+$/ );
}

function isNo(val){
	return val.match( /^[0-9]+$/ );
}

function isPrice(val)
{
   return val.match( /^[0-9]+(.[0-9]{1,2})?$/ );
}
function isFloat(val)
{
   return val.match( /^\d+(\.\d+)?$/ );
}
function isAlphNum(val){
	return val.match(/^[0-9A-Za-z]*$/);
}
function isAlphNumOrPiont(val){
	return val.match(/^[0-9A-Za-z\.]*$/);
}
function isAlphNumBlankkey(val){
	if( val.match(/^[0-9A-Za-z\s]*$/))
	 return true;
	else
	 return false;
}

function isDate(val){
	if( !val.match(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/) ){
		return false;
	}

	var year = val.substr(0, 4);
	var month = val.substr(5, 2) - 1;
	var day = val.substr(8, 2);
	var date = new Date(year, month, day);
	return ( (date.getFullYear() == year) && (date.getMonth() == month) && (date.getDate() == day) );
}

function comparisonDate(val){
	if( !val.match(/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/) ){
		return false;
	}
	
	var year = Number(val.substr(0, 4));
	var month = Number(val.substr(5, 2) - 1);
	var day = Number(val.substr(8, 2));
	var date = new Date();
	var y = Number(date.getFullYear());
	var m = Number(date.getMonth());
	var d = Number(date.getDate());
	return ( ((y == year) && (m == month) && (d < day)) || ((y == year) && (m < month)) || (y < year));
}

function trim(val){
	var chkstr = "";
	
	for(i=0; i<val.length; i++){
		if((val.substr(i,1) != " ")){
			chkstr = val.substring(i, val.length);
			break;
		}
	}

	for(i=chkstr.length-1; i>=0; i--){
		if((chkstr.substr(i,1) != " ")){
			chkstr = chkstr.substring(0,i+1);
			break;
		}
	}
	return(chkstr);
}

function isCharsInBag (s, bag)
{ 
	var i;
	
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) 
		{
			return false;
		}
	}
	
	return true;
}


/**
 *Is phone number
 *author:YuanWenjun 2009-02-13
 */
function isPhoneNumber(String)    
{      
	var Letters = "1234567890-";    
	var i;    
	var c;    
	if(String.charAt( 0 )=='-')    
		return false;    
	if(String.charAt( String.length - 1 ) == '-' )    
		return false;    
	for( i = 0; i < String.length; i ++ )    
	{      
		c = String.charAt( i );    
		if (Letters.indexOf( c ) < 0)    
		return false;    
	}    
	return true;    
}
/**
 *Is Mobile phone
 *author:YuanWenjun 2009-05-13
 */
function isMobilephone(val)    
{      
	return val.match(/^1\d{10}$/);
}
/**
 *Is Zip code
 *author:YuanWenjun 2009-05-13
 */
function isZipcode(val)    
{      
	return val.match(/^(\d+){6}$/);
}

/**
 *Is chinese or number or alpha-number or underline
 *author:YuanWenjun 2009-02-13
 */ 
function isCnAlpUnl(String)    
{      
	var Letters = "1234567890_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";    
	var i;    
	var c; 
	for( i = 0; i < String.length; i ++ )    
	{      
		c = String.charAt( i );    
		if (Letters.indexOf( c ) < 0){   
			if(!c.match(/^[\u4e00-\u9fa5]{1,10}$/)){
				return false;
			}
		}
	}    
	return true;    
}

function isWhitespace (s)
{ 
	var whitespace = " \t\n\r";
	var i;
	for (i = 0; i < s.length; i++)
	{ 
		var c = s.charAt(i);
		if (whitespace.indexOf(c) >= 0) 
		{
		return true;
		}
	}
	
	return false;
}	
/**验证是否为email格式
 * @author 袁文俊 2009-02-23
 */
function isEmail(s)
{
	var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	if(reg.test(s)){
		return true;
	}else{
		return false;
	}
}

/**比较两个日期大小,2004-12-01 > 2004-11-08会返回true
 * @param max 两个日期中大的日期
 * @param min 两个日期中小的日期
 * @return true/false max大于min/max小于min
 */
function compareDate(max,min){

    if (max=="" || min=="") return true;
    var newMax = strToDate(max);
    var newMin = strToDate(min);
    if (newMax > newMin){
        return true;
    }else{
        return false;
    }
}

/**
 * 用于把一个日期string 转换成一个 Date 类型的值
 * 唐杰 2008-08-22
 * @param strDate 要转换的字符串 ‘20020303’ 或 ‘2002-3-3’ 或 ‘2002.3.3’
 * @return 8位字符型日期
 */
function strToDate(strDate) {
	strDate = strDate.replace(/\//g,"-");
    var tempDate = strDate;
    var index1 = tempDate.indexOf(".");
    if(-1 == index1)
        index1 = tempDate.indexOf("-");

    var index2 = tempDate.lastIndexOf(".");
    if(-1 == index2)
        index2 = tempDate.lastIndexOf("-");

    //形式如2002-2-2,2002.2.3的解析
    if ((-1 != index1) || (-1 != index2)) {
        var year = tempDate.substring(0, index1);

        var m = parseInt(tempDate.substring(index1 + 1, index2),10);
        var month = "" + m;
        if(m < 10)
            month = "0" + m;

        var d = parseInt(tempDate.substring(index2 + 1, tempDate.length),10);
        var day = "" + d;
        if(d < 10)
            day = "0" + d;

        tempDate = year + month + day;
    }

    return tempDate;
}
/**
 * 用于把一个日期string 转换成一个 Date 类型的值
 * 魏明 2009-06-30
 * @param strDate 要转换的字符串 Date
 * @return Date
 */
function strParseDate(strDate){
	strDate = strDate.replace(/\//g,"-");
    var tempDate = strDate;
    var index1 = tempDate.indexOf(".");
    if(-1 == index1)
        index1 = tempDate.indexOf("-");

    var index2 = tempDate.lastIndexOf(".");
    if(-1 == index2)
        index2 = tempDate.lastIndexOf("-");

    //形式如2002-2-2,2002.2.3的解析
    if ((-1 != index1) || (-1 != index2)) {
        var year = tempDate.substring(0, index1);

        var m = parseInt(tempDate.substring(index1 + 1, index2),10);
        var month = "" + m;
        if(m < 10)
            month = "0" + m;

        var d = parseInt(tempDate.substring(index2 + 1, tempDate.length),10);
        var day = "" + d;
        if(d < 10)
            day = "0" + d;

        tempDate = new Date(year ,month ,day);
    }
    return tempDate;
}
/**
 * ie forxpro 在table里都支持innerText
 */
function isIE(){ //ie? 
   if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1) 
    return true; 
   else 
    return false; 
} 

if(!isIE()){ //firefox innerText define
   HTMLElement.prototype.__defineGetter__(     "innerText", 
    function(){
     var anyString = "";
     var childS = this.childNodes;
     for(var i=0; i<childS.length; i++) {
      if(childS[i].nodeType==1)
       anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
      else if(childS[i].nodeType==3)
       anyString += childS[i].nodeValue;
     }
     return anyString;
    } 
   ); 
   HTMLElement.prototype.__defineSetter__(     "innerText", 
    function(sText){ 
     this.textContent=sText; 
    } 
   ); 
}

/**
 * 用于控制键盘输入、只能输入数字类型和小数点、输入小数点后只能输入两位小数
 * 杨坤 2008-12-9
 */
 function controlPriceInput(evt){
     var isie = (document.all) ? true : false;
     var key;
     var srcobj;
     if (isie){
        key = event.keyCode;
        srcobj=event.srcElement;
     }
     else{
        key = evt.which;
        srcobj=evt.target;
     }
     if(!key||key==8){
       return true;
     }
     var arg = this.value ;
     key = String.fromCharCode(key);
     if(key==' '){
        return false;
     }
     var index = arg.indexOf(".") ;
     if(srcobj.value.indexOf(".")>-1){
        if(key=='.')
           key = key.replace(".","");
     }
     if((key>=0&&key<=9)||key=="."){
	     if(!isNaN(arg-0)&&(index==-1||arg.length-index<4)){
	            this.setAttribute("bufferValue",arg);
	     }
       return true;
     }
     return false;
}
function controlPriceNum(evt){
     var textValue = this.value;    
     var index = textValue.indexOf(".") ;
     if(isNaN(textValue-0)||!(index==-1||textValue.length-index<4)){
       if(this.getAttribute("bufferValue")!=null){
          this.value = this.getAttribute("bufferValue");
       }else{
          this.value="";
       }      
       return true;
     }
     return false;     
}
/**
 *   只能输入数字 使用： <input type="text" onkeypress="return onlyNumberInput(event)" />      
 */
  function onlyNumberInput(evt){
     var isie = (document.all) ? true : false;
     var key;
     var srcobj;
     if (isie){
        key = event.keyCode;
        srcobj=event.srcElement;
     }
     else{
        key = evt.which;
        srcobj=evt.target;
     }
      if(!key||key==8){
       return true;
     }
     key = String.fromCharCode(key);
     if(key==' '){
        return false;
     }
     if(key>=0&&key<=9){
       return true;
     }
     return false;
}

/**
 *   只能输入数字(允许负数) 使用：document.getElementById("sortOrder").onkeypress=onlyNumberAllowNegativeInput;
 *  author 袁文俊 
 */
  function onlyNumberAllowNegativeInput(evt){
     var isie = (document.all) ? true : false;
     var key;
     var srcobj;
     if (isie){
        key = event.keyCode;
        srcobj=event.srcElement;
     }
     else{
        key = evt.which;
        srcobj=evt.target;
     }
     if(!key||key==8){
       return true;
     }
     var arg = this.value ;
     var index = arg.indexOf("-") ;
     key = String.fromCharCode(key);
     if((key>=0&&key<=9)||(key=="-"&& index==-1)){
       return true;
     }
     return false;
}

  /* ********** 开始：通用地区选择脚本 刘昆云 2009-3-6 修改  ************ */
  /**
   * 地区数据查询网址
   */
  var regionDataUrl="~/../../selectRegion.action";
  
  /**
   * 加载指定地区代码的下级地区数据
   * @param paraentId  - 上级地区编号
   * @param destElementId - 放置下级地区选项的目标元素
   * @param selected - 默认选中项的值
   */
   function loadRegion(parentId, destElementId, selected) {
  	var dest=$("#"+destElementId);
  	var dataIsValid=false;
  	if(parentId!="") {
  	  var data=fastweb.getJson(fastweb.getAbsUrl(regionDataUrl), {regionParent: parentId});
  	  if(data!=null && data!="") {
  		  var selectHead=dest.attr("selectHead");
  		  if(selectHead) data="'0':\""+selectHead+"\","+data;
  		  data=eval("a={"+data+"}");
  		  fastweb.setHtmlOptions(dest, data, selected);
  		  dataIsValid=true;
  	  }
  	}
  	if(!dataIsValid) fastweb.clearHtmlOptions(dest);
  	// 触发刷新下级地区选单
  	if(dest.size()>0) dest.change();
  }

  /**
   * 地区选择变更处理
   * ＠param objElement - 选单元素
   * ＠param childElementId - 下级选单元素的编号
   * ＠param resultTextElementId - 可选参数，放置选择结果文本的输入域
   * ＠param resultValueElementId - 可选参数，放置选择结果值的输入域
   */
  function regionChangeHandler(objElement, childElementId, resultIdElementId, resultNameElementId) {
  	// 加载下级地区选项
  	if(childElementId) {
  		var child=$("#"+childElementId);
  		if(child.size()>0){
  			loadRegion(objElement.value, childElementId, child.attr("defaultValue"));
  		}
  	}
  	// 设定结果域
  	if(resultIdElementId) {
  		var result=$("#"+resultIdElementId);
  		if(result.size()>0) result[0].value=objElement.value;
  	}
  	if(resultNameElementId) {
  		var result=$("#"+resultNameElementId);
  		if(result.size()>0) {
  	  		if(objElement.selectedIndex>=0){
  	  			result[0].value=objElement.options[objElement.selectedIndex].text;
  	  		}else{
  	  			result[0].value="";
  	  		}
  		}
  	}
  }
  /* ************* 结束：通用地区选择脚本  ******************* */
  
  
    /**
   	* 用户中心菜单样式
   	* WangBingquan
   	*/   
  function usrOut(e)
	{
	  var obj = Utils.srcElement(e);
	
	  if (obj.className == "curs")
	  {
	    obj.className = "user";
	  }
	}
	function usrOver(e)
	{
	  var obj = Utils.srcElement(e);
	  if (obj.className == "user")
	  {
	    obj.className = "curs";
	  }
	}
	function usrOnclick(e)
	{
		 var obj = Utils.srcElement(e);
		 var as  = document.getElementsByTagName("a");
		 try{
			 for (i = 0; as.length; i ++ ){			
				if (as[i].className == "usercurs"){
					as[i].className = "user";
					obj.className = "usercurs";
					break;
				}
			}
		}catch(err){
		//obj.className = "usercurs";
		}
	}
	function usrOnload(id)
	{	
		var obj = document.getElementById(id).parentNode;	
		if (obj.className.indexOf(" cur")>0){
			return;
		}else{
			var as  = document.getElementsByTagName("li");
			try{
				for (i = 0; as.length; i ++ ){
					var index=as[i].className.indexOf(" cur");
					if (index>0){
						as[i].className = as[i].className.substr(0,index);
						obj.className += " cur";
						break;
					}else{
						obj.className += " cur";
					}
				}
			}catch(err){
			//obj.className = "usercurs";
			}
		}
	}
	
	/**
	 * 格式化金额数值为两位小数 
	 * 如果参数为空或""，返回"";
	 * 如果参数有0位或1位小数，则补足2位返回
	 * 如果参数有大于2位小数，则舍去后面小数返回
	 * @param {Object} val
	 * @author 贾松帽 2009-2-18
	 */
	function fomatPrice(val){
		if(isNull(val)||val==""){
			return "";
		}
		else{
			var array=val.split(".");
			if(array.length==1){
				return val+".00";
			}
			if(array.length==2){
				if(array[1].length==1){
					return val+"0"
				}
				else if(array[1].length>2){
					return array[0]+"."+array[1].substring(0,2);
				}
				else{
					return val;
				}
			}
		}
	}
	/**
	 * 格式化金额数值为两位小数,并且千分位用“,”隔开。如600123.25会格式化为600,123.25;600123会格式化为600,123.00
	 * 如果参数为空或""，返回"";
	 * 如果参数有0位或1位小数，则补足2位返回
	 * 如果参数有大于2位小数，则舍去后面小数返回
	 * @param {Object} val
	 * @author 贾松帽 2009-2-18
	 */
	function formatLocalePrice(s){
		n=2;
	   	s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
	   	var l = s.split(".")[0].split("").reverse(),
	   	r = s.split(".")[1];
	  	t = "";
	   	for(i = 0; i < l.length; i ++ ){
	      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
	   	}
	   	return t.split("").reverse().join("") + "." + r;
	}
	
	function formatLocalNumber(val){
		if(val==""||val==0||val=="0"){
			return "0";
		}
		val=formatLocalePrice(val);
		if(val.indexOf(".")!=-1){
			val=val.substring(0,val.indexOf("."));
		}
		return val;
	}
	
	function trimZero(val){
		if(val.indexOf(".")!=-1){
			while(val.substring(val.length-1,val.length)=="0"){
				val=val.substring(0,val.length-1);
			}
			val=val.substring(0,val.length-1);
		}
		return val;
	}
	
	//验证文件上传格式
        function validateFileContentType(fileType,contentTypes){
			var typeName;
			if(fileType.lastIndexOf(".")>-1){
				typeName=fileType.substring(fileType.lastIndexOf(".")+1);
			}
			for(var i=0;i<contentTypes.length;i++){
				if(typeName.toLowerCase()==contentTypes[i]){
					return true;
					break;
				}
			}
			return false;
		}
	/**
	 * 生日列表
	 * para y,m,d为年月日元素，Cy,Cm,Cd为初始化时的年月日值
	 * @author 袁文俊 2009-6-29
	 */
 	function loadBirthday(y,m,d,Cy,Cm,Cd){
 		//todo:获取当前年
 		if(!Cy){
 			Cy=0;
 		}
 		if(!Cm){
 			Cm=0;
 		}
 		if(!Cd){
 			Cd=0;
 		}
 		y.options.length=0;
 		m.options.length=0;
 		d.options.length=0;
 		y.options[y.length]=new Option("--",0);
		m.options[m.length]=new Option("--",0);
		d.options[d.length]=new Option("--",0);
		for(i=1949;i<=2100;i++){
			y.options[y.length]=new Option(i,i);
		}
		y.value=Cy;
		if(Cm==0){
			
		}else if(Cd!=0){
			for(j=1;j<=12;j++){
				if(j<10){
					m.options[m.length]=new Option("0"+j,j);
				}else{
					m.options[m.length]=new Option(j,j);
				}
			}
			d.options.length=1;
			if(Cm==2){
				if((Cy%4==0 && Cy%100!=0)||Cy%400==0){
					for(k=1;k<=29;k++){
						if(k<10){
							d.options[d.length]=new Option("0"+k,k);
						}else{
							d.options[d.length]=new Option(k,k);
						}
					}
				}else{
					for(k=1;k<=28;k++){
						if(k<10){
							d.options[d.length]=new Option("0"+k,k);
						}else{
							d.options[d.length]=new Option(k,k);
						}
					}
					d.value=0;
				}
			}else if((Cm%2==0 && Cm<7) || (Cm%2==1 && Cm>8)){
				
				for(k=1;k<=30;k++){
					if(k<10){
						d.options[d.length]=new Option("0"+k,k);
					}else{
						d.options[d.length]=new Option(k,k);
					}
				}
			}else if((Cm%2==0 && Cm>=8) || (Cm%2==1 && Cm<=8)){
				
				for(k=1;k<=31;k++){
					if(k<10){
						d.options[d.length]=new Option("0"+k,k);
					}else{
						d.options[d.length]=new Option(k,k);
					}
				}
			}
		}
		m.value=Cm;
		d.value=Cd;
		
		y.onchange=function(){
			if(this.value!=0){
				if(m.options.length==1){
					for(j=1;j<=12;j++){
						if(j<10){
							m.options[m.length]=new Option("0"+j,j);
						}else{
							m.options[m.length]=new Option(j,j);
						}
					}
				}
				m.value=0;
				d.options.length=1;
			}else{
				d.options.length=1;
				m.options.length=1;
			}
		}
	
		m.onchange=function(){
			if(this.value==0){
				d.value=0;
				d.options.length=1;
			}else if(this.value==2){
				if((y.value%4==0 && y.value%100!=0)||y.value%400==0){
					d.options.length=1;
					for(k=1;k<=29;k++){
						if(k<10){
							d.options[d.length]=new Option("0"+k,k);
						}else{
							d.options[d.length]=new Option(k,k);
						}
					}
					d.value=0;
				}else{
					d.options.length=1;
					for(k=1;k<=28;k++){
						if(k<10){
							d.options[d.length]=new Option("0"+k,k);
						}else{
							d.options[d.length]=new Option(k,k);
						}
					}
					d.value=0;
				}
			}else if((this.value%2==0 && this.value<7) || (this.value%2==1 && this.value>8)){
				d.options.length=1;
				for(k=1;k<=30;k++){
					if(k<10){
						d.options[d.length]=new Option("0"+k,k);
					}else{
						d.options[d.length]=new Option(k,k);
					}
				}
				d.value=0;
			}else if((this.value%2==0 && this.value>=8) || (this.value%2==1 && this.value<=8)){
				d.options.length=1;
				for(k=1;k<=31;k++){
					if(k<10){
						d.options[d.length]=new Option("0"+k,k);
					}else{
						d.options[d.length]=new Option(k,k);
					}
				}
				d.value=0;
			}
		}
 	}
 	var IsFireFox = document.getElementById &&! document.all;
 	/**
	* 回车
	*/
	function enter_key(e,o,flag) 
	{
		var ob = IsFireFox ? e.target : event.srcElement;
		if(e == null) {   
			e = window.event;   
		}
		var key = IsFireFox ? e.which : event.keyCode;				    
		if(key == 13){
			document.getElementById(flag).focus();				 
		}
			return false;
	}
	/**
	*产生随机数
	*author 袁文俊
	*/
	function getRandom()
 	{
 		var today=new Date(); 
    	var  seed=today.getTime();
    	return seed;
 	}
 	
 	/**
	*二级域名
	*author 袁文俊
	*/
	function isSiteUrl(value)
 	{
 		if(value.length>9){
 			return false;
 		}
 		return /^[A-Za-z]+?$/.test(value)&&!(/^(W|w){3}$/.test(value))&&!(/^(W|w)(D|d)$/.test(value))&&!(/^(Q|q)(Y|y)$/.test(value))&&!(/^(Q|q)(Y|y)(W|w)(D|d)$/.test(value)) ;
 	}
 	