﻿$(document).ready(function() {

	// Title Sliding auf Terminseiten
	$('.bezSliding').inewsticker({
		speed : 3000,
		effect : 'fade',
		delay_after : 1000,
	});

	// Interaktive Wahllokalsuche
	$('#suchfeld').val(getUrlVar('str'));
	validiereSuche($('#suchfeld').val());

	$('#suchfeld').keyup(function() {
		validiereSuche(this.value)
	});
});

var req = null;

function validiereSuche(val) {
	val = $.trim(val);
	if (val.length >= 3) {
		suche(val);
	} else {

		$("#ergebnis").html("<table class='table table-striped'>");
	
		$("#suchInfo")
				.html(
						'<span class="text-warning">Bitte geben Sie mindestens 3 Zeichen ein!</span>');

	}
}

function getUrlVar(key) {
	var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search);
	return result && decodeURIComponent(result[1]).split("+").join(" ") || "";
}

function suche(value) {

	if (req != null)
		req.abort();

	req = $
			.ajax({
				url : "html5strassen.xml",
				dataType : "xml",
				success : function(xml) {

					$("#ergebnis").html("");

					var ergebnismenge = 0;

					$(xml).find("str").filter(
							function() {
								// suche
								return $(this).find("name").text()
										.toLowerCase().indexOf(
												value.toLowerCase()) >= 0;
							}).each(
							function() {
								$("#ergebnis").append(
										"<a class='badge badge-light mr-1' href='"
												+ $(this).find("url").text()
												+ "'>"
												+ $(this).find("name").text()
												+ " "
												+ $(this).find("hnr").text()
												+ "</a>");
								ergebnismenge++;
							});

					if (ergebnismenge == 0) {
						$("#ergebnis")
								.append(
										"<div class='alert alert-warning'>Es wurden keine passenden Stra&szlig;en gefunden!</div>");
					} else {
						$("#suchInfo").html(
								'<span class="text-success">Es wurden '
										+ ergebnismenge
										+ ' Einträge gefunden:</span>');
					}
				},
				error : function(xml) {
					$("#suchInfo")
							.html(
									'<span class="text-error"><b>Fehler:</b> Das Stra&szlig;enverzeichnis konnte nicht geladen werden!</span>');
				}

			});
}

function fuelleTabelle(character) {

	btnArr = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
			"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
			"0-9" ];

	$
			.ajax({
				url : "html5strassen.xml",
				dataType : "xml",
				type : "POST",
				success : function(response) {

					var table = $(document.createElement("table"));
					table.addClass("table table-striped");
					table
							.append("<thead><tr><th>Name</th><th>Hausnummer</th><th>Stimmbezirk</th></tr></thead>");

					var tBody = $(document.createElement("tbody"));

					var $events = $(response).find("strassen");

					$events
							.each(function(index, event) {
								var $event = $(event);

								$event
										.children()
										.each(
												function(i, child) {

													var $child = $(child);

													name = $(child)
															.find("name")
															.text();

													printZeile = name
															.toLowerCase()
															.indexOf(
																	btnArr[character]
																			.toLowerCase()) == 0;

													if ((character + 1) == btnArr.length) {
														printZeile = false;
														$
																.each(
																		btnArr,
																		function(
																				index,
																				value) {
																			printZeile = printZeile
																					|| name
																							.toLowerCase()
																							.indexOf(
																									value
																											.toLowerCase()) == 0;
																		});
														printZeile = !printZeile;
													}

													if (printZeile) {

														spalte1 = "<a href='"
																+ $(child)
																		.find(
																				"url")
																		.text()
																+ "'>" + name
																+ "</a>";
														spalte2 = $(child)
																.find("hnr")
																.text();
														spalte3 = $(child)
																.find(
																		"stbz_bez")
																.text();

														tBody.append("<tr><td>"
																+ spalte1
																+ "</td><td>"
																+ spalte2
																+ "</td><td>"
																+ spalte3
																+ "</td></tr>");
													}

												});

							});

					table.append(tBody);

					var btnListe = $(document.createElement("ul"));
					btnListe.addClass("pagination justify-content-center m-2");
					$
							.each(
									btnArr,
									function(index, value) {
										btnListe
												.append("<li class='page-item'><a class='page-link' href='#' onClick='fuelleTabelle("
														+ index
														+ ")'>"
														+ value
														+ "</a></li>");
									});

					var btnListeContainer = $(document.createElement("div"));
					btnListeContainer.html(btnListe);
					btnListeContainer.css("text-align", "center");
					btnListeContainer.css("border-bottom", "solid 1px #efefef");

					var container = $('#tabelle');
					container.html(btnListeContainer);

					var fixedHeight = $(document.createElement("div"));
					fixedHeight.html(table);
					fixedHeight.css("max-height", "250px");
					fixedHeight.css("overflow", "auto");
					container.append(fixedHeight);

				}
			});

}