// JavaScript

$(document).ready(function() {
	
	// externe Links in einem
	// neuem Fenster öffnen lassen
	$("a[rel='external']").click(function() {
		window.open($(this).attr("href"));
		return false;
	});
	
	$(".iframe").fancybox({
		"width" :		640,
		"height" :		360,
		"scrolling" :	"no",
		"titleShow" :	false,
		"transitionIn":	"elastic",
		"transitionOut":"elastic"
	});
	
	// Listenelemente der Hauptnavigation verlinken
	$("#nav li").css("cursor", "pointer");	
	$("#nav li").hover(function() {
		$(this).children("a").css("color", "#000000");
		$(this).children("a").css("background-image", "url(images/navpfeil-active.gif)");
	});
	$("#nav li").mouseleave(function() {
		$(this).children("a").css("color", "#ffffff");
		$(this).children("a").css("background-image", "url(images/navpfeil.gif)");
	});
		
	$("#nav li").click(function() {
		window.location.href = $(this).children("a").attr("href");
	});
	
	// Container für Animation im 
	// Navigationsfeld "Home" einbinden
	$(".home").append("<div class='animation-container'></div>");
	$(".animation-container").append("<img src='images/schild-taxi-trans.jpg' width='176' height='96' style='right:12px' />");
	window.setTimeout(showAnimation, 1000);
	
	// Formularfelder vorbelegen
	if($("form").length > 0) {
		
		for(var i = 0; i < $(".datum").length; i++) {
			
			if($(".datum:eq("+i+")").val() == "" || $(".datum:eq("+i+")").val() == "TT.MM.JJJJ") {
				$(".datum:eq("+i+")").addClass("vorbelegt");
				$(".datum:eq("+i+")").val("TT.MM.JJJJ");
			}
		}
		
		for(i = 0; i < $(".uhrzeit").length; i++) {
			if($(".uhrzeit:eq("+i+")").val() == "" || $(".uhrzeit:eq("+i+")").val() == "HH:MM") {
				$(".uhrzeit:eq("+i+")").addClass("vorbelegt");
				$(".uhrzeit:eq("+i+")").val("HH:MM");
			}
		}
		
		$(".datum").click(function() { 
			if($(this).val() == "TT.MM.JJJJ") {
				$(this).val("");
				$(this).removeClass("vorbelegt");
			}
		});
		
		$(".uhrzeit").click(function() { 
			if($(this).val() == "HH:MM") {
				$(this).val("");
				$(this).removeClass("vorbelegt");
			}
		});
		
		$(".datum").blur(function() { 
			if($(this).val() == "") {
				$(this).val("TT.MM.JJJJ");
				$(this).addClass("vorbelegt");
			}
		});
		
		$(".uhrzeit").blur(function() { 
			if($(this).val() == "") {
				$(this).val("HH:MM");
				$(this).addClass("vorbelegt");
			}
		});
		
		if($(".datum").length > 0) $(".datum").datepicker({ dateFormat: 'dd.mm.yy', monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'], dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], minDate: 0, onSelect: function(dateText, inst) { $(this).removeClass("vorbelegt"); } });
		
		// Formularüberprüfung
		$("form").submit(function () { return validateFormInput(); });
		
	}
	
});


// Animation im Navigationsfeld "Home"
function showAnimation() {
	$(".animation-container img").animate({right: '75px'}, {duration: 3000, queue: true});
}


// Formularüberprüfung
function validateFormInput() {
	
	var error_text = "<ul>";
	var label_text = "";
	var no_error = true;
	
	$("input").removeClass("error");
	
	for(var i = 0; i < $("fieldset").length; i++) {
		
		for(var j = 0; j < $("fieldset:eq("+i+")").children("div").children("input").length; j++) {
			
			// Pflichtfelder
			if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("pflicht")
				&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() == "") {
				error_text += "<li>Bitte füllen Sie das Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+" aus.</li>";
				no_error = false;
			// Zahlen
			} else if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("zahl")
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() != "") { 
				var zahl = $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val().replace(/,/g, ".");
				if(!isFinite(zahl)) {
					error_text += "<li>Bitte geben Sie im Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+" nur Zahlen ein.</li>";
					no_error = false;
				}
			// Datumsangaben
			} else if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("datum")
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() != "" &&  $("fieldset:eq("+i+")").children("input:eq("+j+")").val() != "TT.MM.JJJJ"
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val().search(/^(31|30|[012]\d|\d)\.(0\d|1[012]|\d)\.(\d{1,6})$/) == -1) {
				error_text += "<li>Ungültiges Datum-Format im Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+". Bitte geben Sie ein Datum im Format TT.MM.JJJJ an.</li>";
				no_error = false;
			// Uhrzeit
			} else if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("uhrzeit")
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() != "" && $("fieldset:eq("+i+")").children("input:eq("+j+")").val() != "HH:MM"
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val().search(/^([01]?\d|2[0-3])[.:]([0-5]?\d{2})$/) == -1) {
				error_text += "<li>Ungültiges Uhrzeit-Format im Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+". Bitte geben Sie Uhrzeiten im Format HH:MM an.</li>";
				no_error = false;
			// Telefonnummer
			} else if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("telefon")
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() != "" 
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val().search(/^[0-9/. \-]*$/) == -1) {
				error_text += "<li>Ungültige Telefonnummer im Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+".</li>";
				no_error = false;
			// E-Mail
			} else if($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").hasClass("mail")
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val() != "" 
					&& $("fieldset:eq("+i+")").children("div").children("input:eq("+j+")").val().search(/^.+@.+\.[^.]{2,}$/) == -1) {
				error_text += "<li>Ungültige E-Mail-Adresse im Feld "+formErrorHandler($("fieldset:eq("+i+")").children("div").children("input:eq("+j+")"))+".</li>";
				no_error = false;
			} else { }
			
		}
		
	}
	
	if(!no_error) {
		$("#error-container").html(error_text+"</ul>");
		
		$('html,body').animate({
			scrollTop: $("#error-container").offset().top - 20
		}, 1500);
	}
	
	return no_error;
	
}


function formErrorHandler(inputField) {
	inputField.addClass("error");
	var label_text = $("label[for='"+inputField.attr("id")+"']:eq(0)").text().split(":");
	
	return label_text[0];
}
