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]));
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};



/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(item)
{
    return '<a href="' + item.url + '"><img src="' + item.pic + '" width="200" height="150" alt="" /></a><div class="carousel-text"><span class="carousel-title">' + item.title + '</span><span class="carousel-description">' + item.description + '</span> <a href="' + item.url + '">Read more</a>';
};

jQuery(document).ready(function() {							
    jQuery('#mycarousel').jcarousel({		
        auto: 8,
		animation: 1500,
		scroll: 1,
		wrap: 'circular',
		itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
    });
});
