function mycarousel_initCallback(carousel)
{    
    if(carousel.options.size >= carousel.options.scroll)
    {       
        // Pause autoscrolling if the user moves over the clip.
        carousel.clip.hover(function() {
            carousel.stopAuto();
        }, function() {
            carousel.startAuto();
        });            
        
                    
        //Pause autoscrolling if the user moves over the next/previous button.
        carousel.buttonNext.hover(function() {
            carousel.stopAuto();
        }, function() {
            carousel.startAuto();
        });    
        
        carousel.buttonNext.click(function() {
            carousel.stopAuto();
        });         
        
        
        carousel.buttonPrev.hover(function() {
             carousel.stopAuto();
        }, function() {
             carousel.startAuto();
        });    
        
        carousel.buttonPrev.click(function() {
            carousel.stopAuto();
        });
    }
};  

function mycarousel_itemLastInCallback(carousel, item, i, state, evt)
{
    if(i >= carousel.options.size)                        
        carousel.startAuto();            
};     

function mycarousel_simpleItemVisibleInCallback(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, carousel.options.size);
    carousel.add(i, mycarousel_getSimpleItemHTML(carousel.options.itemList[idx - 1]));
};

function mycarousel_doubleItemVisibleInCallback(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, carousel.options.size);
    carousel.add(i, mycarousel_getDoubleItemHTML(carousel.options.itemList[idx - 1]));
};

function mycarousel_itemVisibleOutCallback(carousel, item, i, state, evt)
{
    carousel.remove(i);
}; 

function mycarousel_tabs_simpleItemLoadCallback(carousel, state)
{
    for (var i = carousel.first; i <= carousel.last; i++) {
        if (carousel.has(i)) {
            continue;
        }

        if (i > carousel.options.size) {
            break;
        }

        carousel.add(i, mycarousel_getSimpleItemHTML(carousel.options.itemList[i-1]));
    }
};   

function mycarousel_tabs_doubleItemLoadCallback(carousel, state)
{
    for (var i = carousel.first; i <= carousel.last; i++) {
        if (carousel.has(i)) {
            continue;
        }

        if (i > carousel.options.size) {
            break;
        }

        carousel.add(i, mycarousel_getDoubleItemHTML(carousel.options.itemList[i-1]));
    }
};  

function mycarousel_getSimpleItemHTML(item)
{
  return '<a href="'+item.url+'">'+
            '<img src="'+item.cover+'" alt="'+item.name+'" />'+
         '</a>'+
         '<p class="title"><a href="'+item.url+'">'+item.name+'</a></p>'+
         '<p class="icon">'+item.subname+'</p>'+         
		 '<p class="price">'+item.price+' &euro;</p>' +
		 '<a class="moreInfo" href="'+item.url+'"><span>' + item.moreInfo + '</span></a>';
		 //'<a class="basket" href="javascript:AddToBasket(\''+item.id+'\',\''+item.name+'\',\''+item.rubric+'\');"><span>Add to basket</span></a>';
};   
		        
function mycarousel_getDoubleItemHTML(item)
{
  return '<a href="'+item.url+'">'+
            '<img src="'+item.cover+'" width="40" alt="'+item.name+'" />'+
         '</a>'+
		 '<p class="price">'+item.price+' &euro;</p>'+
		 //'<a class="basket" href="javascript:AddToBasket(\''+item.id+'\',\''+item.name+'\',\''+item.rubric+'\');"><span>Add to basket</span></a>'+
		 '<a class="moreInfo" href="'+item.url+'"><span>' + item.moreInfo + '</span></a>';
		 '<p class="title"><a href="'+item.url+'">'+item.name+'</a></p>'+
		 '<p>'+item.subname+'</p>';
}; 

function InitHorizontalSimpleCarousel(id, scrollSpeed, scrollRefresh, itemList)
{
    var buttonNextHTML = '<a></a>';
    var buttonPrevHTML = '<a></a>';    

    if(itemList.length<=1)    
    {
//        buttonNextHTML=null;
//        buttonPrevHTML=null;
        scrollSpeed = 0;
        scrollRefresh = 0;
    }

    jQuery(document).ready(function() { 
        jQuery(id).jcarousel({
            // Configuration goes here
            itemList: itemList,
            scroll: 1,
            buttonNextHTML: buttonNextHTML,
            buttonPrevHTML: buttonPrevHTML,
            animation: scrollSpeed,
            auto: scrollRefresh,
            size: itemList.length,
            itemLoadCallback: {onBeforeAnimation: mycarousel_tabs_simpleItemLoadCallback},
            initCallback: mycarousel_initCallback,
            itemLastInCallback: {onAfterAnimation: mycarousel_itemLastInCallback},
            itemVisibleInCallback: {onBeforeAnimation: mycarousel_simpleItemVisibleInCallback},
            itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback},
            wrap:'circular'
        });
    });   
};  

function InitHorizontalDoubleCarousel(id, scrollSpeed, scrollRefresh, itemList)
{
    var buttonNextHTML = '<a></a>';
    var buttonPrevHTML = '<a></a>';    
    
    if(itemList.length<=2)    
    {
//        buttonNextHTML=null;
//        buttonPrevHTML=null;
        scrollSpeed = 0;
        scrollRefresh = 0;
    }
    
    jQuery(document).ready(function() { 
        jQuery(id).jcarousel({
            // Configuration goes here
            itemList: itemList,
            scroll: 2,
            buttonNextHTML: buttonNextHTML,
            buttonPrevHTML: buttonPrevHTML,
            animation: scrollSpeed,
            auto: scrollRefresh,
            size: itemList.length,
            itemLoadCallback: {onBeforeAnimation: mycarousel_tabs_doubleItemLoadCallback},
            initCallback: mycarousel_initCallback,
            itemLastInCallback: {onAfterAnimation: mycarousel_itemLastInCallback},
            itemVisibleInCallback: {onBeforeAnimation: mycarousel_doubleItemVisibleInCallback},
            itemVisibleOutCallback: {onAfterAnimation: mycarousel_itemVisibleOutCallback},
            wrap:'circular'
        });
    });       
};  