
var blank_pattern = /^\s*$/i;
var email_pattern = /^[^@\s]+@([a-z0-9][a-z0-9\-]*\.)+[a-z]{2,10}$/i;
var date_pattern = /^([0-9]{2}\/){2}[0-9]{4}$/i;
var url_pattern = /^http:\/\/[^\s]+$/i;

// Fonction permettant de limiter la taille de l'input dans un champ
function limitText(limitField, limitCount, limitNum) {
	limitCount = document.getElementById(limitCount);
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.innerHTML = limitNum - limitField.value.length;
	}
}


// Fonction qui affiche le message d'erreur et donne le focus au champ concerné
function fct_message(fld,msg) {
	alert("Une erreur a été détectée: \n" + msg);
	fld.focus();
}

// Fonction de vérification du format d'un email
function fct_is_email(fld) {
    reg = new RegExp(email_pattern);
    if(reg.test(fld.value,"g")) {
    	return true;
    } else {
    	return false;
    }
}

// Fonction de vérification d'un nombre
function fct_is_number(fld) {
    if(isNaN(fld.value) == true) {
    	return false;
    } else {
    	return true;
    }
}

// Fonction de vérification d'une url
function fct_is_url(fld) {
    reg = new RegExp(url_pattern);
    if(reg.test(fld.value,"g")) {
    	return true;
    } else {
    	return false;
    }
}

// Fonction de vérification de la sélection d'une valeur dans une liste simple
function fct_is_not_default(fld) {
    if(fld.value == 0) {
    	return false;
    } else {
    	return true;
    }
}

// Fonction de vérification de la présence d'une valeur
function fct_is_not_empty(fld) {
    reg = new RegExp(blank_pattern);
    if(reg.test(fld.value,"g")) {
    	return false;
    } else {
    	return true;
    }
}

// Fonction de vérification de la longueur minimum d'une chaîne
function fct_min_length(fld,limit) {
    if(fld.value.length < limit) {
        return false;
    } else {
        return true;
    }
}

// Fonction de vérification des dates
function fct_is_date(fld) {
    reg = new RegExp(date_pattern);
    if(reg.test(fld.value,"g")) {
    	return true;
    } else {
    	return false;
    }
}

// Traitement des erreurs
function fct_show_errors() {

    // Rétablissement du style des libellés
    for(i=0; i<arr_lst_fld.length; i++) {
        document.getElementById(arr_lst_fld[i]).style.color = "black";
        document.getElementById(arr_lst_fld[i]).style.fontWeight = "normal";
    }

    // Mise en évidence des champs fautifs
    for(i=0; i<arr_errors.length; i++) {
        document.getElementById(arr_errors[i]).style.color = "red";
        document.getElementById(arr_errors[i]).style.fontWeight = "bold";
    }
    alert(message);
}
