﻿// Constants
var DEBUG = false;

// Global Variables
var userNameFieldId = "ctl00_liLogin_UserName";
var passwordFieldId = "ctl00_liLogin_Password";
var rememberMeFieldId = "ctl00_liLogin_RememberMe";
var buttonId = "ctl00_liLogin_Login_LinkButton";

var shownElement;
  
function onPageLoad()
{
  if (loginBoxShown()) {
    addEventHandlersToLoginBox();
    focusLoginBox();
  }
  var ddlReferral = document.getElementById("ctl00_cphContent_ddlReferral");
  if (ddlReferral != null) {
    document.getElementById("ctl00_cphContent_ddlReferral").onchange = referralChanged;
  }
}

function loginBoxShown()
{
  if (document.getElementById(userNameFieldId) != null &&
    document.getElementById(passwordFieldId) != null) {
    return true;
  } else {
    userNameFieldId = "liLogin_UserName";
    passwordFieldId = "liLogin_Password";
    rememberMeFieldId = "liLogin_RememberMe";
    buttonId = "liLogin_Login_LinkButton";

    return (document.getElementById(userNameFieldId) != null &&
      document.getElementById(passwordFieldId) != null);
  }
}

function focusLoginBox()
{
  document.getElementById(userNameFieldId).focus();
}

function addEventHandlersToLoginBox()
{
  document.getElementById(userNameFieldId).onkeydown = loginBoxFields_onKeyDown;
  document.getElementById(passwordFieldId).onkeydown = loginBoxFields_onKeyDown;
  document.getElementById(rememberMeFieldId).onkeydown = loginBoxFields_onKeyDown;
}

function loginBoxFields_onKeyDown(e)
{
  var key = 0;
  if (e == null) {
    key = window.event.keyCode;
  } else {
    key = e.which;
  }
  if (key == 13) {
    var action = document.getElementById(buttonId).href;
    action = action.replace("javascript:", "").replace(/%20/g, " ");
    eval(action);
  }
}

function showChildMenu(strParentId)
{
  if (shownElement != null) {
    shownElement.style.display = "none";
  }
  
  var parentId = strParentId.replace(/\$/g, "_");
  var parentLink = document.getElementById(parentId);
  var divToShow = parentLink.nextSibling.nextSibling;
  
  if (divToShow.style.display == "block") { return; }
  
  var divToControl = parentLink.parentNode.parentNode;
  assert(divToShow.nodeType == 1, "divToShow is not ELEMENT_NODE");
  assert(divToControl.nodeType == 1, "divToControl is not ELEMENT_NODE");
  assert(divToShow.nodeName == "DIV", "divToShow is not <div>");
  assert(divToControl.nodeName == "DIV", "divToControl is not <div>");
  
  shownElement = divToShow;
  
  hideDiv = function(e)
  {
    var target = (e != null) ? e.target : window.event.srcElement;
    if (target == divToControl) {
      shownElement.style.display = "none";
    }
  }
  
  shownElement.style.display = "block";
  divToControl.onmouseout = hideDiv;
}

function referralChanged()
{
  if (this.value == "-1") {
    document.getElementById("ctl00_cphContent_txtReferral").style.display = "inline";
  } else {
    document.getElementById("ctl00_cphContent_txtReferral").style.display = "none";
  }
}

// assert
function assert(bExpression, strMessage, strDetails) {
  if (DEBUG) {
    if (!bExpression) {
      var message = "Assert triggered!";
      if (strMessage != null) {
        message += "\r\n\r\n" + strMessage;
        
        if (strDetails != null) {
          message += "\r\n\r\nDetails:\r\n" + strDetails;
        }
      }
      
      alert(message);
    }
  }
}


function hideDocElement(strElementId)
{
  if (document.getElementById(strElementId))
  {
    document.getElementById(strElementId).style.visibility = "hidden"; 
	  document.getElementById(strElementId).style.display = "none";  
  }
}

function showDocElement(strElementId)
{
  if (document.getElementById(strElementId))
  {
    document.getElementById(strElementId).style.visibility = "visible"; 
	  document.getElementById(strElementId).style.display = "";  
  }
}