/* 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);

		$('div.slidenav > ul > li:not(:has(ul))').append('<ul></ul>');

		$("div.subnav").append($('div.slidenav ul li ul'));
		$('div.slidenav-box').addClass('inactive-box');


		function hideonout(){
			if (options.hideonout == 'true') {
				$('div.slidenav-box').addClass('inactive-box');
			}
		}
		($('div.slidenav-container'))? $('div.slidenav-container').hoverIntent(function(){}, hideonout) : false;

		
		var subwidth = [];
		$('div.slidenav ul li').each(function(aIndex){
			var bw = parseInt($('div.slidenav-box').css('border-left-width')) + parseInt($('div.slidenav-box').css('border-right-width'));
			var bp = parseInt($('div.slidenav-box').css('padding-left')) + parseInt($('div.slidenav-box').css('padding-right'));
			var minwidth = bw + bp;

			subwidth.push($('div.subnav ul:eq(' + aIndex + ')').width() + 20);


			function changeWidth(){
				$('div.slidenav-box').removeClass('inactive-box');
				$('div.subnav ul').hide();
				$('div.subnav ul:eq(' + aIndex + ')').show(1);
				if (subwidth[aIndex] == 0) {
					$('div.slidenav-box').addClass('inactive-box');
				}
				else {
					$("div.slidenav-box").animate({
						marginLeft: offsetvalue[aIndex],
						width: subwidth[aIndex]
					}, options.animspeed)
				}
			}

			$(this).hoverIntent(changeWidth,function(){});

			var navitemwidth = [];
			var navculm = 0;
			var navculmwidth = [];
			var navitemcenter = [];
			var offsetvalue = [];
			for (i = 0; i < aIndex + 1; i++) {
				navitemwidth.push($('div.slidenav li:eq(' + i + ')').width());
				navculm = navculm + navitemwidth[i];
				navculmwidth.push(navculm);
				navitemcenter.push(navculmwidth[i] - (navitemwidth[i] * 0.5));
				offsetvalue.push(navitemcenter[i] - (subwidth[i] * 0.5));
			}

			if (navitemcenter[aIndex] < (subwidth[aIndex] * 0.5)) {
				offsetvalue[aIndex] = 0;
			}
			else if ((offsetvalue[aIndex] + subwidth[aIndex]) > $("div.slidenav").width()) {
				offsetvalue[aIndex] = $("div.slidenav").width() - subwidth[aIndex] - minwidth;
			}
		});
	}
})(jQuery);
