/* Gestion des textes d'erreurs centralisée */ 

textesErreurs=new Array();
		
textesErreurs['text-required']='Veuillez saisir une valeur. Elle est nécessaire au bon traitement de votre dossier.';
textesErreurs['texts-required']='Veuillez saisir les valeurs. Elle sont nécessaires au bon traitement de votre dossier.';
textesErreurs['option-required']='Veuillez sélectionner une option. Cette information est nécessaire au bon traitement de votre dossier.';
textesErreurs['numerique']='Veuillez ne saisir que des chiffres.';
textesErreurs['somme']='Veuillez ne saisir que des chiffres, sans la virgule ni les centimes.';
textesErreurs['alphanumerique']='Veuillez ne saisir que des lettres et des chiffres.';
textesErreurs['alpha']='Veuillez ne saisir que des lettres.';
textesErreurs['annee']="Veuillez saisir l'année sous la forme aaaa (ex: 1998 ou 2005)";
textesErreurs['date']='Veillez saisir cette date sous la forme jj/mm/aaaa (ex: 29/02/2008)';
textesErreurs['date-anterieure-jour']='Veillez saisir une date antérieure à la date du jour';
textesErreurs['codepostal']="Code postal incorrect. Saisissez 99999 pour l'étranger.";
textesErreurs['tel']='Veillez saisir 10 chiffres commençant par un zéro (ex: 0178099670)';
textesErreurs['adresse']='Veuillez saisir une adresse correcte (ex: 1, place de la république)';
textesErreurs['email']='Veuillez saisir une adresse email valide (ex: louis.quatorze@versailles.fr)';
textesErreurs['date-naissance-incorrect']='Merci de saisir une date de naissance antérieure à la date du jour.';

/**
*** Ecrit par Janick Delot.
***
*** Liste des fonctions :
*** 
*** Check_Length		-> Vérifie la longueur de la chaîne
***
*** Is_Empty		-> Vérifie si la chaîne est vide
*** Is_Alphabetic		-> Vérifie si la chaîne contient uniquement des caractères alphabétique
*** Is_Integer		-> Vérifie si la chaîne contient uniquement des chiffres
*** Is_Numeric		-> Vérifie si la chaîne contient un nombre entier ou flottant
*** Is_Alphanumeric	-> Vérifie si la chaîne contient uniquement des caractères alphabétique et des nombres entiers ou flottants
***
*** Is_Date		-> Vérifie si la chaîne est une date (AAAA/MM/JJ)
*** Is_Annee		-> Vérifie si la chaîne est une chaine 4 chiffres
*** Is_Email		-> Vérifie si la chaîne est une adreses email (xxx@xx.xxx)
***
*** Is_Radio_Checked	-> Vérifie s'il y a au moins un bouton radio sélectionné
*** Radio_Value		-> Renvoie la valeur du bouton radio sélectionné
***
*** Is_Checkedbox	-> Vérifie si la checkbox est cochée
*** Checkbox_Value	-> Renvoie la valeur de la checkbox
***
*** Is_CP			-> Vérifie si CP valide
**/

/*
** Renvoie true si la longueur de la chaîne est plus petite ou égale à Len
*/
function Check_Length(string,len){
	return string.length<=len;
}

/*
** Renvoie true si la chaîne de caractère en paramètre est vide ou composée uniquement d'espaces
*/
function Is_Empty(inString){
	return inString=='' || inString.replace(/(^\s*)|(\s*$)/g,'')==''; 
}

/*
** Renvoie true si la chaîne contient uniquement des caractères alphabétiques (espaces acceptés)
*/
function Is_Alphabetic(String){
	var Exp=/^[a-zàäâéèêëîïöôùûü ]+$/;
	return Exp.test(String.toLowerCase());
}

/*
** Renvoie true si la chaîne est un nombre entier
*/
function Is_Integer(string){
	var Exp=/^[0-9]+$/;
	return Exp.test(string);
}

/*
** Renvoie true si la chaîne est numérique
*/
function Is_Numeric(string){
	var Exp=/^([0-9]{1,})[\.,]?([0-9]{1,})$/;
	return Exp.test(string);
}

/*
** Renvoie true si la chaîne est alphanuméric (lettres & chiffres uniquement)
*/
function Is_Alphanumeric(s){
	return isAdresse(s);
}

function isAdresse(s){
	var Exp=/^[\d\w\s\.,àäâéèêëîïöôùûü']+$/i;
	return Exp.test(s);
}



/*
** Renvoie true si la date est valide
*/
function Is_Date(string){
	var Exp=/^(\d{4})\/(\d{2})\/(\d{2})$/;
	if(Exp.test(string)){
		Exp.exec(string);
		return (RegExp.$2>=0&&RegExp.$2<=12)&&(RegExp.$3>=0&&RegExp.$3<=31);
	}else{
		return false;
	}
}
/*
** Renvoie true si la date au format DD/MM/AAAA est valide
*/
function Is_Date_F(string){
	var Exp=/^(\d{2})\D(\d{2})\D(\d{4})$/;
	if(Exp.test(string)){
		Exp.exec(string);
		return (RegExp.$1>=01&&RegExp.$1<=31)&&(RegExp.$2>=01&&RegExp.$2<=12);
	}else{
		return false;
	}
}
/*
** Renvoie true si l'email est valide
*/
function Is_Email(string){
	var Exp=/^[a-z0-9\.\-_]+@[a-z0-9\-_]?[a-z0-9\-_\.]*[a-z0-9\-_]\.[a-z]{2,4}$/;
	return Exp.test(string.toLowerCase());
}

/*
** Renvoie true si une des radio box a été sélectionnée
*/
function Is_Radio_Checked(radio){
//alert("radio : "+Radio+"\r\ntaille="+Radio.length);
	var R_Length=radio.length;
	for(var i=0;i<R_Length;i++){
//alert("Element "+i+" : "+Radio[i]+"\r\nChecked ? "+	Radio[i].checked);
		if(radio[i].checked){
			return true;
		}
	}
	return false;
}

/*
** Renvoie la valeur de la radio box sélectionnée
*/
function Radio_Value(radio){
    var R_Length=radio.length;
    for(var i=0;i<R_Length;i++){
        if(radio[i].checked){
            return Radio[i].value;
        }
    }
    return false;
}

/*
** Renvoie true si la check box a été cochée
*/
function Is_Checkedbox(Chkbox){
    return Chkbox.checked;
}

/*
** Renvoie la valeur de la checkbox
*/
function Checkbox_Value(Chkbox){
	return Chkbox.value;
}

/*
** Renvoie True si le numéro est eligible France Telecom
*/
function Is_Numero_FT(Str_Numero)
{
	// On transforme la chaine en numero
	//var A_Remplacer=new RegExp("[A-Za-z.;, -]", "g");
	var A_Remplacer=new RegExp("[^0-9]", "g");
	Str_NumeroFT=Str_Numero.replace(A_Remplacer,"");
	
	//Debut du contrôle
	if(Str_NumeroFT.length == 10)
	{
		// On vérifie que le numéro commence par 01 ou 02 ou 03 ou 04 ou 05 
		if(Str_NumeroFT.charAt(0)==0 && Str_NumeroFT.charAt(1)>0 && Str_NumeroFT.charAt(1)<=5)
		{
			return true;
		}
	}else
	{
		return false;
	}
}

/*
** Renvoie True si le numéro est Numero de Telephone
*/
function Is_Numero_Tel(Str_Numero){
	// On transforme la chaine en numero
	//var A_Remplacer=new RegExp("[A-Za-z.;, -]", "g");
	var A_Remplacer=new RegExp("[^0-9]", "g");
	Str_NumeroFT=Str_Numero.replace(A_Remplacer,"");

	//Debut du contrôle
	if(Str_NumeroFT.length != 10){
		return false;
	}
	
	// On vérifie que le numéro commence par 01 ou 02 ou 03 ou 04 ou 05 ou 09 pour les box 
	if(Str_NumeroFT.charAt(0)==0 && Str_NumeroFT.charAt(1)>0 && Str_NumeroFT.charAt(1)<=9){
		return true;
	}else{
		return false;
	}
}

/*
** Renvoie True si le Cp a 5 caractere et correspond a un departement
*/
function isCodePostal(s){
	//var Exp=/^\d[\dAB]\d{3}$/i;
	 var Exp=/^(2A|2B|0[1-9]|[1-9]\d)\d{3}$/i;
	return Exp.test(s);
	
	//return Exp.test(s) && parseInt(s.replace(/A|B/,'0'))>1000;
}


function Is_Cp(Str_Cp){
	return isCodePostal(Str_Cp);
}

/*
** Renvoie True si l'année est à 4 chiffres
*/

function Is_Annee(s){
	var d=new Date();
	var i=parseInt(s);
	
	return i>1900 && i<=(d.getFullYear()+1);// On accepte le futur proche
	
	/*
	if (Is_Integer(string) == true && string.length==4) {
		return true;
	} else {
	return false;
	}*/
}
function getDate(strDate){	  
	    day = strDate.substring(0,2);
		month = strDate.substring(3,5);
		year = strDate.substring(6,10);
		d = new Date();
		d.setDate(day);
		d.setMonth(month-1);
		d.setFullYear(year); 
		return d;  
	  }
function compare_date(date1, date2){

	if(date2=='today') date_2 = new Date();
	else date_2 = getDate(date2);
		
	 date_1 = getDate(date1);
			
	 diff = date_1.getTime()-date_2.getTime();
	 return (diff==0?diff:diff/Math.abs(diff));
}


function changeCheckBox(checkboxObj,hiddenObjId,onValue,offValue){
	if(checkboxObj.checked) $(hiddenObjId).value = onValue;
	else $(hiddenObjId).value = offValue;
}

var erreursAlert = new Object();

function gestionErreur(element,error){

	if(error=="") error = textesErreurs['text-required'];
	if(typeof(typeAlerteJS)=='undefined') typeAlerteJS = "message";

	if(typeAlerteJS=='message'){
	
	$('error-'+element).innerHTML=error;
	$('error-'+element).style.display = "block";
	}else{	

		if($("label-"+element)!=null){
			labelElement = $("label-"+element).innerHTML+" : ";
			erreursAlert[element] = labelElement+error;
		}else{
			erreursAlert[element] = error;
		}

	}
	
}

function generateErreurs(msg){

	if(typeof(typeAlerteJS)=='undefined') typeAlerteJS = "message";
	var msgAlert = msg+"\n\n";

	if(typeAlerteJS=="alert"){
		for(key in erreursAlert){
			if(key.substring(0,2)=="qf") {
				msgAlert+=erreursAlert[key]+"\n\n";
			}
		}
	}

	alert(msgAlert);
}
function generateErreursAlertes(msg,formId){

	var msgAlert = msg+"\n\n";

	for(key in erreursAlert){
		msgAlert+=erreursAlert[key]+"\n\n";
	}
	alert(msgAlert);
}

// Form V2 utils
function goToBackWithoutCheck(){

	$("gotoback").value = 1;

	evt.stop();
}
