/*****************************************************************************************************************

form.js : Ensemble de scripts permettant la vérification des formulaires du site
// PARTIE 1 \\ 
Liste des fonctions de v?rification
Les messages d'alertes sont g?n?r?s sur la page haut.tpl ? partir du fichier de lang 

// PARTIE 2 \\ 
Fonction ART_validForm(form_name)
    Parcours le formulaire envoy? et active les fonctions de validation si d?fini dans l'ID du champ. Envoye le formulaire si toutes les fonctions retourn true sinon active l'alert.
    form_name : nom du formulaire ? v?rifier
    

**Syntaxe des id de champ de formulaire**
              x_00_para_name

- 'x' : d?finie si le champ est obligatoire ou non 
    valeur : o ou n
- '00' : id de la fonction qui sera utilis? pour la v?rification
    valeur : 01 ? 99
- 'para' : param?tre optionnel pour la fonction de v?rification
	defaut : 0
- 'name' : name du champ de formulaire

Exemple : o_02_0_client_email
    

fonctions : 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_charCount(champ, num) : (01)
    Contr?le le nombre de caract?res autoris?s dans un champ
    champ : id du champ ? v?rifier
    num : nombre de caract?re maximun
    return true ou false
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_validation_champ(champ) : (02)
    V?rifie que le champ de type input text n'est pas vide
    champ : id du champ ? v?rifier
    return true ou false
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_isNumber(champ) : (03)
    V?rifie que le champ est bien un chiffre
    champ : id du champ ? v?rifier
    return true ou false
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_isNumber_tel(champ) : (04)
    V?rifie que le champ est uniquement rempli avec des chiffres, et accepte certains s?parateurs.
    V?rifie que le champ n'est pas vide et ne d?pase pas un certain nombre de caract?re
    champ : id du champ ? v?rifier
    return true ou false
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_isNumber_cp(champ) : (05)
    V?rifie que le champ code postal est uniquement rempli des chiffres, et accepte les s?parateurs / -
    champ : id du champ ? v?rifier
    return true ou false
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ART_validation_email(champ) : (06)
    V?rifie que le champs est rempli, qu'un arobase est pr?sent et qu'il y a un point apr?s l'arobase sans y ?tre attach? 
    champ : id du champ ? v?rifier
    return true ou false
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
ART_test_champ(id) : (07)
    PAGE PANIER : V?rifie que le champ de t?l?phone indiqu? par le select est bien rempli
    id : id du select
    return true ou false

******************************************************************************************************************/

function ART_charCount(champ, num){
    document.getElementById(champ).focus();
    var input = document.getElementById(champ);
    var txt = input.value;
    if(txt.length>num){
        alert(num+" "+validForm['carac']);
        input.value = txt.substr(0,num);
        return false;
    }
}

function ART_validChamp(obj, img) {
    retour = true;  
	if(obj.value.length < 2) {
        alert(validForm['zone']+" '"+obj.title+"'.");
        retour = false;  
    }
    obj.focus();
	ART_imgChange(img);
	return retour;
}    

function ART_isNumber(obj, img) {    
    retour = true;
    var regex = new RegExp(/^[0-9]/gi);
    var str = obj.value.toString();
    if (!str.match(regex)) {
        alert("'"+obj.title+"' "+validForm['valide']);
        retour = false;
    }
    obj.focus();
	ART_imgChange(img);
    return retour;
}

function ART_isNumber_tel(obj, img) {    
    obj.focus();
    retour = true;
    var str = obj.value;
    var regex = new RegExp(/^(01|02|03|04|05|06|08)(([\.\-\/\ ])?[0-9][0-9]){4}/gi);
    str = str.toString();
    if (str.length < 3) {
        alert(validForm['zone']+" '"+obj.title+"'.");
        retour = false;
		ART_imgChange(img);
        return retour;
    }
    if (str.length > 15) {
        alert(validForm['tel']);
        retour = false;
		ART_imgChange(img);
        return retour;
    }
    if (!str.match(regex)) {
        alert("'"+obj.title+"' "+validForm['valide']);
        retour = false;
		ART_imgChange(img);
        return retour;
    }
	ART_imgChange(img);
    return retour;
}

function ART_isNumber_cp(obj, img) {  
    obj.focus();
    retour = true;
    var str = obj.value;
    var regex = new RegExp(re = /^(0[1-9]{0,1}|[1-9][0-9]{0,1})[0-9]{0,3}$/);  
    str = str.toString();
    if (str.length < 3) {
        alert(validForm['zone']+" '"+obj.title+"'.");
        retour = false;
		ART_imgChange(img);
        return retour;
    }
    if (!str.match(regex)) {
        alert("'"+obj.title+"' "+validForm['valide']);
        retour = false;
		ART_imgChange(img);
        return retour;
    }
	ART_imgChange(img);
    return retour;
} 

function ART_validEmail(obj, img) {
    retour = true;        
    obj.focus();
    if (obj.value.length < 6) {
        alert(validForm['zone']+" '"+obj.title+"'.");
        retour = false;
		ART_imgChange(img);
        return retour;
    }
    var aroba = obj.value.indexOf("@");
//test si @ est pr?sent
		if (aroba == -1) { 
        alert(validForm['email']);
        retour = false;  
		ART_imgChange(img);
        return retour;
    }
//v?rifie si il y a un . apr?s @ et qu'il ne se trouve pas juste derri?re ("adresse@.com" non valide)
    var point = obj.value.indexOf(".", aroba);
    if ((point == -1) || (point == (aroba + 1))) {
        alert(validForm['email']);
        retour = false;  
		ART_imgChange(img);
        return retour;
    }
	ART_imgChange(img);
    return retour;
}

function ART_confEmail(obj) {
    var retour = true;
    var ori = document.getElementById('o_06_imgEmail_email');
    obj.focus();
    if (obj.value!= ori.value) {
        alert(validForm['conf_1']+" '"+obj.title+"' "+validForm['conf_2']);
        retour = false;
    }
	var imgObj = document.getElementById('imgEmailConf');
	if(imgObj!= null) {
		if(retour) { 
			imgObj.src=validForm['THEME_IMAGE']+'tick.png'; 
		}else{ 
			imgObj.src=validForm['THEME_IMAGE']+'croix.png';
			document.getElementById('imgEmail').src=validForm['THEME_IMAGE']+'croix.png';
		}
	}

	return retour;
}    

function ART_confPwd(obj) {
    var retour = true;
    var ori = document.getElementById('o_02_imgPwd_pwd');
    obj.focus();
    if (obj.value!= ori.value) {
        alert(validForm['conf_1']+" '"+obj.title+"' "+validForm['conf_2']);
        retour = false;
    }
	var imgObj = document.getElementById('imgPwdConf');
	if(imgObj!= null) {
		if(retour) { 
			imgObj.src=validForm['THEME_IMAGE']+'tick.png'; 
		}else{ 
			imgObj.src=validForm['THEME_IMAGE']+'croix.png';
			document.getElementById('imgPwd').src=validForm['THEME_IMAGE']+'croix.png';
		}
	}

	return retour;
}    



function ART_imgChange(img){
	var imgObj = document.getElementById(img);
    if(imgObj!= null) {
		if(retour) imgObj.src=validForm['THEME_IMAGE']+'tick.png'; else imgObj.src=validForm['THEME_IMAGE']+'croix.png';
	}
}


var ART_liste_fonction = new Array('ART_charCount','ART_validChamp','ART_isNumber','ART_isNumber_tel','ART_isNumber_cp','ART_validEmail','ART_confEmail','ART_confPwd');


function ART_validForm(form_name){
    var form=document.forms[form_name];
    for(n in form.elements){
        if(vFobj = form.elements[n]){
            //alert(vFobj);
            if(vFobj.nodeName=='SELECT' || vFobj.nodeName=='INPUT' || vFobj.nodeName=='TEXTAREA'){
                var tab=form[n].id.split("_");
                if(tab[0]=='o') {
                    var nbF = tab[1]-1;
                    var fonction = eval(ART_liste_fonction[nbF])(form[n],tab[2]);
                    if(!fonction) return false;
                }
            }
        }
    }
    
    //ART_ajax(document.forms[form_name].action,'resultat',form_name);
    document.forms[form_name].submit();
}


  
