var pageFadeOut = function (fn) {
	$("#faderB").animate({top: "0px"}, 1100, "swing");
	$("#faderT").animate({top: "0px"}, 1500, "swing", function () {
		$("#loader").fadeIn(1000, function () {
			if (fn) {
				fn();
			}
		});
	});
};
var pageFadeIn = function (fn) {
	$("#loader").fadeOut(600, function () {
		$("#faderB").animate({top: "-504px"}, 1500, "swing");
		$("#faderT").animate({top: "-650px"}, 1100, "swing", fn);
	});
};
var pageDrawItem = function (data, page) {
	itemDraw(data.item);
	$("#pager").hide();
	$("#back-button").show();
};
var pageDrawCatalog = function (data, page) {
	$("#display")
		.empty()
		.removeClass()
		.addClass(data.type)
		.each(function() {
			for (var i = 0; i < data.items.length; i++) {
				$(this)
					.append("<img/>").children("img:last")
						.attr("src", data.items[i].img)
						.attr("page", data.items[i].page)
						.hover(function() {
							$(this).fadeTo("fast", 1);
						}, function () {
							$(this).fadeTo("fast", 0.74);
						})
						.click(function() {
							var page = $(this).attr("page");
							if (page) {
								pageLoad(page);
							}
						})
					.end()
				.end();
			}
		})
		.show()
	.end();
	if (data.total > 1) {
		$("#pager")
			.empty()
			.append("<span></span>").children("span:last")
				.html("&nbsp;page " + data.num + " of " + data.total + " &raquo; &nbsp;")
			.end()
			.each(function() {
				var pager = {};
				for (var i = 1; i <= data.total; i++) {
					pager[i] = data.type + "-" + data.id + "-" + i;
				}
				for (var i in pager) {
					$(this)
						.append("<span></span>").children("span:last")
							.html("&nbsp;" + i + "&nbsp;")
							.addClass("num")
							.addClass(i == data.num ? "current" : "")
							.attr("page", pager[i])
							.click(function () {
								var page = $(this).attr("page");
								if (page) {
									pageLoad(page);
								}
							})
						.end()
					.end();
				}
			})
			.show()
		.end();
	} else {
		$("#pager").hide();
	}
	$("#text").hide();
	$("#back-button").attr("page", page).hide();
	triggerListener("pageLoad:catalog");
}
var pageDrawStatic = function (data, page) {
	$("#text")
		.empty()
		.removeClass()
		.addClass(data.type)
		.html(data.html)
		.show()
	.end();
	$("#display").hide();
	$("#pager").hide();
	$("#back-button").hide();
	triggerListener("pageLoad:static");
};
var pageLoad = function (page) {
	pageFadeOut(function () {
		$("#bg img").attr("src", "");
		cartHide();
		$.ajax({
			data: {
				action: "pageLoad",
				page: page
			}, success: function (data) {
				$("#bg img")
					.one("load", function () {
						pageFadeIn(null);
					})
					.attr("src", data.bg)
				.end();
				$("#bg").removeClass();
				$("#bg").addClass(data.type);
				if (data.type == "static") {
					pageDrawStatic(data, page);
				} else if (data.type == "catalog") {
					pageDrawCatalog(data, page);
				} else if (data.type == "item") {
					pageDrawItem(data, page);
				}
				triggerListener("pageLoad");
			}
		});
	})
};
