<?php
class ControllerCommonCity extends Controller {
	public function index() {
		$this->load->model('localisation/zone');

		$country_id = $this->config->get('config_country_id');

		$zones = $this->model_localisation_zone->getZonesByCountryId($country_id);

		$current_zone_id = isset($this->session->data['city_id']) ? (int)$this->session->data['city_id'] : (int)$this->config->get('config_zone_id');

		$data['zones'] = array();

		foreach ($zones as $zone) {
			$data['zones'][] = array(
				'zone_id' => $zone['zone_id'],
				'name'    => $zone['name'],
				'active'  => ($zone['zone_id'] == $current_zone_id),
			);
		}

		$data['action'] = $this->url->link('common/city/save', '', true);

		$this->response->setOutput($this->load->view('common/city_list', $data));
	}

	public function save() {
		$json = array();

		if (isset($this->request->post['city_id'])) {
			$this->load->model('localisation/zone');

			$zone = $this->model_localisation_zone->getZone((int)$this->request->post['city_id']);

			if (!$zone || (int)$zone['country_id'] !== (int)$this->config->get('config_country_id')) {
				$json['success'] = false;

				$this->response->addHeader('Content-Type: application/json');
				$this->response->setOutput(json_encode($json));

				return;
			}

			$this->session->data['city_id'] = (int)$zone['zone_id'];
			$json['success'] = true;
			$json['name'] = $zone['name'];
			$json['redirect'] = $this->model_localisation_zone->getZoneUrl($zone['zone_id'], isset($this->request->post['redirect']) ? $this->request->post['redirect'] : $this->url->link('common/home'));
		} else {
			$json['success'] = false;
		}

		$this->response->addHeader('Content-Type: application/json');
		$this->response->setOutput(json_encode($json));
	}
}
