Bufff cuántas preguntas en un mismo post. Aver si puedo contestarlas todas.
Lo primero de todo es que algo como esto:
Código:
elemento.onfocus = function(){ ... };
elemento.onfocus; // "function(){ ... };"
No es cierto. Eso te devolvería un handler, o sea, una referencia a la función que asignaste.
Lo de asignar los eventos, lo puedes hacer mediante el Model Event level 2, es decir, usando attachEvent/addEventListener. Esto hace que puedas añadir las funciones que quieras a un mismo evento sin que estas se "pisen".
Lo de asignar los eventos a todos los inputs, aunque sean dinámicos, sinceramente no estoy seguro, podrías usar un setInterval, pero no es una solución limpia ni adecuada. Sé que jQuery tiene una función live, pero no me he parado a ver cómo funciona.
Por último, el evento que buscas es oncontextmenu.
Saludos (: