smilies_tag = new Array(':)',':D',':haha:',';)',':cool:',':o',':(',':foei:',
	':schrik:',':dood:',':huil:',':kus:',':love:',':stil:',
	':kijk:',':poets:',':proost:',':clown:',':td:',':tu:',':buig:',
	':spring:',':nerd:',':idee:',':zzz:',':P',':zwaai:',':fluit:',
	':verbaasd:',':rossen:',':cowboy:',':domblondje:',
	':boos:',':blumen:',':clap:',':demon:',':hake:',':huuu:',
	':inlove:',':kdo:',':liefde:',':lovetoo:',':mad2:',':rno:',':supermad:',
	':tonhue:',':winkmoustache:',':xptdr:',':beach:');
smilies_reg = new Array(':\\)',':D',':haha:',';\\)',':cool:',':o',':\\(',':foei:',
	':schrik:',':dood:',':huil:',':kus:',':love:',':stil:',
	':kijk:',':poets:',':proost:',':clown:',':td:',':tu:',':buig:',
	':spring:',':nerd:',':idee:',':zzz:',':P',':zwaai:',':fluit:',
	':verbaasd:',':rossen:',':cowboy:',':domblondje:',
	':boos:',':blumen:',':clap:',':demon:',':hake:',':huuu:',
	':inlove:',':kdo:',':liefde:',':lovetoo:',':mad2:',':rno:',':supermad:',
	':tonhue:',':winkmoustache:',':xptdr:',':beach:');
smilies_name = new Array('smile','biggrin','laugh','wink','cool','blush','frown','nono',
	'eek','dead','cry','kiss','rose','quiet',
	'look','brushteeth','cheers','clown','notgood','perfect','hail',
	'bouncey','nerd','idea','sleep','tongue','wave','whissle',
	'confused','rossen','cowboy','domblondje',
	'mad','blumen','clap','demon','hake','huuu',
	'inlove','kdo','liefde','lovetoo','mad2','rno','supermad',
	'tonhue','winkmoustache','xptdr','beach');
	
smiliesVisible = false;
smiliesFilled  = false;

function toggleSmilies() {
	smiliesVisible = !smiliesVisible;
	if (!smiliesFilled) {
		fillSmilieBox();
	}
	var smilieBox = document.getElementById('smilie_box');
	smilieBox.style.visibility = smiliesVisible ? 'visible' : 'hidden';
}

function fillSmilieBox() {
	var html = '';
	for (var i = 0; i < smilies_tag.length; i++) {
		html += '<a class="smilie_button" href="#" onclick="addSmilie(';
		html += i + ');"><img border="0" src="images/guestbook/' + smilies_name[i];
		html += '.gif" style="padding: 2px;" /></a>' + "\n";
	}
	var smilieBox = document.getElementById('smilie_box');
	smilieBox.innerHTML = html;
	smiliesFilled = true;
}

function updatePreview() {
	var destEl = document.getElementById('gb_content_preview');
	var srcEl  = document.getElementById('gb_content_input');
	destEl.innerHTML = convertInput(srcEl.value);
	destEl = document.getElementById('gb_name_preview');
	srcEl  = document.getElementById('gb_name_input');
	destEl.innerHTML = convertInput(srcEl.value);
}

function clearAll() {
	var destEl = document.getElementById('gb_content_preview');
	destEl.innerHTML = '';
	destEl = document.getElementById('gb_name_preview');
	destEl.innerHTML = '';
}

function addSmilie(id) {
	toggleSmilies();
	var contentElement = document.getElementById('gb_content_input');
	contentElement.value += smilies_tag[id];
	updatePreview();
}

function convertInput(input) {
	input = nl2br(htmlspecialchars(input));
	var regularExpression;
	var replaceString;
	for (var i = 0; i < smilies_tag.length; i++) {
		regularExpression = new RegExp(smilies_reg[i], 'g');
		replaceString  = '<img border="0" src="images/guestbook/';
		replaceString += smilies_name[i] + '.gif" />';
		input = input.replace(regularExpression, replaceString);
	}
	return input;
}

function nl2br(input) {
	regularExpression = new RegExp("(\r\n)|\r|\n", 'g');
	return input.replace(regularExpression, '<br />');
}

function htmlspecialchars(input) {
	input = input.replace(/&/g, '&amp;');
	input = input.replace(/"/g, '&quot;');
	input = input.replace(/</g, '&lt;');
	input = input.replace(/>/g, '&gt;');
	return input;
}
