var code="code";var url="url";var key="key";var sub="sub";
var BLANK_IMAGE="../_imgs/transp.gif";
var delay = 600;

function Format_defCss(a_prefixe) {
 	return {"OFF":a_prefixe + "Off", "OVER":a_prefixe + "Over", 
 			"OFF_SEL":a_prefixe + "Sel", "OVER_SEL":a_prefixe + "Sel",
 			"OFF_DIS":a_prefixe + "Dis", "OVER_DIS":a_prefixe + "Dis"};
}

function Format_noBorder(a_prefixe) {
	return {"css":Format_defCss(a_prefixe)};
}

function Format_border(a_prefixe, a_color, a_width, a_borders) {
	return {"border":a_width, "borders":a_borders, "color":{"border":a_color}, "css":Format_defCss(a_prefixe)};
}

function Format_borderTop(a_prefixe, a_color) {
	return Format_border(a_prefixe, a_color, 1, [1,1,1,0]);
}

function Format_borderMid(a_prefixe, a_color) {
	return Format_border(a_prefixe, a_color, 1, [1,0,1,0]);
}

function Format_borderBot(a_prefixe, a_color) {
	return Format_border(a_prefixe, a_color, 1, [1,0,1,1]);
}

function Format_sepCss(a_prefixe) {
	return {"OFF_DIS":a_prefixe + "Off", "OVER_DIS":a_prefixe + "Off"};
}

function Format_itemSep(a_prefixe, a_color, a_size) {
	return {"format":{
				"style":{"border":1, "borders":[1,0,1,0], "color":{"border":a_color}, 
				"css":Format_sepCss(a_prefixe)}, 
				"disabled":"yes", 
				"size":a_size}};
}


/**
 * Format des noeuds et sous-noeuds
 * @param a_explorer	(boolean)	true si affichage de type 'explorer'
 */
function TreeFormat_nodeFormat(a_explorer) {
	var l_format = {
		// répertoire par défaut des images
		"imgsDir" : "../_imgs/tree",

		// true si une seulement branche peut être affichée à la fois
		"singleBranch"	: false,
		
		// true si le chargement des fils est dynamique
		// false sinon : dans ce cas, l'aspect folder / page est déterminé uniquement par la présence
		// ou non de fils
		"virtualChildren" : true,
	
		// style pour le noeud
		"css" : "clsNode",
		
		// CSS pour selected / shadow / highlight node
		"selected"	: {
			"change"	: true,
			"color"		: "#003366",
			"bgcolor"	: "#FFFFFF",
			"css"		: "selNode"		// si (undefined/null), utilise color / bgcolor
			},
		"shadow"	: {
			"change"	: true,
			"color"		: "#0099FF",
			"bgcolor"	: "#000000",
			"css"		: "shadowNode"	// si (undefined/null), utilise color / bgcolor
			},
		"highlight" : {"css" : "highlight"},

		// CSS pour ghost
		"ghost"	: {"css" : "ghost"},
			
		// ajoute des informations dans la status bar sur onmouseover
		"status" :	false,
		
		// ordre des fils éventuels 
		"childrenOrder" : "alpha"		// "alpha" : ordre alphabétique
										// "inverse" :	ordre alphabétique inverse (option non disponible à ce jour)
										// "none" ou undefined/null : celui du tableau d'items
	};
	if (a_explorer) {
		// dessine un arbre de type "explorer"	(undefined/null si generic-like)
		l_format.explorer = {
			// "espace" d'indentation
			"indent" : {
				"blank": "#/b.gif",
				"line" : "#/line.gif"
				},
			// bouton  +/-
			"button" : {
				"minus"	: "#/minus.gif",
				"plus"	: "#/plus.gif",
				"join"	: "#/join.gif",
				"minusBottom"	: "#/minusbottom.gif",
				"plusBottom"	: "#/plusbottom.gif",
				"joinBottom"	: "#/joinbottom.gif",
				"minusFirst"	: "#/minusfirst.gif",
				"plusFirst"		: "#/plusfirst.gif"
				},
			// item
			"item" : {
				"folder" 		: "#/folder.gif",
				"folderOpen"	: "#/folderopen.gif",
				"page"			: "#/page.gif"
				},
			"width"		: 19,
			"height"	: 16
		};
	} else {
		// dessine un arbre générique	(undefined/null si explorer-like)
		l_format.generic = {
			// "espace" d'indentation
			"indent" : {
				"blank"		: "#/b.gif",
				"line"		: "#/b.gif"
				},
			// bouton  +/-
			"button" : {
				"plus"		: "#/c.gif",
				"minus"		: "#/e.gif",
				"join"		: "#/b.gif",
				"width"		: 16,
				"height"	: 16,
				"indent"	: 16
				},
			// item
			"item" : {
				"folder" 		: "#/fc.gif",
				"folderOpen"	: "#/fe.gif",
				"page"			: "#/i.gif",
				"width"			: 16,
				"height"		: 16,
				"indent"		: 16
				}
		}
	}
	
	return l_format;
};

/**
 * Format de l'arbre complet
 * @param a_explorer	(boolean)	true si affichage de type 'explorer'
 */
function TreeFormat_treeFormat(a_explorer) {
	return {
		// position 
		"left" 		: 3,
		"top"		: 3,
		"relative"	: true,
		
		// hauteur et largeur initiale du rectangle en position relative
		"width"		: 0,
		"height"	: 0,
	
		// attribut de la table englobante
		"table" : {
			"width" : 200,
			"padding" : 0,
			"spacing" : 0
			},
	
		// si true, état sauvé en cookies
		"cook" : false,
		
		// background
		"background" : {
			"color"		: "",		// ("" - transparent)
			"resize"	: true		// fonctionne uniquement avec IE4+, NS6+ en position relative
			},
			
		"nodeFormat" : TreeFormat_nodeFormat(a_explorer)
	}
};

/**
 * Renvoie un ensemble d'images pour un noeud de l'arbre.
 * @param	a_folderImg		(String)	nom de l'image principale folder
 * @param	a_folderOpenImg	(String)	nom de l'image principale folder ouvert
 * @param	a_pageImg		(String)	nom de l'image principale page
 * @return un objet compatible avec le format
 */
function TreeFormat_imageFull(a_folderImg, a_folderOpenImg, a_pageImg) {
	return {
		"explorer" : { 
			"item" : {
				"folder" 		: a_folderImg,
				"folderOpen"	: a_folderOpenImg || a_folderImg,
				"page"			: a_pageImg || a_folderImg
				}
			}
	}
}

/**
 * Renvoie un ensemble d'images pour un noued de l'arbre.
 * @param	a_pageImg		(String)	nom de l'image principale page
 * @return un objet compatible avec le format
 */
function TreeFormat_imagePage(a_pageImg) {
	return {
		"explorer" : { 
			"item" : {
				"page"	: a_pageImg
				}
			}
	}
}

/**
 * Renvoie un ensemble d'images pour un noued de l'arbre.
 * @param	a_folderImg		(String)	nom de l'image principale folder
 * @param	a_folderOpenImg	(String)	nom de l'image principale folder ouvert
 * @return un objet compatible avec le format
 */
function TreeFormat_imageFolder(a_folderImg, a_folderOpenImg) {
	return {
		"explorer" : { 
			"item" : {
				"folder" 		: a_folderImg,
				"folderOpen"	: a_folderOpenImg || a_folderImg
				}
			}
	}
}

