/*
navigation.js

Purpose:        
Javascript that controls the navigation

Subroutines:   
setTopNavStyles
Called by 
page load
Synopsis
the subroutine sets styles for each individual navigation item.
it then (via the resetNav subroutine) sets the sub menu as relevant for the page.

resetNav()
Called by 
events on the navigtion bar,
setTopNavStyles()
Synopsis
cycles through the nav items and sets the sub nav bar to show sub pages of the page specified
                    
setSubNav()
Called by 
events on the navigation bar
resetNav()
Synopsis
sets the sub navigation bar with the sub menu from a top navigtion item
*/

var tmrNavReset;

function setTopNavStyles() {
    /*
    if the browser does not support CSS3, set the style of the navigation items
    */
    var backgroundColours = new Array("e30f19", "e41b25", "e62730", "e7333b", "e93f47", "ea4b53", "eb575e", "eb575e", "ee6f75", "f07b81");

    var resetTimeout = 3000;
    //remove the first navigation iteem as it is the root
    //var element = document.getElementById("root");
    document.getElementById("level1").removeChild(document.getElementById("level1").childNodes[0]);

    //hack to get round differences in firefox and iexplore. firefox has a different child node structure.
    var iStep = 1;
    var iStart = 0;
    var iAdd = 0;
    if (!(/MSIE/.test(navigator.userAgent))) {
        iStep = 2;
        iStart = 1;
    }
    var backGroundId = 0;

    for (i = iStart; i < document.getElementById("level1").childNodes.length; i += iStep) {

        if (document.getElementById("level1").childNodes[i]) {
            document.getElementById("level1").childNodes[i].style.backgroundImage = "url(http://ccc.sitekit.net/sitefiles/top-nav/nav-" + (backGroundId + 1) + "-left.jpg)";
            document.getElementById("level1").childNodes[i].style.backgroundColor = "#" + backgroundColours[backGroundId];
            backGroundId++;
            //alert(document.getElementById("level1").childNodes[i].childNodes.length);
            switch (i) {
                case 0:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(0);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 1:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(1);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 2:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(2);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    setSubNav(2);
                    break;
                case 3:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(3);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    setSubNav(3 * iStep);
                    break;
                case 4:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(4);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 5:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(5);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 6:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(6);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 7:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(7);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 8:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {

                        setSubNav(8);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                case 9:
                    document.getElementById("level1").childNodes[i].onmouseover = function() {
                        setSubNav(9);
                    }
                    document.getElementById("level1").childNodes[i].onmouseout = function() {
                        clearTimeout(tmrNavReset);
                        tmrNavReset = setTimeout("resetNav();", resetTimeout);
                    }
                    break;
                default:
            }
            /*
            WORKAROUND
            browsers that are not internet explorer should loop through every other child node ID (1,3,5,7 etc) UNLESS there
            are sub (grand children) nodes. If there are, only incriment by 1.
            Since it defaults to two, to get it back to incrimenting by 1 i is decrimented
            */
            if ((!(/MSIE/.test(navigator.userAgent))) && (document.getElementById("level1").childNodes[i].childNodes.length > 1)) {
                i--;
            }
        }

    }
    resetNav();

}
function resetNav() {
    //loop through each nav item 
    var iStep = 1;
    var iStart = 0;
    if (!(/MSIE/.test(navigator.userAgent))) {
        iStep = 2;
        iStart = 1;       
    }
    var navId = 0;
    for (i = iStart; i < document.getElementById("level1").childNodes.length; i++) {
        if (/nav-selected/.test(document.getElementById("level1").childNodes[i].className)) {
            if (!(/MSIE/.test(navigator.userAgent))) {
                if (i == 6) {
                    setSubNav(6);
                }
                else {
                    setSubNav(i);
                }                          
            }
            else {
                setSubNav(i);
            }            
        }

    }
}

function setSubNav(topNavId) {
    clearTimeout(tmrNavReset);
    var childNodeId = 2;
    if (!(/MSIE/.test(navigator.userAgent))) {
        childNodeId = 2;
    }
    if (document.getElementById("level1").childNodes[topNavId].childNodes[childNodeId]) {
        //document.getElementById("level1Sub").innerHTML = document.getElementById("level1").childNodes[topNavId].childNodes[childNodeId -2].style.color = "#ffffff";
        document.getElementById("level1Sub").innerHTML = document.getElementById("level1").childNodes[topNavId].childNodes[childNodeId].innerHTML;
    }
    else {
        document.getElementById("level1Sub").innerHTML = "";
    }
}
