var i,nl,ici,ThisLevel,this,Level:integer;
fjmp,ajmp,bjmp,texte,css:string;
jmp,idname:string;
BackgroundColor,TextColor : string;
css_filename:string;
r,g,b:integer;

begin


Margin := GetParam('Margin-Left','7%');
Css := GetParam('ClassCss','');
// Sous help&web les niveaux dbutent ê 2
// pour ne pas perturber la logique on va les ramener ê 1 dans ce script
Level := StrToInt(GetParam('Level','1')+1);

// si on compile en html (et donc en htmlhelp) on doit gnrer la feuille de style css
if Condition('_HTML_')or Condition('_HTMLHELP_') then
begin
// nom du style, il doit ©tre unique par page html
idname := GetParam('idname','navcontainer');
// obtenir les couleurs utilises en xhtml
BackgroundColor := GetParam('BackgroundColor','$804000');
TextColor := GetParam('TextColor','$FFFFFF');

// crer, enregistrer et insrer le fichier css utilis par notre liste

css_filename := GetParam('FilenameCss',GetProjet+'_hw.css');
// cration du fichier css externe
// mais on va d'abord tester si on ne l'a pas djê fait ;)
if GetVarInt(idname+'HorzMenuList',0)=0 then
begin
SetVarInt(idname+'HorzMenuList',1); // pour ne pas le recrer la prochaine fois

SetCss(css_filename,'#'+idname,'width','100%');
//SetCss(css_filename,'#'+idname,'float','left');
SetCss(css_filename,'#'+idname,'background-color',ColorToHtml(GetShadowColor(BackGroundColor)));


SetCss(css_filename,'#'+idname+' ul','margin','0');
SetCss(css_filename,'#'+idname+' ul','padding','0 0 0 '+Margin);
SetCss(css_filename,'#'+idname+' ul','list-style-type','none');

SetCss(css_filename,'#'+idname+' ul li','display','inline');

SetCss(css_filename,'#'+idname+' ul li a','padding-left','12px');
SetCss(css_filename,'#'+idname+' ul li a','padding-right','12px');
SetCss(css_filename,'#'+idname+' ul li a','background-color',ColorToHtml(GetShadowColor(BackGroundColor)));
SetCss(css_filename,'#'+idname+' ul li a','color',ColorToHtml(TextColor));
SetCss(css_filename,'#'+idname+' ul li a','text-decoration','none');
//SetCss(css_filename,'#'+idname+' ul li a','float','left');
SetCss(css_filename,'#'+idname+' ul li a','border-right','1px solid '+ColorToHtml(GetHightLightColor(BackGroundColor)));

SetCss(css_filename,'#'+idname+' ul li a:hover','background-color',ColorToHtml(GetHightLightColor(BackGroundColor)));
SetCss(css_filename,'#'+idname+' ul li a:hover','color',ColorToHtml(GetShadowColor(Backgroundcolor)));

SetCss(css_filename,'#'+idname+' ul li a.'+idname+'_selected','background-color',ColorToHtml(GetHightLightColor(BackGroundColor)));
SetCss(css_filename,'#'+idname+' ul li a.'+idname+'_selected','color',ColorToHtml(GetShadowColor(Backgroundcolor)));



end;

// si on ne l'a pas djê fait on fait en sorte que notre css se charge
// pour cela on l'importe dans le head
if GetVarInt(css_filename+GetTitre,0)=0 then
begin
SetVarInt(css_filename+GetTitre,1); // pour ne le faire qu'une seule fois par page
// il existe 2 fa!ons de lier une feuille de style mais en htmlhelp seule la premi¾re semble fonctionner...
if Condition('_HTMLHELP_') then
writeln('<<WEB(head:<link rel="stylesheet" type="text/css" href="')>>+css_filename+<<FNT(STRING.-,-,-,-:'" />)>>')
else
writeln('<<WEB(head:<style type="text/css" media="screen">@import url( ')>>+css_filename+<<FNT(STRING.-,-,-,-:' );</style>)>>');
end;
end; // fin du traitement css pour le html

// obtenir le numro de la 1ere rubrique
ici := 0;
// rcuprer le numro de la deni¾re rubrique
nl := GetTopicCount;
// rcuprer le numro de la rubrique actuelle
this := GetNum;
// ne crer des liens que s'il y en a !
if ici<nl then
begin




if css<>'' then css:=' class="'+css+'"';
// dbut de la liste
write('<<WEB(<div id="')>>+idname+<<FNT(STRING.-,-,-,-:'">)>>');
write('<<WEB(<ul')>>+css+<<FNT(STRING.-,-,-,-:'>)>>');

// masque pour le code
ajmp :='<<JMP(%s^')>>+idname+<<FNT(STRING.-,-,-,-:'_selected,%s)>>';
bjmp :='<<JMP(%s,%s)>>';
//fjmp := '<<JMP(%s,%s)>>';


// pour chaque lien ê effectuer
for i:=ici to nl do
begin

// dterminer le niveau
if GetLevelOf(i)=Level then
begin
// prendre en compte la rubrique active
if i=This then fjmp:=ajmp else fjmp:=bjmp;

// on ignore la rubrique si elle poss¾de un mot clef avec une note Z
if GetKeysNoteOf(i,'Z')= 0 then
begin
// on ignore les popups
if not IsPopup(i) then
begin






// on rcupre le titre de la rubrique cible
Texte := GetTitreOf(i);




// on fabrique le lien
jmp := format(fjmp,[texte,GetNomOf(i)]);


if Condition('_HLP_') or Condition('_PDF_') or Condition('_RTF_WORD_') then
begin
write(jmp);
if i<nl then write(' - ');
end else write('<<WEB(li)>>'+jmp+'<<WEB(</li>)>>');



end; // end popup
end; // end if GetKeysNoteOf(i,'Z')=0 then
end; // if GetLevelOf(i)=Level then
end; // end for i:=ici to nl do


// terminer la liste
write('<<WEB(</li>)>>');
write('<<WEB(/ul)>>');
write('<<WEB(</div>)>>');
end;
end;


end.

Sommaire