/****************************************************************************************/
// Tree by Umazuma
/****************************************************************************************/
/****************************************************************************************/

var myArboList;		// Cet objet lui-même pour l'appeler dans des fonctions internes

function ArboList(){
	var treeId;				// Id de la liste
	var tabEntree ;			// tableaux des li
	var activNode;			// Le noeud qui est en train d'être survolé
	var activNodeId;		// Id du noeud qui flotte
	var activNodePage;		// Page du noeud qui flotte
	var myDivToClone;		// La div à cloner
	var pos_x;				// Position de l'élément à cloner
	var pos_y;				// Position de l'élément à cloner
	var mouse_x;			// Coordonnées x de la souris
	var mouse_y;			// Coordonnées y de la souris
	var mouse_offset_x; 	// offset x du pointeur sur l'objet
	var mouse_offset_y;		// offset y du pointeur sur l'objet
	var empty_node_height; 	// Hauteur de la node vide
	var empty_node_width; 	// Largeur de la node vide
	var timer1;				// identifiant de timer
	var dragTimer; 			// Timer de délais sur la création de node (stabilité FIREFOX)
	var etat_nodes;			// Etat des noued ouverts et fermés
}


// *** Prototypage *** //	

// Récupérer le cookie de l'arbre
/****************************************************************************************/
ArboList.prototype.get_cookie = function(name) { 
		
	var start = document.cookie.indexOf(name+"="); 
	var len = start+name.length+1; 
	if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
	if (start == -1) return null; 
	var end = document.cookie.indexOf(";",len); 
	if (end == -1) end = document.cookie.length; 
	return unescape(document.cookie.substring(len,end));

} 


// Ecrire le cookie de l'arbre
/****************************************************************************************/
ArboList.prototype.set_cookie = function(name,value,expires,path,domain,secure) { 
	
	expires = expires * 60*60*24*1000;
	var today = new Date();
	var expires_date = new Date( today.getTime() + (expires) );
	var cookieString = name + "=" +escape(value) + 
	   ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
	   ( (path) ? ";path=" + path : "") + 
	   ( (domain) ? ";domain=" + domain : "") + 
	   ( (secure) ? ";secure" : ""); 

	document.cookie = cookieString; 

}
			
// trouver la position en Y de l'objet
/****************************************************************************************/
ArboList.prototype.yPos = function(obj){
	var top = obj.offsetTop/1;
	while((obj = obj.offsetParent) != null){
		if(obj.tagName!='HTML')top += obj.offsetTop;
	}			
	if(document.all)top = top/1 + 13; else top = top/1 + 4;		
	return top;
}
	

// Trouver la position en X de l'objet
/****************************************************************************************/
ArboList.prototype.xPos = function(obj){
	var left = obj.offsetLeft/1 + 1;
	while((obj = obj.offsetParent) != null){
		if(obj.tagName!='HTML')left += obj.offsetLeft;
	}
		
	if(document.all)left = left/1 - 2;
	return left;
}

// Ajouter une icone de document
/****************************************************************************************/
ArboList.prototype.addIconeDoc = function(thisDiv){
	
	// Créer une image
	myDoc = document.createElement("IMG");
	
	// Placer l'icone de document (tester la classe.
	if(thisDiv.parentNode.className){
		myDoc.setAttribute("src", "images_interface/tree_umadocs/"+thisDiv.parentNode.className+".gif");
	}else{
		myDoc.setAttribute("src", "images_interface/tree_umadocs/dossier.gif");
	}
	
	myDoc.setAttribute("border", "0");
	myDoc.setAttribute("align", "absmiddle");
	// Mettre une image de document
	//this.tabEntree[i].appendChild(myDoc);
	thisDiv.parentNode.insertBefore(myDoc,thisDiv);

	
}

// Ajouter une icone de document
/****************************************************************************************/
ArboList.prototype.toggleOpenClose = function(thisDiv){
	
	nodeIdToToggle = thisDiv.parentNode.id.replace(/[^0-9]/g,'');
	myVis = thisDiv.parentNode.childNodes[3].style.display;
	if(!myVis || myVis == "block"){
		for(i = 3; i < thisDiv.parentNode.childNodes.length; i++){
			thisDiv.parentNode.childNodes[i].style.display = "none";
		}
		thisDiv.parentNode.childNodes[0].setAttribute("src", "images_interface/tree_umadocs/plus.gif");
		// Mettre dans le cookie les nodes fermées
		if(!myArboList.etat_nodes){
			myArboList.etat_nodes = ',';
		}
		if(myArboList.etat_nodes.indexOf(',' + nodeIdToToggle + ',') < 0) {
			myArboList.etat_nodes = myArboList.etat_nodes + nodeIdToToggle + ',';
		}
		
		
	}else{
		for(i = 3; i < thisDiv.parentNode.childNodes.length; i++){
			thisDiv.parentNode.childNodes[i].style.display = "block";
		}
		thisDiv.parentNode.childNodes[0].setAttribute("src", "images_interface/tree_umadocs/moins.gif");
		// Enlever le node du cookie
		myArboList.etat_nodes = myArboList.etat_nodes.replace(',' + nodeIdToToggle,'');
	}
	myArboList.set_cookie(myArboList.treeId,myArboList.etat_nodes,500);	
}

// Ajouter une icone de document
/****************************************************************************************/
ArboList.prototype.addIconePlus = function(thisDiv){
	
	// Créer une image
	myDoc = document.createElement("IMG");
	
	// Placer l'icone de document (tester la classe.
	myDoc.setAttribute("src", "images_interface/tree_umadocs/moins.gif");
	myDoc.setAttribute("border", "0");
	
	if(thisDiv.parentNode.childNodes.length <= 1){
		myDoc.style.visibility="hidden";
	}
	myDoc.onclick = function(){
		myArboList.toggleOpenClose(thisDiv);
	}
	// Mettre une image de document
	thisDiv.parentNode.insertBefore(myDoc,thisDiv);

	
}

var timer_clone = 0;
var tp1 = 0;
// démarrage de l'objet
/****************************************************************************************/
ArboList.prototype.init = function(){
	
	myArboList = this;
	myArboList.activeNode = 0;
	myArboList.timer1 = 0;
	myArboList.mouse_offset_x = -1;
	myArboList.mouse_offset_y = -1;
	
	// Activer le clic sur chaque lien de l'arbre
	this.tabEntree = document.getElementById(this.treeId).getElementsByTagName("a");
	
	for(i=0; i< this.tabEntree.length; i++){
		
		this.addIconePlus(this.tabEntree[i]);
		this.addIconeDoc(this.tabEntree[i]);

	}
	// Initialiser les ul fermées stockés dans le cookie
	myArboList.etat_nodes = myArboList.get_cookie(myArboList.treeId);
	
	if(myArboList.etat_nodes){
		var nodesFermees = myArboList.etat_nodes.split(',');
		
		for(var i=0; i<document.getElementById(this.treeId).getElementsByTagName("LI").length; i++){
			for(var j=0; j<nodesFermees.length; j++  ){
				if(document.getElementById(this.treeId).getElementsByTagName("LI")[i].id == "dos_"+nodesFermees[j]){
					document.getElementById("dos_"+nodesFermees[j]).childNodes[3].style.display = "none";
					document.getElementById("dos_"+nodesFermees[j]).childNodes[0].setAttribute("src", "images_interface/tree_umadocs/plus.gif");
				}
			}
		}
	}

}

/****************************************************************************************/
/****************************************************************************************/
// FIN
/****************************************************************************************/
/****************************************************************************************/
