<?php
class BannerHome{
	private $id;
	private $position;
	private $db;
	private $nwtm;
	private $userid;
	private $categoryid;
	
	function BannerHome(){
		global $db, $nwtm, $userid;
		$this->id = '';
		$this->position = '';
		$this->categoryid = '';
		$this->db = $db;
		$this->nwtm = $nwtm;
		$this->userid = $userid;
	}
	
	function setId($id){
		$this->id = $this->db->clean($id);
	}
	
	function setPosition($position){
		$this->position = $this->db->clean($position);
	}
	
	function setCategoryid($categoryid){
		$this->categoryid = $this->db->clean($categoryid);
	}
	
	function getAllHeader($mode = ''){
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'banner_home_status = 1');
		}
		if (!empty($this->position)){
			array_push($sqls,'banner_home_position = \''.$this->position.'\'');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$data = $this->db->fetch_all("SELECT * FROM banner_home".$sql." ORDER BY banner_home_order");
		
		return $data;
	}
	
	function getAllHeaderTop($mode = ''){
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'banner_home_status = 1');
		}
		if (!empty($this->categoryid)){
			array_push($sqls,'categoryid = \''.$this->categoryid.'\'');
		}
		if (!empty($this->position)){
			array_push($sqls,'banner_home_position = \''.$this->position.'\'');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$data = $this->db->fetch_all("SELECT * FROM banner_home".$sql." ORDER BY banner_home_order");
		return $data;
	}

	function getBannerHomeDetail(){
		$sqls = array();
		$dbdata = array();
		if (!empty($this->id)){
			array_push($sqls,'banner_home_id = \''.$this->id.'\'');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbdata = $this->db->fetch_one("SELECT * FROM banner_home".$sql);

		return $dbdata;
	}
	
	function getLastOrder(){
		if (!empty($this->position)){
			$lastorder = $this->db->fetch_one("SELECT banner_home_order FROM banner_home WHERE banner_home_position = '".$this->db->clean($this->position)."' ORDER BY banner_home_order DESC LIMIT 1");
			if (!empty($lastorder['banner_home_order'])){
				return $lastorder['banner_home_order'] + 1;
			}
		}
		return 1;
	}
	
	function saveBannerHome($position,$filesname,$categoryid,$link,$linktarget,$hover,$status){
		$this->position = $position;
		$inserts['banner_home_position'] = $position;
		$inserts['banner_home_image'] = $filesname;
		$inserts['categoryid'] = $categoryid;
		$inserts['banner_home_image_link'] = $link;
		$inserts['banner_home_link_target'] = $linktarget;
		$inserts['banner_hover'] = $hover;
		$inserts['banner_home_order'] = $this->getLastOrder();
		$inserts['banner_home_status'] = $status;
		$inserts['createddate'] = $this->nwtm;
		$inserts['createdby'] = $this->userid;
		$inserts['lastediteddate'] = $this->nwtm;
		$inserts['lasteditedby'] = $this->userid;
		$lastid = $this->db->insert("banner_home",$inserts);
		return $lastid;
	}
	
	function updateBannerHome($position,$filesname,$categoryid,$link,$linktarget,$hover,$status){
		if (!empty($this->id)){
			$oldposition = $this->getBannerHomeDetail();
			if ($oldposition['banner_home_position'] != $position){
				$this->position = $position;
				$updates['banner_home_order'] = $this->getLastOrder();
			}
			
			$updates['banner_home_position'] = $position;
			$updates['banner_home_image'] = $filesname;
			$updates['categoryid'] = $categoryid;
			$updates['banner_home_image_link'] = $link;
			$updates['banner_home_link_target'] = $linktarget;
			$updates['banner_hover'] = $hover;
			$updates['banner_home_status'] = $status;
			$updates['lastediteddate'] = $this->nwtm;
			$updates['lasteditedby'] = $this->userid;
			$this->db->update("banner_home",$updates,"banner_home_id='".$this->id."'");
		}
	}
	
	function deleteBannerHome(){
		global $db;
		if (!empty($this->id)){
			$this->db->query("DELETE from banner_home WHERE banner_home_id='".$this->id."'");
		}
	}
	
	function searchBannerHome($keyword,$field,$sortfield,$sortdetail,$getreturn,$page = -1){
		global $general;
	
		$addlimit = '';
		if ($page > 0){
			$addlimit = ' LIMIT '.($page-1)*$general['showperpageadmin'].','.$general['showperpageadmin'];
		}
		
		$sqls = array();
			
		$fields = 'banner_home_order';
		
		if (isset($keyword)){
			$strinarr = '';
			$groupby = '';
			
			$arr1 = array_search('banner_home_id',$field);
			if ($arr1 !== false){
				$strinarr = 'banner_home_id LIKE (\'%'.$this->db->clean($keyword[$arr1]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr2 = array_search('banner_home_image',$field);
			if ($arr2 !== false){
				$strinarr = 'banner_home_image LIKE (\'%'.$this->db->clean($keyword[$arr2]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr3 = array_search('banner_home_image_link',$field);
			if ($arr3 !== false){
				$strinarr = 'banner_home_image_link LIKE (\'%'.$this->db->clean($keyword[$arr3]).'%\')';
				array_push($sqls,$strinarr);
			}
			$arr4 = array_search('banner_home_status',$field);
			if ($arr4 !== false){
				$strinarr = 'banner_home_status = \''.$this->db->clean($keyword[$arr4]).'\'';
				array_push($sqls,$strinarr);
			}
			$arr5 = array_search('banner_home_position',$field);
			if ($arr5 !== false){
				$strinarr = 'banner_home_position = \''.$this->db->clean($keyword[$arr5]).'\'';
				array_push($sqls,$strinarr);
			}
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		$sortfield = empty($sortfield)?'':$sortfield;
		
		if ($getreturn == 'data'){
			$orders = 'ASC';
			if (!empty($sortdetail)){
				$orders = $sortdetail;
			}
		
			switch ($sortfield){
				case 'sortbannerhomeid': $fields = 'banner_home_id'; break;
				case 'sortbannerhomeimage': $fields = 'banner_home_image'; break;
				case 'sortbannerhomeimagelink': $fields = 'banner_home_image_link'; break;
				case 'sortbannerhomeorder': $fields = 'banner_home_order'; break;
				case 'sortbannerhomestatus': $fields = 'banner_home_status'; break;
				default: $fields = 'banner_home_position, banner_home_order'; break;
			}
			
			$dball = $this->db->fetch_all("SELECT * FROM banner_home ".$sql." ORDER BY ".$fields." ".$orders.$addlimit);
			
			return $dball;
		}
		else if ($getreturn == 'totaldata'){
			$dball = $this->db->fetch_one("SELECT COUNT(banner_home_id) AS totalitem FROM banner_home".$sql);
			
			return $dball;
		}
		else if ($getreturn == 'pagenav'){
			$dball = $this->db->fetch_one("SELECT COUNT(banner_home_id) AS totalrecord FROM banner_home".$sql);
			
			if ($dball['totalrecord'] > 0){
				$totalrecord = $dball['totalrecord'];
				$totalpage = ceil($totalrecord / $general['showperpageadmin']);
				$page = handlepage($page,$totalpage);
				$startrecord = ($page - 1) * $general['showperpageadmin'] + 1;
				$endrecord = $startrecord + $general['showperpageadmin'] - 1;
				if ($endrecord > $totalrecord){
					$endrecord = $totalrecord;
				}
			}
			else{
				$page = 0;
				$totalrecord = 0;
				$totalpage = 0;
				$startrecord = 0;
				$endrecord = 0;
			}
			
			return $page.'|^|'.$totalrecord.'|^|'.$totalpage.'|^|'.$startrecord.'|^|'.$endrecord;
		}
	}
}
?>