var TOO_LONG=-1;
var TOO_SHORT=1;
function _obj(id){
	return document.getElementById(id);
}
function checkForm(eles,frmId,fun){
	for(i=0;i<eles.length;i++){
		with(eles[i]){
			if(!validate())
				return false;
		}
	}
	if(fun)fun();

	if(frmId){
		_obj(frmId).submit();
	}
	return true;
}
//检验表单,带参数提交
function checkFormAndCommit(eles,frmId,namePairs){
	for(i=0;i<eles.length;i++){
		with(eles[i]){
			if(!validate())
				return false;
		}
	}
	for(i=0;i<namePairs.length;i++){
		try{
		_obj(namePairs[i][0]).value=namePairs[i][1];
		}catch(ex){
			debug('未找到id:'+namePairs[i][0]);
		}
	}
	if(frmId){
		_obj(frmId).submit();
	}
	return true;
}
function showErrorMsg(msg,htmlele){
	alert(msg);
	if(htmlele)htmlele.focus();
}

//function checkLength(txt,maxlen,minlen,descLab){
//	if (txt.length > maxlen || txt.length < minlen) {
 //       showErrorMsg('"' + this.descLab + '"字符长度异常', _obj(this.id));
 //       return false;
//    } else
//        return true;
//}
//判断textarea类型文本域的长度
function objlength(id, maxlen, minlen, descLab) {
    this.id = id;
    this.maxlen = maxlen;
    this.minlen = minlen;
    this.descLab = descLab;
    this.validate = function() {
        var val = _obj(this.id).value;
        if (val.length > maxlen || val.length < minlen) {
            showErrorMsg('"' + this.descLab + '"字符长度异常', _obj(this.id));
            return false;
        } else
            return true;
    }

}

function URLEle(id, nullable, descLab) {
    this.id = id;
    this.nullable = nullable;
    this.descLab = descLab;
    this.validate = function() {
       var val = _obj(this.id).value;
       if (null == val || "" == val) {
		  	if(!nullable){
			    showErrorMsg('"'+descLab+'"不能为空',_obj(this.id));
			    return false;
		    }else{
		    	return true;         
		    }
       }else {
       		if(val.substr(0,7)!="http://"){
			  showErrorMsg('"'+this.descLab+'"不是有效的URL地址',_obj(this.id));
			  return false;
			}
	   return true;
	   }
	 return true;
    }
}



function checkLength(id,maxlen,minlen,descLab){
	var len = _obj(id).value.length;
	if(maxlen>0&&maxlen<len){
		showErrorMsg('"'+descLab+'"长度不能超过:'+maxlen,_obj(id));
		return false;
	}
	if(minlen>0&&minlen>len){
		showErrorMsg('"'+descLab+'"长度不能小于:'+minlen,_obj(id));
		return false;
	}
	return true;
}
function Ele(id,allownull,maxlen,minlen,descLab){
	this.id=id;
	this.allownull = allownull;
	this.maxlen = maxlen;
	this.minlen=minlen;
	this.descLab=descLab;
	this.validate=function(){
		val =_obj(this.id).value;
		if(!allownull){
			if(val==null||val==""){
				showErrorMsg('"'+this.descLab+'"不能为空',_obj(this.id));
				return false;
			}else if(!checkLength(this.id,this.maxlen,this.minlen,this.descLab)){
				return false;
			}else{
				return true;
			}
		}else{
			if(!checkLength(this.id,this.maxlen,this.minlen,this.descLab)){
				return false;
			}else{
				return true;
			}
		}
		return true;
	}
}

// email检查
//nullable为true代表允许为空,如果文本框有值时,判断邮箱地址是否合法;false代表不为空.
function EmailEle(id, nullable, descLab) {
    this.id = id;
    this.nullable = nullable;
    this.descLab = descLab;
    this.validate = function() {
       var val = _obj(this.id).value;
       if (null == val || "" == val) {
		  	if(!nullable){
			    showErrorMsg('"'+descLab+'"不能为空',_obj(this.id));
			    return false;
		    }else{
		    	return true;         
		    }
       }else {
			var regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-z|A-Z]{2,4}$";
			if ( !val.match(regex) ) {
			  showErrorMsg('"'+this.descLab+'"不是有效的EMail地址',_obj(this.id));
			  return false;
			}
	   return true;
	   }
	 return true;
    }	
}

// 日期检查
function DateEle(id, nullable, descLab) {
    this.id = id;
    this.nullable = nullable;
    this.descLab = descLab;
    this.validate = function() {
        var val = _obj(this.id).value;
        if (!nullable) {
		  if (null == val || "" == val) {
		    showErrorMsg('"'+descLab+'"不能为空',_obj(this.id));
		    return false;
		  } else {
		    var regex = "/^(\d{2,4})([|/])(\d{1,2})\2(\d{1,2})$/";
		      if (!val.match(regex)) {
		        showErrorMsg('"'+descLab+'"不是有效的日期',_obj(this.id));
		        return false;
		      }
		  }
		  return true;
		}
		return true;
    }  
}

// 数字检查
function NumberEle(id, nullable, isint, digitnum, descLab) {
    this.id = id;
    this.nullable = nullable;
    this.isint = isint;
    this.digitnum = digitnum;
    this.descLab = descLab;
    this.validate = function() {
        var val = _obj(this.id).value;
		  if (null == val || "" == val) {
		  	if(!nullable){
			    showErrorMsg('"'+descLab+'"不能为空',_obj(this.id));
			    return false;
		    }else{
		    	return true;
		    }
		  } else if(isNaN(val)) {
		    showErrorMsg('"'+descLab+'"必须是数字',_obj(this.id));
		    return false;
		  } else {
		    var regex;
		    if (isint) {
		      regex = /^[+\-]?\d+$/;
		      if (!val.match(regex)) {
		        showErrorMsg('"'+descLab+'"必须是整数',_obj(this.id));
		        return false;
		      }
		    } else {
		      regex = "^[+\-]?\\d+\.\\d{1,"+digitnum+"}$";
		        if (!val.match(regex)) {
		          showErrorMsg('"'+descLab+'"必须是'+digitnum+'位以内小数',_obj(this.id));
		          return false;
		        }
		      }
		    }
		return true;
    }  
}

function debug(msg){
	alert(msg);
}

function commit(frmId,namePairs){
	for(i=0;i<namePairs.length;i++){
		try{
		_obj(namePairs[i][0]).value=namePairs[i][1];
		}catch(ex){
			debug('未找到id:'+namePairs[i][0]);
		}
	}
	_obj(frmId).submit();
}

function clsForm(frmId){
	clrfrm=_obj(frmId);
	len=clrfrm.elements.length;
	for(i=0;i<len;i++){
		frmEle = clrfrm.elements[i];
		if(frmEle.type.toLowerCase()=='text'){
			frmEle.value='';
		}else if(frmEle.tagName.toLowerCase()=='select'){
			frmEle.selectedIndex=0;
		}
	}
	clrfrm.submit();
}
function back(url){
	location.href=url;
}
