var refreshTimeout = null;
var lastData       = null;

$(document).ready(function() {
	lastData = $("#filters form").serialize();

	$("#auctions a.expand").bind("click", showAuctionInfo);
	$("#auctions a.hide").bind("click", toggleAuctionInfo);
	$("#advanced_search_toggle").bind("click", toggleAdvancedSearch);
	
	$("#filters select").bind("change", filterAuctions);
	$("#filters input[type=text]").bind("keyup", filterAuctions);
	$("#filters input[type=checkbox]").bind("click", filterAuctions);

	$(document).mousedown(function (e) {
		$("#auctions #picture").hide("normal");
		if ($(e.target).parents('#advanced_search').length === 0) $('#advanced_search').hide("normal")
	});

	return false;
});

function showAuctionInfo(e) {
	$.getJSON("/json" + topicURL + "?card=" + this.name, buildAuctionInfo);
	$(this).attr({ "class": "ajax" }).parents(".lot-header").addClass("expanded");

	return false;
}

function buildAuctionInfo(data) {
	var a     = $("#auctions a[name=" + data.card + "]");
	var table = a.parents("table.lot");
	
	table.find("tr:has(td.property)").remove();
	
	$.each(data.fields, function (i, item) {
		if (item.value) {
			var tr = $("<tr />").appendTo(table); if (item.main == 0) tr.attr({ "class": "to-hide" });
			$("<td />").attr({ "class": "property" }).html(item.title).appendTo(tr);
			$("<td />").attr({ "class": "value"    }).html(item.value).appendTo(tr);
		}
	});
	
	if (data.attrs) {
			var tr = $("<tr />").appendTo(table);
			$("<td />").attr({ "class": "property" }).html("Фотография").appendTo(tr);
			$("<td />").attr({ "class": "value"    }).html("<a class=\"pop-up\" href=\"#\" onclick=\"return showPicture('" + data.attrs.src + "', '" + data.attrs.width + "', '" + data.attrs.height + "', this);\">посмотреть</a>").appendTo(tr);
	}
	
	a.attr({ "class": "hide" }).html("В двух словах").unbind("click", showAuctionInfo).bind("click", toggleAuctionInfo);
	
	if (location.href.indexOf("#") >= 0) {
		location.href = location.href.substring(0, location.href.indexOf("#")) + "#" + data.card;
	}
	else {
		location.href = location.href + "#" + data.card;
	}

	return false;
}

function toggleAuctionInfo() {
	if ($(this).hasClass("hide")) {
		$(this).parents("table.lot").addClass("is-hidden");
		$(this).parents(".lot-header").removeClass("expanded");
		$(this).attr({ "class": "expand" });
		$(this).html("Вся информация");
	}
	else {
		$(this).parents("table.lot").removeClass("is-hidden");
		$(this).parents(".lot-header").addClass("expanded");
		$(this).attr({ "class": "hide" });
		$(this).html("В двух словах");
	}

	return false;
}

function toggleAdvancedSearch(e) {
	if ($("#advanced_search").is(":hidden")) {
		$("#advanced_search").css({ "top": e.pageY + 2, "left": e.pageX + 6 }).show("normal");
	}
	else {
		$("#advanced_search").hide("normal");
	}
	
	return false;
}

function hideAdvancedSearch() {
	$("#advanced_search").hide("normal");
	
	//return false;
}

function filterAuctions(e, page) {
	var div  = page ? "ajax" : "filters";
	
	if ($("#auctions").hasClass("refresh")) { if (refreshTimeout) window.clearTimeout(refreshTimeout); refreshTimeout = window.setTimeout(filterAuctions, 100); return; }

	var data = $("#filters form").serialize();
	if (!page && data == lastData) return false;
	lastData = data;
	
	$("#auctions").addClass("refresh");
	$("#auctions #" + div).addClass("refresh");
	Ajax.process({
		method: "post",
		data: "filter=1" + (page ? "&page=" + page : ""),
		target: "list_cards",
		source: "filters",
		terminator: function () {
			$("#auctions").removeClass("refresh");
			$("#auctions .refresh").removeClass("refresh");
			$("#list_cards a.expand").bind("click", showAuctionInfo);
			$("#list_cards a.hide").bind("click", toggleAuctionInfo);
		}
	});
}

function showPicture(src, width, height, obj) {
	if (!$("#auctions #picture").is(":hidden")) { $("#auctions #picture").hide("normal"); return false; }

	var x = (document.documentElement.clientWidth - width) / 2 + (document.documentElement.scrollLeft || document.body.scrollLeft) - (document.documentElement.clientLeft || 0);
	var y = (document.documentElement.clientHeight - height) / 2 + (document.documentElement.scrollTop || document.body.scrollTop) - (document.documentElement.clientTop || 0);
	$("#auctions #picture div img").remove();
	$("<img />").attr({ "width": width, "height": height, "src": src }).bind("load", function () { this.style.visibility = "visible"; }).appendTo($("#auctions #picture div"));

	if ($.browser.msie) {
		$("#auctions #picture div img").css({ "visibility": "visible" });
	}

	$("#auctions #picture").css({ "width": "5px", "height": "5px", "top": $(obj).offset().top, "left": $(obj).offset().left }).animate({ "top": y, "left": x, "width": width, "height": height });

	return false;
}

function checkFlags(obj) {
//	if (!$("#auctions #show_opened").get(0).checked && !$("#auctions #show_closed").get(0).checked) {
//		var target = obj.id.indexOf("opened") > 0 ? "closed" : "opened";
//		$("#auctions #show_" + target).get(0).checked = true;
//	}
	if (!$("#auctions #show_opened").get(0).checked && !$("#auctions #show_closed").get(0).checked && !$("#auctions #show_not_taken").get(0).checked) {
		obj.checked = true;
	}
}
