﻿var MainMenuItem;
var cMenu;
var menuItem;
var MenuHoverBackColour = "Orange";
var MenuHoverForeColour = "Black";
var MenuForeColour = "Black";
var MenuBackColour = "#CCCCCC";
var MenuBorderColour = "Gray";
var childID = "-Child";
var sExt = "ctl00_cphDetail_";

function menuClicked(e) {
  try {
    cHideMenu(e);
    var sURL = menuItem.getAttribute("URL");
    if (sURL == null) { sURL = ""; }
    if (sURL.indexOf("javascript:") > -1) {
      eval(sURL.replace("javascript:", ""));
    }
    else if (sURL != "") {
      if (ShiftKey(e)) {
        window.open(sURL, sFrame);
      }
      else {
        top.location.href = sURL;
      }
    }
  }
  catch (e) { }
}

function cMenuMouseOver(e) {
  menuItem = getSrcObj(e);
  if (menuItem.nodeName.toLowerCase() == "td" || menuItem.nodeName.toLowerCase() == "#td") {
    menuItem = menuItem.parentNode;
    menuItem.style.backgroundColor = MenuHoverBackColour;
    menuItem.style.color = MenuHoverForeColour;
    cMakeMenuVisible(e, menuItem, false, false);
  }
  else {
    menuItem = null;
  }
}

function cMenuMouseOut(e) {
  if (menuItem != null) {
    menuItem.style.backgroundColor = MenuBackColour;
    menuItem.style.color = MenuForeColour;
  }
}

function cShowMenu(e, MenuName, bShowUnderTb) {
  try {
    cHideMenu(e);
    if (MenuName != "" && document.getElementById(MenuName) != null) {
      cMenu = document.getElementById(MenuName);
      cMakeMenuVisible(e, cMenu, true, bShowUnderTb);
      e.cancelBubble = true;
    }
  }
  catch (e) { }
  return false;
}

function cMakeMenuVisible(e, oParent, bDown, bShowUnderTb) {
  var subMenuItem = document.getElementById(oParent.id + childID);
  cHideItems(subMenuItem, true);
  if (subMenuItem != null) {
    subMenuItem.style.position = "absolute";
    subMenuItem.style.cursor = "pointer";
    subMenuItem.style.backgroundColor = MenuBackColour;
    subMenuItem.style.color = MenuForeColour;
    subMenuItem.className = "";
    subMenuItem.cellPadding = 3;
    subMenuItem.cellSpacing = 0;
    subMenuItem.style.border = "2px solid " + MenuBorderColour;

    if (bDown) {
      try {
        if (bShowUnderTb != null && bShowUnderTb == true) {
          var tb = getSrcObj(e);
          subMenuItem.style.top = (findPosY(tb.parentNode) + tb.parentNode.clientHeight) + "px";
          subMenuItem.style.width = tb.clientWidth;
          subMenuItem.style.left = (findPosX(tb)) + "px";
        }
        else {
          subMenuItem.style.top = (e.clientY) + "px";
          subMenuItem.style.left = (e.clientX) + "px";
        }
      }
      catch (err) {
      }
    }
    else {
      var parEl = oParent.parentNode;
      if (parEl.nodeName.toLowerCase() == "tbody" || parEl.nodeName.toLowerCase() == "#tbody") {
        parEl = parEl.parentNode;
      }
      subMenuItem.style.top = (findPosY(oParent) - findPosY(parEl) - 5) + "px";
      if (document.body.clientWidth < (findPosX(oParent) + (oParent.clientWidth + 1) + subMenuItem.clientWidth)) {
        subMenuItem.style.left = (0 - subMenuItem.clientWidth - 6) + "px";
      }
      else {
        subMenuItem.style.left = (oParent.clientWidth + 1) + "px";
      }
    }
  }
  else {
    subMenuItem = oParent.parentNode;
    if (subMenuItem.nodeName.toLowerCase() == "tbody" || subMenuItem.nodeName.toLowerCase() == "#tbody") {
      subMenuItem = subMenuItem.parentNode;
    }
    cHideItems(subMenuItem, false);
  }
}

function cHideMenu(e, bDontHideParent) {
  try {
    if (bDontHideParent != true && parent != null) {
      MainMenuItem.setAttribute("background", MainMenuItem.getAttribute("background").replace("MenuBack-h.gif", "MenuBack.gif"));
      parent.cHideMenu(e, true);
    }
    if (cMenu != null) {
      var subMenuItem = document.getElementById(cMenu.id + childID);
      cMenu = null;
      subMenuItem.className = "hide";
      cHideItems(subMenuItem, false);
    }
  }
  catch (e) { }
}

function cHideItems(oParent, bHideParent) {
  try {
    if (oParent != null) {
      if (bHideParent && (oParent.parentNode.nodeName.toLowerCase() != "span" || oParent.parentNode.nodeName.toLowerCase() == "#span")) {
        oParent = oParent.parentNode.parentNode.parentNode;
        if (oParent.nodeName.toLowerCase() == "tbody" || oParent.nodeName.toLowerCase() == "#tbody") {
          oParent = oParent.parentNode;
        }
        cHideItems(oParent, false);
      }
      else {
        var tr = getFirstElement(oParent);
        if (tr.nodeName.toLowerCase() == "tbody" || tr.nodeName.toLowerCase() == "#tbody") {
          tr = getFirstElement(tr);
        }
        while (tr != null) {
          var td = getFirstElement(tr);
          td = getNextElement(td);
          td = getNextElement(td);
          td = getNextElement(td);
          if (td.innerHTML != "") {
            var table = getFirstElement(td);
            table.className = "hide";
            cHideItems(table);
          }
          tr = getNextElement(tr);
        }
      }
    }
  }
  catch (e) { }
}

function addCustomEvent(obj, sEventName, CustomeEvent) {
  if (obj.addEventListener) {
    obj.addEventListener(sEventName, CustomeEvent, false);
  }
  else {
    obj.attachEvent("on" + sEventName, CustomeEvent);
  }
}

function getFirstElement(obj) {
  if (obj != null) {
    obj = obj.firstChild;
    if (obj != null && (obj.nodeName.toLowerCase() == "text" || obj.nodeName.toLowerCase() == "#text")) {
      obj = obj.nextSibling;
    }
  }
  return obj;
}

function getNextElement(obj) {
  if (obj != null) {
    obj = obj.nextSibling;
    if (obj != null && (obj.nodeName.toLowerCase() == "text" || obj.nodeName.toLowerCase() == "#text")) {
      obj = obj.nextSibling;
    }
  }
  return obj;
}

function getPreviousElement(obj) {
  if (obj != null) {
    obj = obj.previousSibling;
    if (obj != null && (obj.nodeName.toLowerCase() == "text" || obj.nodeName.toLowerCase() == "#text")) {
      obj = obj.previousSibling;
    }
  }
  return obj;
}

function getGetMenuName(ID) {
  return ID.replace("ctl00_", "ctl00_lbl");
}

function MainMenuClick(e) {
  if (cMenu == null) {
    MainMenuItem = getSrcObj(e);
    cShowMenu(e, getGetMenuName(MainMenuItem.id), true);
    if (MainMenuItem.getAttribute("background") != null) {
      MainMenuItem.setAttribute("background", MainMenuItem.getAttribute("background").replace("MenuBack.gif", "MenuBack-h.gif"));
    }
  }
  else {
    menuItem = getSrcObj(e);
    menuClicked(e);
  }
}

function MainMenuMouseOver(e) {
  if (cMenu != null) {
    cHideMenu(e);
    MainMenuItem = getSrcObj(e);
    cShowMenu(e, getGetMenuName(MainMenuItem.id), true);
    MainMenuItem.setAttribute("background", MainMenuItem.getAttribute("background").replace("MenuBack.gif", "MenuBack-h.gif"));
  }
}

function getSrcObj(e) {
  if (e == null) { e = window.event; }
  if (e != null) {
    if (e.srcElement) {
      var obj = event.srcElement;
    }
    else {
      var obj = e.target;
    }
  }
  else {
    var obj = e;
  }
  return obj;
}

function ShiftKey(e) {
  if (e == null) { e = event; }
  if (e.shiftKey != null) {
    var bShift = e.shiftKey;
  }
  else {
    var bShift = (KeyCode(e) == 16) ? true : false;
  }
  return bShift;
}

function KeyCode(e) {
  if (e == null) { e = event; }
  if (e.which != null) {
    var code = e.which;
  }
  else {
    var code = e.keyCode;
  }
  return code;
}

function findPosX(obj) {
  var curleft = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curleft += obj.offsetLeft - obj.scrollLeft;
      obj = obj.offsetParent;
    }
  }
  else if (obj.x) { curleft += obj.x; }
  return curleft;
}

function findPosY(obj) {
  var curtop = 0;
  if (obj.offsetParent) {
    while (obj.offsetParent) {
      curtop += obj.offsetTop - obj.scrollTop;
      obj = obj.offsetParent;
    }
  }
  else if (obj.y) { curtop += obj.y; }
  return curtop;
}

function showDetail(sID) {
  var el = document.getElementById("a" + sID);
  if (el != null) {
    el.className = "hide";
  }
  el = document.getElementById("d" + sID);
  if (el != null) {
    el.className = "divText";
  }
}

function searchNow() {
  var sSearch = document.getElementById("tbSearch").value;
  window.location = "frmSearch.aspx?Search=" + sSearch;
}

function HighlightText(e) {
  try {
    var search = document.getElementById("tbSearch").value;
    if (search != null && search != "") {
      var aSearch = search.split(" ");
      var txt = document.body.innerHTML;
      for (var i = 0; i < aSearch.length; i++) {
        if (aSearch[i] != "") {
          txt = doHighlight(txt, aSearch[i]);
        }
      }
      document.body.innerHTML = txt;
    }
  }
  catch (err) { }
}

function doHighlight(bodyText, searchTerm) {
  var highlightStartTag = "<font style='background-color:yellow;'>";
  var highlightEndTag = "</font>";

  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();

  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i + 1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }

  return newText;
}

function SearchPress(e) {
  if (KeyCode(e) == 13) {
    searchNow();
    return false;
  }
  return true;
}

function showAddFile(tbMenuSender) {
  document.getElementById(sExt + "tbMenuSender").value = tbMenuSender;
  document.getElementById(sExt + "pUpload").style.display = "inline";
}

function hideAddFile() {
  document.getElementById(sExt + "pUpload").style.display = "none";
}

function calcEventHeight() {
    //find the height of the internal page
    var event_height = document.getElementById('event_iframe').contentWindow.document.body.scrollHeight;

    //change the height of the iframe
    document.getElementById('event_iframe').height = event_height;
}

function calcNewsHeight() {
    //find the height of the internal page
    var news_height = document.getElementById('news_iframe').contentWindow.document.body.scrollHeight;

    //change the height of the iframe
    document.getElementById('news_iframe').height = news_height;
}

addCustomEvent(window, "load", HighlightText);
addCustomEvent(document, "click", cHideMenu);
