jQuery.fn.wait = function(time, type) {
	time = time || 1000;
	type = type || "fx";
	return this.queue(type, function() {
		var self = this;
		setTimeout(function() {
			jQuery(self).dequeue();
		}, time);
	});
};

// jQuery UI Datepicker
jQuery(function($) {
	$.datepicker.regional['de'] = {
		prevText:        'zurück',
		nextText:        'weiter',
		monthNames:      ['Jänner','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'],
		firstDay:        1,
		buttonText:      'Kalender',
		isRTL:           false
	};
	$.datepicker.regional['en'] = {
		buttonText:      'Calendar'
	};
	$.datepicker.regional['fr'] = {
		prevText:        'préc',
		nextText:        'suiv',
		monthNames:      ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'], 
		dayNames:        ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], 
		dayNamesMin:     ['Di','Lu','Ma','Me','Je','Ve','Sa'],
		firstDay:        0,
		buttonText:      'Calendrier',
		isRTL:           false
	};
	$.datepicker.regional['it'] = {
		prevText:        'prec',
		nextText:        'succ',
		monthNames:      ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], 
		dayNames:        ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], 
		dayNamesMin:     ['Do','Lu','Ma','Me','Gi','Ve','Sa'], 
		firstDay:        1,
		buttonText:      'Calendario',
		isRTL:           false
	};
	$.datepicker.setDefaults($.datepicker.regional[$('html').attr('lang')]);
	$.datepicker.setDefaults({
		buttonImage:     '/fileadmin/template/img/icons/datepicker.png',
		buttonImageOnly: true,
		dateFormat:      'yy-mm-dd', // ISO 8601
		minDate:         '0y',
		showOn:          'both',
		showOtherMonths: true
	});
	
	function select_to_datepicker(prefix, min_date, bind_to) {
		if($('select[name="' + prefix + '_yyyy"], select[name="' + prefix + '_mm"], select[name="' + prefix + '_dd"]').length == 3) {
			$('select[name="' + prefix + '_yyyy"], select[name="' + prefix + '_mm"], select[name="' + prefix + '_dd"]').css({display: 'none'});
			$('select[name="' + prefix + '_yyyy"]').before('<input type="text" name="' + prefix + '" readonly="readonly" class="s25" />');
			$('input[name="' + prefix + '"]').val(
				$('select[name="' + prefix + '_yyyy"]').val() + '-' +
				$('select[name="' + prefix + '_mm"]'  ).val() + '-' +
				$('select[name="' + prefix + '_dd"]'  ).val()
			);
			
			// Wenn die select-Elemente keine Werte haben, wird das Textfeld wieder geleert.
			if ($('input[name="' + prefix + '"]').val() == '--') {
				$('input[name="' + prefix + '"]').val('');
			}
			$('input[name="' + prefix + '"]').datepicker({
				minDate: min_date,
				onSelect: function(dateText, inst) {
					var arr = dateText.split('-');
					$('select[name="' + prefix + '_yyyy"]').val(arr[0]);
					$('select[name="' + prefix + '_mm"]'  ).val(arr[1]);
					$('select[name="' + prefix + '_dd"]'  ).val(arr[2]);
					
					// Bei der Auswahl eines Anreisedatums wird der Picker des Abreisedatums auf eine Mindestauswahl von +1 Tag (86400000 Millisekunden) gesetzt.
					$('input[name="' + bind_to + '"]').datepicker(
						'option',
						$.extend({
							minDate: new Date(
								parseInt(
									Date.parse(
										$('input[name="' + prefix + '"]').datepicker('getDate')
									)
								)+86400000
							)
						})
					);
					
				}
			});
		}
	}
	
	select_to_datepicker('mf_datum_von', '+1d', 'mf_datum_bis');
	select_to_datepicker('mf_datum_bis', '+2d');
});

jQuery('#media').ready(function() {
	jQuery.ajax({
		type: 'GET',
		url: window.location.href,
		data: 'type=71629',
		dataType: 'xml',
		success: function(xml) {
			jQuery('#media').after('<ul class="controls" id="mediacontrols"><li /></ul>');
			jQuery(xml).find('media>img').each(
				function() {
					jQuery('<img />')
					.attr('src',jQuery(this).attr('src'))
					.attr('width',jQuery(this).attr('width'))
					.attr('height',jQuery(this).attr('height'))
					.attr('alt',jQuery(this).attr('alt'))
					.attr('title',jQuery(this).attr('title'))
					.load(function(){
							jQuery('#media+.controls').append('<li />');
							jQuery('#media+.controls>li').unbind();
							jQuery('#media+.controls>li').bind(
								'click',
								function() {
									jQuery('#media+.controls>li').removeClass('cur');
									jQuery('#media+.controls>li:eq(' + jQuery(this).index() + ')').addClass('cur');
									jQuery('#media').cycle(jQuery(this).index()).cycle('pause');
									//alert(jQuery(this).index());
								}
							);
							// static: new images will be appended to the bottom of the list
							jQuery('#media').append(jQuery(this));
							// random: new images will be added randomly to the list 
							// jQuery('#media>img:nth-child(' + Math.ceil(Math.random() * jQuery('#media>img').length) + ')').after(jQuery(this));
							jQuery('#media').cycle(
								{
									fx:     'fade',
									timeout: 4000,
									speed:   2500,
									random:  0,     // does not with with jquery.cycle.lite.min.js
									                // but we don't care, because the preloading would mix up and brake the slideshow anyways
									before:  function(currSlideElement, nextSlideElement, options, forwardFlag) {
										jQuery('#media+.controls>li').removeClass('cur');
										jQuery('#media+.controls>li:eq(' + jQuery(nextSlideElement).index() + ')').addClass('cur');
									}
								}
							);}
					);
				}
			);
		}
	});
});


function media(force) {
	if (force == 'small') {
		jQuery('body').addClass('small');
		return true;
	}
	if (jQuery(window).width() < 1024) {
		jQuery('body').addClass('small');
	} else {
		jQuery('body').removeClass('small');
	}
}



jQuery(document).ready(function() {
	jQuery('body.home #col0').append('<div class="scroller" /><ul class="controls" />');
	jQuery('body.home #col0 .item:not(:first-child)').appendTo('body.home #col0 .scroller');
	
	jQuery('body.home #col0 .scroller .item:nth-child(3n-2)').each(
		function() {
			jQuery(this).wrap('<div class="itemgroup" />');
			jQuery(this).parent().next().appendTo(jQuery(this).parent());
			jQuery(this).parent().next().appendTo(jQuery(this).parent());
		}
	);
	if(jQuery('body.home #col0 .scroller .itemgroup').length > 1){
		for (var i = 1; i <= jQuery('body.home #col0 .scroller .itemgroup').length ; i++) {
			jQuery('body.home #col0 .controls').append('<li />');
		}
	}
	
	jQuery('body.home #col0 .controls>li').bind(
		'click',
		function() {
			jQuery('body.home #col0 .scroller').cycle(jQuery(this).index()-1).cycle('pause');
		}
	);
	
	jQuery('body.home #col0 .scroller').cycle({
		fx:      'scrollHorz',
		timeout: 4000,
		speed:   333,
		before:  function(currSlideElement, nextSlideElement, options, forwardFlag) {
			jQuery('body.home #col0 .controls>li').removeClass('cur');
			jQuery('body.home #col0 .controls>li:eq(' + jQuery(nextSlideElement).index() + ')').addClass('cur');
		}
	});	

	if(jQuery('body.home #col0 .scroller .itemgroup').length > 1){
		jQuery('body.home #col0 .controls').prepend('<a class="first"/>');
		jQuery('body.home #col0 .controls').append('<a class="last"/>');	
	}
	
	jQuery('body.home #col0 .controls>a.first').bind(
		'click',
		function() {
			jQuery('body.home #col0 .scroller').cycle(0).cycle('pause');
		}
	);
	
	jQuery('body.home #col0 .controls>a.last').bind(
		'click',
		function() {
			jQuery('body.home #col0 .scroller').cycle(jQuery('body.home #col0 .scroller .itemgroup').length-1).cycle('pause');
		}
	);
	
	
	jQuery('body.home #col0 .scroller .item').click(
		function() {
			self.location.href = jQuery(this).find('a:eq(0)').attr('href');
		}
	);
	
	media();
	
	
	// winter
	jQuery('.ui-datepicker-trigger').attr('src', '/fileadmin/template/img/icons/datepicker_winter.png');
	
	jQuery('a.button').wrapInner('<span />');
	jQuery('a.button2').wrapInner('<span />');
	jQuery('.csc-mailform-submit').wrap('<div class="submit"/>');
	jQuery('.csc-mailform-submit').wrap('<span class="button"/>');	
	jQuery('.tx-guestbook-submit').wrap('<div class="submit"/>');
	jQuery('.tx-guestbook-submit').wrap('<span class="button"/>');
	
	

});

jQuery(window).resize(function() {
	media();
});
