hat sich erledigt; mit Aufruf Ziel(x) falls Node == 2, in Endspurt.js, klappt es.
function Endspurt(x){var h = EqLns.lastChild,
ln = h.childNodes[h.side], b =[3,0][h.side >> 1];
with(ln){
function BsHchEx(b0,Ex) {
if(h.Node == b){childNodes[b].innerText = b0;return; /* Basis */
}
if(childNodes[b].
innerText == Ex){childNodes[b+1].innerText = b0; return; /* Exp */
}
DspHptHnt('?<sup>?</sup> muß 16 ergeben');
}
if(h.Node != 2){
switch(x) {
case mS2: BsHchEx(2,4); return;
case mS4: BsHchEx(4,2); return;
default: PwrErr(); return;
}/* switch */
}/*Node != 2 */ h.s = h.k = h.a = h.M = h.b = h.c = h.n = 0;
function Ziel(u){
function abc(Prp,Min,pNod){ if(h.k < Min){ KlmmrErst(); return false;}
if(h[Prp]){ DspHptHnt("nur 1 <i>"+Prp+"</i>"); return false;}
childNodes[pNod].src = mSms[u]; h[Prp]++; return true;
}
switch (u) {
case mSs : if( h.s < 1 ) { childNodes[2].src = mSms[u]; h.s++;break; }
if( h.s > h.k) { KlmmrErst(); return;}
if( h.s > 3 ) { DspHptHnt('nur 4mal <i>s</i>'); return;}
childNodes[ KlmmrLst[h.s-1][0]+1
] .src = mSms[u]; h.s++;
break;
case mSMns: if( h.M > h.k) { KlmmrErst(); return;}
if( h.M > 2 ) { DspHptHnt('nur 3 Minuszeichen');return;}
childNodes[ KlmmrLst[h.M ][0]+2
] .src = mSms[u]; h.M++;
break;
case mSa : if( !abc('a',1,7) ) return; break;
case mSb : if( !abc('b',2,13) ) return; break;
case mSc : if( !abc('c',3,19) ) return; break;
case mSKa : if( h.k > 2 ) { DspHptHnt('nur 3mal <i>()</i>'); return;}
with(childNodes[ KlmmrLst[h.k][0] ]){src = mSms[mSKa];
className = '';
}
with(childNodes[ KlmmrLst[h.k][1] ]){src = mSms[mSKz];
className = '';
}h.k++;
}/*switch*/ /* fertig nach 4mal s, 3mal '(', 3mal '-', a,b,c */
/* also nach 13 Klicks */
if(++h.n < 13) return; /* gezählt in h.n */
DspHptHnt('Ziel verlassen');
}/*Ziel*/ Verteiler = Ziel; Ziel(x);
} /* with */
}/* Endspurt */