package com.ramos.munoz.tesis;

import java.util.ArrayList;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class RegistroDeUsuario extends Activity implements OnClickListener {

    private EditText usuario;
    private EditText pass1;
    private EditText pass2;
    private EditText correo;
    private EditText celular;
    private EditText nombre;
    private EditText apPat;
    private EditText apMat;

    private Usuario usuarioMovil;

    @Override
    public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.registro_de_usuario_activity);
	inicializarComponentes();
    }

    public void inicializarComponentes() {
	usuario = (EditText) findViewById(R.id.txtUsuario);
	pass1 = (EditText) findViewById(R.id.txtPassUno);
	pass2 = (EditText) findViewById(R.id.txtPassDos);
	correo = (EditText) findViewById(R.id.txtCorreo);

	Button boton = (Button) findViewById(R.id.btnRegistrarse);
	boton.setOnClickListener(this);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
	return true;
    }

    private void registrarUsuario() {

	if (Validacion.isVacio(usuario)) {
	    Toast.makeText(this, "Ingrese nombre de usuario", Toast.LENGTH_SHORT).show();
	    return;
	}
	if (Validacion.isVacio(pass1)) {
	    Toast.makeText(this, "Ingrese contraseņa", Toast.LENGTH_SHORT).show();
	    return;
	}
	if (Validacion.isVacio(pass2)) {
	    Toast.makeText(this, "Ingrese nuevamente la contraseņa", Toast.LENGTH_SHORT).show();
	    return;
	}
	if (!pass1.getText().toString().equals(pass2.getText().toString())) {
	    Toast.makeText(this, "Las contraseņas no coinciden", Toast.LENGTH_SHORT).show();
	    return;
	}
	if (Validacion.isVacio(correo)) {
	    Toast.makeText(this, "Ingrese un correo", Toast.LENGTH_SHORT).show();
	    return;
	}
	if (!Validacion.isCorreo(correo.getText().toString())) {
	    Toast.makeText(this, "Ingrese un correo valido", Toast.LENGTH_SHORT).show();
	    return;
	}
	RegistrarUsuarioTask task = new RegistrarUsuarioTask();
	task.execute();

    }

    public void onClick(View v) {
	switch (v.getId()) {
	    case R.id.btnRegistrarse:
		registrarUsuario();
		break;
	}

    }

    private class RegistrarUsuarioTask extends AsyncTask<Object, Integer, Boolean> {

	private ProgressDialog barraEstado;

	@Override
	protected Boolean doInBackground(Object... parametros) {

	    ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();

	    params.add(new BasicNameValuePair(Usuario.POST_USUARIO, usuario.getText().toString()));
	    params.add(new BasicNameValuePair(Usuario.POST_CONTRASENA, pass1.getText().toString()));
	    params.add(new BasicNameValuePair(Usuario.POST_EMAIL, correo.getText().toString()));
	    Usuario usuarioMovil = new Usuario();
	    return usuarioMovil.registrarUsuario(params);
	}

	@Override
	protected void onPostExecute(Boolean resp) {
	    super.onPostExecute(resp);
	    if (resp) {
		Toast.makeText(RegistroDeUsuario.this, "Se ha registrado el usuario  " + usuario.getText().toString(), Toast.LENGTH_LONG).show();
		finish();
	    }

	    else {
		Toast msge2 = Toast.makeText(RegistroDeUsuario.this, "No se ha registrado el usuario " + usuario.getText().toString(), Toast.LENGTH_LONG);
		msge2.show();
	    }

	    if (barraEstado.isShowing()) {

		barraEstado.dismiss();
	    }

	}

	@Override
	protected void onPreExecute() {
	    barraEstado = new ProgressDialog(RegistroDeUsuario.this);
	    barraEstado.setProgressStyle(ProgressDialog.STYLE_SPINNER);
	    barraEstado.setMessage(getString(R.string.autenticando));
	    barraEstado.setCanceledOnTouchOutside(false);
	    barraEstado.show();
	    super.onPreExecute();
	}

    }
}
