var CDSCarousel = function(){
        items_collection = {};
        function mycarousel_initCallback(carousel) {
            carousel.carouselid = this.carouselid;
            carousel.size(items_collection[this.carouselid].length);   
            $('#'+carousel.carouselid).find('.jcarousel-control').find('a').click(function() {    
                carousel.scroll(jQuery.jcarousel.intval($(this).text()));
                return false;
            });
        };
        function mycarousel_itemFirstInCallback(carousel, item, idx, state) {
            var containerId = carousel.carouselid;    
            
            $('#' + containerId + ' .page-num').removeClass('current-page');
            
            if ($('#' + containerId + ' .' + idx).attr('class') !== undefined) {
                $('#' + containerId + ' .' + idx).addClass('current-page');
            }
            else {
               // num of items not multiple of scroll 
               if(state==='next') {
                   $('#' + containerId + ' .jcarousel-control dt:last a').addClass('current-page');
               }
               else {
                   idx = Math.ceil(idx/5)*5+1;
                   $('#' + containerId + ' .' + idx).addClass('current-page');
               }
            }
        };
        function get_items(carousel, state) {
            itemList= items_collection[carousel.carouselid];
            for (var i = carousel.first; i <= carousel.last; i++) {
                if (carousel.has(i)) {continue;}
                if (i > itemList.length) {break;}
                carousel.add(i, mycarousel_getItemHTML(itemList[i-1]));
            }
        };
        function mycarousel_getItemHTML(item) {
            var dims = '';
            if (item.dimensions) {
                dims = '" width="'+ item.dimensions.width +'" height="' + item.dimensions.height;
            }
            return '<a href="' + item.href + '">' + '<img src="' + item.url + dims  + '" alt="' + item.title + '" /></a>' + item.seeInside;
        };
        return {
            items_collection:items_collection,
            init:function() {
                $('.jcarousel-skin-tango').each(function(){
                    $(this).jcarousel({
                        scroll:5,
                        initCallback: mycarousel_initCallback,
                        itemFirstInCallback:  mycarousel_itemFirstInCallback,
                        itemLoadCallback: {onBeforeAnimation:get_items},
                        carouselid: this.id
                    });
                });
            }
        }
   }();
   
   $(function(){
    CDSCarousel.init();
   });