$(document).ready(function(){
	$('#bookingForm').draggable({
		scroll: false, 
		revert: false, 
		containment: '#content',    
		cursor: 'move',    
		snap: '#content',
		opacity: 0.4
	});
	$('#bookingForm #bookClose').click(function(){
		showPage($('#bookingForm'));
	});
	$('#booking').validate();
	$('#booking').submit( function(){
		var action = $(this).attr('action');
		$.post(action, {
			name: $('#booking #name').val(),
			requred_fields: $('#requred_fields').val(),
			//debug: $('#booking #debug').val(),
			email: $('#booking #email').val(),
			subject: $('#booking #subject').val(),
			message: $('#booking #message').val(),
			phone: $('#booking #phone').val(),
			arrive: $('#booking #arrive').val(),
			departure: $('#booking #departure').val(),
			person: $('#booking #person')[0].selectedIndex,
			child: $('#booking #child')[0].selectedIndex,
			room: $('#booking #room')[0].selectedIndex
		},
			function(data){
				$('#booking #submit').attr('disabled','');
				$('#response').remove();
//				$('#booking').before('<div id="response">'+data+'</div>');
				$('#response').slideDown();
				if(data.trim()=='Message sent!')
				{
					$('#booking').before('<div id="response">Ihre Anfrage wurde an uns weitergeleitet.</div>');
					$('#booking').slideUp(); 
					setTimeout("showPage($('#bookingForm'))", 3000);
				}
				else
				{
					//$('#bookingForm').shake(100);
					var arr = data.split(',');
					if($('#booking #debug').val()=='true')
					{
						alert('Debug ENABLED\n\n'+arr.join(' '));
					}
					for (var i = 0; i< arr.length; i++)
					{
						$('#'+arr[i]).addClass('missing');
					}
					$('#booking').effect( "shake", {}, 80 );
				}
			}
		);
		return false;
	});	
	$('.book').click(function(){
			br_initForm();
			//$('#booking #arrive')
			Date.format = 'dd.mm.yyyy';
			$.dpText = {
					TEXT_PREV_YEAR	 :	'Vorheriges Jahr',
					TEXT_PREV_MONTH	 :	'Vorheriger Monat',
					TEXT_NEXT_YEAR	 :	'Nächstes Jahr',
					TEXT_NEXT_MONTH	 :	'Nächster Monat',
					TEXT_CLOSE		 :	'Schließen',
					TEXT_CHOOSE_DATE :	'Datum Auswählen'
				};
			Date.dayNames = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
			Date.abbrDayNames = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'];
			// .val(new Date().asString())
			$('.date-picker').datepicker({
				minDate: 0, 
				numberOfMonths: [1, 1],
				defaultDate: 0, 
				showWeek: true,
				firstDay: 1,
				showOn: 'both',
				buttonImage: "http://static.schmitz-mettmann.de/urn:static:resx/calendar.png",
				buttonImageOnly: true,
				showButtonPanel: true,
				constrainInput: true, 
				changeYear: true, 
				changeMonth: true,
				gotoCurrent: false, 
				showButtonPanel: true, 
				showAnim: 'fold'
			});
			
			$('#booking #message').focus(function(){
				if ($(this).val() == 'Bemerkungen (optional)') {
					$(this).animate({height: '200px'}, 700, function(){
						$(this).val('');
						br_resetModalPosition();
					});
				}
			});
			$('#booking #message').blur(function(){
				if ($(this).val() == '') {
					$(this).animate({height: '15px'}, 500, function(){
						$(this).val('Bemerkungen (optional)');
						br_resetModalPosition();
					} );
				}
			});	
			
			$('#modal-overlay').fadeIn('slow');
			$('#bookingForm').fadeIn('slow');
			
//			$('#booking #arrive').select();
//			$('#booking #arrive').focus();
	});
	
	$(window).resize(function(){
		br_resetModalPosition();
	});
	$(window).scroll(function(){
		br_resetModalPosition();
	});
});
function br_resetModalPosition() 
{
	var visibility = $('#bookingForm:hidden')[0]; //visible ).is(':visible') $(this).css("display") == 'none'
	//alert('Hidden is '+visibility+' '+(visibility==undefined));
	// Check if it is visible
	if(visibility==undefined)
	{
		var browserWidth = $(window).width();
		var browserHeight = $(window).height();
		var bh = $('#bookingForm').outerHeight();
		var bw = $('#bookingForm').outerWidth();
		var topNew = (browserHeight-bh)/2;
		var leftNew = (browserWidth-bw)/2;
	
		$('#bookingForm').animate({
			top: topNew+10+'px',
			left: leftNew+'px'
		});
		$('#modal-overlay').css({
			width: browserWidth+'px',
			height: (browserHeight+100)+'px'
		});
		$('#bookingForm #bookClose').css({
			left: (bw-20)+'px'
		});
		//$('#bookingForm').css('top', $(document).scrollTop()+ 'px');
		$('#modal-overlay').css('top', $(document).scrollTop() + 'px');
	}
}
//function br_formatDate(date, separator)
//{
//	if(null == separator)
//	{
//		var separator = '.';
//	}
//	if(null == date)
//	{
//		var date = new Date();
//	}
//	return date.getDay()+
//		separator+
//		date.getMonth()+
//		separator+
//		date.getFullYear();
//}
function br_fillNums(selectObj, fillMax, fillEndOption)
{	
	for (var i = 0; i<= fillMax; i++)
	{
		selectObj.append('<option value="'+i+'">'+i+'</option>');
	}
	if(null!=fillEndOption)
	{
		selectObj.append('<option value="'+fillEndOption+'">'+fillEndOption+'</option>');
	}
}
function showPage(callerObj){
	callerObj.fadeOut('slow');
	$('#modal-overlay').fadeOut('slow');
}
function br_initForm()
{
	$('#response').remove();
	br_fillNums($('#booking #person'), 20, 'mehr');
	$('#booking #person')[0].selectedIndex = 2;
	br_fillNums($('#booking #child'), 3, 'mehr');
	br_fillNums($('#booking #room'), 5, 'mehr');
	
	br_initDefaults($('#booking #name'),'Vor-, Nachname');
	br_initDefaults($('#booking #email'),'E-Mail');
	br_initDefaults($('#booking #phone'),'Telefon');
	$('#booking #message').val('Bemerkungen (optional)');
	$('#booking #message').blur();
	
	$('#booking').show();
	br_resetModalPosition();
}
function br_initDefaults(obj, defaultVal)
{
	obj.val(defaultVal);
	obj.addClass('missing');
	
	obj.focus(function(){
		if ($(this).val() == defaultVal) { 
			$(this).val(''); 
		}
		br_resetModalPosition();
	});
	
	obj.blur(function(){
		if ($(this).val().trim() == '' || $(this).val().trim() == defaultVal) {
			$(this).val(defaultVal); 
			$(this).addClass('missing');
		}
		else
		{
			$(this).removeClass('missing');
		}
	});
}
