
var snMainSlider;
var sliderEffect;
var snTotalLinkWidth = 0;
var snMoveSizes = new Array();
var snPosition = 0;

function gforcesSecondaryNavScroller() {

    var needToSlideToActive = false;
    
    var i = 0;
    var linkSizes = new Array();

    // Create Array of element widths
    $$('#secondNavLinks li.secondNavLink').each( function (li) {
        linkSizes[i] = li.getStyle('width');
        linkSizes[i] = linkSizes[i].substr(0,linkSizes[i].length-2);
        snTotalLinkWidth = snTotalLinkWidth + Number(linkSizes[i]);  
        if(li.hasClassName('active')) {
            toEndofActiveLink = snTotalLinkWidth;
            needToSlideToActive = true;
        }
        i++;
    });

    // Calculate how much scrolling is needed
    var containerSize = $('secondNavLinksContainer').getStyle('width');
    var containerSize = containerSize.substr(0,containerSize.length-2);
    var needToScroll = snTotalLinkWidth - containerSize;

    // If any scrolling is needed display the controls 
    if ( needToScroll > 0 ) {
        $('secondaryNavPrev').show();
        $('secondaryNavNext').show();
    }

    // Create an array of the needed moves
    i = 0;
    while ( needToScroll > 0 ) {
        snMoveSizes[i] = linkSizes[i];
        needToScroll = needToScroll - snMoveSizes[i]; 
        i++;
    }
    
    // Move the slider if an element has an active class and is not being displayed.
    if(needToSlideToActive) {
        var scrollNeededToDisplayActive = 0;
        var scrollToDisplayActive = 0;
        if ( toEndofActiveLink > containerSize ) {
            scrollNeededToDisplayActive = toEndofActiveLink - containerSize;
            i = 0;
            while ( scrollNeededToDisplayActive > scrollToDisplayActive ) {
                scrollToDisplayActive = Number(scrollToDisplayActive) + Number(linkSizes[i]);
                i++;
            }
            snPosition = snPosition + i;
            scrollToDisplayActive = scrollToDisplayActive * -1;
            sliderEffect = new Effect.Move($('secondNavLinks'), { x: scrollToDisplayActive, y: 0, mode: 'relative' });
        }
    }

	snMainSlider = $('secondNavLinks');

	$('secondaryNavPrev').observe('click', function(event) {
		if (sliderEffect == null || sliderEffect.state == "finished") {
            if ( snPosition != 0 ){
                snPosition--;
                sliderEffect = new Effect.Move(snMainSlider, { x: snMoveSizes[snPosition], y: 0, mode: 'relative' });
            }
		}

	});

	$('secondaryNavNext').observe('click', function(event) {
		if (sliderEffect == null || sliderEffect.state == "finished") {
            var positionTemp = snPosition; 
            if ( snMoveSizes[ positionTemp ] != undefined ){
                var move = snMoveSizes[snPosition] * -1;
                sliderEffect = new Effect.Move(snMainSlider, { x: move, y: 0, mode: 'relative' });
                snPosition++;
            }
		}

	});
    

}

