function longitud(id,tamano) {
    myForm = document.forms['colabora'];
    if (myForm[id].value.length >= tamano) {
        alert ("El texto del Comentario supera los 255 caracteres");
        myForm[id].value = myForm[id].value.substring( 0, (tamano - 2));
    }
}

function validarEmail(Email){
    FormaEmail = /^(.+)@(.+)$/;
    FormaIP = /^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/
    NoUsuario = new RegExp("[^\\w\\d.]", 'g');
    NoDominio = new RegExp("[^a-zA-Z\\d.-]", 'g');
        
    // Separación del nombre de usuario y del dominio, segun el formato correcto de una dirección de email
    partes = Email.match(FormaEmail);
    if (partes == null){
        alert ("La dirección de email esta mal escrita");
        return false;
    }
    usuario = partes[1];
    dominio = partes[2];
    
    // Comprobar que el usuario no tiene caracteres especiales
    if (NoUsuario.test(partes[1])){
        alert ("El nombre de usuario esta mal escrito:");
        return false;
    }
    
    // Si el dominio es una ip se comprueba, si no es una dirección ip el dominio se separa en dos partes, una para la
    // terminacion y la otra para el resto
    IPArray = dominio.match(FormaIP)
    
    if (IPArray != null) {
        for (i = 1; i <= 4; i++) {
    	    if (IPArray[i]>255) {
    	        alert("IP de destino incorrecta.")
    		    return false;
    	    }
        }
    } else {
        terminacion = dominio.substring(dominio.lastIndexOf(".") + 1);
        
        // Se usa para comprobar que no hay dos puntos seguidos
        aux = dominio.split('.');
        for (i = 0; i < aux.length; i++){
            if (aux[i] == ''){
                alert ("El nombre del dominio  esta mal escrito:");
                return false;
            }
        }
        
        dominio = dominio.substring(0, dominio.lastIndexOf("."));
    }
    
    // Comprobar que el dominio no tiene caracteres especiales
    if ((NoDominio.test(dominio) && IPArray == null) || dominio == ''){
        alert ("El nombre del dominio  esta mal escrito:");
        return false;
    }
    
    // Comprobar que la terminacion tiene entre 2 y 4 caracteres y que no son especiales
    if (terminacion.search(/[^a-zA-Z]/) != -1 || terminacion.length < 2 || terminacion.length > 4){
        alert ("La dirección debe terminar con un dominio de 3 letras, o un nombre de país de dos letras.");
        return false;
    }
    
    return true;
}

function comprobar(){
    myForm = document.forms['colabora'];
    
    
    // Nombre
    if (myForm['nombre'].value == ''){
        alert ('Falta indicar el nombre');
        myForm['nombre'].focus();
        return false;
    }
    
    // Sección
    if (myForm['seccion'].value == ''){
        alert ('Falta indicar la sección');
        myForm['seccion'].focus();
        return false;
    }
    
    // Email
    if (!validarEmail(myForm['email'].value)){
        myForm['email'].focus();
        return false;
    }
    
    // Comentario, solo es obligatorio si es un comentario
    if (myForm['seccion'].value == 'comentario' && myForm['descripcion'].value == ''){
        alert ('No se ha realizado ningún comentario');
        myForm['descripcion'].focus();
        return false;
    }
    
    // Fichero, es obligatorio para todos menos para los comentarios
    if (myForm['seccion'].value != 'comentario' && myForm['fichero'].value == ''){
        alert ('Falta indicar el fichero');
        myForm['fichero'].focus();
        return false;
    }
    
    <?php 
        ##
        ## Solo si es para SMS
        ##
        if ($_GET['seccion'] == 'sms') {
            echo "// Codigo SMS;\n";
            echo "if (myForm['codigo_sms'].value == ''){\n";
            echo "    alert ('Falta indicar el codigo recibido');\n";
            echo "    myForm['codigo_sms'].focus();\n";
            echo "    return false;\n";
            echo "}\n";
            
            echo "// Nº Móvil\n";
            echo "if (myForm['movil'].value == ''){\n";
            echo "    alert ('Falta indicar el número de tu movil');\n";
            echo "    myForm['movil'].focus();\n";
            echo "    return false;\n";
            echo "}\n";
            
            echo "// Programa\n";
            echo "if (myForm['programa'].value == ''){\n";
            echo "    alert ('Falta indicar el nombre y la version del programa');\n";
            echo "    myForm['programa'].focus();\n";
            echo "    return false;\n";
            echo "}\n";
        }
    ?>
    
    myForm.submit();
}