function insertAfter(node, referenceNode) {
	referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);
}
function loadGrins() {
	var grinsDiv = document.createElement('div');
	grinsDiv.id = 'wp_grins';
	grinsDiv.innerHTML = '<img src="http://short-stack.net/wordpress/wp-includes/images/smilies/saywha.gif" alt="o_0" onclick="grin(\'o_0\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/whine.gif" alt=":yell:" onclick="grin(\':yell:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/yawn.gif" alt=":yawn:" onclick="grin(\':yawn:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/wink.gif" alt=":wink:" onclick="grin(\':wink:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/sweatdrop.gif" alt=":upyours:" onclick="grin(\':upyours:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/flip.gif" alt=":upsidedown:" onclick="grin(\':upsidedown:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/uhm.gif" alt=":uhm:" onclick="grin(\':uhm:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/tonguer.gif" alt=":tongue:" onclick="grin(\':tongue:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/lazy.gif" alt=":sweat:" onclick="grin(\':sweat:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/lips.gif" alt=":smooch:" onclick="grin(\':smooch:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/sleep.gif" alt=":sleep:" onclick="grin(\':sleep:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/sick.gif" alt=":sick:" onclick="grin(\':sick:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/drool.gif" alt=":sad:" onclick="grin(\':sad:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/yuck.gif" alt=":razz:" onclick="grin(\':razz:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/pirate.gif" alt=":pirate:" onclick="grin(\':pirate:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/party.gif" alt=":party:" onclick="grin(\':party:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/owie.gif" alt=":ouch:" onclick="grin(\':ouch:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/idea.gif" alt=":ouch2:" onclick="grin(\':ouch2:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/shock.gif" alt=":oops:" onclick="grin(\':oops:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/blank.gif" alt=":neutral:" onclick="grin(\':neutral:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/music.gif" alt=":music:" onclick="grin(\':music:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/mad.gif" alt=":mad:" onclick="grin(\':mad:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/hubbahubba.gif" alt=":lovestruck:" onclick="grin(\':lovestruck:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/rolleyes.gif" alt=":lookup:" onclick="grin(\':lookup:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/confused.gif" alt=":lookdown:" onclick="grin(\':lookdown:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/hmm.gif" alt=":look:" onclick="grin(\':look:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/couplekiss.gif" alt=":kiss:" onclick="grin(\':kiss:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/kiss.gif" alt=":kiss2:" onclick="grin(\':kiss2:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/couple.gif" alt=":inlove:" onclick="grin(\':inlove:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/hug.gif" alt=":hug:" onclick="grin(\':hug:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/biggrin.gif" alt=":happy:" onclick="grin(\':happy:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/grumpy.gif" alt=":grr:" onclick="grin(\':grr:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/lol.gif" alt=":grin:" onclick="grin(\':grin:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/geek.gif" alt=":geek:" onclick="grin(\':geek:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/yum.gif" alt=":full:" onclick="grin(\':full:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/evil.gif" alt=":evil:" onclick="grin(\':evil:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/cry.gif" alt=":emo:" onclick="grin(\':emo:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/emo.gif" alt=":emo2:" onclick="grin(\':emo2:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/drunk.gif" alt=":drunk:" onclick="grin(\':drunk:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/down.gif" alt=":download:" onclick="grin(\':download:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/depressed.gif" alt=":depressed:" onclick="grin(\':depressed:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/cynical.gif" alt=":cynical:" onclick="grin(\':cynical:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/cute.gif" alt=":cute:" onclick="grin(\':cute:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/happytear.gif" alt=":cry:" onclick="grin(\':cry:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/crazy.gif" alt=":crazy:" onclick="grin(\':crazy:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/cool.gif" alt=":cool:" onclick="grin(\':cool:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/cold.gif" alt=":cold:" onclick="grin(\':cold:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/camera.gif" alt=":camera:" onclick="grin(\':camera:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/blush.gif" alt=":blush:" onclick="grin(\':blush:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/satisfied.gif" alt=":blush2:" onclick="grin(\':blush2:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/angel.gif" alt=":angel:" onclick="grin(\':angel:\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/smile.gif" alt=":)" onclick="grin(\':)\');"/> <img src="http://short-stack.net/wordpress/wp-includes/images/smilies/sad.gif" alt=":(" onclick="grin(\':(\');"/> ';
	if ($('postdiv')) {
		var type = 'child';
		var node = $('postdiv');
	}
	else if (document.getElementById('postdivrich')) {
		var type = 'child';
		var node = $('postdivrich');
	}
	else if (document.getElementById('comment')) {
		var type = 'before';
		var node = $('comment');
	}
	else {
		return;
	}
	switch (type) {
		case 'child':
			grinsDiv.style.paddingTop = '5px';
			node.appendChild(grinsDiv);
			break;
		case 'before':
			node.parentNode.insertBefore(grinsDiv, node);
			break;
	}
}
Event.observe(window, 'load', loadGrins, false);
function grin(tag) {
	var myField;
	if ($('content') && $('content').type == 'textarea') {
		myField = document.getElementById('content');
		if ($('postdivrich') && typeof tinyMCE != 'undefined' && (!$('edButtons') || $('quicktags').style.display == 'none')) {
			tinyMCE.execInstanceCommand('mce_editor_0', 'mceInsertContent', false, '&nbsp;' + tag + '&nbsp;');
			tinyMCE.selectedInstance.repaint();
			return;
		}
	}
	else if ($('comment') && $('comment').type == 'textarea') {
		myField = $('comment');
	}
	else {
		return false;
	}
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = ' ' + tag + ' ';
		myField.focus();
	}
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var cursorPos = endPos;
		myField.value = myField.value.substring(0, startPos)
					  + ' ' + tag + ' '
					  + myField.value.substring(endPos, myField.value.length);
		cursorPos += tag.length + 2;
		myField.focus();
		myField.selectionStart = cursorPos;
		myField.selectionEnd = cursorPos;
	}
	else {
		myField.value += tag;
		myField.focus();
	}
}
