//login
var login = new Object();

login.confirmLoginInit = function (form, focusField, url, targetUrl) {
	form.onkeyup = function(evt) {
		var crossEvent = (evt)? evt : event;
		var keyCode = crossEvent.keyCode;
		if(keyCode == 13) {
			login.publicCheckSubmit(url, targetUrl);
		}
	}

	$(focusField).focus();
}

login.forgotPassInit = function (form, focusField) {
	form.onkeyup = function(evt) {
		var crossEvent = (evt)? evt : event;
		var keyCode = crossEvent.keyCode;
		if(keyCode == 13) {
			login.submitForgotPass(form);
		}
	}

	$(focusField).focus();
}

login.forgotPassStep2Init = function (form, focusField) {
	form.onkeyup = function(evt) {
		var crossEvent = (evt)? evt : event;
		var keyCode = crossEvent.keyCode;
		if(keyCode == 13) {
			login.submitForgotPassStepSecretQuestion(form);
		}
	}
	$(focusField).focus();
}

login.submitForgotPass = function (form) {
	if (form == undefined) {
		form = document.forms['getPass'];
	}
    var iraveEmail = form.iraveEmail.value.strip();
    var securityCode = $("verification").value.strip();
	if(validation.isEmpty(iraveEmail)) popup.popItUp(null, jsVals.jalert.loginEmailRequired, null,155);
	else if(!validation.checkEmailName(iraveEmail) && !validation.isValidEmail(iraveEmail)) popup.popItUp(null, jsVals.jalert.loginEmailInvalid, null,155);
	else if(validation.isEmpty(securityCode)) popup.popItUp(null, jsVals.jalert.verCodeRequired, null, 155);
	else if(securityCode.length != 5) popup.popItUp(null, jsVals.jalert.verCodeInvalid, null, 155);
	else {
		var url = IRAVE_URL_ROOT + "index.php?act=forgotPassword";
		new Ajax.Request(url, {
			method: 'post',
			parameters:{
				'iraveEmail': iraveEmail,
				'securityCode': securityCode
			},
			onSuccess: function(transport) {
				var result = transport.responseText.strip();
				if(result.indexOf('goStep2') != -1) {
					//parent.popup.popItUp(null, jsVals.jalert.forgotPassConfirmSent, null, 155);
					//window.location = IRAVE_URL_ROOT + "index.php?act=forgotPassword&step=step2&iraveEmail=" + iraveEmail + "&securityCode=" + securityCode;
					var form = $('getPass');
					form.step.value = 'step2';
					form.iraveEmail.value = iraveEmail;
					form.securityCode.value = securityCode;
					form.action = IRAVE_URL_ROOT + "index.php?act=forgotPassword";
					document.forms['getPass'].submit();
				}
				else {
					new Ajax.Updater("securityCodeDiv", VERIFICATION_URL);
					parent.popup.popItUp(null, result, null, 155);
					$('verification').value = '';
				}
			}
		});
	}
	return false;
}

login.submitForgotPassStepSecretQuestion = function (form) {
	if (form == undefined) {
		form = document.forms['getPass'];
	}
    var iraveEmail = form.iraveEmail.value.strip();
    var secondaryEmail = form.secondaryEmail && (form.secondaryEmail.disabled == false)? form.secondaryEmail.value.strip() : '';
    var answer = form.answer && (form.answer.disabled == false)? form.answer.value.strip() : '';
    var securityCode = form.securityCode.value.strip();
	if(validation.isEmpty(iraveEmail)) popup.popItUp(null, jsVals.jalert.loginEmailRequired, null,155);
	else if(!validation.checkEmailName(iraveEmail) && !validation.isValidEmail(iraveEmail)) popup.popItUp(null, jsVals.jalert.loginEmailInvalid, null,155);
	else if(validation.isEmpty(secondaryEmail) && validation.isEmpty(answer)) {
		var errMsg = jsVals.jalert.secretQuestionAnswerOrSecondaryEmailRequired;
		if($('answer') == null) {
			errMsg = jsVals.jalert.secondaryEmailRequired;
		}
		popup.popItUp(null, errMsg, null,155);
	}
	else if(!validation.isEmpty(secondaryEmail) && !validation.isValidEmail(secondaryEmail)) popup.popItUp(null, jsVals.jalert.secondaryEmailInvalid, null,155);
	else if(validation.isEmpty(securityCode)) popup.popItUp(null, jsVals.jalert.verCodeRequired, null, 155);
	else if(securityCode.length != 5) popup.popItUp(null, jsVals.jalert.verCodeInvalid, null, 155);
	else {
		var url = IRAVE_URL_ROOT + "index.php?act=forgotPassword&step=step3";
		new Ajax.Request(url, {
			method: 'post',
			parameters:{
				'iraveEmail': iraveEmail,
				'secondaryEmail': secondaryEmail,
				'answer': answer,
				'securityCode': securityCode
			},
			onSuccess: function(transport) {
				var result = transport.responseText.strip();
				if(result.indexOf('confirmSent') != -1) {
					$('forgotPassTable').remove();
					$('confirmSentTable').style.display = '';
					setTimeout("window.location = '" + IRAVE_URL_ROOT + "'", 2000);
				} else if(result.indexOf('goResetPassword') != -1)
					window.location = IRAVE_URL_ROOT + "index.php?act=ifSettings";
				else {
					parent.popup.popItUp(null, result, null, 155);
				}
			}
		});
	}
}

login.onClickRecoveryMethod = function(method) {
	var a =	$('answer');
  	switch (method) {
  		case 1:
  			if (a != null) {
	  			a.disabled = true;
  			}
  			$('secondaryEmail').disabled = false;
  			$('secondaryEmail').focus();
  			break;
  		case 2:
  			$('secondaryEmail').disabled = true;
  			if (a != null) {
	  			a.disabled = false;
	  			a.focus();
  			}
  			break;
  	}
}

login.submitGetSecretQuestion = function (form) {
    var iraveEmail = form.iraveEmail.value.strip();
	if(validation.isEmpty(iraveEmail)) popup.popItUp(null, jsVals.jalert.loginEmailRequired, null,155);
	else {
		var url = IRAVE_URL_ROOT + "index.php?act=ajaxGetSecretQuestion";
		new Ajax.Request(url, {
			method: 'post',
			parameters:{
				'iraveEmail': iraveEmail
			},
			onSuccess: function(transport) {
				var result = transport.responseText.strip();
				if(result == '')
					alert('You was not set secret question!');
				else {
					$('question').innerHTML = result;
					login.onClickRecoveryMethod(2);
				}
			}
		});
	}
}

login.forgotUsernameInit = function (form) {
	$('secondaryEmail').focus();
	form.onkeyup = function(evt) {
		var crossEvent = (evt)? evt : event;
		var keyCode = crossEvent.keyCode;
		if(keyCode == 13) {
			login.submitForgotUsername(form);
		}
	}
}

login.submitForgotUsername = function (form) {
    var secondaryEmail = form.secondaryEmail.value.strip();
    var securityCode = $("verification").value.strip();
	if(validation.isEmpty(secondaryEmail)) popup.popItUp(null, jsVals.jalert.secondaryEmailRequired, null,155);
	else if(!validation.isValidEmail(secondaryEmail)) popup.popItUp(null, jsVals.jalert.secondaryEmailInvalid, null,155);
	else if(validation.isEmpty(securityCode)) popup.popItUp(null, jsVals.jalert.verCodeRequired, null, 155);
	else if(securityCode.length != 5) popup.popItUp(null, jsVals.jalert.verCodeInvalid, null, 155);
	else {
		var url = IRAVE_URL_ROOT + "index.php?act=forgotUsername";
		new Ajax.Request(url, {
			method: 'post',
			parameters:{
				'secondaryEmail': secondaryEmail,
				'securityCode': securityCode
			},
			onSuccess: function(transport) {
				var result = transport.responseText.strip();
				if(result.indexOf('confirmSent') != -1)
					//parent.popup.popItUp(null, jsVals.jalert.forgotPassConfirmSent, null, 155);
					window.location = CONFIRMLOGIN_URL+"&resendUsername=" + secondaryEmail;
				else {
					new Ajax.Updater("securityCodeDiv", VERIFICATION_URL);
					parent.popup.popItUp(null, result, null, 155);
				}
			}
		});
	}
}

//login at public
login.publicInit = function (url, targetUrl) {
	CKM.setCookie('screenWidth', screen.width);
	CKM.setCookie('screenHeight', screen.height);
	var email = $('email');
	var pass = $('passwd');
	var remember = $('remember');
	var Submit2 = $('Submit2');

	if(email){

		email.onkeyup = function(evt) {
			var crossEvent = (evt)? evt : event;
			var keyCode = crossEvent.keyCode;
			if(keyCode == 13) {
			  login.publicCheckSubmit(url, targetUrl);
			}
		}
	}
	if (pass) {
		pass.onkeyup = function(evt) {
			var crossEvent = (evt)? evt : event;
			var keyCode = crossEvent.keyCode;
			if(keyCode == 13) {
			  login.publicCheckSubmit(url, targetUrl);
			}
		}
	}
	if (remember) {
		remember.onkeyup = function(evt) {
			var crossEvent = (evt)? evt : event;
			var keyCode = crossEvent.keyCode;
			if(keyCode == 13) {
			  login.publicCheckSubmit(url, targetUrl);
			}
		}
	}
	if (Submit2) {
		Submit2.onkeyup = function(evt) {
			var crossEvent = (evt)? evt : event;
			var keyCode = crossEvent.keyCode;
			if(keyCode == 13) {
			  login.publicCheckSubmit(url, targetUrl);
			}
		}
	}
}

login.publicCheckSubmit = function (url, targetUrl) {
	if (targetUrl == '') { targetUrl = window.location; };
	var emailValue = $('email').value.strip();
	var passValue = $('passwd').value.strip();
	var remember = $('remember');
	var rememberValue = remember?remember.checked:"";
	var securityCode = "";
	if ($('verification')) {
		securityCode = $("verification").value.strip();
	}

	if(emailValue == "username" &&  passValue == "password") popup.popItUp(null, jsVals.jalert.publicLoginEmailRequired, 350,155, 'login.email');
	else if(emailValue == "username" || validation.isEmpty(emailValue)) popup.popItUp(null, jsVals.jalert.loginEmailRequired, 350,155, 'login.email');
	else if(!validation.checkEmailName(emailValue) && !validation.isValidEmail(emailValue)) popup.popItUp(null, jsVals.jalert.loginEmailInvalid, 350,155, 'login.email');
	else if(validation.isEmpty(passValue)) popup.popItUp(null, jsVals.jalert.passRequired, 350,155, 'login.passwd');
	else if(validation.isContainSpace(passValue)) popup.popItUp(null, jsVals.jalert.passBlank, 350,155, 'login.passwd');
	else if(!validation.isTextOrInteger(passValue)) popup.popItUp(null, jsVals.jalert.passInvalid, 350,155, 'login.passwd');
	else if($('verification') && validation.isEmpty(securityCode)) popup.popItUp(null, jsVals.jalert.verCodeRequired, null, 155, 'login.verification');
	else if ($('verification') && securityCode.length != 5) popup.popItUp(null, jsVals.jalert.verCodeInvalid, null, 155, 'login.verification');
	else {
		var params = null;
		if ($('verification')) {
			params = {
				email:emailValue,
				passwd:passValue,
				remember: rememberValue,
				code: securityCode
			};
		} else {
			params = {
				email:emailValue,
				passwd:passValue,
				remember: rememberValue
			};
		}
		new Ajax.Request(url, {
			method: 'post',
			parameters: params,
			onSuccess: function(transport) {
				var result = transport.responseText.strip();
				var obj = result.evalJSON();
				if (obj.status == "done") {
					window.location = targetUrl;
					ifirave.pbGallery.pbGalleryHeader();
				} else if($('verification') || obj.counter <= LIMIT_FAIL_SIGNUP_TIMES) {
					if(obj.msg.indexOf("email") != -1) {
					   	popup.popItUp(null, obj.msg, 350,153,'login.email');
					}
					else if(obj.msg.indexOf("pass") != -1) {
						$('passwd').value = '';
					   	popup.popItUp(null, obj.msg, 350, 153, 'login.passwd');
					} else {
					   	popup.popItUp(null, obj.msg, 350, 153, 'login.verification');
					}
					new Ajax.Updater("securityCodeDiv", VERIFICATION_URL);
			    }
				else {
					window.location = CONFIRMLOGIN_URL;
				}
			}
		});
	}
}


var subscription = new Object();
subscription.emailSubscription = function () {
    var emailValue = $F("subscription");
    var url = IRAVE_URL_ROOT + "index.php?act=ajaxAddSubscription";
    if(validation.isEmpty(emailValue)) popup.popItUp(null, jsVals.jalert.emptySubscrition, null,155, 'subscription.subscription');
    else if(!validation.isValidEmail(emailValue)) popup.popItUp(null, jsVals.jalert.subScriptionInvalid, null,155, 'subscription.subscription');
    else {
        new Ajax.Request(url, {
    		method: 'post',
    		parameters:{email:emailValue},
    		onSuccess: function(transport) {
   			    popup.popItUp(null, jsVals.jalert.thankSubscription, null,153);
    		}
    	});
    }
}
//ReverifyEmail
login.reverifyEmail = function () {
    var url = "index.php?act=reverifyEmail";
    new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			var email = transport.responseText.strip();
		    popup.popItUp(null, '<p align="left">Please check your '+email+' email and activate your iRave account. Depending on your settings, this email may show up in your "Bulk" or "Junk" mail folders. Please make sure to check these!<p>', 350,153);
		}
	});
}