$(document).ready(function() {
	$('#jsKO').hide();
	$('#contact').mailto('b.deuzi','micetf.fr');
	$('.arrondi').corner();
	var motIntrus='';
	var phraseIntrus='';
	
	var activerSuppressions=function() {
		($('#adresses ul li').length<2) ? $('#imprimer,#envoyer').hide() : $('#imprimer').show();
		($('#adresses ul li').length>1 && $('#deconnexion').is(':visible')) ? $('#envoyer').show() : $('#envoyer').hide();
		if ($('#listes li').length==0) {
			$('#adresses,#defis,#suppressions').find('ul').remove();
			$('#listes').hide();
			$('#parametres input').removeAttr('disabled');
		}
		$('.delDefi').each(function(i) {
			$(this).unbind('click').click(function() {
				$('.erreur').text('');
				$('#adresses ul li').eq(i).remove();
				$('#defis ul li').eq(i).remove();
				$('#suppressions ul li').eq(i).remove();
				activerSuppressions();
			});
		});
	};
	$('#parametres input').change(function() {
		switch(this.id) {
			case 'phrase' :
				$('#espace').click();
				$('#parametres input[name=separateur]').attr('disabled','disable');
				motIntrus=$('#intrus').val();
				$('#intrus,#defi input').attr({'maxlength':140,'size':140}).val('');
				$('#intrus').val(phraseIntrus);
				$('span.typeUpper').text('Phrase');
				$('span.typeLower').text('phrase');
				break;
			case 'mot' :
				$('#parametres input[name=separateur]').removeAttr('disabled');
				phraseIntrus=$('#intrus').val();
				$('#intrus,#defi input:text').attr({'maxlength':26,'size':26}).val('');
				$('#intrus').val(motIntrus);
				$('span.typeUpper').text('Mot');
				$('span.typeLower').text('mot');
				break;
		}
	});
	$('#addBal').click(function() {
		$('.erreur').text('');
		var nom=$('#adresse input[name=nom]').val();
		var domaine=$('#adresse input[name=domaine]').val();
		var extension=$('#adresse input[name=extension]').val();
		var defi=$('#defi input[name=defi]').val();
		
		if (nom=='' || domaine=='' || extension=='') {
			$('#errSaisie').text('L\'adresse électronique de la boîte à lettres est incorrecte.');
			return false;
		}
		if (defi=='') {
			switch ($('#defi span').text()) {
				case 'Mot' :
					$('#errSaisie').text('La saisie d\'un mot à reconstituer est obligatoire.');
					break;
				case 'Phrase' :
					$('#errSaisie').text('La saisie d\'une phrase à reconstituer est obligatoire.');
					break;
			}
			return false;
		}
		var trouve=false;
		$('#adresses li').each(function() {
			if ($(this).text()==nom+'@'+domaine+'.'+extension) { trouve=true; }
		});
		if (trouve) {
			$('#errSaisie').text('Cette adresse a déjà été utilisée.');
			return false;
		}
		$('#defis li').each(function() {
			if ($(this).text()==defi) { trouve=true; }
		});
		if (trouve) {
			$('#errSaisie').text('Ce défi a déjà été proposé.');
			return false;
		}

		
		if ($('#listes li').length==0) {
			$('#listes').show();
			var ereg=new RegExp("\\s","g");
			(ereg.test(defi)) ? $('#espace').click(): $('#aucun').click();
			$('#parametres input[name=type]').attr('disabled','disable');
			$('#parametres input[name=separateur]').attr('disabled','disable');
			$('#adresses,#defis,#suppressions').append('<ul></ul>');
		} else {
			var ereg=new RegExp("\\s","g");
			if (!ereg.test(defi) && $('#espace').is(':checked')) $('#errSaisie').text("Attention ! Il n'y a pas d'espace dans le texte à reconstituer !");
		}
		$('#adresses ul').append('<li>'+nom+'@'+domaine+'.'+extension+'</li>');
		$('#defis ul').append('<li>'+defi+'</li>');
		$('#suppressions ul').append('<li><input type="button" class="delDefi" name="delDefi" value="X"/></li>');
		$('#adresses li,#defis li,#suppressions li').removeClass().addClass('liPaire');
		$('#adresses li:odd,#defis li:odd,#suppressions li:odd').removeClass().addClass('liImpaire');
		activerSuppressions();
		if ($('#intrus').val()!='') {
			var ereg=new RegExp("\\s","g");
			if (ereg.test($('#intrus').val())) {
				if ($('#aucun').is(':checked')) $('#errIntrus').text("Attention ! Il y a des espaces dans le texte saisi pour l'intrus !");
			} else {
				if ($('#espace').is(':checked')) $('#errIntrus').text("Attention ! Il n'y a pas d'espace dans le texte saisi pour l'intrus !");
			}
		}
		$('#defi input[name=defi]').val('');
		$('#adresse input[name=nom]').focus();
	});
	$('#intrus').change(function() {
		$('.erreur').text('');
		if ($('#listes li').length==0) {
			var ereg=new RegExp("\\s","g");
			(ereg.test($('#intrus').val())) ? $('#espace').click() : $('#aucun').click();
		} else {
			if ($('#intrus').val()!='') {
				var ereg=new RegExp("\\s","g");
				if (!ereg.test($('#intrus').val()) && $('#espace').is(':checked')) $('#errIntrus').text("Attention ! Il n'y a pas d'espace dans le texte saisi pour l'intrus !");
				if (ereg.test($('#intrus').val()) && $('#aucun').is(':checked')) $('#errIntrus').text("Attention ! Il y a des espaces dans le texte saisi pour l'intrus !");
			}
		}
	});
	
	$('#inscrire').click(function() {
		$('#errInscription').text('');
		$('#errConnexion').text('');
		var nom=$('#nomAdresse').val();
		var ac=$('#domaineAdresse').val();
		if (nom=='') {
			$('#errInscription').text("Vous n'avez pas saisi votre nom dans la première partie de l'adresse électronique !");
			return false;
		}
		if (ac=='') {
			$('#errInscription').text("Vous n'avez pas choisi votre académie dans la deuxième partie de l'adresse électronique !");
			return false;
		}
		$.post('.',{'a':'inscrire','nomAdresse':nom,'domaineAdresse':ac},function(data) {
			$('#errInscription').text(data);
		});
		return false;
	});
	$('#connecter').click(function() {
		$('#errInscription').text('');
		$('#errConnexion').text('');
		var nom=$('#nomAdresse').val();
		var ac=$('#domaineAdresse').val();
		var mdp=$('#mdp').val();
		if (nom=='') {
			$('#errInscription').text("Vous n'avez pas saisi votre nom dans la première partie de l'adresse électronique !");
			return false;
		}
		if (ac=='') {
			$('#errInscription').text("Vous n'avez pas choisi votre académie dans la deuxième partie de l'adresse électronique !");
			return false;
		}
		if (mdp=='') {
			$('#errConnexion').text("Vous n'avez pas saisi votre mot de passe !");
			return false;
		}
		if (mdp.length!=6) {
			$('#errConnexion').text("Mot de passe incorrect !");
			return false;
		}
		$.post('.',{'a':'connecter','nomAdresse':nom,'domaineAdresse':ac,'motdepasse':mdp},function(data) {
			if (data==true) {
				$('#connexion').hide();
				$('#deconnexion').show();
				activerSuppressions();
			} else {
				$('#errConnexion').text('La connexion a échouée !');
			}
		});
		return false;
	});
	$('#deconnecter').click(function() {
		$('.erreur').text('');
		$('#mdp').val('');
		$('#deconnexion').hide();
		$('#connexion').show();
		activerSuppressions();
	});
	
	$('#imprimer,#envoyer').click(function() {
		$('.erreur').text('');
		var separateur=$('#parametres input[name=separateur]:checked').val();
		var intrus=$('#intrus').val();
		var melange=$('#parametres input[name=melange]:checked').val();
		var type=$('#parametres input[name=type]:checked').val();
		var adresses=new Array();
		$('#adresses li').each(function() {
			adresses.push($(this).text());
		});
		var defis=new Array();
		$('#defis li').each(function() {
			defis.push($(this).text());
		});
		switch(this.id) {
			case 'imprimer':
				$('form input[name=a]').val('imprimer');
				$('form input[name=separateur]').val(separateur);
				$('form input[name=intrus]').val(intrus);
				$('form input[name=melange]').val(melange);
				$('form input[name=type]').val(type);
				$('form input[name=adresses]').val(adresses.join('|'));
				$('form input[name=defis]').val(defis.join('|'));
				$('#formImprimer form').submit();
			break;
			case 'envoyer':
			var nom=$('#nomAdresse').val();
			var domaine=$('#domaineAdresse').val();
			var mdp=$('#mdp').val();
			$.post('.',{'a':'envoyer','nomAdresse':nom,'domaineAdresse':domaine,'mdp':mdp,'separateur':separateur,'intrus':intrus,'melange':melange,'type':type,'adresses':adresses.join('|'),'defis':defis.join('|')},function(data) {
				$('#errEnvoi').html(data);
			});
			break;
		}
	});
	
	$('#parametres input[name=type]').removeAttr('disabled');
	$('#parametres input[name=separateur]').removeAttr('disabled');
	$('#defi input[name=defi],#intrus').val('');
	$('#adresse input[name=nom]').val('nom');
	$('#adresse input[name=domaine]').val('domaine');
	$('#adresse input[name=extension]').val('fr');
	$('#parametres ul').each(function() {
		$(this).find('input:first').click().change();
	});

	$('#jsOK').show();
});
