// ========================================================================
// ExpandNavigation v 0.1
// Author: John Norton
// ========================================================================
(function($){
	$.fn.ExpandNavigation = function(n, options){
		//navigation. Pass string to this. ex. '.navigation ul'
		var $n = n==null ? '' : n;
		//Settings (options)
		var settings = jQuery.extend({
			navItemTag:		'li',
			expandClass:	'_navExpand',
			collapseClass:	'_navCollapse',
			nativeClass:	'_navNative',
			triggerEvent:	'click',
			animationSpeed:	'slow',
			expandText:		'+',
			collapseText:	'-',
			boxTag:			'span',
			///---///
			mitem: 0
		}, options||{});
		//Constructor
		$(document).ready(function(){
			var hash=location.hash;
			if (hash) {
				settings.mitem = hash.substr(1);
			}
			$.fn.ExpandNavigation.CreateMenu($.trim($n));
			$('.'+settings.expandClass).bind(settings.triggerEvent, $.fn.ExpandNavigation.Expand);
			if (hash) {
				$.each($(".Content a"), function(i) {
					$(this).attr('href',$(this).attr('href')+'#'+settings.mitem);
				});
			}
		});
		
		//Create menu function
		$.fn.ExpandNavigation.CreateMenu = function(n){
			$.each($(n+' '+settings.navItemTag), function(i){
				if($(this).children().size() > 1)
				{
					$(this).prepend('<'+settings.boxTag+' class="'+settings.nativeClass+' '+settings.expandClass+'">+</'+settings.boxTag+'>');
					$(this).children(settings.navItemTag == 'li' ? 'ul' : settings.navItemTag).css('display', 'none');
				}
				$(this).addClass('M'+i);
				$(this).children('a:first').attr('href', $(this).children('a:first').attr('href')+'#M'+i);
			});
			if(settings.mitem != 0)
			{
				$(n+' '+settings.navItemTag+':has(.'+settings.mitem+') >.'+settings.nativeClass)
					.removeClass(settings.expandClass)
					.addClass(settings.collapseClass)
					.unbind(settings.triggerEvent, $.fn.ExpandNavigation.Expand)
					.bind(settings.triggerEvent, $.fn.ExpandNavigation.Collapse).html(settings.collapseText);
				$(n+' '+settings.navItemTag+':has(.'+settings.mitem+') >'+(settings.navItemTag == 'li' ? 'ul' : settings.navItemTag)).css('display', 'block');
			}
		}
		//Expand function
		$.fn.ExpandNavigation.Expand = function(){
			$(this).addClass(settings.collapseClass);
			$(this).removeClass(settings.expandClass);
			$(this).unbind(settings.triggerEvent, $.fn.ExpandNavigation.Expand);
			$(this).bind(settings.triggerEvent, $.fn.ExpandNavigation.Collapse);
			$(this).html(settings.collapseText);
			$(this).next().next().slideDown(settings.animationSpeed);
		}
		//Collapse function
		$.fn.ExpandNavigation.Collapse = function(){
			$(this).addClass(settings.expandClass);
			$(this).removeClass(settings.collapseClass);
			$(this).unbind(settings.triggerEvent, $.fn.ExpandNavigation.Collapse);
			$(this).bind(settings.triggerEvent, $.fn.ExpandNavigation.Expand);
			$(this).html(settings.expandText);
			$(this).next().next().slideUp(settings.animationSpeed);
		}
	};
})(jQuery);
