﻿
$(function () {
	$.ui.autocomplete.prototype._renderItem = function (ul, item) {
		var term = this.term.split(' ').join('|');
		var re = new RegExp("(" + term + ")", "gi");
		var t = item.label.replace(re, "<b>$1</b>");
		return $("<li></li>")
                                 .data("item.autocomplete", item)
                                 .append("<a>" + t + "</a>")
                                 .appendTo(ul);
	};
	var previousRequest = null;
	$("#directoryAutoComplete").autocomplete({
		source: function (request, response) {
			if (previousRequest != null) {
				previousRequest.abort();
			}
			previousRequest = $.ajax({
				url: "/ajax/city-ac-terms/",
				dataType: "json",
				data: {
					term: request.term,
					arg: $("#catSlug").text()
				},
				success: function (data) {
					if (data.length == 0) {
						data = ["No cities found"];
					}
					response(data);
				}
			});
		},
		minLength: 2,
		delay: 20,
		appendTo: "#autocomplete-results",
		autoFocus: false,
		select: function (event, ui) {
			if (ui.item.Url != null) {
				redirect(ui.item.Url);
			}
		},
		focus: function (event, ui) {
			$("#autocomplete-results li").removeClass("selected");
			$("#ui-active-menuitem").closest("li").addClass("selected");
		},
		blur: function (event, ui) {
			$("#autocomplete-results li").removeClass("selected");
		}
	})
});

function derp() {
	$.ajax({
		url: "/ajax/city-search/",
		data: {
			term: $('[name=directoryAutoComplete]').val(),
			arg: $("#catSlug").text()
		},
		success: function (data) {
			$("#directorySearchResults").hide();
			$("#directorySearchResults").html(data);
			$("#directorySearchResults").slideDown();
		}
	});
}

