// JavaScript Document
function mycarousel_itemLoadCallback(carousel, state)
{
	// Check if the requested items already exist
	if (carousel.has(carousel.first, carousel.last)) {
		return;
	}

	jQuery.get(
		'promo.cfm',
		{
			first: carousel.first,
			last: carousel.last
		},
		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('image', xml).each(function(i) {
		carousel.add(first + i, mycarousel_getItemHTML(jQuery(this).text()));
	});
};

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(url)
{
	return url;
};

jQuery(document).ready(function() {
	jQuery('#mycarousel').jcarousel({
	 scroll: 1,
	 auto: 5,
	 wrap: 'circular',
	 visible: 1,
		// 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.
		//auto: 2,
		//wrap: 'last',
		//itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
		itemLoadCallback: mycarousel_itemLoadCallback
	});
});
