var reg = function(page,uid,URI){	
	this.box = $("#reg_box");	//表单
	this.input = this.box.find(".at_text>input");
	this.u = $("#u_name");		//用户名
	this.uCheck = false;
	this.p = $("#u_pas");		//密码
	this.pCheck = false;
	this.p1 = $("#u_pas1");		//确认密码
	this.p1Check = false;
	this.p2 = $("#o_pas");		//当前密码
	this.p2Check = false;
	this.e = $("#e_name");		//邮箱
	this.eCheck = false;	
	this.m = $("#p_name");		//手机	
	this.mCheck = false;
	this.btn = $("#reg_sub");	//提交按钮	
	this.c = $("#auto_login");	//同意协议
	this.q = $("#strong");		//密码强度
	this.uid = uid||null;		//重设密码时返回的用户名
	var me = this;  //page  1快速 2邮箱 3手机 4修改密码 5创建安全密码 6修改安全密码 7重设密码 
	
	//提示信息
	var h_on='<em class="on">';	
	var h_err = '<em class="orr"><u class="at_msg m_3_e"></u>';
	var h_pas = '<u class="at_passking"><s class="at_txt">安全等级：</s><s class="at_bar"><span></span><span></span><span class="at_end"></span></s></u>';
	var name_o = h_on+'·4-16个字符，包括字母、数字、下划线<br />·不能以数字开头，字母不区分大小写<br />·支持汉字（1个汉字等于2字符）<br /><br /></em>';
	var same_pas='·密码不能包含用户名<br />';
	//if(page=1||page=2||page=3) same_pas='';
	var pas_o = h_on+'<u class="at_msg m_3_i"></u>'+h_pas+'<br /><br /><i class="pas_link blue1 ml10" style="cursor:pointer" onclick="window.open(\'http://help.zhubajie.com/main/view/id-370.html\',\'_blank\')">如何设置高强度的密码？</i><br class="clear" />·6-16个字符，包括字母、数字、特殊字符<br />'+same_pas+'·区分大小写<br />·不能使用连续或重复的字母、数字作为密码<br /></em>';	
	var pas_o1 = h_on+'·再一次输入您的密码</em>';
	var pas_o2 = h_on+'·请输入您的当前密码</em>';
	var ename_o = h_on+'·请输入您常用的邮箱</em>';
	var nname_o = h_on+'·4-16个字符，包括字母、数字、下划线<br />·支持汉字（1个汉字等于2字符）</em>';
	var pname_o = h_on+'·请输入您的手机号码</em>';		
	var name_e1 = h_err+'长度为4-16字符 (1个汉字等于2字符)</em>';//错误
	var name_e2 = h_err+'用户名第一位不能为数字</em>';
	var name_e3 = h_err+'只能使用字母、数字、下划线、汉字</em>';
	var ename_e = h_err+'请输入您真实的邮箱地址</em>';
	var nname_e = h_err+'请输入一个您对外展示的昵称</em>';
	var pas_e1_n = '两次输入的密码不一致'; 
	var pas_e1 = h_err+pas_e1_n+'</em>';
	var pas_e2 = h_err+'密码不能为空</em>';
	var pas_e3 = h_err+'密码应为6-16个字符</em>';
	var pas_e4_n = '密码太过简单';
	var pas_e4 = h_err+pas_e4_n+'</em>';
	var pas_e5_n = '密码不能是用户名的一部分';
	var pas_e5 = h_err+pas_e5_n+'</em>';
	var pname_e = h_err+'请您填写真实的手机号码</em>';
	var name_g = '<em><u class="at_msg m_3_o"></u></em>';//正确	
	var pas_g = '<em class="g"><u class="at_msg m_3_o"></u>'+h_pas+'</em>';//密码正确
	var name_ld = '<em class="ld"><u class="at_msg at_write"></u>正在检测中……</em>';
	var name_in = h_err+'很遗憾，该用户名已被注册！请更换重试或用该用户名<a href="http://u.zhubajie.com/login/" target="_blank">登陆</a><br /></em>';
	var ename_in = h_err+'很遗憾，该邮箱已被注册！请更换邮箱重试</em>';
	if(page==2) ename_in= h_err+'很遗憾，该邮箱已被注册！请更换邮箱重试或用该邮箱<a href="http://u.zhubajie.com/login/" target="_blank">登陆</a></em>';
	var pname_in = h_err+'很遗憾，该手机号已被注册！请更换号码重试或用该号码<a href="http://u.zhubajie.com/login/" target="_blank">登陆</a></em>';	
	var opas_in_n = '当前密码输入错误！';
	var opas_in = h_err+opas_in_n+'</em>';
	var keyName = new Array('zhubajie','admin','administrator','root','user','test','系统消息','客服','官方','系统','客户','秘书','中奖','工作人员','管理','猪八戒','财务');
		
	function txt(t){var a=t.parents(".at_text");return a};	
	this.input.focus(function(){//获得焦点
		txt($(this)).attr("class","at_text t_1_i");		
		txt($(this)).find("em").remove();	
		$(this).parents("dd").css({position:"relative","z-index":"999"})		
	})
	this.input.blur(function(){//失去焦点
		txt($(this)).attr("class","at_text t_1_d");
		txt($(this)).find("em").remove();
		$(this).parents("dd").css({position:"static"})
	})	
	var inErr = function(a,b){//错误
		var at_text = txt(a);
		at_text.attr("class","at_text t_1_e");
		at_text.find("em").remove();
		at_text.append(b);
		return false;
	}
	var inOk = function(a){//正确
		var at_text = txt(a);
		at_text.attr("class","at_text t_1_o");
		at_text.find("em").remove();
		at_text.append(name_g);		
	}
	var namelength = function(a) {
		var name = a.val(),
			length = 0;
		for(var i=0; i<name.length; i++) {
			if(/[\u4e00-\u9fa5]/.test(name.charAt(i))) length+=2;
			else length+=1;
		}
		return length;
	};
	var passmode = function(a) {//计算密码组合种类
		var num = 0;
		if(/[0-9]+/.test(a)) num++
		if(/[a-zA-Z]+/.test(a)) num++
		if(/[^0-9a-zA-Z\s\u4e00-\u9fa5]+/.test(a)) num++
		return num;
	};
	var clearEmpty = function(O) {//禁止输入空格
		O.val(O.val().replace(/\s*/g,""));
	}
	this.nameCheck = function(i,s){//验证账号		
		var len = namelength(i);		
        if (len < 4 || len > 16) {//4-16字符 (1汉字等于2字符)
            me.uCheck = inErr(i,name_e1);			
			return;
        }
        if (/^\d{1}.+?$/.test(i.val())) {//第一位是否为数字
            me.uCheck = inErr(i,name_e2);
			return;
        }
        if (!/^[\u4e00-\u9fa5\w]*$/.test(i.val())) {//特殊字符
            me.uCheck = inErr(i,name_e3);			
			return;
        }
		
		//跟据地址判断是否猪八戒工作人员注册
		 var url = location.href;
		 url=url.substring(url.lastIndexOf("=")+1,url.length);
		 if(url=="zbj"){		
					
		 }else{
			 for (var j=0;j<keyName.length;j++ )	{
					if(i.val().indexOf(keyName[j])!=-1) {
						me.uCheck = inErr(i,h_err+'您的用户名包含被过滤字符,无法注册！</em>');			
						return;
					}
				}
			 }
		
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		$.getJSON((URI!=undefined?URI:"http://u.zhubajie.com")+"/register/check.php?mode=checkusername&username="+encodeURIComponent(i.val())+"&jsoncallback=?", function(json){				
			if(json.state == 1) {					
				inOk(i);				
				me.uCheck = true;
				if(s) me.regIn();	
			}else if(json.state == -9){// 包含敏感字符
				me.uCheck = inErr(i,h_err+json.msg+"</em>");
				if(s) me.regIn();
			}else {
				me.uCheck = inErr(i,name_in);				
				if(s) me.regIn();	
			}
		});
	}	
	this.pasCheck = function(i,s){//验证密码	
		var password = i.val().replace(/\s*/, "");
		if (password == "") {//不能为空
			me.pCheck=inErr(i,pas_e2);
		} else if(!/^.{6,16}$/.test(password)) {//6-16字符
			me.pCheck=inErr(i,pas_e3);
		} else if(/^(.)\1*$/.test(password)) {//过于简单
			me.pCheck=inErr(i,pas_e4);
		} else {//密码不能包含用户名;
			if(page==4||page==5||page==6) {
				txt(i).attr("class","at_text t_1_l").append(name_ld);
				$.getJSON((URI!=undefined?URI:"http://u.zhubajie.com")+"/changepass/getusername.php?jsoncallback=?", function(json){		
					if(json.state == 1) {
						var username = json.msg;
						if(username.indexOf(password)!=-1) me.pCheck=inErr(i,pas_e5);
						else rightPas();
						if(s) me.regIn();
					}
				});	
			} else if(page==7){									
				if(me.uid.indexOf(password) !=-1) me.pCheck=inErr(i,pas_e5);
				else rightPas();				
			} else {
				if(me.u.val().indexOf(password) !=-1 && me.u.val()!='') me.pCheck=inErr(i,pas_e5); 
				else rightPas();
			}
		}
		function rightPas(){
			txt(i).attr("class","at_text t_1_o").append(pas_g);
			me.pasCheckQ(i);
			me.pCheck=true;
		}
	}	
	this.pasCheckQ = function(i){//密码强度
		clearEmpty(i);	
		var password = i.val().replace(/\s*/, "");
		var passleng = password.length;
		var _pass = passmode(password);
		var pasking = txt(i).find(".at_passking");
		var king = pasking.find("span");
		king.removeClass("at_current").text('');	
		var pas_link = pasking.next(".pas_link");
		pas_link.show();
		if (passleng < 8) {//弱
			king.eq(0).addClass("at_current").text('弱');
			me.q.val(0);
			return;
		}	
		if(/(?:(.)\1{3,})/.test(password) && _pass == 1) {
			//任何字符重复3次以上，并密码字符种类只有一种，弱
			king.eq(0).addClass("at_current").text('弱');
			me.q.val(0);			
		} else if(_pass == 2 || (!/(?:(.)\1{3,})/.test(password)&&passleng >=8&&_pass == 1)) {
			//密码种类超过8位存在两种 或 没有3次以上重复超过8位 中
			king.not(king.eq(2)).addClass("at_current");
			king.eq(1).text('中');
			me.q.val(1);			
		} else if(_pass == 3){//不管是否重复字符，密码种类存在三种，长度大于等于8，强
			king.addClass("at_current");
			pas_link.hide();
			king.eq(2).text('强');
			me.q.val(2);
		}
	}
	this.pasCheck1 = function(i,s){//确认密码		
		if(me.p.val()!='') {			
			if(i.val()!=me.p.val()){				
				me.p1Check=inErr(i,pas_e1);
			}else{inOk(i);
				me.p1Check=true;
			}
		}
		if(s) me.regIn();
	}
	this.opasCheck = function(i,s){//修改时验证当前密码
		if (i.val().replace(/\s*/, "") == "") {//不能为空
			me.p2Check=inErr(i,pas_e2);
			return;
		}
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		var _url;
		if (page==4) _url =(URI!=undefined ?URI:'http://u.zhubajie.com')+'/changepass/check.php?opas='+hex_md5(i.val())+'&jsoncallback=?';
		 
		if (page==6) _url =(URI!=undefined?URI:'http://u.zhubajie.com')+'/safepass/check.php?opas='+hex_md5(i.val())+'&jsoncallback=?';
		
		$.getJSON(_url, function(json){	
			if(json.state == 1) {					
				inOk(i);
				me.p2Check=true;
				if(s) me.regIn();
			} else {				
				me.p2Check=inErr(i,opas_in);	
				if(s) me.regIn();
			}
		});
	}
	this.enameCheck = function(i,s){//验证邮箱		
		var e_nameStr = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(i.val());		
		if (!e_nameStr) {
			me.eCheck=inErr(i,ename_e);
			return;
		}	
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		$.getJSON((URI!=undefined?URI:"http://u.zhubajie.com")+"/register/check.php?mode=checkemail&username="+i.val()+"&jsoncallback=?", function(json){				
			if(json.state == 1) {					
				inOk(i);
				me.eCheck=true;
				if(s) me.regIn();
			} else {									
				me.eCheck=inErr(i,'<em class="orr"><u class="at_msg m_3_e"></u>'+ json.msg + '</em>');
				if(s) me.regIn();
			}
		});	
	}
	this.pnameCheck = function(i,s){//验证手机
		var n_nameStr = /^0{0,1}(13[0-9]|15[0-9]|18[5-9])[0-9]{8}$/.test(i.val());
		if(!n_nameStr) {
			me.mCheck=inErr(i,pname_e);
			return;
		}				
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		$.getJSON((URI!=undefined?URI:"http://u.zhubajie.com")+"/register/check.php?mode=checkmobile&username="+i.val()+"&jsoncallback=?", function(json){				
			if(json.state == 1) {					
				inOk(i);
				me.mCheck=true;
				if(s) me.regIn();
			}else {									
				me.mCheck=inErr(i,pname_in);
				if(s) me.regIn();
			}
		});	
	}
	
	this.btn.click(function(){//按钮提交
		if(page==3){
			if(me.mCheck==false) {me.pnameCheck(me.m,true);return;}
		}			
		if(page==2||page==3){			
			if(me.eCheck==false) {me.enameCheck(me.e,true);return;}				
		}		
		if(page==1||page==2||page==3){
			if(me.uCheck==false) {me.nameCheck(me.u,true);return;}
			if(me.eCheck==false) {me.enameCheck(me.e,true);return;}	
		}
		if(page==4||page==6){ 			
			if(me.p2Check==false){me.opasCheck(me.p2,true);return;} 
		}		
		if(me.pCheck==false) {me.pasCheck(me.p,true);return;}
		if(me.p1Check==false) {me.pasCheck1(me.p1,true);return;}				
		me.regIn();
		return false;
	})
	this.regIn = function(){
		if(page==3){			
			if(me.mCheck==false) {at_infoTrace.show('手机号码输入错误！','i');return;}
		}		
		if(page==2||page==3){
			if(me.eCheck==false) {at_infoTrace.show('邮箱输入错误！','i');me.e.blur();return;}
		}		
		if(page==1||page==2||page==3){
			if(me.uCheck==false) {at_infoTrace.show('用户名输入错误！','i');return;}
			/*
			if(me.p.val().indexOf(me.u.val()) !=-1) {
				at_infoTrace.show(pas_e5_n,'i');
				me.p.blur();
				return;
			}
			*/
			if(me.u.val().indexOf(me.p.val()) !=-1) {
				at_infoTrace.show(pas_e5_n,'i');
				me.u.blur();
				return;
			}
			if(me.eCheck==false) {at_infoTrace.show('邮箱输入错误！','i');me.e.blur();return;}		
		}
		if(page==4||page==6){//修改时验证当前密码
			if(me.p2Check==false) {at_infoTrace.show(opas_in_n,'i');return;}
		}		
		if(me.pCheck==false) {at_infoTrace.show('密码输入错误！','i');me.p.blur();return;}		
		if(me.p.val()!=me.p1.val()) {
			at_infoTrace.show(pas_e1_n,'i');me.p1.blur();return;
		}		
		//密码过于简单
		if(me.p.val()=='123456' || me.p.val()=='12345678') {
			at_infoTrace.show(pas_e4_n,'i');me.p.blur();return;
		}
		if(page==4||page==6){			
			var _url;
			if (page==4) _url = (URI!=undefined?URI:'http://u.zhubajie.com')+'/changepass/post';
			if (page==6) _url = (URI!=undefined?URI:'http://u.zhubajie.com')+'/safepass/change';					
			$.ajax({
				url:_url,
				data:me.box.serialize(),
				success:function(json) {				
					at_infoTrace.show(json.msg,"o",null,[at_traces_i.getButton("确定","yellow",function(){
						window.location.href="http://u.zhubajie.com/safe/index.html";
					})]);
				}
			})
		}
		if(page==1||page==2||page==3){			
			if(me.c.attr("checked")==false) {at_infoTrace.show('请先查看并同意《猪八戒网服务协议（试行）》！','i');return;}			
		}
		if(page==1||page==2||page==3||page==7){
			setTimeout(function(){
				at_loading.show();
				me.box.submit()
			},0);
		}
		if(page==5){
			$.ajax({
				url:(URI!=undefined?URI:"http://u.zhubajie.com")+"/safepass/post",
				data:me.box.serialize(),
				success:function(json) {
					var _url;
					if (json.state == 1) _url="http://u.zhubajie.com/safe/index.html";
					if (json.state == 2) _url= "http://u.zhubajie.com/security/index.html";						
					at_infoTrace.show(json.msg, "o",null,[at_traces_i.getButton("确定","yellow",function(){
						window.location.href=_url;
					})]);
				}
			});	
		}		
	}	
		
	this.u.focus(function(){
		txt(me.u).append(name_o);
		me.u.isCheck=false;
	})
	this.u.blur(function(){me.nameCheck(me.u)})
	this.p.focus(function(){
		me.pCheck=false;
		txt(me.p).append(pas_o);
		var links = txt(me.p).find(".pas_link");		
		links.hover(function(){							 
			me.p.unbind("blur")			
		},function(){
			me.p.bind("blur",function(){
				me.p.next("em").remove();
				me.p.parents("dd").css({position:"static"});
				me.pasCheck(me.p);
			})	
		})
		links.bind("click",function(){
			$(this).mouseout();
			me.p.blur();			
		})	
		if(me.p.val()!='') me.pasCheckQ(me.p);
		me.p.keyup(function(){ 
			me.pasCheckQ(me.p);
		})		
	})
	this.p.blur(function(){me.pasCheck(me.p)})	
	
	this.p1.focus(function(){
		txt(me.p1).append(pas_o1);
		me.p1Check=false;
	})
	this.p1.blur(function(){me.pasCheck1(me.p1)})

	this.p2.focus(function(){
		txt(me.p2).append(pas_o2);
		me.p2Check=false;
	})
	this.p2.blur(function(){me.opasCheck(me.p2)})
	
	this.e.focus(function(){
		txt(me.e).append(ename_o);
		me.eCheck=false;
	})
	this.e.blur(function(){me.enameCheck(me.e)})	

	this.m.focus(function(){
		txt(me.m).append(pname_o);
		me.mCheck=false;
	})
	this.m.blur(function(){me.pnameCheck(me.m)})
	
	this.input.eq(0).focus();	
}

