Bueno, a ver si conseguimos solucionarlo por fin. Esta vez a primera vista no he visto ningún motivo por el debería fallar el código. Así que he descargado la librería Prototype, y he copiado tu código javascript (reduciéndo un poco lo que me sobraba) para probarlo, y efectivamente se comporta como dices.
Lo que te decía anteriormente de Firebug es importante, porque gracias a él he encontrado el problema. El error concreto que me daba era:
" this.initialize is undefined " -- prototype.js (línea 89)
Es decir, da error en el propio código de Protoype. Como es algo bastante raro, he buscado en Google el problema y me encontré con esto:
http://groups.google.com/group/rubyonrails-spinoffs/browse_thread/thread/048a9062a0387de0?pli=1
Como comentan ahí, necesitas poner la palabra "new" en el Ajax.Request de forma que en vez de:
tengas:
Así lo he probado y el código se ejecuta entero.
Prueba con eso, a ver.