$(document).ready(function () {
    if ($('div.showroomNavigation').length == 1) {
        initSpringboard(400);
    }
});

function initSpringboard (speed)
{
    $('div.showroomNavigation ul li:nth-child(' + springboardItemsPerPage + 'n)').addClass('separator');
    $('div.showroomNavigation a.next').click(function () {springboardNavigateToPage(springboardPage+1, speed); return false; });
    $('div.showroomNavigation a.prev').click(function () {springboardNavigateToPage(springboardPage-1, speed); return false; });
    if (touchDeviceTest()) {
        jQuery('div.showroomNavigation').swipe({
             swipeLeft: function() { springboardNavigateToPage(springboardPage+1, speed) },
             swipeRight: function() { springboardNavigateToPage(springboardPage-1, speed) }
        });
        $('div.showroomNavigation a.next, div.showroomNavigation a.prev').addClass('touch');
    }
    initSpringboardPageindicators(speed);
    springboardNavigateToPage(springboardGetPosition(), 0);
}

function initSpringboardPageindicators (speed)
{
    var indicators = $('div.showroomNavigation div.pageindicators');
    var amountOfLi = $('div.showroomNavigation ul li').length;
    for (i=0; i < Math.ceil(amountOfLi / springboardItemsPerPage); i++) {
        indicators.append('<a href="#"></a>');
        indicators.find('a:last-child').click(function () {
            springboardNavigateToPage($(this).index(), speed);
            return false;
        });
        if (springboardPage == i) {
            indicators.find('a:last-child').addClass('active');
        }
    }
    indicators.css('left', (($('div.showroomNavigation').outerWidth() / 2) - (indicators.outerWidth() / 2)) + 'px');
}

function springboardSavePosition () {
    jQuery.cookie('springboardPosition', springboardPage, {path : '/'});
}

function springboardGetPosition () {
    var position = jQuery.cookie('springboardPosition');
    if (position == null) {
        position = 0;
    }
    return position;
}

function springboardUpdatePageindicators ()
{
    $('div.showroomNavigation div.pageindicators a').removeClass('active');
    $('div.showroomNavigation div.pageindicators a:eq(' + springboardPage + ')').addClass('active');
}

var springboardPage = 0;
var springboardOffset = 820;
var springboardItemsPerPage = 8;
var springboardDefaultOffset = 0;

function springboardNavigateToPage (page, speed) {
    var currentLeft = $('div.showroomNavigation ul').position().left;
    var amountOfLi = $('div.showroomNavigation ul li').length;
    if (page > springboardPage && page <= Math.ceil(amountOfLi / 8) - 1) {
        var pages = page - springboardPage;
        $('div.showroomNavigation ul').animate({left: currentLeft - (springboardOffset * pages)}, speed);
        springboardPage = page;
        springboardUpdatePageindicators();
        springboardSavePosition();
    } else if (page < springboardPage && page >= 0) {
        var pages = springboardPage - page;
        $('div.showroomNavigation ul').animate({left: currentLeft + (springboardOffset * pages)}, speed);
        springboardPage = page;
        springboardUpdatePageindicators();
        springboardSavePosition();
    }
}

function touchDeviceTest() {
	var el = document.createElement('div');
	el.setAttribute('ongesturestart', 'return;');
	if(typeof el.ongesturestart == "function"){
		return true;
	}else {
		return false
	}
}
