<?php
include 'common.php';



function IsExistGuildApplication($dbhandle, $character_uid)
{
	$stmt = $dbhandle->prepare("SELECT * FROM guild_apply WHERE character_uid=?");
	$stmt->bind_param("i", $character_uid);
	$stmt->execute();
	$result = $stmt->get_result();

	if ($result)
	{
		if($row = $result->fetch_assoc())
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		$return = "DB_ERROR";
		$error = mysqli_error($dbhandle);
		$response = array('result'=>$return,'error'=>$error);

		EchoResponse($responose);

		mysqli_close($dbhandle);
		exit;
	}
}

function CheckCharacterInGuild($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 false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		$return = "DB_ERROR";
		$error = mysqli_error($dbhandle);
		$response = array('result'=>$return,'error'=>$error);

		EchoResponse($responose);

		mysqli_close($dbhandle);
		exit;
	}
}

function GuildApply($character_uid, $guild_uid)
{
	//Connect DB
	$dbhandle = DB_Connect();
		
	$db_selected = mysqli_select_db($dbhandle, DB_NAME)
	or die("Could not select db");

	$isExistMyApplication = IsExistGuildApplication($dbhandle, $character_uid);

	if ($isExistMyApplication)
	{
		$return = "ALREADY_EXIST_APPLICATION";
		$error = "";
		$response = array('result'=>$return,'error'=>$error);
	}
	else
	{
		$result_inguild = CheckCharacterInGuild($dbhandle, $character_uid);
		if ($result_inguild)
		{
			$stmt = $dbhandle->prepare("INSERT INTO guild_apply (character_uid, guild_uid, state) values(?,?,'APPLY')");
			$stmt->bind_param("ii", $character_uid, $guild_uid);
			$result = $stmt->execute();
			$stmt->close();	
		
			if($result)
			{
				$return = "GUILD_APPLY_OK";
				$error = "";
				$response = array('result'=>$return,'error'=>$error);
			}
			else
			{
				$return = "DB_ERROR";
				$error = mysqli_error($dbhandle);
				$response = array('result'=>$return,'error'=>$error);
			}
		}
		else
		{
			$return = "ALREADY_JOINED_GUILD";
			$error = "";
			$response = array('result'=>$return,'error'=>$error);
		}
		
	}

	EchoResponse($response);
	mysqli_close($dbhandle);
}

function EchoResponse($response)
{
	$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($response);
}


$character_uid = $_GET['character_uid'];
$guild_uid = $_GET['guild_uid'];

if(CheckValidatedServerIP())
{
	GuildApply($character_uid, $guild_uid);
}
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	));
}


?>