<?
	/** Zbiór funckji wyświetlających lewe menu.
	 * @author Michał Malinowski & Łukasz Chmielewski & Dariusz Działak
	 * @package XPDefault
	 */

	/** */
	if ( defined( '_LEFT_MENU_FUN' ) ) return;
	define( '_LEFT_MENU_FUN', 1 );

	/** Funkcja wyświetlająca lewe menu dla studenta.
	 * @author Michał Malinowski
	 * @version 0.3
	 */
	function studLeftMenu() {
		global $sess;

		if (!$sess->isLoged('Stud'))
			return;

		printf("Witaj studencie!<br>Twoje laboratoria:\n");

		$treeLink = new CLink('', 'Sleft_menu');
		$labLink = new CLink('Slaboratory');
		$taskLink = new CLink('Stask');
		$tab = new CTable(2);
		foreach($sess->get('Sgroups') as $zaj_cyk => $lecData) {
			$treeLink->addFirstParam('S_zaj_cyk', $zaj_cyk);
			if ($lecData['unrolled']) {
				$treeLink->addParam('S_op', 'roll');
				$imgSrc = './gfx/minus.gif';
			}
			else {
				$treeLink->addParam('S_op', 'unroll');
				$imgSrc = './gfx/plus.gif';
			}
			$labLink->addFirstParam('Szaj_cyk', $zaj_cyk);
			$tab->addField($treeLink->get("<img align=\"center\" src=\"$imgSrc\"> "));
			$tab->addField($labLink->get($lecData['przedmiot']));
			if ($lecData['unrolled']) {
				foreach($lecData['tasks'] as $id_zad => $zad_data) {
					$taskLink->addFirstParam('Szaj_cyk', $zaj_cyk);
					$taskLink->addParam('Stask', $id_zad);
					$tab->addField('');
					$tab->addField('<div class="akapit">' . $taskLink->get($zad_data['nazwa']). '</div>');
				}
			}
		}
		$tab->close();
		printf('<br>');
	}

	/** Funkcja wyświetlająca lewe menu dla asystenta.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function asysLeftMenu() {
		global $sess;

		if (!$sess->isLoged("Asys"))
			return;

		printf("Witaj asystencie!<br><br>\n");
		$max = count($sess->get("Aaktualne_cykle"));
		if ($max == 0)
			return;
		if ($max == 1) 
			printf("Twój bieżący cykl:<br>\n");
		else
			printf("Twoje bieżące cykle:<br>\n");

		$licz = 1;
		while ($licz <= $max) {
			$link = new CLink('Asys_cykle','Asys_cykle');
			$pom1 = $sess->getTab("Aaktualne_cykle", '$licz');
			$link->lprint("$pom1<br>");
			$licz++;
		}
		printf("<br>\n");

		printf("Twoje aktualne zadania:<br>\n");

		$w = &$sess->get("Atreelink");
		if (!isset($w)) {
			//print("ala<BR>");
			$treeLink = new CLink('', 'Aleft_menu');
		}
		else {
			//print("bela<BR>");
			$treeLink = &$sess->get("Atreelink");
			$sess->del("Atreelink");
		}
		$grLink = new CLink('Asys_sklad', 'Asys_sklad');
		$taskLink = new CLink('Asys_zadanie','Asys_zadanie');
		$tab = new CTable(1);
		$grupy = &$sess->get("Agrupy");
		foreach($grupy as $key1 => $big) {
			foreach($big as $key2 => $row) {
				//print("$key2 => $row");
				$treeLink->addParam('A_gr_nr', $key1);
				$treeLink->addParam('A_cyk_id', $key2);

				if ($row['unrolled']) {
					$treeLink->addParam('A_op', 'roll');
					$imgSrc = './gfx/minus.gif';
				}
				else {
					$treeLink->addParam('A_op', 'unroll');
					$imgSrc = './gfx/plus.gif';
				}
				$pom1 = $row["cdyd"];
				$pom2 = $row["przedmiot"];
				$pom3 = $row["op"];
				$grLink->addParam("Numer_grupy",$key1);
				$grLink->addParam("Id_w_cyklu",$key2);
				$grLink->addParam("Przedmiot_gr", $pom2);
				$grLink->addParam("Cykl_gr", $pom1);
				$grLink->addParam("Cykl_nazwa_gr", $pom3);

				$tab->addField(($treeLink->get("<img align=\"center\" src=\"$imgSrc\"> ").$grLink->get("$pom2"))." gr.:$key1");

				if ($row['unrolled']) {
					//print("b<BR>");
					foreach($row['tasks'] as $id_zad => $zad_data) {
						$z1 = $zad_data["num"];
						$z2 = $id_zad;
						$taskLink->addParam("Numer_zadania",$z2);
						$taskLink->addParam("Numer_grupy",$key1);
						$taskLink->addParam("Id_w_cyklu",$key2);
						$taskLink->addParam("Przedmiot_gr", $pom2);
						$taskLink->addParam("Cykl_gr", $pom1);
						$taskLink->addParam("Cykl_nazwa_gr", $pom3);
						$text = "$z1)";
						$tab->addField("<div class=\"bigakapit\">".$text.$taskLink->get($zad_data["zad"]).'</div>');
					}
				}
			}
		}
		printf("<div class=\"akapit\">\n");
		$tab->close();
		printf("</div>\n");
	}

	/** Funkcja wyświetlająca przedmioty wykładowcy (i operatora) w lewym menu
	*
	*@author Dariusz Działak
	*@version 0.2
	*/
	function wyklLeftMenu() {
		global $sess;

		$przedmioty = $sess->get(w_przedm);
		if ($przedmioty){
			if ($sess->isLoged("Oper")) printf("<br>Zadania do przemiotów:<BR><BR>\n");
			else if ($sess->isLoged("Wykl")) printf("<br>Prowadzone przemioty:<BR><BR>\n");
			$tab = new CTable(1);
			foreach($przedmioty as $key => $prz) {
					// $tab->addField($key);
					$link = new CLink("W_przedm", "W_przedm");
					$link->addParam(przedmiot, $key);
					$tab->addField($link->get("$prz"));
			}
			printf("<center>");
			$tab->close();
			printf("</center><BR>\n");
		}
		$cykl = $sess->get(w_akt_cykl_opis);
		if (($sess->isLoged("Wykl"))&&($cykl)) {
			$link = new CLink("W_zmien_cykl", "W_zmien_cykl");
			$link->lprint($cykl);
		}
	}

	/** Lewe menu dla administratora - init, baqp, remove
	*
	* @author Maciek Osinski
	* @version 0.1
	* @todo moze dolozyc rozwijane w drzewko - odpowiednie cykle ?
	* @todo dolozyc mozliwosc wylaczenia (konfig) wyswietlania lock/unlock
	*/
	function adminLeftMenu(){
		global $sess;

		if (!$sess->isLoged('Admin'))
			return;

		printf("<center>");
//		printf("Witaj Adminie!<br>\n");
		$nlink = new CLink ("Ad_init_list", "Ad_cykle");
		$nlink->lprint ("Obsługa przedmiotów");
		printf("<br>");
		$blink = new CLink ("Ad_baqp_list", "Ad_cykle");
		$blink->lprint ("Kopia zapasowa");
		printf("<br>");
		$dlink = new CLink ("Ad_del_list",  "Ad_cykle");
		$dlink->lprint ("Usuwaj dane");
		printf("<br>");
		printf("<br>");
		// mozliwosc zablokowania systemu na czas operacji admina
		$lock = $sess->get('Ad_systemlock');

		if ($lock == 2 || $lock == 3) {
			$llink = new CLink($_GET['xpage'], "Ad_lock");
			$llink->AddParam('lock', '0');
			$llink->lprint("Odblokuj system<br>");
		} else if ($lock == 1) {
			$llink1 = new CLink($_GET['xpage'], "Ad_lock");
			$llink1->AddParam('lock', '0');
			$llink1->lprint("Odblokuj logowanie<br>");
			$llink2 = new CLink($_GET['xpage'], "Ad_lock");
			$llink2->AddParam('lock', '2');
			$llink2->lprint("Zablokuj system<br>");
		} else {
			$llink1 = new CLink($_GET['xpage'], "Ad_lock");
			$llink1->AddParam('lock', '1');
			$llink1->lprint("Zablokuj logowanie<br>");
			$llink2 = new CLink($_GET['xpage'], "Ad_lock");
			$llink2->AddParam('lock', '2');
			$llink2->lprint("Zablokuj system<br>");
		}
		printf("<br>");
		printf("</center>");
	}

	/** Funckja wyświetlająca zawartość lewego menu.
	 * @author Michał Malinowski
	 * @version 0.1
	 */
	function leftMenu() {
		studLeftMenu();
		asysLeftMenu();
		wyklLeftMenu();
		adminLeftMenu();
	}
?>
