(function($)
{
	var image_path = "/blackpillow/images/smilies/";
	var image_extension = ".gif";
	var elementsWithPossibleSmiliesInThem = ["a", "p", "li", "strong"];

	var smilies =
	{
		':D': 'icon_biggrin',
		":s": 'icon_confused',
		"(h)": 'icon_cool',
		":'(": 'icon_cry',
		":|": 'icon_eek',
		":@": 'icon_evil',
		":p": 'icon_razz',
		":$": 'icon_redface',
		"8-)": 'icon_rolleyes',
		":(": 'icon_sad',
		":)": 'icon_smile',
		":-)": 'icon_smile',
		";)": 'icon_wink',
		";-)": 'icon_wink'
	};
	
	function escapeSmiley(selector)
	{ 
		return selector.replace(/([#;&,\.\+\*~'\:"\!\^\$\[\]\(\)\=>\|\/])/g, '\\$1');
	}

	function convertSmiliesToImagePath()
	{
		$.each(smilies, function(smiley, path)
		{
			smilies[smiley] = image_path + smilies[smiley] + image_extension;
		});
	}

	function findSmiliesAndReplaceWithImages()
	{
		$.each(elementsWithPossibleSmiliesInThem, function(i, ewpsit)
		{
			$.each(smilies, function(smiley, path)
			{
				var regex = new RegExp(escapeSmiley(smiley));
				$(ewpsit, $('#content')).filter(function()
				{
					return regex.test($(this).text());
				}).each(function()
				{
					var content = $(this).html();
					content = content.replace(regex, '<img src = "' + path + '" />');
					$(this).html(content);
				});
			});			
		});
	}
	
	$(document).ready(function()
	{
		convertSmiliesToImagePath();
		findSmiliesAndReplaceWithImages();
	});
})(jQuery);
