diff --git a/tools/analysis/VisualFAIL/CONFIGURATION.php b/tools/analysis/VisualFAIL/CONFIGURATION.php
index 6282fb84766e5c2d64e56cb9f8f7acfdefc43f61..60a7156887094049c41ff2fdf14a8fb7c660bc4a 100644
--- a/tools/analysis/VisualFAIL/CONFIGURATION.php
+++ b/tools/analysis/VisualFAIL/CONFIGURATION.php
@@ -1,10 +1,10 @@
-<?php
-//Datenbank
-$host = "localhost";
-$username = "";
-$password = "";
-$database = "";
-
-// Name der result-Tabelle
-$result_table = "result";
-?>
+<?php
+//Datenbank
+$host = "localhost";
+$username = "";
+$password = "";
+$database = "";
+
+// Name der result-Tabelle
+$result_table = "result";
+?>
diff --git a/tools/analysis/VisualFAIL/core.php b/tools/analysis/VisualFAIL/core.php
index 5c84d6a40b51026d7c194163f83ed180f540691c..198a7b5c8ef3e9fc0547ba57050af524e66da6ed 100644
--- a/tools/analysis/VisualFAIL/core.php
+++ b/tools/analysis/VisualFAIL/core.php
@@ -1,475 +1,475 @@
-<?php
-require('CONFIGURATION.php');
-//Datenbankverbindung aufbauen
-$verbindung = mysql_connect ($host,$username, $password)
-					or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
-
-mysql_select_db($database) or die ("Die Datenbank existiert nicht.");
-
-//Kommande lesen
-switch ($_GET['kommando']) 
-{
-	case "dbTest"			: dbTest();break;
-	case "getAsmCode"		: getAsmCode();break;
-	case "asmToSourceFile"	: asmToSourceFile();break;
-	case "getBinarys"		: getBinarys();break;
-	case "getVariants"		: getVariants();break;
-	case "getSourceFiles"	: getSourceFiles();break;
-	case "getResultTypes"		: getResulttypesOUT();break;
-	case "getHighlevelCode"	: getHighlevelCode();break;
-	case "resultsDB"		: resultsDB();break;
-	case "dechex"			: echo json_encode(dechex($_GET['dec']));break;
-}
-
-function dbTest()
-{
-	
-	$check = true;
-	
-	$abfrage = "SELECT 1 FROM objdump;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle objdump nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM fulltrace;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle fulltrace nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_filename;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_filename nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_mapping;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_mapping nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_methods;";
-	
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_methods nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_source;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_source nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_stacktrace;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_stacktrace nicht gefunden <br>');
-		return;
-	}
-	
-	$abfrage = "SELECT 1 FROM dbg_variables;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	if(!$ergebnis) {
-		echo json_encode('Tabelle dbg_variables nicht gefunden <br>');
-		return;
-	}
-}
-
-function getBinarys()
-{
-	$binarys = array();
-	
-	$abfrage = "SELECT benchmark FROM variant;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	
-	while($row = mysql_fetch_object($ergebnis))
-	{
-		array_push($binarys, $row->benchmark);
-	}
-	
-	$result = array_unique($binarys);
-	
-	echo json_encode($result);
-}
-
-function getVariants()
-{
-	$variants = array();
-	
-	$abfrage = "SELECT id, variant FROM variant WHERE benchmark = '" . $_GET['datei'] ."';";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	
-	while($row = mysql_fetch_object($ergebnis))
-	{
-		$variants[$row->id] = $row->variant;
-	}
-	
-	echo json_encode($variants);
-}
-
-function getSourceFiles() 
-{
-	$sourceFiles = array();
-	
-	$abfrage = "SELECT file_id, path FROM dbg_filename WHERE variant_id = '" . $_GET['variant']. "';";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	
-	while($row = mysql_fetch_object($ergebnis))
-	{
-		$sourceFiles[$row->file_id] = $row->path;
-	}
-	
-	echo json_encode($sourceFiles);
-}
-
-function asmCode()
-{
-	$content = "";
-	
-	$abfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id'] ."' ORDER BY instr_address;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	$content = $content;
-	while($row = mysql_fetch_object($ergebnis))
-	{
-		$content = $content . '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
-	}
-	echo json_encode($content);
-}
-
-function getAsmCode()
-{
-	$content = "";
-	$resulttypes = array();
-
-	$asmAbfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id'] ."' ORDER BY instr_address;";
-	
-	$asmcode = mysql_query($asmAbfrage);
-	
-	getResulttypes($resulttypes);
-	
-	$fehlerdaten = resultsDB($_GET['variant_id'], $_GET['version'], $resulttypes);
-	//$fehlerdaten = askDBFehler($_GET['variant_id'], $resulttypes, $_GET['version']);
-	
-	//print_r($fehlerdaten);
-	$content = '<div id="maxFehler" ';
-	foreach ($resulttypes as $value) {
-				$temp = $value . '="' . $fehlerdaten[max][$value] . '" ';
-				$content = $content . $temp;
-			}
-	$content = $content .' >';
-	while($row = mysql_fetch_object($asmcode))
-	{
-		if (array_key_exists($row->instr_address,$fehlerdaten[Daten])) {
-			$content = $content . '<span id="' . dechex($row->instr_address) . '" class="hasFehler" ';
-			
-			foreach ($resulttypes as $value) {
-				$temp = $value . '="' . $fehlerdaten[Daten][$row->instr_address][$value] . '" ';
-				$content = $content . $temp;
-			}
-			
-			$content  = $content . ' cursor: pointer;>' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
-		} else {
-			$content = $content . '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
-		}
-	}
-	
-	$content = $content . ' </div>';
-	
-	echo json_encode($content);
-}
-
-function getHighlevelCode()
-{
-	$content = "";
-	$resulttypes = array();
-	
-	getResulttypes($resulttypes);
-	
-	$kleinsteAdresseAbfrage = "SELECT instr_address FROM objdump WHERE variant_id = '" . $_GET['variant_id']. "' ORDER BY instr_address LIMIT 1;";
-	$kleinsteAdresseErgebnis = mysql_query($kleinsteAdresseAbfrage);
-	$kleinsteAdresse = mysql_fetch_object($kleinsteAdresseErgebnis);
-	
-	$highlevelCodeAbfrage = "SELECT linenumber, line FROM dbg_source WHERE variant_id = '" . $_GET['variant_id']. "' AND file_id = '" . $_GET['file_id']. "' ORDER BY linenumber;";
-	$mappingAbfrage = "SELECT instr_absolute, linenumber FROM dbg_mapping WHERE variant_id = '" . $_GET['variant_id']. "' AND file_id = '" . $_GET['file_id'] . "' AND instr_absolute >= '" . $kleinsteAdresse->instr_address . "' ORDER BY instr_absolute;";
-	
-	$highlevelCode = mysql_query($highlevelCodeAbfrage);
-	$mappingInfo = mysql_query($mappingAbfrage);
-	
-	$fehlerdaten = resultsDB($_GET['variant_id'], $_GET['version'], $resulttypes);
-	
-	$mappingRanges = array();
-	$numEntrysMapping = mysql_num_rows($mappingInfo);
-	
-	$row = mysql_fetch_object($mappingInfo);
-	
-	for ($i = 0; $i < $numEntrysMapping-1; $i++)
-	{
-		if(!is_array($mappingRanges[$row->linenumber])) {
-			$mappingRanges[$row->linenumber] = array();
-		}
-		$oldLineNumber = $row->linenumber;
-		$firstAddr = $row->instr_absolute;
-		$row = mysql_fetch_object($mappingInfo);
-		array_push($mappingRanges[$oldLineNumber], array($firstAddr, $row->instr_absolute));
-	}
-	
-	$mapping = array();
-	$maxFehlerMapping = array();
-	
-	foreach ($mappingRanges as $lineNumber => $value) {
-		$maxFehler = array();
-		foreach ($resulttypes as $val) {
-			$maxFehler[$val] = 0;
-		}
-		foreach ($value as $index => $ranges) {
-				$InstrMappingAbfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id']. "' AND instr_address > '" . $ranges[0] . "' AND instr_address < '" . $ranges[1] . "' ORDER BY instr_address;";
-				$mappingErgebnis = mysql_query($InstrMappingAbfrage);
-				//Leerzeile
-				$mapping[$lineNumber] [] = '<br>';
-				while($row = mysql_fetch_object($mappingErgebnis)) {
-					
-					if (array_key_exists($row->instr_address,$fehlerdaten[Daten])) {
-						$newline = $newline . '<span id="' . dechex($row->instr_address) . '" class="hasFehler" ';
-						
-						foreach ($resulttypes as $value) {
-							$temp = $value . '="' . $fehlerdaten[Daten][$row->instr_address][$value] . '" ';
-							$newline = $newline . $temp;
-							$maxFehler[$value] = $maxFehler[$value] + $fehlerdaten[Daten][$row->instr_address][$value];
-						}
-						
-						$newline  = $newline . ' cursor: pointer;>' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
-					} else {
-						$newline = '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
-					}
-					$mapping[$lineNumber] [] = $newline;
-				}
-				
-				//Leerzeile
-				$mapping[$lineNumber] [] = '<br>';
-		}
-		foreach ($resulttypes as $value) {
-			$maxFehlerMapping[$lineNumber][$value] = $maxFehler[$value];
-		}
-	}
-	
-	while($row = mysql_fetch_object($highlevelCode))
-	{
-		$content = $content . '<span id="' . $row->linenumber . '">' . $row->linenumber . ' : ' . $row->line . '</span><br>';
-		if(array_key_exists($row->linenumber, $mapping)) {
-			$content = $content . '<div id="mapping">';
-			foreach ($mapping[$row->linenumber] as $index => $span) {
-				$content = $content . $span;
-			}
-			$content = $content . '</div>';
-			$content = $content .'<div class="maxFehlerMapping"';
-			foreach ($resulttypes as $value) {
-					$content = $content . $value . '="' . $maxFehlerMapping[$row->linenumber][$value] . '" ';
-			}
-			$content = $content .'> </div>';
-		}
-	}
-
-	mysql_close($verbindung);
-	
-	echo json_encode($content);
-}
-
-function getResulttypes(&$resulttypes)
-{
-	$abfrage = "SELECT resulttype FROM " . $GLOBALS['result_table'] . " GROUP BY resulttype;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	
-	while ($row = mysql_fetch_object($ergebnis)) {
-		//echo $row->resulttype;
-		array_push($resulttypes, $row->resulttype);
-	}
-}
-
-function getResulttypesOUT()
-{
-	$resulttypes = array();
-	
-	$abfrage = "SELECT resulttype FROM " . $GLOBALS['result_table'] . " GROUP BY resulttype;";
-	
-	$ergebnis = mysql_query($abfrage);
-	
-	mysql_close($verbindung);
-	
-	while ($row = mysql_fetch_object($ergebnis)) {
-		//echo $row->resulttype;
-		array_push($resulttypes, $row->resulttype);
-	}
-	
-	echo json_encode($resulttypes);
-}
-
-function askDBFehler($variant_id, $resulttypes, $version)
-{
-	if($version == 'onlyRightEdge') {
-		$abfrage = "SELECT ft.instr, ft.instr_absolute ";
-					foreach ( $resulttypes as $value) {
-						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
-						$abfrage = $abfrage . $temp;
-					}
-		$abfrage = $abfrage . " FROM fulltrace ft
-								LEFT JOIN trace t
-								  ON ft.variant_id = '" . $variant_id . "'
-								 AND t.variant_id = '" . $variant_id . "'
-								 AND ft.instr = t.instr2
-								 AND t.accesstype = 'R'
-								JOIN fsppilot p
-								  ON t.variant_id = '" . $variant_id . "'
-								  AND p.variant_id = '" . $variant_id . "'
-								  AND t.data_address = p.data_address 
-								  AND p.instr2 = t.instr2
-								JOIN " . $GLOBALS['result_table'] . " r
-								  ON p.id = r.pilot_id
-								GROUP BY ft.instr_absolute;";
-	} else if ($version == 'latestip') {
-		$abfrage = "SELECT r.latest_ip ";
-					foreach ( $resulttypes as $value) {
-						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
-						$abfrage = $abfrage . $temp;
-					}
-		$abfrage = $abfrage . " FROM trace t
-								JOIN fsppilot p 
-								  ON t.variant_id = p.variant_id 
-								  AND t.data_address = p.data_address 
-								  AND p.instr2 = t.instr2
-								JOIN " . $GLOBALS['result_table'] . " r 
-								  ON p.id = r.pilot_id
-								WHERE t.variant_id = '" . $variant_id . "' AND t.accesstype = 'R'
-								GROUP BY r.latest_ip;";
-	} else {
-		$abfrage = "SELECT ft.instr, ft.instr_absolute ";
-					foreach ( $resulttypes as $value) {
-						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
-						$abfrage = $abfrage . $temp;
-					}
-		$abfrage = $abfrage . " FROM fulltrace ft
-								LEFT JOIN trace t
-								  ON ft.variant_id = '" . $variant_id . "'
-								 AND t.variant_id = '" . $variant_id . "'
-								 AND ft.instr BETWEEN t.instr1 AND t.instr2					
-								 AND t.accesstype = 'R'
-								JOIN fsppilot p
-								  ON t.variant_id = '" . $variant_id . "'
-								  AND p.variant_id = '" . $variant_id . "'
-								  AND t.data_address = p.data_address 
-								  AND p.instr2 = t.instr2
-								JOIN " . $GLOBALS['result_table'] . " r
-								  ON p.id = r.pilot_id
-								GROUP BY ft.instr_absolute;";
-	}
-	
-	//echo $abfrage;
-	
-	$ergebnis = mysql_query($abfrage);
-
-	mysql_close($verbindung);
-	
-	return $ergebnis;
-}
-
-function resultsDB($variant_id, $version, $resulttypes)
-{
-	
-	getResulttypes($resulttypes);
-	
-	//print_r($resulttypes);
-	
-	$ergebnis = askDBFehler($variant_id, $resulttypes, $version);
-	
-	//print_r($ergebnis);
-	
-	$results = array();
-
-	// We find the fields number
-    $numfields=mysql_num_fields($ergebnis);
-
-    for($i=0;$i<$numfields;$i++){
-        $fieldname[$i]=mysql_field_name($ergebnis, $i);
-    }
-	
-	for($i=2;$i<$numfields;$i++){
-        $results["max"][$fieldname[$i]] = 0;
-    }
-	
-	$maxFehler = 0;
-	while($row = mysql_fetch_object($ergebnis))
-	{
-		if($version != 'latestip'){
-			if($row->instr_absolute != NULL)
-			{
-				$results["Daten"][$row->instr_absolute] = array();
-				for ($i = 1 ; $i < $numfields ; $i++)
-				{
-					$results["Daten"][$row->instr_absolute][$fieldname[$i]] = $row->$fieldname[$i];
-					
-					if($row->$fieldname[$i] > $results["max"][$fieldname[$i]])
-					{
-						$results["max"][$fieldname[$i]] = $row->$fieldname[$i];
-					}
-				}
-			}
-		} else {
-			if($row->latest_ip != NULL)
-			{
-				$results["Daten"][$row->latest_ip] = array();
-				for ($i = 0 ; $i < $numfields ; $i++)
-				{
-					$results["Daten"][$row->latest_ip][$fieldname[$i]] = $row->$fieldname[$i];
-					
-					if($row->$fieldname[$i] > $results["max"][$fieldname[$i]])
-					{
-						$results["max"][$fieldname[$i]] = $row->$fieldname[$i];
-					}
-				}
-			}
-		}
-	}
-	
-	return $results;
-}
-
-?>
+<?php
+require('CONFIGURATION.php');
+//Datenbankverbindung aufbauen
+$verbindung = mysql_connect ($host,$username, $password)
+					or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
+
+mysql_select_db($database) or die ("Die Datenbank existiert nicht.");
+
+//Kommande lesen
+switch ($_GET['kommando']) 
+{
+	case "dbTest"			: dbTest();break;
+	case "getAsmCode"		: getAsmCode();break;
+	case "asmToSourceFile"	: asmToSourceFile();break;
+	case "getBinarys"		: getBinarys();break;
+	case "getVariants"		: getVariants();break;
+	case "getSourceFiles"	: getSourceFiles();break;
+	case "getResultTypes"		: getResulttypesOUT();break;
+	case "getHighlevelCode"	: getHighlevelCode();break;
+	case "resultsDB"		: resultsDB();break;
+	case "dechex"			: echo json_encode(dechex($_GET['dec']));break;
+}
+
+function dbTest()
+{
+	
+	$check = true;
+	
+	$abfrage = "SELECT 1 FROM objdump;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle objdump nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM fulltrace;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle fulltrace nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_filename;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_filename nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_mapping;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_mapping nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_methods;";
+	
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_methods nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_source;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_source nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_stacktrace;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_stacktrace nicht gefunden <br>');
+		return;
+	}
+	
+	$abfrage = "SELECT 1 FROM dbg_variables;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	if(!$ergebnis) {
+		echo json_encode('Tabelle dbg_variables nicht gefunden <br>');
+		return;
+	}
+}
+
+function getBinarys()
+{
+	$binarys = array();
+	
+	$abfrage = "SELECT benchmark FROM variant;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	
+	while($row = mysql_fetch_object($ergebnis))
+	{
+		array_push($binarys, $row->benchmark);
+	}
+	
+	$result = array_unique($binarys);
+	
+	echo json_encode($result);
+}
+
+function getVariants()
+{
+	$variants = array();
+	
+	$abfrage = "SELECT id, variant FROM variant WHERE benchmark = '" . $_GET['datei'] ."';";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	
+	while($row = mysql_fetch_object($ergebnis))
+	{
+		$variants[$row->id] = $row->variant;
+	}
+	
+	echo json_encode($variants);
+}
+
+function getSourceFiles() 
+{
+	$sourceFiles = array();
+	
+	$abfrage = "SELECT file_id, path FROM dbg_filename WHERE variant_id = '" . $_GET['variant']. "';";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	
+	while($row = mysql_fetch_object($ergebnis))
+	{
+		$sourceFiles[$row->file_id] = $row->path;
+	}
+	
+	echo json_encode($sourceFiles);
+}
+
+function asmCode()
+{
+	$content = "";
+	
+	$abfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id'] ."' ORDER BY instr_address;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	$content = $content;
+	while($row = mysql_fetch_object($ergebnis))
+	{
+		$content = $content . '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
+	}
+	echo json_encode($content);
+}
+
+function getAsmCode()
+{
+	$content = "";
+	$resulttypes = array();
+
+	$asmAbfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id'] ."' ORDER BY instr_address;";
+	
+	$asmcode = mysql_query($asmAbfrage);
+	
+	getResulttypes($resulttypes);
+	
+	$fehlerdaten = resultsDB($_GET['variant_id'], $_GET['version'], $resulttypes);
+	//$fehlerdaten = askDBFehler($_GET['variant_id'], $resulttypes, $_GET['version']);
+	
+	//print_r($fehlerdaten);
+	$content = '<div id="maxFehler" ';
+	foreach ($resulttypes as $value) {
+				$temp = $value . '="' . $fehlerdaten[max][$value] . '" ';
+				$content = $content . $temp;
+			}
+	$content = $content .' >';
+	while($row = mysql_fetch_object($asmcode))
+	{
+		if (array_key_exists($row->instr_address,$fehlerdaten[Daten])) {
+			$content = $content . '<span id="' . dechex($row->instr_address) . '" class="hasFehler" ';
+			
+			foreach ($resulttypes as $value) {
+				$temp = $value . '="' . $fehlerdaten[Daten][$row->instr_address][$value] . '" ';
+				$content = $content . $temp;
+			}
+			
+			$content  = $content . ' cursor: pointer;>' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
+		} else {
+			$content = $content . '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
+		}
+	}
+	
+	$content = $content . ' </div>';
+	
+	echo json_encode($content);
+}
+
+function getHighlevelCode()
+{
+	$content = "";
+	$resulttypes = array();
+	
+	getResulttypes($resulttypes);
+	
+	$kleinsteAdresseAbfrage = "SELECT instr_address FROM objdump WHERE variant_id = '" . $_GET['variant_id']. "' ORDER BY instr_address LIMIT 1;";
+	$kleinsteAdresseErgebnis = mysql_query($kleinsteAdresseAbfrage);
+	$kleinsteAdresse = mysql_fetch_object($kleinsteAdresseErgebnis);
+	
+	$highlevelCodeAbfrage = "SELECT linenumber, line FROM dbg_source WHERE variant_id = '" . $_GET['variant_id']. "' AND file_id = '" . $_GET['file_id']. "' ORDER BY linenumber;";
+	$mappingAbfrage = "SELECT instr_absolute, linenumber FROM dbg_mapping WHERE variant_id = '" . $_GET['variant_id']. "' AND file_id = '" . $_GET['file_id'] . "' AND instr_absolute >= '" . $kleinsteAdresse->instr_address . "' ORDER BY instr_absolute;";
+	
+	$highlevelCode = mysql_query($highlevelCodeAbfrage);
+	$mappingInfo = mysql_query($mappingAbfrage);
+	
+	$fehlerdaten = resultsDB($_GET['variant_id'], $_GET['version'], $resulttypes);
+	
+	$mappingRanges = array();
+	$numEntrysMapping = mysql_num_rows($mappingInfo);
+	
+	$row = mysql_fetch_object($mappingInfo);
+	
+	for ($i = 0; $i < $numEntrysMapping-1; $i++)
+	{
+		if(!is_array($mappingRanges[$row->linenumber])) {
+			$mappingRanges[$row->linenumber] = array();
+		}
+		$oldLineNumber = $row->linenumber;
+		$firstAddr = $row->instr_absolute;
+		$row = mysql_fetch_object($mappingInfo);
+		array_push($mappingRanges[$oldLineNumber], array($firstAddr, $row->instr_absolute));
+	}
+	
+	$mapping = array();
+	$maxFehlerMapping = array();
+	
+	foreach ($mappingRanges as $lineNumber => $value) {
+		$maxFehler = array();
+		foreach ($resulttypes as $val) {
+			$maxFehler[$val] = 0;
+		}
+		foreach ($value as $index => $ranges) {
+				$InstrMappingAbfrage = "SELECT instr_address, disassemble FROM objdump WHERE variant_id = '" . $_GET['variant_id']. "' AND instr_address > '" . $ranges[0] . "' AND instr_address < '" . $ranges[1] . "' ORDER BY instr_address;";
+				$mappingErgebnis = mysql_query($InstrMappingAbfrage);
+				//Leerzeile
+				$mapping[$lineNumber] [] = '<br>';
+				while($row = mysql_fetch_object($mappingErgebnis)) {
+					
+					if (array_key_exists($row->instr_address,$fehlerdaten[Daten])) {
+						$newline = $newline . '<span id="' . dechex($row->instr_address) . '" class="hasFehler" ';
+						
+						foreach ($resulttypes as $value) {
+							$temp = $value . '="' . $fehlerdaten[Daten][$row->instr_address][$value] . '" ';
+							$newline = $newline . $temp;
+							$maxFehler[$value] = $maxFehler[$value] + $fehlerdaten[Daten][$row->instr_address][$value];
+						}
+						
+						$newline  = $newline . ' cursor: pointer;>' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
+					} else {
+						$newline = '<span id="' . dechex($row->instr_address) . '">' . dechex($row->instr_address) . '     ' . htmlspecialchars($row->disassemble) . '</span><br>';
+					}
+					$mapping[$lineNumber] [] = $newline;
+				}
+				
+				//Leerzeile
+				$mapping[$lineNumber] [] = '<br>';
+		}
+		foreach ($resulttypes as $value) {
+			$maxFehlerMapping[$lineNumber][$value] = $maxFehler[$value];
+		}
+	}
+	
+	while($row = mysql_fetch_object($highlevelCode))
+	{
+		$content = $content . '<span id="' . $row->linenumber . '">' . $row->linenumber . ' : ' . $row->line . '</span><br>';
+		if(array_key_exists($row->linenumber, $mapping)) {
+			$content = $content . '<div id="mapping">';
+			foreach ($mapping[$row->linenumber] as $index => $span) {
+				$content = $content . $span;
+			}
+			$content = $content . '</div>';
+			$content = $content .'<div class="maxFehlerMapping"';
+			foreach ($resulttypes as $value) {
+					$content = $content . $value . '="' . $maxFehlerMapping[$row->linenumber][$value] . '" ';
+			}
+			$content = $content .'> </div>';
+		}
+	}
+
+	mysql_close($verbindung);
+	
+	echo json_encode($content);
+}
+
+function getResulttypes(&$resulttypes)
+{
+	$abfrage = "SELECT resulttype FROM " . $GLOBALS['result_table'] . " GROUP BY resulttype;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	
+	while ($row = mysql_fetch_object($ergebnis)) {
+		//echo $row->resulttype;
+		array_push($resulttypes, $row->resulttype);
+	}
+}
+
+function getResulttypesOUT()
+{
+	$resulttypes = array();
+	
+	$abfrage = "SELECT resulttype FROM " . $GLOBALS['result_table'] . " GROUP BY resulttype;";
+	
+	$ergebnis = mysql_query($abfrage);
+	
+	mysql_close($verbindung);
+	
+	while ($row = mysql_fetch_object($ergebnis)) {
+		//echo $row->resulttype;
+		array_push($resulttypes, $row->resulttype);
+	}
+	
+	echo json_encode($resulttypes);
+}
+
+function askDBFehler($variant_id, $resulttypes, $version)
+{
+	if($version == 'onlyRightEdge') {
+		$abfrage = "SELECT ft.instr, ft.instr_absolute ";
+					foreach ( $resulttypes as $value) {
+						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
+						$abfrage = $abfrage . $temp;
+					}
+		$abfrage = $abfrage . " FROM fulltrace ft
+								LEFT JOIN trace t
+								  ON ft.variant_id = '" . $variant_id . "'
+								 AND t.variant_id = '" . $variant_id . "'
+								 AND ft.instr = t.instr2
+								 AND t.accesstype = 'R'
+								JOIN fsppilot p
+								  ON t.variant_id = '" . $variant_id . "'
+								  AND p.variant_id = '" . $variant_id . "'
+								  AND t.data_address = p.data_address 
+								  AND p.instr2 = t.instr2
+								JOIN " . $GLOBALS['result_table'] . " r
+								  ON p.id = r.pilot_id
+								GROUP BY ft.instr_absolute;";
+	} else if ($version == 'latestip') {
+		$abfrage = "SELECT r.latest_ip ";
+					foreach ( $resulttypes as $value) {
+						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
+						$abfrage = $abfrage . $temp;
+					}
+		$abfrage = $abfrage . " FROM trace t
+								JOIN fsppilot p 
+								  ON t.variant_id = p.variant_id 
+								  AND t.data_address = p.data_address 
+								  AND p.instr2 = t.instr2
+								JOIN " . $GLOBALS['result_table'] . " r 
+								  ON p.id = r.pilot_id
+								WHERE t.variant_id = '" . $variant_id . "' AND t.accesstype = 'R'
+								GROUP BY r.latest_ip;";
+	} else {
+		$abfrage = "SELECT ft.instr, ft.instr_absolute ";
+					foreach ( $resulttypes as $value) {
+						$temp = ", SUM(IF(r.resulttype = '" . $value . "', 1, 0)*(t.time2-t.time1+1)) AS " . $value;
+						$abfrage = $abfrage . $temp;
+					}
+		$abfrage = $abfrage . " FROM fulltrace ft
+								LEFT JOIN trace t
+								  ON ft.variant_id = '" . $variant_id . "'
+								 AND t.variant_id = '" . $variant_id . "'
+								 AND ft.instr BETWEEN t.instr1 AND t.instr2					
+								 AND t.accesstype = 'R'
+								JOIN fsppilot p
+								  ON t.variant_id = '" . $variant_id . "'
+								  AND p.variant_id = '" . $variant_id . "'
+								  AND t.data_address = p.data_address 
+								  AND p.instr2 = t.instr2
+								JOIN " . $GLOBALS['result_table'] . " r
+								  ON p.id = r.pilot_id
+								GROUP BY ft.instr_absolute;";
+	}
+	
+	//echo $abfrage;
+	
+	$ergebnis = mysql_query($abfrage);
+
+	mysql_close($verbindung);
+	
+	return $ergebnis;
+}
+
+function resultsDB($variant_id, $version, $resulttypes)
+{
+	
+	getResulttypes($resulttypes);
+	
+	//print_r($resulttypes);
+	
+	$ergebnis = askDBFehler($variant_id, $resulttypes, $version);
+	
+	//print_r($ergebnis);
+	
+	$results = array();
+
+	// We find the fields number
+    $numfields=mysql_num_fields($ergebnis);
+
+    for($i=0;$i<$numfields;$i++){
+        $fieldname[$i]=mysql_field_name($ergebnis, $i);
+    }
+	
+	for($i=2;$i<$numfields;$i++){
+        $results["max"][$fieldname[$i]] = 0;
+    }
+	
+	$maxFehler = 0;
+	while($row = mysql_fetch_object($ergebnis))
+	{
+		if($version != 'latestip'){
+			if($row->instr_absolute != NULL)
+			{
+				$results["Daten"][$row->instr_absolute] = array();
+				for ($i = 1 ; $i < $numfields ; $i++)
+				{
+					$results["Daten"][$row->instr_absolute][$fieldname[$i]] = $row->$fieldname[$i];
+					
+					if($row->$fieldname[$i] > $results["max"][$fieldname[$i]])
+					{
+						$results["max"][$fieldname[$i]] = $row->$fieldname[$i];
+					}
+				}
+			}
+		} else {
+			if($row->latest_ip != NULL)
+			{
+				$results["Daten"][$row->latest_ip] = array();
+				for ($i = 0 ; $i < $numfields ; $i++)
+				{
+					$results["Daten"][$row->latest_ip][$fieldname[$i]] = $row->$fieldname[$i];
+					
+					if($row->$fieldname[$i] > $results["max"][$fieldname[$i]])
+					{
+						$results["max"][$fieldname[$i]] = $row->$fieldname[$i];
+					}
+				}
+			}
+		}
+	}
+	
+	return $results;
+}
+
+?>
diff --git a/tools/analysis/VisualFAIL/css/myStyle.css b/tools/analysis/VisualFAIL/css/myStyle.css
index 7ed2b0eed7156b78070f8401f859bb232b1c2890..5f6292a1d9f88b28a63179a3a0be0bae7d488c5e 100644
--- a/tools/analysis/VisualFAIL/css/myStyle.css
+++ b/tools/analysis/VisualFAIL/css/myStyle.css
@@ -1,19 +1,19 @@
-body {
-  min-height: 2000px;
-  padding-top: 70px;
-}
-
-/* Custom container */
-.container-full {
-  margin: 0 auto;
-  padding: 0 15px;
-  width: 100%;
-}
-
-.logo {
-  padding: 0 0 0 30px;
-}
-
-#analyse {
-  margin: 20px 0 0 0;
+body {
+  min-height: 2000px;
+  padding-top: 70px;
+}
+
+/* Custom container */
+.container-full {
+  margin: 0 auto;
+  padding: 0 15px;
+  width: 100%;
+}
+
+.logo {
+  padding: 0 0 0 30px;
+}
+
+#analyse {
+  margin: 20px 0 0 0;
 }
\ No newline at end of file
diff --git a/tools/analysis/VisualFAIL/index.php b/tools/analysis/VisualFAIL/index.php
index 46485ace7f36ca35d32190a19429b2d6cd86400e..325c849f96b03b12a073f63feb36a8ca17ac1f41 100644
--- a/tools/analysis/VisualFAIL/index.php
+++ b/tools/analysis/VisualFAIL/index.php
@@ -1,129 +1,129 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta name="description" content="">
-    <meta name="author" content="">
-	<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
-
-    <title>Visual FAIL*</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="css/bootstrap.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link href="css/myStyle.css" rel="stylesheet">
-
-    <!-- Just for debugging purposes. Don't actually copy this line! -->
-    <!--[if lt IE 9]><script src="../../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-
-    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!--[if lt IE 9]>
-      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-    <![endif]-->
-  </head>
-
-  <body>
-
-    <!-- Fixed navbar -->
-	<div class="container-full">
-		<div class="navbar navbar-default navbar-fixed-top" role="navigation">
-			<div class="navbar-header">
-				<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-					<span class="sr-only">Toggle navigation</span>
-					<span class="icon-bar"></span>
-					<span class="icon-bar"></span>
-					<span class="icon-bar"></span>
-				</button>
-				<!--<div class="container"> -->
-				  <!--<a class="navbar-brand" href="#">Visual FAIL*</a>-->
-				  <img class="navbar-brand logo" src="images/logos/visualfaillogo_klein.png" alt="Visual Fail* logo" />
-				<!--</div>-->
-			</div>
-			<div class="container"> 
-				<div class="navbar-collapse collapse">
-				  <ul class="nav navbar-nav">
-					<li class="active"><a href="#">Rückabbildung</a></li>
-					<li><a href="#about">Aggregation</a></li>
-					<li class="dropdown">
-					  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Tools <b class="caret"></b></a>
-					  <ul class="dropdown-menu">
-						<li><a href="adminer-3.7.1.php" target="_blank">Adminer</a></li>
-					  </ul>
-					</li>
-				  </ul>
-				</div><!--/.nav-collapse -->
-			</div>
-		</div>
-
-		<div class="row">
-			<div class="col-md-2">
-			  <!-- Main component for a primary marketing message or call to action -->
-				<div class="panel panel-default">
-					<div class="panel-heading">Färbung</div>
-						<div class="panel-body">
-							<select class="form-control" id="faerbung">
-							  <option value="onlyRightEdge">Rechter Rand(trace.instr2)</option>
-							  <option value="latestip">Letzte Instruktion(result.latest_ip)</option>
-							  <option value="normal">Äquivalenzklassen</option>
-							</select>
-						</div>
-				</div>
-				
-				<div class="panel panel-default">
-					<div class="panel-heading">Benchmark</div>
-						<div class="panel-body">
-							<select class="form-control" id="binary">
-							  <option></option>
-							</select>
-						</div>
-				</div>
-				
-				<div class="panel panel-default">
-					<div class="panel-heading">Variante</div>
-						<div class="panel-body">
-							<select class="form-control" id="variant">
-							  <option></option>
-							</select>
-							<div class="text-center">
-								<button type="button" class="btn btn-default btn-lg" id="analyse">Analyse</button>
-							</div>
-						</div>
-				</div>
-			</div> 
-			
-			<div class="col-md-10">
-						<div class="panel-body">
-							<div class="row">
-								<div class="col-md-6">
-									<div class="btn-group" id="fehlertypenset" data-toggle="buttons">
-									</div>
-								</div>
-								<div class="col-md-6">
-									<select class="form-control" id="sourceFiles">
-										<option></option>
-									</select>
-								</div>
-							</div>
-						</div>
-					<div class="row">
-						<pre class="container col-md-6" id="asm">
-						</pre>
-						<pre class="container col-md-6" id="hcode">
-						</pre>
-					</div>
-			</div>
-		</div>
-	</div> <!-- /container-full -->
-
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
-    <script src="js/bootstrap.min.js"></script>
-	<script src="js/myscript.js"></script>
-  </body>
-</html>
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="">
+    <meta name="author" content="">
+	<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+
+    <title>Visual FAIL*</title>
+
+    <!-- Bootstrap core CSS -->
+    <link href="css/bootstrap.css" rel="stylesheet">
+
+    <!-- Custom styles for this template -->
+    <link href="css/myStyle.css" rel="stylesheet">
+
+    <!-- Just for debugging purposes. Don't actually copy this line! -->
+    <!--[if lt IE 9]><script src="../../docs-assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
+
+    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
+    <![endif]-->
+  </head>
+
+  <body>
+
+    <!-- Fixed navbar -->
+	<div class="container-full">
+		<div class="navbar navbar-default navbar-fixed-top" role="navigation">
+			<div class="navbar-header">
+				<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+					<span class="sr-only">Toggle navigation</span>
+					<span class="icon-bar"></span>
+					<span class="icon-bar"></span>
+					<span class="icon-bar"></span>
+				</button>
+				<!--<div class="container"> -->
+				  <!--<a class="navbar-brand" href="#">Visual FAIL*</a>-->
+				  <img class="navbar-brand logo" src="images/logos/visualfaillogo_klein.png" alt="Visual Fail* logo" />
+				<!--</div>-->
+			</div>
+			<div class="container"> 
+				<div class="navbar-collapse collapse">
+				  <ul class="nav navbar-nav">
+					<li class="active"><a href="#">Rückabbildung</a></li>
+					<li><a href="#about">Aggregation</a></li>
+					<li class="dropdown">
+					  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Tools <b class="caret"></b></a>
+					  <ul class="dropdown-menu">
+						<li><a href="adminer-3.7.1.php" target="_blank">Adminer</a></li>
+					  </ul>
+					</li>
+				  </ul>
+				</div><!--/.nav-collapse -->
+			</div>
+		</div>
+
+		<div class="row">
+			<div class="col-md-2">
+			  <!-- Main component for a primary marketing message or call to action -->
+				<div class="panel panel-default">
+					<div class="panel-heading">Färbung</div>
+						<div class="panel-body">
+							<select class="form-control" id="faerbung">
+							  <option value="onlyRightEdge">Rechter Rand(trace.instr2)</option>
+							  <option value="latestip">Letzte Instruktion(result.latest_ip)</option>
+							  <option value="normal">Äquivalenzklassen</option>
+							</select>
+						</div>
+				</div>
+				
+				<div class="panel panel-default">
+					<div class="panel-heading">Benchmark</div>
+						<div class="panel-body">
+							<select class="form-control" id="binary">
+							  <option></option>
+							</select>
+						</div>
+				</div>
+				
+				<div class="panel panel-default">
+					<div class="panel-heading">Variante</div>
+						<div class="panel-body">
+							<select class="form-control" id="variant">
+							  <option></option>
+							</select>
+							<div class="text-center">
+								<button type="button" class="btn btn-default btn-lg" id="analyse">Analyse</button>
+							</div>
+						</div>
+				</div>
+			</div> 
+			
+			<div class="col-md-10">
+						<div class="panel-body">
+							<div class="row">
+								<div class="col-md-6">
+									<div class="btn-group" id="fehlertypenset" data-toggle="buttons">
+									</div>
+								</div>
+								<div class="col-md-6">
+									<select class="form-control" id="sourceFiles">
+										<option></option>
+									</select>
+								</div>
+							</div>
+						</div>
+					<div class="row">
+						<pre class="container col-md-6" id="asm">
+						</pre>
+						<pre class="container col-md-6" id="hcode">
+						</pre>
+					</div>
+			</div>
+		</div>
+	</div> <!-- /container-full -->
+
+    <!-- Bootstrap core JavaScript
+    ================================================== -->
+    <!-- Placed at the end of the document so the pages load faster -->
+    <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
+    <script src="js/bootstrap.min.js"></script>
+	<script src="js/myscript.js"></script>
+  </body>
+</html>
diff --git a/tools/analysis/VisualFAIL/js/myscript.js b/tools/analysis/VisualFAIL/js/myscript.js
index 3b02dd59d5d331f74957b9fb72869c7c5e2a77c6..5495139dd23fbe94b5e8b3736cdc5925f893471f 100644
--- a/tools/analysis/VisualFAIL/js/myscript.js
+++ b/tools/analysis/VisualFAIL/js/myscript.js
@@ -1,210 +1,210 @@
-$.ajaxSetup({
-async: false
-});
-
-
-//Umwandlung von dezimal zu hexadezimal
-function dec2hex(dec) {
-	var hex = "";
-
-	if (dec < 0) {
-		dec = 0xFFFFFFFF + dec + 1;
-	}
-	
-	hex = parseInt(dec, 10).toString(16);
-	
-	return hex;
-}
-
-//Berechne den Farbwert (z.B.: #FFFFFF) fuer gegebene Fehlerwerte
-function calcColor(fehler, maxFehler) {
-					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler);
-					
-					var part = 0;
-					
-					if (fehler != 0) {
-						var x =  255/Math.log(maxFehler);
-						part = x*Math.log(fehler);
-					}
-					
-					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler + " Part: " + part);
-					
-					var hex = dec2hex(255-part);
-					
-					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler + " Part: " + part + " Farbcode: " + ("#FF" + hex + hex));
-					
-					if (hex >= 0 && hex <= 9 ) {
-						return "#FF" + hex + hex + hex + hex;
-					} else {
-						return "#FF" + hex + hex;
-					}
-}
-
-//Tooltip für Instruktionszeilen mit Fehler
-$('body').popover({
-	selector: ".hasFehler",
-	html: true,
-	title: function() { return $(this).attr("id"); },
-	content: function() {
-		var ausgabe = '';
-		var caller = $(this);
-		
-		$.getJSON("core.php", {kommando: 'getResultTypes'}, function(data) {
-			$.each(data, function(key, val) {
-				ausgabe = ausgabe  + val +': ' + caller.attr(val) + '<br>';
-			});
-		});
-		return ausgabe;
-	}
-});
-
-//Einblenden des Modal "Loading" fuer Ajax Requests
-/*$(document).ajaxStart(function(){
-	//console.log("ajaxstart");
-	$("body").addClass("loading"); 
-}).ajaxStop(function(){
-	//console.log("ajaxstop");
-	$("body").removeClass("loading"); 
-});*/
-
-//User-Interaktionen nachdem das DOM geladen ist
-$(document).ready(function() {
-
-	//DB check
-	$.getJSON("core.php", {kommando: 'dbTest'}, function(data) {
-		
-		if(data != "ok") {
-			$('html').html(data);
-		}
-	});
-
-	//Holen der Binarys, die in der DB in der Tabelle Variant vorkommen
-	$.getJSON("core.php", {kommando: 'getBinarys'}, function(data) {
-		$.each(data, function(key, val) {
-			$('#binary').append('<option value="' + val + '">' + val + '</option>');
-		});
-	});
-	
-	//Auswahl eines Eintrages aus den Source-Files für die Darstellung des Hochsprachencode
-	$('#sourceFiles').change(function() {
-		if($(this).val() != 'none') {
-			$.getJSON("core.php", {kommando: 'getHighlevelCode', variant_id: $('#variant').val(), file_id: $(this).val(), version: $('#faerbung').val()}, function(data) {
-
-				$('#hcode').html(data);	
-								
-				$('.maxFehlerMapping').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
-									var newFehler = 0;
-									var actualRow = $(this);
-									
-									$.each(activeFehlertypes, function(key, val) {
-										newFehler = newFehler + parseInt(actualRow.attr(val));
-									});
-									
-									console.log("jepp" + newMaxFehler + " " + newFehler);
-									
-									$(this).prev().prev().prev().css("background-color", calcColor(newFehler, newMaxFehler))
-										   .css('cursor', 'pointer');
-								});
-								
-				$('.hasFehler').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
-									var newFehler = 0;
-									var actualRow = $(this);
-									
-									$.each(activeFehlertypes, function(key, val) {
-										newFehler = newFehler + parseInt(actualRow.attr(val));
-									});
-									
-									$(this).css("background-color", calcColor(newFehler, newMaxFehler))
-										   .css('cursor', 'pointer');
-								});
-			});
-			
-			
-			setTimeout(function(){
-				var activeFehlertypes = new Array();
-				var newMaxFehler = 0;
-				
-				$('#fehlertypenset > .active').each(function(){
-					activeFehlertypes.push($(this).attr("id"));
-					//console.log("Hinzugefuegt: " + $(this).attr("id"));
-				});
-				
-				
-				$.each(activeFehlertypes,function(key, name){
-					
-					//Neuen MaxFehler berechnen
-					newMaxFehler = newMaxFehler + parseInt($('#maxFehler').attr(name));
-				});
-				$('.hasFehler').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
-				$('.maxFehlerMapping').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
-			},100);
-		}
-	});
-	
-	//Auswahl eines Eintrages aus den Binarys für die Darstellung des Assembler-Code
-	$('#binary').change(function() {
-		if($(this).val() != 'none') {
-			$('#variant').html('<option value="none" selected="selected"></option>');
-			$.getJSON("core.php", {kommando: 'getVariants', datei: $(this).val()}, function(data) {
-				$.each(data, function(key, val) {
-					$('#variant').append('<option value="' + key + '">' + val + '</option>');
-				});
-			});
-		}
-	});
-	
-	//Analyse Button wird gedrueckt
-	$('#analyse').button().click( function () {
-	
-		$.getJSON("core.php", {kommando: 'getAsmCode', variant_id: $('#variant').val(), version: $('#faerbung').val()}, function(data) {
-			$('#asm').html(data);
-		});
-
-		$.getJSON("core.php", {kommando: 'getSourceFiles', variant: $('#variant').val()}, function(data) {
-			$.each(data, function(key, val) {
-				$('#sourceFiles').append('<option value="' + key + '">' + val + '</option>');
-			});
-		});
-		
-		$.getJSON("core.php", {kommando: 'getResultTypes'}, function(data) {
-
-			$('#fehlertypenset').html('');
-			$.each(data, function(key, val) {
-				$('#fehlertypenset').append('<label class="btn btn-default" id="' + val + '"><input type="checkbox" id="' + val + '">' + val + '</label>');
-				//$('#'+ val +'.btn').button('toggle');
-			});
-			
-			$('.hasFehler').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
-									var newFehler = 0;
-									var actualRow = $(this);
-									
-									$.each(activeFehlertypes, function(key, val) {
-										newFehler = newFehler + parseInt(actualRow.attr(val));
-									});
-									
-									$(this).css("background-color", calcColor(newFehler, newMaxFehler))
-										   .css('cursor', 'pointer');
-								});
-			
-			//Auf Änderungen bzgl. des Fehler-Buttonset horchen
-			$('#fehlertypenset input[type=checkbox]').change(function() {setTimeout(function(){
-				//console.log("aenderung!");
-				var activeFehlertypes = new Array();
-				var newMaxFehler = 0;
-				
-				$('#fehlertypenset > .active').each(function(){
-					activeFehlertypes.push($(this).attr("id"));
-				});
-				
-				
-				$.each(activeFehlertypes,function(key, name){
-					//Neuen MaxFehler berechnen
-					newMaxFehler = newMaxFehler + parseInt($('#maxFehler').attr(name));
-				});
-
-				$('.hasFehler').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
-				$('.maxFehlerMapping').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
-			},100)});
-		});
-	});
-});
+$.ajaxSetup({
+async: false
+});
+
+
+//Umwandlung von dezimal zu hexadezimal
+function dec2hex(dec) {
+	var hex = "";
+
+	if (dec < 0) {
+		dec = 0xFFFFFFFF + dec + 1;
+	}
+	
+	hex = parseInt(dec, 10).toString(16);
+	
+	return hex;
+}
+
+//Berechne den Farbwert (z.B.: #FFFFFF) fuer gegebene Fehlerwerte
+function calcColor(fehler, maxFehler) {
+					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler);
+					
+					var part = 0;
+					
+					if (fehler != 0) {
+						var x =  255/Math.log(maxFehler);
+						part = x*Math.log(fehler);
+					}
+					
+					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler + " Part: " + part);
+					
+					var hex = dec2hex(255-part);
+					
+					//console.log("Farbe Fehler: " + fehler + " Max: " + maxFehler + " Part: " + part + " Farbcode: " + ("#FF" + hex + hex));
+					
+					if (hex >= 0 && hex <= 9 ) {
+						return "#FF" + hex + hex + hex + hex;
+					} else {
+						return "#FF" + hex + hex;
+					}
+}
+
+//Tooltip für Instruktionszeilen mit Fehler
+$('body').popover({
+	selector: ".hasFehler",
+	html: true,
+	title: function() { return $(this).attr("id"); },
+	content: function() {
+		var ausgabe = '';
+		var caller = $(this);
+		
+		$.getJSON("core.php", {kommando: 'getResultTypes'}, function(data) {
+			$.each(data, function(key, val) {
+				ausgabe = ausgabe  + val +': ' + caller.attr(val) + '<br>';
+			});
+		});
+		return ausgabe;
+	}
+});
+
+//Einblenden des Modal "Loading" fuer Ajax Requests
+/*$(document).ajaxStart(function(){
+	//console.log("ajaxstart");
+	$("body").addClass("loading"); 
+}).ajaxStop(function(){
+	//console.log("ajaxstop");
+	$("body").removeClass("loading"); 
+});*/
+
+//User-Interaktionen nachdem das DOM geladen ist
+$(document).ready(function() {
+
+	//DB check
+	$.getJSON("core.php", {kommando: 'dbTest'}, function(data) {
+		
+		if(data != "ok") {
+			$('html').html(data);
+		}
+	});
+
+	//Holen der Binarys, die in der DB in der Tabelle Variant vorkommen
+	$.getJSON("core.php", {kommando: 'getBinarys'}, function(data) {
+		$.each(data, function(key, val) {
+			$('#binary').append('<option value="' + val + '">' + val + '</option>');
+		});
+	});
+	
+	//Auswahl eines Eintrages aus den Source-Files für die Darstellung des Hochsprachencode
+	$('#sourceFiles').change(function() {
+		if($(this).val() != 'none') {
+			$.getJSON("core.php", {kommando: 'getHighlevelCode', variant_id: $('#variant').val(), file_id: $(this).val(), version: $('#faerbung').val()}, function(data) {
+
+				$('#hcode').html(data);	
+								
+				$('.maxFehlerMapping').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
+									var newFehler = 0;
+									var actualRow = $(this);
+									
+									$.each(activeFehlertypes, function(key, val) {
+										newFehler = newFehler + parseInt(actualRow.attr(val));
+									});
+									
+									console.log("jepp" + newMaxFehler + " " + newFehler);
+									
+									$(this).prev().prev().prev().css("background-color", calcColor(newFehler, newMaxFehler))
+										   .css('cursor', 'pointer');
+								});
+								
+				$('.hasFehler').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
+									var newFehler = 0;
+									var actualRow = $(this);
+									
+									$.each(activeFehlertypes, function(key, val) {
+										newFehler = newFehler + parseInt(actualRow.attr(val));
+									});
+									
+									$(this).css("background-color", calcColor(newFehler, newMaxFehler))
+										   .css('cursor', 'pointer');
+								});
+			});
+			
+			
+			setTimeout(function(){
+				var activeFehlertypes = new Array();
+				var newMaxFehler = 0;
+				
+				$('#fehlertypenset > .active').each(function(){
+					activeFehlertypes.push($(this).attr("id"));
+					//console.log("Hinzugefuegt: " + $(this).attr("id"));
+				});
+				
+				
+				$.each(activeFehlertypes,function(key, name){
+					
+					//Neuen MaxFehler berechnen
+					newMaxFehler = newMaxFehler + parseInt($('#maxFehler').attr(name));
+				});
+				$('.hasFehler').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
+				$('.maxFehlerMapping').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
+			},100);
+		}
+	});
+	
+	//Auswahl eines Eintrages aus den Binarys für die Darstellung des Assembler-Code
+	$('#binary').change(function() {
+		if($(this).val() != 'none') {
+			$('#variant').html('<option value="none" selected="selected"></option>');
+			$.getJSON("core.php", {kommando: 'getVariants', datei: $(this).val()}, function(data) {
+				$.each(data, function(key, val) {
+					$('#variant').append('<option value="' + key + '">' + val + '</option>');
+				});
+			});
+		}
+	});
+	
+	//Analyse Button wird gedrueckt
+	$('#analyse').button().click( function () {
+	
+		$.getJSON("core.php", {kommando: 'getAsmCode', variant_id: $('#variant').val(), version: $('#faerbung').val()}, function(data) {
+			$('#asm').html(data);
+		});
+
+		$.getJSON("core.php", {kommando: 'getSourceFiles', variant: $('#variant').val()}, function(data) {
+			$.each(data, function(key, val) {
+				$('#sourceFiles').append('<option value="' + key + '">' + val + '</option>');
+			});
+		});
+		
+		$.getJSON("core.php", {kommando: 'getResultTypes'}, function(data) {
+
+			$('#fehlertypenset').html('');
+			$.each(data, function(key, val) {
+				$('#fehlertypenset').append('<label class="btn btn-default" id="' + val + '"><input type="checkbox" id="' + val + '">' + val + '</label>');
+				//$('#'+ val +'.btn').button('toggle');
+			});
+			
+			$('.hasFehler').on( "calcColor", function( event, newMaxFehler, activeFehlertypes) {
+									var newFehler = 0;
+									var actualRow = $(this);
+									
+									$.each(activeFehlertypes, function(key, val) {
+										newFehler = newFehler + parseInt(actualRow.attr(val));
+									});
+									
+									$(this).css("background-color", calcColor(newFehler, newMaxFehler))
+										   .css('cursor', 'pointer');
+								});
+			
+			//Auf Änderungen bzgl. des Fehler-Buttonset horchen
+			$('#fehlertypenset input[type=checkbox]').change(function() {setTimeout(function(){
+				//console.log("aenderung!");
+				var activeFehlertypes = new Array();
+				var newMaxFehler = 0;
+				
+				$('#fehlertypenset > .active').each(function(){
+					activeFehlertypes.push($(this).attr("id"));
+				});
+				
+				
+				$.each(activeFehlertypes,function(key, name){
+					//Neuen MaxFehler berechnen
+					newMaxFehler = newMaxFehler + parseInt($('#maxFehler').attr(name));
+				});
+
+				$('.hasFehler').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
+				$('.maxFehlerMapping').trigger('calcColor', [ newMaxFehler, activeFehlertypes ]);
+			},100)});
+		});
+	});
+});