<html>
<head>
<title>Fragebogen  zur Basispr&uuml;fung Erd- und Produktionssysteme</title>
<style type="text/css">
<!--
/*standart def.*/
body, h1, h2, h3, h4, th, td, span {
font-family:Verdana, Helvetica, Arial;
color:#000000;
background-color:#FFFFFF;
}

span {
color:red;
font-weight:bold;
}
-->
</style>
</head>
<body>
<h1>Fragebogen zur Basispr&uuml;fung Erd- und Produktionssysteme</h1>
Liebe Mitstudentinnen und -studenten wir bitten Dich ein paar Minuten Zeit zu nehmen und Dich durch den Fragebogen durchzuklicken.

<?

function check_all(&$HTTP_POST_VARS, &$alle_fragen)
 {
  // Alles auf Falsch setzen
  array_walk(&$alle_fragen, 'all_false');
  array_walk(&$alle_fragen, 'check_value', &$HTTP_POST_VARS);
 }

function all_false(&$frage)
 {
  $frage["Fehler"] = TRUE;
 }  

function check_value(&$frage, $key, &$HTTP_POST_VARS)
 {
  $fehler = TRUE;
  if($key == "zusammenfassung_panel_")
   {
    $panel = 6;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_0"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_1"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_2"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_3"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_4"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_5"])) $panel--;
    if(isset($HTTP_POST_VARS["zusammenfassung_panel_6"])) $panel--;
    if($panel == 0)
    $fehler = FALSE;
   }
  else
   {
    if(isset($HTTP_POST_VARS["$key"]))
     {
      $fehler = !zahl($HTTP_POST_VARS["$key"]);
      // Alle Spezialfälle
      if($key == "note_wert")
       {
        $fehler = !note($HTTP_POST_VARS["$key"]);
       }
      if($key == "jahrgang")
       {
        $fehler = !jahrgang($HTTP_POST_VARS["$key"]);
       }
      if($key == "zeit_gruppe")
       {
        if($HTTP_POST_VARS["$key"] > $HTTP_POST_VARS["zeit_alleine"])
         $fehler = TRUE;
       }
     }
   }
  // setzen
  $frage["Fehler"] = $fehler; 
 }  

// positive reelle zahl?
function zahl($zahl)
 {
  $float_zahl = abs(floatval($zahl));
  // "" um Variable ist wichtig damit beide in eine String umgewandelt werden.
  if("$float_zahl" == "$zahl") return TRUE;
  return FALSE;
 }

// Fehlertext
function fehler()
 {
  echo "<br>\n<span>Bitte eine (korrekte) Antwort geben!</span>";
 }

function question($frage, &$HTTP_POST_VARS)
 {
  if(isset($frage["Buttontext"]))
   {
    if(isset($frage["Titeltext"]))
     {
      panel_question($frage, &$HTTP_POST_VARS, $fehler, $leer);
     }
    else
     {
      button_question($frage, &$HTTP_POST_VARS, $fehler, $leer);
     }
   }
  else
   {
    value_question($frage, &$HTTP_POST_VARS, $fehler, $leer);
   }
 }

function button_question($frage, &$HTTP_POST_VARS, $fehler, $leer)
{
 echo $frage["Text"];
 if($frage["Fehler"])
  {
   fehler();
  }
 echo "<br>\n";
 $i = 1;
 foreach ($frage["Buttontext"] as $button)
  {
   echo "<input type=\"radio\" name=\"".$frage["Variable"]."\" value=\"".$i."\"";
   if($HTTP_POST_VARS[$frage["Variable"]] == $i)
    {
     echo " checked=\"checked\"";
    }
   echo ">";
   echo " ".$button."\n";
   $i++;
  }
 echo "<br>\n<br>\n";
}

function value_question($frage, &$HTTP_POST_VARS, $fehler, $leer)
{
 echo $frage["Text"];
 if($frage["Fehler"])
  {
   fehler();
  }
 echo "<br>\n";
 echo "<input type=\"text\" name=\"".$frage["Variable"]."\" size=\"".$frage["Feldlänge"]."\" maxlength=\"".$frage["Feldlänge"]."\" value=\"";
 echo $HTTP_POST_VARS[$frage["Variable"]]."\">";
 echo " ";
 echo $frage["Einheit"];
 echo "<br>\n<br>\n";
}

function panel_question($frage, &$HTTP_POST_VARS, &$fehler)
{
 echo $frage["Text"];
 if($frage["Fehler"])
  {
   fehler();
  }
 echo "<br>\n";
 echo "<table>\n";
 // erste Zeile
 echo "<tr>\n";
 echo " <td>&nbsp;</td>\n";
 foreach ($frage["Titeltext"] as $text)
  {
   echo " <td>".$text."</td>\n";
  }
 echo "</tr>\n";
 
 $j=1;
 foreach ($frage["Buttontext"] as $text)
  {
   echo "<tr>\n";
   echo " <td>".$text."</td>\n";
   for($i=0;$i<6;$i++)
    {
     echo " <td>";
     echo "<input type=\"radio\" name=\"".$frage["Variable"].$i."\" value=\"".$j."\"";
     if($HTTP_POST_VARS[$frage["Variable"].$i] == $j)
      {
       echo " checked=\"checked\"";
      }
     echo ">";
     echo "</td>\n";
    }
   echo "</tr>\n";
   $j++;
  }
 
 echo "</table>\n";
 echo "<br>\n<br>\n";
}

function note($note)
 {
  $note = $note*4;
  if( ( ($note) < 4) || ( ($note) > 24) )
   {
    return FALSE;
   }
  else
   {
    $int_note = abs(intval($note));
    // "" um Variable ist wichtig damit beide in eine String umgewandelt werden.
    if("$int_note" == "$note")
     {
      return TRUE;
     }
    else
     {
      return FALSE;
     }
   }
 }

function jahrgang($jahrgang)
 {
  if( ($jahrgang > 1986) || ($jahrgang < 1944) )
   {
    return FALSE;
   }
  else
   {
    return TRUE;
   }
 }

// Fragen zahlenwert (Text, Variable, Feldlänge, Einheit, Fehler)
// Fragen button (Text, Variable, Buttontext, Fehler)
// Fragen panel (Text, Titeltext, Variable, Buttontext, Fehler)

$frage[zeit_alleine] = array(
"Text" => "<h2>Vorbereitung</h2>Wie lange hast du gelernt (<b>ohne</b> schreiben der Zusammenfassung)?",
"Variable" => "zeit_alleine",
"Feldlänge" => 4,
"Einheit" => "Halbtage",
"Fehler" => FALSE);

$frage[zeit_gruppe] = array(
"Text" => "Wieviel davon hast du in der Gruppe gearbeitet?",
"Variable" => "zeit_gruppe",
"Feldlänge" => 4,
"Einheit" => "Halbtage",
"Fehler" => FALSE);

$frage[stoff_aktiv_beherrscht] = array(
"Text" => "Wieviel des Stoffes hast du aktiv beherrscht?",
"Variable" => "stoff_aktiv_beherrscht",
"Buttontext" => array("fast alles","viel","wichtigste Prinzipien", "nur Stoff von Interesse", "wenig"),
"Fehler" => FALSE);

$frage[zusammenfassung_zeit] = array(
"Text" => "<h2>Zusammenfassung</h2>Wieviel Zeit hast du f&uuml;r die Zusammenfassung gebraucht?",
"Variable" => "zusammenfassung_zeit",
"Feldlänge" => 4,
"Einheit" => "Halbtage",
"Fehler" => FALSE);

$frage[zusammenfassung_gruppe] = array(
"Text" => "Hast du die Zusammenfassung alleine oder in einer Gruppe gemacht?",
"Variable" => "zusammenfassung_gruppe",
"Buttontext" => array("alleine", "alleine und in der Gruppe", "in der Gruppe"),
"Fehler" => FALSE);

$frage[zusammenfassung_panel_] = array(
"Text" => "Bitte ankreuzen wie du bei welchem Dozent/Fachgebiet vorgegangen bist:",
"Titeltext" => array("Alexander N. Halliday<br>Geologie",  "Alan G. Green<br>Plattentektonik", "Peter Rieder<br>&ouml;konomische Aspekte", "Jean-Pierre Sorg<br>Wald", "Emmanuel Frossard<br>landwirtschaftliche Produktionssysteme", "Christoph Sch&auml;r<br>Kilma"),
"Variable" => "zusammenfassung_panel_",
"Buttontext" => array("alleine", "vom Kollegen abgeschrieben", "zusammen"),
"Fehler" => FALSE);

$frage[zusammenfassung_kompakt] = array(
"Text" => "Wie kompakt war deine Zusammenfassung?",
"Variable" => "zusammenfassung_kompakt",
"Buttontext" => array("extrem kompakt","kompakt","normal", "grossz&uuml;gig", "sehr grossz&uuml;gig"),
"Fehler" => FALSE);

$frage[zusammenfassung_ausfuehrung] = array(
"Text" => "Wie ausf&uuml;hrlich hast du sie formuliert?",
"Variable" => "zusammenfassung_ausfuehrung",
"Buttontext" => array("w&ouml;rtlich abgeschrieben", "gek&uuml;rzt aber vollst&auml;ndige S&auml;tze", "normal", "in groben Z&uuml;gen", "Stichworte"),
"Fehler" => FALSE);

$frage[zusammenfassung_abdeckung] = array(
"Text" => "Wie deckte deine Zusammenfassung die Pr&uuml;fung ab?",
"Variable" => "zusammenfassung_abdeckung",
"Buttontext" => array("fast vollst&auml;ndig", "sehr gut", "gut", "mittelm&auml;ssig", "schlecht"),
"Fehler" => FALSE);

$frage[zusammenfassung_auffinden] = array(
"Text" => "Hast du die n&ouml;tigen Informationen schnell gefunden?",
"Variable" => "zusammenfassung_auffinden",
"Buttontext" => array("schnell","nach kurzem suchen","nach langem suchen"),
"Fehler" => FALSE);

$frage[note_wert] = array(
"Text" => "<h2>Note</h2>Welche Note hattest du (falls nicht mehr bekannt, bitte <a href=\"http://www.einschreibung.ethz.ch\" target=\"blank_\">nachsehen</a>)?",
"Variable" => "note_wert",
"Feldlänge" => 4,
"Einheit" => "Note",
"Fehler" => FALSE);

$frage[note_einschaetzung] = array(
"Text" => "Wie war deine Note im Vergleich zu deinem Wissen?",
"Variable" => "note_einschaetzung",
"Buttontext" => array("viel zu hoch", "etwas zu hoch", "richtig", "etwas zu tief", "viel zu tief"),
"Fehler" => FALSE);

$frage[note_aufwand] = array(
"Text" => "Lohnte sich der Aufwand für die erhaltene Note?",
"Variable" => "note_aufwand",
"Buttontext" => array("sehr", "eher schon", "genau richtig", "kaum", "&uuml;berhaupt nicht"),
"Fehler" => FALSE);

$frage[note_interesse] = array(
"Text" => "Wie sehr interessierte dich dieses Fach?",
"Variable" => "note_interesse",
"Buttontext" => array("sehr", "eher schon", "neutral", "kaum", "&uuml;berhaupt nicht"),
"Fehler" => FALSE);

$frage[jahrgang] = array(
"Text" => "<h2>Allgemein</h2>Jahrgang?",
"Variable" => "jahrgang",
"Feldlänge" => 4,
"Einheit" => "Jahr vierstellig",
"Fehler" => FALSE);

$frage[geschlecht] = array(
"Text" => "Dein Geschlecht?",
"Variable" => "geschlecht",
"Buttontext" => array("weiblich", "m&auml;nnlich"),
"Fehler" => FALSE);

$frage[studiengang] = array(
"Text" => "Studiengang?",
"Variable" => "studiengang",
"Buttontext" => array("AGRO", "LM", "UMNW"),
"Fehler" => FALSE);

// MAIN

// Falls das Formular gesendet wurden Eingaben überprüfen
if($HTTP_POST_VARS["absenden"] == "absenden")
 {
  check_all(&$HTTP_POST_VARS, &$frage);
  $fehler = FALSE;
  foreach($frage as $eine_frage)
   {
    if($eine_frage["Fehler"])
     {
      $fehler = TRUE;
     }
   }
  if($fehler)
   {
    echo "<h2>Bitte korrigieren</h2>";
   }
  else
   {
    // Alle Daten schreiben
    // TODO in Datei schreiben
    echo "<h1>Besten Dank f&uuml;r deine Teilnahme!</h1>";
   }
 }

?>

<form method="POST" action="<? echo $_SERVER["PHP_SELF"]; ?>">
<h2>Zeitangaben</h2>
Die Zeit in halben Tagen angeben, ein Tag entspricht 8h, f&uuml;r keine Zeit aufgewendet 0 eintragen. Beispiel: 12h entspricht 1.5.

<?php
// TODO
// Hash check

foreach($frage as $eine_frage)
 {
  question($eine_frage, &$HTTP_POST_VARS);
 }
?>
<table>
<tr><td colspan="2" align="center"><input name="absenden" value="absenden" type="submit"><input name="Zur&uuml;cksetzen" value="reset" type="reset"></td></tr>
</table>

</form>

</body>
</html>