<?php
$output ='';
$output.='<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<title>MC Test</title>

<link href="MC%20Test-Dateien/mctest.css" type="text/css" rel="stylesheet">^
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<body>
';
	session_start();
	#Cookies auslesen
	if(isset($_COOKIE["session"])) {
		foreach(json_decode($_COOKIE["session"],true) as $key => $val)  $_SESSION[$key]=$val; 
	}
	#Retest initialisieren
	if(!isset($_SESSION['retest'])) $_SESSION['retest']=array(NULL,NULL,NULL,NULL,NULL);
	if(sizeof($_SESSION['retest']) < 3 ) $_SESSION['retest']=array(NULL,NULL,NULL,NULL,NULL);
	
	#Kursliste bauen
	$courses=array();
	#$course_array=array("03443","03443_HLM","03444","03444_SEM","03445","03445_1","M1_PK","Klausur_SS20_MM3","03461","03461_Quiz","03462","03463","03464","M4_Quiz_OHP","M4_Klausur_SS20","M4_Klausur_WS20","M4_Moodle_OHP","M4_Quiz_PA","M4_Moodle_PA","03440_c2b","03440","03441_c2b","03441","03442_c2b","03442","M10-03440_sf","M10-03441_sf","M10","M6_3471","M6_3472","M8_KT","M8_F2","M8_F3","M8_Oxana");
	$course_array=array("03443","03443_HLM","03444","03444_SEM","03445","03445_1","M1_PK","M5_Vorschule","M5_Schule","M5_Hochschule","M5_Erwachsene","M5_Sonstige","M6_3471","M6_3472","M6_3473");
	#$course_array=array("03443","03443_HLM","03444","03444_SEM","03445","03445_1","M1_PK","Klausur_SS20_MM3","03461","03461_Quiz","03462","03463","03464","M4_Quiz_OHP","M4_Klausur_SS20","M4_Klausur_WS20","M4_Moodle_OHP","M4_Quiz_PA","M4_Moodle_PA","M6_3471","M6_3472","M6_3473","M8_KT","M8_F2","M8_F3","M8_Oxana");
	#Kursdateiliste aus POST regenerieren
	foreach($course_array as $course_file) {
		if(isset($_POST[$course_file])) array_push($courses,$_POST[$course_file]);
	}
	#Wenn Kursdateiliste leer dann initialisieren
	if(sizeof($courses) == 0) $courses=array("M6_3471");
	#Alle Zähler aus der Session einlesen
	foreach(array('answered','correct','incorrect','question_id') as $key) if(!isset($_SESSION[$key])) $_SESSION[$key]=0;
	$questions=array();
	#Baue Frageliste dur Einlesen der Kursdateien auf
	foreach($courses as $course_file) {
		$questions_in=json_decode(file_get_contents($course_file.".json"),true);
		foreach($questions_in as $question) array_push($questions,$question);
	}
	#Wenn ein Restart verlangt wird initilaisiere alle Zähler neu
	if(isset($_POST["restart"])) {
		foreach(array('answered','correct','incorrect','question_id') as $key) $_SESSION[$key]=0;	
		$_SESSION['retest']=array(NULL,NULL,NULL,NULL,NULL);
	}
	if(isset($_POST["mode"])) {
		$mode=$_POST["mode"];
	} else {
		$mode="linear";
	}
	if($mode=="") $mode="linear";
	if(isset($_POST["retest"])) {
		$retest=$_POST["retest"];
	} else {
		$retest="off";
	}
	if($retest=="") $retest="off";
	#Antwort behandeln
	if(isset($_POST["question"])) {
		$question_id=htmlspecialchars($_POST["question"]);
		$answer = "";
		if(isset($_POST["answer"])) $answer.=$_POST["answer"];	
                foreach(array("a","b","c","d","e","f","g","i","h","j","k","l","m") as $key) if(isset($_POST[$key])) $answer.=$key;
	} else {
		$question_id=$_SESSION['question_id']++;
		if($_SESSION['question_id'] == sizeof($questions)) $_SESSION['question_id']=0;
		if($mode == "random") $question_id=array_rand($questions);
		if(isset($_POST["jumpto"])) if(is_numeric($_POST["jumpto"])) if($_POST["jumpto"] > 0 && $_POST["jumpto"] < sizeof($questions) ) $_SESSION['question_id']=($question_id=$_POST["jumpto"]-1)+1;
		$_SESSION['retest_val']=array_shift($_SESSION['retest']);
		if($_SESSION['retest_val'] && $retest=="on") {
			$question_id=$_SESSION['retest_val']['id'];
			$_SESSION['question_id']--;
		}
	}
	#Form erzeugen
	$question=$questions[$question_id];
	#$output.="<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
	$output.="<form name='answer' method='post' action='index.php'>MM1: \n";
	foreach($course_array as $value) {
		$output.="<input type='checkbox' name='".$value."' value='".$value."' ";
		if(in_array($value,$courses)) $output.="checked";
		#$output.=">".$value."</input>\n";
		$output.='><a href="/dl.php?name=' . $value .'">'.$value."</a></input>\n";
		if($value == "03435") $output.="<br>M2: ";
		if($value == "33254") $output.="<br>M3: ";
		if($value == "M3-03414_sf") $output.="<br>M4: ";
		if($value == "03410") $output.="<br>M5: ";
		if($value == "03406") $output.="<br>M6: ";
		if($value == "03421") $output.="<br>M7: ";
		if($value == "M7_WS15") $output.="<br>M8: ";
		if($value == "M1_PK") $output.="<br>MM5: ";
		if($value == "03464") $output.="<br>MM4: ";
                if($value == "M5_Sonstige") $output.="<br>MM6: ";
		#if($value == "M6_3473") $output.="<br>MM8: ";
	}
	$output.="<br>";
	#$output.="<tab indent=10>";

	foreach(array('linear' => 'Linear', 'random' => "Zufällig") as $key => $value) {
		$output.="<input type='radio' name='mode' value='".$key."' ";
		if($mode == $key) $output.="checked";
		$output.=">".$value."</input>\n";
	}
	#$output.=" Retest ";
	foreach(array('off' => 'Retest Aus', 'on' => "Retest An") as $key => $value) {
		$output.="<input type='radio' name='retest' value='".$key."' ";
		if($retest == $key) $output.="checked";
                       $output.=">".$value."</input>\n";
	}
        #$output.=" (Falsch beantwortete Fragen werden erneut gefragt)";
	$output.="<br><br>";
	$output.="<table>\n" ;
	$output.=' <colgroup> <col width="3%"> <col width="97%"></colgroup>';
	$output.="<tr class='alert'><td><td><h4>Kurs: ".$question['course']." Kapitel: ".$question['chapter_id']."<br>".($question_id+1).". Frage : ".$question['question']."</h4>";
	$output.="</td>";
/*	if(strlen(trim($question['solution'])) == 1) {
		$output.="<td>1 aus 5</td>";
	} else {
		$output.="<td>n aus 5</td>";
	}
*/
	$output.="</tr>\n\n";
	#if(strlen(trim($question['solution'])) == 1) {
	#	$i_type="radio";
	#} else {
		$i_type="checkbox";
	#}
	foreach($question['items'] as $n => $item) {
		$color=" class='alert'";
		$checked="";
		if(strlen(trim($question['solution'])) == 1) {
			$i_name="answer";
		} else {
			$i_name=chr(ord("a")+$n);
		}
		if(isset($_POST["question"])) {
			if(strstr($answer,chr(ord("a")+$n))) $checked="checked";
			if(strstr(trim($question['solution']),chr(ord("a")+$n))) {
				if($answer == trim($question['solution'])) {
					$color=" class='alert alert-success'";
				} else {
					$color=" class='alert alert-danger'";
				}
			}
		}
			
		$output.="<tr".$color."><td><input type='".$i_type."' name='".$i_name."' value='".chr(ord("a")+$n)."' ".$checked."><td".$color.">".$item."</td></tr>\n\n";
	}
	$output.="</table>\n";
	$output.="<button type='submit' class='btn btn-default'>Weiter</button>\n";
	if(isset($_POST["question"])) $output.="<button type='submit' name='restart' class='btn btn-default'>Neustart</button>\n";
	if(!isset($_POST["question"])) $output.="<input name='question' type='hidden' value='".$question_id."'>\n";
	if(isset($_POST["question"])) $output.="Springe zu Frage <input  value='' size=3 name='jumpto' >\n";
	$output.="</form>\n";
	if(isset($_POST["question"])) {
		if(!$_SESSION['retest_val']) $_SESSION['answered']++;
		if($answer == trim($question['solution'])) {
			if(!$_SESSION['retest_val']) $_SESSION['correct']++;
			if($_SESSION['retest_val']) {
				$error_count=$_SESSION['retest_val']['error_count']-1;
				if($error_count) {
					array_push($_SESSION['retest'],array('id' => $question_id,'error_count' => $error_count));					
				} else {
					$_SESSION['correct']++;
					$_SESSION['incorrect']--;
				}

			} else {
				array_push($_SESSION['retest'],NULL);
			}
		#$output.="<br><br>\n<span class='true'>RICHTIG !!!</span>\n\n";
		} else {
			if(!$_SESSION['retest_val']) $_SESSION['incorrect']++;
			array_push($_SESSION['retest'],array('id' => $question_id,'error_count' => 2));
			$output.="<br><br>\n";
			#$output.="<span class='false'>FALSCH !!! </span>";
			#if (trim($question['solution_comment']) !="" ) $output.="Hinweis : ".trim($question['solution_comment'])."\n\n";
		}
		if (trim($question['solution_comment']) !="" ) $output.="<p>Hinweis : ".htmlentities(trim($question['solution_comment']),ENT_COMPAT | ENT_HTML401 , "utf-8")."</p>\n\n";

	}
	$output.="<br>".$_SESSION['correct']."/".$_SESSION['incorrect']."/".$_SESSION['answered']."/".sizeof($questions)."<br>\n";
	if($retest=="on") {
		$output.="<br>Fragen im Retest: ";
		foreach($_SESSION['retest'] as $val) if($val) $output.=($val['id']+1)." ";
	}
	$output.="</div>\n</body>\n</html>\n";
	setcookie("session", json_encode($_SESSION), time() + (86400 * 30), "/");
	echo $output;
	
?>
