/*
 isNotEmptyField( elementToVerify , elementLabel )
 isValidNumberField( elementToVerify , elementLabel)
 isValidTextField( elementToVerify , elementLabel )
 isRadioChecked(formToVerify , elementName , msg)
 isValidMail( elementToVerify ,elementLabel )
 isValidZipCode( elementToVerify )
 isChangeCombo( elementToVerify , elementLabel )
 isValidDate( elementToVerify , elementLabel )
 isValidPhoneNumber( elementToVerify , elementLabel)
 */
forbidden = "&~#{[<>|`]}'()=+¡?;/:¤!%*¬,$£Û@0123456789";
//*******************************************
//** test si la coordonnï¿½e est valide **
//*******************************************
function isValidCoordinate(elementToVerify, elementLabel)
{
    tmpString = elementToVerify.value;
    var bNumerique = (/^-?[0-9]+([\.][0-9]+)?$/.test(tmpString));
    if(false === bNumerique)
    {
        alert("Le champ '" + elementLabel + "' ne doit comporter que des chiffres et un point!");
        elementToVerify.focus();
        return false;
    }
    if (isNaN(parseFloat(tmpString)) && tmpString.length > 0)
    {
        alert("Le champ '" + elementLabel + "' est invalide!");
        elementToVerify.focus();
        return false;
    }
    return true;
}

//*******************************************
//** test if field contain only characters **
//*******************************************
function isNotEmptyField(elementToVerify, elementLabel)
{
    tmpString = elementToVerify.value;
    if (tmpString.length < 1)
    {
        if (elementLabel !== null)
        {
            alert("Vous n'avez pas rempli le champ '" + elementLabel + "' !");
        }
        elementToVerify.focus();
        return false;
    }//fin du if
    return true;
}//fin de la function test_prenom
//*****************************************************************
//** test if field contains only numbers **
//*****************************************************************
function isValidNumberField(elementToVerify, elementLabel)
{
    var bNumerique;
    tmpString = elementToVerify.value;
    for (i = 0; i < tmpString.length; i++)
    {
	    bNumerique = (/^-?[0-9]+([\.,][0-9]+)?$/.test(tmpString));
        if (false !== bNumerique)
        {
            alert("Le champ '" + elementLabel + "' ne doit comporter que des chiffres !");
            elementToVerify.focus();
            return false;
        }// fin du if
    }//fin du for i
    return isNotEmptyField(elementToVerify, elementLabel);
}

//*******************************************
//** test if field contain only characters **
//*******************************************
function isValidTextField(elementToVerify, elementLabel)
{
    tmpString = elementToVerify.value;
    for (i = 0; i < tmpString.length; i++)
    {
        for (j = 0; j < forbidden.length; j++)
        {
            if (tmpString.charAt(i) == forbidden.charAt(j))
            {
                alert("Vous avez du commettre des erreurs dans la saisie de votre '" + elementLabel + "' !");
                elementToVerify.focus();
                return false;
            }// fin du if
        }// fin du for j
    }//fin du for i
    return isNotEmptyField(elementToVerify, elementLabel);
}

//******************************
//** test if Radio is checked **
//******************************
function isRadioChecked(formToVerify, elementName, msg)
{
    isChecked = false;
    for (i = 0; i < formToVerify.elements.length; i++)
    {
        if (formToVerify.elements[i].name == elementName)
        {
            isChecked = false;
            if (formToVerify.elements[i].checked === true)
            {
                isChecked = true;
                break;
            }
        }
    }
    if (!isChecked)
    {
        alert(msg);
        return false;
    }
    return true;
}

//******************************
//** test if Radio is checked **
//******************************
function isChangeCombo(elementToVerify, elementLabel)
{
    if (elementToVerify.options[elementToVerify.selectedIndex].value == "none")
    {
        if (elementLabel !== null)
        {
            alert("Vous devez choisir un item dans le menu '" + argsList[1] + "'");
        }
        return false;
    }
    return true;
}

//***************************************
//** test if field contains valid mail **
//***************************************
function isValidMail(elementToVerify, elementLabel)
{
    tmpString = elementToVerify.value;
    validCourriel = (tmpString == 'NC') || (/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(tmpString));
    if(false === validCourriel)
    {
        alert("L'adresse saisie dans le champ '" + elementLabel + "' est invalide !");
        elementToVerify.focus();
        return false;
    }
    return true;
}// fin de la function test_mail
//*****************************************************************
//** test if field contains valid zipCode with at least 2 number **
//*****************************************************************
function isValidZipCode(elementToVerify)
{

    tmpString = elementToVerify.value;
    for (i = 0; i < tmpString.length; i++)
    {
        if ((tmpString.charAt(i) != "0") && (tmpString.charAt(i) != "1") && (tmpString.charAt(i) != "2") && (tmpString.charAt(i) != "3") && (tmpString.charAt(i) != "4") && (tmpString.charAt(i) != "5") && (tmpString.charAt(i) != "6") && (tmpString.charAt(i) != "7") && (tmpString.charAt(i) != "8") && (tmpString.charAt(i) != "9"))
        {
            alert("le champ 'Code Postal' ne doit comporter que des chiffres !");
            elementToVerify.focus();
            return false;
        }// fin du if
    }//fin du for i
    if (tmpString.length > 5 || tmpString.length < 2)
    {
        alert("le code postal doit comporter 5 chiffres !");
        elementToVerify.focus();
        return false;
    }
    return true;
}

function isValidDate(elementToVerify, elementLabel)
{
    tmpStr = elementToVerify.value;
    separateur = "/";
    dateArray = tmpStr.split(separateur);

    var error = false;

    if (dateArray.length != 3 && tmpStr.length > 0)
    {
        alert("la date saisie dans le champs '" + elementLabel + "' doit ï¿½tre saisie sous la forme jj/mm/aaaa");
        error = true;
    }

    if (dateArray[0] / 10 < 1)
    {
        dateArray[0] = dateArray[0].substring(1, dateArray[0].length);
    }
    if (dateArray[1] / 10 < 1)
    {
        dateArray[1] = dateArray[1].substring(1, dateArray[1].length);
    }
    if (dateArray[2] / 10 < 1)
    {
        dateArray[2] = dateArray[2].substring(1, dateArray[2].length);
    }

    jourdhui = new Date();
    actu_year = jourdhui.getFullYear();

    if (parseInt(dateArray[2], 10) < actu_year)
    {
        alert("l'annï¿½e que vous avez saisie dans le champs '" + elementLabel + "' est dï¿½passï¿½e");
        error = true;
    }
    else
        if (parseInt(dateArray[1], 10) < 1 || parseInt(dateArray[1] > 12, 10))
        {
            alert("le mois que vous avez saisie dans le champs '" + elementLabel + "' n'est pas valide");
            error = true;
        }
        else
            if (parseInt(dateArray[0], 10) < 1 || parseInt(dateArray[0] > 31, 10))
            {
                alert("le jour que vous avez saisie dans le champs '" + elementLabel + "' n'est pas valide");
                error = true;
            }

    /*
     if ( ((tmpStr.substring(2,3)!=separateur)||(tmpStr.substring(5,6)!=separateur)) && (error == false) ) {
     alert("Les sï¿½parateurs du champs '"+elementLabel+"' doivent ï¿½tre des "+separateur);
     error = true ;
     }
     */
    if (error === true)
    {
        elementToVerify.focus();
        return false;
    }
    return true;
}

//****************************************************************
//** test if field contains valid phoneNumbers **
//*****************************************************************
function isValidPhoneNumber(elementToVerify, elementLabel)
{

    tmpString = elementToVerify.value;
    if (tmpString.charAt(0) == '+')
    {
        tmpString = tmpString.substring(3, tmpString.length);
    }
    for (i = 0; i < tmpString.length; i++)
    {
        if ((tmpString.charAt(i) != "+") && (tmpString.charAt(i) != "(") && (tmpString.charAt(i) != ")") && (tmpString.charAt(i) != " ") && (tmpString.charAt(i) != "0") && (tmpString.charAt(i) != "1") && (tmpString.charAt(i) != "2") && (tmpString.charAt(i) != "3") && (tmpString.charAt(i) != "4") && (tmpString.charAt(i) != "5") && (tmpString.charAt(i) != "6") && (tmpString.charAt(i) != "7") && (tmpString.charAt(i) != "8") && (tmpString.charAt(i) != "9"))
        {
            alert("Le champ '" + elementLabel + "' ne doit comporter que des chiffres, avec ï¿½ventuellement les indicatifs de votre pays si nï¿½cessaire !");
            elementToVerify.focus();
            return false;
        }// fin du if
    }//fin du for i
    return isNotEmptyField(elementToVerify, elementLabel);
}

//**************************************************************
//** test de validation de la resaisie du mot de passe
//**************************************************************
function isSamePwd(pwd1, pwd2)
{
    if (pwd1.value != pwd2.value)
    {
        alert("les mots de passe ne sont pas identiques");
        pwd1.focus();
        return false;
    }
    else
        if (pwd1.value == pwd2.value)
        {
            return true;
        }

}


