var listenBoutonsVilles_ex = function(){
	if (Ext.get('ResetLieux'))
		Ext.get('ResetLieux').on('click',ajaxGetVilles);
	
	if (Ext.get('FormDataTerritoireSubmit'))
		Ext.get('FormDataTerritoireSubmit').on('click',ajaxGetVilles);

	if (Ext.get('FormDataRegionSubmit'))
		Ext.get('FormDataRegionSubmit').on('click',ajaxGetVilles);
						
	if (Ext.get('FormDataDepartementSubmit'))
		Ext.get('FormDataDepartementSubmit').on('click',ajaxGetVilles);
			
	if (Ext.get('FormDataVilleIDSubmit'))
		Ext.get('FormDataVilleIDSubmit').on('click',ajaxGetVilles);
}


var creerLiensSpansVilles = function (){
	CreeLien("FormDataTerritoireSpan", 0);
	CreeLien("FormDataRegionSpan", 1);
	CreeLien("FormDataDepartementSpan", 2);
	CreeLien("FormDataVilleIDSpan", 3);
}

var CreeLien = function(sFormID, iInd){
	if (Ext.get(sFormID)) {
		var buff = Ext.get(sFormID).dom.innerHTML;
		//Ext.get(sFormID).dom.innerHTML = "<a id='"+sFormID+"Lien' href='#' name='"+iInd+"' onclick='return false;' title='Cliquez pour modifier'>" +buff+"</a>";
		Ext.get(sFormID+"Lien").removeAllListeners();
		Ext.get(sFormID+"Lien").on('click',ajaxGetVilles);
	}
}

/**
 * @author ECV 
 * créér le 14/11/2008
 */
var listenBoutonsVilles = function(){
	//var tab = Ext.select("select",true,"ajaxVillesForm");
	var tab = Ext.DomQuery.selectNode("div/select","ajaxVillesForm");
	if(tab){
		Ext.get(tab).removeAllListeners();
		Ext.get(tab).on('change',ajaxGetVilles)
	}
}

/*Ext.get('divSubmit').on('click', function(){
        Ext.MessageBox.show({
           title: 'Vérification des champs',
           msg: 'Il y a une erreur mouhahahaha!',
           buttons: Ext.MessageBox.OK,
           animEl: 'divSubmit',
           fn: function(){},
           icon: Ext.MessageBox.WARNING
       });
    });
*/


var ajaxGetVilles = function (e){

		/* Création d'un tableau de type : idHtmlDuChamp => "id;Label"
		* Ce tableau contiendra les informations du formulaire qui seront 
		* nécessaires pour connaitre le fil d'arianne des villes. 
		*/
		var tajParams = new Object();
		if (Ext.get('FormDataTerritoire')){
		//alert("je fais ça !");
			//tajParams['FormDataTerritoire'] = Ext.get('FormDataTerritoire').dom.value;
			tajParams['FormDataTerritoire'] = Ext.get('FormDataTerritoire').getValue();
		} 
		
		if(Ext.get('FormDataRegion')){
		//alert("je fais ci !");
			tajParams['FormDataRegion'] = Ext.get('FormDataRegion').getValue();
		}
		if (Ext.get('FormDataDepartement')){
			tajParams['FormDataDepartement'] = Ext.get('FormDataDepartement').getValue();
		}
		if (Ext.get('FormDataVilleID')){
		//alert("je fais encore ceci !");
			tajParams['FormDataVilleID'] = Ext.get('FormDataVilleID').getValue();
		}
		
		/*for(i in tajParams){
			alert(i+" :: "+tajParams[i]);
		}*/
		
		/*
		*  si l'élément HTML qui a fait appel à ajaxGetVilles possède une
		*  proprieté name="<INT>", alors c'est une modification du fil 
		*  d'ariane.  
		*/
		if (!isNaN(e.getTarget().name)){
			tajParams['ResetPoint'] = e.getTarget().name;
		}
		
		if (Ext.get('Villes')){
			// [img]Chargement...
			Ext.get('Villes').dom.innerHTML = "<div class='waitLoading'><img src='/plateforme/Commons/javascript/ext-2.0/resources/images/default/grid/loading.gif' alt=''/>Chargement...</div>";
		}
		
		//Requête Ajax
		Ext.Ajax.request({
		   //method: 'GET',
		   url: '/Utilisateurs/index/ajax',
   		   params: tajParams,
		   //text: "Updating...",
		   success: function (result, request){
		   			var msg = Ext.get("Villes");
					msg.dom.innerHTML = result.responseText;
					listenBoutonsVilles() // On réaffecte les listeners sur les liens (villes)
					creerLiensSpansVilles(); // On crée les liens de modification des villes
					//iniSelect();
				},
		   failure: function (response, request){
					alert("failure : " + request.responseText );
				}
		});
		return false; // Ne pas soumettre le formulaire : Ca marche ? on dirait pas
	}


 
// Vérifications des champs à la volée sur évenement (onBlur)
var listenVerificationChamps = function(){
	if (Ext.get('FormDataNom'))
		Ext.get('FormDataNom').on('blur',verifierChamp);
		
	if (Ext.get('FormDataPrenom'))
		Ext.get('FormDataPrenom').on('blur',verifierChamp);
		
	if (Ext.get('FormDataMail'))
		Ext.get('FormDataMail').on('blur',verifierChamp);
		
	if (Ext.get('FormDataNaissance'))
		Ext.get('FormDataNaissance').on('blur',verifierChamp);
		
	if (Ext.get('FormDataAdresse'))
		Ext.get('FormDataAdresse').on('blur',verifierChamp);
		
	if (Ext.get('FormDataTelephone'))
		Ext.get('FormDataTelephone').on('blur',verifierChamp);
		
	if (Ext.get('FormDataGSM'))
		Ext.get('FormDataGSM').on('blur',verifierChamp);

	if (Ext.get('FormDataFax'))
		Ext.get('FormDataFax').on('blur',verifierChamp);
}

var getRegExpFor = function (sIdElt){
	// Création de plusieurs expressions régulières qui seront renvoyées selon
	// le champ (id) passé en paramètre.
	
	var accents = "\xC0-\xFF";	//http://www.commentcamarche.net/base/ascii.php3
	//alert(accents);
	var re1 = "^[a-zA-Z"+accents+"\-\_\ ]+$"; //lettres + accents + -_ + espace
	var re2 = "^[a-zA-Z0-9\-\_]+$"; //lettres + -_ + espace
	var reMail = "^[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_]+\.[a-zA-Z]{2,3}$"; // Adresse mail
	var reTel = "^(([0-9]{2}([\-| ]?[0-9]{2}){4}))?$";	// Les numéros de tel sont tous considérés comme "optionnels" (null possibles)	
	var reDate = "^[0-3][0-9]/[0-1][0-9]/(19|20)[0-9]{2}$"; // Date au format jj/mm/aaaa
	//var reAdr = "^[a-zA-Z0-9"+accents+"\-\_\;\:\,\.\'\ ]+$";  //lettres + accents + -_;:,. + espace
	var reAdr = "^[a-zA-Z0-9"+accents+"\_\;\:\,\.\'\ ]+$";  //lettres + accents + _;:,. + espace
	
	switch(sIdElt){
		case 'FormDataNom': return  new RegExp(re1,'i');
		case 'FormDataPrenom': return new RegExp(re1,'i');
		case 'FormDataMail': return new RegExp(reMail);
		case 'FormDataNaissance': return new RegExp(reDate);
		case 'FormDataTelephone': return new RegExp(reTel);
		case 'FormDataGSM': return new RegExp(reTel);
		case 'FormDataFax': return new RegExp(reTel);
		case 'FormDataAdresse': return new RegExp(reAdr,'i');
		
		default: return new RegExp(re2,'i');
	}
}

var verifierChamp = function(e){
	var champ = e.getTarget()
	var re = getRegExpFor(champ.id);
	if(!re.test(champ.value)){
		champ.className='ajaxVerificationErreur';
	} else {
		champ.className=null;
	}
	
}


Ext.onReady(function(e){
//
listenBoutonsVilles();
creerLiensSpansVilles();
listenVerificationChamps();
//iniSelect();	
});    

