<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Anuncios extends CI_Controller {

	public function __construct() {
		parent::__construct();
		if (!$this->Usuario->try()) {
			redirect('login');
		}

		// Load database
		$this->load->model('Anuncio_model', 'Anuncio', true);
	}

	/**
	 * Muestra la lista de anuncios.
	 */
	public function index() {
		$data['anuncios'] = $this->Anuncio->listado($_SESSION['usuario']['id']);
		$data = $this->Anuncio->datos_globales($data);

		$data['title'] = 'Anuncios';
		$data['content'] = $this->load->view('anuncios/index', $data , true);
		$this->load->view('default', $data);
	}


	/**
	 * Retorna la información de un anuncio por json
	 */
	public function info() {
		// Si no se recibe un id retorna error
		if ($this->input->post_get('id')) {
			$result['anuncio'] = $this->Anuncio->info($this->input->post_get('id'));
			$result['status'] = 'success';
		}
		else {
			$result['status'] = 'error';
			$result['message'] = 'No se recibe id de tarea';
		}

		header('Content-type: application/json');
		echo json_encode($result);
	}

	/**
	 * Guarda datos de una tarea nueva o editada
	 */
	public function guardar() {
		if (!empty($this->input->post())) {
			if (empty($this->input->post('titulo'))) {
				$errors[] = 'Debes indicar el título';
			}
			if (empty($this->input->post('contenido'))) {
				$errors[] = 'Debes asignar un contenido al anuncio';
			}

			if (empty($errors)) {
				$data = $this->input->post();
				if (empty($data['id'])) {
					$data['id_usuario'] = $_SESSION['usuario']['id'];
				}
				$result['id'] = $this->Anuncio->guardar($data);
				$result['status'] = 'success';
			} else {
				// Retornar error
				$result['status'] = 'error';
				$result['message'] = implode('<br />', $errors);
			}

			header('Content-type: application/json');
			echo json_encode($result);
		}
	}

	public function eliminar() {
		if ($this->input->post('id')) {
			$data['id'] = $this->input->post('id');
			$data['deleted'] = 1;

			$result['id'] = $this->Anuncio->guardar($data);
			$result['status'] = 'success';
		} else {
			// Retornar error
			$result['status'] = 'error';
			$result['message'] = 'No se recibieron los datos necesarios';
		}

		header('Content-type: application/json');
		echo json_encode($result);
	}

	public function ver() {
		if ($this->input->post('id')) {
			$data['id_anuncio'] = $this->input->post('id');
			$data['id_usuario'] = $_SESSION['usuario']['id'];

			$result = $this->Anuncio->ver($data);
			$result['status'] = 'success';
		} else {
			// Retornar error
			$result['status'] = 'error';
			$result['message'] = 'No se recibieron los datos necesarios';
		}

		header('Content-type: application/json');
		echo json_encode($result);
	}

	public function leer() {
		if ($this->input->post('id')) {
			$data['id_anuncio'] = $this->input->post('id');
			$data['id_usuario'] = $_SESSION['usuario']['id'];

			$result['id'] = $this->Anuncio->leer($data);
			$result['status'] = 'success';
		} else {
			// Retornar error
			$result['status'] = 'error';
			$result['message'] = 'No se recibieron los datos necesarios';
		}

		header('Content-type: application/json');
		echo json_encode($result);
	}


	/**
	 * Carga Imagen desde tinymce
	 * Tamaño máximo 800x800, si es mayor redimensiona
	 */
	public function cargar_imagen() {
		$imageInfo = getimagesize($_FILES['file']['tmp_name']);
		$mime = $imageInfo['mime'];

		$subidas = 'img/subidas/anuncios/' . date('Ym') . '/';
		if (!file_exists(FCPATH . 'img/subidas/anuncios/' . date('Ym'))) {
			mkdir(FCPATH . 'img/subidas/anuncios/' . date('Ym'), 0777, true);
		}

		$archivo = FCPATH . $subidas . basename($_FILES['file']['name']);

		$imagenFinal = resize_image($_FILES['file']['tmp_name'], 1200, 1200);
		$archivoFinal = save_image($imagenFinal, $archivo, $mime);

		if ($archivoFinal) {
			$result['location'] = str_replace(FCPATH, '', $archivoFinal);
		} else {
			$result['error'] = 'error';
		}

		header('Content-type: application/json');
		echo json_encode($result);
	}

}