/* Useful information: http://donkeymedia.eu/2010/04/19/jquery-jcarousel-circular-with-cache/ */

var mycarousel_itemsList = [];

function mycarousel_getItemHTML(image, description, link)
{
	return '<a href="' + link + '"><img class="main" src="' + image + '" alt="Изображение" /></a><br /><a class="descr" href="' + link + '">' + description + '</a>';
};

function mycarousel_generateItemsListFromXML(xml)
{
	var itemsList = [];

	$(xml).find('object').each(function(i) {
		itemsList[i] = mycarousel_getItemHTML(
			$(this).find('image').text(),
			$(this).find('description').text(),
			$(this).find('link').text()
		);
	});

	return itemsList;
};

function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt){
	var idx = carousel.index(i, mycarousel_itemsList.length); // The index() method calculates the index from a given index who is out of the actual item range
	carousel.add(i, mycarousel_itemsList[idx - 1]); // [idx - 1] is current, [idx].url is the next image Url
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt){
	carousel.remove(i);
}; 

function mycarousel_MouseWheel(event, delta)
{
	if (delta < 0)
		$('.jcarousel-next-horizontal').click();
	else if (delta > 0)
		$('.jcarousel-prev-horizontal').click();
}

$(document).ready(function() {
	$.ajax({
		url:		'/action/load_carousel_data.php',
		type:		'POST',
		dataType:	'xml',
		success:	function(xml) {
			mycarousel_itemsList = mycarousel_generateItemsListFromXML(xml);

			if (mycarousel_itemsList.length > 0)
			{
				$('#mycarousel').jcarousel({
					scroll: 1,
					auto: 6,
					wrap: 'circular',
					itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
					itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
				}).mousewheel(function(event, delta){
					mycarousel_MouseWheel(event, delta);
					return false;
				});
			}
		}
	});
});

