var tField = new Array();
var tFieldOblig = new Array();
var tFieldFunc = new Array();

function hpo_forms_verif(obj,obligatory,funcVerif){
	ret = false;
	if (obligatory==1){
		if (obj.value!=''){
			document.getElementById("verif"+obj.id).className='verif ok';
			ret = true;
		} else
			document.getElementById("verif"+obj.id).className='verif nok';
	} else
		ret = true;
		
	if (funcVerif){
		ret = false;
		if (obj.value!=''){
			if (funcVerif=="email"){
				if (checkEmail(obj)){
					document.getElementById("verif"+obj.id).className='verif ok';
					ret = true;
				} else
					document.getElementById("verif"+obj.id).className='verif nok';
			} else if (funcVerif=="phone"){
				if (checkTel(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else
					document.getElementById("verif"+obj.id).className='verif nok';
			} else if (funcVerif=="cellular"){
				if (checkCellular(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else
					document.getElementById("verif"+obj.id).className='verif nok';
			}
		} else if (!obligatory){
			ret = true;
			document.getElementById("verif"+obj.id).className='verif';
		}
	}
	return ret;
}

function hpo_forms_verifFields(form, valeur, control){
	var i=0;
	bRet = true;
	
	document.getElementById('tcForm').value=valeur;
	
	if (control){
		while (i<tField.length){
			obj = document.getElementById(tField[i]);
			bRet = bRet & hpo_forms_verif(obj, tFieldOblig[i], tFieldFunc[i]);
			i++;
		}
		//alert(bRet);
	}
	if (bRet)
		form.submit();
	else
		alert("Veuillez renseigner les champs incorrects");
}

/**
 * Vérifie un siret
 *
 */
function checkFormSiret(siret) {
	/* Vérification du SIRET */
	if (!(/[0-9]{14}$/).test(siret.value)) {
		alert("Le champ SIRET doit contenir 14 chiffres.");
		return false;
	}
	return true;
}

/**
 * Vérifie si le champ est non vide
 * @param champ Le nom du champ
 * @param str Une chaine contenant le nom du champ pour l'alerte
 * @return True si le champ est rempli, False sinon
 */
function checkEmpty(champ, str) {
	b = (champ.value != "");	
	if (!b) {
		alert("Le champ " + str + " est obligatoire.");
		champ.focus();
	}
		
	return b;
}
 
 
/**
 * Vérifie de l'email : on vérifie la présence du @ et du .
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkEmail(champ) {
	if (!(/[A-Za-z0-9\-\.\_]+\@[A-Za-z0-9\-\.\_]+\.[a-z]{2,6}$/).test(champ.value)) {
		//alert("Le format de l'adresse e-mail indiquée n'est pas correct.\nVeuillez le rectifier.");
		//champ.focus();
		return false;
	}
	
	return true;
}
					
 
/**
 * Vérifie le cp sous la forme "12345"
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkCP(champ) {
	if (isNaN(champ.value) || (champ.value.length != 5) || (champ.value.indexOf('.') != -1)) {
		alert("Le code postal indiqué est incorrect.\nVeuillez le corriger.");
		champ.focus();
		return(false);
	}
	return(true);
}


/**
 * Vérifie la validité du champ : entier
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkInt(champ) {	
	if (isNaN(champ.value) || (champ.value == "") || (champ.value.indexOf('.') != -1)) {
		alert("La valeur doit être un nombre entier.\nVeuillez la corriger.");
		champ.value = 0;

		if (champ.focus)
			champ.focus();

		return(false);
	}
	return(true);
}


/**
 * Vérifie la validité du champ : décimal
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkDecimal(champ) {	
	if (isNaN(champ.value) || (champ.value == "")) {
		alert("La valeur doit être une valeur décimale.\nVeuillez la corriger.");
		champ.value = 0.00;

		if (champ.focus)
			champ.focus();
			
		return(false);
	}
	return(true);
}


/**
 * Vérification d'un numéro de téléphone
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
*/
function checkTel(champ) {
	ret = false;
	var verifPhoneFr = /^(01|02|03|04|05|06|08|09)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/; 
    var verifPhoneInt = /^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
	if ( (verifPhoneFr).test(champ.value) )
		ret = true;
	if ( (verifPhoneInt).test(champ.value) )
		ret = ret | true;
	return(ret);
}

/**
 * Vérification d'un numéro de téléphone
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
*/
function checkCellular(champ) {
	ret = false;
	var verifPhoneFr = /^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/; 
    var verifPhoneInt = /^(\+[0-9]{2})[ \.\-]?[6][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
	if ( (verifPhoneFr).test(champ.value) )
		ret = true;
	if ( (verifPhoneInt).test(champ.value) )
		ret = ret | true;
	return(ret);
}

/**
 * Vérifie la longueur du champ (pour les textaera où les maxlength ne fonctionnent pas)
 * @param champ Le nom du champ
 * @return True si la maxlength n'est pas atteinte
 */
function checkNotMaxLength(champ, maxlength) {
	if (champ.value.length >= maxlength) {
		alert("La taille maximale du champ de " + maxlength + " caractères est atteinte.\nVeuillez raccourcir le texte.");
		champ.focus();
		return(false);
	}
	return(true);
}

