jQuery.fn.centrer = function () {
    this.css("position","absolute");
    this.css("top", ($(window).height()-this.height())/2 + $(window).scrollTop() + "px");
    this.css("left", ($(window).width()-this.width())/2 + $(window).scrollLeft() + "px");
    return this;
}

$(document).ready(function() {
	
	var lang = $('html').attr('lang');
	if(lang==null) {
		lang = 'en';
	}
	
	$("#mentions-legales-link").click(function() {
		$("#mentions-legales").centrer().show(0).hide(0).fadeIn(500);
		$("#voile").centrer().show(0).hide(0).fadeIn(500);
		return false;
	});
	$("#me-contacter-link").click(function() {
		$("#me-contacter").centrer().show(0).hide(0).fadeIn(500);
		$("#voile").centrer().show(0).hide(0).fadeIn(500);
		$("#nom").focus();
		return false;
	});
	
	$("#fermer-mentions-legales").click(function() {
		$("#mentions-legales, #voile").fadeOut(500);
		return false;
	});
	$("#fermer-me-contacter").click(function() {
		$("#me-contacter, #voile").fadeOut(500);
		return false;
	});
	
	$(window).scroll(function() {
		if($("#mentions-legales").css("display")!="none") {
			$("#mentions-legales").centrer();
			$("#voile").centrer();
		}
		else if($("#me-contacter").css("display")!="none") {
			$("#me-contacter").centrer();
			$("#voile").centrer();
		}
	});
	
	$(window).resize(function() {
	  	if($("#mentions-legales").css("display")!="none") {
			$("#mentions-legales").centrer();
			$("#voile").centrer();
		}
		else if($("#me-contacter").css("display")!="none") {
			$("#me-contacter").centrer();
			$("#voile").centrer();
		}
	});
	
	// On passe à la validation du formulaire de contact
	
	regex = new Array();
	regex['nom'] = /^[-a-zA-Z0-9_+.@# 'éèêëàâäùûüìîïòôö&ç§]+$/i;
	regex['adresse'] = /^[-a-zA-Z0-9_+.]+@[a-zA-Z0-9-.]{2,}[.][a-zA-Z]{2,4}$/i;
	regex['message'] = /[-a-zA-Z0-9_+.]+/i;
	
	text = new Array();
	text['fr'] = new Array();
	text['fr']['nom'] = "Nom incorrect";
	text['fr']['adresse'] = "Adresse incorrecte";
	text['fr']['message'] = "N'avez-vous pas oublié d'écrire votre message?";
	text['fr']['probleme'] = "Un problème est survenue pendant l'envoi du mail.. \nMerci de me contacter directement à l'adresse:";
	text['fr']['en-cours'] = "Envoi en cours.. Merci de patienter";
	text['fr']['succes'] = "Email envoyé avec succès! Merci";
	text['fr']['impossible'] = "Impossible d'envoyer le mail.. \nMerci de me contacter directement à l'adresse:";
	text['fr']['envoyer'] = "Envoyer";
	
	text['en'] = new Array();
	text['en']['nom'] = "Incorrect name";
	text['en']['adresse'] = "Incorrect email";
	text['en']['message'] = "Didn't you forget to write your message?";
	text['en']['probleme'] = "A problem occurred while sending email.. \nPlease contact me directly at:";
	text['en']['en-cours'] = "Sending.. Thank you for your patience";
	text['en']['succes'] = "Email sent successfully! Thank you";
	text['en']['impossible'] = "Unable to send mail.. \nPlease contact me directly at:";
	text['en']['envoyer'] = "Send";	
	
	
	function valider(element) {
		var valeur = $(element).val();
		var id = $(element).attr("id");
		if(!valeur.match(regex[id])) {
			if($(element).next().attr("id")=="" || $(element).next().attr("id")==undefined) {
				$(element).css("color", "red");
				if(id=="nom") {
					$("<span id='nom_fail'>"+text[lang]['nom']+"..</span>").insertAfter(element).hide(0).fadeIn(500);
				}
				else if(id=="adresse") {
					$("<span id='addresse_fail'>"+text[lang]['adresse']+"..</span>").insertAfter(element).hide(0).fadeIn(500);
				}
			}
			return false;
		}
		else if($(element).next().attr("id")!="" || $(element).next().attr("id")!=undefined) {
			$(element).css("color", "#000");
			$(element).next().fadeOut(500, function() {
				if($(element).next().attr("id")!="") {
					$(element).next().remove();
				}
			});
			return true;
		}
		else {
			return true;
		}
	}
	
	$("#nom, #adresse").live('blur', function() {
		valider($(this));
	});
	
	$("#submit").click(function() {
		var erreur = false;
		var parametres = "";
		// On valide tous les champs
		$("#nom, #adresse").each(function() {
			if(!valider($(this))) {
				erreur = true;
			}
			else {
				parametres += "&"+$(this).attr("id")+"="+$(this).val();
			}
		});
		// On vérifie que le message n'est pas vide
		var valeur = $("#message").val();
		if(!valeur.match(regex['message'])) {
			if($("#submit").next().attr("id")!="submit_msg") {
				$("#submit").attr("disabled", 'true');
				$("<span id='submit_msg'>"+text[lang]['message']+"</span>").insertAfter("#submit").hide(0).fadeIn(500, function() {
					$("#submit").next().delay(3000).fadeOut(500, function() {
						$("#submit").next().remove();
						$("#submit").removeAttr("disabled");
					});
				});
			}
		}
		// Si c'est bon, on envoi!
		else if(!erreur) {
			parametres += "&message="+$("#message").val();
			$.ajax({
				type: "POST",
				url: "me-contacter.php",
				data: parametres,
				error:function() {
					alert(text[lang]['probleme']+" joeyinbox@gmail.com");
				},
				beforeSend:function() {
					$("#submit").attr("disabled", 'true').val(text[lang]['en-cours']);
				},
				success:function(data) {
					if(data==1) {
						$("<span id='submit_msg' class='good'>"+text[lang]['succes']+" :)</span>").insertAfter("#submit").hide(0).fadeIn(500);
					}
					else {
						$("<span id='submit_msg'>"+text[lang]['probleme']+" joeyinbox@gmail.com</span>").insertAfter("#submit").hide(0).fadeIn(500);
					}
					
					if($("#submit").next().attr("id")=="submit_msg") {
						$("#me-contacter, #voile").delay(3000).fadeOut(500, function() {
							$("#submit_msg").remove();
							$("#submit").removeAttr("disabled");
							// On vide les champs
							$("#nom, #adresse, #message").val("");
							$("#submit").val(text[lang]['envoyer']);
						});
					}
				}
			});
		}
		return false;
	});
});
