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;
var activeSearchLayer = null;
var isLastButtonToggle=0;
var activeSearchLayer=null;
var inRootlineToogle; // used for sub1
var inRootlineToplevelToogle; // used for toplevelbuttons


 if (webClient.IE)
	 document.onmousedown = pageMouseDown;
  else
     document.addEventListener("mousedown", pageMouseDown, true);


function pageMouseDown(event) {

  var el;
  
  //if (activeButton == null)
  //  return;

  if (webClient.IE)
    el = window.event.srcElement;
  else
    el = (event.target.tagName ? event.target : event.target.parentNode);

  if (el == activeButton || el == activeSubButton)
    return;

    
  //closeSearchMenu(activeSearchLayer);

  if (el.className != "menuButton"  && el.className != "menuItem" &&
      el.className != "menuItemSep" && el.className != "menu") {
	    if (activeButton) closeMenu(activeButton,isLastButtonToggle,inRootlineToplevelToogle);
    	if (activeSubButton) closeSubMenu(activeSubButton,inRootlineToogle);
		//if(activeSearchLayer) closeSearchMenu(activeSearchLayer);
	}
}

function menuTouch(event, menuName, isLastButton, inRootline) {
  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,isLastButtonToggle,inRootlineToplevelToogle);
  if (activeSubButton && activeSubButton != button)
    closeSubMenu(activeSubButton,inRootlineToogle);
	
  if(activeSearchLayer)
    closeSearchMenu(activeSearchLayer);	
    
	
  if (!button.isactive)
  	if (menuName) {
        isLastButtonToggle=isLastButton;
		inRootlineToplevelToogle=inRootline;
	    openMenu(button,isLastButton,inRootline);
	} else {

		activeButton=button;
		button.isactive=true;
	
		//button.className = "menuButtonActive";
		//button.className = (isLastButtonToogle==1 ? "menuButtonNoBrdActive" : "menuButtonActive");
	}
  return false;
}

function subMenuTouch(event, menuName, direction, inRootline) {
  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,inRootlineToogle);

  if (!button.isactive && menuName) {
    inRootlineToogle=inRootline;
    openSubMenu(button,direction,inRootline);
  }
  return false;
}

function openSubMenu(button,direction,inRootline) {

  var w, dw, x, y;

  //button.className = "menuItemActive";  
  button.className = (inRootline==1 ? "menuItemInRlActive" : "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";
  }

  //get opencoords dependendig on opening direction

  if(direction=='r') {
  	x = getPageOffsetLeft(button)+ button.offsetWidth;;
  	y = getPageOffsetTop(button);
  	x++;
  	//y++;  	
  } else {
   	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, isLastButton, inRootline) {

  var w, dw, x, y;

  //button.className = "menuButtonActive";

  //button.className = (isLastButton==1 ? "menuButtonNoBrdActive" : "menuButtonActive");
  if(inRootline==1) {
    //button.className = (isLastButton==1 ? "menuButtonNoBrdActive" : "menuButtonActive");
	button.className = (isLastButton==1 ? "menuButtonNoBrdActive" : "menuButtonActive");
  } else {
  	button.className = (isLastButton==1 ? "menuButtonNoBrdActive" : "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)+ button.offsetWidth+3;  
  //y = getPageOffsetTop(button);
  
  x = getPageOffsetLeft(button);  
  y = getPageOffsetTop(button)+ button.offsetHeight+1;  

  button.menu.style.left = (x-28) + "px";
  button.menu.style.top  = (y+17) + "px";
  button.menu.style.visibility = "visible";

  button.isactive = true;
  activeButton = button;
}

function closeMenu(button,isLastButton,inRootline) {
	
//alert(inRootline);
  //button.className = "menuButton";
  if(inRootline==1) {
	  button.className = (isLastButton==1 ? "menuButtonNoBrdActive" : "menuButtonActive");
	  
  } else {
      button.className = (isLastButton==1 ? "menuButtonNoBrd" : "menuButton");
  }
  if (button.menu) button.menu.style.visibility = "hidden";

  button.isactive = false;
  activeButton = null;
}

function closeSubMenu(button,inRootline) {
  
  //button.className = "menuItem";
  button.className = (inRootline==1 ? "menuItemInRl" : "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);
}

//functions for searchmenu

function openSearchMenu(button) {

  var w, dw, x, y;

  if (webClient.IE && !button.searchmenu.firstChild.style.width) {
    w = button.searchmenu.firstChild.offsetWidth;
    button.searchmenu.firstChild.style.width = w + "px";
    dw = button.searchmenu.firstChild.offsetWidth - w;
    w -= dw;
    button.searchmenu.firstChild.style.width = w + "px";
  }

  //x = getPageOffsetLeft(button)+ button.offsetWidth+3;  
  //y = getPageOffsetTop(button);
  
  x = getPageOffsetLeft(button);  
  y = getPageOffsetTop(button)+ button.offsetHeight+1;  

  button.searchmenu.style.left = (x) + "px";
  button.searchmenu.style.top  = (y+10) + "px";
  button.searchmenu.style.visibility = "visible";
  
  button.isactive=true;
  activeSearchLayer=button;
  //activeSearchLayer=button;

}

function closeSearchMenu(button) {

  if (button.searchmenu) button.searchmenu.style.visibility = "hidden";

  button.isactive = false;
  activeSearchLayer = null;
}


function searchTouch(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.searchmenu = document.getElementById(menuName);

  if (!button.isactive && menuName) {
  
  	if (activeButton) closeMenu(activeButton,isLastButtonToggle,inRootlineToplevelToogle);
    if (activeSubButton) closeSubMenu(activeSubButton,inRootlineToogle);

    openSearchMenu(button);
  }
  
 
  return false;
  
  
}


function searchClick(event, menuName) {
  var button;

  if (webClient.IE)
    button = window.event.srcElement;
  else
    button = (event.target.tagName ? event.target : event.target.parentNode);

  if (!button.searchmenu && menuName)
    button.searchmenu = document.getElementById(menuName);

  //if (activeSubButton && activeSubButton != button)
  //  closeSubMenu(activeSubButton);

  //if (!button.isactive && menuName) {
  if (menuName) {  	
    openSearchMenu(button);
  }
  return false;
   
}

function showL(layername,offset_x,offset_y) {

 if(!document.getElementById(layername) ) {
   document.layers[layername].visibility = 'show';
   document.layers[layername].style.left=offset_x+'px';
   document.layers[layername].style.top=19+offset_y+'px';
 }else{
   document.getElementById(layername).style.visibility = 'visible';
    document.getElementById(layername).style.left=offset_x+'px';
	document.getElementById(layername).style.top=19+offset_y+'px';
 }
}

function hideL(layername) {
 if(!document.getElementById(layername) ) {
   document.layers[layername].visibility = 'hide';
 }else{
   document.getElementById(layername).style.visibility = 'hidden';
 }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

