/* Slide Subnav Menu v1.1.1
 * by Justin Volpato http://www.justjquery.com/
 */

(function($){
	$.slidenav = function(options){
	
		var defaults = {
			animspeed: 'medium',
			hideonout: 'true'
		};
		
		var options = $.extend(defaults, options);
		
		
		$('.slidenav > ul > li:not(:has(ul))').append('<ul></ul>');
		
		$(".subnav").append($(".slidenav ul li ul"));
		$('.slidenav-box').addClass('inactive-box');
		
		
		function hideonout(){
			if (options.hideonout == 'true') {
				$('.slidenav-box').addClass('inactive-box');
			}
		}
		($(".slidenav-container"))? $(".slidenav-container").hoverIntent(function(){}, hideonout) : false;

		
		var subwidth = [];
		$(".slidenav ul li").each(function(aIndex){
			var bw = parseInt($('.slidenav-box').css("border-left-width")) + parseInt($('.slidenav-box').css("border-right-width"));
			var bp = parseInt($('.slidenav-box').css('padding-left')) + parseInt($('.slidenav-box').css('padding-right'));
			var minwidth = bw + bp;
			
			subwidth.push($('.subnav ul:eq(' + aIndex + ')').width());
			
			function changeWidth(){
				$('.slidenav-box').removeClass('inactive-box');
				$('.subnav ul').hide();
				$('.subnav ul:eq(' + aIndex + ')').show(1);
				if (subwidth[aIndex] == 0) {
					$('.slidenav-box').addClass('inactive-box');
				}
				else 
					$(".slidenav-box").animate({
						marginLeft: offsetvalue[aIndex],
						width: subwidth[aIndex]
					}, options.animspeed)
			}
			
			$(this).hoverIntent(changeWidth,function(){});
			
			
			var navitemwidth = [];
			var navculm = 0;
			var navculmwidth = [];
			var navitemcentre = [];
			var offsetvalue = [];
			for (i = 0; i < aIndex + 1; i++) {
				navitemwidth.push($('.slidenav li:eq(' + i + ')').width());
				navculm = navculm + navitemwidth[i];
				navculmwidth.push(navculm);
				navitemcentre.push(navculmwidth[i] - (navitemwidth[i] * 0.5));
				offsetvalue.push(navitemcentre[i] - (subwidth[i] * 0.5));
			}
			
			if (navitemcentre[aIndex] < (subwidth[aIndex] * 0.5)) {
				offsetvalue[aIndex] = 0;
			}
			else 
				if ((offsetvalue[aIndex] + subwidth[aIndex]) > $(".slidenav").width()) {
					offsetvalue[aIndex] = $(".slidenav").width() - subwidth[aIndex] - minwidth;
				}
		});
	}
})(jQuery);

