<?php
include 'common.php';



function UpdateGold_Enchant($dbhandle, $gold_update, $char_uid)
{
	if($gold_update <0) $gold_price = 0;
	
	$update_query = "update character_list set gold=".$gold_update." where character_uid='".$char_uid."'";

	//Query Result
	$result = @mysqli_query($dbhandle,$update_query);
	if($result)
	{
		return true;
	}
	
	return false;
}

function UpdateEnchantStone($dbhandle, $char_uid, $stone_inven_uid, $stone_update_count)
{
	if($stone_update_count >0)
		$query = "update owned_item set count=".$stone_update_count." where owned_item_uid=".$stone_inven_uid." and character_uid='".$char_uid."'";
	else	
		$query = "delete from owned_item where owned_item_uid=".$stone_inven_uid." and character_uid='".$char_uid."'";

	//Query Result
	$result = @mysqli_query($dbhandle,$query);
	if($result)
	{
		return true;
	}
	
	return false;
}




function GetCurrentEnchant($dbhandle, $enchant_item_inven_uid, $char_uid)
{
	$enchant = 0;
	
	
	$stmt = $dbhandle->prepare("select enchant from owned_item where owned_item_uid=? and character_uid=?");	
	$stmt->bind_param("is", $enchant_item_inven_uid, $char_uid);
	$stmt->execute();
	$result = $stmt->get_result();	
	if($result)
	{		
		if($row = $result->fetch_assoc())
		{
			$enchant = $row["enchant"];
			mysqli_stmt_free_result($stmt);
		}
	}
	else{
		$error = mysqli_error($dbhandle);
	}
	
	
	
	return $enchant;
}

function EnchantInvenItem($account_id, $char_uid, $enchant_item_inven_uid, $stone_inven_uid, $stone_update_count,$gold_update, $success, $destroy, $login_key)
{
	$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;
	}
	
	//Check Max Enchant Level
	if(GetCurrentEnchant($dbhandle, $enchant_item_inven_uid, $char_uid) >= 24)
	{
		$response = "ENCHANT_INVEN_ITEM_FAILED";
		$error = "Already Max Enchant";
		
		 $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));
		exit;
	}
	
	$error = "";
	if(UpdateEnchantStone($dbhandle, $char_uid, $stone_inven_uid, $stone_update_count) && UpdateGold_Enchant($dbhandle, $gold_update, $char_uid))
	{
		$response = "UPDATE_STONE_OK&ENCHANT_INVEN_ITEM_FAILED";
		if($success == "true" || $success == "True")
		{
			$update_query = "update owned_item set enchant=enchant+1 where owned_item_uid=".$enchant_item_inven_uid." and character_uid='".$char_uid."'";

			//Query Result
			$result = @mysqli_query($dbhandle,$update_query);			
			$error = "";
			if($result)
			{
				$response = "UPDATE_STONE_OK&ENCHANT_INVEN_ITEM_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);
			}	
		}	
		else if($destroy == "true" || $destroy == "True")
		{
			//$query = "delete from owned_item where owned_item_uid=".$enchant_item_inven_uid." and character_uid='".$char_uid."'";
			$query = "update owned_item set durability=0 where owned_item_uid=".$enchant_item_inven_uid." and character_uid='".$char_uid."'";
			//Query Result
			$result = @mysqli_query($dbhandle,$query);			
			$error = "";
			if($result)
			{
				$response = "UPDATE_STONE_OK&ENCHANT_INVEN_ITEM_FAILED";
				// 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);
			}	
		}
		
			
		
	}
	else
	{
		$response = "UPDATE_STONE_FAILED&ENCHANT_INVEN_ITEM_FAILED";
		$error = "DB Error";
	}
	
	 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));
}




if(CheckValidatedServerIP())
{
	EnchantInvenItem($_GET['account_id'], $_GET['char_uid'], $_GET['enchant_item_inven_uid'], $_GET['stone_inven_uid'], $_GET['stone_update_count'], $_GET['gold_update'], $_GET['success'], $_GET['destroy'], $_GET['login_key']);
}
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	));
}

?>