// Copyright 2009, BMT Defence Services Ltd, All rights reserved.
var omLoginNewUser;
function pageLoad(){globalWinLoad();if(window.parent){if(window.parent.location.href!=window.location.href){window.top.location=document.location.href;return;}}bmtAjaxSetDataService("LoginService");if(bmGlobalFirefoxBrowser){document.getElementById("txtUsername_txtTextbox").onKeyPress=function(){loginKeyPress(event);};document.getElementById("txtPassword_txtTextbox").onKeyPress=function(){loginKeyPress(event);};}else{document.getElementById("txtUsername_txtTextbox").onkeypress=function(){loginKeyPress(event);};document.getElementById("txtPassword_txtTextbox").onkeypress=function(){loginKeyPress(event);};}$addHandler(document.getElementById("btnLogin"),"click",login);omLoginNewUser=new Entity(EntityType.User,-1,"New User",null,"divLogin","trClientValidation","lblClientValidation");omLoginNewUser.Bind("txtNewUserFirstName","FirstName","lblNewUserFirstName");omLoginNewUser.Bind("txtNewUserLastName","LastName","lblNewUserLastName");omLoginNewUser.Bind("txtNewUserOrganisation","Organisation","lblNewUserOrganisation");omLoginNewUser.Bind("txtNewUserEmail","Email","lblNewUserEmail");omLoginNewUser.Bind("txtNewUserTelephone","Telephone","lblNewUserTelephone");omLoginNewUser.Bind("txtNewUserName","Username","lblNewUserName");omLoginNewUser.Bind("txtNewUserPassword","Password","lblNewUserPassword");omLoginNewUser.Bind("txtNewUserPasswordConfirm","PasswordConfirm","lblNewUserPasswordConfirm");$addHandler(document.getElementById("aNewUserLink"),"click",function(){loginNewUserRequest();});$addHandler(document.getElementById("btnCancelNewUser"),"click",function(){loginNewUserCancelled();});$addHandler(document.getElementById("btnSaveNewUser"),"click",function(){loginNewUserSubmitted();});$addHandler(document.getElementById("aLogout"),"click",function(){defaultLogout();});messageScreenHide(document.getElementById("divLogin"));document.getElementById("divLogin").style.display="block";if(document.getElementById("hidShowLoggedIn").value=="true")loginShowLoggedIn();bmtAjaxSetupNonAjax();}
function loginKeyPress(oEvent){var keynum;if(window.event){keynum=oEvent.keyCode;}else if(oEvent.which){keynum=oEvent.which;}if(keynum==13)login();}
function login(){if(loginValidate()){var opObject=new Object();opObject.UserName=document.getElementById("txtUsername_txtTextbox").value;opObject.Password=document.getElementById("txtPassword_txtTextbox").value;opObject.createPersistentCookie=false;bmtAjaxDataService("Login",opObject,loginResponse);}document.getElementById("trLoginCreated").style.display="none";}
function loginValidate(){var bpResult=true;if(document.getElementById("txtUsername_txtTextbox").value==""){document.getElementById("lblLoginMessage").innerHTML="Please enter a user name.";document.getElementById("lblLoginMessage").className="errorVisible";bpResult=false;}else if(document.getElementById("txtPassword_txtTextbox").value==""){document.getElementById("lblLoginMessage").innerHTML="Please enter a password.";document.getElementById("lblLoginMessage").className="errorVisible";bpResult=false;}return bpResult;}
function loginResponse(oUser){var opDivLogin=document.getElementById("divLogin");if(oUser.ResultStatus){alert(oUser.Description);}else{if(oUser.Result.ResultStatus==ResultStatus.Success){if(oUser.Approved==0){loginClearControls();document.getElementById("lblLoginMessage").innerHTML="The account is awaiting approval.";controlSetFocus("txtUsername");document.getElementById("lblLoginMessage").className="errorVisible";}else{if(document.frmMain.hidRedirect.value==""){window.location="Default.aspx";loginShowLoggedIn();}else window.location=document.frmMain.hidRedirect.value;}}else if(oUser.Result.ResultStatus==ResultStatus.RecordNotFound){loginClearControls();document.getElementById("lblLoginMessage").innerHTML="The username and password could not be recognised.";controlSetFocus("txtUsername");document.getElementById("lblLoginMessage").className="errorVisible";}}}
function loginNewUserSubmitted(){var bpValidDetails=omLoginNewUser.Validate(document.getElementById("trNewLogin"));if(bpValidDetails){var zpPasswordA=controlGetValue("txtNewUserPasswordConfirm");var zpPasswordB=controlGetValue("txtNewUserPassword");var zpEmail=controlGetValue("txtNewUserEmail");if(zpPasswordA!=zpPasswordB){controlAddValidation("The Password and Confirmation Password must match.");bpValidDetails=false;}else{if(zpPasswordA.length<6){controlAddValidation("The Password must be at least 6 characters long.");bpValidDetails=false;}}if(validEmail(document.getElementById("txtNewUserEmail_txtTextbox").value)==false){controlAddValidation("Please enter a valid Email.");bpValidDetails=false;}if(!bpValidDetails){document.getElementById("trClientValidation").style.display="block";document.getElementById("divLogin").scrollTop=0;}else{omLoginNewUser.Password=controlGetValue("txtNewUserPassword");bmtAjaxDataService("UserNewUserSave",omLoginNewUser.Save(),loginNewUserSubmittedResponse);}}}
function loginNewUserSubmittedResponse(oResult){switch(oResult.ResultStatus){case ResultStatus.Success:document.getElementById("trLoginCreated").style.display="block";loginNewUserCancelled();loginClearControls();document.getElementById("trLogin").style.display="none";messageScreenHide($get("divLogin"));break;case ResultStatus.UnexpectedError:alert(oResult.Description);break;case ResultStatus.ValidationFailed:for(var lpLoop=0;lpLoop<oResult.Failures.length;lpLoop++){controlAddValidation(oResult.Failures[lpLoop]);}document.getElementById("trClientValidation").style.display="block";break;case ResultStatus.GeneralFail:controlAddValidation(oResult.Description);document.getElementById("trClientValidation").style.display="block";messageScreenHide($get("divLogin"));break;}}
function loginNewUserCancelled(){document.getElementById("trLogin").style.display="block";document.getElementById("trNewLogin").style.display="none";loginClearControls();controlSetFocus("txtUsername");}
function loginClearControls(){document.getElementById("lblLoginMessage").innerHTML="";document.getElementById("lblLoginMessage").className="errorNotVisible";document.getElementById("txtUsername_txtTextbox").value="";document.getElementById("txtPassword_txtTextbox").value="";controlSetFocus("txtUsername");}
function newloginClearControls(){document.getElementById("txtNewUserFirstName_txtTextbox").value="";document.getElementById("txtNewUserLastName_txtTextbox").value="";document.getElementById("txtNewUserEmail_txtTextbox").value="";document.getElementById("txtNewUserName_txtTextbox").value="";document.getElementById("txtNewUserPassword_txtTextbox").value="";document.getElementById("txtNewUserPasswordConfirm_txtTextbox").value="";document.getElementById("trClientValidation").style.display="none";controlSetFocus("txtNewUserFirstName");}
function loginShowLogin(){document.getElementById("trLoggedIn").style.display="none";document.getElementById("trNewLogin").style.display="none";document.getElementById("trLogin").style.display="block";controlSetFocus("txtUsername");}
function loginShowLoggedIn(){document.getElementById("trLoggedIn").style.display="block";document.getElementById("trLogin").style.display="none";document.getElementById("lblLoginHeader").innerHTML="Logout";}
function loginNewUserRequest(){document.getElementById("trLogin").style.display="none";document.getElementById("trNewLogin").style.display="block";document.getElementById("trLoginCreated").style.display="none";newloginClearControls();controlSetFocus("txtNewUserFirstName");}
function defaultLogout(oEvent){if(controlNavigateCheck(window)){window.location="Logout.aspx";}}
function validEmail(inVar){email=inVar
invalidChars=" /:,;"
if(email==""){return true}for(n=0;n<invalidChars.length;n++){badChar=invalidChars.charAt(n)
if(email.indexOf(badChar,0)>-1){return false}}atPos=email.indexOf("@",1)
if(atPos==-1){return false}if(email.indexOf("@",atPos+1)!=-1){return false}periodPos=email.indexOf(".",atPos+2)
if(periodPos==-1){return false}if(periodPos+3>email.length){return false}return true}
function messageScreenShow(MessageScreenType,messageText,oElement){if(MessageScreenType==2){document.getElementById("divLoginMessageScreen").style.display="block";document.getElementById("divLoginMessageScreen").innerHTML=messageText;oElement.style.display="none";}else{document.getElementById("divLoginMessageScreen").style.display="block";document.getElementById("divLoginMessageScreen").innerHTML=messageText;oElement.style.display="none";}}
function messageScreenHide(oElement){document.getElementById("divLoginMessageScreen").style.display="none";if(oElement)oElement.style.display="block";}
