<?php
include 'common.php';


function CreateItem($dbhandle,$char_uid,$group_item_id, $group_item_count, $group_item_type, $group_item_overlap)
{
	$split = ",";

	$arrItems = explode($split,$group_item_id);
	$arrItemCounts = explode($split,$group_item_count);
	$arrItemTypes = explode($split,$group_item_type);
	$arrItemOverlap = explode($split, $group_item_overlap);

	$query = "";
	for($i=0;$i< sizeof($arrItems);$i++)
	{
		$query = "INSERT INTO owned_item (character_uid, item_uid, count, is_equiped, parts_type) VALUES (".$char_uid.",".$arrItems[$i].",".$arrItemCounts[$i].",0,".$arrItemTypes[$i]." )";
		if(AlreadyExistsItem($dbhandle, $char_uid, $arrItems[$i] ))
		{
			if ($arrItemOverlap[$i] === "1")
			{
				$query = "UPDATE owned_item set count=count+".$arrItemCounts[$i]." where character_uid=".$char_uid." and item_uid=".$arrItems[$i];
			}
		}
		
		$result = @mysqli_query($dbhandle,$query);
		if($result != 1)
		{		
			return false;
		}
	}
	
	return true;
}

function DeleteCharacterMail($dbhandle, $group_mail_id)
{
	$split = ",";
	$arrMailIds = explode($split, $group_mail_id);
	for($i=0;$i< sizeof($arrMailIds);$i++)
	{
		//Check Mail
		$stmt = $dbhandle->prepare("select count(*) as cnt from mail_box_character where id=?");	
		$stmt->bind_param("i", $arrMailIds[$i]);
		$stmt->execute();
		$result = $stmt->get_result();
		$num = $result->fetch_assoc();
		
		mysqli_stmt_free_result($stmt);
		
		if($num["cnt"] <= 0)
		{
			return false;
		}
	}
	for($i=0;$i< sizeof($arrMailIds);$i++)
	{
		//Delete Mail
		$query = "DELETE from mail_box_character where id=".$arrMailIds[$i];
		$result = @mysqli_query($dbhandle,$query);
		if($result != 1)
		{		
			return false;
		}	
	}
	return true;
}

function ReceiveCharacterMail($char_uid, $account_id, $login_key, $group_mail_id, $group_item_id, $group_item_count, $group_item_type, $group_item_overlap)
{
	$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();
		mysqli_close($dbhandle);
		return;
	}
	
	
	$response = "RECEIVE_MAIL_FAILED";
	$error = "";

	$deleteResult = DeleteCharacterMail($dbhandle, $group_mail_id);
	if ($deleteResult) 
	{
		$create_item = CreateItem($dbhandle, $char_uid, $group_item_id, $group_item_count, $group_item_type, $group_item_overlap);
	
		if ($create_item)
		{
			$response = "RECEIVE_MAIL_OK";
		}
		else 
		{
			$error = "Create Items Failed.";
		}
	}
	else
	{
		$error = "Check your mail. Click the refresh button.";
	}

	
	
	 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,'list_mail_id'=>$group_mail_id));
}

$json = json_decode(file_get_contents('php://input'));
$character_id = $json->character_uid;
$account_id = $json->account_id;
$login_key = $json->login_key;
$group_mail_id = $json->group_mail_id;
$group_item_id = $json->group_item_id;
$group_item_count = $json->group_item_count;
$group_item_type = $json->group_item_type;
$group_item_overlap = $json->group_item_overlap;



if(CheckValidatedServerIP())
{
	ReceiveCharacterMail($character_id, $account_id, $login_key, $group_mail_id, $group_item_id, $group_item_count, $group_item_type, $group_item_overlap);
}
else
{
	$response = "INVALIDATED_SERVER";
	$error = "CheckValidatedServerIP ERROR";
	$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	));
}

?>