﻿$.fn.carousel = function() {
    return this.each(function() {
        var wrapper = $("> div", this).css("overflow","hidden");
        var slider = wrapper.find("> ul");
        var items = slider.find("> li");
        
		items.filter(':first').before(items.slice(- visible).clone().addClass('cloned'));
        items.filter(':last').after(items.slice(0, visible).clone().addClass('cloned'));
		
        items = slider.find('> li');
        items.each(function(i) {
            if((i+1)%2===0) { $(this).addClass("even") }
            else { $(this).addClass("odd"); }
        });
        
        
        var single = items.filter(":first");
        var singleWidth = single.outerWidth() - 18; 
        var visible = Math.ceil(wrapper.innerWidth() / singleWidth);
        var currentPage = 0;
        var pages = items.length;  
        
        slider.css({width: slider.find("li:first").outerWidth() * slider.find("> li").length})
        
        function gotoPage(scollpage, page, len, additional) {
            if (page == pages) {
                wrapper.scrollLeft(18);
                page = 0;
                currentPage = page;
            } else {
                wrapper.filter(':not(:animated)').animate({
                    scrollLeft : (singleWidth * page) + (page * len) + additional
                }, 950, function () {
                    currentPage = page;
                });
            }
            return false;
        }
        
        $(this).bind('next', function (e, data) {
            //if(currentPage + data.scrollPage <= pages - data.scrollPage)
                gotoPage(data.scrollPage, currentPage + data.scrollPage, data.len, data.additional);
        });
        $(this).bind('previous', function (e, data) {
            //if(currentPage > 0) { gotoPage(currentPage - data.scrollPage, data.len, data.additional); }
            gotoPage(data.scrollPage, currentPage - data.scrollPage, data.len, data.additional);
        });
    });
};
$(document).ready(function() {
    var autoscrolling = true;
    $("#sectors").carousel().hover(function() { 
        autoscrolling = false; 
    },
    function() { 
        autoscrolling = true; 
    });
    
    $("#sectors > div").scrollLeft(18);
    
    $("#sectors .previous").click(function() {
        $("#sectors").trigger('previous', { scrollPage: 3, len: 18, additional: 18 });
    });
    $("#sectors .next").click(function() {
        $("#sectors").trigger('next', { scrollPage: 3, len: 18, additional: 18 });
    });
    
    setInterval(function () {if (autoscrolling) {$('#sectors').trigger('next', { scrollPage: 3, len: 18, additional: 18 });}}, 4000);
    
    
    /*$("#media-updates").carousel();
    $("#media-updates-pager .previous").click(function() {
        $("#media-updates").trigger('previous', { scrollPage: 1, len: 18, additional: 0 });
    });
    $("#media-updates-pager .next").click(function() {
        $("#media-updates").trigger('next', { scrollPage: 1, len: 18, additional: 0 });
    });*/
});