<?php
require_once($prefix.'assets/php/common/session_dao.php');
require_once($prefix.'assets/php/common/session.php');
require_once($prefix.'assets/php/form.php');
	
//Receive data from froms and prepare the correct response
class FormSession extends Form {

    //Constructor:
    public function __construct() {
        parent::__construct('formSession');
    }
	
	//TODO Edit session no funciona correctamente con el seleccionar una pelicula distinta, hay que guardar la id de la sesion de alguna forma y usarla o guardar en la sesion
	public static function generaCampoFormulario($data, $errores = array()){
		
		$cinema = $data['cinema'] ?? '';
		$film = $data['film'] ?? '';
		$hall = $data['hall'] ?? '';
		$date = $data['date'] ?? '';
		$start = $data['start'] ?? '';
		$price = $data['price'] ?? '';
		$format = $data['format'] ?? '';
		
		$htmlform .= '<div class="column left">
				<form method="post" id="'.$data['option'].'" action="./includes/processForm.php"\>
					<fieldset>
						<legend>Datos</legend>
						<input type="number" step="0.01" name="price" value="'.$price.'" min="0" placeholder="Precio de la entrada" required/> <br>
						<input type="text" name="format" value="'.$format.'" placeholder="Formato de pelicula" required/> <br>
						<input type="hidden" name="film" value="'.$film["idfilm"].'"/> 
						<select name="hall" class="button large">';
		foreach(Hall::getListHalls($cinema) as $hll){
				if($hll->getNumber() == $hall){
					$htmlform.= '
							<option value="'. $hll->getNumber() .'"selected> Sala '. $hll->getNumber() .'</option> ';
				}else{ 
					$htmlform.= '
							<option value="'. $hll->getNumber() .'"> Sala '. $hll->getNumber() .'</option>';
				}
			}
		$htmlform.= '
						</select>
					</fieldset>
					<fieldset>
						<legend>Horario</legend>
						<input type="time" name="start" value="'.$start.'" placeholder="Hora de inicio" required/> <br>
						<input type="date" name="date" value="'.$date.'" placeholder="Fecha de inicio" required/> <br>
					</fieldset>
						';		
		if($film){
			if($data['option'] == "new_session")
				$htmlform .= '<input type="number" name="repeat" value="" min="0" title="Añadir esta sesion durante los proximos X dias" min="0" max="31" placeholder="Añadir X dias"/> <br>
				<button type="submit" name="new_session" class="button large">Crear</button><br>';
				
			if($data['option'] == "edit_session"){
				if(!$_SESSION["or_hall"]) $_SESSION["or_hall"] = $hall;
				if(!$_SESSION["or_date"]) $_SESSION["or_date"] = $date;
				if(!$_SESSION["or_start"])$_SESSION["or_start"] = $start;
				
				$htmlform .= '
				<button type="submit" name="edit_session" class="button large">Editar</button><br>
				<button type="submit" name="delete_session" class="primary">Borrar</button><br>';
			}
		}
		$htmlform .= "
		<input type='reset' value='Limpiar Campos' >
				</form>
				</div>
				<div class='column side'>";
				if($film["tittle"]){
					$htmlform .= " <section id='".$film["tittle"]."'>
                                <div class='code showtimes'>
                                    <div class='image'><img src='../img/".$film["tittle"].".jpg' alt='".$film["tittle"]."' /></div>
                                    <h2>".str_replace('_', ' ',$film["tittle"])."</h2>
                                    <hr />
                                    <div class='blockquote'>
                                        <p>".$film["description"]."</p>
                                    </div>
                                    <p>Duración: ".$film["duration"]." minutos</p>
                                </div>
                        </section>
";
				}
				$htmlform .= '<button type="submit" name="select_films" form="'.$data['option'].'" formaction="?state=select_film&option='.$data['option'].'" class="button large">Seleccionar una Pelicula</button><br>
				</div>
';
		return $htmlform;	
	}
    //Methods:

    //Process form:
    public static function processesForm($data){
		if($data["option"] == "new_session"){
			$_SESSION['msg'] = Session::create_session($data);
			header( "Location: ../?state=success" );
		}else if($data["option"] == "edit_session"){
			$_SESSION['msg'] = Session::edit_session($data);
			header( "Location: ../?state=success" );
		}
		else if($data["option"] == "delete_session") {
			$_SESSION['msg'] = Session::delete_session($data);
			header( "Location: ../?state=success" );
		}			
    }
}

?>