/* =================== */
/* Browsercheck object */
/* =================== */

function cm_bwcheck(){
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent.toLowerCase()
	this.dom=document.getElementById?1:0
	this.op5=(this.agent.indexOf("opera 5")>-1 || this.agent.indexOf("opera/5")>-1) && window.opera
	this.op6=(this.agent.indexOf("opera 6")>-1 || this.agent.indexOf("opera/6")>-1) && window.opera
	this.ie5 = (this.agent.indexOf("msie 5")>-1 && !this.op5 && !this.op6)
	this.ie55 = (this.ie5 && this.agent.indexOf("msie 5.5")>-1)
	this.ie60 = (this.agent.indexOf("msie 6")>-1 && !this.op5 && !this.op6)
	this.ie4=(this.agent.indexOf("msie")>-1 && document.all &&!this.op5 &&!this.op6 &&!this.ie5&&!this.ie6)
	this.ie = (this.ie4 || this.ie5 || this.ie6)
	this.mac=(this.agent.indexOf("mac")>-1)
	this.ns6=(this.agent.indexOf("gecko")>-1 || window.sidebar)
	this.ns4=(!this.dom && document.layers)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6)
	this.usedom= this.ns6//Use dom creation
	this.reuse = this.ie||this.usedom //Reuse layers
	this.px=this.dom&&!this.op5?"px":""
	return this
}


var canceledHide = true;
var visibleMenu;
var menuToHide;
var timer;

//start delayed hide of menu
function initiateHide(obj) {
   canceledHide = false;
   visibleMenu = obj;
   menuToHide = obj;
   timer = setTimeout(hideMenu, 150);
}

//hide previously shown menu and show currently selected menu
function showMenu(obj) {
   if (visibleMenu && visibleMenu != obj) {
   	if (visibleMenu.style) {
      	visibleMenu.style.visibility = "hidden";
      }
   }
   canceledHide = true;
   visibleMenu = obj;
   visibleMenu.style.visibility = "visible";
}

//hide menu with delay as set in timer unless canceled during delay
function hideMenu() {
   if (!canceledHide && visibleMenu.style) {
      visibleMenu.style.visibility = "hidden";
   }
}

//cancel hide
function cancelHide() {
   clearTimeout(timer);
   canceledHide = true;
}

// document.all simulator for NN6
if (cm_bwcheck().ns6) {
  Node.prototype.__defineGetter__("all", function() {
    if (document.getElementsByTagName("*").length) {
      switch (this.nodeType) {
        case 9:
		  return document.getElementsByTagName("*")
          break
        case 1:
		  return this.getElementsByTagName("*")
		  break
		}
      }
      return ""
	}
  )
  Node.prototype.__defineSetter__("all", function() {})
}

function getLeft(eElement) {
	if (!eElement && this) {
		eElement = this;
	}

	var nLeftPos = eElement.offsetLeft;
	var eParElement = eElement.offsetParent;
	while (eParElement != null) {
		nLeftPos += eParElement.offsetLeft;
		eParElement = eParElement.offsetParent;
	}
	return nLeftPos;
}


function getTop(eElement) {
	if (!eElement && this) {
		eElement = this;
	}

	var nTopPos = eElement.offsetTop;
	var eParElement = eElement.offsetParent;
	while (eParElement != null) {
		nTopPos += eParElement.offsetTop;
		eParElement = eParElement.offsetParent;
	}
	return nTopPos;
}


function posMenu () {
	document.all.divMenu.style.left = getLeft(document.all.imgRonde) + 4;
	document.all.divMenu.style.top = getTop(document.all.imgRonde) + 21;
}
