/***************************************************************************************
	
	Rémy Savard [iXmedia.com]
	jquery.ixselect.js [ixSelect]
	Dernière modification: 17 février 10
	 
	=> $('select').ixSelect({width:'200px'});
	
***************************************************************************************/

(function($) { 
	
	
	$.fn.ixSelect = function(params) { 

		// default values for parameters
		params = $.extend({
			cssClass: 'ixSelect'
		}, params);
		
		this.each(function(){
			$select = $(this);

			$select.hide();
		
			// Création de la liste principal avec l'option sélectionné
			$select.after('<ul class="'+params.cssClass+' clearfix"><li class="clearfix"><a href="javascript://"><span>'+$(this).children(':selected').html()+'</span></a><ul class="clearfix"></ul></li></ul>');
			
			// «append» les autres options
			$select.find('option').each(function(){					
				$(this).parent().next().find('ul').append('<li><a href="javascript://"><span>'+$(this).html()+'</span></a></li>');
			});
			
			// Ajout de la class «active» à l'élément «selected» de la liste
			$select.next().find('ul li:contains("'+$select.children(':selected').html()+'")').addClass('active');
			
			
			// Ajout de la class «dernier» au dernier élément de la liste
			$select.next().find('ul li:last').addClass('dernier');

			// Intéractions avec la liste et le <select/>
			$('ul.'+params.cssClass+' > li > a').click(function(){
				
				if(!$('ul.'+params.cssClass+' li ul').is(':visible')){
					
					$(this).parent().addClass('ouvert');
		
					$(this).next().slideDown('fast',function(){
						
						$('body').bind('click', function(e){
	
							$('ul.'+params.cssClass+' ul:visible').parent().removeClass('ouvert');
							$('ul.'+params.cssClass+' ul:visible').hide();
							$('body').unbind('click');
							
							return false;
						})
					});
				
				}
				
				
				
				
				
			})
			
			$('ul.'+params.cssClass+' ul a').click(function(){
				
				// Mise à jour de la liste
				$(this).parent().parent().prev().html($(this).html());
				$(this).parent().parent().find('.active').removeClass('active');
				$(this).parent().addClass('active');
				
				// Mise à jour du <select/>
				var indexActive = $(this).parent().parent().find('li').index($(this).parent());
				
				$(this).parents('ul.'+params.cssClass+'').prev().find('option').attr('selected','');
				$(this).parents('ul.'+params.cssClass+'').prev().find('option:eq('+indexActive+')').attr('selected','selected');
				
				
				// Mise à jour du Bouton
				$('#formRecherche select').each(function(){
				
				var indexSelected = $(this).children('option').index($(this).find(':selected'));
				
				if(indexSelected > 0 || ($(":input.valeurParDefaut").val() != '' && $(":input.valeurParDefaut").val() != $(":input.valeurParDefaut").attr('title'))){
						$('#formRecherche .bouton').hide();
						$('#formRecherche button').show();									
						return false;
					} else {
						$('#formRecherche .bouton').show();
						$('#formRecherche button').hide();

					}
					
				})
				
				
				
				// Partie optionnel qui fait fonctionner le bouton
				/*
				if($(this).parent().parent().find('li').index($(this).parent().parent().find('.active')) > 0){
					$('#sectionMediatheque #formRecherche button').attr('disabled','');
				} else {
					$('#sectionMediatheque #formRecherche button').attr('disabled','');
				}	
				*/
				
			});
			
		
		});
		
		return this;
	
	};

})(jQuery);