﻿     //<![CDATA[
$.fn.infiniteCarousel = function() {

    var timeOut = 6000;
    var element2 = $('#homeContainerAidePlanificationContentDetails');
    var timeOut = (timeOut != undefined) ? timeOut : 4000;
    var current2 = null;
    var faderStat2 = true;
    var items2 = $("#" + element2[0].id + " " + 'ul li');
    var timeOutFn2 = null;
    var thumbStyleTarget2 = '#homeContainerAidePlanificationContentNav li > div';
    var liOver2 = $(thumbStyleTarget2);
    var useClassOn = 'homeContainerAidePlanificationContentNavOn';
    var remainder = 0;

    //  fader start
    var fadeElement = function(isMouseOut, fn) {
        var thisTimeOut = (isMouseOut) ? (timeOut / 2) : timeOut;

        if (fn == 1) {
            thisTimeOut = (faderStat) ? 10 : thisTimeOut;
            if (items.length > 0) {
                timeOutFn1 = setTimeout(makeSlider, thisTimeOut);
            }
        }
        if (fn == 2) {
            thisTimeOut = (faderStat2) ? 10 : thisTimeOut;
            if (items2.length > 0) {
                timeOutFn2 = setTimeout(makeSlider2, thisTimeOut);
            }
        }


    }
    //  fader end

    //  make slider start
    var makeSlider2 = function() {
        current2 = (current2 != null) ? current2 : items2[0];
        var currNo2 = jQuery.inArray(current2, items2) + 1;
        currNo2 = (currNo2 == items2.length + 1) ? 0 : (currNo2 - 1);
        if (faderStat2 == true) {
            $(items2[currNo2]).fadeIn((timeOut / 6), function() {
                var liOver2 = $(thumbStyleTarget2);
                $(liOver2).removeClass(useClassOn);
                $(liOver2[currNo2 + remainder]).toggleClass(useClassOn);

                faderStat2 = false;
                current2 = items2[currNo2];
                fadeElement(false, 2);
            });
        }
        else {
            $(items2[currNo2]).fadeOut((timeOut / 6), function() {
                faderStat2 = true;
                current2 = items2[(currNo2 + 1)];
                fadeElement(false, 2);
            });
        }
    }

    makeSlider2();


    function repeat(str, num) {
        return new Array(num + 1).join(str);
    }

    return this.each(function() {
        var $wrapper = $('> div > div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $details = $('#homeContainerAidePlanificationContentDetails ul')
            $itemsDetails = $details.find('> li'),
            $singleDetails = $details.filter(':first'),
            $single = $items.filter(':first'),

            singleWidth = $single.outerWidth(),
            visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);

        remainder = $items.length % visible;
        // Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $details.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
            $itemsDetails = $details.find('> li');
        }

        // Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
        $itemsDetails.filter(':first').before($itemsDetails.slice(-visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $itemsDetails.filter(':last').after($itemsDetails.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect
        $itemsDetails = $details.find('> li'); // reselect


        $('#homeContainerAidePlanificationContentDetails ul li').hide().filter(function(index) { return index == 4; }).show();


        // Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);



        // paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;

            $wrapper.filter(':not(:animated)').animate({
                scrollLeft: '+=' + left
            }, 500, function() {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                }

                currentPage = page;
            });

            return false;
        }

        $wrapper.after('<a class="arrow back">&lt;</a><a class="arrow forward">&gt;</a>');

        // Bind to the forward and back buttons
        $('a.back', this).click(function() {
            return gotoPage(currentPage - 1);
        });

        $('a.forward', this).click(function() {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function(event, page) {
            gotoPage(page);
        });




        $items.hover(function() {
            clearTimeout(timeOutFn2);
            $('#homeContainerAidePlanificationContentNav li > div').removeClass('homeContainerAidePlanificationContentNavOn');
            var currentThumb = $items.index(this);
            var currentImage = $details.find('li').slice(currentThumb, currentThumb + 1).attr('id');
            if ($details.find('li').filter(function(index) { return index == currentThumb; }).html() != "")
                $details.find('li').hide().filter(function(index) { return index == currentThumb; }).show();
        },
            function() { });


        //  Aide Planification image hover start
        $('#homeContainerAidePlanificationContentDetails ul li').hover(
            function() { clearTimeout(timeOutFn2); }, function() { });




    });
};



$(document).ready(function() {
    $('#homeContainerAidePlanificationContentNav').infiniteCarousel();
    
});

//]]>
     