﻿
$telerik.$(document).ready(onLoaded);
// upon page load set focus to tbuserid
function onLoaded(e) {
    var capacityControl = $telerik.$("[id$=ddlCapacity]").get(0);
    capacityControl.focus();
}

function selectUserType() {
        var idTypeControl = $telerik.$("[id$=ddlCapacity]").get(0);
        var idType = "";
        if (idTypeControl.selectedIndex > -1) {
            idType = idTypeControl.options[idTypeControl.selectedIndex].value;
        }
        ShowMasterNotificationPopup();
        PageMethod("GetUserIdentificationRequirements", ["userTypeCodeId", idType], OnSelectUserType); 
        return false;
}
function OnSelectUserType(result) {
        HideMasterNotificationPopup();
        if (result != null && result != "") {
            var identificationCode = eval("(" + result.d + ")");
            var labelIdRequirementsControl = $telerik.$("[id$=lblIdRequirements]").get(0);

            if (identificationCode != null) {
                if (identificationCode.Description != null && identificationCode.Description != "") {
                    SetIdControlDisabledAttribute(false)
                    if (identificationCode.Code == "1") {
                        var serverVariables = new ServerVariables();
                        DefaultIdState(serverVariables.getValueByKey("defaultState"));
                    }
                    labelIdRequirementsControl.innerHTML = "You must provide " + identificationCode.Description;
                }
                else {
                    SetIdControlDisabledAttribute(true)
                    labelIdRequirementsControl.innerHTML = "";
                }
            }
        }
}

    function SetIdControlDisabledAttribute(disabledValue ) {
        var idStateControl = $telerik.$("[id$=ddlIDStates]").get(0);
        var idNumberLabelControl = $telerik.$("[id$=lblIDNumber]").get(0);
        var idStateLabelControl = $telerik.$("[id$=lblIDState]").get(0);
        
        var idNumberControl = $telerik.$("[id$=tbIDNumber_text]").get(0);
        var idNumberWrapperControl = $telerik.$("[id$=tbIDNumber_wrapper]").get(0);
        var idNumberValueControl = $telerik.$("[id$=tbIDNumber_Value]").get(0);
        
        // clear the rad class and use our own
        idNumberWrapperControl.setAttribute("class", "textbox");
        idNumberWrapperControl.setAttribute("className", "textbox");
        idNumberControl.setAttribute("class", "textbox");
        idNumberControl.setAttribute("className", "textbox");
        
        idStateControl.disabled = disabledValue;
        idNumberLabelControl.disabled = disabledValue;
        idStateLabelControl.disabled = disabledValue;
        idNumberControl.disabled = disabledValue;
        if (disabledValue == true) {
            // clear any entered value
            idNumberControl.value = "";
            idNumberValueControl.value = "";
        }


    }

    function DefaultIdState(defaultState) {
        var idStateControl = $telerik.$("[id$=ddlIDStates]").get(0);
        for (i = 0; i < idStateControl.length; i++) {
            if (idStateControl.options[i].value == defaultState) {
                idStateControl.selectedIndex = i;
                break;
            }
        }

    }

function validateAndSubmit() {
    // Do client side validations
  var pageValidator = new PageValidator();  
  pageValidator.checkRequiredListValue("ddlCapacity", "Role is required.");
  pageValidator.checkRequiredFiedValue("tbUserID", "User Name is required.");
  pageValidator.checkRequiredFiedValue("tbPassword", "Password is required.");
  pageValidator.checkRequiredFiedValue("tbPassword2", "Re-enter Password is required.");
  pageValidator.checkRequiredListValue("ddlSecurityQuestion", "Security Question is required.");
  pageValidator.checkRequiredFiedValue("tbSecurityAnswer", "Security Answer is required.");
  pageValidator.checkRequiredFiedValue("tbFirstName", "First Name is required.");
  pageValidator.checkRequiredFiedValue("tbLastName", "Last Name is required.");
  pageValidator.checkRequiredFiedValue("tbPrimaryEmail", "Primary Email is required.");
  pageValidator.checkEmailAddressFieldValue("tbPrimaryEmail", "Invalid Primary Email Address.");
  pageValidator.checkEmailAddressFieldValue("tbAlternateEmail1", "Invalid Alternate Email Address.");
  pageValidator.checkEmailAddressFieldValue("tbAlternateEmail2", "Invalid Alternate Email Address.");

  // Make sure passwords match
  var passwordControl = $telerik.$("[id$=tbPassword]").get(0);
  var reenterPasswordControl = $telerik.$("[id$=tbPassword2]").get(0);
  var password = passwordControl.value.trim();
  var passwordr = reenterPasswordControl.value.trim();
  if (password != passwordr) { pageValidator.addError("Passwords do not match.", passwordControl); }
  if (pageValidator.getNumberofErrors() > 0) {
      pageValidator.showErrors();
  }
  else {
      var loginName = $telerik.$("[id$=tbUserID]").get(0).value;
      var loginPassword = $telerik.$("[id$=tbPassword]").get(0).value;
      var capacityControl = $telerik.$("[id$=ddlCapacity]").get(0);
      var userType = capacityControl.options[capacityControl.selectedIndex].value;
      var idState = "";
      var idStateControl = $telerik.$("[id$=ddlIDStates]").get(0);
      if (idStateControl.selectedIndex > -1) {
          idState = idStateControl.options[idStateControl.selectedIndex].value;
      }
      var idNumber = $telerik.$("[id$=tbIDNumber]").get(0).value; ;
      var lastName = $telerik.$("[id$=tbLastName]").get(0).value;
      var firstName = $telerik.$("[id$=tbFirstName]").get(0).value;
      ShowMasterNotificationPopup();
      PageMethod("ValidateRegistrationData", ["logonName", loginName, "password", loginPassword , "userTypeCodeId", userType, "idState", idState, "idNumber", idNumber, "lastName", lastName, "firstName", firstName], ValidateRegistrationDatacallback);
  }
 return (false);
}

function ValidateRegistrationDatacallback(result) {
    HideMasterNotificationPopup();
    var validationResponse = eval("(" + result.d + ")");
    if (validationResponse != null) {
        var pageValidator = new PageValidator();
        // if id is invalid enbale id controls just in case
        if (validationResponse.DataFiledToSetFocus == "ddlIDStates" || validationResponse.DataFiledToSetFocus == "tbIDNumber_text") {
            SetIdControlDisabledAttribute(false)
        }
        pageValidator.setValidationResponse(validationResponse);
        if (validationResponse.DataValid) {
            var submitData = true;
            if (validationResponse.Warnings.length > 0) {
                var submitData = pageValidator.showWarnings("\n\nSelect cancel  to correct the information.\n\nSelect ok to submit registration information anyway. User will be added with pending verification status.\n");
            }
            if (submitData) {
                var registerButton = $telerik.$("[id$=btnSubmit]").get(0);
                __doPostBack(registerButton.id);
            }

        }
        else { pageValidator.showErrors(); }
    }
    return (false);
}
