//modyfy 2011.07.21 Passit.cn
jQuery.extend({
	require: function(val){
		var regex = /^.+$/;
		return regex.test(val);
	},
	len: function(val){
		var regex = /^\w{6,16}$/;
		return regex.test(val);
	},
	lenCode: function(val){
		var regex = /^[a-z,A-Z]{5}$/;
		return regex.test(val);
	},
	equal: function(val1, val2){
		if(val1 == val2)
			return true;
		return false;		
	},
	email: function(val){
		if(val.indexOf("@")==-1){
			return false;
		}
		var regex = /^[a-zA-Z0-9]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([\w-]+\.)+[a-zA-Z]{2,}$/;
		return regex.test(val);
	},
	emails: function(val){
		var regex = /^[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([\w-]+\.)+[a-zA-Z]{2,}(,[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([\w-]+\.)+[a-zA-Z]{2,})*$/;
		return regex.test(val);
	},
	url: function(val){
		//var regex = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
		var regex = /^http:\/\/(\S+)$/;
		return regex.test(val);
	}
});
var ajax_attr=new Object();
var ajax_method={
	initMethod:function(){
		if (window.ActiveXObject)ajax_attr.isIE = true;
		if (document.getBoxObjectFor)ajax_attr.isIE = false;
		ajax_attr.isIE6 = false;
		var ua = navigator.userAgent.toLowerCase();
		if (ua.indexOf("msie 6.0") != -1) ajax_attr.isIE6 = true;
		$(document).ready(function(){
			ajax_method.jQueryEvent();
			if(ajax_attr.isIE6)$("#mask_div").css({"width":$(document.body).width()+"px","height":$(document.body).height()+"px"});
		});
	},loginDivShow:function(){
		$("#message").hide();
		if(ajax_attr.type==0||ajax_attr.type==2){
			$("#verImage").attr("src", "verImage?time=" + Math.random());
			$("#ajax_login_main").show();
			$("#ajax_registered_main").hide();
		}else{
			$("#verImage_reg").attr("src", "verImage?time=" + Math.random());
			$("#ajax_login_main").hide();
			$("#ajax_registered_main").show();
		}
		$(".ajax_account_input").removeClass("invalid");
		ajax_method.setLoginDivPos();
	},setLoginDivPos:function(){
			if($("#unlogin_head").css("display")=="none"||ajax_attr.type==null||ajax_attr.type=='undefined')return;
			$("#ajax_login_out").hide();
			var height=322;
			if(ajax_attr.type==0||ajax_attr.type==2)height=290;
			var pos=ajax_method.getWinSize();
			$("#mask_div").show();
			var top=(pos.y-height)/2+pos.scrollY;
			var left=(pos.x-410)/2+pos.scrollX;
			if(top<0)top=0;if(left<0)left=0;
			$("#ajax_login_out").css({"left":left+"px","top":top+"px","height":height+"px"});
			window.setTimeout(function(){
				$("#ajax_login_out").show();
			},300);
	},getWinSize:function(){
			var clientY,clientX;
			if (ajax_attr.isIE) {
				clientY = document.documentElement.offsetHeight || document.body.offsetHeight || 0;
				clientX = document.documentElement.offsetWidth || document.body.offsetWidth || 0;
			}else {
				clientY = window.innerHeight;
				clientX = window.innerWidth;
			}	
			var diffX = document.documentElement.scrollLeft || document.body.scrollLeft || 0;
			var diffY = document.documentElement.scrollTop || document.body.scrollTop || 0;
				
			return {"x":clientX-(ajax_attr.isIE6?25:20),"y":clientY,"scrollX":diffX,"scrollY":diffY};
	},login_submit:function(){
		  if (!$.len($("#loginName").val())) {
	            $("#loginName").addClass("invalid");
	            ajax_attr.loginNameFlag = false;
	        }
	        else {
	            ajax_attr.loginNameFlag = true;
	        }
	        if (!$.len($("#loginPassword").val())) {
	            $("#loginPassword").addClass("invalid");
	            ajax_attr.loginPwdFlag = false;
	        }
	        else {
	            ajax_attr.loginPwdFlag = true;
	        }
			if($.lenCode($("#ver_code").val())){
			$("#loginCodeMsg").empty();
			$("<img/>").attr("src","images/login/suc.gif").appendTo("#loginCodeMsg");
			ajax_attr.loginCodeFlg=true;
			}else{
			$("#loginCodeMsg").empty();
			$("<img/>").attr("src","images/login/err.gif").appendTo("#loginCodeMsg");
			ajax_attr.loginCodeFlg=false;
			}
	        if (ajax_attr.loginNameFlag && ajax_attr.loginPwdFlag&&ajax_attr.loginCodeFlg) {
	         	ajax_method.showLoading();
	            $.ajax({
	                type: "POST",
	                url: "defUserLogin.action",
	                data: {
	                    "user.name": $("#loginName").val(),
	                    "user.password": $("#loginPassword").val(),
	                    "flag":"yes",
						"verCode":$("#ver_code").val()
	                    //用户是否保存登录状态
	                },
	                success: function(data) {
						  var obj = eval("(" + data + ")");
						  
						  if(obj.message!=null){
						  	ajax_method.stopLoading(1);
						  	if (obj.message == "INVALIDUSER") {
	                 			$("#login_msg").html("用户名或密码错误！");
								$("#loginNameMsg").empty();
								$("#loginPwdMsg").empty();
	                    	}else if(obj.message == "invalid"){
								$("#loginCodeMsg").empty();
								$("#login_msg").html("验证码输入错误！");
								$("<img/>").attr("src","images/login/err.gif").appendTo("#loginCodeMsg");
							}
							window.setTimeout(function(){
							$("#login_msg").html("");
							},3000);
						  }else{
						  	ajax_method.stopLoading(0);
							if(typeof(head_method)!='undefined'&&head_method!=null)head_method.getUserInfo();
							if(typeof(share_method)!='undefined'&&share_method!=null)share_method.findAccount(obj.user.id);
						 	ajax_method.openBindNet();
						  }
						 
	                },
	                error: function(XMLHttpRequest, textStatus, errorThrown) {
	                  ajax_method.stopLoading(0);
	                }
	            });
	        }
	},openBindNet:function(){
		if (ajax_attr.type != null && ajax_attr.type == 2) {
			ajax_attr.type = null;
			window.open("/passit_share.shtml");       
			return false;
		}	
	},
	jQueryEvent:function(){
	/*login and register method over*/
	$(".weibo_bg").click(function(){
		var title=$(this).attr("title");
		if(title!=null){
			var action="";
			if(title.indexOf("QQ")!=-1){
				action="http://www.passit.cn/loginByQQ.action";
			}else{
				var type=2;
				if (title.indexOf("人人网") != -1) {
					type = 2;
				}
				else if (title.indexOf("新浪微博") != -1) {
					type = 3;
				}else if (title.indexOf("搜狐微博") != -1) {
					type = 4;
				}else if (title.indexOf("网易微博") != -1) {
					type = 5;
				}
				action="http://www.passit.cn/loginByWeibo.action?type="+type;
				if(document.URL.indexOf("localhost")!=-1)action="http://localhost/loginByWeibo.action?type="+type;
			}
			if(action!=null&&action.length>0){
				$("#form1").attr("action",action).submit();
				if(typeof(head_method)!='undefined'&&head_method!=null)head_method.getUserInfo();
				return false;
			}
		}
		});
		$("#login_close_btn").click(function(){
			ajax_method.stopLoading(0);
			ajax_attr.type=null;
		});
	
		$("#unlogin_head").children("a").click(function(){
			var indexs=$("#unlogin_head a").index($(this));
			ajax_attr.type=indexs;
			ajax_method.loginDivShow();
			return false;
		});

		$("#show_login").click(function(){
			ajax_attr.type=0;
			ajax_method.loginDivShow();
		});
		$("#show_reg").click(function(){
			ajax_attr.type=1;
			ajax_method.loginDivShow();
		});
		$("#loginName").focus(function() {
	        $("#loginName").removeClass("invalid");
	        $("#loginNameMsg").empty();
	    }).blur(function() {
	        if (!$.len($("#loginName").val())) {
	            $("#loginName").addClass("invalid");
	            $("#loginNameMsg").empty();
	            ajax_attr.loginNameFlag = false;
	        }
	        else {
	            $("#loginNameMsg").empty();
	            $("<img/>").attr("src", "images/form/success.gif").appendTo("#loginNameMsg");
	            ajax_attr.loginNameFlag = true;
	        }
	    });
	    $("#loginPassword").focus(function() {
	        $("#loginPassword").removeClass("invalid");
	        $("#loginPwdMsg").empty();
	    }).blur(function() {
	        if (!$.len($("#loginPassword").val())) {
	            $("#loginPassword").addClass("invalid");
	            $("#loginPwdMsg").empty();
	            ajax_attr.loginPwdFlag = false;
	        }
	        else {
	            $("#loginPwdMsg").empty();
	            $("<img/>").attr("src", "images/form/success.gif").appendTo("#loginPwdMsg");
	            ajax_attr.loginPwdFlag = true;
	        }
	    });
		
		$("#ver_code").focus(function(){
			$("#loginCodeMsg").empty();
		}).blur(function(){
		if($.lenCode($("#ver_code").val())){
			$("#msg_code").empty();
			$("<img/>").attr("src","images/login/suc.gif").appendTo("#loginCodeMsg");
			ajax_attr.loginCodeFlg=true;
		}else{
			$("#msg_code").empty();
			$("<img/>").attr("src","images/login/err.gif").appendTo("#loginCodeMsg");
			ajax_attr.loginCodeFlg=false;
		}
		});
		$("#verImage").click(function(){
			 $("#loginCodeMsg").empty();
			 this.src='verImage?time='+Math.random();
		});
		$("#chageImage").click(function(){
			$("#loginCodeMsg").empty();
		  $("#verImage").attr("src","verImage?time="+Math.random());	
		});
		$("#userLogin").click(function() {
	      ajax_method.login_submit();
	    });
		$(document).keydown(function(e){
			if(e!=null&&e.keyCode!=null&&e.keyCode==13){
				if ($("#ajax_registered_main").css("display") != "none") {
					ajax_method.register_submit();
				}else{
					ajax_method.login_submit();
				}
				}
		});
		$("#verImage_reg").click(function(){
			$("#regCode_msg").empty();
			 this.src='verImage?time='+Math.random();
		});
		$("#chageImage_reg").click(function(){
		  $("#regCode_msg").empty();
		  $("#verImage_reg").attr("src","verImage?time="+Math.random());	
		});
		$("#reg_name").mouseover(function(){
			this.title="用户名为6-16数字、大小写字母或下划线组成";
		});
		$("#reg_pwd").mouseover(function(){
		  this.title="密码为6-16数字、大小写字母或下划线组成";
		});
		$("#reg_email").mouseover(function(){
		  this.title="邮箱必须包含@和.字符";
		});
		$(".ajax_user_types_input").click(function(){
			if($(this).attr("checked")){
				$("#reg_type").val($(this).val());
			}
		});
	
		$("#reg_name").focus(function(){
	        $("#regName_msg").empty();
			 $(this).removeClass("invalid");
	    }).blur(function(){
			$("#regName_msg").empty();
	        if (!$.len($("#reg_name").val())) {
	            $(this).addClass("invalid");
	            ajax_attr.name_flag = false;
	        }
	        else {
				if (ajax_attr.user_name != null && ajax_attr.user_name == $("#reg_name").val()) {
					$("#regName_msg").empty();
					if(!ajax_attr.nameFlg_validate){
						$("<img/>").attr("src", "images/register/err.gif").appendTo("#regName_msg");
					}else{
						$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regName_msg");
					}
					return;
				}
	            $.ajax({
	                type: "POST",
	                url: "validateUser.action?time="+Math.random(),
	                data: {
	                    "user.name": $("#reg_name").val()
	                },
	                success: function(data){
	                    var obj = eval("(" + data + ")");
	                    if (obj.message == "REGISTERED") {
							$("<img/>").attr("src", "images/register/err.gif").appendTo("#regName_msg");
	                        ajax_attr.nameFlg_validate = false;
	                    }
	                    else {
							$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regName_msg");
	                        ajax_attr.nameFlg_validate = true;
	                    }
						ajax_attr.user_name=$("#reg_name").val();
	                },
	                complete: function(XMLHttpRequest, textStatus){
						
	                },
	                error: function(XMLHttpRequest, textStatus, errorThrown){
						$("<img/>").attr("src", "images/register/err.gif").appendTo("#msg_name");
	                    ajax_attr.name_flag = false;
	                }
	            });
	        }
	    });
	    $("#reg_pwd").focus(function(){
	        $(this).removeClass("invalid");
			$("#regPwd_msg").empty();
	    }).blur(function(){
			$("#regPwd_msg").empty();
	        if (!$.len($("#reg_pwd").val())) {
	          	$(this).addClass("invalid");
	            ajax_attr.pwd_flag = false;
	        }
	        else {
				$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regPwd_msg");
	            regPwd_flg = true;
	        }
	    });
	    $("#reg_pwd_once").focus(function(){
	        $(this).removeClass("invalid");
			$("#regPwdOnce_msg").empty();
	    }).blur(function(){
			$("#regPwdOnce_msg").empty();
	        if (!$.len($("#reg_pwd_once").val())) {
	            $(this).addClass("invalid");
	            ajax_attr.once_flag = false;
	        }
	        else {
	            if (!$.equal($("#reg_pwd").val(), $("#reg_pwd_once").val())) {
				 	$(this).addClass("invalid");
	                ajax_attr.once_flag = false;
	            }
	            else {
					$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regPwdOnce_msg");
	                ajax_attr.once_flag = true;
	            }
	        }
	    });
	    $("#reg_email").focus(function(){
	        $(this).removeClass("invalid");
			$("#regEmail_msg").empty();
	    }).blur(function(){
				$("#regEmail_msg").empty();
	        if (!$.email($(this).val())) {
	            $(this).addClass("invalid");
	            ajax_attr.email_flag = false;
	        }
	        else {
				$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regEmail_msg");
	            ajax_attr.email_flag = true;
	        }
	    });
		
	    $("#reg_code").focus(function(){
			$(this).removeClass("invalid");
			$("#regCode_msg").empty();
		}).blur(function(){
			$("#msg_code").empty();
		if(!$.lenCode($(this).val())){
			$(this).addClass("invalid");
			ajax_attr.code_flag=true;
		}else{
			$("<img/>").attr("src","images/login/suc.gif").appendTo("#regCode_msg");
			ajax_attr.code_flag=false;
		}
		});
		$("#reg_sub").click(function(){
			ajax_method.register_submit();
		});
		/*login and register method over*/
	},register_submit:function(){
		 if ($.len($("#reg_name").val())&&ajax_attr.nameFlg_validate) {
			$("#regName_msg").empty();
			$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regName_msg");
	        ajax_attr.name_flag = true;
	    }else{
			$("#regName_msg").empty();
			$("<img/>").attr("src", "images/register/err.gif").appendTo("#regName_msg");
	        ajax_attr.name_flag = false;
		}
	    if ($.len($("#reg_pwd").val())) {
			$("#regPwd_msg").empty();
			$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regPwd_msg");
	        ajax_attr.pwd_flag = true;
	    }
	    else {
			$("#regPwd_msg").empty();
			$("<img/>").attr("src", "images/register/err.gif").appendTo("#regPwd_msg");
	        ajax_attr.pwd_flag = false;
	    }
	    if (!$.len($("#reg_pwd_once").val())) {
			$("#regPwdOnce_msg").empty();
			$("<img/>").attr("src", "images/register/err.gif").appendTo("#regPwdOnce_msg");
	        ajax_attr.once_flag = false;
	    }
	    else {
			$("#regPwdOnce_msg").empty();
	        if ($.equal($("#reg_pwd_once").val(), $("#reg_pwd").val())) {
				$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regPwdOnce_msg");
	            ajax_attr.once_flag = true;
	        }
	        else {
				$("<img/>").attr("src", "images/register/err.gif").appendTo("#regPwdOnce_msg");
	            ajax_attr.once_flag = false;
	        }
	    }
	    if ($.email($("#reg_email").val())) {
			$("#regEmail_msg").empty();
			$("<img/>").attr("src", "images/register/suc.gif").appendTo("#regEmail_msg");
	        ajax_attr.email_flag = true;
	    }
	    else {
			$("#regEmail_msg").empty();
			$("<img/>").attr("src", "images/register/err.gif").appendTo("#regEmail_msg");
	        ajax_attr.email_flag = false;
	    }
		
		if($.lenCode($("#reg_code").val())){
			$("#regCode_msg").empty();
			$("<img/>").attr("src","images/login/suc.gif").appendTo("#regCode_msg");
			ajax_attr.code_flag=true;
		}else{
			$("#regCode_msg").empty();
			$("<img/>").attr("src","images/login/err.gif").appendTo("#regCode_msg");
			ajax_attr.code_flag=false;
		}
		if(ajax_attr.name_flag&&ajax_attr.pwd_flag&&ajax_attr.once_flag&&ajax_attr.email_flag&&ajax_attr.code_flag&&ajax_attr.nameFlg_validate){
			ajax_method.showLoading();
			$.ajax({
	                type: "POST",
	                url: "defUserRegister.action",
	                data: {
	                    "user.name": $("#reg_name").val(),
	                    "user.password": $("#reg_pwd").val(),
	                    "user.email": $("#reg_email").val(),
	                    "user.type": $("#reg_type").val(),
						"verCode": $("#reg_code").val(),
	                    "flag": "yes" //用户是否保存登录状态
	                },
	                success: function(data) {
	                    var obj = eval("(" + data + ")");
	                    if (obj.message != null ) {
							ajax_method.stopLoading(0);
							if( obj.message == "REGISTERED"){
								$("#reg_name").addClass("invalid");
								$("#reg_msg").html("此用户名已经注册！");
	                        	ajax_attr.nameFlg_validate = false;
							}else if(obj.message == "invalid"){
								$("#regCode_msg").empty();
								var img=$("<img/>");
								img.attr("src","images/login/err.gif");
								img.appendTo($("#regCode_msg"));
								$("#reg_msg").html("验证码输入错误！");
							}
	                       window.setTimeout(function(){
						   	$("#reg_msg").html("");
						   },3000);
						 
	                    }
	                    else {
							ajax_method.stopLoading(1);
						
							if(typeof(head_method)!='undefined'&&head_method!=null)head_method.getUserInfo();
								ajax_method.openBindNet();
					    }
	                },
	                error: function(XMLHttpRequest, textStatus, errorThrown) {
	                   ajax_method.stopLoading(0);
	                }
	            });
		}
	},showLoading:function(){
		var pos=ajax_method.getWinSize();
		$("#mask_div").show();
		$("#ajax_loading_img").css({"top": ((pos.y - 60) / 2+pos.scrollY) + "px","left":((pos.x-60)/2+pos.scrollX)+"px"});
		$("#ajax_login_out").hide();
		$("#ajax_loading_img").show();
	},stopLoading: function(type){
		if(type==0){
			$("#ajax_loading_img").hide();
			$("#ajax_login_out").hide();
			$("#mask_div").hide();
		}else if(type==1){
			$("#ajax_loading_img").hide();
			$("#ajax_login_out").show();
			$("#mask_div").show();
		}else if(type==2){
			$("#ajax_loading_img").hide();
			$("#ajax_login_out").hide();
			$("#mask_div").show();
		}
	}
};
ajax_method.initMethod();

