
/**
 * 实时判断用户是否登录并在会话有效期内的方法，适合需要实时检查的时候用。主要方法为doRequiredLoginAction，其他方法主要是内部使用。
 */
function isLoginedAtServer() {
	$importSync("/dwr/interface/loginDWR.js");
	var currentUserId;
	loginDWR.getCurrentAppUserId({callback:function (data) {
		currentUserId = data;
	}, async:false});
	return currentUserId == "-2" ? false : true;
}
var globalLoginCallback = null;
function doRequiredLoginAction(loginCallback) {
	globalLoginCallback = loginCallback;
	$importDwr(function () {
		if (!isLoginedAtServer()) {
			if (window.confirm(__FMT.loginConfirm)) {
				fnShowLoginDialog();
			}
		} else {
			execLoginCallback();
		}
	});
}
function execLoginCallback() {
	if (globalLoginCallback!=null) {
		globalLoginCallback.call();
		globalLoginCallback=null;
	}
}
var dlgLogin=null;
function fnShowLoginDialog() {
	if (dlgLogin==null) {
		dlgLogin = fnCreateSimpleDialog("Login",__FMT.first_login,null,{
			dialogWidth:"400px",
			dialogHeight:"180px"
		});
	}
	dlgLogin.showDialog(__ctxPath + "/customer/loginDlg.html?decorator=selecter",function(){
		//loginDWR.getCurrentAppUserEmailByName(getCurrentUserName(false),{callback:function (data) {
			//alert(getCurrentUserEmail());
			$("j_username").value = getCurrentUserEmail();
		//}});
		//弹出层里面focus不生效
	});
}
function fnDoLoginHandler() {
	var username = $("j_username").value;
	var password = $("j_password").value;
	if (trim(username) == "") {
		alert(__FMT.customer_username_isRequired);
		$("j_username").focus();
		return;
	}
	if (trim(password) == "") {
		alert(__FMT.customer_password_isRequired);
		$("j_password").focus();
		return;
	}
	var vName = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
     if(!vName.test(username)){
        alert('Invalid username or password. Please try again.');
        return false;
    }
	loginDWR._getLoginStatus(username, password, {callback:function (data) {
		if (data == "success") {
			//sysMsg("You signed in system successfully!");
			dlgLogin.closeDialog();
			fillLoginPrompt();
			execLoginCallback();
		} else {
			$("loginMsg").innerHTML = "<font color='red'>"+__FMT.customer_login_fail+"</font>";
		}
	}});
}
function password_onkeypress(event) {
	var code = (event.keyCode == null) ? event.charCode : event.keyCode;
	if (code == 13) {
		fnDoLoginHandler();
	}
}


function  fnRegisterValidate(divId,type){
		var valid = true;
		var emailId = "#email" + divId;
		var passwordId = "#password" + divId;
		$j(emailId).blur();
		$j(passwordId).blur();
		 if ($j(emailId).attr("aria-label")!=""){
			 valid = false;
		 }
		 if ($j(passwordId).attr("aria-label")!=""){
			 valid = false;
		 }
		 if (!$j("#checkedId"+divId).attr("checked")){
			 alert("Please go to see the terms and check the checkbox");
			 return false;
		 }
	 	if (valid){

	 		loginDWR.customerRegister($j(emailId).val(),$j(passwordId).val(), function(data) {
	 			if (data==""){
	 				loginSuccess(type);
	 			}else{
	 				//$j("#email").attr("aria-label","The email is already exists");
	 				//$j("#email").removeClass("longinput");
	 				//$j("#email").removeClass("longinput-invalid");
	 				alert("Sorry,"+data);
	 			}
	 			
	 		});
	 		
	 		
	 	}else
			 alert("Please check your input again, there are some errors.");
	     return false;
		
}
	

function fnLoginValidate(divId,type){
		 var valid = true;
		 var emailId = "#j_username" + divId;
		 var passwordId = "#j_password" + divId;
		 $j(emailId).blur();
			$j(passwordId).blur();
		 if ($j(emailId).attr("aria-label")!=""){
			 valid = false;
		 }
		 if ($j(passwordId).attr("aria-label")!=""){
			 valid = false;
		 }
		 if (valid){
			 loginDWR.getLoginStatus($j(emailId).val(),$j(passwordId).val(), function(data) {
		 			if (data==""){
		 				loginSuccess(type);
		 			}else{
		 				//$j("#email").attr("aria-label","The email is already exists");
		 				//$j("#email").removeClass("longinput");
		 				//$j("#email").removeClass("longinput-invalid");
		 				alert("Sorry,"+data);
		 			}
		 			
		 		});
		 }else
		 	alert("Please check your input again, there are some errors.");
	     return false;
}
function loginSuccess(type){
	window.location.href = "http://www.m2cmart.com/pages/customer/loginSuccess.htm?type="+type;
}

function getCurrentUserEmail(){
		 var email = getCookie("EMAIL");
		 if (email == null){
			 return "";
		 }
		 email = email.substring(1, email.length - 1);
		 return email;
 }
 
function setInputAction(inputs){
		 
		    $j.each(inputs,function() {
		    	$j(this).blur(function(){
					$j(this).removeClass("longinput");
					$j(this).removeClass("longinput-invalid");
					$j(this).removeClass("longinput-edit");
					if (validateField(this,true)){
						$j(this).addClass("longinput");
					}else{
						$j(this).addClass("longinput-invalid");
					}
					
				});
		    	$j(this).focus( function(){
					$j(this).removeClass("longinput");
					$j(this).removeClass("longinput-invalid");
					$j(this).addClass("longinput-edit");
				});
				var showtext = "";
				if ($j(this).attr("aria-label"))
					showtext = $j(this).attr("aria-label");
				$j(this).PQuickTip({text:showtext});
				
		    });
}
	 
function initValidation(divId, type){
	var inputs;
	
//	if( type == 1){
//		inputs = {
//			a:	 $j("#j_username"+divId),
//			b:   $j("#j_password"+divId)
//		}
//	}else if (type == 2){
//		inputs = {
//			a:	 $j("#email"+divId),
//			b:   $j("#password"+divId)
//		}
//	}else{
		inputs = {
			a:	 $j("#j_username"+divId),
			b:   $j("#j_password"+divId),
		    c:   $j("#email"+divId),
		    d:   $j("#password"+divId)
		}
//	}
		 		 
	setInputAction(inputs);
		  //setInputAction('customerRegister');
	if (type ==1 || type ==3){   
		    var rememberEmail = getCurrentUserEmail();
		
		 	if (rememberEmail !=""){
		 		$j("#j_username"+divId).val(rememberEmail);
		 		$j("#j_username"+divId).attr("aria-label","");
		 	}
	}
	if (type == 2 || type ==3){
		 	$j("#email"+divId).val("");
	 		$j("#password"+divId).val("");
	}
}

	

