(function(){
	// Si les namespaces/classes nécessaires ne sont pas chargées : exception
	if(!window.ev){throw new Error("Le namespace 'ev' doit exister");}
	if(!ev.rjs){throw new Error("Le namespace 'ev.rjs' doit exister");}
	// On s'assure que le namespace ev.meh existe
	if(!ev.meh){ ev.meh={}; }
	//Si la classe ev.meh.GetPropositionsMethod est définie on sort
	if(ev.meh.GetPropositionsMethod){return;}
	
	/**
	 * Constructeur de la classe GetPropositionsMethod.
	 * Il construit une instance de GetPropositionsMethod
	 * à partir des paramètres donnés.
	 *
	 * La classe GetPropositionsMethod permet de récupérer
	 * un jeu de propositions de Lieu.
	 *
	 * @param {String} _url : adresse de la page a appeler
	 * @param {Function} _doAfterRetrieve : méthode à exécuter une fois que la requête est terminée
	 */
	ev.meh.GetPropositionsMethod=function(_url, _doAfterRetrieve){
		
		function callback(r){
		var propositions=r.propositions;
			this.lieux=new ev.me.Lieux();
			var thisProposition = this;
			for (var i=0; i<propositions.length; i++) {
				//ev.log.debug("ev.meh.GetPropositionsMethod > Lieux de proposition: " + propositions[i].toString());
				if (propositions[i].parametre == 'LIEU' && propositions[i].lieux && (propositions[i].lieux.length > 0)) {
					for (var j=0; j<propositions[i].lieux.length; j++) {
						//ev.log.debug("ev.meh.GetPropositionsMethod > lieu : " + propositions[i].lieux[j]);
						thisProposition.lieux = propositions[i];
	
						// si aucune erreur, on lance le callback (s'il y en a un)
						if(typeof(_doAfterRetrieve)=='function'){
							_doAfterRetrieve(thisProposition.lieux);
							}
					}
				}
				else{
					ev.log.warn('ev.meh.GetPropositionsMethod > onRJSEvent('+!!_e+')> NOT Good : '+r);
				}
			}	
		};
		ev.requestManager.invokeEra(ev.meh.Context().getRjsLocator(), _url, callback);	};
	
	ev.log.info("ev/meh/GetPropositionsMethod.js ok");

})();
