// Met � jour les docs de la zone Droite
function SetContentDocs(idRubrique) {
	if (idRubrique > 0) {
		try {
			if (ProtoDocs) {
				ProtoDocs.StartMenu();
			}
		} catch (e) {
			// not loaded yet
		}
		new Ajax.Updater('RightSide',
						 url_site+fc_name+'/document/getList/idRubrique/'+CurrentRubrique,
						 {asynchronous:true, evalScripts:true, method: 'get'}
						 );
		return false;
	} else {
		CurrentRubrique = "";
		CurrentRubriqueTemp = 0;
		CurrentDoc = 0;
		try {
			ProtoRubriques.toogleMenuSelection("RubriqueDoc", false);
		} catch(e) {}
		
		new Ajax.Updater('RightSide',
						 url_site+fc_name+'/document/getHome',
						 {asynchronous:true, evalScripts:true, method: 'get'}
						 );
		return false;
	}
}

// Raffraichie la branche de la rubrique idParent dans l'arborescence
function setLeftSubDirectory(idParent) {
	new Ajax.Updater('divId' + idParent, url_site+fc_name+'/rubrique/getBranche/idRubrique/' + idParent, {asynchronous:true, evalScripts:true});
}

// Ferme l'autre menu que celui appel�
function CloseOthersMenu(objProtoMenu) {
	if (objProtoMenu.options.RequiredClass == 'docList') {
		ProtoRubriques.hide();
	} else {
		ProtoDocs.hide();
	}
}

// S�lectionne le doc en cours
function setSelectedDoc(event) {
	event = getEvents(event);
	if (isRightClick(event)) {
		HandleName = Event.element(event);
		temp = String(HandleName.id);
		CurrentDoc = temp.substring(4, temp.length);
		$(HandleName).addClassName('DocSelected');
		return ProtoDocs.show(event);
	}
}

// D�s�lectionne le doc actif
function setUnSelectedDoc(event) {
	event = getEvents(event);
	try {
		if (CurrentDoc != '') {
			$('Doc_'+CurrentDoc).removeClassName('DocSelected');
			CurrentDoc = '';
		}
		ProtoDocs.hide(event);
	} catch (e) {
		// nothing
	}
}

// D�finit l'a rubrique cliqu�e comme courante
function setSelectedRubriques(event) {
	event = getEvents(event);
	if (isRightClick(event)) {
		setUnSelectedDoc();
		return ProtoRubriques.show(event);
	}
}

// Affiche le contenu d'une rubrique avec feuilles
function EnterRub(event) {
	SourceId = getEventsSourceId(event);
	CurrentRubrique = SourceId.substring(4, SourceId.length);
	ShowRubMenuDiv(CurrentRubrique, true);
}

// Affiche le contenu d'une rubrique sans feuilles
function EnterRubLight(event) {
	SourceId = getEventsSourceId(event);
	CurrentRubrique = SourceId.substring(4, SourceId.length);
	SetContentDocs(CurrentRubrique);
}

// Appelle le contenu ajax de la rubrique  si ce n'est pas d�j� fait
// Sinon cache le contenu
function hideShowRub(IdRubrique) {
	var Rub = 'divId'+IdRubrique;
	if ($(Rub).innerHTML == '') {
		ShowRubMenuDiv(IdRubrique, true);
	} else {
		intervertLeftRubClass(IdRubrique);
	}
}

/* D�selectionne une rubrique
function setUnSelectedRubrique(event) {
	event = getEvents(event);
	ProtoRubriques.StopMenu(false);
	ProtoRubriques.hide(event);
}
*/

// D�finit la rubrique selectionn�e comme en cours
function setSelectedRub(event) {
	event = getEvents(event);
	HandleName = Event.element(event);
	temp = String(HandleName.id);
	CurrentRubriqueTemp = temp.substring(4, temp.length);
}

// Change l'aspect du menu miniatures / liste suivant quifaitquoi
function changeIconSize(Size, OneId, OtherId) {
	try {
		$(OtherId).addClassName('iconSizeSmall');
		$(OtherId).removeClassName('iconSizeBig');
		
		$(OneId).addClassName('iconSizeBig');
		
		$(OneId).removeClassName('iconSizeSmall');
	} catch (e) {
	
	}
	doRequestAndXmlResponse('user', 'setParam', 'name=IconSize&value='+Size);
}


var CurrentRubriqueTemp = 0 ;

// Retourne l'Id de l'�l�ment cliqu� (s'il existe)
function getReferencedId(Elmt) {
	if (Elmt == 'rubrique') {
		Id = (CurrentRubriqueTemp == 0) 
				? CurrentRubrique
				: CurrentRubriqueTemp ;
		CurrentRubriqueTemp = 0;
		ProtoDocs.hide();
	} else {
		try {
			Id = CurrentDoc;
			ProtoRubriques.hide();
		} catch (e) {
			Id = '';
		}
	}
	return Id;
}

// Affiche le adduploadfiled dans l'interface de mise ne ligne des docs
function UploadNextDoc(elmtHandle, number) {
	showDiv('copyFileName'+number); 
	number++;
	if (!$('divUploadFile'+number)) {
		doRequestAndXmlResponse('document', 'addUploadField', 'number='+number);
	}
}

// Prend le contenu d'un champ 
function getFileNameToInput(FileInput, txtField) {
	//var TxtDiv = $(txtField).value = $(FileInput).value;
	
	var TxtDiv = $(FileInput).value;
	if (TxtDiv.lastIndexOf('\\') > 0) {
		var TxtDiv = TxtDiv.substr(TxtDiv.lastIndexOf('\\') + 1, TxtDiv.length);
	}
	$(txtField).value = TxtDiv;
	sfs(txtField);
}

// Affiche les sous rubriques dans l'arborescence
// et met � jour la zone Right
function ShowRubMenuDiv(IdRubrique, hasFeuilles, force) {
	if (force == undefined) {
		force = false;
	}
	divId = 'divId'+IdRubrique;
	
	
	if (hasFeuilles) {
		intervertLeftRubClass(IdRubrique, force);
		if (!force) {
			url = '/rubrique/getBranche/idRubrique/'+IdRubrique;
			CheckDisplayWith(divId, url);
		}
	}
	
	CurrentRubrique = IdRubrique;
	
	SetContentDocs(IdRubrique);
	
	return false;
}

// Intervertis l'affichage ouvert ferm� d'une rubrique
// suivant son �tat pr�c�dent
function intervertLeftRubClass(IdRubrique, forceO, forceC) {
	if (forceO == undefined) { 	forceO = false; }
	if (forceC == undefined) { 	forceC = false; }
	
	linkId = 'DivDirRubImg'+IdRubrique;
	try {
		if (   (   $(linkId).hasClassName('dirParentC')
				&& !forceC)
			|| forceO) {
			// open
			$(linkId).removeClassName('dirParentC');
			$(linkId).addClassName('dirParentO');
			$(linkId).src = '/images/icons/OpenedSmallFolder.png';
			url = '/rubrique/getBranche/idRubrique/'+IdRubrique;
			CheckDisplayWith('divId'+IdRubrique, url, forceO);
		} else {
			// close
			$(linkId).removeClassName('dirParentO');
			$(linkId).addClassName('dirParentC');
			$(linkId).src = '/images/icons/ClosedSmallFolder.png';
			hideDiv('divId'+IdRubrique);
		}
		
	}  catch  (e) {
		// nothing => it has failed !
	}
}

// Force l'ouverture d'un path dans l'arborescence
function getShureTreeIsDisplayed(aPath) {
	tLength = aPath.length;
	for (i = 0; i<tLength ; i++) {
			intervertLeftRubClass(aPath[i], true);
	}
}

// Replie les rubriques � la racine de l'arborescence
function replierTout() {
	var rubLgth = aIdRubriqueMere.length;
	for (i=0; i<rubLgth; i++) {
		intervertLeftRubClass(aIdRubriqueMere[i], false, true);
	}
}

/* ############ Sp�cial pages ################# */

// Propose le repertoire d'un nouveau site
function checkRepertoire(SiteName) {
	if ($('repertoire').value == '') {
		tab = SiteName.split('.');
		var racine = (tab[0] == 'www')
						? tab[1]
						: tab[0] ;
		
		var firstLetter = racine.substring(0,1);
		$('repertoire').value = firstLetter + '/' + racine;
	}
}


/* ############ MENUS ################# */

// Autorise le paste apr�s un copier ou un coller
function AllowPaste() {
	$("DocsPaste").removeClassName("disabled");
	$("DocsPaste").addClassName("enabled");
	$("RubriquePaste").removeClassName("disabled");
	$("RubriquePaste").addClassName("enabled");
}

// Ne plus autoriser le paste apr�s le copier / coller
function DisAllowPaste() {
	$("DocsPaste").removeClassName("enabled");
	$("DocsPaste").addClassName("disabled");
	$("RubriquePaste").removeClassName("enabled");
	$("RubriquePaste").addClassName("disabled");
}

// Appel� par les menus
function MenuAction(Action, Elmt, isXml) {
	var tryed = 0;
	Id = '';
	do {
		Id = getReferencedId(Elmt);
		tryed++;
	} while ((Id == -1) && tryed < 20);
	
	if (tryed == 20) {return ;}
	
	if (Action != 'del') {
		if (isXml == true) {
			doRequestAndXmlResponse(Elmt, Action,'id_'+Elmt+'='+Id );
		} else {
			showPopupWithAjax('/'+Elmt+'/'+Action+'/id_'+Elmt+'/'+Id);
		}
	} else {
		confirm_box_request('Confirmer la Suppression ?', Elmt, Action, 'id_'+Elmt+'='+Id);
	}
}


/*

{
    name: 'Remplacer',
    className: 'edit',
    id: 'DocsEdit',
    callback: function() {
      MenuAction('replace','document');
    }
  },*/
var myMenuItemsDocs = [
  {
    name: 'Couper',
    className: 'copy', 
    id: 'DocsCut',
    callback: function() {
      MenuAction('cut','document',true);
    }
  },{
    name: 'Copier',
    className: 'copy', 
    id: 'DocsCopy',
    callback: function() {
      MenuAction('copy','document',true);
    }
  },{
    name: 'Copier Tous',
    className: 'copy', 
    id: 'DocsCopyAll',
    callback: function() {
      MenuAction('copy','document',true);
    }
  },{
    name: 'Coller', 
    disabled: true,
    className: 'delete',
    id: 'DocsPaste',
    callback: function() {
      MenuAction('paste','document',true);
    }
  },{
    name: 'Supprimer', 
    className: 'delete',
    id: 'DocsDel',
    callback: function() {
      MenuAction('del','document',true);
    }
  },{
    name: 'Nouvelle Rubrique',
    className: 'save separator',
    id: 'DocsRub',
    callback: function() {
      MenuAction('createNew','rubrique');
    }
  },{
    name: 'Gestion/Propriete',
    className: 'save separator',
    id: 'DocsProp',
    callback: function() {
      MenuAction('edit','document');
    }
   }
];

var myMenuItemsRubriques = [
   {
    name: 'Couper',
    className: 'copy', 
    id: 'RubriqueCut',
    callback: function() {
      MenuAction('cut','rubrique',true);
    }
  },{
    name: 'Copier',
    className: 'copy', 
    id: 'RubriqueCopy',
    callback: function() {
      MenuAction('copy','rubrique',true);
    }
  },{
    name: 'Copier tous',
    className: 'copy', 
    id: 'RubriqueCopyAll',
    callback: function() {
      MenuAction('copyAll','rubrique',true);
    }
  },{
    name: 'Coller', 
    disabled: true,
    className: 'delete',
    id: 'RubriquePaste',
    callback: function() {
      MenuAction('paste','rubrique',true);
    }
  },{
    name: 'Supprimer', 
    className: 'delete',
    id: 'RubriqueDel',
    callback: function() {
    	MenuAction('del','rubrique');
    }
  },{
    name: 'Nouvelle Rubrique',
    className: 'save separator',
    id: 'RubriqueNewDir',
    callback: function() {
    	MenuAction('createNew','rubrique');
    }
  },{
    name: 'Nouveau Document',
    className: 'save separator',
    id: 'RubriqueDoc',
    disabled: true,
  	callback: function() {
  		MenuAction('createNew','document');
  	}
  },{ 
  	name: 'Gestion/Propriete',
    className: 'save separator',
    id: 'RubriqueProp',
  	callback: function() {
  		MenuAction('edit','rubrique');
  	}
  }
];
