/************************** DEBUG *********************************/

/*
	Name : vd (initiales de var_dump() issue du PHP)
	Param : var
	Affiche le type et les informations d'une variable passée en parametre
*/
function vd(my_var) {
	var body, tmp, debug;
	//On choppe déjà le corps de la page (body)
	body = getElementByTagName("body");
	
	//Si j'ai pas créé d'espace de debug je l'ajoute
	if (!(document.getElementById("Tim_debug"))) {
		//Je crée un espace où afficher mes infos, que j'ajoute à la fin de la page
		var debug = document.createElement("div");
		debug.setAttribute("id", "Tim_debug");
		debug.innerHTML = "";
		debug.style.position = "absolute";
		debug.style.top = "0px";
		debug.style.marginLeft = "0px";
		debug.style.padding = "20px";
		debug.style.borderWidth = "1px";
		debug.style.borderColor = "#000000";
		debug.style.borderStyle = "solid";		
		debug.style.backgroundColor = "#FFFFFF";
		debug.style.textAlign = "left";
		debug.style.left = "0px";
		debug.ondblclick = function() { this.style.display = "none" }
		body.appendChild(debug);
	}
	//J'ajoute mon texte dedans maintenant
	debug = document.getElementById("Tim_debug");
	tmp = debug.innerHTML;
	debug.innerHTML = "";
	debug.innerHTML = tmp+getVarInfo(my_var);
}

/*
	Name : getVarInfo
	Param : my_var
	Return : Une chaine de caractere formattée html avec le type et le contenu de la variable
*/
function getVarInfo(my_var) {
	var tmp, type, i;
	if (my_var==null) return "XXX NO VAR XXX";;
	type = typeof(my_var);
	tmp = "###Var_dump()###";
	tmp+= "<br>[Type] : " + type;
	//String / number / boolean
	if (type=="string" || type=="number" || type=="boolean") {
		tmp+= "<br>[Value] : " + my_var ;
	}
	
	//tableau
	if (my_var.length && type=="object") {
		var size = my_var.length;
		tmp+= "<br>[Size] : " + size;
		//On affiche tout le contenu
		for (var i in my_var) {
			if (typeof(my_var[i])!="function") tmp+= "<br>array["+i+"] : " + my_var[i];			
		}

	}
	return tmp+"<br>";
}


function vd_node(node) {
	var tmp;
	
	if (node.nodeName) tmp+= "<br>Node name : "+node.nodeName;
	if (node.getAttribute("id")) tmp+= "<br>Node id : "+node.getAttribute("id");
	//text.innerHTML+= "<br>Attributes : "+node.attributes;
	//text.innerHTML+= "<br>nbr Attributes : "+node.attributes.length;
	//vd_attr(node.attributes);
	if (node.nodeValue) tmp+= "<br>Node value : "+node.nodeValue;
	if (node.nodeType) tmp+= "<br>Node type : "+node.nodeType;
	//text.innerHTML+= "<br>Parent node : "+node.parentNode;
	var nbr = node.childNodes.length;
	tmp+= "<br>Node type : "+nbr;
	for (var i=0; i!=nbr; i++) tmp+= "<br>&nbsp;&nbsp;&nbsp;"+node.childNodes[i].nodeName+ " => "+node.childNodes[i].nodeValue;
	
	//text.innerHTML+= "<br>fisrt child : "+node.firstChild;
	//text.innerHTML+= "<br>last child : "+node.lastChild;
	//text.innerHTML+= "<br>previous sibling : "+node.previousSibling;
	//text.innerHTML+= "<br>next sibling : "+node.nextSibling;
	
	tmp+= "<br><br>Node value "+node.firstChild;
	vd(tmp);
	
	
}
function vd_attr(attribute_node) {
	var nbr = attribute_node.length;
	var tmp;
	for (var i=0; i!=nbr; i++) tmp+= "<br>&nbsp;&nbsp;&nbsp;"+attribute_node[i].nodeName+ " => "+attribute_node[i].nodeValue;
	vd(tmp);
}


	
/***** place un élement de couleur à certaines coordonnées pour voir où ca se trouve ******/
function placeHolder(x, y, txt) {
	if (!x) x =0;
	if (!y) y =0;
	if (!txt) txt = "XXX";
	var placeholder = document.createElement("div");
	setClass(placeholder, "placeholder");
	placeholder.style.top = y+"px";
	placeholder.style.left = x+"px";
	placeholder.innerHTML = txt;
	placeholder.style.zIndex = 9999;
	document.getElementsByTagName("body")[0].appendChild(placeholder);
}