/*
	Programmer: Lukasz Czerwinski
	CodeCanyon: http://codecanyon.net/user/Lukasz_Czerwinski
	
	If this script you like, please put a comment on codecanyon.
	
*/
(function($){
$.fn.menu = function(settings){
	//Global variables 
	var el, item, httpAdress;
	//Default settings
	settings = jQuery.extend({
		Speed		: 220,		//Speed animations
		autostart	: 1, 		//(true) show subitems on subpages
		autohide	: 1,		//(true) hide active items
		itemLink	: 1,		//(true) redirect to href
		openAll		: 0			//(false) Open all subitems
	}, settings);
	//Basic element
	el = $(this);
	//Items with subitems
	item = el.children("ul").parent("li").children("a");
	//Get the window location address
	httpAdress = window.location;
	//Add class
	item.addClass("inactive");
	
	//Hide and show the subitem
	function _item (){
		var clickThis = $(this);
		if(settings.autohide) {			
			//Hide actives 
				 if (clickThis.parent().parent().parent().is("li")) {
				 	clickThis.parent().parent().find(".active").parent("li").children("ul").slideUp(settings.Speed/1.2, function(){
						$(this).parent("li").children("a").removeClass().addClass("inactive");	
					}); 
				 } else {  
						el.parent().parent().find(".active").parent("li").children("ul").slideUp(settings.Speed/1.2, function(){
							$(this).parent("li").children("a").removeClass().addClass("inactive");	
						});	 	
				}
		}
		
		if (clickThis.attr("class") == "inactive") {
			clickThis.parent("li").children("ul").slideDown(settings.Speed, function(){
				clickThis.removeClass().addClass("active"); 
				//If the item have a href
				if(settings.itemLink && clickThis.attr("href").length > 5) {
						window.location.href = clickThis.attr("href");
				}
			});
		} 
		if(clickThis.attr("class") == "active"){
				clickThis.removeClass().addClass("inactive");
				clickThis.parent("li").children("ul").slideUp(settings.Speed);
		}
		return false;
	}
	
	//Click
	item.unbind('click').click(_item);
	//Autostart
	if(settings.autostart) {
		el.children("a").each(function(){
			if(this.href == httpAdress) { 
				//if (settings.itemLink) {
					$(this).parent("li").children("ul").slideDown(100, function(){
						$(this).parent("li").children(".inactive").removeClass().addClass("active");
					});
				
				//} else {
					$(this).parent("li").parents("li").children("ul").slideDown(settings.Speed, function(){
						$(this).parent("li").children(".inactive").removeClass().addClass("active");
					});	
				//}
				
			}
		});
	}
	if(settings.openAll) {
		item.parent("li").children("ul").find(".inactive").parent("li").children("ul").slideDown(settings.Speed, function(){
			$(this).parent("li").children(".inactive").removeClass().addClass("active");
		});
	}
}
})(jQuery); //The end 
