/*
Slide latéral.
Paramètres :
- sens : sens de l'animation (left = de gauche à droite, right = de droite à gauche)
- delai : durée de l'animation
- largeur_restante : largeur en pixels qu'on veut laisser visible quand le panneau est caché (zéro par défaut)
- call_back_show : fonction qui est exécutée quand le panneau apparaît
- call_back_hide : fonction qui est exécutée quand le panneau disparaît
- call_back_after : fonction qui est exécutée à la fin de l'animation
- force_hide : si ce paramètre vaut true, on force le masquage du panneau (s'il est masqué, on ne l'affiche pas)
*/
jQuery.fn.slideToggle = function(sens, delai, largeur_restante, call_back_show, call_back_hide, call_back_after, force_hide) {

    if (largeur_restante)
        var w = largeur_restante - $(this).width();
    else
        var w = 0 - $(this).width();

	if ($(this).css(sens) == '0px')
	{
	    if (sens == 'left')
	       var so = { left: w };
        else
	       var so = { right: w };

        $(this).animate(so, delai, null, call_back_after);
        if (call_back_hide)
            call_back_hide();
	}
	else
	{
	    if (!force_hide)
	    {
    	    if (sens == 'left')
    	       var so = { left: 0 };
            else
    	       var so = { right: 0 };

            $(this).animate(so, delai, null, call_back_after);
            if (call_back_show)
                call_back_show();
	    }
	    else
	    {
            if (call_back_after)
                setTimeout(call_back_after, delai);
	    }
	}
}

/*
Slide latéral de gauche à droite
*/
jQuery.fn.slideToggleLeft = function(delai, largeur_restante, call_back_show, call_back_hide, call_back_after, force_hide) {

    $(this).slideToggle('left', delai, largeur_restante, call_back_show, call_back_hide, call_back_after, force_hide);
}

/*
Slide latéral de droite à gauche
*/
jQuery.fn.slideToggleRight = function(delai, largeur_restante, call_back_show, call_back_hide, call_back_after, force_hide) {

    $(this).slideToggle('right', delai, largeur_restante, call_back_show, call_back_hide, call_back_after, force_hide);

}

