Lo único incorrecto es la forma en la que tomas el valor del
<select>. Hasta
document.frm.opcion es correcta la secuencia, pero después accedes al conjunto de opciones que contiene y desde allí pretendes tomar un valor, siendo que el valor es del
<select> y no del conjunto de opciones. Es tanto como pretender tomar "el valor" de un arreglo, como si el arreglo mismo tuviera un valor distintivo.