/**
* fonctions utilisées pour la validation en temps réél des champs de formulaire
* Clerc-et-Net - 18/05/2004
**/

function invalid_field(name, erreur) {
    if (document.getElementById && document.getElementById('alert_'+name)) {
        // le noeud existe déja
        return;
    } else if (document.getElementById && !document.getElementById('alert_'+name)) {
        // le noeud n'existe pas : on le crée
        span = document.createElement('span');
        // assignation de la classe
	    span.className = "alarm";
	    // assignation de l'identifiant
	    span.setAttribute('id', 'alert_'+name);
	    // définition du contenu textuel
	    textNode = document.createTextNode(erreur);
	    // ajout du contenu textuel en tant que noeud enfant
	    span.appendChild(textNode);
	    // noeud parent (du champ input) = fieldset - on y accède par la méthode parentNode
	    // noeud précédant (le champ input) = label - on y accède par la méthode previousSibling
	    var groupe_champs = document.getElementById(name).parentNode;
	    var label = document.getElementById(name).previousSibling;
	    // sur IE ... noeud précédant = text
	    if (label.nodeName != "LABEL") {
            label = label.previousSibling;
        }
	    // insertion du noeud span (erreur) dans le noeud fieldset avant le noeud label
	    groupe_champs.insertBefore(span, label);
    }
}

function valid_field(name) {
    if (document.getElementById && document.getElementById('alert_'+name)) {
        // le noeud existe déja : on le retire
        document.getElementById(name).parentNode.removeChild(document.getElementById('alert_'+name));
    }
}

function checkData(formId, nameElement, regex, erreur) {
    var obj = document.forms[formId].elements[nameElement];
    //alert(obj.type);
    var data = document.forms[formId].elements[nameElement].value;
    var masque = data.search(regex);
    if (masque == -1) {
        invalid_field(nameElement, erreur);
    } else {
        valid_field(nameElement);
    }
}