jQuery(document).ready(function() {
	/*
	*	Rajout des data sur le form
	*	On part du principe qu'il y a des erreurs (quand on arrive les cases sont vides)
	*	Du coup, on peut pas valider le formulaire.
	*/
	$("#form").data('noError',false);
	$("#form").data("goForm",false);
});

// Dès qu'on clique sur #submit
jQuery("input[type='submit']").live('click', function(){
	// S'il y a des erreurs on lance verifForm();
	$("div#boxerror").remove();
	if ($("#form").data('noError') == false) { verifForm(); }
	// Si après la moulinette de verifForm il n'y a plus d'erreur, alors on met goForm  à true
	if ($("#form").data('noError') == true) { $("#form").data("goForm",true); } 
});

jQuery("#form").live('submit', function() {
	// Si goForm est true (donc noError == true = pas d'erreur) alors on rend le form submitable
	if ($("#form").data("goForm") == true) { return true; }
	// Sinon, non.
	else { return false; }
});

// Quand on clique sur la div du message d'erreur
jQuery("div#boxerror").live('click', function(){
	$("div#boxerror").fadeOut("slow");
	// On vide l'HTML
	$("#error ul").html("");
});

// Quand on clique sur un .obligatoire
jQuery(".obligatoire").live('focus', function() {
	// Si le contenu est "champ obligatoire" (msg d'erreur)
	if ($(this).val() == "Champ obligatoire") {
		// On vire la bordure, on remet la couleur "normale" et on vire l'italic
		$(this).val("").css({
			"border-left": "1px black solid", "color": "black", "font-style": "normal"
		});
	}
});

// function qui va servir à parser les elements vides & remplir notre tableau
function verifForm() {
	// On reset tout le délire
	var count = 0; error = []; noError = 0; elemName = "";
	// Pour chaque input.obligatoire
	$('input.obligatoire').each(function(i, elem){
		var elem = $(elem);
		// Si les input sont vides
		if ((!elem.val()) || (elem.val() == "Champ obligatoire")) {
			// On leur fout un border left de 2 px
			elem.val("Champ obligatoire").css({
				"border-left": "2px red solid",
				"color": "red",
				"font-style": "italic"
			});
			// On donne du contenu à notre variable qui servira à ne lancer qu'une fois la fonction
			count++;
			// On rempli le tableau
			error[i] = parseName(elem.attr("name"));
			
		}
		// Si l'elem.attr("name") == email & que la regex n'est pas matchée alors on se fait un petit message d'erreur, coolos quoi.
		if (elem.attr("name") == "destinataires_email" && !elem.val().match(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/)) { error[i] = "Email non valide"; }
		// Si les inputs ne sont pas vides, alors on rempli "noError" qui servira à lancer ou non une function
		else { noError++; }
	});

	// Si il y a quelque chose dans count, alors on lance afficheErreur avec notre tableau en argument
	if (count) return afficheErreur(error);

	// Sinon, on fait autre chose, à définir.
	else if (noError) {
		$("#form").data('noError',true);
	}
}

// Function qui va servir à afficher notre message d'erreur
function afficheErreur(data) {
	// On créé, CSS & affiche la div du message d'erreur
	$('<div id="boxerror"><div id="error"><p>Merci de bien vouloir remplir<br />les champs suivants :</p><ul></ul></div></div>').appendTo("body");
	
	$("div#boxerror").css({
		'top': '0',
		'left' :'0',
		'width' :'100%',
		'height' :'100%',
		'background' :'url(/site/utils/js/error.png) top center repeat',
		'position' :'absolute',
		'display' :'none'
	});
	$("div#boxerror #error").css({
		'box-shadow': ' 10px 10px 5px #888',
		'width': '260px',
		'min-height': '260px',
		'border': '2px #75D1BF solid',
		'padding': '10px',
		'background-color': '#B2B2B2',
		'position': 'relative',
		'top': '50%',
		'left': '50%',
		'margin': '-150px 0 0 -150px'
	});
	$("div#boxerror #error p").css({
		'font-family': 'arial',
		'font-size': '15px',
		'text-align': 'center',
		'color': '#508278',
		'font-weight': 'bold'
	});
	$("div#boxerror #error ul").css({
		'font-family': 'arial',
		'font-size': '15px',
		'border-top': '1px #cdcdcd solid',
		'padding': '10px 0 0 0',
		'color': '#FFFFFF'
	});
	$("div#boxerror #error ul li").css({
		'text-align': 'center',
		'list-style-type': 'none'
	});
	
	
	
	if ($("div#boxerror").is(":hidden")) {
		$("div#boxerror").slideDown("slow");
	}
	// On parcour le tableau pour remplir notre liste de trucs à remplir
	for (var z = 0; z <= data.length; z++) {
		if (data[z]) {
			$("#error ul").append("<li>"+data[z]+"</li>");
		}
	}
}
function parseName(data) {
	var vireDestinataire = data.replace("destinataires_",""), 
		premierChr = vireDestinataire.charAt(0),
		apresPremierChr = vireDestinataire.slice(1,vireDestinataire.length),
		chaineFinale = triageName(premierChr.toUpperCase()+apresPremierChr);
	return chaineFinale;
}
function triageName(data) {
	if (data == "Telephonestd") return "Téléphone";
	else if (data == "Codepostal") return "Code postal";
	else if (data == "Societe") return "Société";
	else { return data; }
}
