Añadir opción a nuestro Select en HTML y JavaScript

Desde la comunidad de G+, han hecho la siguiente petición de mostrar al usuario en select, pero si no existe la opción permitir que el usuario marque la opción «otro» y se active el cuadro de texto para introducir su nombre. Hace algunos ayeres yo tuve el mismo problema y lo resolví de la siguiente manera (Fue hace algunos ayeres posiblemente sea antigua la solución):

[code lang=»HTML»]
<select name="seleccion" onChange="otro(this)">
<option selected>Selecciona alguna opción</option>
[/code]
[code lang=»PHP»]
<?php
//se supone ya habrás hecho la conexión y la consulta
while($reg=mysql_fetch_row($query)){
echo ‘<option value=" ‘.$reg[0].’ " > ‘.$reg[1]. ‘</option>’;
}
?>
[/code]
[code lang=»HTML»]
<option value="otro">Otro…</option>
</select>
<!– Añadimos cuadro de texto pero deshabilitado –>
<input type="text" value="" id="prg1" disabled="true" />
[/code]

Función JavaScript
[code lang=»JS»]
<script language="javascript" type="text/javascript">
function otro(selectTag){
if(selectTag.value == ‘otro’){
document.getElementById(‘prg1’).disabled = false;
}else{
document.getElementById(‘prg1’).disabled = true;
}
}
</script>
[/code]

Y con éste código se podrá activar la opción de añadir uno nuevo cuando el usuario no encuentre el que desea en la lista desplegable, lo guardamos en la Base de Datos al enviar y cuando recorremos con el «while» dentro de php ya estará en las opciones a mostrar.