var viewable_carousel_td_index = 0;
var count_carousel_td = 0;
var carousel_td = null;
var carousel_width = 0;
var renew_carousel_width = true;


$(document).ready(function() {
	carousel_td = $('#carousel td.carousel_td')
	count_carousel_td = carousel_td.length;
	
	renewCarouselWidth();
	
	$('#carousel_next').click(stepNext).css('visibility', '');
	$('#carousel_prev').click(stepPrev).css('visibility', '');
});

function renewCarouselWidth() {
	
	var new_carousel_width = parseInt($('#carousel').width());
		
	if ( new_carousel_width == carousel_width ) {
		renew_carousel_width = false;
	} else {
		carousel_width = new_carousel_width;
	}
		
}

function stepPrev() {
	
	if ( carousel_td === null ) {
		return;
	}
	
	if ( viewable_carousel_td_index == 0 ) {
		return;
	}
	
	if ( renew_carousel_width ) {
		renewCarouselWidth();
	}
	
	var left = parseInt($('#carousel').css('margin-left'));
	
	var offset = parseInt(
		carousel_td.eq(viewable_carousel_td_index - 1).width()
	);
	
	if ( viewable_carousel_td_index == count_carousel_td - 1 ) {
		
		if ( carousel_width + left == 544) {
			
			var old_offset = parseInt(
				carousel_td.eq(viewable_carousel_td_index).width()
			);
			
			offset = old_offset + offset - 544;
		}
		
	}
	
	if ( offset > 0 ) {
		
		$('#carousel').animate(
			{'marginLeft': '+=' + offset + 'px'}, 500
		);
	}

	viewable_carousel_td_index--;
	
}

function stepNext() {
	
	if ( carousel_td === null ) {
		return;
	}
	
	if ( viewable_carousel_td_index == count_carousel_td - 1) {
		return;
	}
	
	if ( renew_carousel_width ) {
		renewCarouselWidth();
	}
	
	var left = parseInt($('#carousel').css('margin-left'));
	
	var offset = parseInt(
		carousel_td.eq(viewable_carousel_td_index).width()
	);
	
	//if ( viewable_carousel_td_index + 1 == count_carousel_td - 1 ) {
		
		if ( carousel_width + left - offset < 544) {
			offset = carousel_width + left - 544;
		}
		
	//}
	
	if ( offset != 0 ) {
	
		$('#carousel').animate(
			{'marginLeft': '-=' + offset }, 500
		);
		
		viewable_carousel_td_index++;
	}
	
	
}
