// PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/

layerLeft = new Array();
layerTop = new Array();

function getObj(id){
  return DOM?document.getElementById(id):document.all[id];
}

function setVisible(id, on)
{
  style = getObj(id).style;
  style._display = style._display?style._display:
                    (style.display == 'none')?'':style.display;
  if (on) {
    style.visibility = 'visible';
    style.display = style._display;
  } else {
    style.visibility = 'hidden';
    style.display = 'none';
  }
}

function setVisibility(id, on)
{
  style = getObj(id).style;
  if (on) {
    style.visibility = 'visible';
  } else {
    style.visibility = 'hidden';
  }
}

function setDisplay(id, on)
{
  style = getObj(id).style;
  style._display = style._display?style._display:
                    (style.display == 'none')?'':style.display;
  if (on) {
    style.display = style._display;
  } else {
    style.display = 'none';
  }
}

function isVisible(layer)
{
        if (DOM) {
                return (document.getElementById(layer).style.visibility == 'visible');
        } else if (NS4) {
                return (document.layers[layer].visibility == 'show');
        } else {
                return (document.all[layer].style.visibility == 'visible');
        }
}

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

function getOffsetLeft(layer)
{
        var value = 0;
        if (DOM) {        // Mozilla, Konqueror >= 2.2, Opera >= 5, IE
                object = document.getElementById(layer);
                value = object.offsetLeft;
//alert (object.tagName + ' --- ' + object.offsetLeft);
                while (object.tagName != 'BODY' && object.offsetParent) {
                        object = object.offsetParent;
//alert (object.tagName + ' --- ' + object.offsetLeft);
                        value += object.offsetLeft;
                }
        } else if (NS4) {
                value = document.layers[layer].pageX;
        } else {        // IE4 IS SIMPLY A BASTARD !!!
                if (document.all['IE4' + layer]) {
                        layer = 'IE4' + layer;
                }
                object = document.all[layer];
                value = object.offsetLeft;
                while (object.tagName != 'BODY') {
                        object = object.offsetParent;
                        value += object.offsetLeft;
                }
        }
        return (value);
}

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

function getOffsetTop(layer)
{
// IE 5.5 and 6.0 behaviour with this function is really strange:
// in some cases, they return a really too large value...
// ... after all, IE is buggy, nothing new
        var value = 0;
        if (DOM) {
                object = document.getElementById(layer);
                value = object.offsetTop;
                while (object.tagName != 'BODY' && object.offsetParent) {
                        object = object.offsetParent;
                        value += object.offsetTop;
                }
        } else if (NS4) {
                value = document.layers[layer].pageY;
        } else {        // IE4 IS SIMPLY A BASTARD !!!
                if (document.all['IE4' + layer]) {
                        layer = 'IE4' + layer;
                }
                object = document.all[layer];
                value = object.offsetTop;
                while (object.tagName != 'BODY') {
                        object = object.offsetParent;
                        value += object.offsetTop;
                }
        }
        return (value);
}

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

function getOffsetWidth(layer)
{
        var value = 0;
        if (DOM && !Opera56) {
                value = document.getElementById(layer).offsetWidth;
        } else if (NS4) {
                value = document.layers[layer].document.width;
        } else if (Opera56) {
                value = document.getElementById(layer).style.pixelWidth;
        } else {        // IE4 IS SIMPLY A BASTARD !!!
                if (document.all['IE4' + layer]) {
                        layer = 'IE4' + layer;
                }
                value = document.all[layer].offsetWidth;
        }
        return (value);
}

function setHeight(layer, h)        // unused, not tested
{
        if (DOM) {
                document.getElementById(layer).style.height = h+'px';
        } else if (NS4) {
//                document.layers[layer].height = h;
        } else {
                document.all[layer].style.pixelHeight = h;
        }
}

function getOffsetHeight(layer)
{
        var value = 0;
        if (DOM && !Opera56) {
                value = document.getElementById(layer).offsetHeight;
        } else if (NS4) {
                value = document.layers[layer].document.height;
        } else if (Opera56) {
                value = document.getElementById(layer).style.pixelHeight;
        } else {        // IE4 IS SIMPLY A BASTARD !!!
                if (document.all['IE4' + layer]) {
                        layer = 'IE4' + layer;
                }
                value = document.all[layer].offsetHeight;
        }
        return (value);
}

function getWindowWidth()
{
        var value = 0;
        if ((DOM && !IE) || NS4 || Konqueror || Opera) {
                value = window.innerWidth;
//        } else if (NS4) {
//                value = document.width;
        } else {        // IE
                if (document.documentElement && document.documentElement.clientWidth) {
                        value = document.documentElement.clientWidth;
                } else if (document.body) {
                        value = document.body.clientWidth;
                }
        }
        if (isNaN(value)) {
                value = window.innerWidth;
        }
        return (value);
}

function getWindowXOffset()
{
        var value = 0;
        if ((DOM && !IE) || NS4 || Konqueror || Opera) {
                value = window.pageXOffset;
        } else {        // IE
                if (document.documentElement && document.documentElement.scrollLeft) {
                        value = document.documentElement.scrollLeft;
                } else if (document.body) {
                        value = document.body.scrollLeft;
                }
        }
        return (value);
}

function getWindowHeight()
{
        var value = 0;
        if ((DOM && !IE) || NS4 || Konqueror || Opera) {
                value = window.innerHeight;
        } else {        // IE
                if (document.documentElement && document.documentElement.clientHeight) {
                        value = document.documentElement.clientHeight;
                } else if (document.body) {
                        value = document.body.clientHeight;
                }
        }
        if (isNaN(value)) {
                value = window.innerHeight;
        }
        return (value);
}

function getWindowYOffset()
{
        var value = 0;
        if ((DOM && !IE) || NS4 || Konqueror || Opera) {
                value = window.pageYOffset;
        } else {        // IE
                if (document.documentElement && document.documentElement.scrollTop) {
                        value = document.documentElement.scrollTop;
                } else if (document.body) {
                        value = document.body.scrollTop;
                }
        }
        return (value);
}


