$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

function kontaktform(responseText, statusText) {

	$("#kontakt_content div.border-left").html(responseText);

}

function show_pagepeel() {
	document.getElementById('pagepeel').style.width = '500px';
	document.getElementById('pagepeel').style.height = '500px';
}
function hide_pagepeel() {
	document.getElementById('pagepeel').style.width = '75px';
	document.getElementById('pagepeel').style.height = '75px';
}


$(document).ready(function() {

	//fix PNG-BUG IE<=6
	$("img").ifixpng();
	$("#merkzettel").ifixpng();
	$("#footer_bg").ifixpng();

	//Bilder einen Rahmen geben
	$("img.normalbox").each(function() {

		$(this).css("background-image", "url('" + $(this).attr("src") + "')");
		if ($(this).hasClass("blau")) {

			$(this).attr("src", "/obb/live/www_navi/style/bi_maske_normalboxen_blau.png");

			$(this).width(132);
			$(this).height(129);

			$(this).ifixpng();

		} else {

			$(this).attr("src", "/obb/live/www_navi/style/bi_maske_normalboxen.png");

			$(this).width(132);
			$(this).height(129);

			$(this).ifixpng();

		}

	});

	$("img.maske_liste").each(function() {

		$(this).css("background-image", "url('" + $(this).attr("src") + "')");

		$(this).attr("src", "/obb/live/www_navi/style/bi_maske_liste_blau.png");

		$(this).width(102);
		$(this).height(117);

		$(this).ifixpng();

	});

	$("#quicklinks").click(function() {

		$("#quicklinks_content").slideToggle();

	});

	//drucken
	$("div#drucken").click(function() {
		window.print();
	});


	//Headerlinks
	$("img.headerlink").hover(

		function () {

			var bu_up =	$(this).parent().attr("rel");

			$(this).parent().attr("rel", $(this).attr("src"));
			$(this).attr("src", bu_up);

		},

		function () {

			var bu_do =	$(this).parent().attr("rel");

			$(this).parent().attr("rel", $(this).attr("src"));
			$(this).attr("src", bu_do);

		}

	);

	//Metanavigation
	$("li.metalink").hover(

		function () {

			//alle anderen ausblenden falls noch welche aktiv sind -> bugfix
			$(".metalink").children("ul").hide();

			var bu_up =	$(this).children("a").attr("rel");

			var pos = $(this).position();

			$(this).children("a").attr("rel", $(this).children("a").children("img").attr("src"));
			$(this).children("a").children("img").attr("src", bu_up);

			$(this).children("ul").css("left", pos.left);
			$(this).children("ul").css("top", pos.top + 53);
			$(this).children("ul").show();

		},

		function () {

			var bu_do =	$(this).children("a").attr("rel");

			$(this).children("a").attr("rel", $(this).children("a").children("img").attr("src"));
			$(this).children("a").children("img").attr("src", bu_do);

			$(this).children("ul").hide();

		}

	);

	//Tabnavigation
	$("ul#tabs li").click(function() {

		var tab_id = $(this).attr("id");

		//alle Tabs ausblenden
		$("div.tab").hide();

		//alle Buttons auf do
		$("ul#tabs li").each(function(i) {

			var bu_do = $(this).children("img").attr("rel").replace("up", "do");

			$(this).children("img").attr("src", bu_do);
			$(this).children("img").ifixpng();

		});

		//aktuellen Button auf up
		var bu_up = $("#" + tab_id).children("img").attr("rel").replace("do", "up");
		$("#" + tab_id).children("img").attr("src", bu_up);
		$("#" + tab_id).children("img").ifixpng();

		//aktuelles Tab einblenden
		$("#" + tab_id + "_content").fadeIn();

	});

	//Datum
	$(".datepicker").datepicker({
		dateFormat: 'dd.mm.yy',
		showOn: 'both',
		buttonImage: '/obb/live/www_navi/style/calendar.gif',
		buttonImageOnly: true,
		minDate: 0,
		numberOfMonths: 2
	});

	//Form action bei Angeboten ändern
	$("select#angebote_thema").change(function() {

		$("#form_angebote").attr("action", $(this).val());

	});

	//Select Box bei Regionen & Orte dynamisch füllen
	$("select#regionen_orte_region").change(function() {

		$("select#regionen_orte_ort").attr("disabled", "disabled");

		$("form#suche-regionen").attr("action", $("select#regionen_orte_region option:selected").attr("class"));

		//Alle Elemente vom Typ Ort aus dem Navigationsbaum holen
		$.post("/obb/live/www_navi/ajax_live.php", { get_orte: 1, www_navi_id: $("select#regionen_orte_region").val(), element_id: $.getUrlVar('element_id') },
			function(data){

				$("select#regionen_orte_ort").html(data);

				$("select#regionen_orte_ort").removeAttr("disabled");

				if ($("select#regionen_orte_region").val()!="") {

					$("#www_navi_id_hilfsfeld").remove();

				}

				$("select#regionen_orte_ort").removeAttr("disabled");

			}
		);

	});

	//Orte beim Seitenaufruf anzeigen
	$("select#regionen_orte_region").trigger('change');

	//Select Box bei Regionen & Orte dynamisch füllen
	$("select#regionen_orte_ort").change(function() {

		if ($("#regionen_orte_ort :selected").attr("class")!="") {

			$("form#suche-regionen").attr("action", $("#regionen_orte_ort option:selected").attr("class"));

		}

	});

	//Select Box bei Freizeitaktivitäten dynamisch füllen
	$("select#freizeit_region").change(function() {

		//Alle Orte holen
		$.post("/obb/live/www_navi/ajax_live.php", { get_orte: 2, obb_regionen_id: $("select#freizeit_region").val(), ort_id: $.getUrlVar('ort') },
			function(data){

				$("select#freizeit_ort").html(data);

				$("select#freizeit_ort").removeAttr("disabled");

			}
		);

	});

	$("select#freizeit_region").trigger("change");

	//Select Box bei Freizeitaktivitäten dynamisch füllen NEU
	$("select#freizeit_region_neu").change(function() {

		//Alle Orte holen
		$.post("/obb/live/www_navi/ajax_live.php", { get_orte: 2, obb_regionen_id: $("#freizeit_region_neu option:selected").attr("id"), ort_id: $("#freizeit_ort_selected").val() },
			function(data){

				$("select#freizeit_ort_neu").html(data);

				$("select#freizeit_ort_neu").removeAttr("disabled");

			}
		);

	});

	$("select#freizeit_region_neu").trigger("change");

	//Bei Kategorieauswahl der Freizeittipps Form anpassen
	$("#freizeittipps_kategorie").change(function() {

		if ( $("#freizeittipps_kategorie option:selected").attr("class")!="") {

			$("form#suche-freizeittipps").attr("action", $("#freizeittipps_kategorie option:selected").attr("class"));

		}

	});

	$("#freizeittipps_kategorie").trigger("change");

	//Freizeittipps valideren
	$("form#suche-freizeittipps").validate();

	//Select Box bei Veranstaltungen dynamisch füllen
	$("select#veranstaltungen_region").change(function() {

		//Alle Orte holen
		$.post("/obb/live/www_navi/ajax_live.php", { get_orte: 3, obb_regionen_id: $("select#veranstaltungen_region option:selected").attr("class"), rce_schluessel: $("#hilfsgk2").val() },
			function(data){

				$("select#veranstaltungen_ort").html(data);

				$("select#veranstaltungen_ort").removeAttr("disabled");

			}
		);

	});

	$("select#veranstaltungen_region").trigger("change");


	//Bildnavigation im Content
	$("#slideshow").each(function() {

		$("#slideshow a").hide();
		$("#slideshow a:first").show();

		//Anzahl der Bilder
		var anz_bilder = $("#slideshow a:last").attr("id").replace("bild_", "");

		$("#gesbilder").html(anz_bilder);

		//Wenn Anzahl Bilder 1 dann Buttons inaktiv
		if (anz_bilder==1) {
			$("#bildzurueck").addClass("inaktiv");
			$("#bildvor").addClass("inaktiv");
		}

		$("img.nav_bilder").live("click", function() {

			if (!$(this).hasClass("inaktiv")) {

				var aktion = $(this).attr("id");
				var show_bild_id = "";

				//inaktiv von den Buttons entfernen
				$(".nav_bilder").removeClass("inaktiv");

				//aktives Bild ausfindig machen
				$("#slideshow a").each(function() {

					if ($(this).css("display")=="block") {

						if (aktion=="bildzurueck") {

							show_bild_id = $(this).prev("a").attr("id");

						} else {

							show_bild_id = $(this).next("a").attr("id");

						}

						if (show_bild_id) {
							$(this).hide();
						}

					}

				});

				if (show_bild_id) {

					//neues Bild einblenden
					$("#" + show_bild_id).show();

					var bildnr = show_bild_id.replace("bild_", "");

					//aktuelles Bild eintragen
					$("#bildnr").html(bildnr);

					//Wenn Bildnr 1 dann zurück inaktiv
					if (bildnr==1) {
						$("#bildzurueck").addClass("inaktiv");
					}

					//Wenn Bildnr gleich Anzahl Bilder dann vor inaktiv´
					if (bildnr==$("#gesbilder").html()) {
						$("#bildvor").addClass("inaktiv");
					}

				}

			}


		});

	});

	//Übersicht über Angebote
	$("#scrollbar").each(function() {

		var api = $("#scrollbar").scrollable({
			vertical:true,
	        size: 3,
	        speed: 800,
	        clickable: false,
	        keybord: true,
	        loop: false,
	        next: '#scrolldown',
	    	prev: '#scrolltop',
	    	api: true,
	    	onSeek: function() {
		        this.getItemWrap().children(".active").children("a").next().children().attr("src", "/obb/live/www_navi/style/bi_maske_liste_weiss.png");
		        this.getItemWrap().children(".active").children("a").next().children().ifixpng();
		    }
		});

		api.click($("#aktiv_item").html());

		//Wenn nicht 1. Element dann 1 nach oben scrollen -> damit aktives immer oben ist
		if($("#aktiv_item").html()>0) {
			api.move(1);
		}

	});

	$("#newsbox").scrollable({
		vertical:true,
        size: 1,
        autoplay: true,
        interval: 5000,
        loop: true,
        speed: 1000
	});

	//Merkzettel
	$("div.auf_merkzettel").click(function() {

		var element_id = $(this).attr("id");

		$.get("/obb/live/hilfsdateien/ajax.php", { merkzettel: "1", id: element_id, title: $(this).attr("title"), link: $(this).attr("link")}, function(data) {

			if (data=="true") {

				var anzahl = parseInt($("div#merkzettel span").text());

				$("div#merkzettel span").text(anzahl+1);

				$("#element_" + element_id).addClass("element_merkzettel");

			}

		});

		$(this).effect("transfer", { to: "div#merkzettel" }, 1000);

	});

	//Map
	if($("#myMap").length>0) {

		$("#myMap").html('<img src="http://www.oberbayern.de/obb/live/www_navi/style/obb_loading.jpg" alt="" style="width:230px; margin:10px;" />');

		LazyApiLoader.Load(GetECMap);

	}

	//Defaultvalue
	$("input.defaultvalue, textarea.defaultvalue").each(function() {

		$(this).defaultvalue($(this).attr("title"));

	});

	//Onlinekontakt valideren
	$("form#onlinekontakt").validate({
		rules: {
			name: "required_without_defaultvalue",
			vorname: "required_without_defaultvalue",
			email: {
				required_without_defaultvalue: true,
				email: true
			},
			bemerkungen: "required_without_defaultvalue",
			captcha: "required_without_defaultvalue"
		},
		messages: {
			name: "",
			vorname: "",
			email: "",
			bemerkungen: "",
			captcha: ""
		},
		submitHandler: function(form) {
			$("form#onlinekontakt").ajaxSubmit({
                success: kontaktform
            });

            // um Standard submit zu unterbinden
            return false;
		}
	});

	//Formular validieren
	$("#rit").validate({

		errorLabelContainer: $("div.error_message"),
		wrapper: 'li',

		rules: {
			anrede: "required",
			vorname: "required",
			nachname: "required",
			strasse: "required",
			hausnummer: "required",
			plz: "required",
			ort: "required",
			email: {
				required: true,
				email: true
			},
			email_best: {
				required: true,
				equalTo: "#email"
			},
			telefon: "required",
			abfahrtsbahnhof_hin: "required",
			zielbahnhof_hin: "required",
			erwachsene: {
				required: true,
				number: true
			},
			kinder: {
				required: true,
				number: true
			},
			klasse: "required",
			abfahrt: {
				required: true,
				dateDE: true
			},
			rueckfahrt: {
				required: {
                	depends:"#rueckfahrt_jn:checked"
                },
				dateDE: true
			},
			bahncard: "required",
			platzreservierung: "required",
			gepaeckservice: "required",
			unterkunft_name: "required",
			unterkunft_email: {
				email: true
			},
			unterkunft_strasse: "required",
			unterkunft_plz: "required",
			unterkunft_ort: "required",
			agb: "required",
			captcha: "required"

		},
		messages: {
			anrede: "Bitte wählen Sie eine Anrede aus!",
			vorname: "Bitte geben Sie Ihren Vornamen ein!",
			nachname: "Bitte geben Sie Ihren Nachnamen ein!",
			strasse: "Bitte geben Sie Ihre Strasse ein!",
			hausnummer: "Bitte geben Sie Ihre Hausnummer ein!",
			plz: "Bitte geben Sie Ihre Postleitzahl ein!",
			ort: "Bitte geben Sie Ihren Ort ein!",
			email: {
				required: "Bitte geben Sie Ihre E-Mailadresse ein!",
				email: "Bitte geben Sie eine gültige E-Mailadresse ein!"
			},
			email_best: {
				required: "Bitte geben Sie Ihre E-Mailbestätigung ein!",
				equalTo: "Ihre E-Mailadressen stimmen nicht überein"
			},
			telefon: "Bitte geben Sie Ihre Telefonnummer ein!",
			abfahrtsbahnhof_hin: "Bitte geben Sie den Abfahrtsbahnhof ein!",
			zielbahnhof_hin: "Bitte geben Sie den Zielbahnhof ein!",
			erwachsene: {
				required: "Bitte geben Sie die Anzahl der Erwachsenen ein!",
				number: "Die Anzahl der Erwachsenen ist keine Zahl!"
			},
			kinder: {
				required: "Bitte geben Sie die Anzahl der Kinder ein!",
				number: "Die Anzahl der Kinder ist keine Zahl"
			},
			klasse: "Bitte wählen Sie Ihre Klasse aus!",
			abfahrt: {
				required: "Bitte geben Sie Ihr Abfahrtsdatum ein!",
				dateDE: "Ihr Abfahrtsdatum ist kein gültiges Datumsformat!"
			},
			rueckfahrt: {
				required: "Bitte geben Sie Ihr Rückfahrtsdatum ein!",
				dateDE: "Ihr Rückfahrtsdatum ist kein gültiges Datumsformat!"
			},
			bahncard: "Bitte geben Sie an ob Sie eine Bahncard besitzen!",
			platzreservierung: "Bitte geben Sie an ob Sie eine Platzreservierung haben möchten!",
			gepaeckservice: "Bitte geben Sie an ob Sie einen Gepäckservice haben möchten!",
			unterkunft_name: "Bitte geben Sie den Namen Ihrer Unterkunft an!",
			unterkunft_email: {
				email: "Bitte geben Sie eine gültige E-Mailadresse Ihrer Unterkunft an!"
			},
			unterkunft_strasse: "Bitte geben Sie die Strasse Ihrer Unterkunft an!",
			unterkunft_plz: "Bitte geben Sie die Postleitzahl Ihrer Unterkunft an!",
			unterkunft_ort: "Bitte geben Sie den Ort Ihrer Unterkunft an!",
			agb: "Sie müssen den allgemeinen Geschäftsbedingungen zustimmen um die Fahrkarte zu buchen!",
			captcha: "Bitte tragen Sie die Sicherheitsabfrage ein!"
		}

	});

	//Datum
	Date.format = 'dd.mm.yyyy';
	$("#abfahrt").datePicker();
	$("#rueckfahrt").datePicker();

	//Captcha neu laden
	$("#captcha_div").click(function () {

		var random = Math.floor(Math.random()*25600);

		$(this).children("img").attr({
			src: "/obb/live/www_navi/captcha/image.php?new_captcha=true&" + random
		});

	});

	//Captcha neu laden
	$("#captcha_div_kontakt").click(function () {

		var random = Math.floor(Math.random()*25600);

		$(this).children("img").attr({
			src: "/obb/live/www_navi/captcha/image.php?new_captcha=true&" + random + "&color1=219&color2=203&color3=184"
		});

	});

	//alle externen Links kennzeichnen
	$('a').filter(function() {
		return this.hostname && this.hostname !== location.hostname;
	}).addClass('external');

	//alle externen Links in Analytics
	$("a.external").click(function(){

		var site = $(this).attr('href');
		site = site.replace("http://", "");

 		pageTracker._trackEvent("external", site);

	});

});