/**
 * jFilter lequipetype.fr
 *
 * @author La maison du web <contact@lamaisonduweb.com>
 * @link http://www.lequipetype.fr/
 * @copyright Copyright &copy; 2010 lequipetype.fr
 */
 
;(function($) {
		   
$.fn.jfilter  = {

		
	init : function(getresults) 
	{
	if (getresults == null) getresults = false;
	
		// attache les evenements
		$.fn.jfilter.attach_events();
		
		// recupere le filtre
		$.fn.jfilter.init_filter();
		
		// recupere les resultats
		if(getresults == true)
			$.fn.jfilter.get_results();
	},
	
	
	
	attach_events : function()
	{
		// click sur une categorie
		$('.filtre-wrapper .couleur_left, .filtre-wrapper .filtre_categorie').live('click',function(){
			$(this).parent('.filtre-wrapper').children('.couleur_left').toggleClass('filter-moins');
			$.fn.jfilter.slide_categorie($(this).parent('.filtre-wrapper').children('.filtre_choix_list ').children('.filtre_choix_wrapper'), $(this).parent('.filtre-wrapper').children('.couleur_left').hasClass('filter-moins'));
			
		});	
		
		// click sur une checkbox
		$('.filtre_choix_wrapper .couleur_left2, .filtre_choix_wrapper .couleur_left2 input').live('click',function(e)
		{
			
			if($(this).hasClass('couleur_left2') == true)
			{
				var origine = $(this).parent('div').parent('div').parent('div');
				var checked = $(this).children('.filtre-choix-checkbox').children('input').attr('checked');
				if(checked)
					$(this).children('.filtre-choix-checkbox').children('input').attr('checked', false);	
				else
					$(this).children('.filtre-choix-checkbox').children('input').attr('checked', true);	
			}
			else
			{
				var origine = $(this).parent('div').parent('div').parent('div').parent('div').parent('div');
			}
			
			if($(origine).attr('id') == 'filtre-pays')
			{
				$('#filtre-pays .couleur_left').removeClass('filter-moins');
				$.fn.jfilter.slide_categorie($('#filtre-pays .filtre_choix_list .filtre_choix_wrapper'), false);
				$('#filtre-equipe .couleur_left').addClass('filter-moins');
				$.fn.jfilter.slide_categorie($('#filtre-equipe .filtre_choix_list .filtre_choix_wrapper'), true);
			}
			else if($(origine).attr('id') == 'filtre-equipe')
			{
				$('#filtre-equipe .couleur_left').removeClass('filter-moins');
				$.fn.jfilter.slide_categorie($('#filtre-equipe .filtre_choix_list .filtre_choix_wrapper'), false);
				$('#filtre-position .couleur_left').addClass('filter-moins');
				$.fn.jfilter.slide_categorie($('#filtre-position .filtre_choix_list .filtre_choix_wrapper'), true);				
			}
			else if($(origine).attr('id') == 'filtre-position')
			{
				$('#filtre-position .couleur_left').removeClass('filter-moins');
				$.fn.jfilter.slide_categorie($('#filtre-position .filtre_choix_list .filtre_choix_wrapper'), false);						
			}
			
			$.fn.jfilter.get_filter();
			
			var event = e || window.event;
			event.stopPropagation();
		});	
		
		
		// click sur precedent ou suivant
		$('#joueurs-precedent').live('click', function(){
			$.fn.jfilter.animepagination('-1', 'right');
			return false;
		});
		
		$('#joueurs-suivant').live('click', function(){
			$.fn.jfilter.animepagination('1','left');
			return false;
		});		
		
	},
	
	
	
	slide_categorie : function(choix_list, is_up)
	{
		if(is_up == false)
			$(choix_list).slideUp();	
		else					
			$(choix_list).slideDown();
	},
	
	
	
	get_filter : function()
	{
		$.ajax({
			'type':'POST',
			'dataType': 'json',
			'cache': false,
			'url': 'js/jfilter.php?getfilter',
		   	'data': $('#form-filtre').serialize(),
		   	'success': function(data){
				// construit le filtre avec le resultat json
				$.fn.jfilter.build_filter(data);
				$.fn.jfilter.get_results();
		   }
		});	
		
	},
	
	
	init_filter : function()
	{
		$.ajax({
			'type':'POST',
			'dataType': 'json',
			'cache': false,
			'url': 'js/jfilter.php?initfilter',
		   	'data': {},
		   	'success': function(data){
				// construit le filtre avec le resultat json
				$.fn.jfilter.build_filter(data);
			
		   }
		});	
		
	},	
	
	
	build_filter : function(data)
	{
		var new_checkbox = '\
		<div class="couleur_left2"> \
			<div class="filtre-choix-checkbox"> \
				<input type="checkbox" value="{id}" id="filter-{type}-{id}" name="checkbox_filter-{type}[{id}]"> \
			</div> \
			<div class="filtre-choix-libelle">{libelle}</div> \
		</div>';
		
		// contruit le filtre pays
		$('#filtre-pays .filtre_choix_list .filtre_choix_wrapper').empty();
		for (var key in data['pays']) 
		{
			var new_pays = new_checkbox;
			new_pays = new_pays.replace(/{id}/g, data['pays'][key]['id']);
			new_pays = new_pays.replace(/{libelle}/g, data['pays'][key]['nom']);
			new_pays = new_pays.replace(/{type}/g, 'pays');
					
			$('#filtre-pays .filtre_choix_list .filtre_choix_wrapper').append(new_pays);
			
			if(data['pays'][key]['checked'] == true)
			{
				$('#filter-pays-' + data['pays'][key]['id']).attr('checked', true);
			}

		}
		
		// contruit le filtre equipe
		$('#filtre-equipe .filtre_choix_list .filtre_choix_wrapper').empty();
		for (var key in data['equipes']) 
		{
			var new_equipe = new_checkbox;
			new_equipe = new_equipe.replace(/{id}/g, data['equipes'][key]['id']);
			new_equipe = new_equipe.replace(/{libelle}/g, data['equipes'][key]['nom']);
			new_equipe = new_equipe.replace(/{type}/g, 'equipe');
					
			$('#filtre-equipe .filtre_choix_list .filtre_choix_wrapper').append(new_equipe);
			
			if(data['equipes'][key]['checked'] == true)
			{
				$('#filter-equipe-' + data['equipes'][key]['id']).attr('checked', true);
			}			

		}		
		
		// contruit le filtre position
		$('#filtre-position .filtre_choix_list .filtre_choix_wrapper').empty();
		for (var key in data['positions']) 
		{
			var new_position = new_checkbox;
			new_position = new_position.replace(/{id}/g, data['positions'][key]['id']);
			new_position = new_position.replace(/{libelle}/g, data['positions'][key]['nom']);
			new_position = new_position.replace(/{type}/g, 'position');
					
			$('#filtre-position .filtre_choix_list .filtre_choix_wrapper').append(new_position);

			if(data['positions'][key]['checked'] == true)
			{
				$('#filter-position-' + data['positions'][key]['id']).attr('checked', true);
			}			
		}	
		
				
	},
	
	
	
	animepagination : function(nextpage,direction) 
	{

		jQuery('#resultat-joueurs').toggle("slide", { 'direction': direction}, 400);	
		// wait 200ms
		jQuery('#logo').animate({delay:1},50, function() {
			// direction opposée
			var opdirection = 'left';
			if(direction == 'left')
				opdirection = 'right';
			
			$.fn.jfilter.get_results(nextpage,opdirection);	
		});		
		
	},	
	
	
	
	get_results : function(nextpage,direction)
	{
		if (direction == null) direction = null;
		if (nextpage == null) nextpage = null;
		
		var url = 'js/jfilter.php?getresults';
		
		if(nextpage != null) url = url + '&nextpage=' + nextpage;
		
		if(direction == null)
			jQuery('#resultat-joueurs').fadeOut();
		
		$.ajax({
			'type':'POST',
			'cache': false,
			'url': url,
		   	'data': {},
		   	'success': function(data){
		   		
		   		
		   		if(direction != null)
		   		{
			   		jQuery('#resultat-joueurs').effect("slide", { 'direction': direction }, 400, function (){		
					});
			   		$('#resultat-joueurs').empty().html(data);	
		   		}
		   		else
		   		{
		   			
		   			
		   			$('#resultat-joueurs').empty().fadeIn().html(data);	
		   		}
		   		
		   }
		});			
		
	}
		
};

	   
})(jQuery);
