function mycarousel_itemLoadCallback(carousel, state) {
	if (state == "init"){
		carousel.startAutoOrig = carousel.startAuto;

		carousel.startAuto = function() {
			if (!carousel.paused) {
				carousel.startAutoOrig();
			}
		}

		carousel.pause = function() {
			carousel.paused = true;
			carousel.stopAuto();
		};

		carousel.play = function() {
			carousel.paused = false;
			carousel.startAuto();
		};

		$("#mycarousel-next").click(function(){
			carousel.next();
			return false;
		});

		jQuery('#mycarousel-prev').click(function() {
			var item = carousel.first - 1 < 1 ? mycarousel_itemList.length : carousel.first - 1;

			if (carousel.first == 1 && !carousel.has(mycarousel_itemList.length)){
				mycarousel_loading(carousel);
			}

			if (carousel.has(item)){
				carousel.prev();
			}

			return false;
		});

		carousel.pause();
	}

	carousel.pause();

    for (var i = carousel.first; i <= carousel.last; i++) {
        if (carousel.has(i)) {
            continue;
        }

        if (i > mycarousel_itemList.length) {
            break;
        }

        if (i < 1){
            i = mycarousel_itemList.length;
            carousel.first = i;
            carousel.last = i;
        }

        carousel.add(i, mycarousel_getItemHTML(mycarousel_itemList[i-1], i));

		$("#mycarousel img.item" + i).load(function() {
			$(this).css("visibility", "visible");
			carousel.play();
		});

        $('#mycarousel img').tooltip({
            track: true,
            delay: 0,
            showURL: false,
            showBody: " - ",
            fade: 250
        });
    }
};

function mycarousel_loading(carousel){
	for (i = 0; i < mycarousel_itemList.length; i++){
		if (!carousel.has(i+1)){
			carousel.add(i+1, mycarousel_getItemHTML(mycarousel_itemList[i], i+1));
		}
	}
}

function mycarousel_getItemHTML(banner, item){
    var html;

    if (banner){
        html = "<a href=\"" + banner.link + "\"><img src=\"" + banner.url + "\" title=\"" + banner.title + "\" class=\"item" + item + "\" /></a>";
    }

    return html;
}

jQuery(document).ready(function() {
    jQuery("#mycarousel").jcarousel({
        size: mycarousel_itemList.length,
        scroll: 1,
        itemLoadCallback: {onBeforeAnimation: mycarousel_itemLoadCallback},
        animation: 1000,
        wrap: "circular",
		auto: 5,
        buttonNextHTML: null,
        buttonPrevHTML: null
    });
});
