<?php
include 'common.php';


function GetGuildUid($dbhandle, $character_uid)
{
	$stmt = $dbhandle->prepare("SELECT * FROM guild_member WHERE character_uid=? AND is_deport=0");
	$stmt->bind_param("i", $character_uid);
	$stmt->execute();
	$result = $stmt->get_result();

	if ($result)
	{
		if($row = $result->fetch_assoc())
		{
			return $row["guild_uid"];
		}
		else
		{
			return -1;
		}
	}
	else
	{
		return -1;
	}
}
function SumGuildBP($dbhandle, $guild_uid)
{
	$stmt = $dbhandle->prepare("SELECT SUM(b.bp) FROM guild_member AS a INNER JOIN character_list AS b ON a.character_uid = b.character_uid WHERE a.guild_uid=? AND a.is_deport=0");
	$stmt->bind_param("i", $guild_uid);
	$stmt->execute();
	$result = $stmt->get_result();

	if ($result)
	{
		if($row = $result->fetch_assoc())
		{
			$guild_bp = $row["SUM(b.bp)"];
			if (isset($guild_bp))
			{
				SetGuildBP($dbhandle, $guild_uid, $guild_bp);
			}
		}
	}
}
function SetGuildBP($dbhandle, $guild_uid, $guild_bp)
{
	$stmt = $dbhandle->prepare("UPDATE guild_info SET guild_bp=? WHERE guild_uid=?");
	$stmt->bind_param("ii", $guild_bp, $guild_uid);
	$result = $stmt->execute();
	$stmt->close();
			
	if($result)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function UpdateGuildBP($dbhandle, $char_uid)
{
	$guild_uid = GetGuildUid($dbhandle, $char_uid);
	if ($guild_uid != -1)
	{
		SumGuildBP($dbhandle, $guild_uid);
	}
}

function UpdateBattlePower($account_id, $char_uid, $login_key, $bp)
{
	$dbhandle = DB_Connect();
	//Select DB
	$db_selected = mysqli_select_db($dbhandle, DB_NAME)
	or die("Could not select db");
	
	
	//if(!CheckLoginKey($dbhandle, $account_id, $login_key))
//	{
	//	PrintLoginKeyError();
		//return;
	//}
	
	
	$update_query = "update character_list set bp=".$bp." where user_id='".$account_id."' and character_uid=".$char_uid;
		
	
	

	//Query Result
	$result = @mysqli_query($dbhandle,$update_query);
	$response = "REPORT_BP_FAILED";
	$error = "";
	if($result)
	{
		UpdateGuildBP($dbhandle, $char_uid);
		$response = "REPORT_BP_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);
	}
		
	
	 mysqli_close($dbhandle);
 
    $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));
}

$json = json_decode(file_get_contents('php://input'));
$account_id = $json->account_id;
$char_uid = $json->char_uid;
$login_key = $json->login_key;
$bp = $json->bp;
$checksum = $json->checksum;
		
//if(CheckSum($account_id,$bp,$checksum))
//{
	UpdateBattlePower($account_id, $char_uid, $login_key, $bp);
//}



	

?>