﻿$(document).ready(function(){

       _initinput();
	   
	   _initProvince();
	   
	   _initTown();
	   
	   _initagree();
	   
	   _initchecksubmit();
})


function _initagree(){
 
	  $("#agree").click(function(){
								  
		   if(!this.checked)
	       {
			  $("#button").attr("disabled","disabled");
		   }
		   else
		   {
			   $("#button").attr("disabled","");
		   }
	  })
}


function _initinput(){

		$("input[@type]").not("input[@type=radio]").focus(function(){ 
				
			 var id   = $(this).attr("id");
  
			 showClew(id);
		});
   
		$("input[@type]").not("input[@type=radio]").blur(function(){ 
				
			  var id=$(this).attr("id");
			  
			  var html =''; 
			  
			  if(id=="username")
			  {
				 checkUserName();
			  }
			  else if(id=="passwd")
			  {
				 checkPasswd();
			  }
			  else if(id=="repasswd")
			  {
				 checkRepasswd();
			  }
			  else if(id=="email")
			  {
				 checkEmail();
			  }
			  else if(id=="nickname")
			  {
				 checkNickname();
			  }
		});
}


function showClew(id){

		  var html    = '';

		  $("#"+id+"").removeClass("success");
		  
		  if(id=="username")
		  {
			    html='由3-12位字母、数字和下划线组成，用于登录和空间地址，注册后不能修改';  
		  }
		  else if(id=="passwd")
		  {
			    html='由6-20位字母、数字和下划线组成，区分大小写';  
		  }
		  else if(id=="repasswd")
		  {
			    html='请再次输入登录密码';  
		  }
	      else if(id=="email")
		  {
			   html='请您输入有效的邮箱地址，用于激活账户和找回密码；注册后不能修改';  
		  }
		  else if(id=="nickname")
		  {
			   html='请填写您的真实姓名或昵称，最多7个中文或14个字符'; 
		  }
		  else if(id=="code")
		  {
			   html='请您填写验证码'; 
		  }
		  
	  var size    = $("li[@typeid="+id+"]").size();
	  
	  if(size>0)
	  { 
			  $("li[@typeid="+id+"]").html(html);
			  
			  $("li[@typeid="+id+"]").removeClass("error");
	  }
	  else
	  {
		  if(html!="")
		  { 
			  $("#"+id+"").parent().after("<li class='clew' typeid='"+id+"'>"+html+"</li>");
		  }
	  }
}



function showerror(id){

		  $("#"+id+"").removeClass("success");
				
		  $("li[@typeid="+id+"]").addClass("error");
}


function showsuccess(id){
	
		  $("#"+id+"").addClass("success");
				
		  $("li[@typeid="+id+"]").remove();
}




function calculate_byte( sTargetStr ) {
        var sTmpStr, sTmpChar;
        var nOriginLen = 0;
        var nStrLength = 0;
         
        sTmpStr = new String(sTargetStr);
        nOriginLen = sTmpStr.length;

        for ( var i=0 ; i < nOriginLen ; i++ ) {
                sTmpChar = sTmpStr.charAt(i);

                if (escape(sTmpChar).length > 4) {
                        nStrLength += 2;
                } else if (sTmpChar!='\r') {
                        nStrLength ++;
                }
        }
        return nStrLength;    
}



/*        检测     */


function checkUserName(){
	
	 var username=$("#username").val();	
		
	  if(username.length<3||username.length>12)
	  {
		 showerror("username");
	  }
	  else if(username.search(/[^A-Za-z0-9_]/)!= -1) 
	  { 
	     showerror("username");
	  }
	  else
	  {
		   <!-- start -->
				$.post(
			   "/register/checkname",
				{username:username},
				 function(msg)
				   {
					   if(msg=="lawless"){
					          
						   $("li[@typeid=username]").html("此用户名已被占用，请输入新的用户名");
						   
						   showerror("username");
                       } 
					   else if(msg=="exists"){
						
						   $("li[@typeid=username]").html("此用户名已被注册，请重新输入您的用户名");
						
						   showerror("username");
					   }
					   else
					   {
						   showsuccess("username");
					   }
					}
				);
		  <!-- end -->
	  }
}


function checkPasswd(){
	
	 var passwd=$("#passwd").val();
	 
	 if(passwd=="")
	 {
		 $("li[@typeid=passwd]").html("密码不能为空，请输入您的登录密码");
						
		 showerror("passwd");
	 }
	 else if(passwd.length<6||passwd.length>20)
	 {
		 $("li[@typeid=passwd]").html("密码长度6至20位，请输入您的登录密码");
						
		 showerror("passwd");
	 }
	 else if(passwd.search(/[^A-Za-z0-9_]/)!= -1) 
	 { 
	     $("li[@typeid=passwd]").html("密码只能由字母、数字和下划线组成，请输入您的登录密码");
		 
	     showerror("passwd");
	 }
     else
	 {
		 showsuccess("passwd");
	 }
}



function checkRepasswd(){
	
	 var passwd   = $("#passwd").val();
	
	 var repasswd = $("#repasswd").val();
	
	 if(repasswd=="")
	 {
		 $("li[@typeid=repasswd]").html("密码不能为空，请您确认登录密码");
						
		 showerror("repasswd");
	 }
	 else if(passwd!=repasswd)
	 {
		 $("li[@typeid=repasswd]").html("密码与确认密码不一致，请重新输入");
						
		 showerror("repasswd");
	 }
     else
	 {
		 showsuccess("repasswd");
	 }
}


function checkEmail(){
	
	 var email   = $("#email").val();
	
	 if(email=="")
	 {			
		  showerror("email");
	 }
	 else if(email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)== -1)
	 {
        $("li[@typeid=email]").html("电子邮箱格式有错误，请认真确认您的电子邮箱");
		
		showerror("email");
	 }
	 else
	 {

		 <!-- start -->
		$.post(
       "/register/checkemail",
	    {email:email},
         function(msg)
		    {
			   if(msg=="exists"){
				 $("li[@typeid=email]").html("您输入的邮箱已存在，每个邮箱只能注册一个为傲账号，请输入其他邮箱。");
				 
				 showerror("email");
			   }
			   else
			   {
		        showsuccess("email");
			   }
			}
		);
		<!-- end -->
	 }
}

function checkNickname(){
	
     var  nickname      = $("#nickname").val();
	 
	 var nicknamelen    = calculate_byte(nickname);
	 
	 if(nickname=="")
	 {
		  $("li[@typeid=nickname]").html("姓名不能为空，请填写您的真实姓名或昵称");
		 
		  showerror("nickname");
	 }
	 else if(nicknamelen>14)
	 {
		 
		 $("li[@typeid=nickname]").html('您输入的姓名太长，最多只能7个中文或14个字符'); 
		 
		  showerror("nickname");
	 }
     else
	 {
		 showsuccess("nickname");
	 }
}


function _initProvince(){
	
	$("#Province").change(function(){
								   
		 var provincename=this.value;
		 
		 if(provincename!="")
		 {
			 var ob=document.getElementById('town');
				 ob.options.length=0; 
				 ob.options[0]=new Option("请选择","")
			var  cob=document.getElementById('city');
                 cob.options.length=0; 
				 cob.options[0]=new Option("请选择","")
		    var  ii = 1;
			 for(i=0;i<townarray[provincename].length;i++)
			 {
			     var value=townarray[provincename][i];
			 
				 ob.options[ii]=new Option(value,value)
				 
				 ii++;
			 }
		 }
    }); 
}

function _initTown(){
	$("#town").change( function(){
		 var provincename=$("#Province").val();
		 var townname=this.value;
		 if(provincename!=""&&townname!="")
		 {
			 var ob=document.getElementById('city');
			 
                 ob.options.length=0; 
				 
			     ob.options[0]=new Option("请选择","")
				 
			 var  ii = 1; 
			 
			 for(i=0;i<townarray[provincename][townname].length;i++)
			 {
				 var value =townarray[provincename][townname][i];
				 ob.options[ii]=new Option(value,value)
				 ii++;
			 }
		}
   }); 
}


function _initchecksubmit()
{
    $("#form1").submit(function(){
				
           var temp = true;
		   
		   var id;

		   $("input[@type]").not("input[@class]").each(function(i){	
           
					if($(this).val()==""&&temp)
					{
						temp =  false;
						
						id = $(this).attr("id");
					}
		   }); 
		   
		    if(!temp)
			{
					showClew(id);
		
					showerror(id);
					
				    return false;
		    }
			
			var Province = $("#Province").val();
			  
			  if(Province=="请选择")
			  {
				 alert("请选择您的所在地");
				 
				 $("#Province").focus();
				 
				 return false;
			  }
			  else
			  {
			      return true;	
			  }

	}); 	
}
