<?php
include 'common.php';

//wp 저장시 max이상 저장안되게 하기 위해 총 score 구하기
function GetCharacterScoreSum($dbhandle,$char_uid, $server_group_id)
{
	$total = 0;
	
	
	 $strQuery = "select sum(score) from server_battle_field_log where reset=0 and server_group_id=".$server_group_id." and character_uid=".$char_uid;
	if($query_result = mysqli_query($dbhandle, $strQuery))
	{
		$data = mysqli_fetch_row($query_result);
		if(count($data) > 0)
		{			
			$total = $data[0];
			
			mysqli_free_result($query_result); 
		}
	}
	else{
		$total = 0;
	}	
	
	return $total;
}

function UpdateCharacterWP($dbhandle, $char_uid, $score, $server_group_id)
{
		
	
	$query = "update character_list set wp=wp+".$score." where server_group_id=".$server_group_id." and character_uid=".$char_uid;
	
	
	
	//Query Result
	$result = @mysqli_query($dbhandle,$query);
	if($result)
	{
		// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
		//mysqli_free_result($result); 
		return true;
	}
	else
	{
		// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
		//mysqli_free_result($result); 
		return false;
	}
	
}


function GetServerTotalScore($dbhandle,$server_group_id)
{
	$total = 0;
	
	
	//$strQuery = "select sum(score) from server_battle_field_log where reset=0 and server_group_id=".$server_group_id;
	//같은 진영은 통합
	$strQuery = "select sum(score) from server_battle_field_log where reset=0";
	if($query_result = mysqli_query($dbhandle, $strQuery))
	{
		$data = mysqli_fetch_row($query_result);
		if(count($data) > 0)
		{			
			$total = $data[0];
			
			mysqli_free_result($query_result); 
		}
	}
	else{
		$total = 0;
	}	
	
	return $total;
}

function ServerBattleFieldLog($char_uid, $server_group_id, $zone_id, $score)
{
	$dbhandle = DB_Connect();
	//Select DB
	$db_selected = mysqli_select_db($dbhandle, DB_NAME)
	or die("Could not select db");
	
	
	
	$response = "BATTLE_LOG_FAILED";
	$error = "";
	
	
	$now = new DateTime();
	$now->setTimezone(new DateTimeZone('UTC'));
	$logTime =  date_format($now, "Y-m-d H:i:s");

	$can_save_score_day = false;
	$yoil = array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
    $day_now =  date_format($now, "Y-m-d");		
	$dayOfWeek = $yoil[date('w', strtotime($day_now))];
	
	if($zone_id == 102 && $dayOfWeek == "Wednesday")
	{
		
		$can_save_score_day = true;
		
	}
	else if($zone_id == 103 && $dayOfWeek == "Saturday")
	{
		$can_save_score_day = true;
	}
	else
	{
		$can_save_score_day = false;
	}
	
	
		
	$can_save_score_time = false;	
	$now_hour = date_format($now, "H:i:s");
	//기간체크
	$time_now = strtotime($now_hour);
	$battle_start = strtotime('21:00:00');
	$battle_end = strtotime('23:59:59');	
	
	
	//if($lang == 'th')
	//{
	//	$battle_start = strtotime('19:00:00');
	//	$battle_end = strtotime('21:59:59');
	//}
	
	if($time_now >= $battle_start &&  $time_now <= $battle_end)
	{
		$can_save_score_time = true;
	}
	
	
    if($can_save_score_time && $can_save_score_day)
	{
		$query = "insert into server_battle_field_log (character_uid,server_group_id, zone_id, score, log_time) values(".$char_uid .", ".$server_group_id.", ".$zone_id.",".$score.",'".$logTime."')";
	
	

		//Query Result
		$result = @mysqli_query($dbhandle,$query);
		
		if($result)
		{
			$response = "BATTLE_LOG_OK";
			// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
			//mysqli_free_result($result); 
		}
		else
		{
			$error = mysqli_error($dbhandle);
		}
		
		
		
		$server_total_score = GetServerTotalScore($dbhandle,$server_group_id);
		
		$score_sum = GetCharacterScoreSum($dbhandle,$char_uid, $server_group_id);
		$error = $score_sum;//test
		$wp = 0;
		if($score_sum <= 100)
		{
			$wp =$score;
			
			UpdateCharacterWP($dbhandle,$char_uid,$score, $server_group_id);
			
			
		}
		
		
	 
		$isXmlHttpRequest = (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) ?
		(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') ? true : false: false;
		($isXmlHttpRequest) ? header('Content-type: application/json') : header('Content-type: text/plain');
	 
		echo json_encode(array('result'=>$response,  'error'=>$error, 'server_group_id'=>$server_group_id, 'server_total_score'=>$server_total_score, 'wp'=>$wp));
	}
	else
	{
		$response = "BATTLE_LOG_FAILED";
		$error = $now_hour . " " . $dayOfWeek . "(zone id: " . $zone_id . ")";
		$wp = 0;
		$server_total_score = 0;
		$isXmlHttpRequest = (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) ?
		(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') ? true : false: false;
		($isXmlHttpRequest) ? header('Content-type: application/json') : header('Content-type: text/plain');
	 
		echo json_encode(array('result'=>$response,  'error'=>$error, 'server_group_id'=>$server_group_id, 'server_total_score'=>$server_total_score, 'wp'=>$wp));
	}
	
	
	
	
	 mysqli_close($dbhandle);
}

ServerBattleFieldLog($_GET['char_uid'], $_GET['server_group_id'], $_GET['zone_id'], $_GET['score']);

?>