function validate(current_form) {
    
    var missing_fields = new Array()
    var total_missing = 0
    
    // Recorrer todos los campos del formulario
    for (counter = 0; counter < current_form.length; counter++) {
    
        // ¿Es un campo de texto visible obligatorio?
        if ((current_form[counter].type == "text" ||
            current_form[counter].type == "textarea" ||
            current_form[counter].type == "password") &&
            current_form[counter].mandatory) {
            
            // ¿Está vacío?
            if (its_empty(current_form[counter].value)) {
              
                // Sí; añadir el campo al array de campos perdidos
                missing_fields[total_missing] = current_form[counter]
                total_missing++
            }
        }
    }

    // ¿Hay algún campo vacío?
    if (total_missing > 0) {
    
        // Inicializar el mensaje
        var missing_message = "Lo sentimos, pero debe rellenar " +
                              (total_missing == 1 ? " el siguiente campo:" : " los siguientes campos:") +
                              "\n______________________________\n\n"
        
        // Recorrer todos los campos perdidos
        for (counter = 0; counter < missing_fields.length; counter++) {
            missing_message += missing_fields[counter].name + "\n"
        }
    
        // Acabar y mostrar el mensaje
        missing_message += "\n______________________________\n\n" +
                       "Por favor, rellene estos campos y vuelva a enviar el formulario."
        alert(missing_message)
        
        // Para enfatizar todavía más, establezca el foco en el primer campo
        missing_fields[0].focus()
    }
    else {
        
        // Si todos los campos están rellenos, comprueba si la dirección de correo es correcta
        if (valid_email(current_form.email.value)){
        
            // Si es correcta; enviar el formulario
            current_form.submit()
        }
        else {
            // Mensaje de error
            var email_error = "Lo sentimos, la dirección de correo no es correcta."
            alert (email_error)
            
            // sitúa el foco en el campo del correo
            current_form.email.focus()
        }
    }
}


function its_empty(string_value) {

    // Buscar una cadena vacía o con un valor null
    if (string_value == "" || string_value == null) {
    
        // Si es cierta alguna de estas preguntas, se devuelve true
        return true
    }
    
    // En caso contrario, la cadena no está vacía (o no es null) así qeu devolvemos false
    return false
}



function valid_email(email_adress){
    // Crear la expresión regular
    var reg_exp = /^[a-z][\w\.]*@[\w\.\-]+\.[a-z]{2,3}/i
    
    // Aplicar el test y mostrar el resultado
    if(reg_exp.test(email_adress)) {
		
		//Dirección correcta
        return true
    }
    else {
	
		//Direccion incorrecta
        return false
    }
}

