\setupoutput[pdf]
\setuppapersize[S6][S6]

\startJSpreamble {Notes} used now

  var lastNote = "" ;

  function Show_Note ( Name )
    { if (Name != lastNote)
        { Hide_Note () ;
          var v = this.getField(Name) ; if (v)
            { console.println("Show Note: " + Name) ;
              v.display = display.visible ;
              v.readonly = false ;
%              v.richText = true ;
%              v.multiline = true ;
%              v.lineWidth = 3 ;
%              v.rect = [0, 0, 200, 150] ;
              this.dirty = false ;
              lastNote = Name } }
        else {Hide_Note () ;}
 }

  function Hide_Note ( )
    { if (lastNote != "")
        { var v = this.getField(lastNote) ; if (v)
            { console.println("Hide Note: " + lastNote) ;
              v.display = display.hidden ;
              v.readonly = true ;
              this.dirty = false } }
          lastNote = "" }


  function Set_Tooltip ( Name )
  { if (Name != "")
    { var v= this.getField(Name) ; if (v)
      { v.userName="This may help..." ; }
    }
  }
    



\stopJSpreamble

\newcounter\AnotherNote

\def\SomeNote#1#2%
  {\hbox
     {\doglobal\increment\AnotherNote
      \definesymbol[note:\AnotherNote:on][\WhatANote{#2}]%
%      \setupfield[notes][offset=overlay,frame=off,option={readonly,hidden}]
    % this confuses acrobat, probably some interference bug, I spent too much time on that
      \setupfield[notes][offset=overlay,frame=off,option={readonly,hidden},%
%                regionin=JS(Hide_Note),
                regionout=JS(Hide_Note),
                username={Test!},
%                clickin=JS(Hide_Note),
%                clickout=JS(Hide_Note),
        ]
      \definefield[note:\AnotherNote][check][notes][note:\AnotherNote:on,note:\AnotherNote:on][note:\AnotherNote:on]%

      \doifreferencefoundelse{note:\AnotherNote}
        {\setlayer[notes][page=\currentrealreference]{\fitfield[note:\AnotherNote]}}
        {\setlayer[notes]{\fitfield[note:\AnotherNote]}}%
      \pagereference[note:\AnotherNote]\goto{#1}[JS(Show_Note{note:\AnotherNote})]}}

\setupinteraction
  [state=start,
   openpageaction=JS(Hide_Note),
   closepageaction=JS(Hide_Note)]

\definereference[CloseNote][JS(Hide_Note)]

\setupfootertexts[{\goto{Close Note}[CloseNote]}][]

\setupcolors
  [state=start]

\definecolor
  [notebackgroundcolor]
%  [s=.85]
  [s=1,a=1,t=.9]

\defineframedtext
  [WhatANote]
  [bodyfont=9pt,
   background=color,
   backgroundcolor=notebackgroundcolor,
   width=.4\textwidth,
   height=fit,
   align=normal]

\definelayer
  [notes]
  [width=\paperwidth,
   height=\paperheight,
   preset=rightbottom,
   offset=1cm]

\setupbackgrounds
  [page]
  [background={notes,foreground}]

\starttext

\startbuffer
\input ward   \SomeNote{[[ward]]}  {\input ward  \relax} \input ward   \blank
\input knuth  \SomeNote{[[knuth]]} {\input knuth \relax} \input knuth  \blank
\input tufte  \SomeNote{[[tufte]]} {\input tufte \relax} \input tufte  \blank
\input bryson \SomeNote{[[bryson]]}{\input bryson\relax} \input bryson \blank
\stopbuffer

\dorecurse{10}{\getbuffer}

\stoptext
