function webClient() {

 var i;

 this.IE    = false;
 this.NS    = false;
 this.OP    = false; 
 this.release = null;
 
 if ((i = navigator.userAgent.indexOf("Opera")) >= 0) {
   this.OP = true;
   this.version = parseFloat(navigator.userAgent.substr(i + 5));
   return;
 }
 
 if ((i = navigator.userAgent.indexOf("MSIE")) >= 0) {
   this.IE = true;
   this.release = parseFloat(navigator.userAgent.substr(i + 4));
   return;
 }

 if ((i = navigator.userAgent.indexOf("Netscape6/")) >= 0) {
   this.NS = true;
   this.release = parseFloat(navigator.userAgent.substr(i + 10));
   return;
 }

 if ((i = navigator.userAgent.indexOf("Netscape7/")) >= 0) {
   this.NS = true;
   this.release = parseFloat(navigator.userAgent.substr(i + 10));
   return;
 }

 if ((i = navigator.userAgent.indexOf("Gecko")) >= 0) {
   this.NS = true;
   this.release = 6.1;
   return;
 }
}

var webClient = new webClient();

var activeButton = null;
var activeSubButton = null;

if (webClient.IE)
document.onmousedown = pageMouseDown;
 else document.addEventListener("mousedown", pageMouseDown, true);

function pageMouseDown(event) {

 var el;
 
 if (webClient.IE)
   el = window.event.srcElement;
 else
   el = (event.target.tagName ? event.target : event.target.parentNode);

 if (el == activeButton || el == activeSubButton)
   return;

 if (el.className != "menuButton"  && el.className != "menuItem" &&
     el.className != "menuItemSep" && el.className != "menu") {
   if (activeButton) closeMenu(activeButton);
    if (activeSubButton) closeSubMenu(activeSubButton);
}
}

function menuTouch(event, menuName) {
 var button;
 if (webClient.IE)
   button = window.event.srcElement;
 else
   button = (event.target.tagName ? event.target : event.target.parentNode);

 if (!button.menu && menuName)
   button.menu = document.getElementById(menuName);

 if (activeButton && activeButton != button)
   closeMenu(activeButton);
 if (activeSubButton && activeSubButton != button)
   closeSubMenu(activeSubButton);

 if (!button.isactive)
  if (menuName) {
   openMenu(button);
}
 return false;
}

function subMenuTouch(event, menuName) {
 var button;

 if (webClient.IE)
   button = window.event.srcElement;
 else
   button = (event.target.tagName ? event.target : event.target.parentNode);

 if (!button.menu && menuName)
   button.menu = document.getElementById(menuName);

 if (activeSubButton && activeSubButton != button)
   closeSubMenu(activeSubButton);

 if (!button.isactive && menuName)
   openSubMenu(button);

 return false;
}

function openSubMenu(button) {

 var w, dw, x, y;

 button.className = "menuItemActive";  
 
 if (webClient.IE && !button.menu.firstChild.style.width) {
   w = button.menu.firstChild.offsetWidth;
   button.menu.firstChild.style.width = w + "px";
   dw = button.menu.firstChild.offsetWidth - w;
   w -= dw;
   button.menu.firstChild.style.width = w + "px";
 }

 x = getPageOffsetLeft(button)+ button.offsetWidth;;
 y = getPageOffsetTop(button);

 x++;
 y++;
 
 button.menu.style.left = x + "px";
 button.menu.style.top  = y + "px";
 button.menu.style.visibility = "visible";

 button.isactive = true;
 activeSubButton = button;
}

function openMenu(button) {

 var w, dw, x, y;

 button.className = "menuButtonActive";

 if (webClient.IE && !button.menu.firstChild.style.width) {
   w = button.menu.firstChild.offsetWidth;
   button.menu.firstChild.style.width = w + "px";
   dw = button.menu.firstChild.offsetWidth - w;
   w -= dw;
   button.menu.firstChild.style.width = w + "px";
 }

 x = getPageOffsetLeft(button)-1;  
 y = getPageOffsetTop(button) + button.offsetHeight + 1;

 button.menu.style.left = x + "px";
 button.menu.style.top  = y + "px";
 button.menu.style.visibility = "visible";

 button.isactive = true;
 activeButton = button;
}

function closeMenu(button) {
 button.className = "menuButton";

 if (button.menu) button.menu.style.visibility = "hidden";

 button.isactive = false;
 activeButton = null;
}

function closeSubMenu(button) {
 button.className = "menuItem";

 if (button.menu) button.menu.style.visibility = "hidden";

 button.isactive = false;
 activeSubButton = null;
}

function getPageOffsetLeft(el) {
 return el.offsetLeft + (el.offsetParent ? getPageOffsetLeft(el.offsetParent) : 0);
}

function getPageOffsetTop(el) {
 return el.offsetTop + (el.offsetParent ? getPageOffsetTop(el.offsetParent) : 0);
}


