function ready()
{
	$("a").live("click", function() { $(this).blur(); });
	$(document).keyup( adminKey );
	if (location.hash.length > 1)
	{
		var code = location.hash.substr(1);
		var comments = $('#entry' + code + ' .commentholder');
		if (comments && comments.length > 0 && comments.find(".commentform").length == 0)
			showComments(code);
	}

	if (location.hash == "#a")
		if ($("#adminlogin").length == 0)
		{
			var html = '<form id="adminlogin" method="post" action="/admin/login"><div>' +
				'<input type="password" name="adminpassword" id="adminpassword"></div></form>';
			$("#footer").append(html);
		}
}

$(document).ready(ready);

function showComments(id)
{
	var comments = $('#entry' + id + ' .commentholder');
	if (comments.find(".commentform").length)
	{
		comments.empty();
	}
	else
	{
		$(".entry .commentholder").empty();
		$("#entry" + id + " .commentholder").html('<div class="comments"><div class="loading"></div></div>');
		$('#entry' + id + ' .commentholder').load('/blog/comments/' + id);
	}
}

function toggleOpenID(id)
{
	var cb = $("#entry" + id + " .commentform input[name='openid']");
	cb.attr("checked", !cb.attr("checked")); 
	updateOpenId(id);
}

function updateOpenID(id)
{
	var use = $("#entry" + id + " .commentform input[name='openid']").attr("checked");
	var name = $("#entry" + id + " .commentform input[name='name']");
	if (use)
	{
		name.css('background', "url('/icon/openid-icon-small.gif') 2px center no-repeat");
		name.css('padding-left', '20px');
		name.width(name.width()-19);
	}
	else
	{
		name.css('background', "transparent none");
		name.css('padding-left', '');
		name.width("31%");
	}
}

function addComment(frm)
{
	var ts = frm.ts.value;
	frm.name.value = $.trim(frm.name.value);
	frm.body.value = $.trim(frm.body.value);
	if (frm.name.value == "") {
		alert("Please input your name or OpenID.");
		frm.name.focus();
		return false;
	}
	if (frm.body.value.length < 3) {
		alert("Your comment seems way too short.");
		frm.body.focus();
		return false;
	}
	$("#entry" + ts + " .commentholder").html('<div class="comments"><div class="loading"></div></div>');
	frm.referer.value = location.href;
	$.post(frm.action, $(frm).serialize() + "&ajax=1", onComment, "json");
	/*
	$.ajax({type: "POST",
		url: frm.action,
		data: $(frm).serialize() + "&ajax=1",
		dataType: "json",
		success: onComment});
	*/
	return false;
}

function onComment(data, status){
	if (data.success == true)
	{
		if (data.openid == true)
		{
			location.replace(data.redirect);
			return;
		}
	} else {
		alert(data.message);
	}
	showComments(data.ts);
}

var lastKeys = new Array();
function adminKey(event)
{
	if (event.shiftKey) {
		lastKeys.push(event.keyCode);
		while (lastKeys.length > 3) lastKeys.shift();
		if (lastKeys.join("") == "658368")
		{
			if ($("#adminlogin").length == 0)
			{
				var html = '<form id="adminlogin" method="post" action="/admin/login"><div>' +
					'<input type="password" name="adminpassword" id="adminpassword"></div></form>';
				$("#footer").append(html);
				$("#adminpassword").focus();
			}
		}
	}
	else if (lastKeys.length > 0)
		lastKeys.length = 0;
}

function editEntry(code)
{
	$.getJSON('/blog/get_post/' + code, null, function(data) 
		{
			var form = $("#adminform");
			form.show();
			form.find("input[name=tag]").attr("value", data.tag);
			form.find("textarea[name=body]").val(data.body);
			form.find("input[name=ts]").attr("value", data.ts);
			form.find("input[name=hidden]").attr("checked", data.hidden);
		}
	);
}

