ok allora, posto solo per Mozilla ecc tanto anche se cambia leggermente, la cosa è simile anche per IE.

Questo è quello che faccio:
codice:
//Questa funzione viene richiamata dall'evento onclick
function changeClass(mioBt) {
	var element = getElmById(mioBt)
	if (element.className == "noactive"){
		registerClass(element, 'active')
	}else{
		registerClass(element, 'noactive')
	}
} 

//Ricavo l'id dell'elemento
function getElmById(mioBt){ 
  var element = null; 
  if (document.getElementById)
  element = document.getElementById(mioBt);
  return element; 
}

//Registro il cambio di classe css
function registerClass(element, style){ 
	if (element.addEventListener) {	
		element.className=style
		element.style.cursor = 'pointer'
		element.addEventListener('click',function () {
			this.className=style
		},false)
	}
}
è meglio quando viene segnalato un errore che quando funziona in modo anomalo e non ci sono errori!!!