<?php
//---------------------------------------------------------------------------------------------------------
// 12/Enero/2015
// Version 1.0 Aviso legal
//---------------------------------------------------------------------------------------------------------
?>
<?php
include("comunes/globals.php");
?>
<div class="container">
    
    <?php
// Incluimos la miga
    escupirMiga("Recuperar contraseña");
    ?>
</div>
<section class="container">
    <div class="row">
        <div class="col-xs-12">
            <article id="registro">
                <?php
				$mostrar_formulario_recu_pass = false;	//Formulario que pide dos passwords para cambiarlos
				$mostrar_formulario_reset_pass = true;	//Formulario que pide el email para resetear el pass
				//Vamos a ver si ya hemos solicitado recuperar la contraseña y tenemos el hash:
				$hash = Getter::get('hash', NULL);
				$user = Getter::get('user', NULL);
				//var_dump($user);
				//var_dump($hash);
				$estado_update_password = Sesion::get('estado_update_password', NULL);
				//var_dump($estado_update_password);
				if ( (($hash != NULL) && ($user != NULL)) || ($estado_update_password != NULL) ){
					//En este caso hay que comprobar si el hash es bueno y vamos a ofrecer el formulario para reestablecer la contraseña
					$mostrar_formulario_recu_pass = true;
					$mostrar_formulario_reset_pass = false;
				}else{
					//Vamos a comprobar si el usuario ha ejecutado la opción de recuperar contraseña:
					$resultado_recu_pass = Sesion::get('resultado_recu_pass', NULL);
					if ($resultado_recu_pass !== NULL){
						if ($resultado_recu_pass == 0){
							$mostrar_formulario_reset_pass = false;
							?>
							<div class="alert alert-success">
							<p class='emailOK'><?=traducir('Solicitud recibida. Le hemos enviado un email con las instrucciones necesarias para reestablecer su contraseña.');?></p>
							</div>
							<?php
						}else if ($resultado_recu_pass == -1){
							?>
							<div class="alert alert-danger">
								<p class='emailKO'><?=traducir('El email introducido no se encuentra en nuestra base de datos. Inténtelo de nuevo.');?></p>
							</div>
							<?php
						}
					}
				}
				//Después de esto vamos a ver si mostramos un formulario u otro:
				if ($mostrar_formulario_reset_pass){
				?>
					<div class="recuperar_pass col-xs-12 col-sm-6 col-sm-offset-3">
					<h3 class="page-subheading"><?=traducir('Recuperar mi contraseña');?></h3>
						<p><?=traducir('Introduce el email con el que estás registrado y te enviaremos un correo para recuperar tu contraseña.');?></p>
						<form action="<?= Shop::$configuracion->url; ?>recuperar_pass" method="post" class="recuperar_pass_simple">
							<fieldset class="recuperar_pass_capa_input">
								<div class="row">
									<div class="form-group col-xs-12 col-sm-6 col-sm-offset-3">
										<label for="email"></label>
										<input type="email" placeholder="<?= traducir('Dirección email'); ?>" name="email" id="email" value="" required class=" input_formulario form-control"/>
										<?=Module::insertActionController('recuperar_pass', 'regeneratePassword');?>
									</div>
								</div>
								<div class="row">
									<button type="submit" name="enviar" value="" class="boton"><?= traducir('Recuperar'); ?></button>
								</div>
							</fieldset>
						</form>
					</div>
				<?php
				}else if ($mostrar_formulario_recu_pass){
					//Controlamos el esatdo de "recuperar el password"
					if ($estado_update_password == -1){
						?>
						<div class="alert alert-danger">
							<p><?=traducir('Las contraseñas no coinciden.');?></p>
						</div>
						<?php
					}else if ($estado_update_password == -2){
						?>
						<div class="alert alert-danger">
							<p><?=traducir('La nueva contraseña debe contener mayúsculas y minúsculas y, al menos, un número.');?></p>
						</div>
						<?php
					}else if ($estado_update_password == -3){
						?>
						<div class="alert alert-danger">
							<p><?=traducir('Error sin especificar');?></p>
						</div>
						<?php
					}else if (is_string($estado_update_password)){
						$mostrar_formulario_recu_pass = false;
						?>
						<div class="alert alert-success">
							<p><?=traducir('Su contraseña se ha modificado correctamente. Identifíquese ahora en nuestra web con su nueva contraseña.');?></p>
						</div>
						<?php
					}
					if ($mostrar_formulario_recu_pass){
					?>
					<div class="recuperar_pass col-xs-12 col-sm-6 col-sm-offset-3">
						<h3 class="page-subheading"><?=traducir('Recuperar mi contraseña');?></h3>
						<p><?=traducir('Introduce una contraseña nueva.');?></p>
						<form action="<?= Shop::$configuracion->url; ?>recuperar_pass" method="post" class="recuperar_pass_simple">
							<fieldset class="recuperar_pass_capa_input">
								<div class="row">
									<div class="form-group col-xs-12 col-sm-6 col-sm-offset-3">
										<label for="new_password"><?= traducir('Nueva contraseña'); ?>:</label>
										<input type="password" class="input_formulario" autocomplete="new-password" name="new_password" id="new_password" value="" required/>
										<label for="again_new_password"><?= traducir('Repetir nueva contraseña'); ?>:</label>
										<input type="password" class="input_formulario" autocomplete="new-password" name="again_new_password" value="" id="again_new_password" required/>
										<input type="hidden" name="hash" value="<?=$hash;?>"/>
										<input type="hidden" name="user" autocomplete="username"  value="<?=$user;?>"/>
										<?=Module::insertActionController('recuperar_pass', 'updatePassword');?>
										<div class="row row_boton">
											<button type="submit" name="enviar" class="boton" value=""><?= traducir('Actualizar'); ?></button>
										</div>
									</div>
								</div>
							</fieldset>
						</form>
					</div>
					<?php
					}
				}
				//Pase lo que pase, ahora es el momento de limpiar la sesion:
				?>
            </article>
        </div>
    </div>
</section>
<?php
	//Vamos a asegurarnos de que limpiamos de la sesion todo rastro de variable inservible
	Sesion::remove('resultado_recu_pass');
	Sesion::remove('estado_update_password');

?>