/**
 * Ajoute des boutons + et - pour modifier la taille des fonts d'un texte
 *
 * @version 0.1
 *
 * @example $(".description").cSize();
 *
 * @name cSize
 * @type jQuery
 * @params Object	settings	hash with options, described below.
 *								texteAgrandir 			- string: Texte du bouton "Agrandir"
 *								texteReduire 			- string: Texte du bouton "Réduire"
 *								tailles 				- Array: liste des tailles de font disponibles
 *								startSize 				- int: Taille par défaut
 *								tags 					- Array: Liste des tags HTML où l'on applique le changement de font
 *								ecraseFont 				- bool: Ecrase la taille de la font par défaut par la startSize
 *								utilisePictos 			- bool: Utilise des pictos (images) plutôt que du texte
 *								cheminPictoAgrandir 	- string: Chemin du picto "Agrandir"
 *								cheminPictoReduire 		- string: Chemin du picto "Réduire"
 * @return jQuery
 * @author Vincent Rousseau (contact AT vincent-rousseau DOT net || http://www.vincent-rousseau.net)
 */
/**
 * jerome	08/08/2011
 * gestion des cookie + sauvegarde activée + pb length corrigé 
 */

(function( $ ){
	$.fn.cSize = function(settings) {
		settings = jQuery.extend(
			{
				texteAgrandir 		: 'A+',
				texteReduire 		: 'A-',
				tailles				: Array('10pt','11pt','12pt','14pt'),
				startSize			: 0,
				tags				: Array( 'div','ul','p','h3','h4','a','span'),
				ecraseFont			: true,
				utilisePictos		: true,
				utiliseCookie		: true,
				cheminPictoAgrandir	:	'',
				cheminPictoReduire	:	''
				
			}, settings
		);
		
		return this.each(
			function()
			{
				var $this = jQuery(this);
				var current_size = settings.startSize;
				if ( settings.utiliseCookie ) {
					var sT = $.cookie("cSize");
					current_size = parseInt(sT);
				}
				if ( ! current_size ) {
					current_size = 0;
				}
				
				// Ajout des petits boutons avant les tags :
				$this.before('<div class="boutons_csize"></div>');
				
				if (!settings.utilisePictos) {
					$this.prev('div').append('<a class="bouton_csize reduire button marginRight">' + settings.texteReduire + '</a></li>');
					$this.prev('div').append('<a class="bouton_csize agrandir button ">' + settings.texteAgrandir + '</a></li');
					
				}
				else {
					$this.prev('div').append('<a class="bouton_csize reduire button2 marginRight">' + settings.texteReduire + '</a>');
					$this.prev('div').append('<a class="bouton_csize agrandir button2 "> ' + settings.texteAgrandir + '</a>');

				}
				
				// Fonction onClick pour agrandir 
				$this.prev('div').find('a.agrandir').click(function () {
					changeSize($this, 1);
				});
				
				// Fonction onClick pour réduire 
				$this.prev('div').find('a.reduire').click(function () {
					changeSize($this, -1);
				});
				
				// Styles des liens :
				$this.prev('div').find('a').css('cursor', 'pointer');
				
				// Fonction qui modifie la taille du texte passé :
				function changeSize($obj, pas) {
					var size = current_size;
					size += pas;
					if (size < 0) size = 0;
					if (size > settings.tailles.length)	{
						size = settings.tailles.length;
						size -= 1;
					}
					current_size = size;
					if ( settings.utiliseCookie ) {
						$.cookie("cSize",current_size);
					}
					$obj.css('font-size', settings.tailles[size]);
					$obj.children().css('font-size', settings.tailles[size]);
				}
				
				// On ecrase la font par défaut... Ou pas !
				if (settings.ecraseFont)
					changeSize($this, 0);
			}
		)
	}
})( jQuery );
