// 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());
		
		// 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();
            if (subwidth[aIndex] == 0) {
                $('.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));
        }
        
        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;
            }
    });
});

