jQuery(document).ready(function($){
	showBox($);
	
	$(".greet_box_close a").click(function(e){
		e.preventDefault();
		$(this).parents(".greet_box").slideUp("fast", function(){
			$(this).remove()
		});
	});
});

function showBox($)
{
	// check if the referrer is set
	if (!document.referrer) return;

	var referrer = document.referrer.replace(new RegExp(/^http:\/\//i), "");
	referrer = referrer.replace(new RegExp(/^www\./i), "");
	if (isExcluded(referrer, $)) return;
		
	referrer = $.base64Encode(referrer.replace(new RegExp(/\/(.*)/), ""));
	if (!rdetector_entries[referrer]) return;
	
	box = generateMessage(referrer, $);
	if ($(".rdetector_placeholder_special").length == 1)
	{
		// the template tag has highest priority
		$(".rdetector_placeholder_special").replaceWith(box);
		return;
	}
	
	if ($(".rdetector_placeholder_before").length == 1) // fix the bug when multiple holders are there (length = 1 ensures we have only one post)
	{
		// second priority goes to the "auto add" settings
		if ((rdetector_options["rdetector_add_to_every_post"] == "yes" && $("#rdetector_post_page").val() == "post") || (rdetector_options["rdetector_add_to_every_page"] == "yes" && $("#rdetector_post_page").val() == "page"))
		{
			$(".rdetector_placeholder_" + rdetector_options["rdetector_message_position"]).replaceWith(box);
		}
		return;
	}

	// lowest priority goes to the custom tag inside the post
	$(".rdetector_placeholder").replaceWith(box);
}

function generateMessage(referrer, $)
{
	var message = $.base64Decode(rdetector_entries[referrer]["message"]);
	var icon = $.base64Decode(rdetector_entries[referrer]["icon"]);
	
	if ($("#rdetector_data").length == 0)
	{
		// only {url} and {title} is available
		message = message.replace("{url}", document.location).replace('{title}', document.title);
	}
	else
	{
		var data = $("#rdetector_data").val().split(",");
		for(i = 0; i < data.length; i++)
		{
			var pair = data[i].split(":");
			message = message.replace("{" + pair[0] + "}", $.base64Decode(pair[1]));
		}
	}
	
	if (rdetector_options["rdetector_close_icon"] != "yes")
	{
		message = '<div class="greet_box"><div class="greet_text"><img class="greet_icon" src="' + icon + '" alt="" />' + message + '</div><div style="clear:both"></div></div>';
	}
	else
	{
		message = '<div class="greet_box"><div class="greet_text"><img class="greet_icon" src="' + icon + '" alt="" />' + message + '</div><div class="greet_box_close"><a href="#">X</a></div><div style="clear:both"></div></div>';
	}
	
	return message;
}

function isExcluded(referrer, $)
{
	if (!rdetector_options["rdetector_excluded_urls"]) return false;
	var urls = $.base64Decode(rdetector_options["rdetector_excluded_urls"]).split(",");
	for(i = 0; i < urls.length; i++)
	{
		if (referrer.toLowerCase().indexOf(urls[i].toLowerCase()) == 0) return true;
	}
	return false;
}