

(function(){
	// raccourci vers l'objet window de la page
	var window = this,
			// raccourci vers window.document
			document = window.document,
			// raccourci vers la package principal d'easyvoyage (ev)
			ev = window.ev,
			me = ev && ev.me;

	if (!ev) {throw 'me.errorManager#<init>: Needs ev.core module !';}

	if (!(me&&me.Error)) {throw 'me.errorManager#<init>: Needs ev.me.Error module !';}

	//Si ev.me.errorManager est déjà défini, on sort
	if (me.errorManager) {return;}

	var array=[];

	me.errorManager = {
		add: function(_error){
			if(!_error) {throw 'error is undefined'; }
			if(!(_error instanceof me.Error)) {throw 'error is not instance of ev.me.Error';}

			array.push(_error);

			if(_error.getLevel() === me.ErrorLevel.FATAL){//la recherche ne peut pas continuer, on fait part de l'erreur à l'internaute
				_error.print();
				throw 'ERREUR FATALE : - ' + _error.getMessageKey() + ' - ' + _error.getMessage();//on affiche une erreur
			}else{//le recherche peut quand même continuer, on peut avertir l'internaute qu'un problème mineur est survenu au cours de la recherche
				_error.print();
				throw 'ERREUR MINEUR : - ' + _error.getMessageKey() + ' - ' + _error.getMessage();//on affiche une erreur
			}
		},

		get: function(_index){
			if(_index>=array.length){
				 return null;
		}
			if(_index<0){
				return null;
				}
			return array[_index];
		},

		clear: function() {
			array=[];
		},

		getList: function() {
			return array;
		}
	};

	me.ErrorManager = function() {
		// on retourne toujours le meme objet errorManager (singleton)
		return me.errorManager;
	};
}());

