i18n = new I18n();

function SignupDlg() {
	// Se almacena información útil
	this.signupDlg = null;
}

SignupDlg.prototype = {
	open: function() {
		// Se almacena una referencia a este objeto para poder acceder luego a él
		var thisDlg = this;
		
		// Se abre el diálogo
		$.ajax({
			type: "POST",
			url: i18n.linkTo("mngrSignupDlg.php"),
			data: {op: "signupDlg"},
			success: function (data) {
				if (data.errorCode) {
					alert(data.errorMessage);
					return;
				}
				
				var signupDlg = $(data.signupDlg);
				signupDlg.appendTo("body");
				
				// Se le da funcionalidad al botón Enviar
				signupDlg.find("#signup").click(function() { thisDlg.signup(); });
				
				// Se le da funcionalidad al botón cerrar
				signupDlg.find("#signup_cerrar").click(function () { thisDlg.close(); });
				
				// Se pone el foco en el primer input
				signupDlg.find("#signup_username").focus();
				
				// Por último, se almacena la referencia al diálogo
				thisDlg.signupDlg = signupDlg;
			},
			dataType: "json",
			async: false
		});
	},
	
	signup: function() {
		var signupForm = this.signupDlg.find("#signupForm");
		var data = {op: "signup"};
		
		// Se comprueba el nombre de usuario
		data.username = $.trim(signupForm.find("#signup_username").val());
		signupForm.find("#signup_username").val(data.username);
		if (data.username == "") {
			alert(i18n.tr("Hace falta un nombre de usuario para poder crear vuestra MovilBoda."));
			signupForm.find("#signup_username").focus();
			return;
		}
		
		// Se comprueba la contraseña
		data.password = signupForm.find("#signup_password").val();
		if (data.password == "") {
			//alert(i18n.tr("Hace falta una contraseña para poder crear vuestra MovilBoda."));
			alert(i18n.tr("Hace falta una contraseña para poder crear vuestra MovilBoda."));
			signupForm.find("#signup_password").focus();
			return;
		} else if (data.password != signupForm.find("#signup_rePassword").val()) {
			alert(i18n.tr("Las contraseñas no coinciden."));
			signupForm.find("#signup_password").select();
			return;
		}
		
		// Se comprueba el email
		var emailRegExp = /^.+@[^\.].*\.[a-z]{2,}$/i;
		data.email = $.trim(signupForm.find("#signup_email").val()); signupForm.find("#signup_email").val(data.email);
		if (!emailRegExp.test(data.email)) {
			alert(i18n.tr("La dirección de correo introducida no es válida"));
			signupForm.find("#signup_email").select();
			return;
		}
		
		// Finalmente, se manda crear el usuario
		$.ajax({
			type: "POST",
			url: "mngrSignupDlg.php",
			data: data,
			success: function (data) {
				if (data.errorCode) {
					alert(data.errorMessage);
					return;
				}
				
				// Si todo ha ido bien, se puede pasar al paso 1
				location.href = "paso1.php";
			},
			dataType: "json",
			async: false
		});
	},
	
	close: function() {
		this.signupDlg.remove();
	}
};
