Hola amigo, espero que esto te sirva de ayuda:
 
Antes que nada queria decirte que asi no se utiliza la metodo indexOf, solo debes poner una sola cadena, mucho menos separar cada texto con ";" 
Ahora si lo que tienes que hacer es lo siguiente:    
Código Javascript
:
Ver original- //Esto lo colocas dentro de tu funcion validar_email,  
- al comienzo antes de las condicionales*/ 
-   
- //Primero creamos una cadena (texto) con los correos que solo quieres 
-     var correos="yahoo hotmail gmail live"; 
- /*Luego dividimos por el @ el contenido del email con la metodo split y lo  
- guardamos en la variable dominio*/ 
-     var dominio=document.formu.EMAIL.value.split("@"); 
- /*Ahora en dominio[1] contiene 'dominio.com' lo volvemos a dividir para obtener 
- el dominio de correo lo que esta antes del punto, tambien con el metodo split.*/ 
-     var server=dominio[1].split("."); 
- /*Finalmente verificamos si server[0] que contiene el dominio de correo esta  
- dentro del textio correos con la funcion match, el resultado se almacena en res*/ 
-     var res=correos.match(server[0]); 
La funcion match si no encuentra el texto dentro de la cadena, devuelve null 
Entonces en la línea 11 colocas la condicion:    
Supongo que habra otras maneras, espero te sirva. 
Saludos..