//utilise le pattern MVC, un modele regroupe les donnees et notifie les vues des changement de celles ci
//les vues affiche ces donnees
//des controleurs sont chargés d'afficher ces donnes

//classes abstraites:
ModeleAbstract=Class.create();

ModeleAbstract.prototype = {
	initialize:function(){
		this.currentListe=0;
		this.tabVues= new Array();
	},
	ajouterObs:function(obs){
		this.tabVues[this.tabVues.length]=obs;
	},
	notifieObs:function(typeMaj){
		var tObs=this.tabVues.length;
		for(var i=0;i<tObs;i++){
			this.tabVues[i].miseAJour(typeMaj);
		}
	}	
	
}
VueAbstract = Class.create();
VueAbstract.prototype = {
	initialize:function(observateur,nom){
		this._modele=null;
		this.nom=nom;
		this._controller=null;
		
	},
	p_initialize:function(observateur,nom){

		this.setModele(observateur);
		this.setControler(observateur);
		this.creerVue();
	},
	
	setModele: function(observateur){
		this._modele=observateur;
	},
	setControler: function(observateur){
		this._controller=null;
	},
	creerVue: function(){
		return false;
	},
	miseAJour:function(){
		return false;
	},
	GetControler : function(){
		//alert('tot');
		return this._controller;
	}	
	
}
ControlerAbstract = Class.create();
ControlerAbstract.prototype={
	initialize:function(modele){
		this._modele=null;
		this.setModele(modele);
	},
	setModele:function(modele){
		this._modele=modele;	
	}	
	
}
