package control;

import utiles.Archivo;

/**
 * Esta clase es utilizada en las ventanas Login y Registro para sus
 * operaciones, conteniendo metodos que permiten aņadir usuarios y comprobar la
 * existencia de un usuario o un usuario y su contraseņa
 */

public class ControlLogin {
	
	private Archivo archivo;

	/**
	 * Inicia el objeto y crea un objeto archivo para ser utilizado por los
	 * metodos
	 */

	public ControlLogin() {

		archivo = new Archivo("UserData");
	}

	/**
	 * Realiza las comprobaciones necesarias para que los parametros entregados
	 * correspondan con el formato de usuario y contraseņa esperado y los aņade
	 * al archivo
	 * 
	 * @param user
	 *            Usuario el cual debe tener un largo superior a 4 caracteres y
	 *            no debe estar guardado en el archivo previamente
	 * @param pass
	 *            Contraseņa la cual debe tener un largo mayor a 6 caracteres
	 * @param pass2
	 *            Contraseņa que debe ser igual a la anterior
	 * @return Booleano indicando si la operacion se realizo correctamente
	 */

	public boolean aņadirUsuario(String user, String pass, String pass2) {

		if (!isUser(user)) {
			if (user.length() > 4) {
				if (pass.equals(pass2)) {
					if (pass.length() > 6) {
						archivo.escribirArchivo(user + ";" + pass);
						return true;
					} else {

						javax.swing.JOptionPane.showMessageDialog(null, "La contraseņa es muy corta", null,
								javax.swing.JOptionPane.ERROR_MESSAGE);
						return false;
					}
				} else {

					javax.swing.JOptionPane.showMessageDialog(null, "Las contraseņas no son iguales", null,
							javax.swing.JOptionPane.ERROR_MESSAGE);
					return false;
				}
			} else {

				javax.swing.JOptionPane.showMessageDialog(null, "El usuario es muy corto", null,
						javax.swing.JOptionPane.ERROR_MESSAGE);
				return false;
			}
		} else {

			javax.swing.JOptionPane.showMessageDialog(null, "El usuario ya existe ", null,
					javax.swing.JOptionPane.ERROR_MESSAGE);
			return false;
		}
	}

	/**
	 * Busca un usuario en el archivo
	 * 
	 * @param user
	 *            Usuario a buscar
	 * @return Booleano que indica si existia el usuario o no
	 */

	public boolean isUser(String user) {

		String[] arch = archivo.entregarProcesado();
		for (int x = 0; x < arch.length; x++) {
			if (arch[x].split(";")[0].equals(user)) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Busca un par usuario contraseņa en el archivo
	 * 
	 * @param user
	 *            Usuario a buscar
	 * @param pass
	 *            Contraseņa correspondiente a ese usuario
	 * @return Booleano que indica si exite el par o no
	 */

	public boolean isUserPass(String user, String pass) {

		String[] arch = archivo.entregarProcesado();
		for (int x = 0; x < arch.length; x++) {
			if (arch[x].split(";")[0].equals(user) && arch[x].split(";")[1].equals(pass)) {
				return true;
			}
		}

		return false;
	}
}
