var map;
var latlng;

/**
 * This is a JQuery function to add dependent selects for the search form.
 */
(function($) {
	$.fn.dependentSelect = function(secondId, values, emptyVal, eventId) {
		//clear out 2nd select
		$(secondId + " option").remove();
		//set 2nd select's emptyVal
		var o = $("<option>").html(emptyVal).attr('value', '');
		o.appendTo($(secondId));

		//wire up change event to 1st select
		$(this).change(function() {

			//get 1st select's value (aka key)
			var key = this.options[this.options.selectedIndex].value;

			//remove 1st select's emptyVal
			$( $(this).selector + " option[value='']").remove();

			//clear out 2nd select
			$(secondId + " option").remove();

			$.each(values, function(i, m) {
				if (m.key == key) {
					$.each(m.values, function(j, n) {
						var o = $("<option>").html(n.val).attr('value', n.key);
						o.appendTo($(secondId));
					});
				}
			});
		});

    var key = $(this).val();
    if (key != "") {
      $(this).change();
      if (eventId != -1) {
        $(secondId).val(eventId);
      }
    }
	};
})(jQuery);

/**
 * This flips between the small and advanced forms.
 */
function show_advanced_search() {
  $("#search-box-small").slideUp(function() {
    $("#search-box-advanced").slideDown();
  });
}

/**
 * This flips between the small and advanced forms.
 */
function show_small_search() {
  $("#search-box-advanced").slideUp(function() {
    $("#search-box-small").slideDown();
  });
}

function switch_tabs(anchor, number, div) {
  var jq = $(anchor);
  jq.parent().siblings().find("a").removeClass("active");
  jq.parent().siblings().find("a").addClass("inactive");
  jq.removeClass("inactive");
  jq.addClass("active");

  $(".tabbed-panel").css("background", "url('/images/listing-panel-" + number + ".gif') no-repeat");
  $("#panel-details").hide();
  $("#panel-map-area").hide();
  $("#panel-availability").hide();
  $("#panel-reviews").hide();
  $("#panel-contact-owner").hide();
  $("#" + div).show(function() {
    if (number == 2) {
      map.checkResize();
      map.setCenter(latlng, 14);
      map.addOverlay(new GMarker(latlng));
    }
  });

  return false;
}

function send_private_message() {
  var data = $("#private-message-form").serializeArray();
  $("#contact-form").load("/send-private-message.ajaxhtml", data);
  return false;
}

function show_medium_image(uri) {
  $("#medium-image").attr("src", uri);
}

function remove_uri_parameter(uri, name) {
    var param = "&" + name + "=";
    var start = uri.toString().indexOf(param);
    if (start >= 0) {
        var end = uri.toString().indexOf("&", start+1);
        if (end < 0) {
            end = uri.toString().length;
        }
    }
    if (end == uri.toString().length) {
        return uri.toString().substring(0, start);
    } else {
        return uri.toString().substring(0, start) + uri.toString().substring(end, uri.toString().length);
    }
}

function set_uri_parameter(uri, name, value) {
    return remove_uri_parameter(uri, name) + "&" + name + "=" + value;
}
