$(document).ready(function() {

/* ___ FlyOut Menus for IE6 ______________________________________________________ */

if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.charAt(22) == "6") {
	$("ul#navi_main li").hover(
		function () {
			$("ul", this).show();
		},
		function () {
			$("ul", this).hide();
		}
	);
	
	$("#navi_sub ul li ul li").hover(
		function () {
			$("ul", this).show();
			//alert("maep");
		},
		function () {
			$("ul", this).hide();
		}
	);
}

/* ___ FlyOut Menus ______________________________________________________ */
	var fake_li = '<li class="li_fake_shadow"></li>';
	$("ul.flyout").prepend(fake_li);
	
/* ___ Seitenselectbox ______________________________________________________ */
	$("#gesundheitspark").change(function() {
		var archive_val = $(this).attr("value");
		window.location.href = archive_val;
	});
	
/* ___ Klinikselectbox ______________________________________________________ */
	$("#clinic").change(function() {
		var clinic_val = $(this).attr("value");
		if (!clinic_val == "0") {
			window.location.href = 'index.php?id='+clinic_val+'#tab1';
		}
	});


/* ___ Baby-Archiv-Selectbox ______________________________________________________ */
	var select_box = "";
	
	// alle Links der Liste finden
	$("#archive_babys a").each(function() {
		// den href des jeweiligen Links speichern
		var opt_val = $(this).attr("href");
		
		// den Text des jeweiligen Links speichern
		var opt_text = $(this).html();
		//alert(opt_text);
		
		// Options fuer das zu erstellende <select> bauen
		// wenn der Link-Text mit einem <strong>-Tag umschlossen ist, ist es der aktuelle und muss selected werden
		var is_selected = $("strong", this).html();
		if (is_selected == null) {
			select_box = select_box+"<option value=\""+opt_val+"\">"+opt_text+"</option>\n";
		} else {
			select_box = select_box+"<option selected=\"selected\" value=\""+opt_val+"\">"+opt_text+"</option>\n";
		}
	});
	// <select> Tags um die Options legen
	select_box = "<select id=\"archive_baby_js\">"+select_box+"</select>"
	
	// <select> nach der Liste einfuegen
	$("#archive_babys").after(select_box);
	// Liste verstecken
	$("#archive_babys").hide();
	
	label_text = $("#box_archive_babys p").html();
	label = "<label for=\"archive_baby_js\">"+label_text+"</label>";
	$("#box_archive_babys").addClass("box_archive_babys_js");
	$("#box_archive_babys").prepend(label);
	$("#box_archive_babys p").hide();
	
	$("#archive_baby_js").change(function() {
		var archive_val = $(this).attr("value");
		window.location.href = archive_val;
	});


/* ___ Suchbox vorbelegen ______________________________________________________ */
	// Standard text setzen
	var text_search = 'Suchbegriff eingeben ...';
	// id des inputs
	var search_id = $("#search");
	
	// Text in input value setzen
	search_id.attr({value: text_search});
	
	// Wenn value gleich Standardtest ist, dann loeshcen bei focus
	search_id.focus(function() {
		var value_search = $(this).attr("value");
		if(value_search == text_search) {
			$(this).attr({ 
			  value: ""
			});
		}
	});
	
	// Standard-Text setzen, wenn kein value eingetragen und auserhalb des inputs geklickt wird
	search_id.blur(function() {
		var value_search = $(this).attr("value");
		if (!value_search) {
			$(this).attr({ 
			  value: text_search
			});
		}
	});


/* ___ Kontakt Formular ______________________________________________________ */
	if($('#contactform').is("*")) {
		// Wird nach laden der Seite Lob und Tadel ausgefuehrt
		// versteckt die Formularfelder zu den Benutzerdaten und setzt die Angabe des Users auf "Anonym"
		$(".reset").click(function() {
				clearInputs('delete');
				changeClassNames('dd,dt', 'contact', 'contact hidden');
				document.getElementById("contact_anonymious").setAttribute("checked", "checked");
				document.getElementById("contact_address").removeAttribute("checked");
		});
		// onclick für radiobutton -> zeigt erweitertes Formular an
		$("#contact_address").click(function() {
				clearInputs('delete');
				changeClassNames('dd,dt', 'contact hidden', 'contact');
		});
		// onclick für radiobutton -> blendet erweitertes Formular aus
		$("#contact_anonymious").click(function() {
				clearInputs('delete');
				changeClassNames('dd,dt', 'contact', 'contact hidden');
		});
		// ueberprueft ob das formular durch javasript oder durch typoscript kontrolliert werden muss
		// gibt notfalls fehlermeldungen aus oder sendet formular ab
		$(".submit").click(function() {
				if(checkFields()) {
					document.contactform.getElementsByTagName("p")[0].innerHTML = "";
					document.contactform.submit();
				} else {
					window.location.href = "index.php?id=13#";
					document.contactform.getElementsByTagName("p")[0].innerHTML = "Bitte &uuml;berpr&uuml;fen Sie alle rot markierten Felder";
					return false;
				}
		});
		// zeigt erweitertes Formular falls beim neuladen entsprechende auswahl übergeben wurde
		if(document.getElementById('contact_address').checked == true) {
			changeClassNames("dt,dd", "contact hidden", "contact");
		}
		
		
/* ___ Tab Navi ______________________________________________________ */
	} else if($("#content_navi").is("*")) {
		// Wird nach laden der Klinikseiten ausgefuehrt
		
		// setzt den ersten Tab auf "current" und belegt alle Tabs mit einem onclick
		tabcounter = 0;
		if($(".part4").is("*")) {
			$("#cnavi4").click(function() {
				changeCurr(4);
				return false;
			});
			tabcounter++;
		} else {
			$("#cnavi4").hide();
		}
		if($(".part3").is("*")) {
			$("#cnavi3").click(function() {
				changeCurr(3);
				return false;
			});
			tabcounter++;
		} else {
			$("#cnavi3").hide();
		}
		if($(".part2").is("*")) {
			$("#cnavi2").click(function() {
				changeCurr(2);
				return false;
			});
			tabcounter++;
		} else {
			$("#cnavi2").hide();
		}
		if($(".part1").is("*")) {
			
			$("#cnavi1").click(function() {
				changeCurr(1);
				return false;
			});
			tabcounter++;
		} else {
			$("#cnavi1").hide();
		}
		if(tabcounter == 1) {
			$("#content_navi").hide();
		}
		
		// URL ist hoeherwertiger im Bezug auf Tabdarstellung
		// so koennen auch einzelne Tabs mit Links direkt angewaehlt werden
		var url = document.URL;
		var urlParam = url.indexOf("#");
		
		// wenn Sprungmarke (#) in url vorhanden dann nutze sie
		if (!urlParam == "") {
			var urlLength = url.length;
			var tabId = url.substr(urlLength-1, 1);
			var tabId = parseInt(tabId);
			changeCurr(tabId);
		}


/* ___ Klinik Liste mit Hover Box ______________________________________________________ */
	} else if($("#clinics.klinikum").is("*")) {
		// Wird nach laden der Klinikliste ausgefuehrt
		// zeigt das erste Klinikbild automatisch an
		//$('.kliniklinks').click(function() {
		$('.kliniklinks').mouseover(function() {
			clinicteaser(this.id);
			return false;
		});
		clinicteaser();
	}
	
	
	/* ___ Klinik Infobox ______________________________________________________ */
	
	if($('.klinikbox').is("*")) {
		// Offset zum oberen Fensterrand
		// wegen IE Bugs hier erstmal fester Wert
		//var posReal = $(".klinikbox").offset().top;
		var posReal = 370;
		
		// Ausgangsposition speichern
		var posStart = $(".klinikbox").css("top");
		// "px" entfernen
		posStart = parseInt(posStart);
		
		// bei scrollen ausführen
		$(window).scroll(function () {
			// Scrollhoehe speichern
			// nicht "var pos = $(window).scrollTop();" weil ie6/7 Problem
			var posScroll = document.documentElement.scrollTop;
			
			// neue Position = Ausgangsposition plus Scrollhoehe
			//var posNew = posStart+posScroll;
			
			var posNew = (posScroll-posReal) + (posStart+10);
			
			if (posScroll > posReal) {
				// neue Position uebergeben
				$(".klinikbox").css("top", posNew);
			} else {
				$(".klinikbox").css("top", posStart);
			}
		});
	}
});


// wechselt den aktuellen Tab und den entsprechenden Inhalt
function changeCurr(curTab) {
	// entfernt von allen Tabs die Klasse current
	$("#cnavi1").removeClass("current");
	$("#cnavi2").removeClass("current");
	$("#cnavi3").removeClass("current");
	$("#cnavi4").removeClass("current");
	// versteckt den gesamten Inhalt
	$('.part1').hide();
	$('.part2').hide();
	$('.part3').hide();
	$('.part4').hide();
	
	if (!eval(curTab)) {
		curTab = 1;
	}
	
	var url = document.URL;
	url = url.split("#");
	url = url[0];
	
	// guckt welcher Tab aktiv ist, setzt ihn auf current und zeigt entsprechenden Inhalt
	$("#cnavi"+curTab).addClass("current");
	$(".part"+curTab).show();
	
	window.location.href = url+"#tab"+curTab;
}

// aendert die Klassen von allen Tags "tagNames" mit der Klasse "className" auf "newClassName"
function changeClassNames(tagNames, className, newClassName) {
	// teilt durch ',' getrennte Tagnamen
	var tags = tagNames.split(",");
	var tagCounter = 0;
	// jedes gesuchte tag wird geprueft
	while(tags[tagCounter]) {
		var a = 0;
		// tags werden durchlaufen
		while(document.getElementsByTagName(tags[tagCounter])[a]) {
			// Pruefung ob Tag className als Klasse hat
			if(document.getElementsByTagName(tags[tagCounter])[a].className == className) {
				// ersetzen der alten Klasse durch die newClassName
				document.getElementsByTagName(tags[tagCounter])[a].removeAttribute("class");
				document.getElementsByTagName(tags[tagCounter])[a].className = newClassName;
			}
			a++;
		}
		tagCounter++;
	}
}

// leert alle Inputfelder mit der gewünschten Klasse
function clearInputs(className) {
	// entfernt von den zusaetzlichen Pflichtfeldern die Fehlerklasse
	$("#label_first_name").removeClass("error");
	$("#label_name").removeClass("error");
	$("#label_email").removeClass("error");
	var a = 0;
	// geht durch alle Inputs und uebepreft klasse, bei entsprechender Klasse wird value geleert
	while(document.getElementsByTagName('input')[a]) {
		if(document.getElementsByTagName('input')[a].className == className) {
			document.getElementsByTagName('input')[a].value = "";
		}
		a++;
	}
}

// zusaetzliche Pruefung der Formularfelder
function checkFields() {
	$("#label_contact").removeClass("error");
	// Fehlermeldungen werden zurückgesetzt errormsg > 0 bedeutet Fehler im Formular
	var errormsg = 0;
	// TS-Fehlermeldung wird ausgeblendet wenn vorhanden
	if(document.getElementById("tserror")) {
		document.contactform.removeChild(document.getElementById("tserror"));
	}
	// testen ob die ueberpruefung noetig ist
	if(document.getElementById("contact_address").checked == true) {
		// pruefen ob ein Vorname angegeben ist, wenn nicht -> Fehler
		if(document.getElementById("first_name").value == "") {
			$("#label_first_name").addClass("error");
			errormsg = 1;
		} else {
			$("#label_first_name").removeClass("error");
		}
		
		// pruefen ob ein Name angegeben ist, wenn nicht -> Fehler
		if(document.getElementById("name").value == "") {
			$("#label_name").addClass("error");
			errormsg = 1;
		} else {
			$("#label_name").removeClass("error");
		}
		
		// pruefen ob eine nachricht eingegeben wurde, wenn nicht -> Fehler
		if(document.getElementById("message").value == "") {
			$("#label_message").addClass("error");
			errormsg = 1;
		} else {
			$("#label_message").removeClass("error");
		}
		
		// pruefen ob eine Email-Adresse agegeben wurde, wenn nicht -> Fehler
		if(document.getElementById("email").value == "") {
			$("#label_email").addClass("error");
			errormsg = 1;
		} else {
			// pruefen ob die Email-Adresse gueltig ist
			if(!document.getElementById("email").value.match(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i)) {
				$("#label_email").addClass("error");
				errormsg = 1;
			} else {
				$("#label_email").removeClass("error");
			}
		}
		// pruefen ob es Fehler gab, wenn nicht, dann wird true zurueckgegeben, sonst false
		if(errormsg == 0) {
			return true;
		} else {
			return false;
		}
	} else {
		// wenn die ueberpruefung nicht noetig ist wird true zurueck gegeben
		return true;
	}
}

function clinicteaser(klinikid) {
	$('.klinikbox').hide();
	$('.kliniklinks').removeClass("current");
	if(!klinikid) {
		$('.parent').show();
	} else {
		$('#'+klinikid).addClass("current");
		klinikid = klinikid.split("_")[1];
		$('#klinik_'+klinikid).show();
	}
}
