(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");}
	if(!ev.me){throw new Error("Le namespace 'ev.me' doit exister");}
	if(!ev.me.Lieu){throw new Error("La classe 'ev.me.Lieu' doit exister");}
	
	/**
	 * Objet Lieux : permet de stocker une liste de proposition de lieux
	 */
	ev.me.Lieux=function(){
		this.lieux=[]; // liste des lieux proposés 
	};

	ev.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 ev.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 new Error("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;
				for (var i = 0; i < doc.length; i++) {// Parcourir la liste des propositions
					lieu=new ev.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 new Error("impossible de creer un objet Lieu à partir de l'objet passé en paramètre");
			}
	  	},
		toString: function(){
			var s="";
			for(var i=0;i<this.lieux.length;i++){
				s=s+"nom: "+this.lieux[i].nom+" ("+this.lieux[i].pays+")\n";
			}
			return s;
		}
	};
})();
