<?

/*
 * This file is part of the Science-ation project
 * Science-ation Website: https://science-ation.ca
 *
 * This file was part of the 'Science Fair In A Box' project
 *
 *
 * Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
 * Copyright (C) 2005 James Grant <james@lightbox.org>
 * Copyright (C) 2024 AlgoLibre Inc. <science-ation@algolibre.io>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation, version 2.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */
?>
<?
require_once ('../common.inc.php');
require_once ('../user.inc.php');
user_auth_required('committee', 'admin');

$tabs = array(
	'fairinfo' => array(
		'label' => 'Fair Information',
		'types' => array('fair'),
		'file' => '../fair_info.php',
		'enabled' => true,
	),
	'fairstatsgathering' => array(
		'label' => 'Fair Stats Gathering',
		'types' => array('fair'),
		'file' => 'fair_stats_select.php',
		'enabled' => true,
	),
	'personal' => array(
		'label' => 'Personal',
		'types' => array('student', 'judge', 'committee', 'volunteer', 'sponsor', 'fair'),
		'file' => '../user_personal.php',
		'enabled' => true
	),
	'roles' => array(
		'label' => 'Roles/Account',
		'types' => array('student', 'judge', 'committee', 'volunteer', 'sponsor', 'fair'),
		'file' => '../user_activate.php',
		'enabled' => true
	),
	'judgeother' => array(
		'label' => 'Judge Other',
		'types' => array('judge'),
		'file' => '../judge_other.php',
		'enabled' => true
	),
	'judgeexpertise' => array(
		'label' => 'Expertise',
		'types' => array('judge'),
		'file' => '../judge_expertise.php',
		'enabled' => true
	),
	'judgeavailability' => array(
		'label' => 'Time Avail.',
		'types' => array('judge'),
		'file' => '../judge_availability.php',
		'enabled' => $config['judges_availability_enable'] == 'yes' ? true : false
	),
	'judgesa' => array(
		'label' => 'Special Awards',
		'types' => array('judge'),
		'file' => '../judge_special_awards.php',
		'enabled' => true,
	),
	'volunteerpos' => array(
		'label' => 'Volunteer Positions',
		'types' => array('volunteer'),
		'file' => '../volunteer_position.php',
		'enabled' => true,
	),
	'fairstats' => array(
		'label' => 'Fair Statistics and Information',
		'types' => array('fair'),
		'file' => '../fair_stats.php',
		'enabled' => true,
	),
);

if (array_key_exists('username', $_GET)) {
	$username = $_GET['username'];
	$type = $_GET['type'];
	$un = $username;
	$q = $pdo->prepare("SELECT id,MAX(year),deleted FROM users WHERE username='$un' GROUP BY uid");
	$q->execute();
	show_pdo_errors_if_any($pdo);

	if ($q->rowCount()) {
		$r = $q->fetch(PDO::FETCH_OBJ);
		if ($r->deleted == 'no') {
			/* Load the user */
			$u = user_load_by_email($username);
			if (in_array($type, $u['types'])) {
				echo "Username already exists with role '$type'";
				exit;
			} else {
				/*
				 * Add the role, user_create does a role_allowed check
				 * so we'll never add a judge/committee role to a student
				 */
				user_create($type, $username, $u);
			}
		} else {
			// undelete them?
			$stmt = $pdo->prepare("UPDATE users SET deleted='no' WHERE id='$r->id'");
			$stmt->execute();
			// then load them?
			$u = user_load($r->id);
		}
	} else {
		$u = user_create($type, $username);
		$u['email'] = $username;
	}
	user_save($u);
	$id = $u['id'];
} else {
	$id = $_GET['id'];
}

$u = user_load($id);

$selected = get_value_from_array($_GET, 'tab');
if (!array_key_exists($selected, $tabs)) {
	if (in_array('fair', $u['types']))
		$selected = 'fairinfo';
	else
		$selected = 'personal';
}

if (get_value_from_array($_GET, 'sub') == 1) {
	$_SESSION['embed'] = true;
	$_SESSION['embed_submit_url'] = "{$_SERVER['PHP_SELF']}?id=$id&tab=$selected";
	$_SESSION['embed_edit_id'] = $id;
	$t = $tabs[$selected];
	include ("{$t['file']}");

	unset($_SESSION['embed']);
	unset($_SESSION['embed_edit_id']);
	unset($_SESSION['embed_submit_url']);
	exit;
}

send_popup_header(i18n('User Editor') . ": {$u['name']}");

/* Setup tabs */
echo '<div id="tabs">';
echo '<ul>';
$index = 0;
$selected_index = 0;
foreach ($tabs as $k => $t) {
	/* Make sure the tab is enabled */
	if ($t['enabled'] == false)
		continue;
	/* Make sure the user has the right type to see the tab */
	$i = array_intersect($t['types'], $u['types']);
	if (count($i) == 0)
		continue;

	if ($k == $selected)
		$selected_index = $index;
	$index++;

	/* Show the tab */
	$href = "{$_SERVER['PHP_SELF']}?id=$id&tab=$k&sub=1";
	echo "<li><a href=\"$href\"><span>" . i18n($t['label']) . '</span></a></li>';
}
echo '</ul>';

?>
<script type="text/javascript">

$(document).ready(function() {
	$("#tabs").tabs({
			selected: <?= $selected_index ?>	
		});
	window.focus();
});

</script>

<?

$icon_path = $config['SFIABDIRECTORY'] . '/images/16/';
$icon_exitension = $config['icon_extension'];

// send_popup_footer();
?>