/* object */var asyncBusy = new Object();

// .NET Control IDs
/* string */var LoginButtonId;
/* string */var ActiveIncidentsUpdatePanelId;
/* string */var ActiveIncidentsParameterFieldId;
/* string */var ActiveIncidentsTriggerButtonId;

/* htmlElement */var subnavUl;
/* number */var subnavTimeout;

/* void */function signInImg_click(/* HTMLElement */image)
{
    if (LoginButtonId)
    {
        __doPostBack(document.getElementById(LoginButtonId).name, "");
    }
}

/*****************************************************************************
 * ActiveIncidents User Control
 *****************************************************************************/
/* number */var incidentTimeout = setTimeout("nextActiveIncident()", 15000);

/**
 *
 */
/* void */function prevActiveIncident()
{
    if (incidentTimeout != null)
    {
        clearTimeout(incidentTimeout);
        incidentTimeout = null;
    }

    if (ActiveIncidentsParameterFieldId && document.getElementById("activeIncidentsDescriptionDiv"))
    {
        document.getElementById(ActiveIncidentsParameterFieldId).value = "previous";
        __doPostBack(document.getElementById(ActiveIncidentsTriggerButtonId).name, "");
    }

    incidentTimeout = setTimeout("nextActiveIncident()", 60000);
}

/**
 *
 */
/* void */function nextActiveIncident()
{
    if (incidentTimeout != null)
    {
        clearTimeout(incidentTimeout);
        incidentTimeout = null;
    }

    if (ActiveIncidentsParameterFieldId && document.getElementById("activeIncidentsDescriptionDiv"))
    {
        document.getElementById(ActiveIncidentsParameterFieldId).value = "next";
        __doPostBack(document.getElementById(ActiveIncidentsTriggerButtonId).name, "");
    }

    incidentTimeout = setTimeout("nextActiveIncident()", 15000);
}

/**
 *
 */
/* void */function travelTimeClick(/* string */roadway)
{
    var i95Img = document.getElementById("i95TravelTimesImg");
    var i595Img = document.getElementById("i595TravelTimesImg");
    var i75Img = document.getElementById("i75TravelTimesImg");
    var i95Div = document.getElementById("i95TravelTimesDiv");
    var i595Div = document.getElementById("i595TravelTimesDiv");
    var i75Div = document.getElementById("i75TravelTimesDiv");
    var currentTravelTimeField = document.getElementById(CurrentTravelTimeFieldId);
    
    if (roadway == "i595")
    {
        dojo.addClass(i595Img, "disabledSmallButtonImg");
        dojo.style(i595Div, "display", "block");
        dojo.removeClass(i95Img, "disabledSmallButtonImg");
        dojo.style(i95Div, "display", "none");
        dojo.removeClass(i75Img, "disabledSmallButtonImg");
        dojo.style(i75Div, "display", "none");
        if (currentTravelTimeField) currentTravelTimeField.value = "i595";
    }
    else if (roadway == "i75")
    {
        dojo.addClass(i75Img, "disabledSmallButtonImg");
        dojo.style(i75Div, "display", "block");
        dojo.removeClass(i95Img, "disabledSmallButtonImg");
        dojo.style(i95Div, "display", "none");
        dojo.removeClass(i595Img, "disabledSmallButtonImg");
        dojo.style(i595Div, "display", "none");
        if (currentTravelTimeField) currentTravelTimeField.value = "i75";
    }
    else
    {
        dojo.addClass(i95Img, "disabledSmallButtonImg");
        dojo.style(i95Div, "display", "block");
        dojo.removeClass(i595Img, "disabledSmallButtonImg");
        dojo.style(i595Div, "display", "none");
        dojo.removeClass(i75Img, "disabledSmallButtonImg");
        dojo.style(i75Div, "display", "none");
        if (currentTravelTimeField) currentTravelTimeField.value = "i95";
    }
}

/* void */function nav_mouseover(/* string */navItem)
{
    console.log("nav_mouseover: " + navItem);
    if (subnavTimeout != null)
    {
        clearTimeout(subnavTimeout);
        subnavTimeout = null;
    }

    var showUl;
    switch (navItem)
    {
        case "traffic":
            showUl = document.getElementById("headerNavTrafficSubnavUl");
        break;
        case "about":
            showUl = document.getElementById("headerNavAboutSubnavUl");
        break;
        case "services":
            showUl = document.getElementById("headerNavServicesSubnavUl");
        break;
    }

    if (showUl)
    {
        if (subnavUl != null && subnavUl != showUl)
        {
            nav_mouseout();
        }
        dojo.addClass(showUl, "active");
        subnavUl = showUl;
    }
}

/* void */function nav_mouseout(/* string */navItem)
{
    console.log("nav_mouseout: " + navItem);
    if (subnavTimeout != null)
    {
        clearTimeout(subnavTimeout);
        subnavTimeout = null;
    }
    if (navItem && subnavUl)
    {
        // if a string was passed, set the hide timer
        subnavTimeout = setTimeout("nav_mouseout()", 500);
    }
    else if (subnavUl != null)
    {
        // assume we've been fired from a timeout
        dojo.removeClass(subnavUl, "active");
        subnavUl = null;
    }
}

function replaceButtons()
{
    dojo.query("input.replaceButton").forEach(
        function(oldNode)
        {
            var label = oldNode.value.replace(/\s/gm, "_").toLowerCase().replace(/\+/gm, "down").replace(/\-/gm, "up").replace(/\</gm, "left").replace(/\>/gm, "right");
            /* boolean */var size = "small";
            if (dojo.hasClass(oldNode, "largeButton")) size = "large";
            /* string */var colour = "w";
            if (dojo.hasClass(oldNode, "blackButton")) colour = "b";
            /* string */var bg = "images/buttons/{size}/{label}_{colour}.gif";
            
            var newNode = document.createElement("img");
            newNode.src = "images/pix.gif";
            newNode.alt = "";
            newNode.width = "1";
            newNode.height = "1";
            dojo.addClass(newNode, size + "ButtonImg");
            dojo.style(newNode, "backgroundImage", "url(" + bg.replace(/\{size\}/, size).replace(/\{colour\}/, colour).replace(/\{label\}/, label) + ")");
            dojo.style(newNode, "width", oldNode.style.width);

            newNode.onclick = function()
            {
                // debugger;
                dojo.stopEvent(arguments[0]);
                if (this.previousSibling)
                {
                    if (this.previousSibling.type.toLowerCase() == "submit")
                    {
                        __doPostBack(this.previousSibling.name, "");
                    }
                    else if (this.previousSibling.onclick)
                    {
                        this.previousSibling.onclick();
                    }
                }
            }

            dojo.style(oldNode, "display", "none");
            dojo.place(newNode, oldNode, "after");
            
            // console.log(newNode.parentNode.innerHTML);
        }
    );
}

function toggleElement(/* HTMLElement */element)
{
    if (dojo.hasClass(element, "expandedDiv"))
    {
        dojo.removeClass(element, "expandedDiv");
        dojo.addClass(element, "collapsedDiv");
    }
    else
    {
        dojo.removeClass(element, "collapsedDiv");
        dojo.addClass(element, "expandedDiv");
    }
}

function search()
{
    document.location = "SearchResult.aspx?" + escape(document.getElementById("headerNavSearchText").value);
}