hola, a todas tus funciones les falta el 
return por si no hay error   
Código javascript
:
Ver originalfunction verify_serie(campo, caract_extra) {
    var error = "";
    if ( !(campo.length == 12) ) {
        error = "El numero de serie debe contener 12 caracteres.\n";
        return error;
    }
    var ubicacion;
    var enter = "\n";
    var caracteres = "1234567890" + String.fromCharCode(13) + enter + caract_extra;
    var contador = 0;
    for (var i = 0; i < campo.length; i++) {
        ubicacion = campo.substring(i, i + 1);
        if (caracteres.indexOf(ubicacion) != -1) {
            contador++;
        } else {
            error = "ERROR: No se acepta el caracter '" + ubicacion + "', el no. de serie solo puede contener numeros.\n";
            return error;
        }
    }
    // falta el return
    return error;
}
  
porque si no retornas nada entonces va a debolver 
undefined que es lo que te aparece. 
Bueno, además tienes que organizar bien tu código para que se le entienda mejor, aquí una herramienta muy buena, que ademas de organizar 
Javascript ordena 
HTML:: 
http://elfz.laacz.lv/beautify/ 
saludoss
:)