ModeleInteraction = function() 
{

	/**************************************************************************
	*					variable							*
	***************************************************************************/ 
	ModeleInteraction.numLangue;
	ModeleInteraction.numCategorie;
	ModeleInteraction.tabCategorie=new Array();
	ModeleInteraction.idPage='';
	ModeleInteraction.idPageCategorie='';
	
	ModeleInteraction.root="http://www.laval-virtual.org/";
	ModeleInteraction.video=ModeleInteraction.root+"elements/contenus/flvplayer.swf";
	
	ModeleInteraction.nbCategorieShown=0;
	
	
	/**************************************************************************
	*					initialisation							*
	***************************************************************************/ 
	//initialisation des langues
	ModeleInteraction.tabLangue=new Array();
	ModeleInteraction.tabLangue[0]='fr';
	ModeleInteraction.tabLangue[1]='en';
	ModeleInteraction.tabLangue[2]='jp';

	

	
	
	
	/**************************************************************************
	*					fonctions							*
	***************************************************************************/ 
	ModeleInteraction.createItem=function()
	{
		// bouton Adresse : 
		boutonAdresse=new BoutonAddress();
		// création du Menu Principal 
		ModeleInteraction.menuPrincipal= new MenuPrincipal();

		
		// création du Menu Contextuel
			ModeleInteraction.menuContext=new MenuContextuel();
	
		// création du Menu
		ModeleInteraction.menu=new Menu();
		
		// création du conteneur de contenu
		ModeleInteraction.conteneur=new ModeleConteneur();
		
		// crétion du conteneur info : contient conteneur, menucontextuel et partenaires et foot
		ModeleInteraction.conteneurInfo=$("<div></div>");
		ModeleInteraction.conteneurInfo.addClass("ConteneurInfo");
		
		// créaton du conteneurPage : contien tout
		ModeleInteraction.conteneurPage=new ConteneurPage();
		
		// création de la bannière on the top
		ModeleInteraction.banner=new Banner();
		
		
		// load des formes : 
		//form=new Form();
		
	}
	
	
	
	
	/**************************************************************************************
	*			Interaction de langue
	**************************************************************************************/
	ModeleInteraction.getLangue=function()
	{
		return ModeleInteraction.tabLangue[ModeleInteraction.numLangue];
		
		
	}
	
	ModeleInteraction.setLangue=function(_langue , premierAppel)
	{
		if(typeof _langue ==  typeof 0)
		{
			ModeleInteraction.numLangue=_langue;
		}
		else
		{
			switch(_langue)
			{
				case "fr" : 
						ModeleInteraction.numLangue=0;
					break;
				case "en" :
						ModeleInteraction.numLangue=1;
					break;
				case "jp" :
						ModeleInteraction.numLangue=2;
					break;
				case "zh" :
						ModeleInteraction.numLangue=1;
					break;
				case "0" : 
						ModeleInteraction.numLangue=0;
					break;
				case "1" :
						ModeleInteraction.numLangue=1;
					break;
				case "2" :
						ModeleInteraction.numLangue=2;
					break;
				default :
						ModeleInteraction.numLangue=0;
					break;
					
			}
		}
		
		
		if (!premierAppel)
		{
			Recherche.setLangue();
			Banner.action();
			if (_langue!='zh')
				ModeleInteraction.refreshCategorie();
			MenuPrincipal.refresh();
			MenuRaccourcis.refresh();
			FollowUs.refresh();
		}
	}
	
	function getIdTabCategorie()
	{
		for (var i=0; i<ModeleInteraction.tabCategorie.length ; i++)
		{
			if (ModeleInteraction.tabCategorie[i])
				if (ModeleInteraction.tabCategorie[i]["id"]==ModeleInteraction.numCategorie)
					return i;
		}	
	}
	
	ModeleInteraction.getIdTabCategorie=function()
	{
		return getIdTabCategorie();
	}
	
	
	/**************************************************************************************
	*			Interaction de categorie
	**************************************************************************************/
	ModeleInteraction.getCategorie=function()
	{
		return ModeleInteraction.numCategorie;
	}

	ModeleInteraction.setCategorie=function(_id , premierAppel)
	{
		ModeleInteraction.numCategorie=_id;
		
		if (!premierAppel)
		{
			//Banner.action();
			ModeleInteraction.refreshCategorie();
		}
	}

	ModeleInteraction.refreshCategorie=function()
	{			
		// load du contenu
		if (ModeleInteraction.idPageCategorie!='')
		{
			ModeleInteraction.loadContenu(ModeleInteraction.idPageCategorie);
			ModeleInteraction.idPageCategorie='';
		}
		else
			ModeleInteraction.loadContenu(ModeleInteraction.tabCategorie[getIdTabCategorie(ModeleInteraction.numCategorie)]["contenu"]);
		
		// refresh menu contextuel
		MenuContextuel.refresh();
		ModeleGraphique.changeStyle(ModeleInteraction.tabCategorie[getIdTabCategorie(ModeleInteraction.numCategorie)]["couleur"]);
	}
	
	
	
	
	/**************************************************************************************
	*			Interaction de contenu
	**************************************************************************************/
	ModeleInteraction.loadContenu=function(lien)
	{
		ModeleInteraction.idPage=lien;
		BoutonAddress.focus();
		$.getJSON(ModeleInteraction.root+'chargements/loadContenu.php?id='+lien+'&langue='+ModeleInteraction.getLangue() , ModeleInteraction.afficheContenu);
	}
	
	
	ModeleInteraction.afficheContenu=function(reponse , contenu)
	{
		if(reponse.contenus[0] && reponse.contenus[0].typeLoad!='addition')
		{
			ModeleConteneur.removeAllElements();
		}
		
	
		$.each(reponse.contenus , function (i , unContenu)
		{
			if (unContenu.width && parseInt(unContenu.width)>795)
			{
				unContenu.width=795;
			}
			switch (unContenu.type)
			{
				case 'article' :
//						cadre=new Cadre(unContenu.width , unContenu.titre , unContenu.texte , true , true , true);
//						ModeleConteneur.ajoutElement(new Article(unContenu.titre, unContenu.texte , unContenu.width , unContenu.id) , unContenu.seul);
						ModeleConteneur.ajoutElement(new Cadre(unContenu.width , unContenu.titre , unContenu.texte , true , true, false , true) , unContenu.seul);
					break;			
					
				case 'animation' :
						ModeleConteneur.ajoutElement(new Cadre(parseInt(unContenu.width)+2 , unContenu.titre , new Animation('', unContenu.adresse , unContenu.width , unContenu.height).me , true , true, false, false) , unContenu.seul);
					//	ModeleConteneur.ajoutElement(new Animation(unContenu.titre , unContenu.adresse , unContenu.width , unContenu.height) ,  unContenu.seul);
					break;
					
				case 'video' :
						ModeleConteneur.ajoutElement(new Cadre(parseInt(unContenu.width) , unContenu.titre , new Video('' , unContenu.typeVideo , unContenu.adresse , unContenu.width , unContenu.height).me , true , true, false , false) , unContenu.seul);
				
				//		ModeleConteneur.ajoutElement(new Video(unContenu.titre , unContenu.typeVideo , unContenu.adresse , unContenu.width , unContenu.height) ,  unContenu.seul);
					break;
				case 'iframe' :
						ModeleConteneur.ajoutElement(new Cadre(unContenu.width , unContenu.titre , new IFrame( unContenu.id , unContenu.adresse , unContenu.width , unContenu.height).me , true , true, false , false) , unContenu.seul);
					//	ModeleConteneur.ajoutElement(new IFrame( unContenu.id , unContenu.adresse , unContenu.width , unContenu.height) ,  unContenu.seul);
					break;
				case 'dilib' :
						ModeleConteneur.ajoutElement(new Cadre(792 , 'Digital Library', new DigitalLibrary().me , false , false, false , true) , unContenu.seul);
					//	ModeleConteneur.ajoutElement(new DigitalLibrary() ,  unContenu.seul);
					break;
				case 'photoviewer':
						ModeleConteneur.ajoutElement(new PhotoViewer() ,  unContenu.seul);
					break;
				case 'viewer360':
						ModeleConteneur.ajoutElement(new Cadre(parseInt(unContenu.width)+2 , 'Viewer 360' , new Viewer360(unContenu.adresse , unContenu.width , unContenu.height).me , true , true, false , false) , unContenu.seul);
					//	ModeleConteneur.ajoutElement(new Viewer360(unContenu.adresse , unContenu.width , unContenu.height) ,  unContenu.seul);
					break;
				case 'appviewer':
					//	ModeleConteneur.ajoutElement(new AppViewer() ,  unContenu.seul);
						ModeleConteneur.ajoutElement(new Cadre(792 , 'JukeBox' , new AppViewer().me  , false , true, false , true) , unContenu.seul);
						
					//	ModeleConteneur.ajoutElement(new Cadre(440 , 'gros', new Twitter().me  , true , true, false  , true) , unContenu.seul);
					break;
					
				case 'form' :
						//ModeleConteneur.ajoutElement(Form.createForm(unContenu.titre , unContenu.typeForm) ,  unContenu.seul);
						ModeleConteneur.ajoutElement(new Cadre(440 , unContenu.titre , Form.createForm(unContenu.titre , unContenu.typeForm).me  , true , true, false , true) , unContenu.seul);
					break;
					
				case 'twitter' :
						//ModeleConteneur.ajoutElement(Form.createForm(unContenu.titre , unContenu.typeForm) ,  unContenu.seul);
						ModeleConteneur.ajoutElement(new Cadre(320 , unContenu.titre , new Twitter().me  , false , true, false , true) , unContenu.seul);
					break;
				case 'link' :
						window.open(unContenu.lien);
					break;
				case 'liste' :
						ModeleConteneur.ajoutElement(new Cadre(795 , unContenu.titre , new ListeExposant(unContenu.table , unContenu.database).me , true , true, true , false) , unContenu.seul);
					break;
				case 'plan' :
						ModeleConteneur.ajoutElement(new Cadre(795 , unContenu.titre , new Plan().me , true , true, true , false) , unContenu.seul);
					break;
			}
			
			
		});
	}	
	
	
	ModeleInteraction.KeepPaperAjout=function(cadre)
	{
		ModeleConteneur.ajoutElement(new Cadre(cadre._width  , cadre._titre , cadre._contenu , cadre._keepPaper  , cadre._reduc, cadre._close , cadre._bottom) , 0);
	/*	switch (type)
		{
			case 'article':
				ModeleConteneur.ajoutElement(new Cadre(width  , titre , contenu , true , true, false , true) , 0);
				break;
			case 'animation':
				ModeleConteneur.ajoutElement(new Cadre(parseInt(width)+2 , titre , new Animation('', contenu , width , height).me , true , true, true , false) , 0);
				break;
			case 'video':
				ModeleConteneur.ajoutElement(new Cadre(parseInt(width)+2 , titre , new Video('' , type ,contenu , width , height).me , true , true, true , false) , 0);
				break;
		}*/
	}
	
	
	
	ModeleInteraction.afficheResultatRecherche=function(typeElement ,  titre , contenu , width , height , type)
	{
		switch(typeElement)
		{
			case 'article':
				ModeleConteneur.ajoutElement(new Cadre(width  , titre , contenu , true , true, false, true) , 1);
				break;
			case 'video':
				ModeleConteneur.ajoutElement(new Cadre(parseInt(width) , titre , new Video('' , type ,contenu , width , height).me , true , true, false , false) , 1);
				break;
				
			case 'animation':	
				ModeleConteneur.ajoutElement(new Cadre(parseInt(width)+2 , titre , new Animation('', contenu , width , height).me , true , true, false , false) , 1);
				break;
		}
	}	
}