/**************************************

SIFR : si le plugin doit masquer du SIFR, penser à insérer les .js, et .css relatifs au sifr AVANT l'insertion de JibouleSlider
sinon, le desactiveSifr() du chargement s'effectue avant la transformation du texte et ne masque donc pas les zones concernées. SUR FIREFOX
SUR ie, le bug n'est pas encore réglé

********************************************/
(function($) {
    $.fn.jibouleSlider = function(settings) {
        settings = jQuery.extend({
			//animFirst:              true,              //true ou false, anime le slider dès le chargement de la page (PAS ENCORE OPéRATIONNEL)
            ongletName:             'jibouleOnglet',
            clicName:               'jibouleClic',
			contentName:            'jibouleContent',
			openStart:              1,                   //Onglet ouvert en premier
            conteneurWidth:         970,                 //Largeur de la zone conteneur (div#jibouleslider)
            clicWidth:              100,                 //Largeur du bouton clic
            hideSIFR:               false,               //true or false // si true, masque les .sIFR-replaced lorsque l'onglet est inactif
            height:                 513,                 //hauteur de l'application
            premier_passage:        false                //true or false // si true, au premier chargement, pas d'animations
        },settings);

        var nbOnglet = $('.' + settings.ongletName).length;
        var clicZone = settings.clicWidth * (nbOnglet - 1);
        var ongletWidth = settings.conteneurWidth - clicZone;
		var contentWidth = ongletWidth - settings.clicWidth;
		var premier_passage = settings.premier_passage;
		var marginLeft = 0;
		var n = 0;
		var conteneurName = this.attr('id');
		var currOnglet = settings.openStart;
		if (currOnglet > nbOnglet) currOnglet = nbOnglet;

        //INIT CSS
        $('#' + conteneurName).css({ height: settings.height + 'px', position : 'relative', width: settings.conteneurWidth + 'px', overflow: 'hidden'});
        $('.' + settings.ongletName).css({ height: settings.height + 'px', width: ongletWidth + 'px'});
        $('.' + settings.clicName).css({ width: settings.clicWidth + 'px', overflow: 'hidden', height: settings.height + 'px'});

        this.children('.' + settings.ongletName).each(function (i) {
            // @todo : insérer le code en bas de page (après l'avoir retouché) pour autoriser ou non l'animation des onglets au chargement
            $(this).attr({id: 'onglet' + (i+1)});
			$(this).children('.' + settings.clicName).attr({id:'clic' + (i+1)});
			$(this).children('.' + settings.contentName).attr({id:'content' + (i+1)});
			$(this).children('.' + settings.contentName).css({width: contentWidth + 'px', overflow: 'hidden'});
			$(this).children('.' + settings.clicName).click(function(){
				deplaceOnglet(i+1);
			});
		});

		function deplaceOnglet(id) {
			desactiveOnglet(id);
			//$('#content' + id).css();
			$('#content' + id).css({
                width    : contentWidth + 'px',
                overflow : 'hidden'
            });
			if (id != currOnglet) reActiveOnglet(currOnglet);
			reActiveSifr(id);
			currOnglet  = id;
            newPos = (id-1) * settings.clicWidth;

            if (premier_passage) {
                $('#onglet'+id).css({
                    left: newPos + 'px'
                });
            } else {
    			$('#onglet'+id).animate({
    				left: newPos
    			});
            }
            for (i = 1; i <= nbOnglet; i++) {
			     if (i != id) {
				 	desactiveSifr(i);
					if (i > 1) {
					    if (i < id) {
							var posOngl = (i-1) * settings.clicWidth;
							if (premier_passage) {
				                $('#onglet'+i).css({
				                    left: posOngl + 'px'
				                });
				            } else {
    	                        $('#onglet'+i).animate({
    	                            left: posOngl
    	                        });
				            }
						} else {
							var posOngl = (i-2) * settings.clicWidth + ongletWidth;
							if (premier_passage) {
                                $('#onglet'+i).css({
                                    left: posOngl + 'px'
                                });
                            } else {
    		                    $('#onglet'+i).animate({
    		                        left: posOngl
    		                    });
                            }
						}
					 }
				 }
			}
            if (premier_passage) premier_passage = false;
		}

		function desactiveOnglet(id) {
			$('#clic' + id).css({cursor: 'auto'});
			$('#clic' + id).unbind('click');
		}

		function reActiveOnglet(id) {
			$('#clic' + id).click(function(){deplaceOnglet(id);});
			$('#clic' + id).css({cursor: 'pointer'});
		}

		function desactiveSifr(id) {
			if (!settings.hideSIFR) return false;
			$('#content' + id).find('.sIFR-replaced').css({display:'none'});
		}

		function reActiveSifr(id) {
			if (!settings.hideSIFR) return false;
			$('#content' + id).find('.sIFR-replaced').css({display:'block'});
		}

		deplaceOnglet(currOnglet);
		for (i = 1; i <= nbOnglet; i++) {
		    if (i != currOnglet) {
		        $('#content' + i).css({
		            width    : '0px',
		            overflow : 'hidden'
		        });
		    }
		}

    };
})(jQuery);