(function() {
	// Si les namespaces/classes nécessaires ne sont pas chargées : exception
	var WIN = this,
			EASY = WIN.ev,
			UNDEFINED;
	// Si les namespaces/classes nécessaires ne sont pas chargées : exception
	if (!EASY) {
		throw ('ev.me.lieu_EASY_undefined');
	}
	if (!EASY.rjs) {
		throw ('ev.me.lieu_EASY.rjs_undefined');
	}
	if (!EASY.me) {
		throw ('ev.me.lieu_EASY.me_undefined');
	}

	if (!EASY.me.Lieu) {
		throw ('ev.me.lieux_EASY.me.Lieu_undefined');
	}

	/**
	 * Objet Lieux : permet de stocker une liste de proposition de lieux
	 */
	EASY.me.Lieux = function() {
		this.lieux = []; // liste des lieux proposés
	};

	EASY.me.Lieux.prototype = {
		DOMToObjet: function(doc) {
			if (doc) {
				var i = 0, lieu;
				while (doc.getElementsByTagName('nomLieu')[i] !== UNDEFINED && doc.getElementsByTagName('nomLieu')[i].firstChild !== UNDEFINED) {
					lieu = new EASY.me.Lieu();
					lieu.id = doc.getElementsByTagName('idLieu')[i].firstChild.nodeValue;
					lieu.type = doc.getElementsByTagName('typeLieu')[i].firstChild.nodeValue;
					lieu.nom = doc.getElementsByTagName('nomLieu')[i].firstChild.nodeValue;
					lieu.code = doc.getElementsByTagName('codeLieu')[i].firstChild.nodeValue;
					lieu.pays = doc.getElementsByTagName('pays')[i].firstChild.nodeValue;
					this.lieux[i] = lieu;
					i++;
				}
			}
			else {
				throw ("ev_me_Lieu_impossible de creer un objet Lieu à partir de l'objet passé en paramètre");
			}
		},
		//FIXME à supprimer une fois que la version era fonctionne
		convertToObjet: function(doc) {
			if (doc) {
				var lieu, i;
				for (i = 0; i < doc.length; i++) {// Parcourir la liste des propositions
					lieu = new EASY.me.Lieu();
					lieu.id = doc[i].idLieu;
					lieu.type = doc[i].typeLieu;
					lieu.nom = doc[i].nomLieu;
					lieu.code = doc[i].codeLieu;
					lieu.pays = doc[i].pays;
					this.lieux[i] = lieu;
				}
			}
			else {
				throw ("impossible de creer un objet Lieu à partir de l'objet passé en paramètre");
			}
		},
		toString: function() {
			var s = '', i;
			for (i = 0; i < this.lieux.length; i++) {
				s = s + 'nom: '+ this.lieux[i].nom + ' ('+ this.lieux[i].pays + ')\n';
			}
			return s;
		}
	};
}());

