// 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 : '/index.html',
			highlightcurrent : false
		};
		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.highlightcurrent) 
				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
	});
}