var folder = "root";
var folder_Name = "racine";
var renameContext=false;

    DisplayDiv = function(id)
   {
    if(id == "RenameRep" && folder=="root" && !renameContext)
  		{alert("Vous ne pouvez pas renommer la racine.");}
	else
  	{
     hideAll();
	 new Effect.BlindDown(id); }
   };
    hideDiv = function(id)
   {$(id).fade();};
   hideAll = function()
   {
   $("createSheet").style.display='none';
   $("CreatChap").style.display='none';
   }
  //----------------------------------------------------------
// Fonction Global pour Renom� un r�pertoire (cas du context menu, cas standard)
//----------------------------------------------------------
 globalRenameRep = function()
 {
  if(renameContext)
    {
	ContextMenuFolder.renameRep(folderContext);
	renameContext = false ;
	}
  else
   {
    KnowBase.renameRep();
   }	
 }
//----------------------------------------------------------
// Initialisation du r�pertoire courant
//----------------------------------------------------------
   KnowBase.InitPere = function(input)
   {
   if($(folder+"_txt"))
   	{
	$(folder+"_txt").style.backgroundColor ="#ffffff";
	$(folder+"_txt").style.color ="#4E6172";
  	}
	folder= input;
   if($(folder+"_txt"))
   	{
	$(folder+"_txt").style.color ="#F1A216";
	}
	$("CreatSheetBtn").show();$("CreatTopicsBtn").show();
	KnowBase.getFolderPath(folder);
  	KnowBase.getFolderName(folder);
	$("pere_form").value=folder;
    KnowBase.getFolderContent(folder);
   }; 
//----------------------------------------------------------
// Initialisation dde la feuille courante
//----------------------------------------------------------
   KnowBase.InitPereSheet = function(input,parent)
   {
	   if($(folder+"_txt"))
		{
			$(folder+"_txt").style.backgroundColor ="#ffffff";
			$(folder+"_txt").style.color ="#4E6172";
		}
		folder= input;
	   if($(folder+"_txt"))
		{
			$(folder+"_txt").style.color ="#F1A216";
		}
		$("CreatSheetBtn").hide();$("CreatTopicsBtn").hide();
		KnowBase.getFolderPath(parent);
		KnowBase.getFolderName(folder);
		$("pere_form").value=folder;
		KnowBase.getFolderContent(folder);
   }; 
//----------------------------------------------------------
// Nom du r�pertoire en cours
//----------------------------------------------------------
 KnowBase.getFolderName = function(folderId)
 {
	url = KnowBase.UrlAction + "&act=folderName&name="+folderId;
	new Ajax.Request(
			  url,
			   {
				method:'get',
				onComplete: function(transport){
				var response = transport.responseText || "no response text";
                folder_Name = response;
				$("newName").value = folder_Name;
				}
			  }
		   );
		   return false;  
 }
//----------------------------------------------------------
// Contenu d'un R�pertoire (non arbo)
//----------------------------------------------------------
 KnowBase.getFolderPath = function (currentFolder) {
	url = KnowBase.UrlAction + "&act=folderPath&name="+currentFolder;
 if(currentFolder!="root")
 	AjaxRequestInId(url,"pere_title");
 else
   document.getElementById("pere_title").innerHTML = "Sommaire" ; 
 }; 
//----------------------------------------------------------
// Contenu d'un R�pertoire (non arbo)
//----------------------------------------------------------
 KnowBase.getFolderContent = function (currentFolder) {
	url = KnowBase.UrlAction + "&act=folderContent&name="+currentFolder;
 	AjaxRequestInId(url,"folderContent");
 };
//----------------------------------------------------------
// Contenu d'un R�pertoire (Arbo)
//----------------------------------------------------------
 KnowBase.getFolderTree = function (currentFolder) {
	url =  KnowBase.UrlAction+ "&act=folderTree&name="+currentFolder;
	currentFolderTree = currentFolder + "_tree";
 	AjaxRequestInId(url,currentFolderTree);
 };
//----------------------------------------------------------
// Cr�er un r�pertoire
//----------------------------------------------------------
 KnowBase.createRep = function(folder)
 {
 document.getElementById("folderContent").innerHTML ='<div style=" margin-top:20px;text-align:center" ><img src="${urlImg}FileContent.gif" /></div>';
    newFolder=$("name").value;
	url =  KnowBase.UrlAction + "&act=createRep&name="+newFolder+"&pere="+folder;
	////document.location.href=url; return false;//"&content="+$("content").value
	new Ajax.Request(
			  url,
			   {
				method:'get',
				parameters: { content: $("content").value,content_syntax:'xwiki/2.0', wysiwyg:'content' },
				onComplete: function(transport){
				var response = transport.responseText || "no response text";

				if(response=="ok")
				  KnowBase.getFolderPath(folder);
				  KnowBase.getFolderContent(folder);
				  KnowBase.openTree(folder, true);
				  //alert("je reinitialise l'input");
				$("name").value = "";
				$("content").value ="";
				setTimeout("hideDiv('CreatChap')",500);
				}
			  }
		   );
		   return false;  
 }
 //----------------------------------------------------------
// Cr�er un paragraphe
//----------------------------------------------------------
 KnowBase.createSheet = function(folder)
 {
 document.getElementById("folderContent").innerHTML ='<div style=" margin-top:20px;text-align:center" ><img src="${urlImg}FileContent.gif" /></div>';
    nameSheet=$("nameSheet").value;
	url =  KnowBase.UrlAction + "&act=createSheet&name="+nameSheet+"&pere="+folder+"&content_syntax=xwiki/2.0&wysiwyg=content";
	////document.location.href=url; return false;//"&content="+$("content").value
	new Ajax.Request(
			  url,
			   {
				method:'get',
	parameters: { content: $("contentSheet").value, resum: $("resumSheet").value, tags: $("tagSheet").value },
				onComplete: function(transport){
				var response = transport.responseText || "no response text";

				if(response=="ok")
				  KnowBase.getFolderPath(folder);
				  KnowBase.getFolderContent(folder);
				  KnowBase.openTree(folder, true);
				  //alert("je reinitialise l'input");
				$("nameSheet").value = "";
				$("resumSheet").value = "";
				$("contentSheet").value ="";
				$("tagSheet").value ="";
				setTimeout("hideDiv('createSheet')",500);
				}
			  }
		   );
		   return false;  
 }
//----------------------------------------------------------
// Supprimer un r�pertoire
//----------------------------------------------------------
 KnowBase.deleteRep = function(folder_Name, folder)
 {
  if(folder=="root"){ alert("Vous ne pouvez pas supprimer la racine.");}
	else{
   
   if(folder.startsWith('Wiki_'))
	{ url =  KnowBase.UrlAction + "&act=deleteRep&name="+folder; toDelete="Chapitre";}
   else
   	{ url =  KnowBase.UrlAction + "&act=deleteSheet&name="+folder; toDelete="Document";  }
   var msg = "Etes-Vous sure de vouloir suprimer le "+toDelete+" : " + folder_Name + " ? ";
   if(confirm(msg))
   {
document.getElementById("folderContent").innerHTML ='<div style=" margin-top:20px;text-align:center" ><img src="${urlImg}FileContent.gif" /></div>';
	new Ajax.Request(
			  url,
			   {
				method:'get',
				onComplete: function(transport){
				var response = transport.responseText || "no response text";
				  //getFolderContent(folder);
				  KnowBase.openTree(response, true);
				  KnowBase.InitPere(response);
				  //alert("je reinitialise l'input");
				}
			  }
		   );
		   return false;  
   }	}	   
 }
//----------------------------------------------------------
// Supprimer un r�pertoire
//----------------------------------------------------------
 KnowBase.deleteFile = function(fileName,fileID)
 {
   var msg = "Êtes-Vous sûr de vouloir supprimer le fichier " + fileName + " ? ";
   if(confirm(msg))
   {
document.getElementById("folderContent").innerHTML ='<div style=" margin-top:20px;text-align:center" ><img src="${urlImg}FileContent.gif" /></div>';
	url = KnowBase.UrlAction + "&act=deleteFile&name="+fileID;
	new Ajax.Request(
			  url,
			   {
				method:'get',
				onComplete: function(transport){
				var response = transport.responseText || "no response text";
				  //getFolderContent(folder);
				  KnowBase.openTree(response, true);
				  KnowBase.InitPere(response);
				  //alert("je reinitialise l'input");
				}
			  }
		   );
		   return false;  
   }		   
 }
//----------------------------------------------------------
// Renom� un r�pertoire
//----------------------------------------------------------
 KnowBase.renameRep = function()
 {
	url = KnowBase.UrlAction + "&act=renameRep&name="+folder;
	url += "&newName="+$("newName").value;
	new Ajax.Request(
			  url,
			   {
				method:'get',
				onComplete: function(transport){
				var response = transport.responseText || "no response text";
 				if(response=="exist")
				{ alert("Nom déjà existant "); return false;}
				divText	=	folder	+	'_txt';
				KnowBase.getFolderPath(folder);
				KnowBase.getFolderName(folder);
				document.getElementById(divText).innerHTML =response ;
				$("newName").value="";
				setTimeout("hideDiv('RenameRep')",500);
				}
			  }
		   );
		   return false;     
 }
//----------------------------------------------------------
// Ouvrir l'arboressance
//---------------------------------------------------------- 
KnowBase.openTree = function(currentFolder,sendRequest){
	 currentFolderImg = currentFolder + "_img";
	 currentFolderTree = currentFolder + "_tree";
	 if(currentFolder!="root" && $(currentFolderImg))
	  {$(currentFolderImg).innerHTML='<img src="${urlImg}chap-open.gif" onclick="KnowBase.closeTree(\''+currentFolder+'\')">';}
	 if($(currentFolderTree).textContent!="" && !sendRequest)
		{new Effect.Appear(currentFolderTree, {duration:0.5, fps:25, from:0.0, to:1.0});}
	 else
		{ KnowBase.getFolderTree(currentFolder);}
}
//----------------------------------------------------------
// Fermer l'arboressance
//----------------------------------------------------------
 KnowBase.closeTree = function(currentFolder){
	 currentFolderImg = currentFolder + "_img";
	 $(currentFolderImg).innerHTML='<img src="${urlImg}chap-closed.gif"  onclick="KnowBase.openTree(\''+currentFolder+'\', false)" >';
	 currentFolderTree = currentFolder + "_tree";
	 $(currentFolderTree).fade({duration:0.2});
	 }


KnowBase.urlWysiwyg = '/xwiki/bin/view/NBKnowledgeBase/Content?xpage=wysiwyginput&key=${wysiwygKey}&render=false'
KnowBase.updateChap =function(doc)
{
// Modification d'un chapitre
if(doc.startsWith('Wiki_'))
{
$$("iframe.gwt-RichTextArea").get(0).src= KnowBase.urlWysiwyg + '&doc='+doc+'&space=skins';
$("name").value=folder_Name;
DisplayDiv("CreatChap");
}else // Modification d'un document
{
$$("iframe.gwt-RichTextArea").get(1).src= KnowBase.urlWysiwyg + '&doc='+doc+'&space=skins';
$("createSheet").value=folder_Name;
DisplayDiv("CreatChap");
}
}
// Function js de traitement 
KnowBase.globalJsProcess = function(param,idDiv)
{
url = KnowBase.UrlAction + param;
new Ajax.Updater(
	idDiv ,
	url,
	{
		method: 'get'
	}
);

}
//----------------------------------------------------------
// supprimer un chapitre
//----------------------------------------------------------
deleteChap= function (url)
		{
		if(confirm("Etes-vous sure de vouloir supprimer ce chapitre ? "))
			{
			document.location.href=url;
			}
		else
			return false
		};
function SubmitRequestForm(formId, Action)
			{
			formId.request({
			onComplete: function(transport){
				var response = transport.responseText || "no response text";
				 Action();
				}
			}); 
			return false;			
			}	
updateChap = function ()
	{
	$('descriptionInput').hide();
	$('descriptionValue').show();
	$('descriptionValue').update($("content").value);
	}	
	
// Function used  To update a  state of a publication
  function PublicationState(sheet, state)
		{
		url=KnowBase.UrlAction+"&act=changeState&name="+sheet+"&state="+state;
		  new Ajax.Request(
		  url,
		   {method:'get',onComplete: function(transport){
			var response = transport.responseText || "no response text";
			//new Effect.Opacity(topic, { from: 1, to: 0 });
			new Effect.Opacity("NotifBloc", { from: 0, to: 1 }); 
			$("NotifBloc").innerHTML =response ;
			}
		}
	   );
		   return false;  
		}			