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) {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 { //alert(onRight + ' - ' + width1 + ' - ' +  windowWidth + ' - ' + windowXOffset);
if (onRight + width1 > windowWidth + windowXOffset) {back[menuName] = 1;} else {back[menuName] = 0;}}
if (back[menuName]) {setLeft(menuName, onLeft);} else {setLeft(menuName, onRight);}} moveLayerY(menuName);}	// workaround needed for Mozilla < 1.4 for MS Windows
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();	// Opera 5 often fails this
} 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 {	// IE4 IS SIMPLY A BASTARD !!!
document.write('</div>'); document.write('<div id="IE4' + menuName + '" style="position: relative; width: 100%; visibility: visible;">');}}
