
﻿var login={init:function(options)
{var self=this;self.form=$("#"+formName);self.validator=self.form.validate({errorPlacement:function(error,element)
{$('span#loginMessage').append(error);}});self.elCbLogin=cbLogin;self.elSuperHeader=$('div#superHeader');self.elLoginBox=$('div#loginBox');self.elLoginControls=self.elLoginBox.find('div#loginControls');self.elMessages=$('span#loginMessage');self.elResetMessage=$('span[id$="lblMessage"]');self.elUserName=self.elLoginControls.find('input[id$="txtLoginUserName"]');self.elPassword=self.elLoginControls.find('input[id$="txtLoginPassword"]');self.elSignInBtn=self.elLoginControls.find('a[id$="hypLogin"]');self.elForgotPassword=self.elLoginControls.find('a[id$="hypForgotPassword"]');self.elShowSignup=self.elLoginControls.find('a[id$="hypShowSignup"]');self.elSignupControls=self.elLoginBox.find('div#signupControls')
self.elSignupUserName=self.elSignupControls.find('input[id$="txtSignupUserName"]');self.elSignupPassword=self.elSignupControls.find('input[id$="txtSignupPassword"]');self.elSignupFirstName=self.elSignupControls.find('input[id$="txtSignupFirstName"]');self.elSignupLastName=self.elSignupControls.find('input[id$="txtSignupLastName"]');self.elSignupCountry=self.elSignupControls.find('select[id$="cboSignupCountry"]');self.elSignupBtn=self.elSignupControls.find('a[id$="hypSignup"]');self.elShowLogin=self.elSignupControls.find('a[id$="hypShowLogin"]');self.elUserInformation=self.elLoginBox.find('div#userInformation');self.elLoggedInUser=self.elUserInformation.find('a[id$="hypLoggedInUser"]');self.elAdministration=self.elUserInformation.find('a[id$="hypAdministration"]');self.elNewProjectBtn=self.elUserInformation.find('a[id$="hypNewProject"]');self.elMyProjectsBtn=self.elUserInformation.find('a[id$="hypMyProjects"]');self.elLogOutBtn=self.elUserInformation.find('a[id$="hypLogout"]');self.loginControls=new Array();self.loginControls.push(self.elUserName);self.loginControls.push(self.elPassword);self.forgotPasswordControls=new Array();self.forgotPasswordControls.push(self.elUserName);self.signupControls=new Array();self.signupControls.push(self.elSignupUserName);self.signupControls.push(self.elSignupPassword);self.signupControls.push(self.elSignupFirstName);self.signupControls.push(self.elSignupLastName);self.signupControls.push(self.elSignupCountry);self.elUserName.bind('focus',function(event)
{event.preventDefault();self.elMessages.empty();self.elResetMessage.empty();});self.elPassword.bind('focus',function(event)
{event.preventDefault();self.elMessages.empty();self.elResetMessage.empty();});self.elPassword.bind('keypress',function(event)
{if(event.keyCode==13)
{event.preventDefault();self.elSignInBtn.click();}});self.elMyProjectsBtn.bind('click',function(event)
{event.preventDefault();moveAlong('qExplore.aspx');});self.elNewProjectBtn.bind('click',function(event)
{event.preventDefault();moveAlong('qTarget.aspx?new=true');});self.elLogOutBtn.bind('click',function(event)
{self.loggedIn("False");moveAlong('Index.aspx');});self.elLoggedInUser.bind('click',function(event)
{moveAlong('qAccount.aspx');});self.elAdministration.bind('click',function(event)
{moveAlong('qAdmin.aspx');});self.elSignupBtn.bind('click',function(event)
{event.preventDefault();});self.elSignInBtn.bind('click',function(event)
{event.preventDefault();var id='#'+self.elUserName.attr('id')
var valid=self.validateControls(self.loginControls);var pwd='#'+self.elPassword.attr('id');if(!valid)
return false;cbLogin.CallbackPrefix=getCallbackPrefix();cbLogin.Debug=getCallbackDebug();cbLogin.Callback('login',self.elUserName.val(),self.elPassword.val());return false;});self.elSignupBtn.bind('click',function(event)
{event.preventDefault();var valid=self.validateControls(self.signupControls);if(!valid)
return false;cbLogin.CallbackPrefix=getCallbackPrefix();cbLogin.Debug=getCallbackDebug();cbLogin.Callback('signup',self.elSignupUserName.val(),self.elSignupPassword.val(),self.elSignupFirstName.val(),self.elSignupLastName.val(),self.elSignupCountry.val());});self.elShowSignup.bind('click',function(event)
{event.preventDefault;self.elLoginControls.hide(0,function()
{self.elSignupControls.slideDown('slow');});self.validator.resetForm();self.elLoginBox.find('input').placeholder();});self.elShowLogin.bind('click',function(event)
{event.preventDefault;self.elSignupControls.slideUp('slow',function()
{self.elLoginControls.show();});self.validator.resetForm();self.elLoginBox.find('input').placeholder();});self.elForgotPassword.bind('click',function(event)
{event.preventDefault();var id='#'+self.elUserName.attr('id')
var valid=self.validator.element(id);if(!valid)
return;cbLogin.CallbackPrefix=getCallbackPrefix();cbLogin.Debug=getCallbackDebug();cbLogin.Callback('resetpassword',self.elUserName.val());});self.elLoginBox.corner('5px bottom');self.elSignupControls.corner('5px bottom');self.elLoginBox.find('input').placeholder();self.resizeFonts();self.addValidation()
addValidationRule(self.elUserName,{required:true,email:true,messages:{required:globRes.Common_Js_Invalid_Email_Address,email:globRes.Common_Js_Invalid_Email_Address}});addValidationRule(self.elPassword,{required:true,messages:{required:globRes.Login_Js_Error_Message_Invalid_Password}});addValidationRule(self.elSignupUserName,{required:true,email:true,remote:'ajax/login.ashx?m=checkEmail&id='+self.elSignupUserName.attr('name'),messages:{required:globRes.Login_Js_Invalid_Email_Address,email:globRes.Login_Js_Invalid_Email_Address,remote:globRes.Login_Js_Email_In_Use}});addValidationRule(self.elSignupPassword,{required:true,minlength:6,messages:{required:' *',minlength:' *'}});addValidationRule(self.elSignupFirstName,{required:true,minlength:2,messages:{required:' *',minlength:' *'}});addValidationRule(self.elSignupLastName,{required:true,minlength:2,messages:{required:' *',minlength:' *'}});if(options==null)
options={mode:"login"};if(options!=null)
{self.elSignupControls.hide();self.elUserInformation.hide();self.elLoginControls.hide();switch(options.mode)
{case"login":self.elLoginControls.show();break;case"signup":self.elSignupControls.show();break;case"userInfo":self.elUserInformation.show();break;}}},resizeFonts:function()
{var self=this;self.elMyProjectsBtn.widthShrink(90);self.elNewProjectBtn.widthShrink(80);self.elLogOutBtn.widthShrink(80);},validateControls:function(aryControls)
{var self=this;var id='';var valid=true;var invalidFound=false;if($.isArray(aryControls))
{for(var i=0;i<aryControls.length;i++)
{var ctrl=aryControls[i];id='#'+ctrl.attr('id');valid=self.validator.element(id);if(!valid)
{invalidFound=true;break;}}}
else
{id='#'+aryControls.attr('id');valid=self.validator.element(id);if(!valid)
{invalidFound=true;}}
if(invalidFound)
return false;else
return true;},addValidation:function()
{var self=this;addValidationRule(self.elUserName,{required:true,email:true,messages:{required:globRes.Common_Js_Invalid_Email_Address,email:globRes.Common_Js_Invalid_Email_Address}});addValidationRule(self.elPassword,{required:true,messages:{required:globRes.Login_Js_Error_Message_Invalid_Password}});addValidationRule(self.elSignupUserName,{required:true,email:true,remote:'ajax/login.ashx?m=checkEmail&id='+self.elSignupUserName.attr('name'),messages:{required:globRes.Login_Js_Invalid_Email_Address,email:globRes.Login_Js_Invalid_Email_Address,remote:globRes.Login_Js_Email_In_Use}});addValidationRule(self.elSignupPassword,{required:true,minlength:6,messages:{required:' *',minlength:' *'}});addValidationRule(self.elSignupFirstName,{required:true,minlength:2,messages:{required:' *',minlength:' *'}});addValidationRule(self.elSignupLastName,{required:true,minlength:2,messages:{required:' *',minlength:' *'}});},removeValidation:function()
{var self=this;removeValidationRule(self.elUserName);removeValidationRule(self.elPassword);removeValidationRule(self.elSignupUserName);removeValidationRule(self.elSignupPassword);removeValidationRule(self.elSignupFirstName);removeValidationRule(self.elSignupLastName);},loggedIn:function(isLoggedIn)
{if(isLoggedIn==null)
{var val=getCookie("QTLoggedIn");if(val.trim()=='')
val='false';return''+val;}
else
{setCookie("QTLoggedIn",isLoggedIn);}},cbLoginComplete:function(sender,args)
{var self=this;var authenticationStatus=self.elLoginControls.find('input[id$="hdnAuthenticationStatus"]').val();if(authenticationStatus=='2')
{var username=self.elLoginControls.find('input[id$="hdnUsername"]').val();var isAdmin=self.elLoginControls.find('input[id$="hdnIsAdmin"]').val();var action=self.elLoginControls.find('input[id$="hdnAction"]').val();var target=self.elLoginControls.find('input[id$="hdnTarget"]').val();self.loggedIn("True");self.validator.resetForm();self.elLoginBox.find('input').placeholder();self.elLoginControls.hide();self.elUserInformation.show();self.elSignupControls.hide();self.elLoggedInUser.text(username);self.elLoggedInUser.bind('click',function()
{moveAlong('qAccount.aspx');});self.elMyProjectsBtn.text(globRes.Common_Js_My_Projects);self.elMyProjectsBtn.show();if(isAdmin=="True")
{self.elAdministration.show();self.elAdministration.text(globRes.Common_Js_Administration);}
else
self.elAdministration.hide();if(self.callbackFunction!=null)
{setTimeout(self.callbackFunction,50);self.callbackFunction=null;}}
else
{var txt=globRes.Login_Js_Error_Message_Invalid_Account;switch(authenticationStatus)
{case'':txt='';break;case'3':txt=globRes.Login_Js_Error_Message_Invalid_Password;self.elPassword.val('').focus();break;case'0':case'4':case'5':case'6':default:txt=globRes.Login_Js_Error_Message_Invalid_Account;self.elUserName.val('').focus();self.elPassword.val('');break;}
self.init();$('span#loginMessage').text(txt);}},cbLoginError:function(sender,args)
{},placeError:function(error,element)
{var self=this;self.elMessages.append(error);},dealWithValidationError:function(error,element)
{var self=this;var elId=element.attr('id');if(elId.indexOf('Login')>-1||elId.indexOf('Signup')>-1)
{self.placeError(error,element);return true;}
return false;},showLoginMessage:function(targetElement)
{var self=this;var element=$('<div />');element.addClass('mustLoginMessage');element.html('You must first log in to continue');QT.Common.showElement(targetElement,element);}};function cbLogin_Complete(sender,args)
{deleteCookie('editProject');login.cbLoginComplete(sender,args);}
function cbLogin_Error(sender,args)
{login.cbLoginError(sender,args);}
