$(document).ready(function() {
	$('#event_start_day, #event_end_day').datepicker({
		showOn: 'button',
		buttonImage: 'fileadmin/css/ui-lightness/images/calendar.jpg',
		buttonImageOnly: true,
		dateFormat: 'dd.mm.yy'
	});

	function formatNumberLength(num, length) {
		var r = "" + num;
		while (r.length < length) {
			r = "0" + r;
		}
		return r;
	}

	$('.submitall').click(function() {
		var currentTime = new Date();

		var day = currentTime.getDate();
		var month = currentTime.getMonth()+1;
		var year = currentTime.getFullYear();

		$('#event_start_day').val(formatNumberLength(day, 2) + '.' + formatNumberLength(month, 2) + "." + formatNumberLength(year, 4));

		if (month+7 > 12) {
			year++;
		}
		var month = (month+7)%12;

		$('#event_end_day').val(formatNumberLength(day, 2) + '.' + formatNumberLength(month, 2) + "." + formatNumberLength(year, 4));


		$('#tx_cal_controller_category_ids').val('');
	});

/* ___ 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();
		},
		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").length) {
		// Wird nach laden der Klinikseiten ausgefuehrt
		// setzt den ersten Tab auf "current" und belegt alle Tabs mit einem onclick
		var tabcounter = 0;
		for (tab = 1; tab < 5; tab++) {
			var $tabNavi = $('#cnavi' + tab);

			if ($('.part' + tab).length) {
				$tabNavi.click(function() {
					var clickedTabId = parseInt($(this).attr('id').replace(/cnavi/g, ''));
					changeCurr(clickedTabId);
					return false;
				});
				tabcounter++;
			} else {
				$tabNavi.hide();
			}
		}

		if (tabcounter == 1) {
			$('#content_navi').hide();
		} else {
			// URL ist hoeherwertiger im Bezug auf Tabdarstellung
			// so koennen auch einzelne Tabs mit Links direkt angewaehlt werden
			var currentTab = 1,
				url = document.URL,
				urlParts = url.split("#");

			// wenn Sprungmarke (#) in url vorhanden dann nutze sie
			if (urlParts.length > 1) {
				var urlLength = url.length;
				currentTab = parseInt(urlParts[1].replace(/tab/g, ''));
			}

			changeCurr(currentTab);
		}


/* ___ 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);
			}
		});
	}	
	
	
	/* ___ Scrollable ______________________________________________________ */
	$('.scrollable').scrollable({
		items: '.csc-textpic-imagewrap',
		vertical: true,
		circular: true		
	});
	
	/* ___ Character count for textarea ____________________________________ */
	// controls character input/counter
	$('.characterCounter textarea').keyup(function() {
		var value = $(this).val(); 
		var charLength = value.length;		
		var charMax = 250;
		if($(this).attr('data-character-max')) {
			charMax = $(this).attr('data-character-max');
		}
		
		// Displays count
		$('.characterCounter .info').html('(' + charLength + ' von max. ' + charMax + ' Zeichen incl. Leerzeichen verwendet)');
		// Alerts when charMax characters is reached
		if(charLength > charMax) {
			$(this).val(value.slice(0, charMax));
		}
	});
	
	/* ___ Fix for radio labels with images ________________________________ */
	$('form label img').click(function() {
		var radio_id = $(this).parent().attr('for');		
		// select radio
		$('#'+radio_id).attr("checked", "checked");		
	});

});


/**
 * wechselt den aktuellen Tab und den entsprechenden Inhalt
 * 
 * @param	string
 * @return	void
 */
function changeCurr(curTab) {
	// entfernt von allen Tabs die Klasse current
	$("#cnavi1, #cnavi2, #cnavi3, #cnavi4").removeClass("current");
	// versteckt den gesamten Inhalt
	$('.part').hide();

	if (!eval(curTab)) {
		curTab = 1;
	}

	var url = document.URL;
	url = url.split("#");
	url = url[0];

	// guckt welcher Tab aktiv werden soll, 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();
	}
}

