/* 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);
		var suPulsante = false;
		
		
		$('.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 = [];
		var arrayOffsets = [];
		var contatoreArray = 0;
		
		$(".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(){
				suPulsante = true;
				$('.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,
						function(){suPulsante = false;
					})
			}
			
			$(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));
				var tmp = navitemcentre[i] - (subwidth[i] * 0.5)
				offsetvalue.push(tmp);
			}
			
			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;
				}
			}
			
			arrayOffsets[contatoreArray] = offsetvalue;
			contatoreArray++;			
		});
		
		$(".subnav ul li").each(function(aIndex){
			$(this).hoverIntent(function(){suPulsante = true;},function(){setTimeout(resetSubWidth,200)});
		});
		
		function resetWidth()
		{
			if (!suPulsante)
			{
				changeWidthOpen(options.sezione, options.sottoSezione, options.animspeed);
			}
		}
		
		function resetSubWidth()
		{	
			if (!suPulsante)
			{
				suPulsante = false;
				resetWidth();
			}
		}
		
		function changeWidthOpen(sez, subSez, velocita){
			$('.slidenav-box').removeClass('inactive-box');
			$('.subnav ul').hide();
			$('.subnav ul:eq(' + sez + ')').show(1);
			if (subwidth[sez] == 0) {
				$('.slidenav-box').addClass('inactive-box');
			}
			else 
				$(".slidenav-box").animate({
					marginLeft: arrayOffsets[sez][sez],
					width: subwidth[sez]
				}, velocita)
			$('.slidenav ul li:eq(' + sez + ') a').addClass('selected');
			if (options.sottoSezione != undefined)
			{
				$('.subnav ul:eq(' + sez + ') li:eq(' + subSez + ') a').addClass('selected');
			}
			
		}
		
		if(options.sezione != undefined)
		{
			changeWidthOpen(options.sezione, options.sottoSezione, 1);
		}

	}
})(jQuery);

