jQuery.fn.outerHTML = function(s) {
	return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html();
}

$(document).ready(function(){
	/* ecard functions */

	$("div.cardOptions").hover(
		function(){
			$(this).find("h3").css({backgroundPosition: "0px -24px"});
			$(this).find("a.ecardThumb").css({backgroundPosition: "0px -132px"});
		},
		function(){
			$(this).find("h3").css({backgroundPosition: "0px 0px"});
			$(this).find("a.ecardThumb").css({backgroundPosition: "0px 0px"});
			$("div.ecardPreview").hide();
		}
	);

	$("div#card1").hover(function(){$("div#previewCard1").fadeIn(250);},function(){});
	$("div#card2").hover(function(){$("div#previewCard2").fadeIn(250);},function(){});
	$("div#card3").hover(function(){$("div#previewCard3").fadeIn(250);},function(){});
	$("div#card4").hover(function(){$("div#previewCard4").fadeIn(250);},function(){});
	$("div#card5").hover(function(){$("div#previewCard5").fadeIn(250);},function(){});

	$("select#total_recipients").change(update_recipients);

	/* click function for entire cardOptions div */
	$("div.cardOptions").each(
		function() {
			var id = this.id.replace("card", "").replace("template", "");
			$(this).click(function(){self.location = "build-a-card.php?card_template_id=" + id; return false;})
		}
	);
	init_swap_text_boxes();

	$("a#btnPreviewEcard").click(previewCard);
	$("a#btnSendEcard").click(function(){
		showSending();
		document.forms["create_card"].submit(); return false;
	});
});

function previewCard()
{
	if ($("input#is_custom_card").val() == 1)
	{
		showLoading();
		previewCustomCard();
	}
	else
	{
		showLoading();
		previewStandardCard();
	}
	return false;
}

function previewCustomCard()
{
	var form = document.forms["create_card"];
	form.action = URL_ROOT + "send-an-ecard/preview-validate.php";
	form.target = "formPreviewFrame";
	form.submit();
}

function handleCustomPreview()
{
	var raw_html = $('iframe:first').contents()[0].documentElement.innerHTML;
	handlePreviewValidation(raw_html);
}

function previewStandardCard()
{
	$("ul#cardErrorList").hide();
	var acceptedTerms = ($("input#accepted_terms:checked").length > 0) ? 1 : 0;
	$.post(URL_ROOT + "send-an-ecard/preview-validate.php", {
		card_id: $("input#card_id").val(),
		card_template_id: $("input#card_template_id").val(),
		message: $("textarea#message").val(),
		recipient1: $("input#recipient1").val(),
		recipient1_email: $("input#recipient1_email").val(),
		sender: $("input#sender").val(),
		sender_email: $("input#sendersEmail").val(),
		accepted_terms: acceptedTerms
		}, function (data){handlePreviewValidation(data);}
	);
}

function handlePreviewValidation(data)
{
	document.forms["create_card"].action = URL_ROOT + "send-an-ecard/build-a-card.php";
	document.forms["create_card"].target = "";
	if (data.indexOf("card:") > -1)
	{
		var pattern = /card\:(\d+)/;
		var matches = pattern.exec(data);
		if (null == matches)
		{
			return false;
		}
		var card_id = matches[1];
		$("input#card_id").val(card_id);
		tb_show(null, URL_ROOT + "send-an-ecard/preview.php?card_id=" + card_id + "&keepThis=true&TB_iframe=true&width=900&modal=true", false);
		return false;
	}
	var errors = data.split("|");
	var errorList = $("ul#cardErrorList");
	errorList.empty();
	for (var i = 0; i < errors.length; i++)
	{
		errorList.append("<li>" + errors[i] + "</li>");
	}
	errorList.show();
	hideLoading();
	hideSending();
	$.scrollTo(errorList, 900);
}

function update_recipients()
{
	var recipient_box = $("div#recipientBox");
	var requested_count = $(this).val();
	var current_count = $("div#recipientBox div").length;

	var difference = requested_count - current_count;

	// add recipients case
	if (difference > 0)
	{
		var row = $("div#cloneForRecipients").outerHTML();
		for (var i = 0; i < difference; i++)
		{
			var new_row = row.replace(/recipient1/g, "recipient" + (current_count + i + 1)).replace(/ id="cloneForRecipients"/, "");
			recipient_box.append(new_row);
		}
		init_swap_text_boxes();
		$("div#recipientBox div:gt(" + (current_count-1) + ") input.recipientNameInput").val("Recipient's Name");
		$("div#recipientBox div:gt(" + (current_count-1) + ") input.recipientEmailInput").val("Recipient's Email");
		return;
	}
	// remove recipients case
	if (difference < 0)
	{
		$("div#recipientBox div:gt(" + (requested_count-1) + ")").remove()
	}
	init_swap_text_boxes();
}


/* remove input value onfocus / reset back to default onblur */
var swap_text_boxes = [];

function init_swap_text_boxes(){
  //Store the default value for each box
  $('input[type=text][value].swaptextbox').each(function() {
    swap_text_boxes[$(this).attr('id')] = $(this).attr('value');
  });
  //Add focus and blur events to set or clear the value
  $('input[type=text][value].swaptextbox').bind('focus', function() {
    if($(this).val() == swap_text_boxes[$(this).attr('id')]) {
      $(this).val('');
    }
  });
  $('input[type=text][value].swaptextbox').bind('blur', function() {
    if($(this).val() == '') {
      $(this).val(swap_text_boxes[$(this).attr('id')]);
    }
  });
}

