troppi onfocus ... nessun caching delle variabili (o elementi del dom) ed in fine questo:

onChange=doselmach()

praticamente non t'ha mai funzionato l'onchange quindi non capisco come tu abbia potuto rilevare tali differenze...

gli eventi, che ricordo si scrivono in minuscolo poichè in (x)HTML è tutto minuscolo (HTML invece maiuscolo) ... (p.s. e bisogna che il tizio di wikipedia sistema quella pagina...) si assegnano all'interno di apici doppi o singoli poichè in quel modo altro non fai che chiamare una sola volta la funzione ... e siccome la stessa non ritorna se stessa non accadrà altro.

onchange="doselmach(this)"

il this è se vuoi passare quella select invece di ricercarla ogni volta tramite le funzioni dom ... ce l'hai, è il this dell'onchange ... perchè non sfruttarlo ?