var usrAgent = navigator.userAgent.toUpperCase( );

var WIN = (usrAgent.indexOf("WIN") != -1) ? true : false;
var MAC = (usrAgent.indexOf("MAC") != -1) ? true : false;

var NN4 = (document.layers ? true : false );
var NN6 = (document.getElementById && !document.all ? true : false);
var IE4 = (document.all && !document.getElementById ? true : false);
var IE5 = (document.all && document.getElementById ? true : false);

function setJsLink(which, URL)
{
    eval(which).location = URL;
}

function setHyperLink(linkName, which, URL)
{
    document.links[linkName].target = which;
    document.links[linkName].href = URL;
}

function getDivImage(layerObj, imgName)
{
    if(NN4)
    {
        return layerObj.document.images[imgName];
    }
    else
    {
        return document.images[imgName];
    }
}

function refLayer(layerName, d)
{
    var i, x;
    
    if(!d)
    {
        d = document;
    }
    
    if(IE5 || NN6)
    {
        x = d.getElementById(layerName);
    }
    else if(IE4)
    {
        x = d.all[layerName];
    }
    else if(NN4)
    {
        x = d[layerName];
    
        for(i=0; !x && i<d.layers.length; i++)
        {
            x = refLayer(layerName, d.layers[i].document);
        }
    }
    
    return x;
}

function initLayer(layerObj)
{
    if(NN6)
    {
        layerObj.style.width = layerObj.offsetWidth;
        layerObj.style.height = layerObj.offsetHeight;
    }
    else if(IE4 || IE5)
    {
        layerObj.style.pixelLeft = layerObj.offsetLeft;
        layerObj.style.pixelTop = layerObj.offsetTop;
        layerObj.style.pixelWidth = layerObj.offsetWidth;
        layerObj.style.pixelHeight = layerObj.offsetHeight;
    }
}

function setZindex(layerObj, zOrder)
{
    if(NN4)
    {
        layerObj.zIndex = zOrder;
    }
    else
    {
        layerObj.style.zIndex = zOrder;
    }
}

function getZindex(layerObj)
{
    if(NN4)
    {
        return layerObj.zIndex;
    }
    else
    {
        return layerObj.style.zIndex;
    }
}

function getLayerVisibility(layerObj)
{
    if(NN4)
    {
        return(layerObj.visibility == "show");
    }
    else
    {
        return(layerObj.style.visibility == "visible");
    }
}

function hideLayer(layerObj)
{
    if(NN4)
    {
        layerObj.visibility = "hide";
    }
    else
    {
        layerObj.style.visibility = "hidden";
    }
}

function showLayer(layerObj)
{
    if(NN4)
    {
        layerObj.visibility = "show";
    }
    else
    {
        layerObj.style.visibility = "visible";
    }
}

function shiftLayerTo(layerObj, x, y)
{
    if(NN4)
    {
        layerObj.moveTo(x, y);
    }
    else if(NN6)
    {
        layerObj.style.left = x + 'px';
        layerObj.style.top  = y + 'px';
    }
    else
    {
        layerObj.style.pixelLeft = x;
        layerObj.style.pixelTop  = y;
    }
}

function shiftLayerBy(layerObj, x, y)
{
    if(NN4)
    {
        layerObj.moveBy(x, y);
    }
    else if(NN6)
    {
        layerObj.style.left = (getLayerPosition(layerObj, 'left') + x ) + 'px';
        layerObj.style.top = (getLayerPosition(layerObj, 'top') + y ) + 'px';
    }
    else if(IE4 || (MAC && IE5))
    {
        layerObj.style.pixelLeft += x;
        layerObj.style.pixelTop += y;
    }
    else
    {
        layerObj.style.pixelLeft = layerObj.offsetLeft + x;
        layerObj.style.pixelTop = layerObj.offsetTop  + y;
    }
}

function resizeLayerTo(layerObj, width, height)
{
    if(NN4)
    {
        layerObj.resizeTo(width, height);
    }
    else if(NN6)
    {
        layerObj.style.width = width;
        layerObj.style.height = height;
    }
    else
    {
        layerObj.style.pixelWidth = width;
        layerObj.style.pixelHeight = height;
    }
}

function getLayerSize(layerObj, value)
{
    if(value == "width")
    {
        if(NN4)
        {
            return layerObj.document.width;
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.width);
        }
        else if(IE4)
        {
            return layerObj.style.pixelWidth;
        }
        else
        {
            return layerObj.offsetWidth;
        }
    }
    if(value == "height")
    {
        if(NN4)
        {
            return layerObj.document.height;
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.height);
        }
        else if(IE4)
        {
            return layerObj.style.pixelHeight;
        }
        else
        {
            return layerObj.offsetHeight;
        }
    }
}

function getLayerPosition(layerObj, value)
{
    if(value == "top")
    {
        if(NN4)
        {
            return layerObj.top;
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.top);
        }
        else if(IE4)
        {
            return layerObj.style.pixelTop;
        }
        else
        {
            return layerObj.offsetTop;
        }
    }
    if(value == "right")
    {
        if(NN4)
        {
            return layerObj.left + getLayerSize(layerObj, "width");
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.left + getLayerSize(layerObj, "width"));
        }
        else if(IE4)
        {
            return layerObj.style.pixelLeft + getLayerSize(layerObj, "width");
        }
        else
        {
            return layerObj.offsetLeft + getLayerSize(layerObj, "width");
        }
    }
    if(value == "bottom")
    {
        if(NN4)
        {
            return layerObj.top + getLayerSize(layerObj, "height");
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.top + getLayerSize(layerObj, "height"));
        }
        else if(IE4)
        {
            return layerObj.style.pixelTop + getLayerSize(layerObj, "height");
        }
        else
        {
            return layerObj.offsetTop + getLayerSize(layerObj, "height");
        }
    }
    if(value == "left")
    {
        if(NN4)
        {
            return layerObj.left;
        }
        else if(NN6)
        {
            return parseInt(layerObj.style.left);
        }
        else if(IE4)
        {
            return layerObj.style.pixelLeft;
        }
        else
        {
            return layerObj.offsetLeft;
        }
    }
}

function getEventX(evt)
{
    if(NN4)
    {
        return evt.x;
    }
    else if(NN6)
    {
        return(window.scrollX + evt.clientX);
    }
    else if(IE4 || IE5)
    {
        return(document.body.scrollLeft + event.clientX);
    }
}

function getEventY(evt)
{
    if(NN4)
    {
        return evt.y;
    }
    else if(NN6)
    {
        return(window.scrollY + evt.clientY);
    }
    else if(IE4 || IE5)
    {
        return(document.body.scrollTop + event.clientY);
    }
}

function getCenterSize(layerObj, which)
{
    return(getWinSize(which) - getLayerSize(layerObj, which)) / 2;
}

function replaceContent(layerObj, txt)
{
    if(NN4)
    {
        layerObj.document.open("text/html");
        layerObj.document.write(txt);
        layerObj.document.close( );
    }
    else
    {
        layerObj.innerHTML = txt;
    }
}

function getPageOffset(which)
{
    if(which == "left")
    {
        if(NN4)
        {
            return self.pageXOffset;
        }
        else if(NN6)
        {
            return window.scrollX;
        }
        else
        {
            return document.body.scrollLeft;
        }
    }
    if(which == "top")
    {
        if(NN4)
        {
            return self.pageYOffset;
        }
        else if(NN6)
        {
            return window.scrollY;
        }
        else
        {
            return document.body.scrollTop;
        }
    }
}

function getWinSize(which)
{
    if(which == "width")
    {
        if(NN4 || NN6)
        {
            return window.innerWidth;
        }
        else
        {
            return document.body.clientWidth;
        }
    }
    if(which == "height")
    {
        if(NN4 || NN6)
        {
            return window.innerHeight;
        }
        else
        {
            return document.body.clientHeight;
        }
    }
}

function openWin(url, w, h, winName)
{
    var startWinX = (screen.availWidth - w) / 2;
    var startWinY = (screen.availHeight - h) / 2;
    
    if(arguments[4] == "no")
        winOption = "directories=no,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,resizable=yes,width=" + w + ",height=" + h + ",left=" + startWinX + ",top=" + startWinY;
    
        if(arguments[4] == "yes")
        winOption = "directories=yes,status=yes,scrollbars=yes,toolbar=yes,location=yes,menubar=yes,resizable=yes,width=" + w + ",height=" + h + ",left=" + startWinX + ",top=" + startWinY;
    
    winName = window.open(url, winName, winOption);
    winName.focus( );
}

function delayWin(url, winOption)
{
    var submenu = window.open (url, "subwin", winOption);
    
    if(closetime)
        setTimeout("submenu.close( );", closetime * 1000);
}

function openSubWin(url, w, h, st, sc, t, l, m, r, x, y, ct, delay)
{
    closetime = ct;
    
    var winOption = "status=" + st + ",toolbar=" + t + ",location=" + l + ",menubar=" + m + ",scrollbars=" + sc + ",resizable=" + r + ",left=" + x + ",top=" + y + ",width=" + w + ",height=" + h;

    setTimeout("delayWin( '" +url+ "','" +winOption+ "' )", delay * 1000);
}

function intToHex(Integer)
{
    var hexValue = Integer.toString(16);
    
    if(hexValue.length == 1) hexValue = "0" + hexValue;

    return hexValue;
}

function hexToInt(hex)
{
    return parseInt(hex, 16);
}

function viewSource(fileName)
{
    var file = (fileName) ? fileName : location.href;
    var filePath = 'view-source:' + file;
    
    location.href = filePath;
}

function changeImages( )
{
    for(var i = 0; i < changeImages.arguments.length; i += 2)
    {
        document[changeImages.arguments[i]].src = changeImages.arguments[i + 1];
    }
}
