function getLayerAttrib(strLayerID, strAttrib)
{
    var strFramePart = setFramePart(getLayerAttrib.arguments[2]);

    if (document.getElementById)
    {
        var strValue = eval(strFramePart + 'document.getElementById("' + strLayerID + '").style.' + strAttrib);
    }
    else if (document.all)
    {
        var strValue = eval(strFramePart + 'document.all.' + strLayerID + '.style.' + strAttrib);
    }
    else if (document.layers)
    {
        var strValue = eval(strFramePart + 'document.ids.' + strLayerID + '.' + strAttrib);
    }

    return strValue;
}

function setLayerAttrib(strLayerID, strAttrib, strValue)
{
    var strFramePart = setFramePart(setLayerAttrib.arguments[3]);

    if (document.getElementById)
    {
        eval(strFramePart + 'document.getElementById("' + strLayerID + '").style.' + strAttrib + ' = "' + strValue + '"');
    }
    else if (document.all)
    {
        eval(strFramePart + 'document.all.' + strLayerID + '.style.' + strAttrib + ' = "' + strValue + '"');
    }
    else if (document.layers)
    {
        eval(strFramePart + 'document.' + strLayerID + '.' + strAttrib + ' = "' + strValue + '"');
    }
}

function showLayer(strLayerID)
{
    if (showLayer.arguments[1] == null)
    {
        setLayerAttrib(strLayerID, "visibility", "visible");
    }
    else
    {
        setLayerAttrib(strLayerID, "visibility", "visible", showLayer.arguments[1]);
    }
}

function hideLayer(strLayerID)
{
    if (hideLayer.arguments[1] == null)
    {
        setLayerAttrib(strLayerID, "visibility", "hidden");
    }
    else
    {
        setLayerAttrib(strLayerID, "visibility", "hidden", hideLayer.arguments[1]);
    }
}

function writeCode(strCode, strLayerID)
{
    var strFramePart = setFramePart(writeCode.arguments[2]);

    if (document.all)
    {
        var obj1 = eval(strFramePart + 'document.all.' + strLayerID);
        obj1.innerHTML = strCode;
    }
    else if (document.layers)
    {
        var obj1 = eval(strFramePart + 'document.' + strLayerID)
        obj1.document.open();
        obj1.document.write(strCode);
        obj1.document.close();
    }
    else if (document.getElementById)
    {
        var node1 = eval(strFramePart + 'document.getElementById("' + strLayerID + '")');
        while (node1.hasChildNodes())
        {
            node1.removeChild(node1.lastChild);
        }
        var range = document.createRange();
        range.setStartBefore(node1);
        var nodeHTMLFragment = range.createContextualFragment(strCode);
        node1.appendChild(nodeHTMLFragment);

    }
}

function setLayerClassName(strLayerID, strValue)
{
    var strFramePart = ""; //setFramePart(setLayerClass.arguments[2]);

    if (document.getElementById)
    {
        eval(strFramePart + 'document.getElementById("' + strLayerID + '").className = "' + strValue + '"');
    }
    else if (document.all)
    {
        eval(strFramePart + 'document.all.' + strLayerID + '.className = "' + strValue + '"');
    }
    else if (document.layers)
    {
        eval(strFramePart + 'document.' + strLayerID + '.className = "' + strValue + '"');
    }
}

//  ================================= Not Directly Dom but FORKED FUNCTIONS =====================================================

function setCode(strText, strLayerID)
{

    var strClassCode = (setCode.arguments[2] != "null") ? 'class="' + setCode.arguments[2] + '"' : '';
    var strLayerWidthCode = (setCode.arguments[3] != "null") ? 'width="' + setCode.arguments[3] + '"' : '';
    //       alert("setCode is recieving: \nstrText = "+strText+"\nstrLayerID = "+strLayerID+"\nstrClassCode = "+strClassCode+"\nstrLayerWidthCode = "+strLayerWidthCode);


    if (document.layers)
    {
        var strCode = '<layer ' + strLayerWidthCode + '><span ' + strClassCode + '>' + strText + '</span></layer>';
    }
    else
    {
        var strCode = '<span ' + strClassCode + '>' + strText + '</span>';
    }

    if (setCode.arguments[4] == null)
    {
        writeCode(strCode, strLayerID)
    }
    else
    {
        writeCode(strCode, strLayerID, setCode.arguments[4])
    }
}

function setFramePart(arg)
{
    var framePart = (arg != null) ? 'top.' + arg + "." : framePart = "";
    return framePart;
}