<?php
class Contact{
	private $cookieid;
	private $userid;
	private $db;
	private $id;
	
	function __construct(){
		global $db, $userid, $cookieid;
		$this->db = $db;
		$this->userid = $userid;
		$this->id = '';
		$this->cookieid = $cookieid;
	}
	
	function setId($id){
		$this->id = $id;
	}
	
	function setTypemessage($code){
		$this->code = $code;
	}
		
	function moveToContact(){
		if (!empty($this->userid)){
					$inserts['dateline']=time();
					$inserts['name'] = $_POST['name'];
					$inserts['typemessage'] = $_POST['messageid'];
					$inserts['email'] =$_POST['email'];
					$inserts['telp'] = $_POST['telp'];
					$inserts['alamat'] = '';					
					$inserts['message'] =$_POST['pesan'];																										
					$this->db->insert('contact',$inserts);	
		}
	}
	
	function deleteMessage(){
		global $db;
		
		if (!empty($this->id)){			
			$db->query("DELETE FROM contact WHERE contact_id='".$this->id."'");			
		}
	}
	
	function getMessageType($mode = ''){
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		$sql = '';
		$datas = array();
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$datas = $this->db->fetch_all("SELECT * FROM messagetype".$sql." ORDER BY messageid");
		
		return $datas;
	}
	
	function searchMessage($keyword,$field,$sortfield,$sortdetail,$getreturn,$page = -1){
		global $db,$general,$contact;
		
		$addlimit = '';
		if ($page > 0){
			$addlimit = ' LIMIT '.($page-1)*$general['showperpageadmin'].','.$general['showperpageadmin'];
		}
		
		$sqls = array();
			
		$fields = 'dateline';
		
		if (isset($keyword)){
			$strinarr = '';
			$groupby = '';

			$arrf7 = array_search('startdate',$field);
			$arrf8 = array_search('enddate',$field);
			if ($arrf7 !== false && $arrf8 !== false){
				$startdate = strtotime($keyword[$arrf7].' 00:00:00');
				$enddate = strtotime($keyword[$arrf8].' 23:59:59');
				if (!empty($startdate) && !empty($enddate)){
					$strinarr = 'dateline >= \''.$this->db->clean($startdate).'\' AND dateline <= \''.$this->db->clean($enddate).'\'';
					array_push($sqls,$strinarr);
				}
			}
			else if ($arrf7 !== false){
				$startdate = strtotime($keyword[$arrf7].' 00:00:00');
				$enddate = strtotime($keyword[$arrf7].' 23:59:59');
				if (!empty($startdate) && !empty($enddate)){
					$strinarr = 'dateline >= \''.$this->db->clean($startdate).'\' AND dateline <= \''.$this->db->clean($enddate).'\'';
					array_push($sqls,$strinarr);
				}
			}
			else if ($arrf8 !== false){
				$startdate = strtotime($keyword[$arrf8].' 00:00:00');
				$enddate = strtotime($keyword[$arrf8].' 23:59:59');
				if (!empty($startdate) && !empty($enddate)){
					$strinarr = 'dateline >= \''.$this->db->clean($startdate).'\' AND dateline <= \''.$this->db->clean($enddate).'\'';
					array_push($sqls,$strinarr);
				}
			}

			$arr2 = array_search('message_id',$field);
			if ($arr2 !== false){
				$strinarr = 'typemessage = \''.$db->clean($keyword[$arr2]).'\'';
				array_push($sqls,$strinarr);
				$fields = 'dateline';
			}
			$arr3 = array_search('name',$field);
			if ($arr3 !== false){
				$strinarr = 'name LIKE (\'%'.$keyword[$arr3].'%\')';
				array_push($sqls,$strinarr);
				$fields = 'dateline';
			}
			$arr4 = array_search('email',$field);
			if ($arr4 !== false){
				$strinarr = 'email LIKE (\''.$keyword[$arr4].'%\')';
				array_push($sqls,$strinarr);
				$fields = 'dateline';
			}
			$arr5 = array_search('telp',$field);
			if ($arr5 !== false){
				$strinarr = 'telp LIKE (\''.$keyword[$arr5].'%\')';
				array_push($sqls,$strinarr);
				$fields = 'dateline';
			}
			$arr6= array_search('message',$field);
			if ($arr6 !== false){
				$strinarr = 'message LIKE (\''.$keyword[$arr6].'%\')';
				array_push($sqls,$strinarr);
				$fields = 'dateline';
			}
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		if ($getreturn == 'data'){
			$orders = 'DESC';
			if (!empty($sortdetail)){
				$orders = $sortdetail;
			}
		
			if (!empty($sortfield)){
				switch ($sortfield){
					case 'sortdateline': $fields = 'dateline'; break;
					case 'sortmessagetype': $fields = 'typemessage_1'; break;
					case 'sortname': $fields = 'name'; break;
					case 'sortemail': $fields = 'email'; break;
					case 'sorttelp': $fields = 'telp'; break;
					case 'sortmessage': $fields = 'message'; break;
					default: $fields = 'dateline'; break;
				}
			}
			
			$dball = $db->fetch_all("SELECT p.*, pr.typemessage_1, pr.messageid FROM contact p INNER JOIN messagetype pr ON p.typemessage = pr.messageid".$sql." ORDER BY ".$fields." ".$orders.$addlimit);
			
			return $dball;
		}
		else if ($getreturn == 'pagenav'){
			$dball = $db->fetch_one("SELECT COUNT(p.contact_id) AS totalrecord FROM contact p INNER JOIN messagetype pr ON p.typemessage = pr.messageid".$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;
		}
	}
}
?>