$(document).ready(function() {
	$('#jcarousel').jcarousel({
		// Uncomment the following option if you want items
		// which are outside the visible range to be removed
		// from the DOM.
		// Useful for carousels with MANY items.

		itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
		start: 0,
		visible: 9,
		scroll: 9,
		//wrap: 'circular',
		itemLoadCallback: itemLoadCallback
	});
});

function itemLoadCallback(carousel, state) {
	// Check if the requested items already exist
	if (carousel.has(carousel.first, carousel.last)) {
		return;
	}
	
	jQuery.get(
		'/pages.script.php',
		{
			first: carousel.first,
			last: carousel.last,
			akce: 'carousel'
		},
		function(xml) {
			mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
		},
		'xml'
	);
};

function mycarousel_itemAddCallback(carousel, first, last, xml) {
	// Set the size of the carousel
	carousel.size(parseInt(jQuery('total', xml).text()));

	jQuery('product', xml).each(function(i) {
		carousel.add(first + i, mycarousel_getItemHTML($(this).find('id').text(), $(this).find('url').text(), $(this).find('title').text(), $(this).find('image').text()));
	});
};

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(id, url, title, image) {
	return '<div>' + ((image == '') ? '<p>x</p>' : '<img src="' + image + '" alt="Náhled">') + '</div>';
};
