// jq_blog.js

//------------------------------------------------------------------------
$.fn.blog = function(o)
	{
	var blog = $(this).addClass("blog");
	if (o.type_id) blog.attr("type_id",o.type_id);
	var bloginbox = $(_div).addClass("bloginbox")
	.appendTo(blog);
	var blogoutbox = $(_div).addClass("blogoutbox").appendTo(blog);
	var blogin = $(_textarea).addClass("blogin")
		.hide()
		.bind("keyup", function(e){
			if (e.keyCode == 13) 
				{
				if (!isBlank($(this).attr("value"))) blog.blog_add();
				}
			e.stopPropagation();
		})
		.appendTo(bloginbox);

	var enterbut = $(_button).attr({value:"ENTER"}).addClass("blogEnter")
	.bind("click", function(){blog.blog_add();})
	.hide()
	.appendTo(bloginbox);

	var blogbut = $(_div).addClass("textLink").html("Add Your 2 Cents").bind("click", function(){
		$(this).hide();
		blogin.show().focus().select();
		enterbut.show();
	}).appendTo(bloginbox);
		
		
	var blogout = $(_div).addClass("blogout").appendTo(blogoutbox);
	blog.blog_redraw();
	return blog;
	}
//------------------------------------------------------------------------
$.fn.blog_redraw = function()
	{
	var blog = $(this);
	var showIP = blog.attr("showIP");
	var div = blog.find(".blogout").empty();
	$.post("blog.php", {data: $.toJSON({command:"get",
						rowLimit:100,
						type_id: blog.attr("type_id")})}, function(res){
		var o = $.evalJSON(res);
		if (o.recs)
			{
			var recs = $.evalJSON(o.recs);
			for (var i=0; i<recs.length; ++i)
				{
				var r = recs[i];
				var tim = "<a class='blogtime'>"+r.timestamp+":</a>";
				if (showIP) tim += " <"+r.ip+"> ";
				$(_a).html(tim+nbsp(2)+unescape(r.text)+"<br>")
				.addClass("blogEntry")
				.attr("blog_id", r.id)
				.hover(function(){
					$(this).css({color:"yellow"});
				},
				function(){
					$(this).css({color:"#bbbbbb"});
				})
				.bind("click", function()
					{
					if (inAdminMode()) 
						{
						$(this).addClass("blogHilite");
						var yes = confirm("Do you wish to delete this blog entry?");
						$(this).removeClass("blogHilite");
						if (yes)
							{
							$.post("blog.php", {data: $.toJSON({command:"del"
														,blog_id:$(this).attr("blog_id")
											})}, function(res){
												blog.blog_redraw();
											});
								
							}
						}
						})
				.appendTo(div);	
				}
			}
	});
	return $(this);
	}

//------------------------------------------------------------------------
$.fn.blog_add = function()
	{
	var blog = $(this);
	var blogin = blog.find(".blogin");
	
	var txt = rtrim(blogin.attr("value"));
	if (!isBlank(txt))
		{
		blog.find(".blogout").empty();
		$.post("blog.php", 
			{data: $.toJSON({command:"add",text: escape(txt),type_id:blog.attr("type_id")
							})}, function(res){
			var o = $.evalJSON(res);
			blog.blog_redraw();
			blogin.attr("value","");
			if (o.blog_cmd)
				{
				switch(o.blog_cmd)
					{
					case "admin":
						$(".topRtBox").html("Admin")
						.bind("click",function(){
						});
						gBoss = true;
						break;
					case "noadmin":
						$(".topRtBox").html("Visitor")
						.unbind("click");
						gBoss = false;
						break;
					case "showips":
						blog.attr("showIP", true).blog_redraw();
						break;
					case "hideips":
						blog.removeAttr("showIP").blog_redraw();
						break;
					case "killratings":
						bowers_killRatings();
						break;
					case "loadratings":
						$.post("shuf_ratings.php", {data:$.toJSON({
							command:"mergeratings",
							path: "bowers_2010.rat"
							})},function(res){
								var o = $.evalJSON(res);
								alert("Total players is "+o.total);
								document.location = "shuffleboard.php";
							});
							break;
					}
				}
		var box = blog.find(".bloginbox");
		box.find(".blogin").hide();
		box.find(".blogEnter").hide();
		box.find(".textLink").show();
		});
		}
	return $(this);
	}

//------------------------------------------------------------------------
$.fn.blog_delAll = function()
	{
	var blog = $(this);
	var blogin = blog.find(".blogin");
	
	$.post("blog.php", 
		{data: $.toJSON({command:"del_all",
						type_id: _type_shuffleboard
						})}, function(res){
		$(this).find(".blogout").empty();
	});
	return $(this);
	}