
$(document).ready(function() {

  if ($.trim($('#company').val()) != '' || $.trim($('#street_address2').val()) != '') {
    show_text($('#link_show_all_address_fields'));
  }

  if ($.trim($('#telephone').val()) != '' || $.trim($('#telephone2').val()) != '') {
    $('#text_phone_numbers_delivery').hide();
  }
  if ($('#always_show_section_phone_numbers').val() != 'true') {
    $('#text_phone_numbers_delivery').hide();
    $('#section_phone_numbers_delivery').hide();
  }
  if ($('#always_show_section_delivery_times').val() != 'true') {
    $('#section_delivery_times').hide();
    $('#text_delivery_times_parcel').hide();
  }

  if ($.trim($('#comments').val()) != '') {
    show_text($('#link_show_comments'));
  }

  if ($('#delivery_type').val() != 'parcel') {
	  get_cities();
  }
  show_section_phone_numbers();

	function get_cities(hide_default_city) {
		var default_city = !hide_default_city ? '&default_city='+$('#default_city').val() : '';
		$('select.street_address').html('');
		$('select.street_address').val('');
		$('select.street_address').attr('disabled', true);
		$('select.postcode').html('');
		$('select.postcode').val('');
		$('select.postcode').attr('disabled', true);
		$('select.city').html('');
		$('select.city').val('');
		$('select.city').attr('disabled', true);
    if ($('select.postcode').attr('disabled') == 'disabled') {
      disable_other_fields();
    }
		$.ajax({
			type: 'POST',
			url: 'delivery.php',
			data: 'type=cities'+default_city,
			success: function(data){
				if(data) {
					$('select.city').html(data);
					$('select.city').attr('disabled', false);
					if($('select.city').val()) {
            enable_other_fields();
            get_postcodes();
					}
				}
			}
		});
	}

	function get_postcodes() {
    $('select.street_address').html('');
		$('select.street_address').val('');
		$('select.street_address').attr('disabled', true);
		$('select.postcode').html('');
		$('select.postcode').val('');
		$('select.postcode').attr('disabled', true);
    $.ajax({
      type: 'POST',
      url: 'delivery.php',
      data: 'type=postcodes&city='+$('select.city').val()+'&default_postcode='+$('#default_postcode').val(),
      success: function(data){
        if(data) {
          $('select.postcode').html(data);
          $('select.postcode').attr('disabled', false);
          if($('select.postcode').val()) {
            get_streets();
          }
        }
      }
    });
  }

	function get_streets() {
		$('select.street_address').html('');
		$('select.street_address').val('');
		$('select.street_address').attr('disabled', true);
		$.ajax({
			type: 'POST',
			url: 'delivery.php',
			data: 'type=streets&city='+$('select.city').val()+'&postcode='+$('select.postcode').val()+'&default_street='+$('#default_street').val(),
			success: function(data){
				if(data) {
					$('select.street_address').html(data);
					$('select.street_address').attr('disabled', false);
					if($('select.street_address').val()) {
						$('select.street_address').change();
          }
        }
			}
		});
	}

	function disable_other_fields() {
    $('#gender_m').attr('disabled', true);
    $('#gender_f').attr('disabled', true);
    $('#title').attr('disabled', true);
    $('#firstname').attr('disabled', true);
    $('#lastname').attr('disabled', true);
    $('#house_number').attr('disabled', true);
  }

	function enable_other_fields() {
    $('#gender_m').attr('disabled', false);
    $('#gender_f').attr('disabled', false);
    $('#title').attr('disabled', false);
    $('#firstname').attr('disabled', false);
    $('#lastname').attr('disabled', false);
    $('#house_number').attr('disabled', false);
  }
	
	/* Action events */

	$('#city').change(function() {
    if ($('#delivery_type').val() != 'parcel') {
      enable_other_fields();
      get_postcodes();
      $('#section_delivery_times_middle').html('<h4>Zustellzeit</h4><div class="standard_line">Bitte tragen Sie oben zuerst eine Zustelladresse ein.</div>');
      $('#section_delivery_times_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
      $('#section_florist_details_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
      $('#florist_order_text').html('<p>Dann besprechen Sie das doch einfach mit Ihrem Floristen telefonisch. Um die richtige <span class="highlighted">Telefonnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
      $('#florist_custom_order_text').html('<p>Besprechen Sie Ihre Wünsche zuerst mit dem zuständigen Floristen am Telefon. Um die richtige <span class="highlighted">Rufnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
    } else {
      show_section_phone_numbers();
    }
  });
	
	$('#postcode').change(function() {
    if ($('#delivery_type').val() != 'parcel') {
      get_streets();
      $('#section_delivery_times_middle').html('<h4>Zustellzeit</h4><div class="standard_line">Bitte tragen Sie oben zuerst eine Zustelladresse ein.</div>');
      $('#section_delivery_times_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
      $('#section_florist_details_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
      $('#florist_order_text').html('<p>Dann besprechen Sie das doch einfach mit Ihrem Floristen telefonisch. Um die richtige <span class="highlighted">Telefonnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
      $('#florist_custom_order_text').html('<p>Besprechen Sie Ihre Wünsche zuerst mit dem zuständigen Floristen am Telefon. Um die richtige <span class="highlighted">Rufnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
    } else {
      show_section_phone_numbers();
    }
  });
	
	$('#street_address').change(function() {
    show_section_phone_numbers();
    if ($('#delivery_type').val() != 'parcel') {
      $.ajax({
        type: 'POST',
        url: 'delivery.php',
        data: 'page='+document.URL+'&type=cost_customer&city='+$('select.city').val()+'&postcode='+$('select.postcode').val()+'&street_address='+$('select.street_address').val(),
        success: function(data){
          if(data) {
            $('#section_delivery_times_middle').html('<h4>Zustellzeit</h4>'+data);
            $('#section_delivery_times_box').html(data);

            $.ajax({
              type: 'POST',
              url: 'florist_details.php',
              data: 'florist_id='+$('#florist_id').val(),
              success: function(data){
                if(data) {
                  $('#section_florist_details_box').html(data);
                } else {
                  $('#section_florist_details_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
                }
              }
            });

            $.ajax({
              type: 'POST',
              url: 'florist_order_text.php',
              data: 'florist_id='+$('#florist_id').val(),
              success: function(data){
                if(data) {
                  $('#florist_order_text').html('<p>Dann besprechen Sie das doch einfach mit Ihrem Floristen telefonisch:</p>' + data);
                  $('#florist_custom_order_text').html('<p>Besprechen Sie Ihre Wünsche zuerst mit dem zuständigen Floristen am Telefon:</p>' + data);
                } else {
                  $('#florist_order_text').html('<p>Dann besprechen Sie das doch einfach mit Ihrem Floristen telefonisch. Um die richtige <span class="highlighted">Telefonnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
                  $('#florist_custom_order_text').html('<p>Besprechen Sie Ihre Wünsche zuerst mit dem zuständigen Floristen am Telefon. Um die richtige <span class="highlighted">Rufnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
                }
              }
            });

          } else {
            $('#section_delivery_times_middle').html('<h4>Zustellzeit</h4><div class="standard_line">Bitte tragen Sie oben zuerst eine Zustelladresse ein.</div>');
            $('#section_delivery_times_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
            $('#section_florist_details_box').html('Bitte wählen Sie zuerst eine Zustelladresse aus.');
            $('#florist_order_text').html('<p>Dann besprechen Sie das doch einfach mit Ihrem Floristen telefonisch. Um die richtige <span class="highlighted">Telefonnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
            $('#florist_custom_order_text').html('<p>Besprechen Sie Ihre Wünsche zuerst mit dem zuständigen Floristen am Telefon. Um die richtige <span class="highlighted">Rufnummer</span> zu erfahren, wählen Sie bitte in der Box oben rechts zuerst die korrekte Zustelladresse aus.</p>');
          }
        }
      });
    }
  });

 	$('#gender_m').change(function() {
    show_section_phone_numbers();
  });
  $('#gender_f').change(function() {
    show_section_phone_numbers();
  });
	$('#lastname').change(function() {
    show_section_phone_numbers();
  });
	$('#house_number').change(function() {
    show_section_phone_numbers();
  });

  function show_section_phone_numbers() {
    if (($('#gender_m:checked').length > 0 || $('#gender_f:checked').length > 0) &&
         $.trim($('#lastname').val()) != '' &&
         $.trim($('#street_address').val()) != '' &&
         $.trim($('#house_number').val()) != '' &&
         $.trim($('#postcode').val()) != '' &&
         $.trim($('#city').val()) != '') {
      if ($.trim($('#telephone').val()) == '' && $.trim($('#telephone2').val()) == '') {
        $('#text_phone_numbers_delivery').fadeIn();
      }
      $('#section_phone_numbers_delivery').fadeIn();
      $('#always_show_section_phone_numbers').val(true);
      show_section_delivery_times();
    }
  }

  $('#telephone').change(function() {
    show_section_delivery_times();
  });
  $('#telephone2').change(function() {
    show_section_delivery_times();
  });

  function show_section_delivery_times() {
    if ($('#delivery_type').val() == 'parcel' || $.trim($('#telephone').val()) != '' || $.trim($('#telephone2').val()) != '') {
      $('#text_phone_numbers_delivery').fadeOut();
      $('#text_delivery_times_parcel').fadeIn();
      $('#section_delivery_times').fadeIn();
      $('#always_show_section_delivery_times').val(true);
    }
  }

	$('.delivery_method_asap').livequery('click', function() {
		$('#delivery_today_time').val('hh:mm');
  	$('#delivery_today_time_check').html('');
	  $('#delivery_other_day_dates').val('');
		$('#delivery_other_day_time').val('hh:mm');
    $('#delivery_other_day_time_check').html('');
	});

	$('.delivery_method_today').livequery('click', function() {
	  $('#delivery_other_day_dates').val('');
		$('#delivery_other_day_time').val('hh:mm');
    $('#delivery_other_day_time_check').html('');
	});

	$('#delivery_today_time').livequery('keyup', function() {
		var input = $(this).val();
		if(input.length > 3 && input != 'hh:mm') {
			$('#delivery_today_time_check').html('<img src="images/loadingindicator.gif"/>');
			$.ajax({
				type: 'POST',
				url: 'delivery.php',
				data: 'type=check_time&time='+input+'&city_id='+$('#city_id').val()+'&postcode='+$('select.postcode').val()+'&street_address='+$('select.street_address').val(),
				success: function(data){
					if(data) {
						$('#delivery_today_time_check').html(data);
					} else {
						$('#delivery_today_time_check').html('');
					}
				}
			});
		}
	})
  .livequery('focus', function() {
		$('.delivery_method_today').attr('checked', true);
	  $('#delivery_other_day_dates').val('');
		$('#delivery_other_day_time').val('hh:mm');
  	$('#delivery_other_day_time_check').html('');
    if($(this).val() == 'hh:mm') {
      $(this).val('');
    }
  })
  .livequery('blur', function() {
    if($(this).val() == '') {
        $(this).val('hh:mm');
    }
  });

	$('.delivery_method_other_day').livequery('click', function() {
		$('#delivery_today_time').val('hh:mm');
  	$('#delivery_today_time_check').html('');
	});

	$('#delivery_other_day_dates').livequery('change', function() {
		check_other_day_time();
	})
  .livequery('focus', function() {
    $('.delivery_method_other_day').attr('checked', true);
    $('#delivery_today_time').val('hh:mm');
    $('#delivery_today_time_check').html('');
    if($(this).val() == 'hh:mm') {
      $(this).val('');
    }
	});
	
	$('#delivery_other_day_time').livequery('keyup', function() {
    check_other_day_time();
	})
  .livequery('focus', function() {
    $('.delivery_method_other_day').attr('checked', true);
    $('#delivery_today_time').val('hh:mm');
    $('#delivery_today_time_check').html('');
    if($(this).val() == 'hh:mm') {
      $(this).val('');
    }
  })
  .livequery('blur', function() {
    if($(this).val() == '') {
      $(this).val('hh:mm');
    }
  });

  function check_other_day_time() {
    var input	= $('#delivery_other_day_time').val();
    var date	= $('#delivery_other_day_dates').val();
    if(input.length > 3 && input != 'hh:mm' && date.length == 10) {
      $('#delivery_other_day_time_check').html('<img src="images/loadingindicator.gif"/>');
      $.ajax({
        type: 'POST',
        url: 'delivery.php',
        data: 'type=check_time&time='+input+'&date='+date+'&city_id='+$('#city_id').val()+'&postcode='+$('select.postcode').val()+'&street_address='+$('select.street_address').val(),
        success: function(data){
          if(data) {
            $('#delivery_other_day_time_check').html(data);
          } else {
            $('#delivery_other_day_time_check').html('');
          }
        }
      });
    }
  }

  $('#comments').livequery('keyup', function() {
    if($(this).val().length > 500) {
  	  $(this).val($(this).val().substring(0, 500));
    }
  });

  $('.product_attribute_textarea').livequery('keyup', function() {
    if($(this).val().length > 500) {
  	  $(this).val($(this).val().substring(0, 500));
    }
  });

  if($.trim($('.id_txt_2_5').val()) == '') {
    $('.id_txt_2_5').val('... und bitte Ihren Namen nicht vergessen.');
  }

  $('.id_txt_2_5').livequery('focus', function() {
    if($(this).val() == '... und bitte Ihren Namen nicht vergessen.') {
      $(this).val('');
    }
  })
  .livequery('blur', function() {
    if($.trim($(this).val()) == '') {
      $(this).val('... und bitte Ihren Namen nicht vergessen.');
    }
  });

});

