//var ERROR_MISSING_SNF_DISPLAY=new Error("Il manque l'import du fichier '/base/js/filtres/snf.display.js'");
//if(typeof(EV)=='undefined') throw ERROR_MISSING_SNF_DISPLAY;
//if(typeof(EV.filtres)=='undefined') throw ERROR_MISSING_SNF_DISPLAY;

// définition d'un auditeur d'évènements de filtrage spécifique à XITI
EV.filtres.xiti={
	// Pour les évènements sur CheckBox (ou autre dispositif à choix multiple)
	onFilterToggle: function(name, borneValue, visible, refresh){
		name=this.identifyFilterName(name);
		borneValue=this.identifyNumberValue(name, borneValue);
		borneValue=this.formatValue(borneValue);
		if(typeof(xt_med)=='function'){
			//console.debug("XITI TOGGLE : xt_med('C','0','Filtre_"+name+"_"+borneValue+"_"+(visible? "On": "Off")+"','N')...");
			xt_med('C','0','Filtre_'+name+'_'+borneValue+'_'+(visible? 'On': 'Off'),'N');
		}
	},

	// Pour les évènements sur CheckBox (ou autre dispositif à choix multiple)
	onFilterInterval: function(name, borneInf, borneSup){
		name=this.identifyFilterName(name);
		borneInf=this.formatValue(borneInf);
		if(borneSup){
			borneSup=this.formatValue(borneSup);
		}
		if(typeof(xt_med)=='function'){
			//console.debug("XITI INTERVAL : xt_med('C','0','Filtre_"+name+"_"+borneInf+(borneSup? "_"+borneSup: "")+"','N')...");
			xt_med('C','0','Filtre_'+name+'_'+borneInf+(borneSup? '_'+borneSup: ''),'N');
		}
	},

	// Méthode d'identification du nom de filtre
	identifyFilterName: function(_name){
		_name=_name.replace(/^filter/i,'');
		_name=_name.replace(/^filtre/i,'');
		_name=_name.replace(/^fltr/i,'');
		_name=_name.replace(/Chkbx$/i,'');
		switch(_name){
			// TOUS LES MOTEURS :
			case "Part": _name="Partenaire"; break;
			case "Prix": _name="Prix"; break;

			// spécifiques MOTEUR VOL :
			case "Stop": case "Escale": _name="Escales"; break;
			case "HDA": _name="HeureDA"; break;
			case "HAA": _name="HeureAA"; break; // pas utilisé
			case "HDR": _name="HeureDR"; break; // pas utilisé
			case "HAR": _name="HeureAR"; break;
			case "ADA": _name="AeroportDA"; break;
			case "AAA": _name="AeroportAA"; break;
			case "ADR": _name="AeroportDR"; break; // pas utilisé
			case "AAR": _name="AeroportAR"; break; // pas utilisé
			case "Cmp": _name="Compagnie"; break;

			// spécifiques MOTEUR HOTEL :
			case "Star": _name="Etoiles"; break;

			// spécifiques MOTEUR HOTEL :
			case "Categories": _name="Categorie"; break;
			case "Boites": _name="Boite"; break;
			case "Clim": _name="Clim"; break;
			case "Loueur": _name="Loueur"; break;
			case "Passagers": _name="NbPassagers"; break;
		}
		return _name;
	},

	// différentes catégories de voitures
	MEC_CATEGORIES: ["NC", "Mini", "Eco", "Compacte", "Intermediaire", "Standard", "Familiale", "Prestige", "Luxe", "Monospace", "Sport", "4x4", "Utilitaire"],

	// différents types de boite de vitesse
	MEC_BOITES: ["NC", "Manuelle", "Automatique"],

	// différents types de boite de vitesse
	MEV_ESCALES: ["NC", "Direct", "Escale"],

	// Méthode permettant d'utiliser des termes plus facile à relire (au lieu de codes numériques)
	identifyNumberValue: function(_name, _borneValue){
		switch(_name){
			case "Escales":
				if(!_borneValue){
					_borneValue=0;
				}
				return this.MEV_ESCALES[_borneValue];
			case "Categorie":
				if(!_borneValue){
					_borneValue=0;
				}
				return this.MEC_CATEGORIES[_borneValue];
			case "Boite":
				if(!_borneValue){
					_borneValue=0;
				}
				return this.MEC_BOITES[_borneValue];
			default:
				return _borneValue;
		}
	},

	// Méthode de formatage d'une valeur ne pouvant pas contenir d'espace ou de caractère spéciaux
	formatValue: function(_borneValue){
		if(!_borneValue){
			_borneValue="NONE";
		}
		_borneValue=_borneValue.replace(/[^a-z0-9]+/gi,'');
		return _borneValue;
	}
};

// ajout de l'auditeur au gestionnaire d'évènements de filtrage
EV.filtres.addEventListener(EV.filtres.xiti);
