/* ================================================================================ */
/* = Fonction pour le menu global = */
/* ================================================================================ */

$(document).ready(function() {
	$("a[rel]").overlay();
	$("area[rel]").overlay();
	
	// remise à 0 du formulaire en layer
	$('a.close').click(function() {
		$('#formDemande').show();
		$('#reponse').hide();
	})
});

// Boucle de validation
function validateForm(form) {
	if (isNotEmpty(form.nom)) {
		if (isNotEmpty(form.prenom)) {
			if (isNotEmpty(form.courriel)) {
                if (isEMailAddr(form.courriel)) {
                	if (isNotEmpty(form.telephone)) {
						if (isTel(form.telephone)) {
							if (isNotEmpty(form.codepostal)) {
								if (isCodePostal(form.codepostal)) {
									if (isNotEmpty(form.jour)) {
										if (isAdherent(form.numero)) {
											return commit('#espaceForm','/particulier/callback');
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return false;
}

function commit(identifier, cible) {
	var vars = $(identifier).serialize();
	vars = vars.replace('%5B','').replace('%5D','').replace('[','').replace(']','');
	
	if(identifier == '#espaceForm')
	{
		jQuery.ajax({
				url: cible,
				data: vars,			
				dataType: 'text',
				success : function(data){
					return displayResult(data);
				}
			});
	}
	
	return false;
}

function displayResult(retour)
{
	if(retour == 1)
	{
		$('#formDemande').hide();
		$('#reponse').show();
	}
	return false;
}

//Positionne le curseur dans un champ donné 
function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}

//Vérifie si un champ ne contient que des chiffres
function isNum(elem) {
	var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Veuillez indiquer un numéro ...");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}

//Vérifie un numéro de téléphone 
function isTel(elem) {
    var str = elem.value;
    var re = /\b.{10}\b/;
    if (!str.match(re)) {
        alert("Veuillez indiquer un numéro de téléphone composé de 10 chiffres au format suivant '0623456789'");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

//Vérifie un code postal 
function isCodePostal(elem) {
    var str = elem.value;
    var re = /\b.{5}\b/;
    if (!str.match(re)) {
        alert("Veuillez indiquer un code postal composé de 5 chiffres au format suivant '60000'");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

//Vérifie nu numéro d'adhérent
function isAdherent(elem) {
    if(elem.value.length == 0)
    {
    	return true;
    }
    var str = elem.value;
    var re = /\b.{7}\b/;
    if (!str.match(re)) {
        alert("Veuillez indiquer un numéro d'adhérent composé de 7 chiffres au format suivant '1234567'");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

//Vérifie si un champ a bien été renseigné; 
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Veuillez renseigner les champs obligatoires.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

//Vérifier la validité d'une adresse e-mail 
function isEMailAddr(elem) {
	var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        alert("Veuillez vérifier le format de votre adresse e-mail.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

// Licence CC, source : http://www.fredcavazza.net/files/doc/tutoriels/formulaire/SVF_apres.htm

