var timer = "";
var openMenu = null;
var canMenuBeClosed = true;

function clearTimer(){
  window.clearTimeout(timer);
}

function tryToClose(){
  var funcToCall = "canMenuBeClosed = true"
  timer = window.setTimeout(funcToCall, 400);
}

function showMenu(id, objPos){

  if(document.getElementById){
    clearTimer();

    setElementProperty('wheels', 'display', 'none');
	setElementProperty('gallery', 'display', 'none');
	setElementProperty('event', 'display', 'none');
    setElementProperty('dealers', 'display', 'none');
	setElementProperty('company', 'display', 'none');
	

    openMenu = id;
    canMenuBeClosed = false

    var x = 0;
    var y = 0;

    x = getElementLeft(objPos);
    y = getElementBottom(objPos);

    setElementProperty(id, 'display', 'block');
    setElementProperty(id, 'left', x + "px");
    setElementProperty(id, 'top', y + "px");
  }
}

function hideMenu(id){
  setElementProperty(id, 'display', 'none');
  openMenu = null;
}

function getMousePos(event){
  var x, y;

  if(window.event){
    x = window.event.clientX;
    y = window.event.clientY;

    if (document.documentElement && document.documentElement.scrollTop){
      y+=document.documentElement.scrollTop;
    } else {
      y+=document.body.scrollTop;
    }

  } else {
    x = event.pageX;
    y = event.pageY;
  }

  if(openMenu != null){
    var testInside = isInside(x, y, openMenu);

    if(!testInside && canMenuBeClosed == true){
      hideMenu(openMenu);
    }

    if(testInside){
      canMenuBeClosed = true;
      clearTimer();
    }
  }
}

function isInside(xMouse, yMouse, id){
  if( (id != null) && (xMouse >= getElementLeft(id)) && (xMouse <=getElementRight(id)) && (yMouse >= getElementTop(id)) && (yMouse <= getElementBottom(id)) ){
    return true;
  } else {
    return false;
  }
}

window.onload = function() {
  document.onmousemove = getMousePos;
}

function switchDisplay(elm){
  var elm = elm.parentNode.nextSibling;

  while(elm.nodeType == 3){
    elm = elm.nextSibling;
  }

  var elmStyle = getElementProperty(elm, "display")

  if((elmStyle == "none") || (elmStyle == "") || (elmStyle == null)){
    setElementProperty(elm, "display", "block");
    return;
  }

  if(elmStyle == "block"){
    setElementProperty(elm, "display", "none");
    return;
  }
}
