/* CONFIGURATION */
var password_minlength = 5;

$(document).ready(function() {
	$(".compte").find(".tab").hide();
	$(".compte").find("#tab-profil").show();
	//$("a.action-compte-inscription").fadeTo(0,0.5);
	//$(".form").inputHighlight();
	$(".telephone").formatTelephone();
	$(".suggestionsBox").hide();
	if(location.hash) { $(".compte").find(location.hash).show(); }
});

/* TABS */
$.listen("click","a.tab-compte",function() {
	ShowTab($(this));
});

$("input[name=Password]").live("blur",function() {
	var input = $(this);
	input.removeClass("required");
	DisableSubmit();	
	$("#password_loading").addClass("loading");
	$.ajax({
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=CheckPassword&Password="+input.val(),
		success: function(result) {
			var res = result.split("::");
			if(res[0]==1) {
				EnableSubmit();
				input.removeClass("warning");
				$(".message").hide();
			} else {
				input.addClass("warning");
				Message(res[1]);
			}
			$("#password_loading").removeClass("loading");
		}
	});
});


$("input[name=Login]").live("blur",function() {
	var input = $(this);
	input.removeClass("required");
	DisableSubmit();	
	$("#Login_loading").addClass("loading");
	$.ajax({
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=CheckLogin&Login="+input.val(),
		success: function(result) {
			var res = result.split("::");
			if(res[0]==1) {
				EnableSubmit();
				input.removeClass("warning");
				$(".message").hide();
			} else {
				input.addClass("warning");
				Message(res[1]);
			}
			$("#Login_loading").removeClass("loading");
		}
	});
});	

function ValidatePassword(inputPassword){
	var input = $("form#inscription").find("input[name="+inputPassword+"]");
	input.removeClass("required");
	DisableSubmit();	
	$("#password_loading").addClass("loading");
	var result = $.ajax({
		async: false,
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=CheckPassword&Password="+input.val(),
	}).responseText;
	$("#password_loading").removeClass("loading");
	var res = result.split("::");
	if(res[0]==1) {
		EnableSubmit();
		input.removeClass("warning");
		$(".message").hide();
		return true;
	} else {
		input.addClass("warning");
		Message(res[1]);
		return false;
	}
}

function ValidateLogin(inputLogin){
	var input = $("form#inscription").find("input[name="+inputLogin+"]");
	input.removeClass("required");
	DisableSubmit();	
	$("#Login_loading").addClass("loading");
	var result = $.ajax({
		async: false,
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=CheckLogin&Login="+input.val(),
	}).responseText;
	$("#Login_loading").removeClass("loading");
	var res = result.split("::");
	if(res[0]==1) {
		EnableSubmit();
		input.removeClass("warning");
		$(".message").hide();
		return true;
	} else {
		input.addClass("warning");
		Message(res[1]);
		return false;
	}
}

function DisableSubmit() {
	$("a.action-compte-inscription").addClass("disabled");
	$("a.action-commande-inscription").addClass("disabled");
}

function EnableSubmit() {
	$("a.action-compte-inscription").removeClass("disabled");
	$("a.action-commande-inscription").removeClass("disabled");
}

function ShowTab(objet) {
	$(".compte").find("ul.tabs > li").removeClass("active");
	$(".compte").find(".tab").hide();
	objet.parent("li").addClass("active");
	$(".compte").find("#"+objet.attr("title")).show();
}

/* LOGIN */
$.listen("click","a.action-compte-login",function() {
	var Login = $(this).siblings("input[name=Login]");
	var Password = $(this).siblings("input[name=Password]");
	var Zone = $(this).parents(".login-zone");
	if(Login.val()=="") { Login.blink(); return; }
	else if(Password.val()=="") { Password.blink(); return; }
	$.ajax({
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=Connexion&Login="+Login.val()+"&Password="+Password.val(),
		success: function(data) {
			if(data==0) alert("Désolé, votre identifiant ou votre mot de passe est invalide, veuillez réessayer...");
			else if(data==-1) alert("Par mesure de sécurité, seulement les caractères alphanumeriques sont autorisés...");
			else { 
				Zone.html(data);
				document.location.reload();
			}
		}
	});
});


/* LOGIN #2 */
$.listen("click","a.action-commande-login",function() {
	var Login = $(this).parents("form").find("input[name=Login]");
	var Password = $(this).parents("form").find("input[name=Password]");
	if(Login.val()=="") { Login.blink(); return false; }
	else if(Password.val()=="") { Password.blink(); return false; }
	var reponse = $.ajax({
		type: "POST",
		async: false,
		url: "modules/compte/ajax_compte.php",
		data: "Action=Connexion&Login="+Login.val()+"&Password="+Password.val()
	}).responseText;
	if(reponse==0) {
		alert("Désolé, votre identifiant ou votre mot de passe est invalide, veuillez réessayer...");
		return false;
	} else if(reponse==-1) {
		alert("Par mesure de sécurité, seulement les caractères alphanumeriques sont autorisés...");
		return false;
	} else {
		return true;
	}
});

/* LOGOUT */
$.listen("click","a.action-compte-logout",function() {
	$(this).parents(".login-zone > span").html("Déconnexion...");
	$.ajax({
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=Deconnexion",
		success: function(result) { document.location.reload(); }
	});
});

/* VERIFICATION CHAMPS LOGIN */
$.listen("blur","input.verifyLogin",function() {
	var input = $(this);
	$.ajax({
		type: "POST",
		url: "modules/compte/ajax_compte.php",
		data: "Action=Verify&Login="+input.val(),
		success: function(result) { 
			if(result==1) {
				input.removeClass("warning").addClass("valid");
				$("a.action-compte-inscription").fadeTo(0,1);
				input.attr("verified",1);
			} else {
				input.addClass("warning").blink();
				$("a.action-compte-inscription").fadeTo(0,0.5);
				input.attr("verified",0);
			}
		}
	});
});

/* INSCRIPTION */
/*$.listen("click","a.action-compte-inscription",function() {
	if(!$(this).hasClass("disabled")) {
		var form = $("form#inscription");
		var formdata = "Action=Inscription&"+form.serialize();
		if(ValidateForm(form)) {
			AddOverlay(form);
			var reponse = $.ajax({
				type: "POST",
				url: form.attr("action"),
				data: formdata
			}).responseText;
			
			var res = reponse.split("::");
			if(res[0]==1) {
				//$(".ajax_loading").addClass("success");
				document.location.reload();
			}else{
				$(".ajax_loading").addClass("fail");
				Message(res[1]);
			}
			
		}
	} else {
		$("input.warning").blink();
		return false;
	}
	return false;
});
*/
/* INSCRIPTION #2 */
$.listen("click","a.action-compte-inscription",function() {
	if(!$(this).hasClass("disabled")) {
		var form = $("form#inscription");
		if ((ValidatePassword("Password")) && (ValidateLogin("Login"))){
			var formdata = "Action=Inscription&"+form.serialize();
			if(ValidateForm(form)){
					AddOverlay(form);
					var reponse = $.ajax({
						type: "POST",
						async: false,
						url: form.attr("action"),
						data: formdata
					}).responseText;
				
			} else {
				return false;
			}
		}else{
			return false;
		}
	} else {
		$("input.warning").blink();
		return false;
	}
	var res = reponse.split("::");
	if(res[0]==1) {
		return true;
	} else {
		return false;
	}
});


function AddOverlay(form) {
	$(".ajax_loading").height($(".form").outerHeight()).width($(".form").outerWidth()).show();
	form.find("input,select,textarea").attr("disabled","disabled");
	form.fadeTo("slow",0.2);
}

function Message(msg) {
	$(".message").html(msg);
	$(".message").show();	
}

/* MISE A JOUR DU PROFIL */
$.listen("click","a.action-compte-update",function() {
	var form = $('form#modif_profil');
	if(ValidateForm(form)) {
		$.ajax({
			type: "POST",
			url: form.attr("Action"),
			data: form.serialize()+"&Action=Modifier",
			success: function(result) {
				if(result==1) document.location.reload();
			}
		});
	}
});

/* TOGGLE BLOC PASSWORD */
$.listen("click","a.action-compte-toggle-password",function() {
	$("form#modif_profil,form#modif_password").toggle();
});

/* MISE A JOUR DU PASSWORD */
$.listen("click","a.action-compte-update-password",function() {
	
	var form = $('form#modif_password');
	var oldpassword = form.find("input[name=Old_Password]");
	var newpassword = form.find("input[name=New_Password]");
	var confirmpassword = form.find("input[name=Confirm_Password]");
	var msg_err="";
	
	//on enlève la classe des input
	form.find("input").removeClass("required");
	form.find("input").removeClass("warning");
	
	
	//on récupère le nouveau password et la confirmation
	var old_password= oldpassword.val();
	var new_password = newpassword.val();
	var confirm_password = confirmpassword.val();

	//test si données renseignées
	if(old_password.length==0) { //ancien password non renseigné
		$(".erreur_modif_password").html("Indiquez votre mot de passe actuel");
		oldpassword.addClass("required");
		oldpassword.blink();
		return;
	}
	if(new_password.length==0) { //nouveau password non renseigné
		$(".erreur_modif_password").html("Indiquez votre nouveau mot de passe");
		newpassword.addClass("required");
		newpassword.blink();
		return;
	} else if(new_password.length<password_minlength) {
		$(".erreur_modif_password").html("Mot de passe trop court (5 caractères minimum)");
		newpassword.addClass("warning");
		newpassword.blink();
		return;
	}
	if(confirm_password.length==0){ //confirmation non renseignée
		$(".erreur_modif_password").html("Confirmez le nouveau mot de passe");
		confirmpassword.addClass("required");
		return;
	}
	//si aucune champ vide
	if(msg_err.length==0) {
		//test si les entrées sont les même
		if(new_password==confirm_password) {
			$.ajax({
				type: "POST",
				url: form.attr("Action"),
				data: form.serialize()+"&Action=ModifierPassword",
				success: function(result) {
					//Si il y a une erreur
					var res = result.split("::");
					if(res[0]==1) {
						alert ("Votre mot de passe à bien été modifié !");
						document.location.reload();
					} else if (res[0]==0){
						//input.addClass("warning");
						Message(res[1]);
					}
//					if(result=="err1"){
//						msg_err +="Mot de passe incorrect";
//						oldpassword.addClass("warning");
//						oldpassword.blink();
//					} else if(result=="err2"){
//						msg_err +="Caractères alphanumérique sans accents seulement";
//						confirmpassword.addClass("warning");
//						newpassword.addClass("warning");
//						newpassword.blink();
//					} else {
//						alert ("Votre mot de passe à bien été modifié !");
//						document.location.reload();
//					}
//					//On affiche le message d'erreur
//					if(msg_err.length>0){
//						$(".erreur_modif_password").html(msg_err);
//						$(".erreur_modif_password").blink();
//					}
				}
			});
		} else {
			msg_err = "Les mots de passe ne correspondent pas !";
			newpassword.addClass("warning");
			confirmpassword.addClass("warning");
		}
	}
	//en cas d'erreur
	if(msg_err.length>0){
		Message(msg_err);
	}
});

function ValidateForm(form) {
	var msg = "<p>Merci de saisir au moins les champs suivant :<br/><em>";
	var len = msg.length;
	form.find("input,textarea,select").each(function() {
		if($(this).attr("obligatory")) {
			var val = $(this).val();
			var label = $(this).attr("title");
			if((val=="")||(val==null)||(val==" ")) {
				msg += label+", ";
				$(this).blink();
				$(this).addClass("required");
			} else if($(this).attr("mailcheck")==true) {
				if(!ValidateEmail($(this).val())) {
					msg = "<p>Votre adresse mail n'est pas valide !</p>, ";
					$(this).blink();
					$(this).addClass("required");
					return false;
				}			
			}
		}
	});
	if(msg.length == len) {
		return true;
	} else {
		Message(msg.substring(0,msg.length-2)+"</em></p>");
		$("input.required:first").focus();
		return false;
	}
}

function ValidateEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if(matchArray==null) { return false; }
	var user=matchArray[1]
	var domain=matchArray[2]
	if(user.match(userPat)==null){ return false; }
	var IPArray=domain.match(ipDomainPat)
	if(IPArray!=null) {for (var i=1;i<=4;i++){if(IPArray[i]>255) { return false; }}return true; }
	var domainArray=domain.match(domainPat)
	if(domainArray==null) { return false; }
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if(domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { return false; }
	if(len<2) { return false; }
	return true;
}

// AJAX COMMUNES SUGGEST
var timeout;

function Lookup(type,query) {	
	if(query.length == 0) {
		$("#suggestions").hide();
	} else {
		$("#cpville_loading").addClass("chargement");
		if(timeout) clearTimeout(timeout);
		timeout = setTimeout(function(){
			$.ajax({
				type: "POST",
				url: "content/ajax/ajax_communes.php",
				data: "Type="+type+"&Query="+query,
				success: function(data){
					var dataExp = data.split("::");
					$("#cpville_loading").removeClass("chargement");
					$("#autoSuggestionsList").html(dataExp[1]);
					if(dataExp[0]==1) $(".suggestionsBox").show();
				}
			});
		},1000);
	}
}

function Fill(ville,code_postal,commune) {
	if(code_postal!=null) $("input[name=Code_Postal]").val(code_postal);
	if(ville!=null) $("input[name=Ville]").val(ville);
	if(commune!=null) $("input[name=Commune]").val(commune);
	setTimeout('$(".suggestionsBox").hide();',200);
}
