// $Id: location_autocomplete.js,v 1.3 2008/12/02 22:50:21 bdragon Exp $

/**
 * Twiddle the province autocomplete whenever the user changes the country.
 */
Drupal.behaviors.location = function(context) {
  $('select.location_auto_country:not(.location-processed)', context).change(function(e) {
    var obj = this;
    var input = null;
    var result = this.className.match(/(location_auto_join_[^ ]*)/);
    if (result) {
      input = $('.location_auto_province.' + result)
    }
    else {
      // No joining class found, fallback to searching the immediate area.
      input = $('.location_auto_province', $(this).parents('fieldset:first, .views-exposed-form:first'))
    }

    if (input && input.length) {
      //Unbind events on province field and empty its value
      input.unbind().val('');
      input.each(function(i) {
        //Get the (hidden) *-autocomplete input element
        var input_autocomplete = $('#' + this.id + '-autocomplete');
        // Update autocomplete url
        input_autocomplete.val(input_autocomplete.val().substr(0, input_autocomplete.val().lastIndexOf('/') + 1) + $(obj).val());
        // Mark as not processed.
        input_autocomplete.removeClass('autocomplete-processed');
      });
      // Reprocess.
      Drupal.behaviors.autocomplete(document);
    }
  }).addClass('location-processed');
};
