﻿var ssa = Sys.Services.AuthenticationService;var numb = '0123456789';var lwr = 'abcdefghijklmnopqrstuvwxyz';var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';var space = ' ';var special = ',.!@&~$%';var email = '@.';
function pageLoad() {callMaster();}
function callMaster(){if (ssa.get_isLoggedIn() === false) {$get("LoginDiv").className = 'LoginDivClass';$get("LogoutDiv").className = 'LoginDivClass Hide';}else {$get("LoginDiv").className = 'LoginDivClass Hide';$get("LogoutDiv").className = 'LoginDivClass';}$addHandler($get('RegisterSubmitButton'), 'click', closeRegisterPopUp);$addHandler($get('LoginSubmitButton'), 'click', closeLoginPopUp);}
function hideLoginControl() {$get("LoginDiv").className = 'LoginDivClass Hide';$get("LogoutDiv").className = 'LoginDivClass Hide';}
function closePopUp() {$find('ModalPopUp').hide();}
function openPopUp() {$find('ModalPopUp').show();}
function openLoginPopUp() {var login = $get("Login");login.className = 'LoginControl';$get('LoginUserName').className = '';$get('LoginUserPassword').className = '';$find('LoginPopUpExtender').show();$get('LoginUserName').focus();}
function openRegisterPopUp() { var login = $get("Register"); login.className = 'RegisterControl'; $get('RegisterUserName').className = ''; $get('RegisterUserPassword').className = ''; $get('RegisterUserPasswordConfirm').className = ''; $find('RegisterPopUpExtender').show(); if ($get('RegistrationProcess').className === "") { $get('RegisterUserName').focus(); } }
function closeLoginPopUp() {$get('LoginErrorMessage').className = 'Hide';openWaitImage();$removeHandler($get('LoginSubmitButton'), 'click', closeLoginPopUp);var flag = 0;var message = '';var loginName = $get('LoginUserName').value.trim();var loginPassword = $get('LoginUserPassword').value.trim();if (loginName.length === 0) {message = '\n- Please specify a Login Name';$get('LoginUserName').className = 'Required';flag = 1;}else{$get('LoginUserName').className = '';}if (!isEmail(loginName)) {$get('LoginUserName').className = "Required";message = message + '\n- Please enter a Valid Email Address';flag = 1;}else {if ($get('LoginUserName').className != 'Required'){ $get('LoginUserName').className = ''; }}if (loginPassword.length === 0) {message = message + '\n- Please specify a Password';$get('LoginUserPassword').className = 'Required';flag = 1;}else{$get('LoginUserPassword').className = '';}if (flag === 0) {var rememberMe = $get("RememberMe").checked;$get('LoginUserName').className = '';$get('LoginUserPassword').className = '';ssa.login(loginName, loginPassword, rememberMe, null, null, loginHandler, errorHandler);}else{$get('LoginErrorMessage').className = 'ErrorMessage';$get('LoginErrorMessage').innerHTML = "<br /><span class='BoldText'> Error:</span><br />" + message.replace(/\n/g, '<br />') + " <br />";alert(message);if($get('LoginUserPassword').className == 'Required'){ $get('LoginUserPassword').focus();}if($get('LoginUserName').className == 'Required'){ $get('LoginUserName').focus();}closeWaitImage();$addHandler($get('LoginSubmitButton'), 'click', closeLoginPopUp);return;}}
function loginHandler() {var loggedIn = ssa.get_isLoggedIn();if (loggedIn) {$find('LoginPopUpExtender').hide();var login = $get("Login");login.className = 'LoginControl Hide';$get("LoginDiv").className = 'LoginDivClass Hide';$get("LogoutDiv").className = 'LoginDivClass';location.reload(true);}else {alert("Invalid Email/Password");$get('LoginErrorMessage').className = 'ErrorMessage';$get('LoginErrorMessage').innerHTML = '<br /><span class="BoldText">Error:</span><br /> Invalid Email/Password. Please try again.<br /><br />';}closeWaitImage();$addHandler($get('LoginSubmitButton'), 'click', closeLoginPopUp);}
function errorHandler(result, userContext, method) { alert("Login failed due to exception: " + result.get_message() + " on method " + method); closeWaitImage(); $addHandler($get('LoginSubmitButton'), 'click', closeLoginPopUp); }
function closeRegisterPopUp() 
{
   openWaitImage();
   $removeHandler($get('RegisterSubmitButton'), 'click', closeRegisterPopUp);
   var flag = 0;
   var message = '';
   var registerName = $get('RegisterUserName').value.trim();
   var registerPassword = $get('RegisterUserPassword').value.trim();
   var registerPasswordConfirm = $get('RegisterUserPasswordConfirm').value.trim();
   if (registerName.length === 0) 
   {
      message = message + '\n- Please specify your Email';
      $get('RegisterUserName').className = 'Required'; flag = 1;
   }
   else 
   {
       $get('RegisterUserName').className = '';
   }
   if (!isEmail(registerName)) 
   {
     $get('RegisterUserName').className = "Required";
     message = message + '\n- Please enter a Valid Email Address';
     flag = 1;
   }
   else 
   {
      if ($get('RegisterUserName').className != 'Required') 
      {
          $get('RegisterUserName').className = '';
      }
   }
   if (registerPassword.length === 0) 
   {
     message = message + '\n- Please specify a Password';
     $get('RegisterUserPassword').className = 'Required';
     flag = 1;
   }
   else
   { $get('RegisterUserPassword').className = ''; }
   if (registerPassword.length < 5 && registerPassword.length != 0)
   { message = message + '\n- Password should be 5 or more characters'; $get('RegisterUserPassword').className = 'Required'; flag = 1; }
   else
   { if ($get('RegisterUserPassword').className != 'Required') { $get('RegisterUserPassword').className = ''; } }
   if (registerPasswordConfirm.length === 0)
   { message = message + '\n- Please specify a Confirm Password'; $get('RegisterUserPasswordConfirm').className = 'Required'; flag = 1; }
   else { $get('RegisterUserPasswordConfirm').className = ''; }
   if (registerPasswordConfirm != registerPassword)
   { message = message + '\n- Password & Confirm Password fields should match'; $get('RegisterUserPasswordConfirm').className = 'Required'; flag = 1; }
   else { if ($get('RegisterUserPasswordConfirm').className != 'Required') { $get('RegisterUserPasswordConfirm').className = ''; } }
   if (flag === 0) 
   {
     $get('RegisterUserName').className = '';
     $get('RegisterUserPassword').className = '';
     $get('RegisterUserPasswordConfirm').className = '';
     $get('MasterErrorMessage').className = 'Hide';
     UserRegistration.Register(registerName, registerPassword, registerPasswordConfirm, OnRequestComplete, OnError); return;
   }
   else 
   {
      $get('MasterErrorMessage').className = 'ErrorMessage';
      $get('MasterErrorMessage').innerHTML = "<br /><span class='BoldText'> Error:</span><br />" + message.replace(/\n/g, '<br />') + " <br />";
      alert(message);
      if ($get('RegisterUserPasswordConfirm').className == 'Required') 
      {
          $get('RegisterUserPasswordConfirm').focus();
      }
      if ($get('RegisterUserPassword').className == 'Required') 
      {
          $get('RegisterUserPassword').focus();
      }
      if ($get('RegisterUserName').className == 'Required')
      { $get('RegisterUserName').focus(); } closeWaitImage(); $addHandler($get('RegisterSubmitButton'), 'click', closeRegisterPopUp); return;
  }
}
function OnRequestComplete(result) 
{
   if (result.substring(0, 1) == "E") 
   {
     $get('MasterErrorMessage').className = 'ErrorMessage';
     result = result.replace('Error:', '<span class="BoldText">Error:</span>');
     $get('MasterErrorMessage').innerHTML = '<br />' + result.replace(/\n/g, '<br />') + '<br />';
     alert(result);
   }
   else 
   {
       $get('MasterErrorMessage').className = 'Hide';
       $addHandler($get('RegisterSubmitButton'), 'click', closeRegisterPopUp);
       $get('RegistrationProcess').className = "Hide";
       $get('RegistrationComplete').className = "";
   }
   closeWaitImage();   
}
function OnError(result) 
{
  $get('MasterErrorMessage').className = 'ErrorMessage';
  $get('MasterErrorMessage').innerHTML = '<br /><span class="BoldText">Error:</span><br />' + (result.get_message()).replace(/\n/g, '<br />') + '<br />';
  alert('Error: ' + result.get_message());
  $addHandler($get('RegisterSubmitButton'), 'click', closeRegisterPopUp); closeWaitImage();
}
function cancelLogin() {$find('LoginPopUpExtender').hide();var login = $get("Login");login.className = 'LoginControl Hide';closeWaitImage();}
function cancelRegister() {$find('RegisterPopUpExtender').hide();var login = $get("Register");login.className = 'RegisterControl Hide';closeWaitImage();}
function closeRegister() {$find('RegisterPopUpExtender').hide();var login = $get("Register");login.className = 'RegisterControl Hide';closeWaitImage();}
function logOut() {openWaitImage();ssa.logout(null, onLogoutComplete, onLogoutFailure, null);}
function onLogoutComplete() {closeWaitImage();if (ssa.get_isLoggedIn() === false) {$get("LoginDiv").className = 'LoginDivClass';$get("LogoutDiv").className = 'LoginDivClass Hide';}location.reload(true);return true;}
function onLogoutFailure() {alert("There was an Error while Logging you out.\nPlease try again later");closeWaitImage();if (ssa.get_isLoggedIn() === false) {$get("LoginDiv").className = 'LoginDivClass';$get("LogoutDiv").className = 'LoginDivClass Hide';}return true;}
function openWaitImage() {$get('ContainerWaitImage').className = '';$find('BehaviourWaitImage').show();}
function closeWaitImage() {$get('ContainerWaitImage').className = 'Hide';$find('BehaviourWaitImage').hide();}
function isValid(parm, val) {if (parm == "") return true;for (i = 0; i < parm.length; i++) {if (val.indexOf(parm.charAt(i), 0) == -1) return false;}return true;}
function isNumber(parm) { return isValid(parm, numb); }
function isLower(parm) { return isValid(parm, lwr); }
function isUpper(parm) { return isValid(parm, upr); }
function isAlpha(parm) { return isValid(parm, lwr + upr); }
function isName(parm) { return isValid(parm, lwr + upr+". '"); }
function isAlphaNum(parm) { return isValid(parm, lwr + upr + numb); }
function isDecimal(parm) { return isValid(parm, numb + '.'); }
function isAlphaSpace(parm) { return isValid(parm, lwr + upr + space); }
function isAlphaSpaceNum(parm) { return isValid(parm, lwr + upr + numb + space); }
function isAlphaSpaceNumSpecial(parm) { return isValid(parm, lwr + upr + numb + space + special); }
function isEmail(parm) {if (parm == "") return true;var email = "@.";var z;for (z = 0; z < email.length; z++) {if (parm.indexOf(email.charAt(z), 0) == -1) return false;}if (parm.indexOf('.', parm.indexOf('@')) == -1) return false;if ((parm.length - parm.indexOf('@')) < 5) return false;if (parm.length - (parm.indexOf('.', parm.indexOf('@'))) < 3) return false;return true;}
function stripBlanks(fld) {var result = "";var c = 0;for (i = 0; i < fld.length; i++) {if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);if (fld.charAt(i) != " ")c = result.length;}}return result.substr(0, c);}
function oneOnly(parm, chr, must) {var atPos = parm.indexOf(chr, 0);if (atPos == -1) { return !must; }if (parm.indexOf(chr, atPos + 1) > -1) { return false; }return true;}
function adjacent(parm, chrs) {return (parm.indexOf(chrs, 0) != -1);}
function onlyAdjacent(parm, comb, chrs) {var a = parm.split(comb);var b = a.join('');for (i = 0; i < parm.length; i++) {if (val.indexOf(parm.charAt(i), 0) != -1) return false;}return true;}
function setOrder(parm, first, second) {var pos1 = parmField.indexOf(first, 0);if (pos1 == -1) return false; // first char not found
    var pos2 = parmField.indexOf(second, pos1 + 1);if (pos2 == -1) return false; // second char doesn't follow first
    return true;}
function setDistance(parm, first, last, min, max) {var pos1 = first == '' ? 0 :parmField.indexOf(first, 0);var pos2 = last == '' ? parmField.length - pos1 - 1 :parmField.indexOf(second, pos1 + 1);if (pos1 == -1) return false;if (pos2 < min || pos2 > max) return false;return true;}
function endOption(fld, val) {return fld.substring(fld.lastIndexOf(val)) == val;}


