var management = {
	is_visible: false,
	toggle_display: function () {
		if (management.is_visible) {
			cookies.destroy("management_visible");
			$(".management").fadeOut(500)
		} else {
			cookies.set("management_visible", management.is_visible, 90);
			$(".management").fadeIn(500).css({
				visibility: "visible"
			})
		}
		management.is_visible = !management.is_visible;
		return false
	},
	quick_edit_wallpaper: function (id) {
		var h3 = $("#" + id + "-label");
		var new_label = prompt("Enter a new label for this wallpaper", h3.text());
		if (new_label && new_label.length > 0) {
			var _id = id.replace(/[^\d]+/g, "");
			$.post("ajax.php?manage=snippets&snippet=wallpaper-quickedit-label", ("wallpaper_id=" + _id + "&label=" + escape(new_label)), function (data) {
				h3.fadeOut(250, function () {
					h3.html(data.replace(/<[^>]+>/gi, ""));
					h3.fadeIn(250)
				})
			},
			"html")
		}
		return false
	},
	delete_wallpaper: function (id) {
		if (confirm("Are you sure you want to delete this wallpaper ?")) {
			$.post("ajax.php?manage=snippets&snippet=wallpaper-quickdelete",
				("wallpaper_id=" + id.replace(/[^0-9]+/g, '')),
				function (data) {$("#" + id).parent().fadeOut(500, function () {$(this).remove()})},
			"html")
		}
		return false
	},
	regenerate_thumbnail: function (container, wallpaper_id) {
		thumbnail = $(container).find("img.thumbnail");
		$.post("images/thumbnails/generator.php", "refreshing=" + wallpaper_id, function (data) {
			thumbnail.attr("src", thumbnail.attr("src") + "?reload=" + Math.round(Math.random() * 100000))
		},
		"html");
		return false
	},
	drop_soi: function (category_id) {
		if (confirm("Are you sure you want to quit displaying new wallpapers from this category ?")) {
			$.post("ajax.php?manage=snippets&snippet=drop-soi", ("category_id=" + category_id), function (data) {
				$("#new_wallpapers_" + category_id).slideUp(500)
			},
			"html")
		}
		return false
	},
	move_wallpaper: function (id)
	{
		var category_id		= prompt("Enter the new category_id for the wallpaper. (blank to cancel)\nHINT: Look at the category URLs in the sidebar.");
		var wallpaper_id	= id.replace(/[^0-9]+/g, '');
		if(category_id && parseInt(category_id) > 0 && parseInt(wallpaper_id) > 0)
		{
			$.post("ajax.php?manage=snippets&snippet=wallpaper-move",
				("category_id=" + parseInt(category_id) + "&wallpaper_id=" + wallpaper_id),
				function (data) {$("#" + id).parent().fadeOut(500, function () {$(this).remove()})},
			"html");
		}
		return false;
	},
	ajax: {
		snippets: {
			wallpaper_folders: function (container) {
				container = $(container).css({
					background: "#eee",
					margin: "0 20px 0 20px",
					border: "#ccc 1px solid",
					borderTop: 0,
					position: ""
				});
				container.slideUp(250, function () {
					container.load("ajax.php?manage=snippets&snippet=wallpaper-folder-browser ul:first", function () {
						container.find('input[type="radio"]').click(function () {
							var str = [];
							$(this).parents("#category_editor_folder_browser li").each(function () {
								str.unshift($(this).find("span:first").text())
							});
							$("#category_editor_path").val(str.join("/"))
						});
						container.find("div").css({
							background: "#fff"
						});
						container.addClass("hierarchy").css({
							padding: "10px 10px 10px 0"
						}).slideDown(500)
					})
				})
			}
		},
		edit_category: function (category_id) {
			var box_id = "#quick-edit-box";
			var url = "ajax.php?manage=edit-category&category=" + escape(category_id) + " #edit-category-details-form";
			var form_id = "#edit-category-details-form";
			var post_url = "ajax.php?manage=edit-category";
			var update_elms = [{
				from: "#category_editor_label",
				to: "#category_label, #title_minor, #category_sidebar_list .current-cat"
			},
			{
				from: "#category_editor_description",
				to: "#category_description, #page_description"
			}];
			management.ajax._edit(box_id, url, form_id, post_url, update_elms);
			return false
		},
		edit_wallpaper: function (wallpaper_id) {
			var box_id = "#quick-edit-box";
			var url = "ajax.php?manage=wallpaper-management_edit-details&wallpaper_id=" + wallpaper_id + " #edit-wallpaper-details-form";
			var form_id = "#edit-wallpaper-details-form";
			var post_url = "ajax.php?manage=wallpaper-management_edit-details";
			var update_elms = [{
				from: "#wallpaper_editor_label",
				to: "#wallpaper_label"
			},
			{
				from: "#wallpaper_editor_description",
				to: "#wallpaper_description"
			}];
			management.ajax._edit(box_id, url, form_id, post_url, update_elms);
			return false
		},
		_edit: function (box_id, url, form_id, post_url, update_elms) {
			var web = $(box_id);
			web.slideUp(100, function () {
				web.load(url, function (data) {
					var wed = $(form_id);
					wed.find('input[type="reset"]').parent().prepend("<input type='button' value='Cancel' style='float:right;' onclick='$(\"" + box_id + "\").slideUp(500);'/>");
					wed.submit(function () {
						var wed_data = wed.serialize();
						for (var i = 0; i < update_elms.length; i++) {
							update_elms[i].from = $(update_elms[i].from).val()
						}
						web.slideUp(500, function () {
							$.post(post_url, wed_data, function (data) {
								web.html(data).find(".success, .error, .info").filter(":last").prepend("<input style='float:right;' type='button' style='' value='Ok' onclick='$(\"" + box_id + "\").slideUp(500);'/>");
								web.slideDown(500, function () {
									for (var i = 0; i < update_elms.length; i++) {
										$(update_elms[i].to).each(function () {
											$(this).fadeOut(0, function () {
												$(this).html(update_elms[i].from).fadeIn(500)
											})
										})
									}
								})
							},
							"html")
						});
						return false
					});
					web.css({
						border: "#ccc 1px solid",
						borderTop: 0
					}).slideDown(500)
				})
			});
			return false
		},
		save_hierarchy: function () {
			var messages = $("#messages");
			messages.slideUp(0).html('<p class="info">Saving...</p>').slideDown(250, function () {
				var cat_data = "";
				$("#hierarchy_root li").each(function (i) {
					cat_data += "&categories[" + $(this).find("div:first").attr("id") + "]=" + $(this).parent().prev("div").attr("id")
				});
				$.post("ajax.php?manage=category-management_edit-hierarchy", cat_data, function (data) {
					var elm = $(data).slideUp(0);
					elm.find(".success, .error, .info").filter(":last").append("<input type='button' value='Ok' style='float:right;' onclick='$(\"#messages\").slideUp(500);'/>");
					elm.appendTo(messages).slideDown(250)
				},
				"html")
			})
		}
	}
};
var form_utils = {
	set_all_options: function (id, state) {
		var select = document.getElementById(id);
		for (var i = 0; i < select.options.length; i++) {
			select.options[i].selected = state
		}
		return
	}
};
var cookies = {
	set: function (name, value, days) {
		var expires = "";
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
			expires = "; expires=" + date.toGMTString()
		}
		document.cookie = name + "=" + value + expires + "; path=/"
	},
	get: function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(";");
		for (var i = 0; i < ca.length; i++) {
			var c = ca[i];
			while (c.charAt(0) == " ") {
				c = c.substring(1, c.length)
			}
			if (c.indexOf(nameEQ) == 0) {
				return c.substring(nameEQ.length, c.length)
			}
		}
		return null
	},
	destroy: function (name) {
		cookies.set(name, "", -1)
	}
};
if (cookies.get("management_visible")) {
	management.is_visible = true;
	document.write('<style type="text/css">.management {visibility:visible;}</style>')
}
$(document).ready(function () {
	$(".wallpaper-block .inner").each(function () {
		var _wallpaper_id = $(this).attr("id");
		var wallpaper_id = _wallpaper_id.replace(/[^\d]+/g, "");
		var tools = $('<div class="management" style="float:right; width:24px; ' + (management.is_visible ? "" : "display:none") + '"></div>');
		tools.append('<a title="Quick Label Edit" class="icon-quickedit" onclick="return management.quick_edit_wallpaper(\'' + _wallpaper_id + '\')" href="#' + _wallpaper_id + '"></a>');
		tools.append('<a title="Quick Move Wallpaper" class="icon-expander open" onclick="return management.move_wallpaper(\'' + _wallpaper_id + '\');" href="#' + _wallpaper_id + '"></a>');
		tools.append('<a title="Edit Wallpaper Details" class="icon-edit" href="index.php?manage=wallpaper-management_edit-details&wallpaper_id=' + wallpaper_id + '"></a>');
		tools.append('<a title="Regenerate Thumbnail" class="icon-refresh" onclick="return management.regenerate_thumbnail(this.parentNode.parentNode, ' + wallpaper_id + ');" href="#' + _wallpaper_id + '"></a>');
		tools.append('<a title="Delete Wallpaper" class="icon-trash" onclick="return management.delete_wallpaper(\'' + _wallpaper_id + '\');" href="#' + _wallpaper_id + '"></a>');
		$(this).prepend(tools)
	})
});
