/*
 * Remarque : Ce plugin se base sur les éléments d'un formulaire généré par le plugin jqTransform,
 * il faut donc impérativement appeler ce plugin après avoir éxécuter le plugin jqTransform dans le code HTML
 * 
 * Comme l'exemple ci-dessous : 
	$(".jqtransform").jqTransform();

	$("html").resetSelect();
 */

(function($) {
	
	$.fn.resetSelect = function(options) {
		
		//Paramètres par défaut
		var defaults = {
			parentID: ".jqTransformSelectWrapper"
		};
		
		var opts = $.extend(defaults, options);
		
		function resetValue(){
			//La liste des tous les éléments dans le select
			var listOfElement = $(opts.parentID).children("ul").children("li").children();
			
			//Récupération de la liste de tous les éléments dans le select,
			//pour chaque élément, on récupère le wrapper dans lequel il est, et on ajoute une classe .currentWrapper à ce wrapper,
			//puis on récupère l'attibut index de l'élément cliqué afin de tester si il est différent de 0, càd le premier élément de chaque liste
			$(listOfElement).click(function(){
				var currentWrapper = $(this).parent().parent().parent();
				var indexNull = 0;
				var currentIndex = $(this).attr("index");
				$(opts.parentID).removeClass("currentWrapper");
				$(currentWrapper).addClass("currentWrapper");
				
				//Récupération de tous les wrappers qui ne sont pas ceux dans lequel se trouve l'élément cliqué,
				//puis pour chaque wrapper on change le texte du span afin qu'il est toujours le premier élément en texte
				$(this).each(function (){
					if(currentIndex != indexNull){
						var otherWrapper = $(opts.parentID).parent().children("div").not(".currentWrapper").children("ul");
						$(otherWrapper).each(function(){
							var otherSelect = $(this).parent().children("div").children("span");
							var valueDefault = $(this).children("li:first").children().html();
							$(otherSelect).html(valueDefault);
						});
					}
				});
			});
		}
		return resetValue();
	}
})(jQuery);
