$(document).ready(function() {
  // Update automatically on sort change
  $('#sort-results').change(function() {
    $('#taxi-filter').submit();
  });

  var openTaxiPanelID = 0;

  if (!$('.register-interest-form').is(':hidden') || ($('#register-success').size() > 0 && !$('#register-success').is(':hidden'))) {
    openTaxiPanelID = $('#registerInterestID').val();
  }

  $('.contact-online a').click(function() {
    var cTaxiPanel = $(this).parents('.results-listing');
    var cTaxiPanelID = cTaxiPanel.attr('id');

    var idRegExp = /-(\d+)$/;

    var cTaxiIDMatches = idRegExp.exec(cTaxiPanelID);

    var cTaxiID = 0;

    if (cTaxiIDMatches != null) {
      cTaxiID = cTaxiIDMatches[1];
    } else {
      return false;
    }

    var registerInterestForm = $('.register-interest-form');

    if (registerInterestForm.is(':hidden')) {
      var registerSuccess = $('#register-success');

      if (registerSuccess.size() > 0 && !registerSuccess.is(':hidden')) {
	if (cTaxiID == openTaxiPanelID) {
	  registerSuccess.slideUp('fast');
	  openTaxiPanelID = 0;
	} else {
	  registerSuccess.slideUp('fast', function() {
	    $('#register-error').hide();
	    registerInterestForm.insertAfter(cTaxiPanel).slideDown('fast');
          });

	  openTaxiPanelID = cTaxiID;
	  $('#registerInterestID').val(openTaxiPanelID);
	}
      } else {
	$('#register-error').hide();
	registerInterestForm.insertAfter(cTaxiPanel).slideDown('fast');
	openTaxiPanelID = cTaxiID;
	$('#registerInterestID').val(openTaxiPanelID);
      }
    } else {
      if (cTaxiID == openTaxiPanelID) {
	registerInterestForm.slideUp('fast');
	openTaxiPanelID = 0;
      } else {
	registerInterestForm.slideUp('fast', function() {
	  $('#register-error').hide();
	  registerInterestForm.insertAfter(cTaxiPanel).slideDown('fast');
        });

	openTaxiPanelID = cTaxiID;
	$('#registerInterestID').val(openTaxiPanelID);
      }
    }

    return false;
  });
});
