// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
numl=0;
toBeHidden=0;
useTimeouts=1;
timeoutLength=1000;
shutdownOnClick=0;
loaded=0;
layersMoved=0;
layerPoppedUp='';

timeoutFlag=0;
if (Opera56 || IE4) {
useTimeouts=0;
}
if (NS4 || Opera56 || IE4) {
shutdownOnClick=1;
}

currentY=0;
function grabMouse(e)	// for NS4
{
currentY=e.pageY;
}
if (NS4) {
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE);
document.onmousemove=grabMouse;
}

function seeThroughElements(show)
{
if (show) {
foobar='visible';
} else {
foobar='hidden';
}
for (i=0; i<toBeHidden.length; i++) {
toBeHidden[i].style.visibility=foobar;
}
}

function shutdown()
{
for (i=0; i<numl; i++) {
LMPopUpL(listl[i], false);
}
layerPoppedUp='';
if (Konqueror || IE5) {
seeThroughElements(true);
}
}
if (shutdownOnClick) {
if (NS4) {
document.onmousedown=shutdown;
} else {
document.onclick=shutdown;
}
}

function setLMTO()
{
if (useTimeouts) {
timeoutFlag=setTimeout('shutdown()', timeoutLength);
}
}

function clearLMTO()
{
if (useTimeouts) {
clearTimeout(timeoutFlag);
}
}
function moveLayerX(menuName){
if (!loaded || (isVisible(menuName) && menuName != layerPoppedUp)) {
return;
}
if (father[menuName] != '') {
if (!Opera5 && !IE4) {
	width0=lwidth[father[menuName]];
	width1=lwidth[menuName];
} else if (Opera5) {
	width0=abscissaStep;
	width1=abscissaStep;
} else if (IE4) {
	width0=getOffsetWidth(father[menuName]);
	width1=getOffsetWidth(menuName);
}
onLeft=getOffsetLeft(father[menuName]) - width1 + menuLeftShift;
onRight=getOffsetLeft(father[menuName]) + width0 - menuRightShift;
windowWidth=getWindowWidth();
windowXOffset=getWindowXOffset();
if (onLeft < windowXOffset && onRight + width1 > windowWidth + windowXOffset) {
	if (onRight + width1 - windowWidth - windowXOffset > windowXOffset - onLeft) {
		onLeft=windowXOffset;
	} else {
		onRight=windowWidth + windowXOffset - width1;
	}
}
if (back[father[menuName]]) {
	if (onLeft < windowXOffset) {
		back[menuName]=0;
	} else {
		back[menuName]=1;
	}
} else {
	if (onRight + width1 > windowWidth + windowXOffset) {
		back[menuName]=1;
	} else {
		back[menuName]=0;
	}
}
if (back[menuName]) {
	setLeft(menuName, onLeft);
} else {
	setLeft(menuName, onRight);
}
}
moveLayerY(menuName);
}
function moveLayerY(menuName){
if (!loaded || (isVisible(menuName) && menuName != layerPoppedUp)) {
return;
}
if (!layersMoved) {
moveLayers();
layersMoved=1;
}
if (!NS4) {
newY=getOffsetTop('ref' + menuName);
} else {
newY=currentY;
}
newY += menuTopShift;
layerHeight=getOffsetHeight(menuName);
windowHeight=getWindowHeight();
windowYOffset=getWindowYOffset();
if (newY + layerHeight > windowHeight + windowYOffset) {
if (layerHeight > windowHeight) {
	newY=windowYOffset;
} else {
	newY=windowHeight + windowYOffset - layerHeight;
}
}
if (Math.abs(getOffsetTop(menuName) - newY) > thresholdY) {
setTop(menuName, newY);
}
}
function moveLayerX1(menuName, father){
if (!lwidthDetected) {
return;
}
if (!Opera5 && !IE4) {
width1=lwidth[menuName];
} else if (Opera5) {
width1=abscissaStep;
}
foobar=getOffsetLeft(father + menuName);
if (!IE4) {
windowWidth=getWindowWidth();
windowXOffset=getWindowXOffset();
if (foobar + width1 > windowWidth + windowXOffset) {
foobar=windowWidth + windowXOffset - width1;
}
if (foobar < windowXOffset) {
foobar=windowXOffset;
}
}
setLeft(menuName, foobar);
}
function layersOverlap(layer, i){
if (Konqueror22) {
return true;
}
xa1=layerLeft[layer];
xa2=xa1 + getOffsetWidth(layer);
ya1=layerTop[layer];
ya2=ya1 + getOffsetHeight(layer);
xb1=toBeHiddenLeft[i];
xb2=xb1 + toBeHidden[i].offsetWidth;
yb1=toBeHiddenTop[i];
yb2=yb1 + toBeHidden[i].offsetHeight;
if(xb1>xa1) xa1=xb1; if(xb2<xa2) xa2=xb2;
if(yb1>ya1) ya1=yb1; if(yb2<ya2) ya2=yb2;
return (xa2>xa1 && ya2>ya1);
}
function seeThroughWorkaround(menuName, on){
for (i=0; i<toBeHidden.length; i++) {
if (layersOverlap(menuName, i)) {
	if (on) {
		toBeHidden[i].style.visibility='hidden';
	} else {
		toBeHidden[i].style.visibility='visible';
	}
}
}
}
function LMPopUpL(menuName, on){
if (!loaded) {return;}
if (!layersMoved) {
moveLayers();
layersMoved=1;
}
setVisibility(menuName, on);
}
function LMPopUp(menuName, isCurrent){
if (!loaded || menuName == layerPoppedUp || (isVisible(menuName) && !isCurrent)) {return;}
if (menuName == father[layerPoppedUp]) {LMPopUpL(layerPoppedUp, false);
} else if (father[menuName] == layerPoppedUp) {
LMPopUpL(menuName, true);
seeThroughWorkaround(menuName, true);
} else {
shutdown();
foobar=menuName;
do {
	LMPopUpL(foobar, true);
	seeThroughWorkaround(foobar, true);
	foobar=father[foobar];
} while (foobar != '')
}
layerPoppedUp=menuName;
}

function resizeHandler()
{
if (NS4) {
window.location.reload();
}
shutdown();
for (i=0; i<numl; i++) {
setLeft(listl[i], 0);
setTop(listl[i], 0);
}
if (toBeHidden != null && toBeHidden.length > 0) {
seeThroughCoordinatesDetection();
}
layersMoved=0;
}
window.onresize=resizeHandler;

function yaresizeHandler()
{
if (window.innerWidth != origWidth || window.innerHeight != origHeight) {
if (Konqueror22 || Opera5) {window.location.reload();}
origWidth =window.innerWidth;
origHeight=window.innerHeight;
resizeHandler();
}
setTimeout('yaresizeHandler()', 500);
}
function loadHandler()
{
if (Konqueror22 || Opera56) {
origWidth =window.innerWidth;
origHeight=window.innerHeight;
yaresizeHandler();
}
}
window.onload=loadHandler;
function fixieflm(menuName){
if (DOM) {setWidth(menuName, '100%');
} else {
document.write('</div>');
document.write('<div id="IE4' + menuName + '" style="position: relative; width: 100%; visibility: visible;">');
}
}

