/*
temp file - for expanding divs. The images point to [image]
use drop.js for  or until js is combined.
*/


var isNav4, isNav6, isIE4;

/*
 * Browser version snooper; determines your browser
 * (Navigator 4, Navigator 6, or Internet Explorer 4/5)
 */
function setBrowser()
{
    if (navigator.appVersion.charAt(0) == "4")
    {
        if (navigator.appName.indexOf("Explorer") >= 0)
        {
            isIE4 = true;
        }
        else
        {
            isNav4 = true;
        }
    }
    else if (navigator.appVersion.charAt(0) > "4")
    {
        isNav6 = true;
    }
}

/*
 *
 * Given a selector string, return a style object
 * by searching through stylesheets. Return null if
 * none found
 *
 */
function getStyleBySelector( selector )
{
    if (!isNav6)
    {
        return null;
    }
    var sheetList = document.styleSheets;
    var ruleList;
    var i, j;

    /* look through stylesheets in reverse order that
       they appear in the document */
    for (i=sheetList.length-1; i >= 0; i--)
    {
        ruleList = sheetList[i].cssRules;
        for (j=0; j<ruleList.length; j++)
        {
            if (ruleList[j].type == CSSRule.STYLE_RULE &&
                ruleList[j].selectorText == selector)
            {
                return ruleList[j].style;
            }   
        }
    }
    return null;
}

/*
 *
 * Given an id and a property (as strings), return
 * the given property of that id.  Navigator 6 will
 * first look for the property in a tag; if not found,
 * it will look through the stylesheet.
 *
 * Note: do not precede the id with a # -- it will be
 * appended when searching the stylesheets
 *
 */
function getIdProperty( id, property )
{
    if (isNav6)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            if (styleObject[property])
            {
                return styleObject[ property ];
            }
        }
        styleObject = getStyleBySelector( "#" + id );
        return (styleObject != null) ?
            styleObject[property] :
            null;
    }
    else if (isNav4)
    {
        return document[id][property];
    }
    else
    {
        return document.all[id].style[property];
    }
}

/*
 *
 * Given an id and a property (as strings), set
 * the given property of that id to the value provided.
 *
 * The property is set directly on the tag, not in the
 * stylesheet.
 *
 */
function setIdProperty( id, property, value )
{
    if (isNav6)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            styleObject[ property ] = value;
        }
    }
    else if (isNav4)
    {
        document[id][property] = value;
    }
    else if (isIE4)
    {
         document.all[id].style[property] = value;
    }
}

function findOwner( evt )
{
    var node;
    if (isNav6)
    {
        node = evt.target;
        while (node)
        {
            if ( node.nodeType == Node.ELEMENT_NODE &&
                 node.nodeName == "DIV")
            {
                return node;
            }
            node = node.parentNode;
        }
    }
    else if (isIE4)
    {
        node = window.event.srcElement;
        while (node)
        {
            if (node.tagName == "DIV")
            {
                return node;
            }
            node = node.parentElement;
        }
    }
    return null;
}

function highlight( evt )
{
    var divObj = findOwner( evt );
    if (isNav6) { divObj.style.cursor = "pointer"; }
    divObj.style.color = "#999";
}

function dim( evt )
{
    var divObj = findOwner( evt );
    if (isNav6) { divObj.style.cursor = "pointer"; }
    divObj.style.color = "#29568F";
}

function getObject( nameStr )
{
    if (isNav6)
    {
        return document.getElementById( nameStr );
    }
    else if (isIE4)
    {
        return document.all[nameStr];
    }
}


function showMenu( evt )
{
    var owner = findOwner( evt );
    var divNum;

    if (isNav6)
    {
        divNum = owner.attributes.getNamedItem("id").nodeValue;
    }
    else if (isIE4)
    {
        divNum = owner.id;
    }

    divNum = parseInt( divNum.substr(1));

    if (getIdProperty( "s" + divNum, "display") != "block" )
    {
        setIdProperty("s" + divNum, "display", "block");
        document.images["i" + divNum].src = "../images/more-minus.gif";
    }
    else
    {
        setIdProperty("s" + divNum, "display", "none");
        document.images["i" + divNum].src = "../images/more-plus.gif";
    }
}

function setupAction( node )
{
    if (isNav6)
    {
        node.addEventListener( "click", showMenu, false);
        node.addEventListener( "mouseover", highlight, false );
        node.addEventListener( "mouseout", dim, false );
        node.style.fontWeight = "bold";
    }
    else if (isIE4)
    {
        node.onclick = showMenu;
        node.onmouseover = highlight;
        node.onmouseout = dim;
    }
}

function setupEvents()
{
    var i;
    var theNode;

    for (i=0; i<vocabList.length; i++)
    {
        theNode = document.getElementById( "s" + i );
        setupAction( theNode );
    }
}

// number of divisitons with subdivs
function setup(ndiv)
{
    var i;
    var obj;

    for (i=0; i < ndiv; i++)
    {
        obj = getObject( "m" + i );
        setupAction( obj );
    }
}

setBrowser();

// -->