text: function prepareWebsite() {
  	$('jsContainer').innerHTML =
  		// $( elementName ).innerHTML = 
  		'<br>' +
  		'<h3><div id="resultsForWeek">Ergebnis vom x.y.</div> <input type="button" value="<" onclick="javascript:prevWeek()" > <input type="button" value=">" onclick="javascript:nextWeek()"></h3>' +
  		'<div id="weekTable"></div><br>' +
  		'<h3>Gesamtergebnis ' + year + '</h3>' +
  		'<div id="yearTable"></div><br>' +
  		'<h3>Punkte pro Woche</h3>' +
  		'<canvas id="pointsPerWeekChart"></canvas><br>' +
  		'<h3>Aufaddierte Punkte</h3>' +
  		'<canvas id="totalPointsPerWeekChart"></canvas><br>' +
  		'<h3>Alle Einzelergebnisse</h3>' +
  		'<div id="details"></div>' +
  		'<br><br>';
  }
  
  function loadData() {
  	var url = "data/" + year + ".csv";
  	Papa.parse(url, {
  		download: true,
  		complete: Ullebambulle_Parsed_CSV_Parse_Callback
  	});
  }
  
  function Ullebambulle_Data_EndGetResults(results) {
  	prepareWebsite();
  
  	week = Ullebambulle_Statistics_GetNewest(results);
  	data = results;
  
  	var totalResults = Ullebambulle_Statistics_GetTotals(results);
  
  	showWeekTable();
  	showYearTable(totalResults);
  	showPointsPerWeekLineChart(totalResults);
  	showTotalPointsPerWeekLineChart(totalResults);
  	showDetails(data);
  }
  
  function showPointsPerWeekLineChart(totalResults) {
  	var names = Ullebambulle_Statistics_GetTopTeams(totalResults, 6);
  	var lineChartData = Ullebambulle_ChartJs_CreateWeekLineChartData(data, names);
  	Ullebambulle_ChartJs_DisplayWeekLineChart(lineChartData, 'pointsPerWeekChart')
  }
  
  function showTotalPointsPerWeekLineChart(totalResults) {
  	var names = Ullebambulle_Statistics_GetTopTeams(totalResults, 6);
  	var lineChartData = Ullebambulle_ChartJs_CreateTotalWeekLineChartData(data, names);
  	Ullebambulle_ChartJs_DisplayWeekLineChart(lineChartData, 'totalPointsPerWeekChart')
  }
  
  function showTeamTable() {
  	var teamName = $("teamname").value;
  	var teamResults = Ullebambulle_Statistics_GetTeam(data, teamName);
  
  	var teamDataTable = Ullebambulle_Viz_CreateDataTableWithWeek(teamResults);
  	var teamTableVis = new google.visualization.Table($('tbl5'));
  	teamTableVis.draw(teamDataTable, { allowHtml: true, width: 600 });
  }
  
  function showYearTable(totals) {
  	var table = new Tabulator("#yearTable", {
  		data: totals,           //load row data from array
  		layout: "fitDataFill",
  		pagination: "local",
  		paginationSize: 10,
  		columns: [
  			{ title: "Platz", field: "place" },
  			{ title: "Punkte", field: "points" },
  			{ title: "Name", field: "name" },
  		],
  	});
  }
  
  function showWeekTable() {
  	var date = Ullebambulle_Time_GetQuizDate(year, week);
  	$("resultsForWeek").innerHTML = "Ergebnis vom " + Ullebambulle_Time_FormatDate(date) + " (KW " + week + ")";
  
  	var weekResults = Ullebambulle_Statistics_GetWeek(data, week);
  	if (weekResults.length == 0) {
  		$("weekTable").innerHTML = "<br>Keine Daten verf&uuml;gbar<br><br><br>";
  	}
  	else {
  		var table = new Tabulator("#weekTable", {
  			data: weekResults,           //load row data from array
  			layout: "fitDataFill",
  			pagination: "local",
  			paginationSize: 15,
  			columns: [
  				{ title: "Platz", field: "place" },
  				{ title: "Punkte", field: "points" },
  				{ title: "Name", field: "name" },
  			],
  		});
  	}
  }
  
  function showDetails(detailsData) {
  	var table = new Tabulator("#details", {
  		data: detailsData,           //load row data from array
  		layout: "fitDataFill",
  		pagination: "local",
  		paginationSize: 15,
  		columns: [
  			{ title: "Woche", field: "week" },
  			{ title: "Platz", field: "place" },
  			{ title: "Punkte", field: "points" },
  			{ title: "Name", field: "name", headerFilter: true },
  		],
  	});
  }
  
  function prevWeek() {
  	week--;
  	if (week < 1) week = 1;
  	showWeekTable();
  }
  
  function nextWeek() {
  	week++;
  	showWeekTable();
  }
  
  if (!this.$) {
  	this.$ = function (id) { return document.getElementById(id); };
  }