var tabObjet;
// check for Flash Plug-in in Mac or Win Navigator. Get plug-in version.

/*****************************************************************************************************************
Fonctions d'affichage ou de chargement distant
*****************************************************************************************************************/

//pour récupérer un élément et/ou ses styles
function getObj(id, style){

	if (document.getElementById){ // Navigateur compatible DOM1 (Netscape 6, Explorer 5+)
		
		if (!style){return document.getElementById(id);}
		else if (document.getElementById(id) != null){
			this.obj = document.getElementById(id);
			this.style = document.getElementById(id).style;
		}
		else return null;
	}
	else if (document.all){ // DOM IE4

		if (!style){return document.all[id];}
		else if (document.all[id] != null){
			this.obj = document.all[id];
			this.style = document.all[id].style;
		}
		else return null;
	}
	else if (document.layers){ // DOM NS4 

		if (!style){return document.layers[id];}
		else if (document.layers[id] != null){
			this.obj = document.layers[id];
			this.style = document.layers[id];
		}
		else return null;		
	}
	return this;
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Modele() - OBJECT - structure pour un modele

function Objet(id,type,parent,src,width,height){

	this.type = type;	// Apprenant ou tuteur
	this.id = id;
	this.parent = parent;
	this.src = src;
	this.width = width
	this.height = height
	
	return this;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// add() - METHOD of Collection - adds an object to a Collection.
function add(object){
	//alert('add');
	this.length++;
	this[this.length] = object;
	
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Collection() - OBJECT - a dynamic storage structure similar to an Array.
function Collection()
{
	this.length = -1; 
	this.add = add; //ajout pour fonction add
	return this
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// adjustFrame

function adjustFrame(frame, ObjectWidth) {

  if (document.all) {
    var h = frame.document.body.scrollHeight;
    document.all[frame.id].width = ObjectWidth;
    document.all[frame.id].height = h;
  }
  else if (document.getElementById) {
    var h = frame.document.height;
    document.getElementById(frame.name).width = ObjectWidth;
    document.getElementById(frame.name).height = h;
  }
  
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// load l objet dans la frame
function loadframe(frame,src,ObjectWidth,ObjectHeight){
	
	frame.width = ObjectWidth;
	frame.height = ObjectHeight;
	//	---------------------------------------------------------------
	//  				RUSTINE
	// 	Le replace est utilisé pour les liens de la GED qui utilisent
	// 	des et commerciaux
	//	---------------------------------------------	
	frame.src = Replace(src,'&#038;','&');
	
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// retailleObjet
function retailleObjet(){
	
	//alert('retailleObjet');
	
	var objet, parent;
	
	// test navigateur ----------------------------------------
	if (!document.all && !document.getElementById){
		// AlertMsg 13 : 
		//"Vous devez choisir un élement à descendre"			
        AlertMsg(13);	
		return;
	}
	
	for(var i=0; i <= tabObjet.length;i++){
	   
		switch(tabObjet[i].type){

			case 'img':// si c est une img on fixe la largeur et le reste se redimensionne auto			
				
				var width,height
				parent = new getObj(tabObjet[i].parent,true);
				objet = new getObj(tabObjet[i].id,true);
				
				if ((tabObjet[i].width=="") || (tabObjet[i].width=="standard")){
					width = parent.obj.offsetWidth;
				}else {
					width = tabObjet[i].width;
				}
				
				if ((tabObjet[i].height=='') || (tabObjet[i].height=='standard')){
					height = 0; //parent.obj.offsetWidth;
				}
				else {
					height = tabObjet[i].height;
				}	
				
				if (width!=0) objet.obj.width = width;	
				if (height!=0) objet.obj.height = height;
				
				break;

			case 'imgSecure':// si c est une img on fixe la largeur et le reste se redimensionne auto			
			
				parent = new getObj(tabObjet[i].parent,true);
				objet = new getObj(tabObjet[i].id,true);
				objet.obj.src =tabObjet[i].src
				objet.obj.width = parent.obj.offsetWidth ;	
				break;				

			case 'NewsTicker' :

				eval(tabObjet[i].parent+'.activate();');	
				break;
				
			case 'menuList' :
				eval(tabObjet[i].parent+'.activate();');	
				break;
			
			case 'menuBar' :
				eval(tabObjet[i].parent+'.activate();');	
				initMouseEvents();
				break;			
				
			case 'web' :				
				var width,height
				parent = new getObj(tabObjet[i].parent,true);
				objet = new getObj(tabObjet[i].id,true);
				
				if ((tabObjet[i].width=="") || (tabObjet[i].width=="standard")){width = parent.obj.offsetWidth;}
				else {width = tabObjet[i].width;}	
				if ((tabObjet[i].height=='') || (tabObjet[i].height=='standard')){height = parent.obj.offsetWidth;}
				else {height = tabObjet[i].height;}	
				
				loadframe(objet.obj,tabObjet[i].src,width,height); 
				break;				
			
			default	:// si c est un objet on fixe la largeur et la hauteur
				
				var width,height
				parent = new getObj(tabObjet[i].parent,true);
				objet = new getObj(tabObjet[i].id,true);
				
				if ((tabObjet[i].width=="") || (tabObjet[i].width=="standard")){width = parent.obj.offsetWidth;}
				else {width = tabObjet[i].width;}	
				if ((tabObjet[i].height=='') || (tabObjet[i].height=='standard')){height = parent.obj.offsetWidth;}
				else {height = tabObjet[i].height;}	
				
				if (width!=0) objet.obj.width = width;	
				if (height!=0) objet.obj.height = height;
		}
	}
}

function StartNewsTicker(IdPave){
	
	var objet, parent;
	
	for(var i=0; i <= tabObjet.length;i++){
	   
		switch(tabObjet[i].type){

			case 'NewsTicker' :

				var name = eval(tabObjet[i].parent+'.name');	
				var PaveName = 'ticker'+IdPave;
				
				if (name==PaveName)				
					eval(tabObjet[i].parent+'.start();');	

				break;				
			
		}
	}
}

function ActivateNewsTicker(IdPave){
	
	for(var i=0; i <= tabObjet.length;i++){
	   
		switch(tabObjet[i].type){

			case 'NewsTicker' :


				var name = eval(tabObjet[i].parent+'.name');	
				var PaveName = 'ticker'+IdPave;
				
				if (name==PaveName)				
					eval(tabObjet[i].parent+'.activate();');	

				break;				
			
		}
	}
}				


function StopNewsTicker(IdPave){
	
	for(var i=0; i <= tabObjet.length;i++){
	   
		switch(tabObjet[i].type){

			case 'NewsTicker' :

				var name = eval(tabObjet[i].parent+'.name');	
				var PaveName = 'ticker'+IdPave;
				
				if (name==PaveName)				
					eval(tabObjet[i].parent+'.stop();');	

				break;					
			
		}
	}
}

tabObjet = new Collection();


