/****************************************************************
* Variables
****************************************************************/

var block = "";
var oldIE = 0;
var initZoneTop = 0;
var initZoneHeight = 0;
var menuZoneTop = 0;
var menuZoneLeft = 0;
var menuZoneHeight = 0;
var menuZoneWidth = 0;


/****************************************************************
* Initialisation function
****************************************************************/

function initMenus(){
  oldIE = checkOldIE();
  if (oldIE == 1){
    initZoneTop = getMenuOffsetTop();
    initZoneHeight = document.getElementById("cat_1").childNodes[0].offsetHeight;
  }
  if(document.getElementById && document.createTextNode) {
  	setKeyboardEvents();
    setMouseEvents();
    hideSubMenus();
  }
  block = "";
}

function getMenuOffsetTop(){
  var element = getTitleElement();
  if (element == null) return 0;
  var top = 0;
  if (element.offsetParent) {
    do {
			top += element.offsetTop;
    } while (element = element.offsetParent);
  }
  return top;;
}

function getTitleElement(){
  var elements = document.getElementsByTagName("a");
  for (var i = 0; i < elements.length; i++){
    if (elements[i].className == "cat_title"){
      return elements[i];
    }
  }
  return null;
}

function setKeyboardEvents(){
  var da = document.getElementsByTagName("a");
  for( var j = 0; j < da.length; j++) {
    if (da[j].className == "cat_title"){
      da[j].onfocus = function(){
        hideSubMenus();
        deploy(this.parentNode);
      };
    }
  }
}

function setMouseEvents(){
  var di = document.getElementsByTagName("div");
  for( var i = 0; i < di.length; i++) {
    if(di[i].className == "rounded_middle" || di[i].className.indexOf("rounded_top") >= 0){
      block = di[i].parentNode.id;
      undeploy(di[i].parentNode);
      di[i].onmouseover = function(){deploy(this);};
      setOnMouseOut(di[i], di[i]);
    }
  }
}

function setOnMouseOut(elementToEvent, element){
  elementToEvent.onmouseout = function(){undeploy(element.parentNode);};
}


/****************************************************************
* Functions
****************************************************************/

function deploy(element){
  block = element.parentNode.id;
  hideSubMenus();
  var elements = element.parentNode.childNodes;
  for (var i = 0; i < elements.length; i++){
    if (elements[i].className == "rounded_top" || elements[i].className == "selected"){
      elements[i].className = "on_main_category";
      setOnMouseOut(elements[i], element);
    } else if (elements[i].className == "rounded_middle"){
      elements[i].style.display = "block";
      elements[i].style.position = "absolute";
      if (oldIE == 1) {
        underCoverSelect(elements[i]);
      }
    }
  }
}

function checkOldIE(){
  if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
    var ieversion = new Number(RegExp.$1); // capture x.x portion and store as a number
    if (ieversion < 7) return 1;
  }
  return 0;
}

function undeploy(element){
  if (element!=null && element.id == block){
    var elements = element.childNodes;
    for (var i = 0; i < elements.length; i++){
      if (elements[i].className == "on_main_category"){
        elements[i].className = "rounded_top";
      } else if (elements[i].className == "rounded_middle"){
        elements[i].style.display = "none";
        elements[i].style.position = "relative";
      }
    }
    if (oldIE == 1) {
      removeIframe();
    }
  }
}

function hideSubMenus(){
  for (var i = 1; i < 6; i++){
    undeploy(document.getElementById("cat_" + i));
  }
}

function underCoverSelect(elem){
  var elements = elem.parentNode.childNodes;
  elements[0].style.zIndex = 20;
  elements[1].style.zIndex = 20;
  elem.style.zIndex = 20;
	var iframe = document.getElementById("menuIframe");
  iframe.className = "menuIframe";
  iframe.style.display='block';
	iframe.style.visibility='visible';
  iframe.style.position='absolute';
	iframe.style.left = elem.offsetLeft + "px";
	iframe.style.top = elem.offsetTop + "px";
	iframe.style.height = elem.offsetHeight + "px";
	iframe.style.width = elem.offsetWidth + "px";
	iframe.style.zIndex = elem.style.zIndex - 1;
  iframe.style.opacity = 0;
	iframe.style.filter = 'alpha(opacity=0)';
  iframe.style.display = "block";
  setMenuZone(iframe);
}

function setMenuZone(iframe){
  menuZoneTop = initZoneTop;
  menuZoneLeft = iframe.offsetLeft;
  menuZoneHeight = initZoneHeight + iframe.offsetHeight;
  menuZoneWidth = iframe.offsetWidth;
}

function removeIframe(){
  document.getElementById("menuIframe").style.display = "none";
}


/****************************************************************
* OnLoad function
****************************************************************/
/* Old way to load the menus
window.onload = function(){
  initMenus();
}
*/

(function(i) {
  var u =navigator.userAgent;
  var e=/*@cc_on!@*/false; 
  if(/webkit/i.test(u)){
    setTimeout(
      function(){
        var dr=document.readyState;
        if(dr=="loaded"||dr=="complete"){
          i()
        }
        else{
          setTimeout(arguments.callee,10);
        }
      },10);
  }
  else if((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))){
    document.addEventListener("DOMContentLoaded",i,false);
  } 
  else if(e){  
    ( function(){
        var t=document.createElement('doc:rdy');
        try{
          t.doScroll('left');
          i();
          t=null;
        }
        catch(e){
          setTimeout(arguments.callee,0);
        }
      }
    )();
  }
  else{window.onload=i;}
})(initMenus);


