carousel_wait = 10;
carousel_anim_duration = .5;
carousel_nav = 0;
carousel_current = 0;
carousel_interval = null;
carousel_animating = false;

function carousel_start()
{
	var carousel_length = $("#slideshow .Carousel .Item").length;
	if (carousel_length == 1) return;
	
	carousel_interval = setInterval(function() { carousel_next(); }, carousel_wait * 1000);
}

function carousel_stop()
{
	clearInterval(carousel_interval);
}

function carousel_previous()
{
    if (carousel_animating) return;
    carousel_animating = true;
    
	if (stop) 
    {
    	carousel_stop();
    }
    
	var carousel_length = $("#slideshow .Carousel .Item").length;
	if (carousel_length == 1) return;
	
	carousel_current--;
	carousel_nav--;
	carousel_nav = (carousel_nav < 0) ? carousel_nav + carousel_length : carousel_nav;
		
	if (carousel_current < 0) 
    {
		var item = $("#slideshow .Carousel .Item:nth-child(" + carousel_length +")").remove().insertBefore("#slideshow .Carousel .Item:nth-child(1)");
		$("#slideshow .Carousel").css({
			left: -1004 * (carousel_current + 2)
        });
		carousel_current++;
    }
		
    $("#slideshow .Carousel").animate({ 
    	left: -1004 * carousel_current 
	}, {
		duration: carousel_anim_duration * 1000,
		complete: function() {
			carousel_animating = false;
		}
	});

    $("#slideshow .nav li").removeClass("on");
    $("#slideshow .nav li:nth-child(" + (carousel_nav+2) + ")").addClass("on");

    if (stop) 
    {
        setTimeout(carousel_start, carousel_anim_duration * 1000);
    }
}

function carousel_next(stop)
{
	if (carousel_animating) return;
	carousel_animating = true;
	
    if (stop) 
    {
    	carousel_stop();
    }
    
	carousel_current++;
	var carousel_length = $("#slideshow .Carousel .Item").length;
	if (carousel_length == 1) return;
	carousel_nav = (carousel_nav + 1) % carousel_length;
		
	if (carousel_current > carousel_length - 1) 
    {
		var item = $("#slideshow .Carousel .Item:nth-child(1)").remove().appendTo("#slideshow .Carousel");
		$("#slideshow .Carousel").css({
			left: -1004 * (carousel_current-2)
        });
		carousel_current--;
    }
		
    $("#slideshow .Carousel").animate({ 
    	left: -1004 * carousel_current 
	}, {
		duration: carousel_anim_duration * 1000,
		complete: function() {
			carousel_animating = false;
		}
	});

    $("#slideshow .nav li").removeClass("on");
    $("#slideshow .nav li:nth-child(" + (carousel_nav+2) + ")").addClass("on");

    if (stop) 
    {
        setTimeout(carousel_start, carousel_anim_duration * 1000);
    }
}

$(window).load(carousel_start);
