$('document').ready(function(){

	$('#step2').hide();

	// set up datepicker	
	var date = new Date();
	var dd = date.getDate();
	var mm = date.getMonth();
	var yyyy = '20' + new String(date.getYear()).substr(1,3);
	$(".datepicker").datepicker({ minDate: new Date(yyyy, mm, dd) });

	// fill out inputs values with title
	$('input.pre-fill, textarea.pre-fill').each(function(i,e){
		$(e).val($(e).attr('title'));
	});
	
	// bind event on focus on filled out elements
	$('input.pre-fill, textarea.pre-fill').bind('focus', function(){
		if($(this).val() == $(this).attr('title')){
			$(this).val('');
			$(this).removeClass('error');
		};
	});

	// bind event on focusout on filled out elements
	$('input.pre-fill, textarea.pre-fill').bind('focusout', function(){
		if($(this).val() == ''){
			$(this).val($(this).attr('title'));
		};
	});

	// submit booking handling
	$('#step1 #submit').bind('click', function(e){
		e.preventDefault();
		
		// validate required fields
		var required_fields = '';
		var required_count = 0;
		$('#step1 .required').each(function(i,e){
			if($(e).val() == ''){
				required_fields += '"'+$(e).attr('title')+'", ';
				required_count++;
			};
		});
		
		
		// validate integer fields
		var integer_fields = '';
		var integer_count = 0;
		$('#step1 .integer').each(function(i,e){
			var v = $(e).val();
			var vi = parseInt($(e).val());
			
			if (vi == (v - 0)) {
				if(vi < 1) {
					integer_fields += '"'+$(e).attr('title')+'", ';
					integer_count++;
				};
			} else {
				integer_fields += '"'+$(e).attr('title')+'", ';
				integer_count++;
			};
		});		
		
		
		if(required_fields == '' && integer_fields == ''){

			var inputs = $('#booking input[type=text]').clone();
			inputs.hide();
			
			$('#booking_full').append(inputs);
			$('#booking input').attr('disabled', 'disabled');
			$('#step2').slideDown();

		} else {
			if (required_fields != '') {
				if (required_count == 1) {
					alert('Bitte füllen Sie das Feld ' + required_fields.substr(0, (required_fields.length - 2)) + ' aus. Danke!');
				} else {
					alert('Bitte füllen Sie die Felder ' + required_fields.substr(0, (required_fields.length - 2)) + ' aus. Danke!');
				};
			} else {
				if (integer_count == 1) {
					alert('Bitte tragen Sie in das Feld ' + integer_fields.substr(0, (integer_fields.length - 2)) + ' eine Zahl ein. Danke!');
				} else {
					alert('Bitte tragen Sie in die Felder ' + integer_fields.substr(0, (integer_fields.length - 2)) + ' eine Zahl ein. Danke!');
				};
			};
		};		
	});
	
	// submit booking
	$('#booking_full').bind('submit', function(e){
		e.preventDefault();
		var form = $(this);
		
		$('input.pre-fill, textarea.pre-fill').each(function(i,e){
			if($(this).val() == $(this).attr('title')){
				$(this).val('');
				$(this).removeClass('error');
			};
		});
		
    $.ajax({
      type: "POST",
      url: 'submit_booking.php',
      data: $(this).serialize(),
        success: function(json){
          switch (json.type) {
            case 'success':              
              location.href = '/booking-success.html';              
              break;
        
            case 'failed':
              var fields = '';
            
              $(json.err).each(function(i,e){
                var field = $('[name|='+e.key+']');
                fields += field.attr('title')+', ';
                field.val(field.attr('title'));
                field.addClass('error');
              });

              $('input.pre-fill, textarea.pre-fill').each(function(i,e){
                if($(this).val() == ''){
                  $(this).val($(this).attr('title'));
                };
              });						

              alert('Bitte füllen Sie die markierten Felder aus. Danke!');
              break;
                    
            default:
              location.href = '/booking-failed.html';
              break;
          };
        },
      error: function(json){
        location.href = '/booking-failed.html';
      },
      dataType: 'json'
    });
	});
});

