(function($) { //Isole Jquery
  $(function() {
	  
	var boxes = $('#selection :checkbox');
	
	boxes.each(function(index){
		$(this).click(manageSelection);
		
		if($(this).is(':checked')){
			var name = $(this).attr('name');
			var line = $(this).parent();
			var offrir = $('input[name=offrir]').val();
			
			getContent(line, name, offrir);
		}
	});
	
	function getContent(line, name, offrir){
		$.ajax({
			url: '../paiement-securise/options.php',
			type: 'GET',
			data: 'name='+name+'&offrir='+offrir,
			dataType: 'html',
			success: function(html){
				$('#ajax').before('<fieldset id="'+name+'form"><legend>'+line.find('label').first().html()+'</legend>'+html+'</fieldset>');
				
				var radios = $('#'+name+'form :radio, #'+name+'form :checkbox'); 
				radios.click(refreshPrices);
				
				var selecs = $('#'+name+'form select');
				selecs.change(refreshPrices);
				
				refreshPrices();
			}
		});
	}
	
	function manageSelection(eventObject){
		var box = $(eventObject.target);
		var line = box.parent();
		var name = box.attr('name');
		var offrir = $('input[name=offrir]').val();
	
		
		if(box.not(':checked').size() >= 1){
			// L'élément est déjà séléctionné
			line.removeClass('selected');
			box.removeClass('checked');
			 
			 // Mettre à jour tous les prix
			 refreshPrices();
		
			// Supprimer le fieldset associé
			$('#'+name+'form').remove();
		}
		else
		{
			// Séléctionner l'élément
			line.addClass('selected');
			box.addClass('checked');
		
			getContent(line, name, offrir);
		}
	}
	
	function refreshPrices() {
		// Calculer les couts
		var url = '../paiement-securise/total.php';
		var parms = $('#formulaire').serialize();
		
		$.ajax({
			type: 'POST',
			url: url,
			dataType: 'json',
			data: parms,
			success: function(json){
				displayPrices(json);
			}
		});
	}
	
	function displayPrices (json) {
		 jQuery.each(json, function(index, value) {
		    $('#'+value.key+'form .price').first().html('<h3 style="text-align: right;">Prix : ' + value.value + '&euro;</h3>');
		 });
	}
	
	$('#formulaire').submit(function(e){
		e.preventDefault();
		// Vérifier le formulaire
		var url = '../paiement-securise/valider.php';
		var parms = $('#formulaire').serialize();
		
		$('p.error').remove();
		
		$.ajax({
			type: 'POST',
			url: url,
			dataType: 'json',
			data: parms,
			success: function(json){
				displayErrors(json);
			}
		});
	});
	
	function displayErrors (json)
	{
		// Traiter le cas particulier de 'pas d'erreurs'
		if (json.length == 0)
		{	
			if($('#errors').is(':visible')){
				$('#errors').toggle('slow','linear',function(){
					$('#errors p').remove();
				});
			}
			$('#formulaire').unbind('submit').submit();
		}
		else
		{	
			$('#errors').toggle('slow','linear',function(){
				$('#errors p').remove();
				// Afficher les erreurs en regard de chaque champ
				jQuery.each(json, function(index, value) {
					$('#errors').append('<p>'+value.erreur+'</p>');
				});
				
				if(!$('#errors').is(':visible'))
					$('#errors').toggle('slow','linear');
			});
		}
	}
	
	$('#reserver').live('click',function(){
		$('#informations_offrir').hide('slow');
		$('#resa_info').hide('slow', function(){
			$('#resa_date').show('slow');
		});
	});
	
	$('#offrir').live('click', function(){
		$('#informations_offrir').show('slow');
		$('#resa_date').hide('slow', function(){
			$('#resa_info').show('slow');
		});
	});
	
	/*Partie Jet Ski*/
	$('#initiation').unbind('click').live('click', function(){
		$('#jetskiDuree').attr('disabled', false);
		$('#jetskiRandonee').attr('disabled', true);
		refreshPrices();
	});
	$('#randonnee').unbind('click').live('click', function(){
		$('#jetskiDuree').attr('disabled', true);
		$('#jetskiRandonee').attr('disabled', false);
		refreshPrices();
	});
	
	/*Partie Wake Board*/
	$('input[name=wakeboard-activity]').live('click', function(){
		if(!$('#wakeboard-activity').is(':checked')){
			$('select[name=wakeboard-type] option:gt(0)').attr('disabled', true); //On disable toutes les options sauf la premiere
			$('select[name=wakeboard-type] option[selected]').removeAttr('selected');
			$('select[name=wakeboard-type] option[value=tour]').attr('selected', 'selected');
		}
		else
			$('select[name=wakeboard-type] option:gt(0)').attr('disabled', false);
		
		refreshPrices();
	});
	
	/*Partie Ski Nautique*/
	$('input[name=skinautique-activity]').live('click', function(){
		if($('#barefoot-activity').is(':checked')){
			$('select[name=skinautique-type] option:gt(0)').attr('disabled', true); //On disable toutes les options sauf la premiere
			$('select[name=skinautique-type] option[selected]').removeAttr('selected');
			$('select[name=skinautique-type] option[value=tour]').attr('selected', 'selected');
		}
		else
			$('select[name=skinautique-type] option:gt(0)').attr('disabled', false);
		
		refreshPrices();
	});
	
	/*Partie Flyfish Bouees*/
	$('input[name=bouee-activity]').live('click', function(){
		if(!$('#flyfish-activity').is(':checked')){
			$('select[name=bouee-nb] option:last').attr('disabled', true); //On disable toutes les options sauf la dernière
			$('select[name=bouee-nb] option[selected]').removeAttr('selected');
			$('select[name=bouee-nb] option[value=tour]').attr('selected', 'selected');
		}
		else
			$('select[name=bouee-nb] option:last').attr('disabled', false);
		
		refreshPrices();
	});
	
	/*Partie Canoe Oxoon Paddle*/
	$('input[name=canoe-activity]').live('click', function(){
		if($('#oxoon-activity').is(':checked')){
			$('select[name=canoe-type] option[value=15]').attr('disabled', false);
			$('select[name=canoe-type] option[value=60]').attr('disabled', true);
		}
		else{
			$('select[name=canoe-type] option[value=15]').attr('disabled', true);
			$('select[name=canoe-type] option[value=60]').attr('disabled', false);
		}
		//Resélectionne le premier valide
		$('select[name=canoe-type] option[selected]').removeAttr('selected');
		$('select[name=canoe-type] option:not(:disabled):first').attr('selected','selected');
		
		refreshPrices();
	});
	

	});
})(jQuery);
