function solicitar_alta() {

    /* comprobar info requerida */

    var username = document.getElementById("input_new_user").value;
    var password = document.getElementById("input_new_password").value;
    var password2 = document.getElementById("input_new_password2").value;
    var name = document.getElementById("input_name").value;
    var surname = document.getElementById("input_surname").value;
    var email = document.getElementById("input_email").value;
    var privacy_policy = document.getElementById("input_privacy_policy");

    var error = 0 ;

    if ( (username == "") || ((password == "")) || ((name == "")) || ((surname == "")) || ((email == "")) )
    {
        error = -1;
    }
    else if (password != password2)
    {
        error = -2;
    }
    else if (!echeck)
    {
        error = -3;
    }
    else if (!privacy_policy.checked)
    {
        error = -4;
    }

    switch(error) {
        case -1:
            //Los campos marcados con * son obligatorios
            alert("Los campos marcados con * son obligatorios.\n");
            break;
        case -2:
            //La contraseña repetida no es valida
            alert("La contraseña repetida no es valida.\n");
            break;
        case -3:
            //Email no valido
            alert("El email introducido no sigue un formato correcto.\n Por favor revise este campo.\n");
            break;
        case -4:
            //Politica de privacidad No Aceptada
            alert("Debe aceptar la Política de Privacidad para completar el registro.\n" );
            break;
        default:
            register();
            break;

    }
}

function register () {

    var username = document.getElementById("input_new_user").value;
    var password = document.getElementById("input_new_password").value;
    var name = document.getElementById("input_name").value;
    var surname = document.getElementById("input_surname").value;
    var email = document.getElementById("input_email").value;
    var province = document.getElementById("input_province").value;
    var telephone = document.getElementById("input_telephone").value;

    var user_registration = new User();
    user_registration.username = username;
    user_registration.nombre = name;
    user_registration.apellidos = surname;
    user_registration.email = email;
    user_registration.provincia = province;
    user_registration.telefono = telephone;
    user_registration.password = password;

    var url = urlServ + "Usuarios";

    new Ajax.Request(url,  {
        method: 'post',
		parameters: {
            action: "nuevo",
            username: username,
            password: password,
            name: name,
            surname: surname,
            email: email,
            province: province,
            telephone: telephone
        },
        onSuccess: function(transport) {
            prRegister(transport.responseXML, user_registration);
        },
        onFailure: function(transport) {
            alert('Error Register');
            alert("\n\n" + transport.responseText);
        }
    });
}

function prRegister(data, user_registration) {

    var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;

    if (msg == -1)
        alert("El nombre de usuario ya está dado de alta.\nPor favor, seleccione otro nombre de usuario.");
    else if (msg == -2)
        alert("Error al dar de alta el nuevo usuario.\n   Por favor, compruebe los datos introducidos.");
    else if (msg ==0)
        asignarCodigosUsuario(user_registration );
}

function asignarCodigosUsuario(user_registration ){

    var url = urlServ + "Usuarios";

    new Ajax.Request(url, {
        method: 'post',
		parameters: {
            action: "asignarCodigosUsuario",
            username: user_registration.username
        },
        onSuccess: function(transport) {
            prAsignarCodigosUsuario(transport.responseXML, user_registration);
        },
        onFailure: function(transport) {
            alert('Error ssignarCodigoUsuario');
            alert("\n\n" + transport.responseText);
        }
    });

}

function prAsignarCodigosUsuario(data, user_registration)  {

     var msg = data.getElementsByTagName("msg")[0].firstChild.nodeValue;;

    if (msg != 0)
        alert("Error al asignar c\u00f3digo de fabricante-usuario.\nPor favor, compruebe los datos introducidos.\n");
    else
    {
        login(user_registration.username, user_registration.password) ;
        //redirije a navigate('inicio');
    }
}

function entrar() {

    var username = document.getElementById("input_username").value;
    var password = document.getElementById("input_password").value;

    if ((username == "") || (password == ""))
        alert("Los campos marcados con * son obligatorios");
    else
        login(username, password);

}

function entrar_from_component() {

    var username = document.getElementById("div_login_component_input_new_user").value;
    var password = document.getElementById("div_login_component_input_new_password").value;

    if ((username == "") || (password == ""))
        alert("Debe introducir los campos de usuario y contraseña.\n");
    else
        login(username, password);

}

function echeck(str) {

    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
       alert("Invalid E-mail ID")
       return false
    }

    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
       return false
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false
    }

    if (str.indexOf(at,(lat+1))!=-1){
        return false
    }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        return false
     }

     if (str.indexOf(dot,(lat+2))==-1){
        return false
     }

     if (str.indexOf(" ")!=-1){
        return false
     }

     return true;
}







