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

class User extends MX_Controller
{

	const TOKENPW = 'violet';

	public function __construct()
	{
		parent::__construct();
		$this->load->helper('cookie');
	}
	
	public function profile()
	{
		$user_info = $this->session->userdata('userInfo');
		if ($user_info)
		{
			$user = $user_info['user'];
			$us_id = $user_info['us_id'];
			$src = "SBG";
			$token = md5($us_id.self::TOKENPW);
			$data = $this->get_data($src, $token, $us_id);
			$this->load->view('frontend/user_profile', $data);
			
		}else
		{
			redirect('frontend/home');
		}
	}
	
	private function get_data($src, $token, $us_id)
	{
		$this->load->model('user_model');
		$user = $this->user_model->get_user_info($src, $token, $us_id);
		
		if (strpos($user, '&')){
			parse_str($user);
			$us = $this->user_model->get_user_by_id($us_id);
			$data = array('us_id'=>$us_id, 'username'=>$username, 'fullname'=>$fullname,
						'gender'=>$gender, 'email'=>$email, 'phone'=>$phone, 'school'=>$school, 'province'=>$province,
						'acc_balanced'=>$us['acc_balanced'], 'expire_date'=>$us['expire_date'], 'date_diff'=>$this->dateDiff($us['expire_date'])
					);
			return $data;
		}else
		{
			return "";
		}
	}
	
	private function dateDiff($expire_date)
	{
		$date1 = date("Y-m-d");
		$diff = abs(strtotime($expire_date) - strtotime($date1));
		$years = floor($diff / (365*60*60*24));
		$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
		$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
		if ($years>0){
			return $years." năm, ".$months." tháng, ".$days." ngày còn lại";
		}
		else{
			if ($months>0)
			{
				return  $months." tháng, ".$days." ngày còn lại";
			}
			else
			{
				return $days." ngày còn lại";
			}
		}
		
	}
	
	public function update_user()
	{
		$this->load->helper('email');
		$us_id=$this->uri->segment(4);
		$user_info = $this->session->userdata('userInfo');
		if ($user_info)
		{
			$result = array();
			$result['success'] = 0;
			$src = "SBG";
			$token = md5($us_id.self::TOKENPW);
			$user = $this->get_data($src, $token, $us_id);
			$input = $this->input->post();
			if ($input){
				$input['username'] = $user['username'];
				$input['fullname'] = $user['fullname'];
				$input['password'] = '';
				$input['oldpass'] = '';
				$this->load->model('user_model');
				$result['fullname'] = $input['fullname'];
				if (strlen($input['email'])>0){
					if(!valid_email($input['email']))
					{
						$result['errors']['email_err'] = "Email không đúng định dạng";
					}
				}
				if (!isset($result['errors'])){
					$result['data'] = $this->user_model->update_user($src, $token, $input, $us_id);
					$result['success'] = 1;
				}
				echo json_encode($result);
			}
			
		}else
		{
			redirect('frontend/home');
		}
	}
	
	public function change_password()
	{
		$us_id=$this->uri->segment(4);
		$user_info = $this->session->userdata('userInfo');
		if ($user_info)
		{
			$this->load->model('user_model');
			$us_id = $user_info['us_id'];
			$src = "SBG";
			$token = md5($us_id.self::TOKENPW);
			if (strlen($input['passwd']) == 0)
			{
				$result['errors']['passwd_old_err'] = "Mật khẩu không được để trống !";
			}
			if (strlen($input['passwd_new']) == 0)
			{
				$result['errors']['passwd_new_err'] = "Mật khẩu không được để trống !";
			}else if($input['passwd'] == $input['passwd_new'])
			{
				$result['errors']['passwd_new_err'] = "Mật khẩu trùng với mật khẩu hiện tại !";
			}
			if ($input['passwd_new'] != $input['confirm_passwd_new'])
			{
				$result['errors']['confirm_passwd_new_err'] = "Mật khẩu không trùng nhau !";
			}
			if (!isset($result['errors']))
			{
				$user = array('username'=>$username, 'fullname'=>null,  );
				$data = $this->user_model->update_user($src, $token, $user, $us_id);
				parse_str($data);
				switch($status)
				{
					case 0:
						$result['success'] = 1;
						break;
					case 6:
						$result['errors']['passwd_old_err'] = "Mật khẩu cung cấp không đúng !";
						break;
					default:
						break;
				}
			}
			
			echo json_encode($result);
		}else
		{
			redirect('frontend/home');
		}
	}
}