var trip_finder_values = new Array();

      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '13', 'Montreal',
        '8', 'Quebec City',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '13', 'Montreal',
        '9', 'Mont Sainte-Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '13', 'Montreal',
        '14', 'Quebec City and Mont Sainte Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));

      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '16', 'Kingston',
        '8', 'Quebec City',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '16', 'Kingston',
        '9', 'Mont Sainte-Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '16', 'Kingston',
        '14', 'Quebec City and Mont Sainte Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '23', 'Boston',
        '8', 'Quebec City',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '23', 'Boston',
        '9', 'Mont Sainte-Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '23', 'Boston',
        '14', 'Quebec City and Mont Sainte Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '15', 'Ottawa',
        '8', 'Quebec City',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '15', 'Ottawa',
        '9', 'Mont Sainte-Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '15', 'Ottawa',
        '14', 'Quebec City and Mont Sainte Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '40', 'New York',
        '8', 'Quebec City',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '40', 'New York',
        '9', 'Mont Sainte-Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '40', 'New York',
        '14', 'Quebec City and Mont Sainte Anne',
        '2010-03-19', 'Mar 19, 2010'
      ));

      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '18', 'St. Catharines',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '20', 'Windsor',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '55', 'Barrie',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '22', 'Waterloo',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '33', 'Guelph',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '14', 'London',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));
      trip_finder_values.push(new Array(
        '1', 'Ski Trips',
        '29', 'Toronto',
        '16', 'Blue Mountain',
        '2010-03-26', 'Mar 26, 2010'
      ));

      trip_finder_values.push(new Array(
        '2', 'Beach Trips',
        '29', 'Toronto',
        '5', 'Holguin, Cuba',
        '2010-02-13', 'Feb 13, 2010'
      ));

      trip_finder_values.push(new Array(
        '2', 'Beach Trips',
        '29', 'Toronto',
        '5', 'Holguin, Cuba',
        '2010-02-12', 'Feb 12, 2010'
      ));

      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '29', 'Toronto',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '15', 'Ottawa',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '13', 'Montreal',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '14', 'London',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '16', 'Kingston',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '17', 'Peterborough',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '18', 'St. Catharines',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '19', 'Hamilton',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '20', 'Windsor',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '22', 'Waterloo',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '23', 'Boston',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '24', 'Ithaca',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '25', 'Syracuse',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '26', 'Albany',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '27', 'Durham',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '45', 'Burlington, VT',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '55', 'Barrie',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '32', 'Niagara',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '33', 'Guelph',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '35', 'Halifax',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '36', 'Brantford',
        '6', 'Greece',
        '2010-05-10', 'May 10, 2010'
      ));

      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '15', 'Ottawa',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '13', 'Montreal',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '14', 'London',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '16', 'Kingston',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '17', 'Peterborough',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '18', 'St. Catharines',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '19', 'Hamilton',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '20', 'Windsor',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '22', 'Waterloo',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '23', 'Boston',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '24', 'Ithaca',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '25', 'Syracuse',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '26', 'Albany',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '27', 'Durham',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '45', 'Burlington, VT',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '29', 'Toronto',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '55', 'Barrie',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '32', 'Niagara',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '33', 'Guelph',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '35', 'Halifax',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '36', 'Brantford',
        '10', 'Thailand',
        '2010-05-08', 'May  8, 2010'
      ));

      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '36', 'Brantford',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '33', 'Guelph',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '32', 'Niagara',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '55', 'Barrie',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '29', 'Toronto',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '45', 'Burlington, VT',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '27', 'Durham',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '26', 'Albany',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '25', 'Syracuse',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '24', 'Ithaca',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '23', 'Boston',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '22', 'Waterloo',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '20', 'Windsor',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '19', 'Hamilton',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '18', 'St. Catharines',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '17', 'Peterborough',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '16', 'Kingston',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '14', 'London',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '13', 'Montreal',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '35', 'Halifax',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '15', 'Ottawa',
        '11', 'Costa Rica',
        '2010-05-15', 'May 15, 2010'
      ));

      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '15', 'Ottawa',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '13', 'Montreal',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '14', 'London',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '16', 'Kingston',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '17', 'Peterborough',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '18', 'St. Catharines',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '19', 'Hamilton',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '20', 'Windsor',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '22', 'Waterloo',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '23', 'Boston',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '24', 'Ithaca',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '25', 'Syracuse',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '26', 'Albany',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '27', 'Durham',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '45', 'Burlington, VT',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '29', 'Toronto',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '55', 'Barrie',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '32', 'Niagara',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '33', 'Guelph',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '35', 'Halifax',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '36', 'Brantford',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));
      trip_finder_values.push(new Array(
        '3', 'Summer Trips',
        '38', 'Halifax',
        '12', 'Morocco',
        '2010-05-08', 'May  8, 2010'
      ));

function tripMatch(value_set) {
  trip_type_id = $('search_type_id').getValue();
  return (trip_type_id == '' || value_set[0] == trip_type_id);
}

function originMatch(value_set) {
  origin_id = $('search_origin_id').getValue();
  return (origin_id == '' || value_set[2] == origin_id);
}

function destMatch(value_set) {
  dest_id = $('search_destination_id').getValue();
  return (dest_id == '' || value_set[4] == dest_id);
}

function add_origin_option(options, value_set) {
  add_option(options, value_set[3], value_set[2]);
}

function add_dest_option(options, value_set) {
  add_option(options, value_set[5], value_set[4]);
}

function add_date_option(options, value_set) {
  add_option(options, value_set[7], value_set[6]);
}

function add_option(options, text, value) {
  if (text == '') {
    return;
  }

  for (var i = 0; i < options.length; i++) {
    if (options[i][1] == value) {
      return;
    }
  }

  options[options.length] = [text, value];
}

function set_options(element, new_options, value_sort) {
  options = element.options;
  options.length = 1;
  if (value_sort == true) {
    new_options.sort(function(a,b) {
      if (a[1] > b[1]) {
        return 1;
      }
      else if (a[1] < b[1]) {
        return -1;
      }
      else {
        return 0;
      }
    });
  }
  else {
    new_options.sort();
  }
  for (var i = 0; i < new_options.length; i++) {
    options[options.length] = new Option(new_options[i][0], new_options[i][1], false, false);
  }
}

function tripTypeSelected() {
  origin_options = [];
  dest_options = [];
  date_options = [];

  trip_finder_values.each(function(value_set) {
    if (tripMatch(value_set)) {
      add_origin_option(origin_options, value_set);
      add_dest_option(dest_options, value_set);
      add_date_option(date_options, value_set);
    }
  });
  set_options($('search_origin_id'), origin_options);
  set_options($('search_destination_id'), dest_options);
  set_options($('search_date'), date_options, true);
}

function originSelected() {
  dest_options = [];
  date_options = [];

  trip_finder_values.each(function(value_set) {
    if (tripMatch(value_set) && originMatch(value_set)) {
      add_dest_option(dest_options, value_set);
      add_date_option(date_options, value_set);
    }
  });
  set_options($('search_destination_id'), dest_options);
  set_options($('search_date'), date_options, true);
}

function destinationSelected() {
  date_options = [];

  trip_finder_values.each(function(value_set) {
    if (tripMatch(value_set) && originMatch(value_set) && destMatch(value_set)) {
      add_date_option(date_options, value_set);
    }
  });
  set_options($('search_date'), date_options, true);
}

document.observe('dom:loaded', function() {
  tripTypeSelected();
  $('search_type_id').observe('change', tripTypeSelected);
  $('search_origin_id').observe('change', originSelected);
  $('search_destination_id').observe('change', destinationSelected);
});
