﻿/* This javascript file is used to enable interactive tier 1, 3, & 4 navigation menus. */

$(document).ready(function() {

    /* helper functions */
    function tierToDropdown(tierLiID) {

        if (tierLiID == "tierOneOne") {
            return "#electedOfficials";
        } else if (tierLiID == "tierOneTwo") {
            return "#officesDepartments";
        } else if (tierLiID == "tierOneThree") {
            return "#services";
        } else if (tierLiID == "tierOneFour") {
            return "#thingsToDo";
        } else {
            return "";
        }
    }

    function dropdownToTier(dropdownDivID) {

        if (dropdownDivID == "electedOfficials") {
            return "#tierOneOne";
        } else if (dropdownDivID == "officesDepartments") {
            return "#tierOneTwo";
        } else if (dropdownDivID == "services") {
            return "#tierOneThree";
        } else if (dropdownDivID == "thingsToDo") {
            return "#tierOneFour";
        } else {
            return "";
        }
    }

    /* hover callbacks - need two sets of functions, one for the tier one navigation item, one for the menu itself */
    function addTierHover() {
        var idOfCaller = $(this).attr("id");
        $(tierToDropdown(idOfCaller)).addClass("tierHovering");
        $(this).addClass("tierHovering");
    }

    function addMenuHover() {
        var idOfCaller = $(this).attr("id");
        $(dropdownToTier(idOfCaller)).addClass("menuHovering");
        $(this).addClass("menuHovering");
    }

    function removeTierHover() {
        var idOfCaller = $(this).attr("id");
        $(tierToDropdown(idOfCaller)).removeClass("tierHovering");
        $(this).removeClass("tierHovering");
    }

    function removeMenuHover() {
        var idOfCaller = $(this).attr("id");
        $(dropdownToTier(idOfCaller)).removeClass("menuHovering");
        $(this).removeClass("menuHovering");
    }

    /* configuration varibles for hoverIntent plugin */
    var dropDownTierConfig = {
        interval: 50,
        sensitivity: 4,
        over: addTierHover,
        timeout: 500,
        out: removeTierHover
    };

    var dropDownMenuConfig = {
        interval: 0,
        sensitivity: 4,
        over: addMenuHover,
        timeout: 500,
        out: removeMenuHover
    };

    /* set up tier one drop down hover */
    $("#tierOneNav li").hoverIntent(dropDownTierConfig);
    $("#dropDownMenus div.topLevel").hoverIntent(dropDownMenuConfig)

    /* set up tier one clickable elements */
    $("#electedOfficials li, #communityServices, #countyBusiness").click(function() {
        window.location = $(this).find("a").attr("href");
        return false;
    }).hover(function() {
        $(this).addClass("hovering");
    }, function() {
        $(this).removeClass("hovering");
    });

    /* set up expandable elements - needed for tier 3/4, but can be used on entire page */
    $("ul.hiddenForToggle").hide();
    
    $("span.toggle").addClass("hovering").click(
        function() {

            if ($(this).attr("class").indexOf('Down') != -1) {
                $(this).removeClass("bulletDown");
                $(this).addClass("bulletRight");
            } else {
                $(this).removeClass("bulletRight");
                $(this).addClass("bulletDown");
            }

            $(this).parent().find("ul").slideToggle('normal');
        }
    );

});
