jQuery.fn.reverse = Array.prototype.reverse;

(function($) {
    // START

    var menu_timer = false;

    var MENU_DELAY = 700;
    var ANIMATION_SPEED = 200;


    function menu_over() {
        var me = $(this);
        if (me.hasClass('hovered')) {
            window.clearTimeout(menu_timer);
            return false;
        }
        hide_all_menus();
        me.addClass('hovered');
        var submenu = me.siblings('ul').eq(0);
        // submenu.slideDown(300);
        submenu.fadeIn(ANIMATION_SPEED);
    }

    function submenu_over() {
        window.clearTimeout(menu_timer);
    }

    function menu_out() {
        menu_timer = window.setTimeout(hide_all_menus, MENU_DELAY);
    }

    function hide_all_menus() {
        $('#nav>ul>li>a').removeClass('hovered');
        $('#nav>ul>li>span').removeClass('hovered');
        // $('#nav li ul').slideUp(300);
        $('#nav li ul').fadeOut(ANIMATION_SPEED);
        window.clearTimeout(menu_timer);
    }

    var has_current = false;
    function highlight_current_link() {
        if (has_current) {
            return false;
        }
        var me = $(this);
        if (document.location.pathname.match(me.attr('href'))) {
            me.addClass('current');
            has_current = true;
        }
    }

    function select_locations() {
        var content = $('#locatorContent');
        content.hide();
        var sel = $(this).find('select').eq(0).val();
        content.fadeIn();
        return false;
    }

    // DOM READY
    $(function() {
    $('#nav>ul>li>a').mouseover(menu_over).mouseout(menu_out);
    $('#nav>ul>li>span').mouseover(menu_over).mouseout(menu_out);
        $('#nav li ul').mouseover(submenu_over).mouseout(menu_out).hide();


        $('#nav>ul>li>a').reverse().each(highlight_current_link);
        $('#nav>ul>li>span').reverse().each(highlight_current_link);

        $('#locator form').submit(select_locations);
        $('#locator form select').change(select_locations);
        $('#locatorContent').hide();
   });

    // END
})($);


