<?
	/** Funkcje wypisujace dane oraz czyszczace dane pobrane z bazy, przeznaczone dla zastosowań asystenta.
	 *
	 * Również funkcje budujące liniki do stron asystenta (niektórych). Dane wejściowe w dużym stopniu są brane z sesji. Umieszczane są tam przez plik Adb.inc.php.
	 * @author Łukasz Chmielewski
	 * @package XPAsystent
	 */

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

	$katalog_docelowy="/tmp/XP";

	/** Funkcja wypisujaca dane o cyklach dydaktycznych, w ktorych uczestniczyl asystent.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param string $cyk nazwa tabelki z ktorej sa pobierane dane do wypisania
	 */
	function printCycle($cyk) {
		global $sess;

		$tab = new CTable(3,"asys_op");

		$cykle = &$sess->get("$cyk");
		if (count($cykle) > 0) {
			$tab = new CTable(5,"ttable","cellspacing=0");
			$tab->addField("Kod","thead");
			$tab->addField("Opis","thead");
			$tab->addField("Data rozpoczęcia","thead");
			$tab->addField("Data końcowa","thead");
			$tab->addField("Data zakończenia","thead");

			$param = "Kod_cyklu";
			$link = new CLink ("Asys_grup", "Asys_grup");
			$parity = "even";

			foreach($cykle as $key => $row) {
				$link->addFirstParam($param, $key);
				$tab->addField($link->get("$key<BR>"), $parity);
				$tab->addField($link->get($row["op"]), "T$parity");
				$tab->addField($link->get($row["od"]), $parity);
				$tab->addField($link->get($row["do"]),"T$parity");
				$tab->addField($link->get($row["zakon"]), $parity);
			}
			print("<HR>");
			$tab->close();
			print("<HR>");
		}
		else {
			print("<HR><CENTER>!BRAK!</CENTER><HR>");
		}
	}

	/** Funkcja usuwajaca z sesji dane cykli.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param string $cyk
	 */
	function delCycle($cyk) {
		global $sess;

		if ($cyk > 0)
			$sess->del('Acykle_A');
		if ($cyk > 1)
			$sess->del('Acykle_N');
		if ($cyk > 2)
			$sess->del('Acykle_B');
	}

	/** Funkcja usuwajaca z sesji dane grup.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param string $cyk
	 */
	function delGroups() {
		global $sess;

		$sess->del("Agrupy_cykli");
	}

	/** Funkcja pobierajaca identyfikator cyklu.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function getDescribe() {
		global $sess;

		$grupy = &$sess->get("Agrupy_cykli");
		foreach ($grupy as $key1 => $big) {
			foreach ($big as $key2 => $row) {
				return $row["ck"];
			}
		}
	}

	/** Funkcja wypisujaca dane grup w dla danego cyklu (przechowywane w sesji).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function printGroups() {
		global $sess;

		$grupy = &$sess->get("Agrupy_cykli");
		if (count($grupy) > 0) {
			$tab = new CTable(3,"ttable", "cellspacing=0");
			$tab->addField("Grupa Numer","thead");
			$tab->addField("Cykl Dydaktyczny","thead");
			$tab->addField("Przedmiot","thead");

			$cel = "Asys_sklad";
			$link = new CLink ($cel,$cel);
			$parity = "even";

			foreach($grupy as $key1 => $big) {
				foreach($big as $key2 => $row) {
					$link->addFirstParam("Numer_grupy",$key1);
					$link->addParam("Id_w_cyklu",$key2);
					$link->addParam("Przedmiot_gr",$row["przed"]);
					$link->addParam("Cykl_gr",$row["cdyd"]);
					$link->addParam("Cykl_nazwa_gr",$row["ck"]);
					$tab->addField($link->get("$key1"),"T$parity");
					$tab->addField($link->get($row["ck"]),$parity);
					$tab->addField($link->get($row["przed"]),"T$parity");
					if ($parity=="even") $parity="odd";
					else $parity="even";
				}
			}
			$tab->close();
		}
		else {
			print("BRAK!<BR>");
		}
		print("<BR><BR>");
	}

	/** Funkcja wypisujaca dane osob w danej grupie.
	 * @author Lukasz Chmielewski
	 * @version 0.2
	 */
	function printGroupPerson() {
		global $sess;
		global $Przedmiot_gr;

		$osoby = &$sess->get("Aosoby_grupy");
		//printf("%s<BR>",count($osoby));
		if (count($osoby) > 0) {
			//print("TU");
			$tab = new CTable(4,"asys_op");
			$tab->setLight ();
			$tab->addField("Imie");
			$tab->addField("Nazwisko");
			$tab->addField("Indeks");
			$tab->addField("Email");

			$cel = "Asys_osoba";
			$link = new CLink ($cel,$cel);

			foreach($osoby as $key => $row) {
				//print("ala");
				$pom1 = $sess->get("Agrupa");
/*				$link->addFirstParam("Numer_osoby",$key);
				$link->addParam("Numer_grupy", $pom1["gr"]);
				$link->addParam("Id_w_cyklu", $pom1["cyk"]);
				$link->addParam("Przedmiot_gr", $pom1["przed"]);
				$link->addParam("Cykl_nazwa_gr", $pom1["cngr"]);
				$link->addParam("Cykl_gr", $pom1["cgr"]);*/
				$pom2 = linkOsoba($row["im"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom3 = linkOsoba($row["nazw"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom4 = linkOsoba($row["ind"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$text = "Pesel:".$row["pes"];
				$tab->addField("<H4 TITLE=\"$text\">".$pom2."<BR><BR></H4>");
				$tab->addField("<H4 TITLE=\"$text\">".$pom3." <BR><BR></H4>");
				$tab->addField($pom4." <BR><BR>");
				$tab->addField("<A HREF=mailto:".$row["em"]."&subject=".$Przedmiot_gr.">".$row["em"]."</A>
 <BR><BR>");
			}
			$tab->close();
		}
		else {
			print("BRAK!<BR>");
		}
		print("<BR><BR>");
	}

	/** Funkcja wypisujaca dane zadan w danej grupie.
	 * @author Lukasz Chmielewski
	 * @version 0.2
	 */
	function printGroupExercises() {
		global $sess;

		$zadania = &$sess->get("Azadania_grupy");
		if (count($zadania) > 0) {
			//print("TU");
			$tab = new CTable(3,"asys_op");
			$tab->setLight ();
			$tab->addField("Zadanie");
			$tab->addField("Numer");
			$tab->addField("Modyfikuj");			

			$cel = "Asys_zadanie";
			$link = new CLink ($cel,$cel);

			foreach($zadania as $key => $row) {
/*				if ($row["ter"] > now())
					$text = "Aktualny Termin:".$row["ter"];
				else
					$text = "Nieaktualny Termin:".$row["ter"];*/
				$text = "Termin:".$row["ter"];
				//$link->addFirstParam("Numer_zadania",$key);
				$pom1 = $sess->get("Agrupa");
				if ($row["nal"] == 'Y') {
					$pom2 = linkZadanie($row["zad"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
					$pom3 = linkZadanie($row["num"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
					$tab->addField("<H4 TITLE=\"$text\">".$pom2."<BR><BR></H4>");
					$tab->addField($pom3." <BR><BR>");
				}
				else {
					$text = "Nie Należy";
					$pom2 = $row["zad"];
					$tab->addField("<H4 TITLE=\"$text\">".$pom2." (nie należy)<BR><BR></H4>");
					$tab->addField($row["num"]." <BR><BR>");
				}
				$text = "Modyfikuj";
				$pom2 = linkMod("M", $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"], $row["zgr"]);
				$tab->addField("<H4 TITLE=\"$text\">".$pom2."<BR><BR></H4>");
			}
			$tab->close();
		}
		else {
			print("BRAK!<BR>");
		}
		print("<BR><BR>");
	}

	/** Funkcja wypisujaca dane zadan z przedmiotu, które mozna dodac do grupy (przechowywane w sesji).
	 *
	 * Pojawia się na prawym menu.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function printAddExercises(){
		global $sess;

		$zadania = &$sess->get("Aall_zadania_grupy");
		$obecny = &$sess->get("Azadania_grupy");
		if (count($zadania) > 0) {
			//print("TU2");
			$tab = new CTable(2);
			$tab->addField("Zadanie");
			$tab->addField("Numer");

			$cel = "Asys_zadanie";
			$link = new CLink ($cel,$cel);

			$b = 'true';
			$ile = 0;

			//print(count($zadania));
			foreach($zadania as $key => $row) {
				//print($key.";<BR>");
				$b = 'true';
				foreach($obecny as $keyo => $rowo) {
					//print(" ".$keyo."<BR>");
					if ($key == $keyo) {
						//print("false<BR>");
						$b = 'false';
					}
				}
				if ($b == 'true') {
					$ile++;
					$pom1 = $sess->get("Agrupa");
					$pom2 = linkWstaw($row["zad"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
					$pom3 = linkWstaw($row["num"], $key, $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
					$tab->addField($pom2." <BR><BR>");
					$tab->addField($pom3." <BR><BR>");
				}
			}
			if ($ile > 0)
				$tab->close();
			else {
				printf("<div class=\"akapit\">\n");
				print("BRAK!<BR>");
				printf("</div>\n");
			}
		}
		else {
			printf("<div class=\"akapit\">\n");
			print("BRAK!BRAK!<BR>");
			printf("</div>\n");
		}
		//print("<BR><BR>");
	}

	/** Funkcja usuwajaca z sesji dane danej grupy.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param int $c
	 */
	function delGroupData($c) {
		global $sess;

		$sess->del("Agrupa");
		$sess->del("Awykladowca");
		$sess->del("Aall_zadania_grupy");
		if ($c == 2)
			$sess->del('Aosoby_grupy');
		if ($c == 1)
			$sess->del('Azadania_grupy');
		if ($c == 3) {
			$sess->del('Aosoby_grupy');
			$sess->del('Azadania_grupy');
		}
	}

	/** Funkcja wypisujaca link do strony z danymi danej grupy (Asys_sklad).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkSklad($text, $numer_grupy, $id, $przed, $cdyd, $ck, $what_zad, $what_os) {
		$link = new CLink ("Asys_sklad", "Asys_sklad");
		$link->addFirstParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		if ($what_zad == 'x')
			$link->addParam("What_zad", $what_zad);
		if ($what_os == 'x')
			$link->addParam("What_os", $what_os);
		$link->lprint("$text");
	}

	/** Funkcja wypisujaca link do strony operatora.
	 *
	 * Obecnie nie używana, ale może się to zmienić.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkOperator ($text, $numer_grupy, $id, $przed, $cdyd, $ck) {
		$link = new CLink ("Asys_sklad", "Asys_sklad");
		$link->addFirstParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		$link->lprint("$text");
	}

	/** Funkcja wypisujaca link do strony z danymi do pobrania (już spakowanymi). Plik - Asys_pobierz.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkPobierz ($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck, $zg) {
		$link = new CLink ("Asys_pobierz", "Asys_pobierz");
		$link->addFirstParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		$link->addParam("Zad_gr", $zg);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony z danymi danej osoby (Asys_osoba).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkOsoba($text, $id_osoby, $numer_grupy, $id, $przed, $cdyd, $ck, $a = "") {
		$link = new CLink ("Asys_osoba", "Asys_osoba");
		$link->addFirstParam("Numer_osoby", $id_osoby);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		$link->addParam("All", $a);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony z danymi danego zadania (Asys_zadanie).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkZadanie($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck, $al = "") {
		$link = new CLink ("Asys_zadanie", "Asys_zadanie");
		$link->addFirstParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		if ($al != "")
			$link->addParam("All", $al);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony przyporzdkowujacej zadanie grupie (Asys_wstaw).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkWstaw($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck, $what="") {
		$link = new CLink ("Asys_wstaw", "Asys_wstaw");
		$link->addFirstParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		if ($what == 'x')
			$link->addParam("What", $what);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony przyporzdkowujacej zadniu grupe (z odswierzaniem).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkWstawOdswierz($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck, $what="") {
		$link = new CLink ("Asys_wstaw", "Asys_wstaw");
		$link->addFirstParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);

		$link->addParam("A_gr_nr", $numer_grupy);
		$link->addParam("A_cyk_id", $id);
		$link->addParam("A_op", 'same');

		if ($what == 'x')
			$link->addParam("What", $what);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony modyfikujacej dane przyporządkowania zadanie-grupa (Asys_mod).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function linkMod($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck, $zg, $what="") {
		$link = new CLink ("Asys_mod", "Asys_mod");
		$link->addFirstParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		$link->addParam("Zad_gr", $zg);
		if ($what == 'x')
			$link->addParam("What", $what);
		return ($link->get("$text"));
	}

	/** Funkcja wypisujaca link do strony raportujacej (Asys_wraport).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 * @param string $c
	 */
	function linkWraport($text, $id_zadania, $numer_grupy, $id, $przed, $cdyd, $ck) {
		$link = new CLink ("Asys_wraport", "Asys_wraport");
		$link->addParam("Numer_zadania", $id_zadania);
		$link->addParam("Numer_grupy", $numer_grupy);
		$link->addParam("Id_w_cyklu", $id);
		$link->addParam("Przedmiot_gr", $przed);
		$link->addParam("Cykl_gr", $cdyd);
		$link->addParam("Cykl_nazwa_gr", $ck);
		//$link->addParam("What", $co);
		return ($link->get("$text"));
	}

	/** Funkcja usuwajaca z sesji dane danej osoby.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function delPersonData() {
		global $sess;

		$sess->del("Agrupa");
		$sess->del("Aosoba");
		$sess->del('Aosoba_zadania');
	}

	/** Funkcja wypisujaca dane zadan oddanych przez dana osobe.
	 *
	 * Funkcja może wypisywać aktualne lub wszystkie zadania. Decyduje o tym parametr $all.
	 * @param int $nr - numer osoby (aby moznabylo zrobic link strony do samej siebie)
	 * @param string $all
	 * @author Lukasz Chmielewski
	 * @version 0.3
	 */
	function printPersonExercises($nr,$all) {
		global $sess;
		global $katalog_docelowy;

		$zadania = &$sess->get("Aosoba_zadania");
		if (count($zadania) > 0) {
			$tab = new CTable(8,"asys_ttable");
			$tab->setLight();
			$tab->addField("Zadanie");
			$tab->addField("Termin Ostateczny");
			$tab->addField("Data Oddania");
			$tab->addField("T1");
			$tab->addField("T2");
			$tab->addField("TG");
			$tab->addField("STATUS");
			$tab->addField("Pobierz");
			$ile = 0;

			foreach($zadania as $key => $row) {
				if ($all == '') {
					if ($row['st'] != 'A')
						continue;
				}
				$ile++;
				$pom1 = $row["tm2"];
				if ($pom1 == "")
					$pom1 = 'BRAK';
				$pom2 = $row["grtm"];
				if ($pom2 == "")
					$pom2 = 'BRAK';
				$textpom = "Termin1:".$row["tm1"]." Termin2:".$pom1." Termin grupy:".$pom2;

				$pom1 = $sess->get("Agrupa");
				$pom2 = linkZadanie($row["nz"], $row['zad'], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom3 = $row["num"];
				$pom4 = linkZadanie($row["tm"], $row['zad'], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom5 = linkZadanie($row["od"], $row['zad'], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);

				if ($row["wyn1"] == '0')
					$text = 'po';
				if ($row["wyn1"] == '1')
					$text = 'poblaż';
				if ($row["wyn1"] == '2')
					$text = 'przed';
				$pom6 = $text;
				if ($row["tm2"] == '')
					$text = 'brak';
				else {
					if ($row["wyn2"] == '0')
						$text = 'po';
					if ($row["wyn2"] == '1')
						$text = 'poblaż';
					if ($row["wyn2"] == '2')
						$text = 'przed';
				}
				$pom7 = $text;
				if ($row["tm3"] == '')
					$text = 'brak';
				else {
					if ($row["wyn3"] == '0')
						$text = 'po';
					if ($row["wyn3"] == '1')
						$text = 'poblaż';
					if ($row["wyn3"] == '2')
						$text = 'przed';
				}
				$pom8 = $text;

				if ($row["st"] == 'A')
					$pom9 = 'aktualne';
				else
					$pom9 = 'stare';

				$pom10 = $katalog_docelowy.$row["fl"];

				$tab->addField("<H4 TITLE=\"$textpom\">".$pom2." nr.:".$pom3."<BR><BR></H4>");
				
				$tab->addField($pom4." <BR><BR>");
				$tab->addField($pom5." <BR><BR>");
				$tab->addField($pom6." <BR><BR>");
				$tab->addField($pom7." <BR><BR>");
				$tab->addField($pom8." <BR><BR>");
				$tab->addField($pom9." <BR><BR>");
				if ($row['st'] == 'A') {
					$tab->addField("<a href=\"$pom10\">P</a>"." <BR><BR>");
				}
				else {
					$tab->addField("");
				}
				
				if ($parity=="even") $parity="odd";
					else $parity="even";
			}
			if ($ile == 0)
				print("BRAK!<BR>");
			else
				$tab->close();
		}
		else {
			print("BRAK!<BR>");
		}
		if ($all == '') {
			$p = linkOsoba("<CENTER>!Wszystkie!</CENTER>", $nr , 
			$sess->getTab("Agrupa","gr"), $sess->getTab("Agrupa","cyk"), 
			$sess->getTab("Agrupa","przed"), $sess->getTab("Agrupa","cgr"), 
			$sess->getTab("Agrupa","cngr"), '1');
		}
		else {
			$p = linkOsoba("<CENTER>!Aktualne!</CENTER>", $nr , 
			$sess->getTab("Agrupa","gr"), $sess->getTab("Agrupa","cyk"), 
			$sess->getTab("Agrupa","przed"), $sess->getTab("Agrupa","cgr"), 
			$sess->getTab("Agrupa","cngr"));
		}
		print("<BR><BR>");
		print($p."<BR>");
		//print("<BR><BR>");
	}

	/** Funkcja wypisujaca dane danej osoby (brane z sesji).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function printPerson() {
		global $sess;
		global $Przedmiot_gr;

		$osoba = &$sess->get("Aosoba");
		$tab = new CTable(2,"asys_op");
		$tab->setLight(15);
		//$parity = "even";
		$tab->addField('Pesel');
		$tab->addField($osoba["pes"]);
		$tab->addField('Indeks');
		$tab->addField($osoba["ind"]);
		$tab->addField('Imie');
		$tab->addField($osoba["im"]);
		$tab->addField('Nazwisko');
		$tab->addField($osoba["nz"]);
		$tab->addField('Płeć');
		$tab->addField($osoba["pl"]);
		$tab->addField('Email');
		$tab->addField("<A HREF=mailto:".$osoba["em"]."&subject=".$Przedmiot_gr.">".$osoba["em"]."</A>
");
		$tab->close();
		//print("<BR>");
	}

	/** Funkcja wypisujaca dane danego zadania (brane z sesji).
	 *
	 * Dosc skomplikowane pobieranie dancyh poziomu sprawdzania zadania i zakresu sprawdzania zadania.
	 * @author Lukasz Chmielewski
	 * @version 0.2
	 */
	function printExercise() {
		global $sess;

		$zadanie = &$sess->get("Azadanie");
		$tab = new CTable(2, "asys_ttable1");
		$tab->setLight(15);
		$tab->addField('Zadanie');
		$tab->addField($zadanie["nz"]);
		$tab->addField('Numer Zadania');
		$tab->addField($zadanie["nr"]);
		$tab->addField('Link URL');
		$linkurl = $zadanie["url"];
		$tab->addField("<a href=\"$linkurl\">$linkurl</a>");
		$tab->addField('Termin przedmiotu 1');
		$tab->addField($zadanie["tm1"]);
		$tab->addField('Termin przedmiotu 2');
		$tab->addField($zadanie["tm2"]);
		$tab->addField('Termin grupy');
		$tab->addField($zadanie["grtm"]);
		$tab->addField('Pobłażanie');
		$tab->addField($zadanie["pb"]);
		$tab->addField('Zakres sprawdzania (przedmiot)');
/*		$tab->addField($zadanie["zad_zak"]);*/

		if ($zadanie["zad_zak"] == 0) {
			$tab->addField("Brak");
		}
		else if ($zadanie["zad_zak"] == 1) {
			$tab->addField("w obrebie grupy");
		}
		else if ($zadanie["zad_zak"] == 3) {
			$tab->addField("w obrebie przedmiotu");
		}

		$tab->addField('Poziom sprawdzania (przedmiot)');
		$def = $zadanie["zad_poz"];
/*		$tab->addField($zadanie["zad_poz"]);*/

		$licz1 = $def % 2;
		$w1 = floor ($def / 2);
		$licz2 = $w1 % 2;
		$w2 = floor ($w1 / 2);
		$st = "";

		if ($licz1 == 1) {
			$st = $st."slowa kluczowe; ";
		}

		if ($licz2 == 1) {
			$st = $st."diff; ";
		}

		$st = $st."moduł:".$w2;

		$tab->addField($st);

		$tab->addField('Zakres sprawdzania (grupa)');
/*		$tab->addField($zadanie["gr_zak"]);*/

		if ($zadanie["gr_zak"] == 0) {
			$tab->addField("Brak");
		}
		else if ($zadanie["gr_zak"] == 1) {
			$tab->addField("w obrebie grupy");
		}
		else if ($zadanie["gr_zak"] == 3) {
			$tab->addField("w obrebie przedmiotu");
		}

		$tab->addField('Poziom sprawdzania (grupa)');

		$def = $zadanie["gr_poz"];

		$licz1 = $def % 2;
		$w1 = floor ($def / 2);
		$licz2 = $w1 % 2;
		$w2 = floor ($w1 / 2);
		$st = "";

		if ($licz1 == 1) {
			$st = $st."slowa kluczowe; ";
		}

		if ($licz2 == 1) {
			$st = $st."diff; ";
		}

		$st = $st."moduł:".$w2;

		$tab->addField($st);

		//$tab->addField($zadanie["gr_poz"]);
		$tab->addField('Imie Autora');
		$tab->addField($zadanie["aut_im"]);
		$tab->addField('Nazwisko Autora');
		$tab->addField($zadanie["aut_nz"]);
		$tab->close();
		//print("<BR><BR>");
	}

	/** Funkcja pobierajaca z sesji malo danych danego zadania.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function getLittle() {
		global $sess;

		$zadanie = &$sess->get("Azadanie");
		$text = $zadanie["nz"]." nr. ".$zadanie["nr"];
		return $text;
	}

	/** Funkcja pobierajaca z sesji imie i nazwisko prowadzacego przedmiot.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function getLecturerName($k) {
		global $sess;

		$wykladowca = &$sess->getTab("Awykladowca",$k);
		$text = $wykladowca["im"]." ".$wykladowca["nz"];
		return $text;
	}

	/** Funkcja pobierajaca z sesji email prowadzacego przedmiot.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function getLecturerEmail($k) {
		global $sess;

		$wykladowca = &$sess->getTab("Awykladowca",$k);
		$text = $wykladowca["em"];
		return $text;
	}

	/** Funkcja pobierajaca z sesji wielkość tabeli wyladowca.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function getLecturerSize() {
		global $sess;

		$wykladowca = &$sess->get("Awykladowca");
		$text = count($wykladowca);
		return $text;
	}

	/** Funkcja wypisujaca liste osob, ktore oddaly dane zadanie.
	 *
	 * Funkcja może wypisywać osby które oddały aktualne, lub wszystkie zadania. Decyduje o tym parametr $all. Nie jest dla mnie jasne czy to bedzie potrzebne.
	 * @param string $all
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function printExercisePersons($all) {
		global $sess;
		global $katalog_docelowy;
		
		//print($all);
		$osoby = &$sess->get("Zadanie_osoby");
		if (count($osoby) > 0) {
			$tab = new CTable(7,"asys_ttable");
			$tab->setLight();
			$tab->addField("Imie");
			$tab->addField("Nazwisko");
			$tab->addField("Data Oddania");
			$tab->addField("Przyjęte");
			$tab->addField("Indeks");
			$tab->addField("Status");
			$tab->addField("Pobierz");
			//print (",".$all.",");
			$ile = 0;

			foreach($osoby as $key => $row) {
				if ($all == '') {
					if ($row['st'] != 'A')
						continue;
				}
				$ile++;
				$pom1 = $sess->get("Agrupa");
				$pom2 = linkOsoba($row["im"], $row["stud"], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom3 = linkOsoba($row["nz"], $row["stud"], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom4 = linkOsoba($row["od"], $row["stud"], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				if ($row["tm"] == 1)
					$text = 'T';
				else 
					$text = 'N';
				$pom5 = linkOsoba($text, $row["stud"], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				$pom6 = linkOsoba($row["ind"], $row["stud"], $pom1["gr"], $pom1["cyk"], $pom1["przed"], $pom1["cgr"], $pom1["cngr"]);
				if ($row["st"] == 'A')
					$pom7 = 'aktualne';
				else
					$pom7 = 'stare';
				
				$pom8 = $katalog_docelowy.$row["fl"];

				$tab->addField($pom2." <BR><BR>");
				$tab->addField($pom3." <BR><BR>");
				$tab->addField($pom4." <BR><BR>");
				$tab->addField($pom5." <BR><BR>");
				$tab->addField($pom6." <BR><BR>");
				$tab->addField($pom7." <BR><BR>");
				if ($row['st'] == 'A') {
					$tab->addField("<a href=\"$pom8\">P</a>"." <BR><BR>");
				}
				else {
					$tab->addField("");
				}
			}
			if ($ile == 0)
				print("BRAK!<BR>");
			else
				$tab->close();
		}
		else {
			print("BRAK!<BR>");
		}
		if ($all == '') {
			$p = linkZadanie("<CENTER>!Wszystkie!</CENTER>", 
			$sess->getTab("Azadanie","id"), $sess->getTab("Agrupa","gr"),
			$sess->getTab("Agrupa","cyk"), $sess->getTab("Agrupa","przed"),
			$sess->getTab("Agrupa","cgr"), $sess->getTab("Agrupa","cngr"),
			'1');
		}
		else {
			$p = linkZadanie("<CENTER>!Aktualne!</CENTER>", 
			$sess->getTab("Azadanie","id"), $sess->getTab("Agrupa","gr"),
			$sess->getTab("Agrupa","cyk"), $sess->getTab("Agrupa","przed"),
			$sess->getTab("Agrupa","cgr"), $sess->getTab("Agrupa","cngr"),
			"");
		}
		print("<BR><BR>");
		print($p."<BR>");
		//print("<BR><BR>");
	}

	/** Funkcja wypisujaca dane raportu o danym zadaniu.
	 *
	 * Wyświetlane są dane za pomocą drzewa (aby zobaczyć więcej moża je rozwinąć).
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function printRaport($gr,$Id, $Przedmiot, $Cykl, $Cyklnazwa) {
		global $sess;

		$raport = &$sess->get("Azadanie_raport");
		if (count($raport) > 0) {

			foreach($raport as $key => $row) {

				$tab = new CTable(9,"asys_ttable2");
				$tab->setLight();
				$tab->addField("");
				$tab->addField("Imie");
				$tab->addField("Nazwisko");
				$tab->addField("Imie");
				$tab->addField("Nazwisko");
				$tab->addField("Grupa");
				$tab->addField("Imie");
				$tab->addField("Nazwisko");
				$tab->addField("Opis");

				$treeLink = &$sess->get("Acenterlink");
				$treeLink->addParam('Key', $key);
				//print ($treeLink."ja");

				if ($row["unrolled"] == 't') {
					$treeLink->addParam('What', 'roll');
					$imgSrc = './gfx/minus.gif';
				}
				else {
					$treeLink->addParam('What', 'unroll');
					$imgSrc = './gfx/plus.gif';
				}
				$pom1 = ($treeLink->get("<img align=\"center\" src=\"$imgSrc\"> "));
				if ($gr == $row["gr1"]) {
					$pom2 = linkOsoba($row["im1"], $row["st1"], $gr, $Id, $Przedmiot, $Cykl, $Cyklnazwa);
					$pom3 = linkOsoba($row["nz1"], $row["st1"], $gr, $Id, $Przedmiot, $Cykl, $Cyklnazwa);
				}
				else {
					$pom2 = $row["im1"];
					$pom3 = $row["nz1"];
				}
				if ($gr == $row["gr2"]) {
					$pom4 = linkOsoba($row["im2"], $row["st1"], $gr, $Id, $Przedmiot, $Cykl, $Cyklnazwa);
					$pom5 = linkOsoba($row["nz2"], $row["st1"], $gr, $Id, $Przedmiot, $Cykl, $Cyklnazwa);
				}
				else {
					$pom4 = $row["im2"];
					$pom5 = $row["nz2"];
				}
				$pom6 = $row["kto"];
				$pom7 = $row["im3"];
				$pom8 = $row["nz3"];
				$pom9 = $row["op"];

				$tab->addField($pom1);
				$tab->addField($pom2);
				$tab->addField($pom3);
				$tab->addField($pom4);
				$tab->addField($pom5);
				$tab->addField($pom6);
				$tab->addField($pom7);
				$tab->addField($pom8);
				$tab->addField($pom9);
				$tab->close();

				//print (",".$row['unrolled'].",");
				if ($row["unrolled"] == 't') {
					$tab = new CTable(9,"asys_ttable2");
					$tab->setLight();
					$tab->addField("Email");
					$tab->addField("Email");
					$tab->addField("Email");
					$tab->addField("Diff 1");
					$tab->addField("Diff 2");
					$tab->addField("Mod 1");
					$tab->addField("Mod 2");
					$tab->addField("Mod 3");
					$tab->addField("WC");
					$tab->addField("<A HREF=mailto:".$row["em1"]."&subject="."Plagiat".">".$row["em1"]."</A>
");
					$tab->addField("<A HREF=mailto:".$row["em2"]."&subject="."Plagiat".">".$row["em2"]."</A>
");
					$tab->addField("<A HREF=mailto:".$row["em3"]."&subject="."Plagiat".">".$row["em3"]."</A>
");
					$tab->addField($row["df1"]);
					$tab->addField($row["df2"]);
					$tab->addField($row["md1"]);
					$tab->addField($row["md2"]);
					$tab->addField($row["md3"]);
					$tab->addField($row["wc"]);
					$tab->close();
					print("<BR><BR>");
				}
			}
			$sess->del("Acenterlink");
		}
		else {
			print("BRAK!<BR>");
		}
	}

	/** Funkcja usuwajaca z sesji dane danego zadania.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function delExerciseData() {
		global $sess;

		$sess->del("Agrupa");
		$sess->del('Azadanie_osoby');
		$sess->del("Azadanie");
	}

	/** Funkcja usuwajaca z sesji ,,małe'' dane danego zadania.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function delLittleData() {
		global $sess;

		$sess->del("Azadanie");
	}

	/** Funkcja usuwajaca z sesji dane raportu. 
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function delRaportData($a = "") {
		global $sess;

		if ($a != ""){
			$sess->del("Azadanie_raport");
			$sess->del("Araport");
		}
	}

	/** Funkcja usuwajaca z sesji dane do zmodyfikowania.
	 * @author Lukasz Chmielewski
	 * @version 0.1
	 */
	function delModData() {
		global $sess;

		$sess->del("Amod");
	}
?>