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

class Ayudas extends CI_Controller {

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

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

	/**
	 * Muestra la lista de SubCategorias y ayudas de la categoría
	 */
	public function categoria($idCategoria = 0) {
		$data['idCategoria'] = $idCategoria;
		$data['categorias'] = $this->Ayuda->categorias($idCategoria);

		$data['categoria'] = $this->Ayuda->info_categoria($idCategoria);

		if ($idCategoria != 0) {
			$data['ayudas'] = $this->Ayuda->ayudas($idCategoria);
		}

		$data['lista_categorias'] = $this->Ayuda->lista_categorias();
		
		$data['linkActivo']['section'] = 'Ayuda';
		if (empty($idCategoria)) {
			$data['linkActivo']['activo'] = 'Inicio';
		}
		else {
			if ($data['categoria']['id_categoria'] == 0) {
				$data['linkActivo']['activo'] = $data['categoria']['nombre'];
			}
			else {
				$data['linkActivo']['activo'] = $data['lista_categorias'][$data['categoria']['id_categoria']]['nombre'];
			}
		}

		$data['title'] = 'Ayudas';
		$data['content'] = $this->load->view('ayudas/categoria', $data , true);
		$this->load->view('default', $data);
	}
	
	/**
	 * Muestra El detalle de una ayuda
	 */
	public function detalle($idAyuda) {
		$data['ayuda'] = $this->Ayuda->detalle($idAyuda);

		$data['categoria'] = $this->Ayuda->info_categoria($data['ayuda']['id_categoria']);
		$data['lista_categorias'] = $this->Ayuda->lista_categorias();

		$data['linkActivo']['section'] = 'Ayuda';

		if ($data['categoria']['id_categoria'] == 0) {
			$data['linkActivo']['activo'] = $data['categoria']['nombre'];
		}
		else {
			$data['linkActivo']['activo'] = $data['lista_categorias'][$data['categoria']['id_categoria']]['nombre'];
		}

		$data['title'] = 'Ayudas';
		$data['content'] = $this->load->view('ayudas/detalle', $data , true);
		$this->load->view('default', $data);
	}

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

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

	/**
	 * Retorna la información de un artículo de ayuda
	 */
	public function info() {
		// Si no se recibe un id retorna error
		if ($this->input->post_get('id')) {
			$result['ayuda'] = $this->Ayuda->detalle($this->input->post_get('id'));
			$result['status'] = 'success';
		}
		else {
			$result['status'] = 'error';
			$result['message'] = 'No se recibe id';
		}

		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 artículo';
			}

			if (empty($errors)) {
				$data = $this->input->post();
				if (empty($data['id'])) {
					$data['id_usuario'] = $_SESSION['usuario']['id'];
				}
				$result['id'] = $this->Ayuda->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 guardar_categoria() {
		if (!empty($this->input->post())) {
			if (empty($this->input->post('nombre'))) {
				$errors[] = 'Debes indicar el nombre';
			}

			if (empty($errors)) {
				$data = $this->input->post();
				$result['id'] = $this->Ayuda->guardar_categoria($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_categoria() {
		if ($this->input->post('id')) {
			$data['id'] = $this->input->post('id');
			$data['deleted'] = 1;

			$result['id'] = $this->Ayuda->guardar_categoria($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 1200x1200, si es mayor redimensiona
	 */

	 public function cargar_imagen() {
		$imageInfo = getimagesize($_FILES['file']['tmp_name']);
		$mime = $imageInfo['mime'];

		$subidas = 'img/subidas/ayudas/' . date('Ym') . '/';
		if (!file_exists(FCPATH . 'img/subidas/ayudas/' . date('Ym'))) {
			mkdir(FCPATH . 'img/subidas/ayudas/' . 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);
	}

}