
var carousel_init = function() {
	$('#carousel').addClass('js');
	wv_count = $('#carousel .carousel_list ul').length;
	for (g=1; g<=wv_count; g++) {
		$('#carousel #group_links').append('<a href="#" title="Page '+g+'" id="page'+g+'">Page '+g+'</a> ');
	}
	$('#carousel #group_links').children().each(function(index) {
		$(this).data('group',index);
		$(this).click(function(){carousel_nav('group',$(this).data('group'));return false;});
		$(this).keypress(function(){carousel_nav('group',$(this).data('group'));return false;});
	});
	$('#carousel .block .previous').click(function(){carousel_nav('dir','left');return false;});
	$('#carousel .block .previous').keypress(function(){carousel_nav('dir','left');return false;});
	$('#carousel .block .next').click(function(){carousel_nav('dir','right');return false;});
	$('#carousel .block .next').keypress(function(){carousel_nav('dir','right');return false;});
	// get values for use later
	wv_group_width = $('#carousel .carousel_list ul').outerWidth();
	wv_current_group = 0;
	wv_animating = false;
	carousel_check_arrows(wv_current_group);
}

var carousel_nav = function(dir_or_group,value) {
	if (dir_or_group == 'group') {
		if (value != wv_current_group && !wv_animating) {
			var multiplier = wv_current_group-value;
			var new_left = $('#carousel .carousel_list').position().left+(multiplier*wv_group_width);
			$('#carousel .carousel_list').animate({left:new_left},Math.abs(multiplier)*200,function() { wv_animating=false; });
			wv_animating = true;
			wv_current_group = value;
			carousel_check_arrows(wv_current_group);
		}
	} else {
		if (value == 'left') {
			var new_group = wv_current_group-1;
			if (new_group >= 0) {
				var multiplier = 1;
				var new_left = $('#carousel .carousel_list').position().left+(multiplier*wv_group_width);
				$('#carousel .carousel_list').animate({left:new_left},Math.abs(multiplier)*200,function() { wv_animating=false; });
				wv_animating = true;
				wv_current_group = new_group;
				carousel_check_arrows(wv_current_group);
			}
		} else {
			var new_group = wv_current_group+1;
			if (new_group < wv_count) {
				var multiplier = -1;
				var new_left = $('#carousel .carousel_list').position().left+(multiplier*wv_group_width);
				$('#carousel .carousel_list').animate({left:new_left},Math.abs(multiplier)*200,function() { wv_animating=false; });
				wv_animating = true;
				wv_current_group = new_group;
				carousel_check_arrows(wv_current_group);
			}
		}
	}
}

var carousel_check_arrows = function(current_group) {
	// The group indexes are array style, starting at 0. wv_count is the number of pages, not the highest index.
	// Fix that.
	current_group = current_group + 1;
	// Disable arrows as needed.
	if (current_group == 1) {
		$('#carousel .block .previous').addClass('disabled');
		$('#carousel .block .next').removeClass('disabled');
	} else if (current_group < wv_count) {
		$('#carousel .block .previous').removeClass('disabled');
		$('#carousel .block .next').removeClass('disabled');
	} else {
		$('#carousel .block .previous').removeClass('disabled');
		$('#carousel .block .next').addClass('disabled');
	}
	// Remove highlighting from all the page circles.
	$('#carousel #group_links a').removeClass('selected');
	// Highlight the correct page.
	$('#carousel #group_links a#page'+current_group).addClass('selected');
}

