//Plugin Slider
//Version 1.00
//Date : 25/05/2011

//Revision 1.00
//Version initiale

//Pré-recquis : jquery-*.js

/*
<div class="container">
	<div class="wrapper">
		<div class="item">
		</div>
		<div class="item">
		</div>
		<div class="item">
		</div>
	</div>
	<div class="next">
	</div>
	<div class="prev">
	</div>
</div>

$('.container').alpSlider();
*/

(function ($) {
    $.fn.alpSlider = function (options) {
        var defaults = {
            direction: 'horizontal',
            speed: 600,
            wrapperClass: 'wrapper',
            itemClass: 'item',
            prevClass: "prev",
            nextClass: "next"
        };

        //Rédefinie les options du plugins
        var opts = $.extend(defaults, options);

        //Initialise les différents élèments
        var oContainer = $(this);
        var oPrev = oContainer.find('.' + opts.prevClass);
        var oNext = oContainer.find('.' + opts.nextClass);
        var oWrapper = oContainer.find('.' + opts.wrapperClass);
        var oItems = oWrapper.find('.' + opts.itemClass);

        var curPosition = 0;

        //Initialise le style des boutons de navigation		
        oPrev.hide();
        if (oItems.length == 0) {
            oNext.hide();
            return false;
        }
        else if (oItems.length == 1) {
            oNext.hide();
        }

        //Initialise le style du wrapper
        oWrapper.css({
            width: oItems.length * oItems.first().outerWidth(),
            position: 'absolute'
        });

        /////////////////////////////////////////
        var Timer_ID;
        var Sens = 1;
        Timer_ID = setInterval(function () {
            if (curPosition == oItems.length - 1) {
                curPosition = 0;
                var Valeur = parseInt(oItems.first().outerWidth());
                Valeur = parseInt(Valeur) * (parseInt(oItems.size()) - 1);

                oWrapper.animate({
                    left: "+=" + Valeur +"px"
                }, opts.speed);

                oPrev.hide();
                oNext.show();

                if (curPosition == oItems.length - 1) {
                    oNext.hide();
                }

            } else {
                Avancer();
            }


        }, 5000);

        //Lors d'un clic sur le bouton suivant
        oNext.click(function () {
            clearInterval(Timer_ID);
            Avancer();
            return false;
        });

        function Avancer() {
            if (curPosition == oItems.length - 1) {
                return false;
            }

            oWrapper.animate({
                left: "-=" + parseInt(oItems.first().outerWidth()) + "px"
            }, opts.speed);

            curPosition++;

            if (curPosition == oItems.length - 1) {
                oNext.hide();
            }
            oPrev.show();
        }

        //Lors d'un clic sur le bouton précédent
        oPrev.click(function () {
            clearInterval(Timer_ID);

            if (curPosition == 0) {
                return false;
            }

            oWrapper.animate({
                left: "+=" + parseInt(oItems.first().outerWidth()) + "px"
            }, opts.speed);

            curPosition--;

            if (curPosition == 0) {
                oPrev.hide();
            }
            oNext.show();

            return false;
        });


    };
})(jQuery);

