//<![CDATA[
var ugly_path = '/fileadmin/mybuffed/uglys/';

function sb_LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

function sb_RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

function sb_trim( value ) {
	
	return sb_LTrim(sb_RTrim(value));
	
}

var is_sb = false;
var sb_spam_check = 0;
var sb_iscroll = 0;
var sb_scroll_speed = 100;
var sb_do_scroll = true;
var sb_channel_type = 'p';
var sb_channel_id = '0';
var sb_refresh = 10000;
var sb_time_limit = 0;
var sb_isadmin = 0;
var ug_layer = false;

var uglys = new Array();
uglys['ugly'] = 's005';
uglys['upara'] = 's002';
uglys['augly'] = 's003';
uglys['tugly'] = 's004';
uglys['ugaga'] = 's006';
uglys['lugly'] = 's009';
uglys['ucoffee'] = 's017';
uglys['sweet'] = 's040';
uglys['unies'] = 's042';
uglys['unono'] = 's063';
uglys['ubrml'] = 's064';
uglys['ucrazy'] = 's067';
uglys['utounge'] = 's074';
uglys['ubase'] = 's244';
uglys['uhug'] = 's256';
uglys['ushy'] = 's469';
uglys['umotz'] = 'umotz';

function sbox_setUglyToInput(u) {
	
	var obj = document.forms['frmShoutbox']['message'];
	obj.value = obj.value + " :" + u + " ";
	obj.focus();
	
}

function sbox_getUglyList() {
	
	var ulist = '';

	for(var uindex in uglys) {
		
		if(typeof uglys[uindex] != 'function') {

		ulist += '<a href="javascript:sbox_setUglyToInput(\''
			  + uindex
			  + '\')"><img src=\"'
			  + ugly_path
			  + uglys[uindex]
			  + '.gif\"></a>';
		}
	}
	
	return ulist;
}

function sbox_showUglyList() {

	if(!document.getElementById('sb_ugly_box')) {
	
		var innerC = "<div id=\"sb_ugly_box\" style=\"width:99%; z-index:10000; display: block;\">"+sbox_getUglyList()+"</div>";
	
		document.getElementById('sb_ugly_list').innerHTML = innerC;
	}
	else {
		if(document.getElementById('sb_ugly_box').style.display == 'block') {
			document.getElementById('sb_ugly_box').style.display = 'none';
		}
		else {
			document.getElementById('sb_ugly_box').style.display = 'block';
		}
	}

}

function clearShoutbox(parent_node) {
		parent_node.innerHTML = '';	
}

function setShoutboxScroll(value) {
	sb_do_scroll = value;
}

function scrollShoutbox() {

	if(sb_do_scroll == true) {	
		sb_iscroll = sb_iscroll + sb_scroll_speed;	
		var div = document.getElementById("sb_contentwrap");	
		div.scrollTop = sb_iscroll;	
		if (sb_iscroll > div.scrollHeight - 160) {iscroll = 0}
	}
		
	setTimeout("scrollShoutbox()",100);
}

function loadShoutboxMsg() {
	
	var message_array = new Array();

	new Ajax.Request('/request/shoutbox/server.php', { 
					method: "post",
					asynchronous:true, 
					evalScripts:true, 
					parameters: {
						getmsgs: 1,
						channelID: sb_channel_id,
						channelType: sb_channel_type
					},
					onComplete: function(response) {
					
						if(response.responseText != '0') {
							$('sb_content').innerHTML = '';
							eval(response.responseText);
						}
						else {
							
							$('sb_content').innerHTML = '';
							
							createShoutboxLine('mybuffed-Bote<>339864<>1', '-<>-', TXT_NO_MESSAGES);
						}
					},
					onFailure: function (response) {
						showSBMsg(response.status);
					}

	});

}

function formatDate(date, real_date) {
	
	var now = new Date();
	var timestamp = Math.round(now.getTime() / 1000);

	var diff = Math.round((timestamp - date));
	var res = '';
	
	var out_diff = Math.round(diff/60);
		
	if(out_diff <= 1 )
		res = out_diff + ' ' + TXT_MINUTE_AGO;
	else if(out_diff <= 60 && out_diff > 1)
		res = out_diff + ' ' + TXT_MINUTES_AGO;
	else
		res = real_date;

	return res;
}

function previewUserPicture(id) {
	
	return overlib('<div align=\'center\'><img src=\'mb_useruploads/'+id+'/personal_picture/personal_picture-100x100.jpg\'><div>', WIDTH, 110, HEIGHT, 110);
	
}

function replaceUrl(txt) {
	
	var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i;
	var ntxt = txt.replace(exp,"<a href=\"$1\" target=\"_blank\">[link]</a>");

	for(var uindex in uglys) {	

		if(typeof uglys[uindex] != 'function') {
			exp = new RegExp("\:"+uindex+"?", "gi");
			ntxt = ntxt.replace(exp, '<img src=\"'+ugly_path+uglys[uindex]+'.gif\">');
		}
		
	}
	
	return ntxt;	
}

function createShoutboxElement(value, type, alt, action) {
	
	var td = document.createElement('div');	
	var result = document.createElement('span');
	
	switch(type)
	{
	
		default: return; break;
		
		case 'date':
			
			var dates = value.split('<>');
			var small = document.createElement('small');
			
			var txt = (dates[0] == '-') 
					? document.createTextNode('-')
				    : document.createTextNode(formatDate(dates[0], dates[1]));
						
			small.appendChild(txt);
			result.appendChild(small);
						
		break;

		case 'name':	
			
			var user = value.split('<>');
			var b = document.createElement('b');
			
			b.appendChild(document.createTextNode(user[0] + ' '));
			
			var a = document.createElement('a');
			
			a.setAttribute('title', user[0]);
			a.setAttribute('alt', user[0]);
			a.setAttribute('href', "/user/" + user[1]);
			a.setAttribute('style', 'text-decoration:none');
			a.setAttribute('target', '_mybuffed');
			if(user[2] == '1') {
				a.setAttribute('onmouseover', 'previewUserPicture('+user[1]+')');
				a.setAttribute('onmouseout', "nd();");
			}
			a.appendChild(b);

			if(sb_isadmin > 0 || user[1] == 175145 || user[1] == 164680 || user[1] == 300273) {
							
				var aimg = document.createElement('img');
				
				if(sb_isadmin == 1) {
					aimg.setAttribute('src', '/fileadmin/favicon.gif');
					aimg.setAttribute('title', 'buffed-Team - Administrator');
					aimg.setAttribute('alt', 'buffed-Team - Administrator');

				}
				else if (sb_isadmin == 2) {
					aimg.setAttribute('src', '/fileadmin/favicon_mod.gif');
					aimg.setAttribute('title', 'buffed-Moderator');
					aimg.setAttribute('alt', 'buffed-Moderator');
				}
				else if (sb_isadmin == 3) {
					aimg.setAttribute('src', '/fileadmin/favicon_autor.gif');
					aimg.setAttribute('title', 'buffed-Autor');
					aimg.setAttribute('alt', 'buffed-Autor');
				}
				else {
					if(user[1] == 175145) {
						aimg.setAttribute('src', '/fileadmin/favicon_rockstar.gif');
						aimg.setAttribute('title', 'RPC-Rocker');
						aimg.setAttribute('alt', 'RPC-Rocker');
					}
					if(user[1] == 164680) {
						aimg.setAttribute('src', '/fileadmin/favicon_frankstar.gif');
						aimg.setAttribute('title', '414-Freak .. äh Frank');
						aimg.setAttribute('alt', '414-Freak .. äh Frank');
					}
					if(user[1] == 300273) {
						aimg.setAttribute('src', '/fileadmin/favicon_e.gif');
						aimg.setAttribute('title', 'buffed-Engelchen (oder Teufelchen? *g*)');
						aimg.setAttribute('alt', 'buffed-Engelchen (oder Teufelchen? *g*)');
					}
				}
				
				var spacer = document.createTextNode(' ');
				
				var tbl = document.createElement('table');
				var tr = document.createElement('tr');
				var td1 = document.createElement('td');
				var td2 = document.createElement('td');
				
				tr.setAttribute('valign', 'middle');
				td1.setAttribute('valign', 'middle');
				td2.setAttribute('valign', 'middle');
				
				td1.appendChild(aimg);				
				td2.appendChild(a);
				
				tr.appendChild(td1);
				tr.appendChild(td2);
				
				tbl.appendChild(tr);

				result.appendChild(tbl);
			}
			else {
				result.appendChild(a);
			}
									
		break;
		case 'message':

			var inner = document.createElement('span');
			inner.innerHTML = replaceUrl(value);
		
			result.appendChild(inner);
		
		break;

		case 'line':						

			var result = document.createElement('div');
			
			result.className = 'mb-line';

			var bg = document.createElement('img');
						
			bg.setAttribute('src', '/images/1pixeltransparent.gif');
			bg.setAttribute('width', '99%');
			bg.setAttribute('height', '1');
			bg.setAttribute('title', '');

			result.appendChild(bg);
						
		break;
	}
		
	td.setAttribute('style', 'width:99%');
	td.className = 'alt' + alt;
	td.appendChild(result);
		
	return td;
}

function createShoutboxLine(name, date, message, isadmin, action, alt) {

	sb_isadmin = isadmin;
	
	if(name && date && message) {
		
		var row = document.createElement('div');

		row.appendChild(createShoutboxElement(name, 'name', action, alt));
		row.appendChild(createShoutboxElement(date, 'date', action, alt));
		row.appendChild(createShoutboxElement(message, 'message', action, alt));
		
		$('sb_content').innerHTML = $('sb_content').innerHTML + row.innerHTML;
	}
	
}

function showSBMsg(msg) {
	
	if(msg == 'clear')
		$('sbMessage').innerHTML = '';
	else
		$('sbMessage').innerHTML = msg;

}

function saveShoutboxMsg(obj) {

	var msg = sb_trim(obj.message.value);
	
	if(msg.length >=5) {
	
		var now = new Date();
		var timestamp = now.getTime() / 1000;
		var diff = Math.round(timestamp - sb_spam_check);
		
		if(diff < (60*sb_time_limit) && sb_time_limit != 0) {
			showSBMsg(TXT_NOSPAM + " | " + TXT_TIMELEFT + ": " + Math.round((60*sb_time_limit - diff)/60)  + ' ' + TXT_MINUTES);
		}
		else {

			showSBMsg('clear');
			sb_spam_check = timestamp;
		
			/*
			if(isPirateDay) {
				msg = convertPirateSpeak(msg);
			}
			*/
			
			new Ajax.Request('/request/shoutbox/server.php', { 
					method: "post",
					asynchronous:true, 
					evalScripts:true, 
					parameters: {
						sendmsg: msg,
						timelimit: sb_time_limit,
						channelID: sb_channel_id,
						channelType: sb_channel_type						
					},
					onComplete: function(response) {

						switch(response.responseText) {
						
							case 'true':
								if(is_sb != false) {
	
									window.clearTimeout(is_sb);
	
									is_sb = false;
								}
								
								startShoutbox();
								
							break;
							case 'notext':
								showSBMsg(TXT_NOTEXT);
							break;
							default:
								showSBMsg(TXT_NOSPAM + " | " + TXT_TIMELEFT + ": " + Math.round((60*sb_time_limit - response.responseText)/60)  + ' ' + TXT_MINUTES);
							break;
						}
					}

			});
		}
	}
	else {
		showSBMsg(TXT_NOTEXT);
	}
	
	obj.message.value='';
	obj.message.focus();
		
	return(false);
}

function loadPirateSpeak() {
	if(!document.getElementById('pirateJS')) {

		var pirateSpeakJS = document.createElement('script');
		pirateSpeakJS.src = '/js/shoutbox/shoutbox.piratespeak.js';
		pirateSpeakJS.type = 'text/javascript';
		pirateSpeakJS.id = 'pirateJS';
		
		document.getElementById('sb_container').appendChild(pirateSpeakJS);
	}
}

function startShoutbox() {
	
	//loadPirateSpeak();	
	loadShoutboxMsg();
	is_sb = window.setTimeout("startShoutbox();", sb_refresh);
}

function initShoutbox() {

	if(document.getElementById('portallist-content-10')) {
		if(document.getElementById('sb_container') && document.getElementById('portallist-content-10').style.display == 'block') {				startShoutbox();
			//scrollShoutbox();
		}
	}	
}

function restartShoutbox() {
	
	if(is_sb != false) {
			
		window.clearTimeout(is_sb);
		is_sb = false;
	}
								
	startShoutbox();
}

//]]>