<?php
defined('_JEXEC') or die("Access Deny");
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
class ISTRealtyModelFlat extends JModelAdmin{

	public function getForm($data = array(), $loadData = true){

		$form = $this->loadForm(
			$this->option.'.'.$this->name,
			$this->getName(),
			array('control' => 'jform', 'load_data' => $loadData)
			);

		if (empty($form))
		{
			return false;
		}
		return $form;
	}


	public function getItem($pk = null){
		if($result = parent::getItem($pk)){

			$tz = new DateTimeZone(JFactory::getApplication()->getCfg('offset'));

			if(intval($result->created_time)){
				$date = new JDate($result->created_time);
				$date->setTimezone($tz);
				$result->modified_time = $date->toSQL(true);
			}
			else{
				$result->created_time = null;
			}
			if(intval($result->modified_time)){
				$date = new JDate($result->modified_time);
				$date->setTimezone($tz);
				$result->modified_time = $date->toSQL(true);
			}
			else{
				$result->modified_time = null;
			}
		}
		return $result;
	}

	public function getRecorderConditions($table = null){
		$condition = array(
			'category_id = '.(int)$table->category_id
			);
		return $condition;
	}

	public function getTable($type = 'Flat', $prefix = 'ISTRealtyTable', $config = array()){
		return JTable::getInstance($type, $prefix, $config);
	}
	protected function loadFormData()
	{
		$data = JFactory::getApplication()->getUserState($this->option . '.edit.' . $this->getName() . '.data', array());
	
		if (empty($data))
		{
			$data = $this->getItem();
		}
	
		if (!is_array($data->service))
		{
			$data->service = explode(',', $data->service);
		}
	
		return $data;
	}

	protected function prepareTable($table){
		$table->alias = JFilterOutput::stringURLSafe($table->title);

		if(empty($table->alias)){
			$table->alias = JFilterOutput::stringURLSafe($table->title);
		}

		if(empty($table->id)){
			if(empty($table->ordering)){
				$db = JFactory::getDBO();
				$query = $db->getQuery(true);
				$query->select('MAX(ordering)');
				$query->from('#__a_flat');
				$query->where('id = '.(int)$table->id);

				$max = (int)$db->setQuery($query)->loadResult();

				if($error = $db->getErrorMsg()){
					$this->setError($error);
					return false;
				}
				$table->ordering = $max + 1;
			}
		}

		if(!empty($this->metakey)){
			$strip = array("\n", "\r", '"', '<', '>');
			$clean = str_ireplace($strip, ' ', $this->metakey);
			$oldKeys = explode(',', $clean);
			$newKeys = array();

			foreach($oldKeys as $key){
				if(trim($key))
					$newKeys[] = trim($key);
			}

			$this->metakey = implode(', ', $newKeys);
		}
		
	}
}
