// Slide Subnav Menu by Justin Volpato http://www.justjquery.com/

jQuery(function($){
	// Check for no submenu items
    $('.slidenav > ul > li:not(:has(ul))').append('<ul></ul>');
    
	// Place the submenu items into the animated box
    $(".subnav").append($(".slidenav ul li ul"));
    $('.slidenav-box').addClass('inactive-box');

    var subwidth = [];
    $(".slidenav>ul>li").each(function(aIndex){
		// Compensation values for padding and margins
        var bw = parseInt($('.slidenav-box').css("border-left-width")) + parseInt($('.slidenav-box').css("border-left-width"));
        var bp = parseInt($('.slidenav-box').css('padding-left')) + parseInt($('.slidenav-box').css('padding-right'));
        var minwidth = bw + bp;
        
		// Array of submenu widths
        subwidth.push($('.subnav ul:eq(' + aIndex + ')').width()+1);
		
		// Function for animating submenu width
        function changeWidth(){
            $(".slidenav li").removeClass('active');
            $(this).addClass('active');
            $('.slidenav-box').removeClass('inactive-box');
            $('.subnav ul').hide();
            $('.subnav ul:eq(' + aIndex + ')').show().fadeIn('slow');
            $(".slidenav ul li").removeClass('active-box');
            $('.slidenav ul li:eq(' + aIndex +')').addClass('active-box');
            if (subwidth[aIndex] == 1) {
                $('.slidenav-box').addClass('inactive-box');
            }
            else
                $(".slidenav-box").animate({
                    marginLeft: offsetvalue[aIndex],
                    width: subwidth[aIndex]
                }, 'medium');
        }
        
        $(this).hoverIntent(changeWidth, changeWidth);
        
		//Checks to set offset values
        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));
            offsetvalue.push(navculmwidth[i] + (2*i)+1);
        } 
    });
});

