// JavaScript Document
// Slide Menu
$.fn.slidemenu = function(options) {
    this.each(function() {
        // set defaults
        var slidemenu = this;

        slidemenu.options = {  // set options
            openall: true,
            closeall: true,
            closealltext: '[ collapse all - ]',
            openalltext: '[ expand all + ]',
            homepage: '/default.asp',
            hightlightcurrent: true
        };
        slidemenu.options = $.extend(slidemenu.options, options); // load options and defualts

        slidemenu.openall = function(obj) {  // function to enable open all menus

            $(obj).before("<div class=\"slidemenu_all\"> <a href=\"##\" id=\"expand_" + obj.id + "\">" + slidemenu.options.openalltext + "</a></div>");
            $("#expand_" + obj.id).click(function() { $("#" + obj.id + " > li > a").find("+ ul").slideDown().parent().addClass("openMenu"); return false; });
        };

        slidemenu.closeall = function(obj) {  // function to enable close all menus
            $(obj).after("<div class=\"slidemenu_all\"> <a href=\"##\" id=\"collapse_" + obj.id + "\">" + slidemenu.options.closealltext + "</a></div>");
            $("#collapse_" + obj.id).click(function() { $("#" + obj.id + " > li > a").find("+ ul").slideUp().parent().removeClass("openMenu"); return false; });
        };


        slidemenu.highlightcurrent = function(obj, homepage) {  // function to highlight current menu
            // Check the home link against the path and set the navigation accordingly.
            var path = location.pathname;
            if (path == homepage || path == "/") {
                // Note that the jQuery selector matches *only* the home link
                var $nav = $("#" + obj.id + ' a[@href="' + homepage + '"]');
            } else {
                var $nav = $("#" + obj.id + ' a[@href$="' + path + '"]');
            }

            // Add the active class to the current path and activate it's subnavigation
            $nav.addClass('active');

            if ($nav.parent().hasClass("submenu")) {
                $nav.parent().toggleClass("openMenu").find("ul").show();
            } else {
                $nav.parents("ul").show().parent().toggleClass("openMenu");
            }


            // If the active class has subnavigation, show it

        };

        slidemenu.init = function(obj) {
            $("#" + obj.id + " > li > a").find("+ ul").hide().parent().addClass("submenu");  // close all menus on init

            if (slidemenu.options.closeall)  // if option set enable close all sub menus
                slidemenu.closeall(obj);

            if (slidemenu.options.openall)  // if option set enable open all sub menus
                slidemenu.openall(obj);

            if (slidemenu.options.hightlightcurrent)
                slidemenu.highlightcurrent(obj, slidemenu.options.homepage)


            $("#" + obj.id + " > li > a").click(function() {  // Expand or collapse on click 										 
                if ($(this).parent().children().length > 1) {
                    $(this).find("+ ul").slideToggle();
                    $(this).parent().toggleClass("openMenu");
                    return false;
                }
            });
        };
        slidemenu.init(this);  // init menus
    });
}