﻿
$(document).ready(function(){
	
	/* Ajax - Spinner
	*******************/
	//Spinner-Div erstellen
	$('<div id="ajaxSpinner"></div>').hide().appendTo('body');
	
	
	/* Init - Ajax Manipulation Region - SelectBox 
	************************************************/
	$('#searchForm #kontinent').change(function() {
		
		var position = $("#searchForm #region").offset(); //SelectBox - Position ermitteln
		$("#searchForm #region").html("<option value=''>loading...</option>"); //Loading - Text
		$('#ajaxSpinner').css({ top: position.top + 1 , left: position.left + $(this).width() - 40 }).fadeIn(); //Spinner einblenden
		
		//Request senden & verarbeiten
		$.post("common/ajaxRequest.php?regionForSelect=1&kontinent="+$('#searchForm #kontinent :selected').val(), function(response) {
			$("#searchForm #region").html(response);
			$('#ajaxSpinner').fadeOut();
		});
		
	});
	
	
	/* Init - Ein/Ausblenden Reiseart - Selectbox beim Laden der Seite
	********************************************************************/
	$('#searchForm #reisekategorie, #searchForm #labelForReisekategrie').hide();
	
	if($('#searchForm #reisekategorie_parent :selected').val() != '') {
		$('#searchForm #reisekategorie, #searchForm #labelForReisekategrie').show();
	}
	
	
	/* Init - Ajax Manipulation Reisekateorie - SelectBox 
	******************************************************/
	$('#searchForm #reisekategorie_parent').change(function() {
		
		//Ein/Ausblenden Reiseart - Selectbox
		if($('#searchForm #reisekategorie_parent :selected').val() != '') $('#searchForm #reisekategorie, #searchForm #labelForReisekategrie').fadeIn();
		else $('#searchForm #reisekategorie, #searchForm #labelForReisekategrie').fadeOut();
		
		//Spinner Positionierung/Einblenden
		var position = $("#searchForm #reisekategorie").offset(); //SelectBox - Position ermitteln
		$("#searchForm #reisekategorie").html("<option value=''>loading...</option>"); //Loading - Text
		$('#ajaxSpinner').css({ top: position.top + 1 , left: position.left + $(this).width() - 40 }).fadeIn(); //Spinner einblenden
		
		//Request senden & verarbeiten
		$.post("common/ajaxRequest.php?reisekategorieForSelect=1&reisekategorie_parent="+$('#searchForm #reisekategorie_parent :selected').val(), function(response) {
			$("#searchForm #reisekategorie").html(response);
			$('#ajaxSpinner').fadeOut();
		});
		
	});
			
	
	/* Init - Datepicker
	****************************/
	$.datepicker.setDefaults({
		dateFormat: 'dd.mm.yy',
		monthNames: ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
		prevText: 'zurück',
		nextText: 'vorwärts',
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		firstDay: 1,
		numberOfMonths: 1,
		buttonImage: 'img/iconDatePicker.gif',
		buttonImageOnly: true,
		buttonText: 'Datum wählen',
		showOn: 'both'
	});
	
	//Default Date-Range (Min) für Rückreise-Feld setzen
	$('#date_end').datepicker({ minDate: 0 });
	
	//Date-Range (Min) für Anreise-Feld + Func zur dyn. Aktualisierung des Rückreise-Feld
	$('#date_start').datepicker({
		minDate: 0,
		onSelect: function() {
					
			//Aktuelle Werte auslesen
			dateStart = $('#' + this.id).datepicker('getDate');
			dateEnd = $('#date_end').datepicker('getDate');
			
			//Abreise-Feld zurücksetzen, falls kleiner als Anreise
			if(dateEnd != null && dateEnd <= dateStart) {
				$('#date_end').datepicker('setDate', null);
			}
			
			//Date-Range + Preselection für Abreise-Feld setzen
			dateAbreise = new Date();
			dateAbreise.setTime(dateStart.getTime() + (24 * 60 * 60 * 1000)); // + 1 Tag
			$('#date_end').datepicker('option', 'minDate', dateAbreise);
			$('#date_end').datepicker('option', 'defaultDate', dateAbreise);
		}
	});
	
	
	/* Init - Tabs
	****************************/
	$('.tab').not($('.tab:first')).hide();
	$('.tabNav a:not(.outside)').each(function(){
		$(this).click(function(event){
			$('.tabNav .active').toggleClass('active');
			$(this).toggleClass('active');
			$(this).parent().toggleClass('active');
			var href = $(this).attr('href');
			$('.tab').hide();
			$(href).show();
			event.preventDefault();
		});
	});

	
	/* Init Search-Formular - Validierung
	***************************************************************/
	if ( $('#searchForm').length ) { //Check, ob Element existiert
	
		$('#searchFormBtn').formValidator({
			scope			: '#searchForm',
			errorDiv		: ''
		});
	}
	
	
	/* Init Kontakt-Formular - Validierung
	***************************************************************/
	if ( $('#contactFormBtn').length ) { //Check, ob Element existiert
	
		$('#contactFormBtn').formValidator({
			scope		: '#contactForm',
			errorDiv	: '#formValidMsg',
			customErrMsg: 'Bitte überprüfen Sie die rot markierten Felder!'
		});
	}
	
	
	/* Init Newsletter-Formular - Validierung
	***************************************************************/
	if ( $('#newsletterFormBtn').length ) { //Check, ob Element existiert
	
		$('#newsletterFormBtn').formValidator({
			scope		: '#newsletterForm',
			errorDiv	: '#formValidMsg',
			customErrMsg: 'Bitte überprüfen Sie die rot markierten Felder!'
		});
	}
	
	
	/* Init Anmeldung-Formular - Validierung
	***************************************************************/
	if ( $('#anmeldungFormBtn').length ) { //Check, ob Element existiert
	
		$('#anmeldungFormBtn').formValidator({
			scope		: '#anmeldungForm',
			errorDiv	: '#formValidMsg',
			customErrMsg: 'Bitte überprüfen Sie die rot markierten Felder!',
			divWarningAppendTo: "parent"
		});
	}
	
	
	/* Init - Anmeldeformular - Manipulation
	****************************************************************/
	$('#anmeldungForm .del').hide(); //Option "Person entfernen" ausblenden
	var mPC = 0; //morePersonCounter
	$('#anmeldungForm .add').click(function() {
		mPC++;
		var htmlcode = '';
		htmlcode+= '<div id="morePerson'+mPC+'">';
		htmlcode+= '<br /><div class="hr"></div>';
		htmlcode+= '<div class="twoColLeft">';
		htmlcode+= '<label for="anrede'+mPC+'">Anrede* / Titel:</label><select id="anrede'+mPC+'" name="anrede[]" class="req-string selectbox" style="width: 100px;">'+$('#anmeldungForm #anrede0').html()+'</select> ';
		htmlcode+= '<input type="text" id="titel'+mPC+'" name="titel[]" value="" class="textbox" style="width: 96px;" />';
		htmlcode+= '<label for="vorname'+mPC+'">Vorname, Name:*</label> <input type="text" id="vorname'+mPC+'" name="vorname[]" value="" class="req-string textbox" style="width: 96px;" /> <input type="text" id="name'+mPC+'" name="name[]" value="" class="req-string textbox" style="width: 96px;" />';
		htmlcode+= '<label for="geburtsdatum'+mPC+'">Geburtsdatum:*</label><input type="text" id="geburtsdatum'+mPC+'" name="geburtsdatum[]" value="" class="req-string textbox" style="width: 96px;" />';
		htmlcode+= '</div>';
		htmlcode+= '<div class="twoColRight">';
		htmlcode+= '<label for="unterbringung'+mPC+'">Unterbringung:*</label><select id="unterbringung'+mPC+'" name="unterbringung[]" class="req-string selectbox">'+$('#anmeldungForm #unterbringung0').html()+'</select>';
		htmlcode+= '<label for="abflugort'+mPC+'">Abflugort:*</label><input type="text" id="abflugort'+mPC+'" name="abflugort[]" value="" class="req-string textbox" style="width: 200px;" />';
		htmlcode+= '</div>';
		htmlcode+= '<div class="clearer"></div>';
		htmlcode+= '</div>';
			
		//Formular erweitern
		$(htmlcode).appendTo($("#anmeldungForm #morePersons"));
		$("#anmeldungForm #morePerson"+mPC).hide();
		$("#anmeldungForm #morePerson"+mPC).fadeIn();
		
		//Option "Person entfernen"
		$('#anmeldungForm .del').fadeIn();
		$('#anmeldungForm .del').unbind("click");
		$('#anmeldungForm .del').click(function() {
			
			//Formular verringern
			$("#anmeldungForm #morePerson"+mPC).fadeOut();
			$("#anmeldungForm #morePerson"+mPC).remove();
			
			mPC--;
			
			//Option "Person entfernen" ausblenden
			if(mPC == 0) $('#anmeldungForm .del').fadeOut();
		})
	
	})
		
	
	/* TR - Background Markierung bei aktivierter Checkbox
	******************************************************************/
	if ( $('.contentTbl .tdata input.checkbox').length ) { //Check, ob Element existiert
		
		$('.contentTbl .tdata input.checkbox').click(function() {
			if($(this).is(':checked')) $(this).parent().parent().addClass("tdataActive");
			else $(this).parent().parent().removeClass("tdataActive");
		})
	}
	
	
	/* Init - Tooltip fuer Anforderungslevel
	****************************************************************/
	if ( $('.displayALevel').length ) { //Check, ob Element existiert
		
		$('.displayALevel').tooltip({
			//positionLeft: true
			track: true,
			fade: 75
		});
	}
	
});






