<?php
include 'common.php';


function AlreadyExistsOwnedTransforming($dbhandle,$char_uid, $transforming_uid)
{
	$strQuery = "select count(*) from owned_transforming where character_uid=".$char_uid." and transforming_uid=".$transforming_uid;
	if($query_result = mysqli_query($dbhandle, $strQuery)){
		$data = mysqli_fetch_row($query_result);
		if( $data[0] > 0 )
		{
			return true;
		}
	}
	
	return false;
}


function SaveOwnedTransforming($account_id, $char_uid, $transforming_uid,  $card_inven_uid, $card_update_count, $gold_update, $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;
	}
	
	
	
	$response = "SAVE_OWNED_TRANSFORMING_FAILED";
	
	if(AlreadyExistsOwnedTransforming($dbhandle, $char_uid, $transforming_uid))
	{
		$response = "SAVE_OWNED_TRANSFORMING_FAILED";
		$error = "AlreadyExistsOwnedTransforming";
	}
	else
	{
		$gold = "";
		
		if(UpdatePetCardCount($dbhandle, $char_uid, $card_inven_uid, $card_update_count )&& UpdateGold($dbhandle, $gold_update, $char_uid))
		{
			$insert_query = "INSERT INTO owned_transforming (character_uid, transforming_uid, level) VALUES (".$char_uid.",".$transforming_uid.", 1)";

			//Query Result
			$result = @mysqli_query($dbhandle,$insert_query);
			$response = "SAVE_OWNED_TRANSFORMING_FAILED";
			$error = "";
			if($result)
			{
				$response = "SAVE_OWNED_TRANSFORMING_OK";
				$gold = $gold_update;
				// 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_TRANSFORMING_CARD_COUNT_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,'transforming_uid'=>$transforming_uid,'error'=>$error,'current_gold'=>$gold));
}

$json = json_decode(file_get_contents('php://input'));
$account_id = $json->account_id;
$char_uid = $json->char_uid;
$login_key = $json->login_key;
$transforming_uid = $json->transforming_uid;
$card_inven_uid = $json->card_inven_uid;
$card_update_count = $json->card_update_count;
$gold_update = $json->gold_update;
//$is_passive = $json->is_passive;




if(CheckValidatedServerIP())
{
	SaveOwnedTransforming($account_id, $char_uid, $transforming_uid, $card_inven_uid, $card_update_count,$gold_update, $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	));
}



?>