
var site = function() {
	this.navLi = $('#navigation li').children('ul').hide().end();
	this.init();
};

site.prototype = {
 	init : function() {
 		this.setMenu();
 	},
 	// Enables the slidedown menu, and adds support for IE6
 	setMenu : function() { 	
	 	$.each(this.navLi, function() {
	 		if ( $(this).children('ul')[0] ) {
	 			$(this).append('<span />').children('span').addClass('hasChildren')
	 		}
	 	});
 		this.navLi.hover(function() {
 			// mouseover
			$(this).find('> ul').stop(true, true).slideDown('normal','easeOutQuart');
 		}, function() {
 			// mouseout
 			$(this).find('> ul').stop(true, true).hide(); 		
		});
 	}
}

$.fn.slide = function(options){
	return this.each(function(){   
		$.slide(this, options);
	});
};

$.slide = function(container, options){
	if(pause == 0){
		var elements = $(container).children();
		if(elements.length > 1){
			elements.each(function(i){
				$(this).css({'left':i * options.width});
			});
			setTimeout((function(){
				$.slide.next(elements, options, 0);
			}), options.timeout);
		}
	}
};

$.slide.next = function(elements, options, current){
	if(pause == 0){
		elements.animate({'left':'-='+options.width}, options.speed);
		if(current == elements.length - 1) next = 0;
		else next =  current + 1;
		$("#numerotation").children().removeClass('actif');
		$("#numerotation").children().eq(next).addClass('actif');
		setTimeout((function(){
			$(elements[current]).css({'left':(elements.length - 1) * options.width});
			$.slide.next(elements, options, next);
		}), options.timeout);
	}
};

$(document).ready(function(){
	new site();
	pause = 0;
	$("#slideShow").after('<p id="numerotation"></p>').children().each(
		function(i){
			id = i + 1;
			titre = $(this).children('a').children('img').attr('alt');
			$(this).attr('id', 'photo-'+id);
			$("#numerotation").append('<a id="#voir-'+id+'" title="Show '+titre+'">'+id+'</a>');
		}
	).first().show();
	
	$("#numerotation").children().click(
		function(){
			pause = 1;
			// $("#bouton #pause").hide();
			// $("#bouton #play").show();
			id = $(this).attr('id').substring(6);
			if($(this).attr('class')!='actif'){
				$("#numerotation").children().removeClass('actif');
				$(this).addClass('actif');
				$("#slideShow").children().fadeOut('normal',
					function(){
						$(this).css({'left':'0'});
					}
				);
				$('#photo-'+id).fadeIn('normal');
			}
		}
	).first().addClass('actif');
	
	$('#slideShow').slide({
		width:712,
		speed:500,
		timeout:7000
	});
	
	// ICI !!
	
	// Cherchons les inputs avec l'attribut required
	requiredInputs = $('form').find('input[required="required"]');

	// Ajoutons les inputs avec la classe required pour les input ou l'attribut required n'est pas autorisé
	requiredInputs + $('form').find('input.required');

	// Ajoutons la classe de validation pour ces inputs
	requiredInputs.addClass('validate[required]');
		
	// Traitons le cas particulier des emails
	email = $('form').find('input.email[required="required"]');
	email.removeClass();
	email.addClass('email validate[required,custom[email]]');
	// Traitons le cas particulier des confirm emails
	email = $('form').find('input.confirmEmail[required="required"]');
	email.removeClass('validate[required]');
	
	
	// Traitons le cas particulier des checkboxes
	checkbox = $('form').find('input.required[type="checkbox"]');
	checkbox.removeClass();
	checkbox.addClass('validate[required]'); // On fait rien de spécial ?!
	
	// Traitons le cas particulier des radio
	radio = $('form').find('input.required[type="radio"]');
	radio.removeClass();
	radio.addClass('validate[required]'); // On fait rien de spécial ?!

	// Traitons le cas particulier des textareas:
	textarea = $('form').find('textarea[required="required"]');
	textarea.removeClass();
	textarea.addClass('validate[required]'); // On fait rien de spécial ?!
	
	
	
	//$('#chooseLanguage input').addClass('validate[minCheckbox[1]]');

	//$('#contact-firstName').addClass('validate[required,custom[onlyLetter]]');
	//$('#contact-lastName').addClass('validate[required,custom[onlyLetter]]');
	//$('#contact-confirmEmail').addClass('validate[required,equals[contact-email]]');
	//$('#membership-accept-0').addClass('validate[required]');
	//$('#affiliatedMember-accept-0').addClass('validate[required]');
	//$('#affiliatedMember-signature').addClass('validate[required]');

	$('form').validationEngine();
	
	// $("#bouton").append('<a id="pause" title="Pause">Pause</a>');
	// $("#bouton").append('<a id="play" title="Play">Play</a>');
	
	// $("#bouton #pause").click(
		// function()
		// {
			// pause = 1;
			
			// $(this).hide();
			// $("#bouton #play").show();
		// }
	// );
	
	// $("#bouton #play").hide().click(
		// function()
		// {
			// pause = 0;
			
			// $(this).hide();
			// $("#bouton #pause").show();
			
			// $('#slideShow').slide({
				// width:712,
				// speed:2000,
				// timeout:10000
			// });
		// }
	// );
});
