/** Schumacher benjamin **/
/** Plugin Cycle Jquery v0.4 **/
/** @copyright Webgenery 2011 **/

/** example

	Affiche des div en dans l'ordre qui sont contenu dans une div principal :

	$(document).ready(function() {
		$("#bloc_coup_coeur").fadeDiv({
			pause : 6000,
			duree : 1000,
			width : 'auto',
			height: 'auto'
		});
	});

	<div id="bloc_coup_coeur">
		<div>une image</div>
		<div>du texte</div>
		<div>des liens</div>
	</div>

	**/

	$.fadeDiv = {
		build : function (options)
		{
			var defaults = {
				pause : 6000, // durée durant laquelle reste afficher chaque div
				duree : 1000, //le durée de l'animation de l'apparition/disparition de la div
				width : 'auto', // la largeur voulu par la div englobante ou sinon en auto prend la taille de la div englobée la plus grande
				height: 'auto' // la hauteur voulu par la div englobante ou sinon en auto prend la taille de la div englobée la plus grande
	        };

			var divPrincipal = this.selector;
			var selector = this.selector+" > div";
			var width_auto = '';
			var height_auto = '';
			i=1;

			// déclare des id a chaque div et récupére les height et width max
			$(selector).each(function(){

				if (width_auto<$(this).css("width")) {
					width_auto = $(this).css("width");
				}
				if (height_auto<$(this).css("height")) {
					height_auto = $(this).css("height");
				}
				$(this).attr("id",divPrincipal+i);
				if (i > 1) {
					$(this).css("display","none");
				}
				i++;
			});


			// si le width est auto, définit les height et width max pour la div englobante
			if (options.width != 'auto') {
				$(divPrincipal).css('width', options.width);
			}else{
				$(divPrincipal).css('width', width_auto);
			}

			if (options.height != 'auto') {
				$(divPrincipal).css('height', options.height);
			}else{
				$(divPrincipal).css('height', height_auto);
			}


			start();

			$(selector).hover(function(){
				pause();
			});

			$(selector).mouseleave(function(){
				start();
			});

			// démarre le cycle
			function start(){
				intval = setInterval(cycle,options.pause);
			}

			// stop le cycle
			function pause(){
				if (intval!="") {
					clearInterval(intval);
				}
			}

			//la fonction qui effectue le cycle
			function cycle() {
				$(selector).each(function(){
					if ($(this).css("display") == "block") {
						if ($(this).attr("id") == $(selector).last().attr("id")) {
               				$(this).fadeOut(options.duree, function()
								{$(selector).first().fadeIn(options.duree)
							});
						}else{
							$(this).fadeOut(options.duree, function(){
								$(this).next().fadeIn(options.duree);
							});
						}

					return (false);
					};
				})
			}

		}
	};
	$.fn.fadeDiv = $.fadeDiv.build;



