
function funcOpenARP (branch, response) {
	var resultsFromTest = true;
	if (resultsFromTest) {
		return response;
	} else {
		return false;
	}
}

var elsTreeStruct = [ {
	'id':'root1',
	'txt':'Site',
	'img':'base.gif',
	'imgopen':'base.gif',
	'imgclose':'base.gif',
	'tooltip' : 'Base du site',
	'mySQLid' : 125
} ];


var handlerFunc = function(t) {
	//elsTreeStruct = eval("(" + t.responseText + ")");
	elsTreeStruct = eval('' + t.responseText + '');

	tree1 = new TafelTree('elstree', elsTreeStruct, {
		'generate':true,
		'imgBase' : '/images/tree/',
		'width': '237px',

		'openAtLoad':true,
		'cookies':true,
		'defaultImg':'page.gif',
		'defaultImgSelected':'globe.gif',
		'defaultImgOpen':'folderopen.gif',
		'defaultImgClose':'folder.gif',
		'defaultImgCloseSelected':'folder.gif',
		'defaultImgOpenSelected':'folderopen.gif',
		'dropALT':false,

		'onDrop':drop,
		'onClick' :function(branch){ 
			//window.location = "/pl/articles.pl?st=" + branch.getId() 
			ajax_uip("/pl/articles.pl", "st=" +branch.getId() + '&amp;ajx=1', '', branch.getText());
		},
		//'onDblClick' :function(branch){alert('double-clic sur ' + branch.getId());},
		'onMouseOver':function(branch){branch.addClass('mover');}, 
		'onMouseOut' :function(branch){branch.removeClass('mover');}
		//'onEditAjax' :[myEditAjax, "server/edit.php"],
		//'onDropAjax' :[myDropAjax, "server/drop.php"]
	});
	$("elstreewait").style.display='none';
}

var errFunc = function(t) {
   	alert('Error ' + t.status + ' -- ' + t.statusText);
}

var tree1 = null;
function TafelTreeInit () {
	new Ajax.Request('/pl/get_tree.pl', {parameters:'thisvar=true&thatvar=Howdy', onSuccess:handlerFunc, onFailure:errFunc});
}

function glu (branch) {
	return (branch.children.length > 0) ? true : false;
}

function testParent (branch) {
	var p = tree1.getBranches(glu);
	var str = '';
	for (var i = 0; i < p.length; i++) {
		str += p[i].getText() + ' : ' + p[i].children.length + "\n";
	}
	//alert(str);
}

function drop () {
	return true;
}

function tojson(){
	//tree1.debug(tree1.serialize(true));
	var branch = tree1.getBranchById('child5');
	//tree1.debug(branch.serialize(true));
	tree1.restoreDefault();
}

function opp(branch, response){
	return response;
}

function myEditAjax (branch, response, oldValue) {
	// Pour voir le contenu de la réponse, on peut en faire une
	// "alert" ou le mettre dans le DIV de debug comme ceci :
	branch.tree.debug(response);

	// On peut aussi évaluer la réponse en tant qu'objet JSON
	// (à noter qu'elle est entre parenthèses). La réponse
	// doit contenir, d'une manière ou d'une autre, la
	// nouvelle valeur de la branche
	// ({
	// "message" : "Tout est ok sur le serveur",
	// "newValue" : "Nouvelle valeur de la branche",
	// "anyOtherParams" : true
	// })

	// On peut aussi retourner seulement la nouvelle valeur
	// (dans ce cas, plus besoin de parenthèses)
	// alert (response); // show the new text
	// Tests divers
	if (resultsFromTest) {
		// OK, la branche sera éditée et aura la
		// nouvelle valeur retournée par cette fonction
		return theNewValue;
	} else {
		// Ici, la branche ne sera pas éditée et conservera
		// son ancienne valeur (oldValue)
		return false;
	}
}

function myDropAjax(branchMoved, newParent, response, dropFinished){
	// On check avant que le drop soit fait
	if (!dropFinished) {
		// La réponse correspond au responseText de
		// l'objet XMLHttpRequest
		alert(response);
		// Il peut tout-à-fait s'agir d"une string JSON,
		// auquel cas on peut l'évaluer comme ceci :
		var obj = eval("(" + response + ")");
		alert(obj.myProperty);
		alert(branchMoved.getId() + " sera fille de " +
		newParent.getId() +
		" si cette fonction retourne true");
		return true;
	}
}
