function mycarousel_itemVisibleInCallback(carousel, item, i, state, evt) {
    // The index() method calculates the index from a
    // given index who is out of the actual item range.
    var idx = carousel.index(i, mycarousel_itemList.length);
	carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[idx - 1]));
	$('a[rel=carousel]').lightBox({
		imageBlank: 'fileadmin/templates/img/lightbox-blank.gif',
		imageLoading: 'fileadmin/templates/img/lightbox-ico-loading.gif',
		imageBtnClose: 'fileadmin/templates/img/lightbox-btn-close.gif',
		imageBtnPrev: 'fileadmin/templates/img/lightbox-btn-prev.gif',
		imageBtnNext: 'fileadmin/templates/img/lightbox-btn-next.gif',
		txtImage: '<br />Bild',
		txtOf: 'von'
	});
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt) {
    carousel.remove(i);
	$('a[rel=carousel]').lightBox({
		imageBlank: 'fileadmin/templates/img/lightbox-blank.gif',
		imageLoading: 'fileadmin/templates/img/lightbox-ico-loading.gif',
		imageBtnClose: 'fileadmin/templates/img/lightbox-btn-close.gif',
		imageBtnPrev: 'fileadmin/templates/img/lightbox-btn-prev.gif',
		imageBtnNext: 'fileadmin/templates/img/lightbox-btn-next.gif',
		txtImage: '<br />Bild',
		txtOf: 'von'
	});
};

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(item) {
    return '<a href="' + item.img + '" rel="carousel" title="' + item.text + '"><img src="' + item.thumb + '" width="153" height="116" title="' + item.title + '" alt="" /></a>';
};

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        wrap: 'circular',
        itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
    });
});
