<?php
session_start();
?>
<?
	include("user.php");
	include("class.php");
	include("login.php");
//	session_start();
	
	if ($_SESSION['user']) {
		if ($_SESSION['admin'] == 0)
			header("Location: index.php");
	}
	else
		header("Location: index.php");
		
	if ($_GET['inactive'] == 1)
		$active = false;
	else
		$active = true;
		
	if ($_POST['cname']) {
		if (confirmPassword($_SESSION['user'], $_POST['addclasspass'])) {
			if (!get_magic_quotes_gpc()) {
				$name = addslashes($_POST['cname']);
				$section = addslashes($_POST['section']);
				$term = addslashes($_POST['term']);
				$year = addslashes($_POST['year']);
				addClass($_SESSION['user'], $name, $section, $term, $year);
			}
			else
				addClass($_SESSION['user'], $_POST['cname'], $_POST['section'], $_POST['term'], (int)($_POST['year']));
			$readytype = 1;
		}
		else
			$readytype = 2;
	}
	
	if ($_POST['deleteID']) {
		if (confirmPassword($_SESSION['user'], $_POST['deletepass'])) {
			if ($_POST['deleteID'] > 0)
				makeActive($_POST['deleteID'], true);
		    else
				makeActive(-$_POST['deleteID'], false);
		}
		else
			$readytype = 3;
	}
	
	$classes = array();
	if ($_SESSION['admin'] == -2)
		$classes = getActiveClasses($active, null);
	else if ($_SESSION['admin'] == -1)
		$classes = getActiveClasses($active, $_SESSION['user']);
	else
		$classes = getStudentAdminClasses($_SESSION['user']);
		
	$total = count($classes);
	$classesPerPage = 10;
	$numPages = ceil($total / $classesPerPage);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Class Listing</title>
<script language="javascript">
<!--
	var classesPerPage = <? echo $classesPerPage; ?>;
	var numClasses = <? echo $total; ?>;
	var numPages = <? echo $numPages; ?>;
	var currentPage = 0;
	
	document.onmousemove = getMouseLoc;
	var mouseX = 0;
	var mouseY = 0;
	
	window.onload = createPageLinks;
	
	function createPageLinks() {
		if (this.numPages > 0)
			this.currentPage = 1;
	    var inner = "";
	    if (this.numPages > 1) {
			inner += "&lt;&lt;Prev &nbsp;";
			inner += "1-" + this.classesPerPage + " &nbsp;";
			for (var i = 1; i < this.numPages; i++) {
				inner += "<a href='javascript:changePage(" + 
					(i+1) + ")'>" + (i*classesPerPage+1) + "-";
				if ((i+1)*classesPerPage > numClasses) {
					if (numClasses == (i*classesPerPage+1))
						inner = inner.substring(0, inner.length-1);
					else
						inner += "" + numClasses;
				}
				else
					inner += "" + ((i+1)*classesPerPage);
				inner += "</a> &nbsp;";
			}
			inner += "<a href='javascript:changePage(2)'>Next&gt;&gt;</a>";
		}
		document.getElementById("pageSelect").innerHTML = inner;
		document.getElementById("pageSelect2").innerHTML = inner;
		document.getElementById("page1").style.display = 'block';
	}
	
	function changePage(page) {
		for(var i = 1; i < this.numPages + 1; i++)
			document.getElementById("page" + i).style.display="none";
			
		document.getElementById("page" + page).style.display="block";
		var inner = "";
		/*
		 * If the first page is selected, then the page links are built
		 * in a similar fashion to the createPageLinks method.
		 */
		if (page == 1) {
			inner += "&lt;&lt;Prev &nbsp;";
			inner += "1-" + this.classesPerPage + " &nbsp;";
			for (var i = 1; i < this.numPages; i++) {
				inner += "<a href='javascript:changePage(" + 
					(i+1) + ")'>" + (i*classesPerPage+1) + "-";
				if ((i+1)*classesPerPage > this.numClasses) {
					if (numClasses == (i*classesPerPage+1))
						inner = inner.substring(0, inner.length-1);
					else
						inner += "" + numClasses;
				}
				else
					inner += "" + ((i+1)*classesPerPage);
				inner += "</a> &nbsp;";
			}
			inner += "<a href='javascript:changePage(" +
				(page+1) + ")'>Next&gt;&gt;</a>";
		}
		/*
		 * If the page is in the middle, then the links are
		 * built up until 1 less than page at which point the
		 * current page link is plaintext.  The remainder of
		 * the pages are built as links.
		 */
		else if (page < this.numPages) {
			inner += "<a href='javascript:changePage(" +
				(page-1) + ")'>&lt;&lt;Prev</a> &nbsp;";
			for (var i = 0; i < page-1; i++) {
				inner += "<a href='javascript:changePage(" + 
					(i+1) + ")'>" + (i*classesPerPage+1) + 
					"-" + ((i+1)*classesPerPage) + 
					"</a> &nbsp;";
			}
			inner += "" + ((page-1)*this.classesPerPage+1) + "-" + 
				(page*this.classesPerPage) + " &nbsp;";
			for (var i = page; i < this.numPages; i++) {
				inner += "<a href='javascript:changePage(" + 
					(i+1) + ")'>" + (i*classesPerPage+1) + "-";
				if ((i+1)*classesPerPage > this.numClasses) {
					if (numClasses == (i*classesPerPage+1))
						inner = inner.substring(0, inner.length-1);
					else
						inner += "" + numClasses;
				}
				else
					inner += "" + ((i+1)*classesPerPage);
				inner += "</a> &nbsp;";
			}
			inner += "<a href='javascript:changePage(" +
				(page+1) + ")'>Next&gt;&gt;</a>";
		}
		/*
		 * If the page is the last one, then all the links
		 * are built up until the final page, which along with
		 * the "Next" link are merely plaintext.
		 */
		else if (page == this.numPages) {
			inner += "<a href='javascript:changePage(" +
				(page-1) + ")'>&lt;&lt;Prev</a> &nbsp;";
			for (var i = 0; i < this.numPages-1; i++) {
				inner += "<a href='javascript:changePage(" + 
					(i+1) + ")'>" + (i*classesPerPage+1) + 
					"-" + ((i+1)*classesPerPage) + 
					"</a> &nbsp;";
			}
			inner += "" + ((page-1)*this.classesPerPage+1);
			if (this.numClasses != ((page-1)*this.classesPerPage+1))
				inner += "-" + this.numClasses;
			inner += " &nbsp;Next&gt;&gt;";
		}
		this.currentPage = page;
		document.getElementById("pageSelect").innerHTML = inner;
		document.getElementById("pageSelect2").innerHTML = inner;
	}
	
	function addClass(show) {
		if (show)
			document.getElementById('add').style.display = 'block';
		else {
			document.getElementById('add').style.display = 'none';
			document.getElementById('adderror').style.display = 'none';
		}
	}
	
	function checkAddClass() {
		$name = document.getElementById('cname').value;
		$section = document.getElementById('section').value;
		$term = document.getElementById('term').value;
		$year = document.getElementById('year').value;
		if (!($name && $section && $term && $year)) {
			document.getElementById('adderror').style.display = 'block';
			return false;
		}
		return true;			
	}
	
	function deactivateClass(classID, deactivate) {
		if (deactivate)
			classID = -classID;
		document.getElementById('deleteID').value = classID;
		div = document.getElementById('confirm');
		div.style.left = (mouseX+10)+"px";
		div.style.top = mouseY+"px";
		div.style.display = 'block';
	}
	
	function confirmDeletePass() {
		document.getElementById('yesdelete').disabled = false;
		div = document.getElementById('confirm');
		div2 = document.getElementById('confirm2');
		div2.style.left = div.style.left;
		div2.style.top = div.style.top;
		div2.style.display = 'block';		
	}
	
	function closeConfirm() {
		document.getElementById('yesdelete').disabled = true;
		document.getElementById('confirm').style.display = 'none';
		document.getElementById('confirm2').style.display = 'none';
	}
	
	function getMouseLoc(e) {
		if (!e) var e = window.event;
		if (e.pageX || e.pageY) 	{
			mouseX = e.pageX;
			mouseY = e.pageY;
		}
		else if (e.clientX || e.clientY) 	{
			mouseX = e.clientX + document.body.scrollLeft
				+ document.documentElement.scrollLeft;
			mouseY = e.clientY + document.body.scrollTop
				+ document.documentElement.scrollTop;
		}
	}
// -->
</script>
</head>

<? include("header.php"); ?>

<span style='color:#FF3300; display:<? if ($readytype == 1) echo("block"); else echo("none"); ?>'>
The class <? echo($_POST['cname']); ?> has been added successfully!</span>
<span style='color:#FF3300; display:<? if ($readytype == 2) echo("block"); else echo("none"); ?>'>
Class has not been added because validation failed.</span>
<span style='color:#FF3300; display:<? if ($readytype == 3) echo("block"); else echo("none"); ?>'>
Class has not been deactivated because validation failed.</span>

<div style='position:relative; left:40px'>
	<br />
	<? 	if ($total == 0) {
			echo("You currently have no ");
			if ($active)
				echo("active classes to display.  Please add a class.");
			else
				echo("inactive classes to display.");		
		}
	   	else {
			if ($_SESSION['admin'] < 0)
	   			echo("Select a class from the list below or add a new class.");
			else
				echo("Select a class from the list below.");
		}
	?>
</div>
<span style='position:relative; left:40px; top:8px; font-variant:small-caps;'>
	
	<? if ($_SESSION['admin'] < 0) {
			echo("<a href='classes.php'>Show all active classes</a><br />");
			echo("<a href='classes.php?inactive=1'>Show all inactive classes</a><br />");
			echo("<a href='javascript:addClass(true)'>Add a new class</a>");
		} ?>
</span><br />

<table id='add' style='float:right; z-index:2; position:absolute; left:12em; top:6em; 
		   			   display:none; background:#FFFFCC; padding:5px;' 
	   border='1' cellpadding='5px'>
	<tr><td>
		<h3 style='position:relative; left:15px;'>Add New Class</h3>
		<form id='addclassform' name='addclassform' submit='classes.php' method='POST'
				onSubmit='return checkAddClass();'>
			<table>
				<tr>
					<td></td>
					<td id='adderror' style='color:#FF3300; display:none;'>All fields are required!</td>
				</tr>
				<tr>
					<td align='right' style='font-weight:bold'>Class Name:</td>
					<td align='left'><input type='text' name='cname' id='cname' /></td>
				</tr>
				<tr>
					<td align='right' style='font-weight:bold'>Section:</td>
					<td align='left'><input type='text' name='section' id='section' /></td>
				</tr>
				<tr>
					<td align='right' style='font-weight:bold'>Term:</td>
					<td align='left'><input type='text' name='term' id='term' /></td>
				</tr>
				<tr>
					<td align='right' style='font-weight:bold'>Year:</td>
					<td align='left'><input type='text' name='year' id='year'
										value='<? echo date('Y'); ?>' /></td>
				</tr>
				<tr>
					<td colspan='3' style='font-weight:bold;'><b>Confirm your password to continue.</b></td>
				</tr>
				<tr>
					<td align='right' style='font-weight:bold;'>Password:</td>
					<td align='left'><input type='password' id='addclasspass' name='addclasspass' /></td>
				</tr>
				<tr>
					<td></td>
					<td align='left'><input type='submit' value='Add Class' />
									 <input type='reset' value='Cancel' onclick='addClass(false)' /></td>
				</tr>
			</table>
		</form>
	</td></tr>

</table>
<br />
<div id='pageSelect' style='font-variant:small-caps; position:relative; left:25px; top:10px'></div>
<?
	for($j = 0; $j < $numPages; $j++) {
		echo("<div id='page".($j+1)."' style='display:none; position:relative; left:10px; top:10px'>");
		echo("<table>");
		for ($i = 0; $i < $classesPerPage; $i++) {
			$index = ($classesPerPage*$j)+$i;
			if ($index == $total)
				break;
			echo("<tr><td>");
			echo("<b>".$classes[$index]['CourseName']." - ".$classes[$index]['SectionLetter']."</b><br>");
			echo($classes[$index]['Term']." ".$classes[$index]['Year']."<br>");
			echo("Number of Students: ".$classes[$index]['RosterNum']."<br>");
			echo("<a href='editclass.php?id=".$classes[$index]['ID']."' style='font-variant:small-caps;'>Edit</a> - ");
			if ($_SESSION['admin'] < 0) {
				echo("<a href='javascript:deactivateClass(".$classes[$index]['ID']);
				if (isActiveClass($classes[$index]['ID']))
					echo(", true)' style='font-variant:small-caps;'>Deactivate</a> - ");
				else
					echo(", false)' style='font-variant:small-caps;'>Activate</a> - ");
			}
			echo("<a href='report.php?class=".$classes[$index]['ID']."' style='font-variant:small-caps;'>Generate Report</a>");
			echo("</td></tr>");
		}
		echo("</table></div>");
	}
?>
<div id='pageSelect2' style='font-variant:small-caps; position:relative; left:25px; top:10px'></div>

<div id='confirm' style='position:absolute; z-index:5; display:none; background-color:#FFFFCC;'>
<table border='1'>
<tr><td>
	<form id='predelete' name='predelete'>
		<table cellpadding='2px'>
			<tr><td colspan='2';><b>
				<? if ($active) echo("Deactivate this class?");
				   else 		echo("Activate this class?"); ?>
				</b></td></tr>
			<tr>
				<td><input type='button' id='yes' name='yes' value='Yes' onclick='confirmDeletePass()' /></td>
				<td><input type='button' value='No' onclick='closeConfirm()' /></td>
			</tr>
		</table>
	</form>
</td></tr>
</table>
</div>
<div id='confirm2' style='position:absolute; z-index:6; display:none; background-color:#FFFFCC;'>
<table border='1'>
<tr><td>
	<form id='deleteconfirm' name='deleteconfirm' submit='classes.php' method='POST'>
		<table cellpadding='2px'>
			<input type='hidden' id='deleteID' name='deleteID' />
			<tr>
				<td colspan='2'><b>Confirm password.</b></td>
			</tr>
			<tr>
				<td align='right' style='font-weight:bold'>Password:</td>
				<td align='left'><input type='password' id='deletepass' name='deletepass' /></td>
			</tr>
			<tr>
				<td></td>
				<td><input type='submit' id='yesdelete' name='yesdelete' value='Confirm' disabled="disabled" />
				    <input type='reset' value='Cancel' onclick='closeConfirm()' /></td>
			</tr>
		</table>
	</form>
</td></tr>
</table>
</div>
<br />
<? include("footer.php"); ?>
</html>
