var __t = ''; // global template
//var __id = 0; // latest postlet id
//var __ido = -1; // oldest postlet id
var __interval = 60000; // interval
var __postctrl = ['textarea#postlet','select#chid','input#post'];
var __fadetime = 500; // fading time
var __baseurl = "http://www.dkote.com";

function self_command(n)
{
	return (cid==n);
}

function any_command()
{
	return (cid!='');
}

function control_disable(ctrl)
{
	$(ctrl).each(function(i){$(ctrl[i]).attr('disabled','disabled');});
}

function control_enable(ctrl)
{
	$(ctrl).each(function(i){$(ctrl[i]).removeAttr('disabled');});
}

function keyboard_postlet(e)
{
	update_sizelet();
}

function update_sizelet()
{
	$('span#sizelet').html($('textarea#postlet').val().length);
	if ($('textarea#postlet').val().length>140)
	{
		$('span#sizelet').addClass('sizelet_over');
	}
	else
		$('span#sizelet').removeClass('sizelet_over');
}

function send_postlet()
{
	if ($('textarea#postlet').val()!=''&&$('textarea#postlet').val().length<=140)
	{
		control_disable(__postctrl);
		var p = {text:$('textarea#postlet').val(),chid:$('select#chid').val()};
		json_post(__postapi,p,post_response);
	}
}

function time_distance(tm)
{
	var msg = '';
	if (tm<60)
	{
		if (tm<0) tm = 0;
		msg = ' '+tm+' วินาทีที่แล้ว';
	}
	else
	{
		if (tm<3600)
		{
			msg = 'ประมาณ '+Math.floor(tm/60)+' นาทีที่แล้ว';
		}
		else
		{
			if (tm<86400)
			{
				msg = 'ประมาณ '+Math.floor(tm/3600)+' ชั่วโมงที่แล้ว';
			}
			else
			{
				if (Math.floor(tm/86400) == 1)
				{
					msg = 'วานนี้';
				}
				else
				{
					msg = 'ประมาณ '+Math.floor(tm/86400)+' วันที่แล้ว';
				}
			}
		}
	}
	return msg;
}

function refresh_stamp()
{
	$("span.postlet_time").each(function(){
		$(this).html(format_postlet_time(parseInt($(this).attr('xtimestamp'))));
	});
}

function format_thai_datetime(stamp)
{
	var mo = ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'];
	var tm = new Date();
	tm.setTime(stamp*1000);
	tm_date = tm.getDate()+' '+mo[tm.getMonth()]+' '+(tm.getFullYear()+543);
	tm_hh = tm.getHours();
	tm_mm = tm.getMinutes();
	tm_hh = ((tm_hh<10)?'0':'')+tm_hh;
	tm_mm = ((tm_mm<10)?'0':'')+tm_mm;
	tm_time = tm_hh+':'+tm_mm;
	var fmt = 'วันที่ '+tm_date+' เวลา '+tm_time;
	return fmt;
}

function format_postlet_time(stamp)
{
	var tm = new Date();
	var now = parseInt(tm.getTime() / 1000); // to second
	var msg = '';
	var stamp_int = parseInt(stamp);
	var diff = now - stamp_int;
	if (diff<604800)
	{
		msg = 'เมื่อ'+time_distance(diff);
	}
	else
	{
		msg = 'เมื่อ'+format_thai_datetime(stamp_int);
	}
	return msg;
}

function format_postlet(p)
{
	p = p.replace(/&#39;/g,"'");
	p = p.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$])/gi, "<a href='$1' class='url_link' target='_blank'>$1</a>");
	p = p.replace(/@([A-Z0-9_]+)/gi,"<span class='username_tag'>@<a href='"+__baseurl+"/user/$1' class='username_link'>$1</a></span>");
	p = p.replace(/#([^\s:/!@%\^&\*\(\)\=\$\[\]\\\|\?\<\>;#\-\+\.~`\{\}\"\',]{2,})/gi,"<a href='"+__baseurl+"/search/%2523$1' class='hash_link'>#$1</a>");
	return p;
}

function get_template(u)
{
	var _t = '';
	u += "?"+(new Date()).getTime();
	$.ajax({async:false,dataType:'html',type:'get',url:u,success:function(t){_t=t;}});
	return _t;
}

function background_get_stat()
{
	if (cid!='')
	{
		$.getJSON(__statapi,null,function(j){notify_stat(j)});
	}
}

function notify_stat(j)
{
	if (j.e=="ok")
	{
		$('#mycount').html(j.mycount);
		$('#favcount').html(j.count);
	}
	else
	{
		switch (j.msg)
		{
			case "existing_favorite": break;
			default: alert(j.msg);
		}
	}
}

function postlet_mouseover()
{
	$(this).addClass('postlet_entry_hover');
	$(this).find('div.postlet_function').show();
}

function postlet_mouseout()
{
	$(this).removeClass('postlet_entry_hover');
	$(this).find('div.postlet_function').hide();
}

function json_post(url,data,success)
{
	$.ajax({dataType:'json',type:'post',url:url,data:data,success:success});
}

/*
["Space","%20"],["#","%23"],
["$","%24"],["%","%25"],
["&","%26"],["@","%40"],
["'","%60"],["/","%2F"],
[":","%3A"],[";","%3B"],
["<","%3C"],["=","%3D"],
[">","%3E"],["?","%3F"],
["[","%5B"],["\","%5C"],
["]","%5D"],["^","%5E"],
["{","%7B"],["|","%7C"],
["}","%7D"],["~","%7E"]
*/

function keyword_search()
{
	var k = $("#searchkey").val();
	k = escape_special(k);
	window.location.href="/search/"+k;
	return false;
}

function escape_special(k)
{
	var kp = [["%","%25"],[" ","%20"],["#","%23"],
		["\\$","%24"],["\\&","%26"],["@","%40"],
		["'","%60"],["\\\/","%2F"],["\\:","%3A"],
		[";","%3B"],["<","%3C"],["\\=","%3D"],
		[">","%3E"],["\\?","%3F"],["\\[","%5B"],
		["\\\\","%5C"],["\\]","%5D"],["\\^","%5E"],
		["\\{","%7B"],["\\|","%7C"],["\\}","%7D"],["\\~","%7E"]];
	var reg = "";
	for(var j=0;j<kp.length;j++)
	{
		reg = eval("/"+kp[j][0]+"/g");
		k = k.replace(reg,kp[j][1]);
	}
	k = k.replace(/%/g,'%25');
	return k;
}

$(function(){
	$("#searchform").submit(keyword_search);
});