
function vacio(cadena)  
{                                    // DECLARACION DE CONSTANTES  
 var blanco = " \n\t" + String.fromCharCode(13); // blancos  
									// DECLARACION DE VARIABLES  
 var i;                             // indice en cadena  
 var es_vacio;                      // cadena es vacio o no  
 for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++) // INICIO  
   es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;  
 return(es_vacio);  
}  


/* dice si cadena es un email (alfanum@alfanum.alfanum[.alfanum]) o no, don- */
/* de alfanum son caracteres alfanumericos u otros                           */  
function email(cadena, otros)  
{                                    // DECLARACION-INICIALIZACION VARIABLES  
 var i, j;                          // indice en cadena  
 var es_email = 0 < cadena.length;  // cadena es email o no  
 i = salta_alfanumerico(cadena, 0, otros); // INICIO  
 if(es_email = 0 < i)               // lee "alfanum*"  
   if(es_email = (i < cadena.length))  
	 if(es_email = cadena.charAt(i) == '@') // lee "alfanum@*"  
	   {  
		 i++;  
		 j = salta_alfanumerico(cadena, i, otros);  
		 if(es_email = i < j)       // lee "alfanum@alfanum*"  
		   if(es_email = j < cadena.length)  
			 if(es_email = cadena.charAt(j) == '\.')  
			   {                    // lee "alfanum@alfanum.*"  
				 j++;  
				 i = salta_alfanumerico(cadena, j, otros);  
				 if(es_email = j < i) // lee "alfanum@alfanum.alfanum*"  
				   while(es_email && (i < cadena.length))  
					 if(es_email = cadena.charAt(i) == '\.')  
					   {  
						 i++;  
						 j = salta_alfanumerico(cadena, i, otros);  
						 if(es_email = i < j) // lee "alfanum@alfanum.alfanum[.alfanum]*"  
						   i = j;  
					   }  
			   }  
	   }  
 return(es_email);  
}  


/* dice si cadena es url (http://... ) o no                                     */
function url(cadena)  
{                                    // DECLARACION DE CONSTANTES  
 var http = "http://";              // protocolo HTTP  
									// DECLARACION DE VARIABLES  
 var es_url;                        // cadena es url o no  
 if(cadena.length <= 7)             // INICIO  
   es_url = false;                  // no cabe "http://*"  
 else  
   es_url = http.indexOf(cadena.substring(0, 7)) != - 1; // lee "http://*"  
 return(es_url);  
}  


/* salta caracteres alfanumericos y otros a partir de  cadena[i]  y  da  si- */  
/* guiente posicion                                                          */  
function salta_alfanumerico(cadena, i, otros)  
{                                    // DECLARACION DE VARIABLES  
 var j;                             // indice en cadena  
 var car;                           // caracter de cadena  
 var alfanum;                       // cadena[j] es alfanumerico u otros  
 for(j = i, alfanum = true; (j < cadena.length) && alfanum; j++) // INICIO  
   {  
	 car = cadena.charAt(j);  
	 alfanum = alfanumerico(car) || (otros.indexOf(car) != -1);  
   }  
 if(!alfanum)                       // lee "alfanumX"  
   j--;  
 return(j);  
}  
 
/* dice si car es alfanumerico                                               */
function alfanumerico(car)  
{  
 return(alfabetico(car) || numerico(car));  
}  


/* dice si car es alfabetico                                                 */
function alfabetico(car)               // DECLARACION DE CONSTANTES  
{                                    // caracteres alfabeticos  
 var alfa = "ABCDEFGHIJKLMNOPQRSTUWXYZabcdefghijklmnopqrstuvxyz";  
 return(alfa.indexOf(car) != - 1);  // INICIO  
}  


/* dice si car es numerico                                                   */
function numerico(car)  
{                                    // DECLARACION DE CONSTANTES  
 var num = "0123456789";            // caracteres numericos  
 return(num.indexOf(car) != - 1);   // INICIO  
}  


// ejemplo validacion formulario  
function ValidaCampos(form)  
{  
	 if(vacio(form.nombre.value))
	 {
	   alert("Rellene el campo Nombre.");
	 } else if(vacio(form.email.value, "-_")) {
	   alert("Rellene el campo de email.");  
	 } else if(vacio(form.comentarios.value)) {
	   alert("coloque un comenterio.");
	 } else {
		return(true);
	 }
	 return(false);  
}


