<?
/***************************************************************
* This page handles the backend of the "new group" function
* which splits a torrent off into a new group.
****************************************************************/

authorize();

if (!check_perms('torrents_edit')) {
	error(403);
}

$OldGroupID = $_POST['oldgroupid'];
$TorrentID = $_POST['torrentid'];
$ArtistName = db_string(trim($_POST['artist']));
$Title = db_string(trim($_POST['title']));
$Year = trim($_POST['year']);
$SearchText = db_string(trim($_POST['artist']) . ' ' . trim($_POST['title']) . ' ' . trim($_POST['year']));

if (!is_number($OldGroupID) || !is_number($TorrentID) || !is_number($Year) || !$OldGroupID || !$TorrentID || !$Year || empty($Title) || empty($ArtistName)) {
	error(0);
}

//Everything is legit, let's just confim they're not retarded
if (empty($_POST['confirm'])) {
	View::show_header();
?>
	<div class="center thin">
	<div class="header">
		<h2>Split Confirm!</h2>
	</div>
	<div class="box pad">
		<form class="confirm_form" name="torrent_group" action="torrents.php" method="post">
			<input type="hidden" name="action" value="newgroup" />
			<input type="hidden" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
			<input type="hidden" name="confirm" value="true" />
			<input type="hidden" name="torrentid" value="<?=$TorrentID?>" />
			<input type="hidden" name="oldgroupid" value="<?=$OldGroupID?>" />
			<input type="hidden" name="artist" value="<?=display_str($_POST['artist'])?>" />
			<input type="hidden" name="title" value="<?=display_str($_POST['title'])?>" />
			<input type="hidden" name="year" value="<?=$Year?>" />
			<h3>You are attempting to split the torrent <a href="torrents.php?torrentid=<?=$TorrentID?>"><?=$TorrentID?></a> off into a new group:</h3>
			<ul><li><?=display_str($_POST['artist'])?> - <?=display_str($_POST['title'])?> [<?=$Year?>]</li></ul>
			<input type="submit" value="Confirm" />
		</form>
	</div>
	</div>
<?
	View::show_footer();
} else {
	$DB->query("
		SELECT ArtistID, AliasID, Redirect, Name
		FROM artists_alias
		WHERE Name = '$ArtistName'");
	if (!$DB->has_results()) {
		$Redirect = 0;
		$DB->query("
			INSERT INTO artists_group (Name)
			VALUES ('$ArtistName')");
		$ArtistID = $DB->inserted_id();
		$DB->query("
			INSERT INTO artists_alias (ArtistID, Name)
			VALUES ('$ArtistID', '$ArtistName')");
		$AliasID = $DB->inserted_id();
	} else {
		list($ArtistID, $AliasID, $Redirect, $ArtistName) = $DB->next_record();
		if ($Redirect) {
			$AliasID = $Redirect;
		}
	}

	$DB->query("
		INSERT INTO torrents_group
			(ArtistID, NumArtists, CategoryID, Name, Year, Time, WikiBody, WikiImage, SearchText)
		VALUES
			($ArtistID, '1', '1', '$Title', '$Year', '".sqltime()."', '', '', '$SearchText')");
	$GroupID = $DB->inserted_id();

	$DB->query("
		INSERT INTO torrents_artists
			(GroupID, ArtistID, AliasID, Importance, UserID)
		VALUES
			('$GroupID', '$ArtistID', '$AliasID', '1', '$LoggedUser[ID]')");

	$DB->query("
		UPDATE torrents
		SET GroupID = '$GroupID'
		WHERE ID = '$TorrentID'");

	// Delete old group if needed
	$DB->query("
		SELECT ID
		FROM torrents
		WHERE GroupID = '$OldGroupID'");
	if (!$DB->has_results()) {
		Torrents::delete_group($OldGroupID);
	} else {
		Torrents::update_hash($OldGroupID);
	}

	Torrents::update_hash($GroupID);

	$Cache->delete_value("torrent_download_$TorrentID");

	Misc::write_log("Torrent $TorrentID was edited by " . $LoggedUser['Username']);

	header("Location: torrents.php?id=$GroupID");
}
?>