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);
};

function mycarousel_getItemHTML(item){
  return '<a href="'+item.url+'" title="'+item.title+'"><img src="' + item.src + '" alt="' + item.title + '" /><br '+'/><strong'+'>'+item.title+'<'+'/strong><'+'/a><p>'+item.description+'<'+'/p>';
};

jq(document).ready(function() {
  jq('#mycarousel').jcarousel({        
    size: mycarousel_itemList.length,
    visible: 3,
    scroll:1,
    itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
    itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
  });
});
