<?

/*
 * This file is part of the 'Science Fair In A Box' project
 *    SFIAB Website: http://www.sfiab.ca
 *
 *    Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
 *    Copyright (C) 2005 James Grant <james@lightbox.org>
 *
 *    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 ('../common.inc.php');
send_header('Scheduler Status',
	array('Committee Main' => 'committee_main.php',
		'Administration' => 'admin/index.php',
		'Judges' => 'admin/judges.php'));
?>

<script type="text/javascript">
var starttime=0;
var startpercent=0;
var deltatime=0;
var deltapercent=0;
var avgtimeperpercent=0;
var remainingpercent=0;
var remainingtime=0;

$(document).ready(function() {
	updateStatus();
});

function updateStatus() {
	var url="judges_scheduler_status_output.php";
	$("#updatestatus").html("Updating...");
	$.get(url,null,function(data) { 
			var obj=data.split(":");
			$("#schedulerstatus").html(obj[1]);
			if(obj[0]=="-1") {
				$("#schedulerpercent").html("100%");
				$("#updatestatus").html("Scheduling Complete");
				$("#schedulereta").html("Complete");
			}
			else {
				$("#schedulerpercent").html(obj[0]+"%");
				setTimeout('updateStatus()',5000);
				$("#updatestatus").html("Updating... Done!");
				setTimeout('clearUpdatingMessage()',500);

				var currentTime=new Date();
				if(starttime==0) {
					starttime=currentTime.getTime();
					startpercent=obj[0];
				}
				deltatime=currentTime.getTime()-starttime;
				deltapercent=obj[0]-startpercent;

				avgtimeperpercent=deltatime/deltapercent;
				remainingpercent=100-obj[0];
				remainingtime=remainingpercent*avgtimeperpercent;
				if(remainingtime>0 && remainingtime!="Infinity" && obj[0]>0) {
					$("#schedulereta").html(format_duration(Math.round(remainingtime/1000)));
				}
				else
					$("#schedulereta").html("Calculating...");
			}
	});
}

function clearUpdatingMessage() {
	$("#updatestatus").html("Waiting...");
}

function format_duration(seconds) {
/*
	'1 year|:count years' => 31536000,
	'1 week|:count weeks' => 604800,
	'1 day|:count days' => 86400,
	'1 hour|:count hours' => 3600,
	'1 min|:count min' => 60,
	'1 sec|:count sec' => 1);
*/

	var s=seconds;
	var output='';
	var pl='';
	if(s>86400) {
		var days=Math.floor(s/86400)
		s-=days*86400;
		if(days>1) pl='s'; else pl='';
		output+=days+' day'+pl+' ';
	}
	if(s>3600) {
		var hours=Math.floor(s/3600)
		s-=hours*3600;
		if(hours>1) pl='s'; else pl='';
		output+=hours+' hour'+pl+' ';
	}
	if(s>60) {
		var minutes=Math.floor(s/60)
		s-=minutes*60;
		if(minutes>1) pl='s'; else pl='';
		output+=minutes+' minute'+pl+' ';
	}
	if(s>1) pl='s'; else pl='';
	output+=s+' second'+pl

	return output;
}


</script>

<?
if ($config['judge_scheduler_percent'] == '-1') {
	echo i18n('The judge scheduler is not currently running');
	echo '<br />';
	echo '<br />';
	echo '<a href="judges_schedulerconfig.php">' . i18n('Judges Scheduler Configuration') . '</a>';
} else {
	echo '<table>';
	echo '<tr><td>' . i18n('Scheduler status') . ':</td><td><div id="schedulerstatus" style="font-weight: bold;"></div></td></tr>';
	echo '<tr><td>' . i18n('Scheduler percent') . ':</td><td><div id="schedulerpercent" style="font-weight: bold;"></div></td></tr>';
	echo '<tr><td>' . i18n('Scheduler ETA') . ':</td><td><div id="schedulereta" style="font-weight: bold;"></div></td></tr>';
	echo '<tr><td align="center" colspan="2"><div id="updatestatus" style="font-weight: bold; text-align: center;"></div></td></tr>';
	echo '</table>';

	echo '<br />';
	echo i18n('When scheduling is finished, the following links will be useful');
	echo '<br />';
	echo '<a href="judges_teams.php">' . i18n('Manage Judge Teams') . '</a>';
	echo '<br />';
	echo '<a href="judges_teams_members.php">' . i18n('Manage Judge Members') . '</a>';
	echo '<br />';
	echo '<a href="reports.php">' . i18n('Print/Export Reports') . '</a>';
	echo '<br />';
	echo '<br />';
	echo "Note: If you are using Windows Internet Explorer and do not see status updates do this:<br /> Click menu bar 'Tools' then 'Internet Options'.<br /> In the 'General' Tab under 'Browsing history' click 'Settings'.<br /> Under 'Check for newer versions of stored pages:'<br /> Select the option 'Every time I visit the webpage'.<br /> Click OK then OK";
}
send_footer();

?>