// $Id: layersmenu.js 1473 2008-04-20 14:56:53Z phppp $
// Deprecated, for legacy GUI only
// PHP Layers Menu 1.0.7 (c) 2001, 2002 Marco Pratesi <pratesi@telug.it>
// several "var"s inserted by CPKS to silence errors

var DOM = (document.getElementById) ? 1 : 0;
var NS4 = (document.layers) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;
var loaded = 0;	// to avoid stupid errors of Microsoft browsers
var Konqueror = (navigator.userAgent.indexOf("Konqueror") > -1) ? 1 : 0;
// We need to explicitly detect Konqueror
// because Konqueror 3 sets IE4 = 1 ... AAAAAAAAAARGHHH!!!
var Opera5 = (navigator.userAgent.indexOf("Opera 5") > -1 || navigator.userAgent.indexOf("Opera/5") > -1 || navigator.userAgent.indexOf("Opera 6") > -1 || navigator.userAgent.indexOf("Opera/6") > -1) ? 1 : 0;

// it works with NS4, Mozilla, NS6, Opera 5 and 6, IE
var currentY = -1;
function grabMouse(e) {
	if ((DOM && !IE4) || Opera5) {
		currentY = e.clientY;
	} else if (NS4) {
		currentY = e.pageY;
	} else {
		currentY = event.y;
	}
	if (DOM && !IE4 && !Opera5 && !Konqueror) {
		currentY += window.pageYOffset;
	} else if (IE4 && DOM && !Opera5 && !Konqueror) {
		currentY += document.body.scrollTop;
	}
}

// Replace deprecated captureEvents with addEventListener 
// by phppp since XOOPS 2.0.17
if (document.addEventListener){
  document.addEventListener('mousemove', grabMouse, false); 
} else if (document.attachEvent){
  document.attachEvent('onmousemove', grabMouse);
}

function popUp(menuName,on) {
	if (loaded) {	// to avoid stupid errors of Microsoft browsers
		if (on) {
//			moveLayers();
			if (DOM) {
				document.getElementById(menuName).style.visibility = "visible";
				document.getElementById(menuName).style.zIndex = 1000;
			} else if (NS4) {
				document.layers[menuName].visibility = "show";
				document.layers[menuName].zIndex = 1000;
			} else {
				document.all[menuName].style.visibility = "visible";
				document.all[menuName].style.zIndex = 1000;
			}
		} else {
			if (DOM) {
				document.getElementById(menuName).style.visibility = "hidden";
			} else if (NS4) {
				document.layers[menuName].visibility = "hide";
			} else {
				document.all[menuName].style.visibility = "hidden";
			}
		}
	}
}

function setleft(layer,x) {
	if (DOM) {
		document.getElementById(layer).style.left = x + 'px';
	} else if (NS4) {
		document.layers[layer].left = x;
	} else {
		document.all[layer].style.pixelLeft = x;
	}
}

function settop(layer,y) {
	if (DOM) {
		document.getElementById(layer).style.top = y + 'px';
	} else if (NS4) {
		document.layers[layer].top = y;
	} else {
		document.all[layer].style.pixelTop = y;
	}
}

function setwidth(layer,w) {
	if (DOM) {
		document.getElementById(layer).style.width = w;
		document.getElementById(layer).style.width = w + 'px';
	} else if (NS4) {
//		document.layers[layer].width = w;
	} else {
		document.all[layer].style.pixelWidth = w;
	}
}

function moveLayerY(menuName, ordinata, e) {
	if (loaded) {	
	// to avoid stupid errors of Microsoft browsers
	//alert (ordinata);
	// Konqueror: ordinata = -1 according to the initialization currentY = -1
	// Opera: isNaN(ordinata), currentY is NaN, it seems that Opera ignores the initialization currentY = -1
		if (ordinata != -1 && !isNaN(ordinata)) {	// The browser has detected the mouse position
			if (DOM) {
				// attenzione a "px" !!!
				if (e && e.clientY) { // just use the pos of the mouseOver event if we have it
					document.getElementById(menuName).style.top = e.clientY + 'px';
				} else {
					appoggio = parseInt(document.getElementById(menuName).style.top);
					if (isNaN(appoggio)) appoggio = 0;
					if (Math.abs(appoggio + ordinata_margin - ordinata) > thresholdY)
						document.getElementById(menuName).style.top = (ordinata - ordinata_margin) + 'px';
				}

			} else if (NS4) {
					if (Math.abs(document.layers[menuName].top + ordinata_margin - ordinata) > thresholdY)
						document.layers[menuName].top = ordinata - ordinata_margin;
			} else {
				if (Math.abs(document.all[menuName].style.pixelTop + ordinata_margin - ordinata) > thresholdY)
					document.all[menuName].style.pixelTop = ordinata - ordinata_margin;
			}
		}
	}
}
