/*
	The following code was modified by Dmitry Pinaev
	at Prescient International Inc. in order to meet
	the requirements of the company.
*/

/*
Left Click 1.2 by Toh Zhiqiang
Homepage: http://www.tohzhiqiang.f2s.com/leftclick/index.php
Email: webmaster@tohzhiqiang.com

LICENSE AGREEMENT:

THIS SOFTWARE (LEFT CLICK) IS PROVIDED ON AN "AS-IS" BASIS WITHOUT WARRANTY OF
ANY KIND.

DEVELOPER SPECIFICALLY DISCLAIMS ANY OTHER WARRANTY, EXPRESS OR
IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR 
PURPOSE. IN NO EVENT SHALL DEVELOPER BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, 
SPECIAL OR INCIDENTAL DAMAGES, EVEN WHEN DEVELOPER HAS BEEN ADVISED BY USER OF 
THE POSSIBILITY OF SUCH POTENTIAL LOSS OR DAMAGE. USER AGREES TO HOLD DEVELOPER 
HARMLESS FROM AND AGAINST ANY AND ALL CLAIMS, LOSSES, LIABILITIES AND EXPENSES.

YOU ARE FREE TO MODIFY THE SOURCE CODE OF THIS SOFTWARE IN ANYWAY YOU LIKE. 
HOWEVER, UNDER NO CIRCUMSTANCES SHOULD YOU CLAIM YOURSELF TO BE THE ORIGINAL 
CREATOR OF THIS SOFTWARE.
*/

var widthMax;
var heightMax;
var xCoor;
var yCoor;
var sWidth;
var sHeight;
var xScroll;
var widthScroll;
var popupPosX, popupPosY;

var menu = new Array;
var divId = new Array;

var overBgCr = "#10314A";
var overCr = "#ffffff";
var outBgCr;
var outCr;

var itemOver = null;
var tmOutTime = 100;
var tmOut;

function getTop(obj) {
	if (!obj) return 0;
	return obj.offsetTop+getTop(obj.offsetParent);
}
function getLeft(obj) {
	if (!obj) return 0;
	return obj.offsetLeft+getLeft(obj.offsetParent);
}
function getBottom(obj) {
	if (!obj) return 0;
	return obj.offsetHeight+getTop(obj);
}

function deleteMenus() {
   var menuFront;
   for (i = 0; i < divId.length; i++) {
      menuFront = document.getElementById(divId[i]);
      if (menuFront != null) menuFront.removeNode(true);
   }
   divId = new Array;
   menu = new Array;
}

function attachMouseClick(elem, button) {
	if (button=="right") {
		elem.oncontextmenu = showMenu;
		elem.onclick = hideMenus;
	} else {
		elem.oncontextmenu = hideMenus;
		elem.onclick = showMenu;
	}
}

function clearMouseClick(elem) {
	elem.oncontextmenu = null;
	elem.onclick = null;
}

function menuItem() {
   this.item = arguments[0];
   this.hasSubMenu = arguments[1];
   this.level = arguments[2];
   this.subMenuFront = arguments[3];
   this.subMenuOffset = arguments[4];
}

function findMenuLevel(parentId) {
   for (i = 0; i < divId.length; i = i + 2)
      if (divId[i] == (parentId + "Front")) {
          return divId[i + 1];
          break;
      }
}

function createMenu(menuId, menuWidth, level, obj) {
   var x = 0;
   var y = 0;
   if (obj) if (obj.parentElement) {
      x = getLeft(obj.parentElement);
      y = getBottom(obj.parentElement);
   }
   //
   var frontLayer = document.createElement("DIV");
   with (frontLayer) {
      id = menuId + "Front";
      className = "menuFront";
      with (style) {
          posWidth = menuWidth;
          posHeight = 3;
          visibility = "hidden";
          outBgCr = backgroundColor;
      }
   }
   document.body.appendChild(frontLayer);
   divId[divId.length] = menuId + "Front";
   divId[divId.length] = level;
   if (level==0) {
      popupPosX = x;
      popupPosY = y;
   }
}

function createItem(itemId, displayText, parentId, pageSrc, pageTarget, hasSubMenu) {
   var menuFront = document.getElementById(parentId + "Front");
   var level = findMenuLevel(parentId);
   var subMenuFront = "";
   var subMenuOffset = -1;
   var itemLayer = document.createElement("DIV");  
   with (itemLayer) {
      onmouseover = over;
      onmouseout = out;
      onmousedown = goToLink;
      id = itemId;
      if (menu.length % 2 == 0)
           className = "item";
      else className = "item even";
      innerHTML = displayText;
      if (hasSubMenu) {
          var sepLayer = document.createElement("DIV");
          with (sepLayer) {
              className = "arrow";
              innerHTML = "4";
              style.left = menuFront.style.posWidth - 20;
              itemLayer.appendChild(sepLayer);
          }
      }
      with (style) {
          posTop = menuFront.style.posHeight - 3;
          posWidth = menuFront.style.posWidth - 4;
          outCr = color;
          if (hasSubMenu) subMenuOffset = menuFront.style.posHeight;
      }
   }
   menuFront.appendChild(itemLayer);
   menuFront.style.posHeight += itemLayer.clientHeight;
   itemLayer.url = pageSrc;  
   if (pageTarget == "") pageTarget = "_top";
   itemLayer.target = pageTarget;
   menu[menu.length] = new menuItem(itemId, hasSubMenu, level, subMenuFront, subMenuOffset);
}
function createSep(parentId) {
   var menuFront = document.getElementById(parentId + "Front");
   var sepLayer = document.createElement("DIV");
   with (sepLayer) {
      onmouseover = overSep;
      onmouseout = outSep;
      className = "item";
      innerHTML = "<table width=100% height=100% border=0 cellpadding=0 cellspacing=0>"+
                  "<tr><td style='border-bottom:1px solid "+menuFront.currentStyle.borderColor+"; font-size:1px'>&nbsp;</td></tr>"+
                  "<tr><td style='font-size:1px'>&nbsp;</td></tr>"+
                  "</table>";
      with (style) {
         paddingLeft = 0;
         posTop = menuFront.style.posHeight;
         posWidth = menuFront.style.posWidth - 4;
      }
   }
   menuFront.appendChild(sepLayer);
   menuFront.style.posHeight += sepLayer.clientHeight;
}

function linkSubMenu(itemId, subMenuId) {
   for (i = 0; i < menu.length; i++) {
      if (menu[i].item == itemId) {
          menu[i].subMenuFront = subMenuId + "Front";
          break;
      }
   }
}

function hideMenus() {
   for (i = 0; i < divId.length; i = i + 2) {
      var menuLayer = document.getElementById(divId[i]);
      menuLayer.style.visibility = "hidden";
   }
   clearTimeout(tmOut);
}

function popUpPos() {
   var prnt = window.event.srcElement.parentElement;
   var menuFront = document.getElementById(divId[0]);
   //max width and height of the body container
   widthMax = document.body.clientWidth;
   heightMax = document.body.clientHeight;
   //width and height of the menu
   sWidth = menuFront.clientWidth;
   sHeight = menuFront.clientHeight;
   //horizontal position of the left top corner of the menu
   xCoor = (popupPosX>=0) ? popupPosX : 0;
   //vertical position of the left top corner of the menu
   yCoor = (popupPosY>=0) ? popupPosY : 0;
   if (xCoor+sWidth < widthMax-1)
        menuFront.style.posLeft = xCoor;
   else menuFront.style.posLeft = widthMax - sWidth - 2;
   menuFront.style.posTop = yCoor;
}

function popUpSubPos(xCoor, yCoor, subMenuFront, layerId) {
   var menuFront = document.getElementById(layerId + "Front");
   widthMax = document.body.clientWidth;
   heightMax = document.body.clientHeight;
   sWidth = subMenuFront.style.posWidth;
   sHeight = subMenuFront.style.posHeight;
   xScroll = document.body.scrollTop;
   widthScroll = document.body.offsetWidth - document.body.clientWidth;
   xWidth = xCoor + sWidth;
   yHeight = yCoor + sHeight;
   if (subMenuFront.style.visibility == "hidden") {
      subMenuFront.style.posTop  = ((yHeight - xScroll) < (heightMax - 1)) ? yCoor : yCoor - sHeight + 15;
      subMenuFront.style.posLeft = (xWidth < widthMax - 1) ? xCoor : xCoor - menuFront.style.posWidth - subMenuFront.style.posWidth + 5;
   }
}

function showMenu() {
   var source = window.event.srcElement.tagName;
   var menuFront = document.getElementById(divId[0]);
   popUpPos();
   menuFront.style.visibility = "visible";
	menuFront.style.zIndex = 1024;
   clearTimeout(tmOut);
   return false;
}

function checkElement(itemId) {
   return (itemId.className == "arrow") ? itemId.parentElement : itemId;
}

function findLayerId(frontId) {
   index = frontId.indexOf("Front");
   return (frontId.substring(0, index));
}
 
function over() {
   var itemId = event.srcElement;
   itemId = checkElement(itemId);
   var menuFront = itemId.parentElement;
   var layerId = findLayerId(menuFront.id);
   var xCoor = menuFront.style.posLeft + itemId.style.posWidth;
   var yCoor = menuFront.style.posTop;
   itemId.style.backgroundColor = overBgCr;
   itemId.style.color = overCr;
   for (i = 0; i < menu.length; i++) {      
      if (itemId == document.getElementById(menu[i].item)) {        
          for (j = 0; j < divId.length; j = j + 2) {             
              if ((menu[i].level) < divId[j + 1]) {
                  var subMenu = document.getElementById(divId[j]);
                  subMenu.style.visibility = "hidden";
              }
          }
          if (menu[i].hasSubMenu) {
              var subMenuFront = document.getElementById(menu[i].subMenuFront);
              subMenuFront.style.zIndex = menuFront.style.zIndex+1
              popUpSubPos(xCoor, yCoor + menu[i].subMenuOffset, subMenuFront, layerId);
              subMenuFront.style.visibility = "visible";
          }
          break;
      }        
   }
   clearTimeout(tmOut);
}

function overSep() {
   clearTimeout(tmOut);
}
function outSep() {
   tmOut = setTimeout("hideMenus()", tmOutTime);
}

function out() {
   var itemId = event.srcElement;
   itemId = checkElement(itemId);
   itemId.style.backgroundColor = outBgCr;
   itemId.style.color = outCr;
   tmOut = setTimeout("hideMenus()", tmOutTime);
}

function goToLink() {
   var itemId = event.srcElement;
   var baseObj = document.all.tags("BASE");
   baseObj.target = itemId.target;
   if (itemId.url != "") {
      hideMenus();
      window.open(itemId.url, baseObj.target);
   }
}

function correctBrowser() {
   correctIE = (navigator.appVersion.indexOf("MSIE 5") || navigator.appVersion.indexOf("MSIE 5.5"));
   correctNS = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 5));
   return (correctIE || correctNS)
}

if (correctBrowser()) {
   document.onload = hideMenus;
}
