String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g, "");};

String.prototype.isDate=function(){return !isNaN(new Date(this.replace('-','/')));};
String.prototype.isTime=function(){return !isNaN(new Date(("2000-1-1 "+this).replace("-","/")));};
String.prototype.isNumeric=function(){return !isNaN(this.replace(".","No"));};
String.prototype.isMail=function(){return (new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(this));};
String.prototype.isWWW=function(){return (new RegExp("[A-Za-z0-9]{1,4}.{1}[A-Za-z0-9]{1,4}.{1}[A-Za-z0-9]{1,4}","ig").test(this));};
String.prototype.isPhone=function(){return (new RegExp(/^([0-9]|[-()#转]){10,20}$/).test(this));};
String.prototype.isMobile=function(){return (new RegExp(/^([1]{1}[0-9]{10})$/).test(this));};
String.prototype.isLittlePhone=function(){return (new RegExp(/^([0]{1}[0-9]{10,20})$/).test(this));};
String.prototype.isCH=function(){return (new RegExp(/^[\u4E00-\u9FA5]+$/g).test(this));};
String.prototype.isEN=function(){return (new RegExp(/^[A-Za-z]+$/).test(this));};
String.prototype.isArriveMode=function(){return (new RegExp(/\b[A-Z]{2}[0-9]{3,4}\b/).test(this)||(this.trim()!=""));};
String.prototype.isNIcard=function(){
	var num15=/^[A-Za-z0-9]{15}$/;
	if(num15.test(this)){
		var reg = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
		var arrStr = this.match(reg);
		try{
		   var date = new Date(arrStr[3]+"/"+arrStr[4]+"/"+arrStr[5]); 
		}catch(e){
		   return false;
		}
	    var date = new Date("19"+arrStr[3]+"/"+arrStr[4]+"/"+arrStr[5]); 
	    var birth = date.getYear()==arrStr[3]&&(date.getMonth()+1)==arrStr[4]&&date.getDate()==arrStr[5];
		if(birth){
		    return true;
		}
	}
	var num18=/^[A-Za-z0-9]{18}$/;
	if(num18.test(this)){
		var reg = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
		var arrStr = this.match(reg);
		try{
		   var date = new Date(arrStr[3]+"/"+arrStr[4]+"/"+arrStr[5]); 
		}catch(e){
		   return false;
		}
		var birth = date.getFullYear()==arrStr[3]&&(date.getMonth()+1)==arrStr[4]&&date.getDate()==arrStr[5]; 
		if(birth){
		    return true;
		}
	}
	return false;
};
String.prototype.isPnrUname=function(){
  if(this.isCH() && this.length>1 && this.length<5){
	  return true;
  }

  if(/^[A-Za-z\/]+$/.test(this.replace(/(\s)/g, ""))){
	  if(this.indexOf("/")>1 && this.indexOf("/")<(this.length-1)){
		   return true;
	  }
  }
  return false;
};
String.prototype.isChild=function(){return (accountAge(this)<12 && accountAge(this)>1);};
Object.extend(Form, {
	chkValid: function(fm){
		var type,nonull,value,mln;
		var msg="";
		with(fm){
			var i=0;
			for(i=0; i<elements.length; i++){
				
				if(",hidden,text,select-one,textarea,password,file,".indexOf(","+elements[i].type+",")==-1) continue;
				
				value=elements[i].value.trim() || "";
				type=elements[i].getAttribute("datatype") || "string";
				nonull=elements[i].getAttribute("nonull") || "no";
				mln=elements[i].getAttribute("maxlength") || "length";
				
				if(value==""){
					if(nonull=="yes"){
						if(elements[i].type=="select-one"){
							msg="没有选择！";
						}else{
						    msg="不能为空！";
						}
						break;
					}
					continue;
				}
				
				if("date"==type){
					if(!value.isDate()){msg="不是合法的日期！";break;}
				}else if("time"==type){
					if(!value.isTime()){msg="不是合法的时间(hh:mm)！";	break;}
				}else if("month"==type){
					if(!(value+"-1").isDate()){msg="不是合法的月份！";break;}
				}else if("numeric"==type){
					if(!value.isNumeric()){msg="不是合法的数字！";break;}
				}else if("email"==type){
					if(!value.isMail()){msg="不是合法的Email！";break;}
				}else if("website"==type){
					if(!value.isWWW()){msg="不是合法的网址！";break;}
				}else if("phone"==type){
					if(!value.isPhone()){msg="(区号-号码)不正确！";break;};
				}else if("mobile"==type){
					if(!value.isMobile() && !value.isLittlePhone()){msg="不正确(小灵通须加区号)！";break;};
				}else if("ch"==type){
					if(!value.isCH()){msg="必须为中文！";break;};
				}else if("pnrUname"==type){
					if(!value.isPnrUname()){msg="必须为全中文(2-4个字符)或者以\"/\"分隔的英文(姓(2个以上字符)/名)姓名！";break;};
				}else if("nicard"==type){
					if(!value.isNIcard()){msg="不是合法的身份证号码！";break;};
				}else if("arriveMode"==type){
					if(!value.isArriveMode()){msg="不是合法的航班号，如:CZ501！如有其他原因,也请注明!";break;};
				}
				if(type=="textarea" && mln && value.length>parseInt(mln)){
					msg="文字超过系统所规定的字数:"+mln;
					break;
				}
			}
			if(msg=="") {
				return true;
			}
			var errFld=elements[i];
			title=errFld.title;
			msg="对不起，" + errFld.title + msg; 
			alert(msg);
			if(errFld.type!="hidden") {
			  try{errFld.focus();}
			  catch(e){return false;}
			}
			return false;
		}
	}

});

function transDBC(){
	if(event.keyCode >= 65281 && event.keyCode <= 65373){
		event.keyCode -= 65248
	}
}

function checkNumber(){
   if(event.keyCode < 48 || event.keyCode > 57){
	   return false;
   }
}