// Shoutbox - JavaScript Library by Natz
// Edit By acaz

var shoutbox_loaded = false;
function shoutbox()
{	
	this.base_url = null;
	this.members_refresh = 10;
	this.shouts_refresh = 10;
	this.shouts_limit = 0;
	this.flood_limit  = 0;
	this.bypass_flood = 0;
	this.max_length = 0;

	this.errors = new Array();
	this.viewing_on     = false;
	this.skip_fade     = false;
	this.shout_obj     = null;
	this._shout_skips     = 0;
	this._scrolled = false;
	this.my_last_shout = null;

	this.this_load_time  = 0;
	this.shout_load_time = -1;
	this.force_update = 0;

	this.temp_shout = '';
	this.temp_announcement = '';
}

var shoutbox = new shoutbox;

shoutbox.get_timestamp = function(x)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var d = (typeof(x) != 'undefined' && x != null && x != '') ? new Date(x) : new Date();
	var t = d.getTime();

	return Math.floor(t/1000);
}

shoutbox.keydown_handler = function(e)
{
	if (e && e.keyCode == 13)
	{
		shoutbox.submit_shout();
	}
}

shoutbox.ajax = function(t, u, f, p)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var x = new Ajax('HTML', 'fastpostmessages-reloading');
	x.setLoading('');

	if (t == 'get')
	{
		x.get(u, f);
	}
	else if (t == 'post')
	{
		var str='';
		for(var i in p) {
			str+=i+'='+encodeURIComponent(p[i])+'&';
		}
		x.get(u+str, f);
	}
}

shoutbox.submit_shout = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var p = new Array();
	var s = shoutbox.get_shouts_ids();

	if (!s.length)
	{
		s = new Array();
	}

	p['type'] = 'shout';
	p['shout'] = shoutbox.get_shout();
	p['shout_skin'] = $('fastpostmessage-skin').value;
	p['ids'] = (s != '' && s.length > 0) ? s.join(',') : '';
	p['time'] = shoutbox.get_timestamp();

	if (p['shout'] == '')
	{
		shoutbox.shout_error(shoutbox.errors['blank_shout']);
		return;
	}

	if (shoutbox.max_length > 0 && p['shout'].length > shoutbox.max_length)
	{
		shoutbox.shout_error(shoutbox.errors['shout_too_big']);
		return;
	}

	if (shoutbox.flood_limit > 0 && shoutbox.my_last_shout > 0 && (shoutbox.get_timestamp()-shoutbox.my_last_shout < shoutbox.flood_limit) && shoutbox.bypass_flood != 1)
	{
		shoutbox.shout_error(shoutbox.errors['flooding'].replace('{x}', shoutbox.flood_limit));
		return;
	}

	shoutbox.shout_error_clear();
	var c = shoutbox.check_for_commands();

	if (c != null && c == 'doshout')
	{
		shoutbox.shout_load_time = shoutbox.get_timestamp();
		shoutbox.temp_display_shout();
		shoutbox.clear_shout();

		shoutbox.my_last_shout = shoutbox.get_timestamp();
		shoutbox.ajax('post', shoutbox.base_url, shoutbox.submit_shout_func, p);
	}
}

shoutbox.check_for_commands = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var s = shoutbox.get_shout();
	var a = s.split(' ');
	var m = new Array();

	if (!shoutbox.valid_command_syntax(a[0], true))
	{
		return 'doshout';
	}

	switch (a[0])
	{
		case '/refresh':
		case '/reload':
			shoutbox.force_update = true;
			shoutbox.reload_shouts(true);
			shoutbox.clear_shout();
			break;
		case '/pm':
			shoutbox.clear_shout();
			break;
		default:
			return 'doshout';
	}

	return null;
}

shoutbox.submit_shout_func = function(x)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	if (this.blur)
	{
		this.blur();
	}

	var o = $('fastpostmessages');
	if (m = x.match(new RegExp("^error-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1]);
		return;
	}
	else if (m = x.match(new RegExp("^errorfull-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1], true);
		return;
	}
	else
	{
		o.innerHTML = x;

		evalscript(x);
		shoutbox.shout_load_time = shoutbox.this_load_time;
	}

	setTimeout("try{shoutbox.shouts_scroll_bottom(true);}catch(e){}", 500);
}

shoutbox.valid_command_syntax = function(c, m)
{
	if (c != '' && typeof(c) != 'undefined' && c != null && c)
	{
		if (m == true)
		{
			c = c.toString();
			if (c.match(new RegExp("^/([a-zA-Z]+?)$", 'i')))
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return true;
		}
	}

	return false;
}

shoutbox.popup_smilies = function(){
	showMenu('popup_smilies', true, 0, 2)
}

shoutbox.popup_bbcode = function()
{
	window.open('faq.php?action=faq&id=5&messageid=18', 'Legends', 'width=850,height=600,resizable=yes,scrollbars=yes,location=yes');
	return false;
}

shoutbox.shout_error = function(m, s)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	s = (s == true) ? true : false;

	try
	{
		var o = $('shoutbox-error');
		var c = $('shoutbox-error-close');
		var p = o.parentNode;

		o.innerHTML = m;
		c.onclick = shoutbox.shout_error_clear;
		c.style.display = 'block';
		p.style.display = 'block';

		if (s)
		{
			c.style.display = 'none';
		}
	}

	catch(e){}

	if (!s)
	{
		setTimeout("try{shoutbox.shout_error_clear();}catch(e){}", 4000);
	}
}

shoutbox.shout_error_clear = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	try
	{
		var o = $('shoutbox-error');
		var p = o.parentNode;

		o.innerHTML = '';
		p.style.display = 'none';
	}

	catch(e){}
}

shoutbox.get_shout = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	d = shoutbox.shout_obj.value;

	d = trim(d);
	while (d.match(new RegExp("^(.+?)<br>$", 'i')))
	{
		d = d.replace(new RegExp("^(.+?)<br>$", 'i'), '$1');
	}

	d = trim(d);
	if (d.toLowerCase().substring(d.length-4, d.length) == '<br>')
	{
		d = d.substring(0, d.length-4);
	}

	d = trim(d);
	return d;
}

shoutbox.add_error_string = function(k, v)
{
	shoutbox.errors[k] = v;
}

shoutbox.force_scroll = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	shoutbox._refreshes += 1;
	if (shoutbox._refreshes >= 5)
	{
		shoutbox._refreshes = 0;
		shoutbox.shouts_scroll_bottom(true);
		setTimeout("try{shoutbox.shouts_scroll_bottom(true);}catch(e){}", 500);
	}
}

shoutbox.shouts_scroll_bottom = function(f)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	if (!shoutbox._scrolled || f == true)
	{
		if (!f)
		{
			shoutbox._scrolled = true;
		}

		var o = $('fastpostmessages');
		if (shoutbox.shout_order == 'asc')
		{
			o.scrollTop = o.scrollHeight+500;
		}
		else
		{
			o.scrollTop = 0;
		}
	}
}

shoutbox.format_shout_time = function(h, m)
{
	if (h < 10){
		h = '0'+h;
	}

	if (m < 10){
		m = '0'+m;
	}

	return h+':'+m;
}

shoutbox.temp_display_shout = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var s = shoutbox.get_shout();
	if (s == '')
	{
		return;
	}

	var d = new Date();
	var t = shoutbox.format_shout_time(d.getHours(), d.getMinutes());
	var o = $('fastpostmessages');
	var n = Math.floor(Math.random()*101);
	var c;

	if (shoutbox.shout_order == 'asc')
	{
		for (var i=0; i<o.childNodes.length; i++)
		{
			c = o.childNodes[i];
			if (c.nodeName == 'DIV' && c.id.match(/shout-row-(\d+)$/ig))
			{
				break;
			}
		}
	}
	else
	{
		for (var i=o.childNodes.length-1; i>=0; i--)
		{
			c = o.childNodes[i];
			if (c.nodeName == 'DIV' && c.id.match(/shout-row-(\d+)$/ig))
			{
				break;
			}
		}
	}

	if (document.createElement)
	{
		var div1 = document.createElement('div');
		var div2 = document.createElement('div');
		var tbl  = document.createElement('table');
		var tr   = document.createElement('tr');
		var td  = document.createElement('td');
		var spn  = document.createElement('span');
		var anc  = document.createElement('a');
		var spc  = document.createElement('span');
		var skin = $('fastpostmessage-skin').value;

		div1.id = 'temp-shout-'+n;

		tbl.cellPadding = 0;
		tbl.cellSpacing = 0;

		td.setAttribute('align', 'left');
		td.setAttribute('nowrap', 'nowrap');
		td.setAttribute('valign', 'top');
		td.style.border = '';
		td.style.width = 'auto';

		anc.href = 'space.php?action=viewpro&uid='+shoutbox.my_uid;
		anc.innerHTML = (shoutbox.format_names && shoutbox.my_gcolor) ? '<span style="color:'+shoutbox.my_gcolor+'">'+shoutbox.my_name+'</span>' : shoutbox.my_name;

		spn.style.color = 'gray';
		spn.innerHTML = ' says ('+t+')';		

		spc.innerHTML = (skin=='default') ? ': '+s : ': <span style="color:'+skin+'">'+s+'</span>';
		
		td.appendChild(anc);//username
		td.appendChild(spn);//time
		td.appendChild(spc);//content
		
		tr.appendChild(td);
		tbl.appendChild(tr);
		div1.appendChild(tbl);
		div2.appendChild(div1);

		shoutbox.temp_shout = div2.innerHTML;
		if (shoutbox.shout_order == 'asc'){
			if (is_ie){
				o.innerHTML = div2.innerHTML+o.innerHTML;
			}else{
				o.insertBefore(div1, o.firstChild);
			}
		}
	}

	try
	{
		var o = $('fastpostmessages');
		if (o.childNodes.length > shoutbox.shouts_limit)
		{

			if (shoutbox.shout_order == 'asc')
			{
				for (var i=0; i<o.childNodes.length; i++)
				{
					c = o.childNodes[i];
					if (c.nodeName == 'DIV' && c.id.match(/shout-row-(\d+)$/ig))
					{
						break;
					}
				}
			}
			else
			{
				for (var i=o.childNodes.length-1; i>=0; i--)
				{
					c = o.childNodes[i];
					if (c.nodeName == 'DIV' && c.id.match(/shout-row-(\d+)$/ig))
					{
						break;
					}
				}
			}

			o.removeChild(c);
		}
	}

	catch(e){}

	shoutbox.shouts_scroll_bottom(true);

	if (shoutbox.enable_fade && !shoutbox.skip_fade)
	{
		shoutbox.fade_object('temp-shout-'+n);
	}
}

shoutbox.update_members_viewing_total = function(t)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	try
	{
		var o = $('shoutbox-members-viewing-total');
		o.innerHTML = parseInt(t);
	}

	catch(e){}
}

shoutbox.get_shouts_ids = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var a = new Array();
	var o = $('fastpostmessages');
	var c = o.childNodes;

	for (var i=0; i<c.length; i++)
	{
		if (c[i].nodeName == 'DIV' && c[i].id.match(/shout-row-(\d+)$/ig))
		{
			a[a.length] = c[i].id.replace(/shout-row-(\d+)$/ig, '$1');
		}
	}

	return a;
}

shoutbox.get_members_viewing_ids = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var a = new Array();
	var o = $('shoutbox-members-viewing');
	var c = o.childNodes;

	for (var i=0; i<c.length; i++)
	{
		if (c[i].nodeName == 'DIV' && c[i].id.match(/member-viewing-(\d+)$/ig))
		{
			a[a.length] = c[i].id.replace(/member-viewing-(\d+)$/ig, '$1');
		}
	}

	return a;
}

shoutbox.fade_object = function(id)
{

	if ($(id) == null)	
	{
		return false;
	}

	var hash = '#';
	var color_items = "0123456789ABCDEF";
	var start_color = shoutbox.fade_start_color;
	var temp_end  = shoutbox.fade_end_color;
	var iter        = 20;
	var time        = 80;

	var orig_color = document.getElementById(id).style.backgroundColor;
	var rbeg = color_items.indexOf(start_color.substr(1,1))*16+color_items.indexOf(start_color.substr(2,1));
	var gbeg = color_items.indexOf(start_color.substr(3,1))*16+color_items.indexOf(start_color.substr(4,1));
	var bbeg = color_items.indexOf(start_color.substr(5,1))*16+color_items.indexOf(start_color.substr(6,1));
	var rend = color_items.indexOf(temp_end.substr(1,1))*16+color_items.indexOf(temp_end.substr(2,1));
	var gend = color_items.indexOf(temp_end.substr(3,1))*16+color_items.indexOf(temp_end.substr(4,1));
	var bend = color_items.indexOf(temp_end.substr(5,1))*16+color_items.indexOf(temp_end.substr(6,1));
		
	for (i=1, r=rbeg, g=gbeg, b=bbeg; i<=iter; r=Math.round(rbeg+i*((rend-rbeg)/(iter-1))), g=Math.round(gbeg+i*((gend-gbeg)/(iter-1))), b=Math.round(bbeg+i*((bend-bbeg)/(iter-1))), i++)
	{
		hstr = '#'+color_items.charAt(Math.floor(r/16))+color_items.charAt(r%16)+color_items.charAt(Math.floor(g/16))+color_items.charAt(g%16)+color_items.charAt(Math.floor(b/16))+color_items.charAt(b%16);
		setTimeout('try{var div = document.getElementById("'+id+'"); div.style.backgroundColor = "'+hstr+'";}catch(xx){}', i*time);
	}

	setTimeout('try{var div = document.getElementById("'+id+'"); div.style.backgroundColor = "'+orig_color+'";}catch(xx){}', (i+1)*time);
}

shoutbox.clear_shout = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	if (shoutbox.shout_obj)
	{
		shoutbox.shout_obj.value = '';
		shoutbox.shout_obj.focus();
	}
}

shoutbox.load_ajax_shouts = function(x)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	evalscript(x);

	var o = $('fastpostmessages');

	if (m = x.match(new RegExp("^error-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1]);
		return;
	}
	else if (m = x.match(new RegExp("^errorfull-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1], true);
		return;
	}
	else
	{
		if ((shoutbox.this_load_time > shoutbox.shout_load_time) || shoutbox.force_update)
		{
			o.innerHTML = x;
			evalscript(x);

			shoutbox.shout_load_time = shoutbox.this_load_time;
			shoutbox.force_update = 0;
		}
		else
		{
			shoutbox._shout_skips += 1;
			if (shoutbox._shout_skips > 2)
			{
				o.innerHTML = x;
				evalscript(x);

				shoutbox.shout_load_time = shoutbox.this_load_time;
				shoutbox._shout_skips    = 0;
				shoutbox._scrolled = false;
				shoutbox.force_update    = 0;
			}
		}
	}

	setTimeout("try{shoutbox.shouts_scroll_bottom();}catch(e){}", 500);
	shoutbox.reload_shouts();
}

shoutbox.members_viewing_fade = function(a)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	if (!shoutbox.enable_fade)
	{
		return false;
	}

	if (a != null && a.length)
	{
		for (var i=0; i<a.length; i++)
		{
			if (a[i] != shoutbox.my_uid)
			{
				shoutbox.fade_object('member-viewing-'+a[i]);
			}
		}
	}
}

shoutbox.shouts_fade = function(a)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	if (!shoutbox.enable_fade)
	{
		return false;
	}

	if (a != null && a.length > 0)
	{
		for (var i=0; i<a.length; i++)
		{
			shoutbox.fade_object('shout-row-'+a[i]);
		}
	}
}

shoutbox.update_announcement = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var o = $('shoutbox-announcement-div');
	var t = $('shoutbox-announcement-text');
	
	t.innerHTML = shoutbox.temp_announcement;
	if (shoutbox.temp_announcement != '')
	{
		o.style.display = '';
	}
	else
	{
		o.style.display = 'none';
	}
}

shoutbox.refresh_shouts = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	shoutbox.reload_shouts(true);
}

shoutbox.reload_shouts = function(dn)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	dn  = (dn == true) ? true : false;
	sids = shoutbox.get_shouts_ids();

	if (!sids.length)
	{
		sids = new Array();
	}
	var fc = '&force=0';

	if (shoutbox.force_update)
	{
		fc = '&force=1';
	}

	ids = (sids != '' && sids.length > 0) ? sids.join(',') : '';
	if (dn)
	{
		shoutbox.this_load_time = shoutbox.get_timestamp();
		shoutbox.ajax('get', shoutbox.base_url+'type=shouts&ids='+ids+'&time='+shoutbox.get_timestamp()+fc, shoutbox.load_ajax_shouts);
	}
	else
	{
		setTimeout("try{shoutbox.ajax('get', '"+shoutbox.base_url+"type=shouts&ids="+ids+'&time='+shoutbox.get_timestamp()+fc+"', "+shoutbox.load_ajax_shouts+");}catch(e){}", shoutbox.timeout_convert(shoutbox.shouts_refresh));
	}
}

shoutbox.load_ajax_members = function(x)
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	var o = $('shoutbox-members-viewing');

	if (m = x.match(new RegExp("^error-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1]);
		return;
	}
	else if (m = x.match(new RegExp("^errorfull-(.*)", 'i')))
	{
		shoutbox.shout_error(m[1], true);
		return;
	}
	else
	{
		o.innerHTML = x;
		evalscript(x);
	}

	shoutbox.reload_members();
}

shoutbox.reload_members = function()
{
	if (!shoutbox_loaded)
	{
		return false;
	}

	mids = shoutbox.get_members_viewing_ids();
	if (!mids.length)
	{
		mids = new Array();
	}

	setTimeout("try{shoutbox.ajax('get', '"+shoutbox.base_url+"type=members&ids="+mids.join(',')+"', "+shoutbox.load_ajax_members+");}catch(e){}", shoutbox.timeout_convert(shoutbox.members_refresh));
}

shoutbox.timeout_convert = function(t)
{
	t = parseInt(t);
	t = t*1000;

	return t;
}

shoutbox.setPosition = function(curid, showid, offset) 
{
	var curobj = $(curid);
	var showobj = $(showid);
	if(isUndefined(offset)) offset = 0;
	if(curobj) {
		curobj.pos = fetchOffset(curobj);
		curobj.X = curobj.pos['left'];
		curobj.Y = curobj.pos['top'];
		curobj.w = curobj.offsetWidth;
		curobj.h = curobj.offsetHeight;
		showobj.w = showobj.offsetWidth;
		showobj.h = showobj.offsetHeight;
		if(offset < 3) {
			showobj.style.left = (curobj.X + showobj.w > document.body.clientWidth) && (curobj.X + curobj.w - showobj.w >= 0) ? curobj.X + curobj.w - showobj.w + 'px' : curobj.X + 'px';
			showobj.style.top = offset == 1 ? curobj.Y + 'px' : (offset == 2 || ((curobj.Y + curobj.h + showobj.h > document.documentElement.scrollTop + document.documentElement.clientHeight) && (curobj.Y - showobj.h >= 0)) ? (curobj.Y - showobj.h) + 'px' : curobj.Y + curobj.h + 'px');
		} else if(offset == 3) {
			showobj.style.left = (document.body.clientWidth - showobj.clientWidth) / 2 + document.body.scrollLeft + 'px';
			showobj.style.top = (document.body.clientHeight - showobj.clientHeight) / 2 + document.body.scrollTop + 'px';
		}
		if(showobj.style.clip && !is_opera) {
			showobj.style.clip = 'rect(auto, auto, auto, auto)';
		}
	}
}

shoutbox.initiate = function()
{

	if (!shoutbox.base_url)
	{
		return false;
	}

	window.onload = function () {
		var bts =
		[
			['shoutbox-submit-button', 'click', shoutbox.submit_shout],
			['shoutbox-clear-button', 'click', shoutbox.clear_shout],
			['shoutbox-refresh-button', 'click', shoutbox.refresh_shouts],
			['e_popup_smilies', 'click', shoutbox.popup_smilies],
			['e_popup_tools', 'click', shoutbox.popup_bbcode],
			['fastpostmessage', 'keydown', shoutbox.keydown_handler],

			['popup_smilies', 'mousedown', function(event) {try{menudrag($('popup_smilies'), event, 1);}catch(e){}}],
			['popup_smilies', 'mousemove', function(event) {try{menudrag($('popup_smilies'), event, 2);}catch(e){}}],
			['popup_smilies', 'mouseup', function(event) {try{menudrag($('popup_smilies'), event, 3);}catch(e){}}]
		];

		for (var x=0; x<bts.length; x++) 
		{
			if ($(bts[x][0])) _attachEvent($(bts[x][0]), bts[x][1], bts[x][2]);
		}

		shoutbox.shout_obj = $('fastpostmessage');
	}

	shoutbox.shouts_scroll_bottom(true);

	shoutbox_loaded = true;
	shoutbox.this_load_time = shoutbox.get_timestamp();

	shoutbox.ajax('get', shoutbox.base_url+'type=shouts&ids=first-load', shoutbox.load_ajax_shouts);

	if (shoutbox.viewing_on)
	{
		shoutbox.ajax('get', shoutbox.base_url+'type=members&ids=first-load', shoutbox.load_ajax_members);
		setTimeout("try{shoutbox.scroll_shoutbox_top();}catch(e){}", 10);
	}
}

var smdiv = new Array();

function smileyMenu(ctrl) {
	var smiley = ctrl.firstChild;
	ctrl.style.cursor = 'pointer';
	if(smiley.alt) {
		smiley.code = smiley.alt;
		smiley.alt = '';
	}
	if(smiley.title) {
		smiley.lw = smiley.title;
		smiley.title = '';
	}
	smdiv[ctrl.id] = document.createElement('div');
	smdiv[ctrl.id].id = smiley.id + '_menu';
	smdiv[ctrl.id].style.display = 'none';
	smdiv[ctrl.id].style.width = '60px';
	smdiv[ctrl.id].style.height = '60px';
	smdiv[ctrl.id].className = 'popupmenu_popup';
	$('shoutbox-popup').appendChild(smdiv[ctrl.id]);
	smdiv[ctrl.id].innerHTML = '<table width="100%" height="100%"><tr><td align="center" valign="middle"><img src="' + smiley.src + '" border="0" width="' + smiley.lw + '" /></td></tr></table>';
	showMenu(ctrl.id, 0, 0, 1, 0, 0, smiley.id);
}

function insertSmiley(smilieid) {
	var txt = $('smilie_' + smilieid).alt;
	selection = document.selection;
	shoutbox.shout_obj.focus();
	if(!isUndefined(shoutbox.shout_obj.selectionStart)) {
		var opn = shoutbox.shout_obj.selectionStart + 0;
		shoutbox.shout_obj.value = shoutbox.shout_obj.value.substr(0, shoutbox.shout_obj.selectionStart) + txt + shoutbox.shout_obj.value.substr(shoutbox.shout_obj.selectionEnd);
	} else if(selection && selection.createRange) {
		var sel = selection.createRange();
		sel.text = txt;
		sel.moveStart('character', -strlen(txt));
	} else {
		shoutbox.shout_obj.value += txt;
	}
}
