buenas,
una observación. lo que no comprendo es para qué pasas el id y luego capturarlo con getElementById pudiendo tener una referencia directa del elemento al invocar la función. es decir, en lugar de pasar this.id, simplemente pasa this. en este caso this es una referencia del elemento. claro, eso si fueras a trabajar directamente con el elemento.
Código:
function fn(elem){
alert(elem.id);
}
// se invocaría ;
onevent="fn(this);"