﻿var body_text_max = 11;
var head_text_max = 1.5;
var body_text_min = 9;
var head_text_min = 1.3;
var body_text_unit = "pt";
var head_text_unit = "em";
var faq_count = 0;
var faq_id = "faq";
var faq_showstyle = "block";
var faq_hidestyle = "none";

var fonts = new Array();
fonts[10] = 1.1;
fonts[11] = 1.2;
fonts[12] = 1.3;

function inc() {

}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function () {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function checkByClassName() {
  if (document.getElementsByClassName == undefined) {
    document.getElementsByClassName = function (className) {
      var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
      var allElements = document.getElementsByTagName("*");
      var results = [];

      var element;
      for (var i = 0; (element = allElements[i]) != null; i++) {
        var elementClass = element.className;
        if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
          results.push(element);
      }

      return results;
    }
  }
}

/* Preferences */
function loadPrefs() {
  var col, d = new Date();

  var fontSize = readCookie("fontSize");
  var elID = readCookie("defEl");
  var el = document.body;

  if (elID != null && elID != "") el = document.getElementById(elID);

  if (fontSize != null && fontSize != "")
    el.style.fontSize = fontSize + body_text_unit;
}

/* Text Sizing Functions */
function resizeText(m, elID) {
  var el;

  if (elID === undefined) el = document.body;
  else el = document.getElementById(elID);

  if (el.style.fontSize == "") el.style.fontSize = body_text_min + body_text_unit;
  var fontSize = parseFloat(el.style.fontSize) + m;

  if (fontSize >= body_text_min && fontSize <= body_text_max) {
    el.style.fontSize = fontSize + body_text_unit;
    createCookie("fontSize", fontSize, 90);
    createCookie("defEl", elID, 90);
  }
}

function resetText(elID) {
  var el;

  if (elID === undefined) el = document.body;
  else el = document.getElementById(elID);

  el.style.fontSize = body_text_min + body_text_unit;
  createCookie("fontSize", body_text_min, 90);
  createCookie("defEl", elID, 90);
}


function resizeContent(m) {
  resizeText(m, "pgContent");
}

/* Query string argument capture */
function getArgs() {
  var args = new Object();
  var query = location.search.substring(1);
  var pairs = query.split("&");
  for (var i = 0; i < pairs.length; i++) {
    var pos = pairs[i].indexOf('=');
    if (pos == -1) continue;
    var argname = pairs[i].substring(0, pos);
    var value = pairs[i].substring(pos + 1);
    args[argname] = unescape(value);
  }
  return args;
}

/* Cookie functions */
function createCookie(name, value, days) {
  var expries;
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
  }
  else expires = "";
  document.cookie = name + "=" + value + expires + "; path=/;";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}

function eraseCookie(name) {
  createCookie(name, "", -1);
}

function showAnswer(id) {
  hideAllAnswers();
  show(faq_id + id);
}

function show(id) {
  document.getElementById(id).style.display = faq_showstyle;
}

function hide(id) {
  document.getElementById(id).style.display = faq_hidestyle;
}

function hideAllAnswers() {
  for (i = 1; i <= faq_count; i++) {
    hide(faq_id + i);
  }
}

function checkContact() {
  var isTelephone = document.getElementById("MainContent_rblContact_0").checked;

  document.getElementById("MainContent_rwTelephone").style.display = (isTelephone) ? "" : "none";
  document.getElementById("MainContent_rwEmail").style.display = (!isTelephone) ? "" : "none";
}

function logGAEvent(_category, _action, _label, _value) {
  _gaq.push(['_trackEvent', _category, _action, _label, _value]);
}

/* Intercept ASP.Net Hover Events */
var fw_Menu_HoverDynamic;
var fw_Menu_Unhover;
var fw_Menu_HoverStatic;
var currPrnt, prevPrnt;

function SetupInterceptors() {
  fw_Menu_HoverStatic = Menu_HoverStatic;
  Menu_HoverStatic = _Menu_HoverStatic;

  fw_Menu_HoverDynamic = Menu_HoverDynamic;
  Menu_HoverDynamic = _Menu_HoverDynamic;

  fw_Menu_Unhover = Menu_Unhover;
  Menu_Unhover = _Menu_Unhover;
}

function _Menu_HoverStatic(item) {
  fw_Menu_HoverStatic(item);

  /* Resize Sub Menus */
  var x = document.getElementById(item.id + "Items");
  if (x != null) {

    cleanWhitespace(x); // Remove empty nodes to accomodate IE
    x.style.minWidth = (item.childNodes[0].offsetWidth) + "px";
    x.childNodes[0].style.width = (item.childNodes[0].offsetWidth) + "px"; // Set child width (100% does not work in IE 7)

    var firstEl = x.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0]; // First Drop Down Menu Item
    firstEl.className = firstEl.className + " mnMnuDItemFrst";

    /*
    // Shadow code removed -- buggy with IE
    if ($(x).shadowId() == null)
      $(x).dropShadow({
        color: "#555",
        left: 0,
      });
    else $(x).redrawShadow();
    */
  }

  /*
  if (prevPrnt != item.id) {
    var pp = document.getElementById(prevPrnt + "Items");
    $(pp).removeShadow();
  }
  */
}

function _Menu_HoverDynamic(item) {
  fw_Menu_HoverDynamic(item);

  var x = Menu_FindParentItem(item);
  if(x && x.tagName.toLowerCase() != "body") FireEvent(x,"onmouseover");
}

function _Menu_Unhover(item) {
  fw_Menu_Unhover(item);

  /*
  // Shadow code removed -- buggy with IE
  if (prevPrnt != item.id) {
    var pp = document.getElementById(prevPrnt + "Items");
    $(pp).removeShadow();
  }

  var x = document.getElementById(item.id + "Items");
  if (x != null) {
    $(x).removeShadow();
  }

  prevPrnt = item.id;
  */

  var x = Menu_FindParentItem(item);
  if (x && x.tagName.toLowerCase() != "body") FireEvent(x, "onmouseout");
}

function FireEvent(el, type) {
  if (document.createEvent) {
    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent(type.replace("on",""), true, false);
    el.dispatchEvent(evObj);
  } else if (document.createEventObject) {
    el.fireEvent(type);
  }

}

var notWhitespace = /\S/;

function cleanWhitespace(node) {
  for (var x = 0; x < node.childNodes.length; x++) {
    var childNode = node.childNodes[x]
    if ((childNode.nodeType == 3)&&(!notWhitespace.test(childNode.nodeValue))) {
      node.removeChild(node.childNodes[x])
      x--
    }
    if (childNode.nodeType == 1) {
      cleanWhitespace(childNode)
    }
  }
}

function showEl(el, lang) {
  var par = document.getElementById("par" + el);
  var lnk = document.getElementById("lnk" + el);

  if (lnk.innerHTML == (lang == "EN" ? "More &gt;" : "Plus &gt;")) {
    lnk.innerHTML = (lang == "EN" ? "Hide &lt;" : "Cacher &lt;");
    par.style.display = "block";
    document.getElementById("mnImgFade").style.display = "none";
  }
  else {
    lnk.innerHTML = (lang == "EN" ? "More &gt;" : "Plus &gt;");
    par.style.display = "none";
    document.getElementById("mnImgFade").style.display = "block";
  }
}

/* Initialization inherent to all pages */
addLoadEvent(SetupInterceptors);
addLoadEvent(checkByClassName);
addLoadEvent(loadPrefs);
