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

/**
 * Constructeur de la classe SetCompteMethod.
 * Il construit une instance de SetCompteMethod
 * à partir des paramètres donnés.
 *
 * La classe SetCompteMethod est une extension
 * de la classe XHRPostMethod permettant de
 * récupérer un compte client 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 {Critere} _compte : compte client courant
 * @param {Function} _doAfterRetreive : 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 SetCompteMethod(_timeout, _url, _compte, _doAfterRetreive, _retry){
	// appel du constructeur de XHRPostMethod
	XHRPostMethod.call(this, _timeout, _url, _compte.objetToXML(), _retry);

	// définition des propriétés
	this.compte=_compte;
	this.doAfterRetreive=_doAfterRetreive;
}

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

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