var mycarousel_oList;

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]));
    window.onDOMChanged();
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
};

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(item)
{
    var picture_html = '<img src="' + item.url + '" alt="' + item.title + '" style="cursor:pointer;" onclick="mycarousel_click(' + item.i + ');" />';
    if (item.blurred) {
        picture_html = "<div class='user_photo with-tooltip show_on_over'><div class='holder'></div>" + picture_html + "</div>";
    }
    return picture_html;
};

function mycarousel_click(i)
{
    jQuery('#gallery_thumbnail_' + i + '').click();
};

function mycarousel_ready(images_in_gallery, images_in_carousel)
{
    if (images_in_gallery <= 1) return;

    jQuery('#mycarousel').empty();

    jQuery('#mycarousel').jcarousel({
        wrap: 'circular',
        itemVisibleInCallback: {onBeforeAnimation: mycarousel_itemVisibleInCallback},
        itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback}
    });

    jQuery('.jcarousel-clip-horizontal').each(function() {
        var elm = this;
        $(elm).width(90*images_in_carousel - 5);
    });

    if (images_in_gallery > images_in_carousel) return;
    
    jQuery('.jcarousel-prev-horizontal').css({visibility: 'hidden'});
    jQuery('.jcarousel-next-horizontal').css({visibility: 'hidden'});
}
