var _w = window;
var _d = document;
var _t = true;
var _f = false;
var _n = null;

function iniExplorer(e){
	var targetNode = $("explorerTreeview");
	$A(targetNode.getElementsByTagName("span")).each(function(span){
		Event.observe(span,"click",nodeAction);
		Event.observe(span,"mouseover",function(){
			span.style.textDecoration = "underline";
		});
		Event.observe(span,"mouseout",function(){
			span.style.textDecoration = "none";
		});
	});
}

function nodeAction(event){
	var elt = Event.element(event);
	var parentLi = elt.parentNode;
	if(parentLi.className=="dir"){
		if(parentLi.getAttribute("buffered")=="0"){
			showLoader(elt);
			var ajaxAction = new Ajax.Request("lib/get_node.php",{
				methode: "post",
				parameters: "dir="+parentLi.getAttribute("rel"),
				onComplete: function(xhr, jsonData){ drawContentDir(parentLi, jsonData); },
				onFailure: function(){ alert("Erreur, impossible de décuperer la contenu du dossier."); hideLoader(); }
			});
		}else if(parentLi.getAttribute("buffered")=="1" && parentLi.getAttribute("statut")=="1"){
			var targetUl = $A(parentLi.getElementsByTagName("ul"))[0];
			parentLi.setAttribute("statut","0");
			new Effect.BlindUp(targetUl,{duration:.3});
		}else if(parentLi.getAttribute("buffered")=="1" && parentLi.getAttribute("statut")=="0"){
			var targetUl = $A(parentLi.getElementsByTagName("ul"))[0];
			parentLi.setAttribute("statut","1");
			new Effect.BlindDown(targetUl,{duration:.3});
		}
	}else{
		_w.open(parentLi.getAttribute("rel"));
	}
}

function drawContentDir(targetLi, jsonData){
	targetLi.setAttribute("buffered","1");
	targetLi.setAttribute("statut","1");
	var newUl = _d.createElement("ul");
	newUl.className = "node";
	newUl.style.display = "none";
	targetLi.appendChild(newUl);
	for (var i=0; i<jsonData.length; i++){
		var newLi = _d.createElement("li");
		newLi.className = jsonData[i].sClass;
		if(jsonData[i].sClass=="dir"){
			newLi.setAttribute("buffered","0");
			newLi.setAttribute("statut","0");
		}
		newLi.setAttribute("rel", jsonData[i].sPath);
		newUl.appendChild(newLi);
		var newSpan = _d.createElement("span");
		Event.observe(newSpan,"click",nodeAction);
		Event.observe(newSpan,"mouseover",function(){ this.style.textDecoration = "underline"; });
		Event.observe(newSpan,"mouseout",function(){ this.style.textDecoration = "none"; });
		newLi.appendChild(newSpan);
		var libelle = _d.createTextNode(jsonData[i].sValue);
		newSpan.appendChild(libelle);
	}
	hideLoader();
	new Effect.BlindDown(newUl,{duration:.3});
}

function showLoader(elt){
	eltOffsets = elt.cumulativeOffset();
	$("loader").style.top = eltOffsets.top+(elt.getHeight()/2)-8-$("explorerTreeview").scrollTop+"px";
	$("loader").style.left = eltOffsets.left+elt.getWidth()+4-$("explorerTreeview").scrollLeft+"px";
	$("loader").show();
}

function hideLoader(){
	new Effect.Fade("loader",{duration:.2});
}
