// wnditm_blog.js

var gBlogStuff = new List();
var gOKToAdvance = false;
var gPopup_blogID = false;

//---------------------------------------------------------------------
var popup_blog_itms = 
	[
	{label:"Delete This Entry", 	func:blog_delete}
	];
//---------------------------------------------------------------------
var popup_blog = 
	{
	width:120,
	itms:popup_blog_itms
	};

//------------------------------------------
function wnditm_blog_add(itm, wnd)
	{	
	var box = wnd.find(".blog_box");
	var edit = wnditm_textarea_add({klass:"blog_edit", keyup:blog_keyup}, box);
	wnditm_imgbut_add({fname:"but_enter2238",func:blog_enter_func,klass:"blog_enter_but"}, box);
	var imgBox = wnditm_div_add({klass:"blog_editImgBox"}, box);
	var src = getMugPath(getuserid(), "_32x32");
	wnditm_img_add({klass:"blog_editImg", src:src, 
		imgDim:{height:32,width:32}}, imgBox);
	wnditm_div_add({klass:"blog_view"}, box);
	}
//------------------------------------------
function blog_add_entry(par, info)
	{
	var wnd = par.wnd();
	var user_id = info.user_id;
	var username = info.username;
	var text = unescape(info.text);
	var timestamp = info.timestamp;
	var blog_id = info.blog_id;
	var total = wnd.find(".blog_entryBox").length;
	var top = total * 43;

	var entryBox = wnditm_div_add({klass:"blog_entryBox", popupPar:popup_blog},par)
			.addClass("blogBox")
			.css("top", top)
			.hover(blog_entry_over, blog_entry_out)
			.bind("mousedown", blog_entry_mousedown)
			.bind("mouseup", blog_entry_mouseup)
			.bind("click", blog_entry_click)
			.attr({
					"user_id":user_id, 
					"blog_id":blog_id
					});
	if (info.zoom==1)
		{
		entryBox.attr({zoom:true,zoom_x:info.zoom_x,zoom_y:info.zoom_y});
		}
	var imgBox = wnditm_div_add({klass:"blog_entryImgBox"}, entryBox);
	var src = getMugPath(user_id, "_32x32");
	wnditm_img_add({klass:"blog_editImg", src:src, 
		imgDim:{height:32,width:32}}, imgBox);
	wnditm_div_add({klass:"blog_entryTextBox"}, entryBox).html(text);
	wnditm_div_add({klass:"blog_entry_username"}, entryBox).html(username);
	wnditm_div_add({klass:"blog_entry_timestamp"}, entryBox).html(timestamp);
	}
//------------------------------------------
function blog_enter_func(but)
	{
	photo_blog_add_comment(but.wnd());
	}
//------------------------------------------
function wnditm_blog_getTextEdit(wnd)
	{	
	return wnd.find(".blog_box").find(".blog_edit");
	}

function AutoAdvanceSlide(){}
//------------------------------------------------------------------------
function photo_blog_add_comment(wnd, donefunc)
	{
	var txt = wnditm_blog_getTextEdit(wnd).attr("value");
	if (!txt)
		{
		if (donefunc) donefunc();
		return;
		}
	var text = trim(txt);
	if (!isBlank(text))
		{
		var data = new Object();
		data.command = "add_comment";
		data.id = 0;
		data.photo_id = wnditm_viewer_getPhotoID(wnd);
		data.text = escape(text);
		wnditm_viewer_getData(wnd, data);
		if (donefunc) data.donefunc_id = gBlogStuff.add(donefunc);
		data.wndID = gBlogStuff.add(wnd);
		data.success = false;
		var dataString = $.toJSON(data);
		delete data;
		$.post('photo_blog.php', {data: dataString}, done_photo_blog_add_comment);
		}
	else
		{
		if (donefunc != null) donefunc();
		else 
			{
//			if (gOKToAdvance) AutoAdvanceSlide();
//			else gOKToAdvance = true;
			}
		}
	}
	
//------------------------------------------------------------------------
function done_photo_blog_add_comment(res)
	{
	var obj = $.evalJSON(res);
	var wnd = gBlogStuff.getremove(obj.wndID);
	if (obj.donefunc_id) var donefunc = gBlogStuff.getremove(obj.donefunc_id);
	if (obj.success) 
		{
		wnditm_blog_getTextEdit(wnd).attr("value","");
		if (!gOKToAdvance && !donefunc) 
			{
			photo_blog_redraw(wnd);
			$(".wnd_bloglist").trigger("refresh");
			}
		}
	else alert("bummer - not added - " + obj.rtn);
	delete obj;
//	if (gOKToAdvance) AutoAdvanceSlide();
//	else gOKToAdvance = true;
	if (donefunc) donefunc(res);
	}

//------------------------------------------------------------------------
function photo_blog_redraw(wnd)
	{
	if (wnd)
		{
//		if (!wnd.attr("init"))
			{
			wnd.find(".blog_view").empty();
			var photo_id = wnditm_viewer_getPhotoID(wnd);
			if (photo_id)
				{
				var data = new Object();
				data.command = "get_comments";
				data.photo_id = photo_id;
				data.wndID = gBlogStuff.addNew(wnd);
				var dataString = $.toJSON(data);
				delete data;
				$.post('photo_blog.php', {data: dataString}, done_photo_blog_redraw);
				}
			}
//		else wnd.removeAttr("init");
		}
	}
//------------------------------------------------------------------------
function done_photo_blog_redraw(res)
	{
	var obj = $.evalJSON(res);
	var wnd = gBlogStuff.getremove(obj.wndID);
	if (obj.total > 0)
		{
		if (obj.photo_id == wnditm_viewer_getPhotoID(wnd))
			{
			var recs = $.evalJSON(obj.recs);
			var blog =  wnd.find(".blog_view").empty();
			for (var idx = 0; idx < obj.total; ++idx) 
				{
				var rec = recs[idx];
				blog_add_entry(blog, rec);
				}
			delete recs;
			}
		}
	wnd.trigger("done");
	}

//------------------------------------------------------------------------
function blog_entry_over()
	{
	if (!$(this).hasClass("blog_entryBox_down"))
		{
		$(this).removeClass("blog_entryBox")
		.addClass("blog_entryBox_over");	
		}
	}
//------------------------------------------------------------------------
function blog_entry_out()
	{
	if (!$(this).hasClass("blog_entryBox_down")) 
		{
		$(this).removeClass("blog_entryBox_over")
		.addClass("blog_entryBox");
		}
	}
//------------------------------------------------------------------------
function blog_entry_mousedown()
	{
	$(this).wnd().find(".blog_view").find(".blogBox")
	.removeClass("blog_entryBox_down")
	.removeClass("blog_entryBox_over");
	$(this).addClass("blog_entryBox_down");
	}
//------------------------------------------------------------------------
function blog_entry_mouseup()
	{
	}
//------------------------------------------------------------------------
function blog_selectBox(box)
	{
	if (box.attr("zoom"))
		{
		wnditm_viewer_zoom(box.wnd(),box.attr("zoom_x"), box.attr("zoom_y"));
		}
	else wnditm_viewer_zoomOff(box.wnd());
	}
//------------------------------------------------------------------------
function blog_entry_click()
	{
	blog_selectBox($(this));
	}
//-----------------------------------------------------------
function blog_delete()
	{
	var box = menu_getPopupTarget();	
	if (box.attr("user_id") == getuserid())
		{
		var text = $($(box).find(".blog_entryTextBox")).html();
		var yes = confirm("Are you sure you wish to delete this blog entry?\n\n"+text);
		if (yes) photo_blog_delete_entry(box.wnd(), box.attr("blog_id"));
		}
	else alert("You can only delete entries that were created by you.");
	}
//-----------------------------------------------------------
function photo_blog_delete_entry(wnd, blog_id)
	{
	var data = new Object();
	data.command = "delete_comment";
	data.blog_id = blog_id;
	data.wndID = gBlogStuff.add(wnd);
	var dataString = $.toJSON(data);
	delete data;
	$.post('photo_blog.php', {data: dataString}, done_photo_blog_delete_entry);
	}

//-----------------------------------------------------------
function done_photo_blog_delete_entry(res)
	{
	var obj = $.evalJSON(res);
	var wnd = gBlogStuff.getremove(obj.wndID);
	if (obj.success) {
		photo_blog_redraw(wnd);
		$(".wnd_bloglist").trigger("refresh");
	}
	delete obj;
	}
//-----------------------------------------------------------
function blog_keyup(event)
	{
	if (event.keyCode == 13) 
		{
		if (!isBlank($(this).attr("value")))
			{
			photo_blog_add_comment($(this).wnd());
			}
		}
	event.stopPropagation();
	}
//-----------------------------------------------------------
function wnditm_blog_select(wnd, blog_id)
	{
	var bview = wnd.find(".blog_view");
	bview.find(".blogBox")
	.removeClass("blog_entryBox_down")
	.removeClass("blog_entryBox_over");
	var box = bview.find(".blogBox:[blog_id="+blog_id+"]");
	if (box.length>0)
		{
		box.addClass("blog_entryBox_down");
		blog_selectBox(box);
		}
	}