/*global window, ev */

/**
 * Fonction anonyme de déclaration de la classe Proposition.
 * Certaines fonctions ne sont visible que par les
 * classes concernées (déclarées ici).
 * Ce mécanisme de fonction anonyme permet de reproduire
 * un système d'encapsulation digne d'un langage de
 * programmation évolué (comme le Java).
 */
(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.tools){throw new Error("Le namespace 'ev.tools' 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");}
	if(ev.me.Proposition){return;}
	
	ev.me.Proposition=function(){
		/**
		 * paramètre déterminant pour quel lieu est faite la proposition (DEPART_ALLER, ARRIVEE_ALLER, DEPART_RETOUR ou ARRIVEE_RETOUR)
		 */
		this.parametre=null;
		/**
		 * lieux proposés
		 */
		this.lieux=[];
	};

	ev.me.Proposition.prototype={
		/**
		 * Ajoute un lieu à la proposition
		 * @param Lieu
		 */
		addLieu: function(lieu){
			this.lieux.push(lieu);
		},
		toString: function(){
			s="parametre="+this.parametre+" [";
			for(var i=0;i<this.lieux.length;i++){
				s=s+" "+this.lieux[i].nom;
			}
			s=s+"]";
			return s;
		}
	};
	
	ev.log.debug('ev.me.Proposition ok');
	ev.tools.onFileLoad('ev/me/Proposition.js');
})(); // exécution de la fonction anonyme ici
