function ajax_search(cb) {
	if (!$("quick-search-results"))
		return;
	var data = $("searchform").serialize()
	new Ajax.Request("/ajax/get-quick-search-totals", {
		postBody: data,
		onSuccess: function(t) {
			var data = eval('('+t.responseText+')');
			$("total").update(data.total);
			$("total_onmarket").update(data.total_onmarket);
			$("total_offmarket").update(data.total_offmarket);
			if (typeof cb == "function") cb();
		}
	});
}

function ajax_thumbnails() {
	var duration = 0.5;
	var searchtype = location.pathname.split("/")[1].substring(6);
	var criteria = $("ajax-search-form").serialize()
	if (typeof PropertyMap != 'undefined') {
		PropertyMap.setCriteria(criteria);
		PropertyMap.loadProperties();
	}
	new Ajax.Request("/search-ajax/", {
		postBody: criteria+"&searchtype="+searchtype,
		onSuccess: function(t) {
			var thumbnails = $("ajax-thumbnails");
			if (!thumbnails)
				return;
			var parent = thumbnails.up()
			parent.setStyle({
				height: parent.getHeight() + "px"
			});

			new Effect.Fade(thumbnails, {
				duration: duration,
				afterFinish: function() {
					thumbnails.update(t.responseText);
					new Effect.Appear(thumbnails, { duration: duration });
					setTimeout(function() {
						parent.setStyle({
							height: ''
						});
					}, 100);
				}
			});
		}
	});
}

function init_ajax_thumbnails() {
	Plugin.register("slider_bedrooms_range_change", ajax_thumbnails);
	Plugin.register("slider_price_change", ajax_thumbnails);
	$$("input.thumbnails-observer").each(function(el) {
		new Form.Element.DelayedObserver(el, 0.5, ajax_thumbnails);
	});
}

function ajax_search_show() {
	ajax_search(function() {
		if (!$("quick-search-results").visible()) $("quick-search-results").appear({duration: 0.5});
	});
}
(function() {
	$$("#searchform input.radio").invoke("observe", "click", ajax_search);

	if ($("quick-search-results")) {
		Plugin.register("slider_bedrooms_range_change", ajax_search);
		Plugin.register("slider_price_change", ajax_search);

		Plugin.register("ajax_location_after_select", function(p) {
			if ($("quick-search-results"))
				ajax_search_show();
		});

		Plugin.register("select_instruction_type_radio", function(p) {
			if (p.instruction_type == "sale")
				var text = "for sale";
			else
				var text = "to let";
			$$("span.forsale-tolet").invoke("update", text);
		});
	}
}).onLoad();

if (typeof jQuery == 'function') jQuery(document).ready(function($) {
	$("#mailing-list-process").livequery("submit", function(ev) {
		var $this = $(this);
		ev.preventDefault();
		$.post($this.attr('action'), $this.serialize(), function(data){
			if (data.email_check == 'invalid') {
				$('#mailing-list-message').html('This is not a valid e-mail address. Please check and try again.');
			} else {
				$('#mailing-list-message').html('<div class="successMessage">Thanks for signing up!</div>');
			}
		}, "json");
	});
});

