Patches

fix #1821 
fix #1803 
fix #1822 
fix #1778 ??

Updated to use typeof .... 

@emanuele45  The state check for footnotes / spoilers is a bit rough, what is there will not work in all places (like inside formatted text inside the bbc codes and other points ... 

e.g. [footnote]bla1 <b>bla2</b> bla3[/footnote] the cursor in bla2 will not trigger the state but in bla1 or dba2  will (although making that work has an side effect of active state with the cursor inside of the [footnote] tag itself in some instances.  

TLDR its messy so this is just a goodie, worth it at all?