$(function() { 
	if($('#tabs').html() != null) {
        $('#tabs').tabs();
    }

    if($('#suche').html() != null) {
        validateSuche();
		setAutoComplete("zielort", "results", "/ajax.php?f=complete&string=");
		validateDates();
    }

    if($('#buchen').html() != null) {
		validateDates();
    }

    if($('#kontaktformular').html() != null) {
		validateKontaktformular();
    }  

	if($('#mapsearch').html() != null) {
		showMapSearch();
	}
});

function showIndexOptions() {
    if($('#weitere-optionen').css('display') == 'none') {
        $('#weitere-optionen').slideToggle('normal', function() {$('#weitere-optionen-a').html('weitere Optionen ausblenden');});
    } else {
        $('#weitere-optionen').slideToggle('normal', function() {$('#weitere-optionen-a').html('weitere Optionen einblenden');});   
    }
}

function sucheFormSelect() {
    if($('#tab-hotelsuche').css('display') == 'none') {
        $('#search_type').val('umkreissuche');
    } else {
        $('#search_type').val('hotelsuche');
    }
    return true;
}

function validateDates() {
	
	Date.firstDayOfWeek 	= 1;
	Date.format 			= 'dd.mm.yyyy';
	$.dpText = {
		TEXT_PREV_YEAR		:	'Jahr zur&uuml;ck',
		TEXT_PREV_MONTH		:	'Monat zur&uuml;ck',
		TEXT_NEXT_YEAR		:	'Jahr weiter',
		TEXT_NEXT_MONTH		:	'Monat weiter',
		TEXT_CLOSE			:	'Schlie&szlig;en',
		TEXT_CHOOSE_DATE	:	'Datum ausw&auml;hlen'
	}
	$('#anreisedatum')
		.datePicker({
			showYearNavigation: false,
			displayClose: 		true
		})
		.bind('dateSelected', function() { setTomorrow(); });	
	$('#abreisedatum').datePicker({
			showYearNavigation: false,
			displayClose: 		true	
	});
	
	$('#anreisedatum').dpSetSelected($('#anreisedatum').val());
	$('#abreisedatum').dpSetSelected($('#abreisedatum').val());
}

function setTomorrow() {
	
	date_string 	= $('#anreisedatum').val();
	date_array		= date_string.split(".");
	month_array 	= new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	date_day 		= parseInt(date_array[0], 10);
	date_month 		= parseInt(date_array[1], 10);
	date_year 		= parseInt(date_array[2], 10);

	if(date_day >= month_array[date_month-1]) {

		date_day = 1;

		if(date_month == 12) {
			date_month 	= 1;
			date_year 	= date_year + 1;
		} else {
			date_month 	= date_month + 1;
		}

	} else {
		date_day = date_day + 1;
	}

	date_day 	= date_day.toString();
	date_month 	= date_month.toString();
	date_year 	= date_year.toString();

	if(date_day.length == 1) 	{ date_day 		= '0' + date_day; }
	if(date_month.length == 1) 	{ date_month 	= '0' + date_month; }
	
	date_string = date_day +'.'+ date_month +'.'+ date_year;
		
	$('#abreisedatum').val(date_string);
	$('#abreisedatum').dpSetSelected(date_string);
}

function validateSuche() {
	$('#suche').validate({
		rules: {
			zielort: {
				required: function() {
					return ($('#tab-hotelsuche').css('display') != 'none');
				},
				minLength:  3			
			},
			hotelname: {
				minLength:  3		
			},
			strasse: {
				required: function() {
					return ($('#tab-umkreissuche').css('display') != 'none');
				},
				minLength:  3
			},
			ort: {
				required: function() {
					return ($('#tab-umkreissuche').css('display') != 'none');
				},
				minLength:  3
			},
			anreisedatum: {
				required: 	true,
				dateDE:  	true
			},
			abreisedatum: {
				required: 	true,
				dateDE:  	true
			}
		},
		messages: {
			zielort:        '<p class="ungueltig">Bitte geben Sie Ihren Zielort an</p>',
			hotelname:  	'<p class="ungueltig">Bitte geben Sie den Hotelnamen an</p>',
			strasse:        '<p class="ungueltig">Bitte geben Sie die Stra&szlig;e an</p>',
			ort:            '<p class="ungueltig">Bitte geben Sie Ort und Land an</p>',
			anreisedatum:   " ",
			abreisedatum:  	" "
		},
		errorClass:         "ungueltig"
	});
}

function validateKontaktformular() {
	$('#kontaktformular').validate({
		rules: {
			anrede: {
				required: 	true
			},
			vorname: {
				required: 	true,
				minLength:  3			
			},
			nachname: {
				required: 	true,
				minLength:  3			
			},
			email: {
				required: 	true,
				minLength:  3			
			},
			anliegen: {
				required: 	true
			},
			nachricht: {
				required: 	true,
				minLength:  10			
			}
		},
		messages: {
			anrede:        	"Bitte w&auml;hlen Sie eine Anrede",
			vorname:  		"Bitte geben Sie Ihren Vornamen an",
			nachname:       "Bitte geben Sie Ihren Nachnamen an",
			email:          "Bitte geben Sie Ihre E-Mail-Adresse an",
			anliegen:       "Bitte w&auml;hlen Sie einen Bereich",
			nachricht:  	"Bitte geben Sie eine Nachricht ein"
		},
		errorClass:         "ungueltig",
		errorElement:       "p"
	});
}

function hotelsStaedtereisen() {
    $('#cities').html('<div class="fragment-notabs"><p class="bold"><img src="/lib/icons/i_hourglass.gif" class="hourglass" />St&auml;dte werden geladen</p></div>');
    window.location.href = '#cities';
}

function hotelsReiseregionen() {
    $('#regions').html('<div class="fragment-notabs"><p class="bold"><img src="/lib/icons/i_hourglass.gif" class="hourglass" />Regionen werden geladen</p></div>');
    window.location.href = '#regions';
}

function hotelGetAvailability() {
   	$('#bookable_rooms').html('<div class="fragment-notabs"><p class="bold"><img src="/lib/icons/i_hourglass.gif" class="hourglass" />Informationen werden geladen</p></div>');
	$.ajax({
		url: "/ajax.php?f=availability", 
		data: $("#hotel_id").serialize()+"&"+$("#anreisedatum").serialize()+"&"+$("#abreisedatum").serialize(), 
		success: function(response) { $("#bookable_rooms").html(response); },
		dataType: "html"}); 
	return false;
}

function submitHotelGetAvailability() {
	hotelGetAvailability();
}

function setNewsletter() {
	$.ajax({
		url: "/ajax.php?f=newsletter", 
		data: $("#mail").serialize(), 
		success: function(response){ $("#mailsuccess").html(response); }, 
		dataType: "html"}); 
	return false;
}

function popupBuchen() {
	
	var win 	= null;
	settings	= "width=530,height=600,scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no";
	win			= window.open("about:blank", "buchen", settings);
	win.focus();
	          
	document.buchen_form.target = 'buchen';
	document.buchen_form.submit();
	
	return false;
}

function popupMeineReservierung() {
	
	var win 	= null;
	settings	= "width=530,height=600,scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no";
	win			= window.open("https://secure.booking.com/mybooking.html?aid=310636", "meine_reservierung", settings);
	win.focus();
}