// JavaScript Document
$(function(){
		   
		var currErr="";
		var errNum=0;
		var goSucceed=null;
		function isemail(obvalue){
			if(obvalue.charAt(0)=="."|| //首字符不能够是“.”
			  obvalue.charAt(0)=="@"||  //首字符不能够是“@”
			  obvalue.indexOf("@",0)==-1||  //该E-mail地址首次出现@的地方不能在行首
			  obvalue.indexOf('','',0)==-1||  //该E-mail地址首次出现.的地方不能在行首
			  obvalue.lastIndexOf("@")==(obvalue.length-1)||//该E-mail地址首次出现@的地方不能在行尾
			  obvalue.lastIndexOf(".")==(obvalue.length-1)|| //该E-mail地址首次出"."的地方不能在行尾
			  obvalue.indexOf("@")==-1)
			{
			return false;	
			}else return true;
			  
			  
		}
		
		
		
		function notEmpty(obvalue){
			var obvalue=obvalue.replace(/(^\s*)|(\s*$)/g, "");
			if(obvalue.length>0){
				return true;
			}else false;
			
		}
		
		function validNum(obvalue){
		   if(!isNaN(obvalue)){
			   return true;
		   }else return false;
		}
		
		function ischineseChar(obvalue){
			
			    var reg = /[\u4e00-\u9fa5]+/; 
                if(reg.test(obvalue)){
					return true; 
				}else{
					
					return false;
					
				}
			
		}
		
		function haveInvalidStr(obvalue){
			var reg=/[\s]+/; 
                if(reg.test(obvalue)){
					return true; 
				}else{
					
					return false;
					
				}			
			
		}
		
		//for check username 
		
		function checkusername(){

			var field=$("input[name=username]")
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				
				if(val.length<6||val.length>20){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"字符数必须为6到20个！");
					return false					
				}
				

				if(ischineseChar(val)||haveInvalidStr(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"由英文字母、数字组成，并以英文字母开头！");
					return false						
				}
				// for delete err box
				var currenttime=new Date();
				$.ajax({
					   type:"POST",
					   data:"username="+field.val(),
					   url:"is_username_existed.html?curTime="+currenttime.getTime(),
					   dataType:"json",
					   success:function(data){
                        if(data.num>0){
             	         showFiledStatus(field.attr("name"),"no",field.attr("cnname")+data.error);
						 return false;
                        }
                        if(data.num==0){
                         showFiledStatus(field.attr("name"),"ok");
						 
                        }						   
						   
					   }
					   
					   })
				return true;
			
			
		}
		
		//for check pwd
		function checkpwd(){
			var field=$("input[name=pwd]")
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				
				if(val.length<6||val.length>15){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"字符数必须为6到15个！");
					return false					
				}
				
				if(ischineseChar(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+" 含有中文字符！");
					return false						
				}
				showFiledStatus(field.attr("name"),"ok");
				return true;
			
		}
		
		// for check repwd
		function checkrepwd(){
			var field=$("input[name=repwd]")
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}			
			if($("input[name=pwd]").val()!=$("input[name=repwd]").val()){
					showFiledStatus(field.attr("name"),"no","两次输入密码不同！");
					return false				
			}
				showFiledStatus(field.attr("name"),"ok");
				return true;			
			
		}
		
		//for check validate num
		function checkvalidateNum(){
			var field=$("input[name=validateNum]");
		    var val=field.val();
			var serverData="";
			if(val.length!=4){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"输入错误！");
					return false				
			}
			$.ajax({
					   type:"POST",
					   url:"http://www.hoteltour.cn/asset/check_validatenum.html",
					   success:function(data){							  
						serverData=String(data); 
			           if(serverData!=val){
					   showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"输入错误！");
					   return false					
			           }
					   }	   
			 });	
			
				showFiledStatus(field.attr("name"),"ok");
				return true;			
			
					
		}
		// for check phone 
		function checkphone(){
			var field=$("input[name=phonenum]");
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				
				if(!validNum(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"必须为数字组成！");
					return false				
				}
				
				
				if(val.length!=11){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"必须11个数字组成！");
					return false					
				}
				showFiledStatus(field.attr("name"),"ok");
				return true;					
			
		}
		function checkqq(){
			var field=$("input[name=qq]");
			var val=field.val();
			var reg="";
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				reg=/@/;
				if(reg.test(val)){
				   if(!isemail(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+" email格式不正确！");
					return false					
				   }else{
				       showFiledStatus(field.attr("name"),"ok");
				       return true;					   
				   }
				}else{
                    reg=/[0-9]{5,10}/;
					if(!reg.test(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+" 数字格式不正确！");
					return false							
					}else{
				       showFiledStatus(field.attr("name"),"ok");
				       return true;							
					}
					
				}

				showFiledStatus(field.attr("name"),"ok");
				return true;							
			
		}		
		
		//for check email
		function checkemail(){
			var field=$("input[name=email]");
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				if(!isemail(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+" 格式不正确！");
					return false					
				}
				showFiledStatus(field.attr("name"),"ok");
				return true;							
			
		}
		
		function checkmsn(){
			var field=$("input[name=msn]");
			var val=field.val();
			    if(!notEmpty(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+"为空！");
					return false
				}
				if(!isemail(val)){
					showFiledStatus(field.attr("name"),"no",field.attr("cnname")+" 格式不正确！");
					return false					
				}
				showFiledStatus(field.attr("name"),"ok");
				
				return true;							
			
		}		
		
		
		// for show error panel
		function showFiledStatus(ob,alias,descri){
	        var field=$("input[name="+ob+"]")
			var infofieldbox=$(field).parent(".field").parent(".infoField");
			if(alias=="no"){
				$(infofieldbox).find(".field_descrip").hide();
				if($(infofieldbox).find(".error_descrip").length==0){
					$(infofieldbox).append("<span class='error_descrip'></span>");
				}
				$(infofieldbox).find(".error_descrip").html("<img src='../../media/skin/default/client/status_no.gif' style='display:inline-block;margin-right:10px;' />"+descri)
				
			}
			if(alias=="ok"){
	
				if($(infofieldbox).find(".error_descrip").length==1){
					$(infofieldbox).find(".error_descrip").remove()
				}
				$(infofieldbox).find(".field_descrip").show();
				if($(infofieldbox).find(".field_descrip").find("img").length==0){
				var descriText=$(infofieldbox).find(".field_descrip").html()
				$(infofieldbox).find(".field_descrip").html("");
				descriText="<img src='../../media/skin/default/client/status_yes.gif' style='display:inline-block;margin-right:10px;' />"+descriText;
				$(infofieldbox).find(".field_descrip").html(descriText)
               }
				
			}
			
			
		}
		
		// for delete err panel
		function deleteErrpanel(ob){
			
			if($("#"+ob+"_err").length>0){
				$("#"+ob+"_err").remove();
			}
			
		}
		
		function submitform(){
			
			$fields=$("form[name=userinfoForm]").serialize();
			$.ajax({
			type:"POST",
			data:$fields,
			dataType:"json",
			url:"registering.html",
			success:function(data){
				if(data.num>0){	
				alert(data.error);
				}
				if(data.num==0){
				    $("form input:enabled,form select").css("background","#efefef");
			        $("form input:enabled,form select").attr("disabled","disabled");
					$("#registerbns").html("<img id='process' src='../media/skin/default/client/process.gif'/>");
					$("#registerbns").css({"text-align":"center","filter":"Alpha(opacity=80)","MozOpacity":'0.8'});
					goSucceed=setInterval(goToregiterSucceed,6000);
				}
			}
				
			})
			
			
		}
		
        function goToregiterSucceed(){
		clearInterval(goSucceed);
		location.href="registered_succeed.html";	
		}
			
		
		// for username
		$("input[name=username]").blur(function(){
												
											checkusername()
	
													})
		$("input[name=pwd]").blur(function(){
										   checkpwd()
										   })
		$("input[name=repwd]").blur(function(){ 
											checkrepwd() 
											 })
		$("input[name=validateNum]").blur(function(){
												checkvalidateNum()    
												   })
	
		
		$("input[name=phonenum]").blur(function(){
											 
									        checkphone()		 
											 })

		$("input[name=email]").blur(function(){
											 
									       checkemail()		 
											 })
		$("input[name=qq]").blur(function(){
											 
									       checkqq()		 
											 })		
		
	
		
		$("input[ismust=true]").each(function(){
											 
										$(this).focus(function(){
															deleteErrpanel($(this).attr("name"))	    
															   })
											 })
		 
		 $("#senddata").click(function(){
								errNum=0;	 
								if(!checkusername())errNum++;
								if(!checkpwd())return errNum++;
								if(!checkrepwd())return errNum++;
								if(!checkvalidateNum())errNum++;
								if(!checkphone())errNum++;
								if(!checkemail())errNum++;
								if(!checkqq())errNum++;
								if(errNum==0){
								submitform();
								}
								
										 })


		   
		   
		   
		   
		   })