// on teste d'abord l'existance des classes nécessaires
Classe.checkDefined("XHRMethod");
Classe.checkDefined("XHRGetMethod");

/**
 * Constructeur de la classe GetPropositionsMethod.
 * Il construit une instance de GetPropositionsMethod
 * à partir des paramètres donnés.
 *
 * La classe GetPropositionsMethod est une extension
 * de la classe XHRGetMethod permettant de récupérer
 * un jeu de propositions de Lieu et est auditeur
 * de timeline.
 *
 * @param {Integer} _timeout : temps accordé pour l'exécution de la requête
 * @param {String} _url : adresse de la page a appeler
 * @param {Function} _doAfter : méthode à exécuter une fois que la requête est terminée
 * @param {Integer} _retry : la requete sera relancée  _retry fois si le status de retour est différent de 200 ou 300
 */
function GetPropositionsMethod(_timeout, _url, _doAfter, _retry){
	// appel du constructeur de XHRMethod
	XHRMethod.call(this, _timeout, _url, _retry);

	// définition des propriétés
	this.lieux=new Lieux();
	this.doAfter=_doAfter;
}

GetPropositionsMethod.prototype={
	/**
	 * Surcharge (Extraction des données reçues).
	 *
	 * @see XHRMethod#parseData()
	 */
	parseData: function(_data){
		// appel de la méthode de base dans XHRMethod (pour gestion des exceptions)
		XHRMethod.prototype.parseData.apply(this, arguments);
		// si aucune erreur, alimenter le lieu courant avec les valeurs contenu dans le document donné
		this.lieux.DOMToObjet(_data);
		if(typeof(this.doAfter)=='function') this.doAfter(this.lieux);
	},
	
	catchError: function(_typeError, _message){
		EV.ME.ErrorManager().add(new EV.ME.Error("errorMEHGetPropositions", _typeError, EV.ME.ErrorLevel.FATAL, _message));
	}
}

// déclaration de l'héritage
Classe.extend(GetPropositionsMethod, XHRGetMethod);
if (typeof(log)=='function') log("me3/meh/GetPropositionsMethod.js ok", "info");
