var tree;
var snode=0;
var sfav=0;
var ax=0;
var curpan=0;
var pfo=220;
var pfa=600;
function viewer(url)
{
	var w,h,l,t;
	w=screen.availWidth;h=screen.availHeight;l=0;t=0;
	var w=window.open("","","toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no,height="+h+",width="+w+",top="+t+",left="+l);
	if(w)
	{
		w.focus();
		w.location=url;
	}
}
var G_LASTNODE=0;
function LoadTree()
{
	snode=0;
	ax=0;
	curpan=0;
	tree=0;
	
	tree = new MooTreeControl({
		div: 'favtree1',
		mode: 'files',
		grid: true,
		theme: '/images/mootree.gif',
		loader: {icon:'/images/ajax-loader.gif', text:'Chargement...', color:'a0a0a0'},	
		onSelect: function(node,state) {
			if(state)
			{
				snode=node;
			}
		},
		onClick: function(node) {
			if(node!=tree.root && !node.open)
				node.toggle();
			
			if(G_LASTNODE==node.id)
			{
				if(node.data.url)
				{
					viewer(unescape(node.data.url));
					addToLastRead(node.data.docid);
				}
			}
			else
			{
				G_LASTNODE=node.id;
			}
			
			if(node.folder != 1)
			{
				$('editfavtitle').innerHTML='Commenter';
			}
			else
			{
				$('editfavtitle').innerHTML='Renommer';
			}				
		},
		onGoto: function(node) {
			
		}	
		},{
		id: 0,
		text: 'Mes dossiers',
		folder: 1,
		open: true
	});
	tree.root.id=0;
	tree.root.load('/x_favorites.php?cmd=tree&type=1&files=1');
	tree.select(tree.root);
}
function trim(s) 
{
    return s.replace(/^\s+/, "").replace(/\s+$/, "");
}
function HidePan(v)
{
	if(curpan)
	{
		var fx = new Fx.Tween(curpan, 'left',{duration:1000,transition:Fx.Transitions.Quart.easeOut});
		fx.start('left',curpan.pos,-850);
		curpan=0;
	}
}
function MovePan(pan,e)
{
	pan.style.top=(e.getTop()-240)+'px';
}
function ShowPan(pan,v)
{
	if(curpan==pan)return;
	HidePan();
	curpan=pan;
	var fx=new Fx.Tween(pan,{duration:1000,transition:Fx.Transitions.Quart.easeOut});
	fx.start('left',-520,v);
	curpan.pos=v;
}
function OnNewFolder()
{
	if(PleaseWait())return;
	ShowPan($('pan_new'),pfo);
	$('text_newfolder').value="";
	$('text_newfolder').focus();		
}
function OnNewFolderOK()
{
	HidePan();
	var t=trim($('text_newfolder').value);
	var f=$('father_newfolder').value;
	var blank = /^\s*$/;
	var noFolderText = /Vous n\'avez pas encore/;
	// on teste si c'est la premiere fois qu'on ajoute un dossier
	if((blank.test($('noFolder').innerHTML) && blank.test($('favtree1').innerHTML))
		|| noFolderText.test($('noFolder').innerHTML))
	{	
		LoadTree();
		$('noFolder').innerHTML = "";
	}
	if(t!="")
	{
		if(snode)
		{
			ax=1;
			var arg={
					url:"/x_favorites.php?cmd=newfolder&name="+escape(t)+"&father="+escape(f),
					method: 'get',
					onSuccess: function(response)
					{
						if(response!="")
						{
							var n;
							if(f==0)
							{
								n=tree.root.insert({text:t,folder:1});
							}
							else
							{
								n=tree.get(f).insert({text:t,folder:1});
							}
							n.id=response;
							$('favtree1').innerHTML = '';
							LoadTree();
							refreshFatherSelect();
						}
					},
					onComplete: function()
					{
						ax=0;
					}
				};
			var ObjAjax = new Request.HTML(arg);
			ObjAjax.send();			
		}
	}
	return false;
}
function OnRenameFolder()
{
	if(PleaseWait())return;
	if((snode==tree.root) || (snode.folder!=1))return;
	ShowPan($('pan_rename'),pfo);
	$('text_rename').value=snode.text;
	$('text_rename').focus();
	$('text_rename').select();
}
function OnRenameFolderOK()
{
	HidePan();
	var t=trim($('text_rename').value);
	if(t!="")
	{
		if(snode)
		{
			ax=1;
			var arg={
					url:"/x_favorites.php?cmd=renamefolder&node="+snode.id+"&name="+escape(t),
					method: 'get',
					onSuccess: function(response)
					{
						if(response!="")
						{
							snode.text=t;
							snode.update();
							refreshFatherSelect();
						}
					},
					onComplete: function()
					{
						ax=0;
					}
				};
			var ObjAjax = new Request.HTML(arg);
			ObjAjax.send();			
		}	
	}
	return false;
}
function OnCommentFav()
{
	if(PleaseWait())return;
	if((snode==tree.root) || (snode.folder==1))return;
	ShowPan($('pan_comment'),pfo);
	if(snode.data.tips != "")
		$('text_comment').value=snode.data.tips;
	else
		$('text_comment').value=snode.text;
	$('text_comment').focus();
	$('text_comment').select();
}
function OnCommentFavOK()
{
	HidePan();
	var t=trim($('text_comment').value);
	if(snode)
	{
		ax=1;
		var arg={
				url:"/x_favorites.php?cmd=commentfav&node="+snode.id+"&comment="+escape(t),
				method: 'get',
				onSuccess: function(response)
				{
					if(response!="")
					{
						snode.data.tips=t;
						snode.update();
					}
				},
				onComplete: function()
				{
					ax=0;
				}
			};
		var ObjAjax = new Request.HTML(arg);
		ObjAjax.send();			
	}
	return false;
}
function FillFavoritesCombo(except,e,id)
{
	e.innerHTML = "Chargement...";
	var url = "";
	if(except.folder == 1) 
		url = "/x_favorites.php?cmd=tree&type=3&id="+id+"&except="+except.id;
	else
		url = "/x_favorites.php?cmd=tree&type=3&id="+id;
	var arg={url:url,method:'get',update:e};
	var ObjAjax = new Request.HTML(arg);
	ObjAjax.send();	
}
function OnMove()
{
	if(PleaseWait())return;
	if(snode==tree.root)return;
	ShowPan($('pan_move'),pfo);
	FillFavoritesCombo(snode,$('folder'),"id_folder");
	$('text_rename').focus();
}
function OnMoveOK()
{
	HidePan();
	var v=$('id_folder').options[$('id_folder').selectedIndex].value;
	
	if(snode)
	{
		ax=1;
		if(snode.folder==1)
			url="/x_favorites.php?cmd=movefolder&node="+snode.id+"&dest="+v;
		else
			url="/x_favorites.php?cmd=movefav&node="+snode.id+"&dest="+v;
		var arg={
					url:url,
					method: 'get',
					onSuccess: function(response)
					{
						if(response!="")
						{
							$('favtree1').innerHTML = '';
							LoadTree();
							refreshFatherSelect();
						}
					},
					onComplete: function()
					{
						ax=0;
					}
				};
		var ObjAjax = new Request.HTML(arg);
		ObjAjax.send();					
	}	
	return false;
}
function PleaseWait()
{
	if(ax==1)
	{
		alert("Opération en cours de traitement, merci de patienter quelques instants");
		return true;
	}
	else
		return false;
}
function OnDelete()
{
	if(PleaseWait())return;
	HidePan();
	if(snode && snode!=tree.root)
	{
		if(confirm("Voulez-vous vraiment supprimer le dossier \""+snode.text+"\" ainsi que tous les favoris et sous dossiers qu'il contient ?"))
		{
			ax=1;
			if(snode.folder == 1)
				url="/x_favorites.php?cmd=delfolder&node="+snode.id;
			else
				url="/x_favorites.php?cmd=deletefav&node="+snode.id;
			var arg={
					url:url,
					method: 'get',
					onSuccess: function(response)
					{
						if(response!="")
						{
							snode.remove();
							snode=0;
							tree.select(tree.root);
							refreshFatherSelect();
						}
					},
					onComplete: function()
					{
						ax=0;
					}
				};
			var ObjAjax = new Request.HTML(arg);
			ObjAjax.send();		
		}
	}
}
function refreshFatherSelect(){
	var arg = {url:"/x_favorites.php?cmd=refreshparentselector", method : 'get' , update: $('father_newfolder')};
	var ObjAjax= new Request.HTML(arg);
	ObjAjax.send(); 
}

