YAHOO.util.Event.onDOMReady(function() {
	var comments = YAHOO.util.Dom.getElementsByClassName("editable");
	for(var i = 0; i < comments.length; i++) {
		var comment = comments[i];
		if(YAHOO.util.Dom.hasClass(comment, "post-comment") || YAHOO.util.Dom.hasClass(comment, "photo-comment")) {
			// create a dialog box for this
			var mode = "";
			
			if(YAHOO.util.Dom.hasClass(comment, "post-comment")) mode = "post";
			if(YAHOO.util.Dom.hasClass(comment, "photo-comment")) mode = "photo";
			var existingButton = YAHOO.util.Dom.getElementsByClassName("edit-" + comment.id)[0];
			if(existingButton) {
				var a = existingButton
			} else {
				var div = document.createElement("p");
				var a = document.createElement("a");
				a.href = "#";
				a.appendChild(document.createTextNode("Edit comment"));
				div.appendChild(a);
				comment.parentNode.insertBefore(div, comment.nextSibling);
			}
			a._comment = comment;
			YAHOO.util.Event.addListener(a, "click", function(e, a) {
				var commentId = a._comment.id.substr(1);
				var transaction = YAHOO.util.Connect.asyncRequest('GET', "/scripts/comments.php?mode=" + mode + "&id=" + commentId, {
					argument: a,
					success: function(o) {
						var a = o.argument;
						var fieldshtml = o.responseText;
						if(!a._dialog) {
							var div = document.createElement("div");
							a._comment.appendChild(div);
							var dialog = new YAHOO.widget.Dialog(div, { 
								close: true,
								modal: true,
								buttons: [
									{ 
										text: "Submit", 
										handler: function() { 
											if(this.form && this.form.elements.delete && this.form.elements.delete.checked) {
												if(!confirm("Are you sure you want to delete this comment?")) return false;
											}
											this.submit(); 
										}, 
										isDefault: true
									}, 
									{ text: "Cancel", handler: function() { this.cancel(); } }
								],
								constraintoviewport: true,
								context: [a._comment, "tl","tl"]
							}); 
							a._dialog = dialog;
						} else {
							var dialog = a._dialog;
						}
						dialog.callback.scope = dialog;
						dialog.callback.argument = a;
						dialog.callback.success = function(o, dialog) {
							var a = o.argument;
							var div = document.createElement("div");
							div.innerHTML = o.responseText;
							var newcomment = div.getElementsByTagName("div")[0];
							if(newcomment.getAttribute("_deleted")) {
								a._comment.parentNode.removeChild(a._comment);
								a.parentNode.removeChild(a);
							} else {
								a._comment.parentNode.replaceChild(newcomment, a._comment);
								a._comment = newcomment;
								a._dialog = false;
							}
						};
						dialog.setHeader("Edit Comment");
						dialog.setBody("");
						dialog.form.innerHTML = fieldshtml;
						dialog.form.method = "POST";
						dialog.form.action = "/scripts/comments.php";
						
						a._dialog.render();
						a._dialog.show();
					}, 
					failure: function() { alert("Either you do not have permission to edit this comment, or there was an error"); }
				}, null);
				YAHOO.util.Event.stopEvent(e);
			}, a);
		}
	}
});