/* Cancelled Purchases */
function attachPurchaseWatcher()
{
	// only attach when we're on payment screen
	var notifyOnAbandon = false;
	if (window.location.href.indexOf("cart.php") > -1 && 
	(window.location.search.indexOf("paymentid=") > -1 || window.location.search.indexOf("mode=checkout") > -1))
	{
		notifyOnAbandon = true;
	}
	if (!notifyOnAbandon)
	{
		return;
	}
	
	// attach to links that don't say Submit | Login/ aren't .ButtonLink
	$("a").each(
		function() 
		{
			var oLink = $(this);
			var text = oLink.text();
			if (oLink.hasClass("ButtonLink") || oLink.hasClass("ignoreAbandon") 
			|| text.indexOf("ubmit") > -1 || text.indexOf("ogin") > -1)
			{
				return;
			}
			oLink.click(alertAbandonedPurchase);
		}
	);
}

function alertAbandonedPurchase()
{
	$.post("/forms/abandoned-purchases.php", {check: "yes", email: userEmail});
}

/* Return Policy & Form */
function attachReturnFormActions()
{
	$("a#returnPolicyDisplay").click(showReturnContent);
	$("form#returns").submit(handleReturnSubmission);
	$("div.returnItemDetails input.returnCloneTrigger").change(cloneReturnItemInfo);
	$("a.btnSaleClearance").click(showReturnContent);
	$("a.returnPolicyTrigger").click(showReturnContent);
}

function showReturnContent()
{
	var control = $("a#returnPolicyDisplay");
	$("div#returnForm").toggle();
	$("div#returnPolicy").toggle();
	var linkDisplay = (control.text() == "Return Policy") ? "Return Form" : "Return Policy";
	control.text(linkDisplay);
	return false;
}

function showReturnForm()
{
	$("div#returnPolicy").hide();
	$("div#returnForm").show();
}

function showReturnPolicy()
{
	$("div#returnForm").hide();
	$("div#returnPolicy").show();
}

var nextRow = 1;
function cloneReturnItemInfo()
{
	var STOP_CLONING_THRESHOLD = 7;
	if ($("div.returnItemDetails").length == STOP_CLONING_THRESHOLD)
	{
		return;
	}
	var cloner = $("div#returnItemsPrototype");
	var newRow = "<div class=\"returnItemDetails\">" + cloner.html().replace(/1/g, nextRow + 1) + "</div>";
	$("div#returnItemsContainer").append(newRow);
	$("div.returnItemDetails input.returnCloneTrigger").change(cloneReturnItemInfo);
	
	// put focus in first input of new item
	var focusPoint = 3 * nextRow;
	$("div#returnItemsContainer input:eq(" + focusPoint + ")").get(0).focus();
	
	// hide all constrol sets but last one
	$("div.returnControls").hide();
	nextRow++; // updating GLOBAL
	$("div.returnItemDetails:last :input").val("");
	$("div#returnControlSet" + nextRow).show();
}

function deleteReturnItemRow(oLink)
{
	var controls = $("div.returnItemDetails:visible");
	var length = controls.length;
	if (length < 2)
	{
		return;
	}
	controls.eq(length-1).hide();
	nextRow--; // updating GLOBAL
	$("div.returnItemDetails").eq(length-2).children("div.returnControls").show();
}

function handleReturnSubmission()
{
	var formValues = {
		check: "yes", 
		name: $("input#returnName").val(),
		order: $("input#returnOrderNumber").val(),
		email: $("input#returnEmail").val(),
		phone: $("input#returnPhone").val(),
		reason: $("textarea#returnReason").val()
	};
	for (var i = 1; i <= $("div.returnItemDetails").length; i++)
	{
		formValues["manufacturer" + i] = $("input#returnManufacturer" + i).val();
		formValues["style" + i] = $("input#returnStyle" + i).val();
		formValues["size" + i] = $("input#returnSize" + i).val();
	}
	$.post("/forms/returns.php", formValues, returnFormCallback);
	return false;
}

function returnFormCallback(data)
{
	if (data.length > 0)
	{
		$("div#returnFormFeedback").html(data);
		
		if (data == "Your return request has been sent")
		{
			$("form#returns").hide();
			$("div#returnPolicy").hide();
			$("div#returnFormFeedback").fadeIn(2500, tb_remove)
		}
		else
		{
			$("div#returnFormFeedback").show();
			$("div#TB_ajaxContent").animate({scrollTop: 0}, 1000);
		}
	}
}

/* Discounts */
$(document).ready(function()
{
	$("#threeHundredDiscount a").click(
		function() {$(this).parent().fadeOut("slow");}
	);
	$("a.deadLink").click(
		function () {return false;}
	);
});

/* Menu Scroller */
var SCROLL_SPEED_ADJUSTMENT = 5;
function scrollManufacturersUp()
{
	var scrollBox = $("div#lyr1");
	var pullTo = scrollBox.height();
	var timespan = pullTo * SCROLL_SPEED_ADJUSTMENT;
	pullTo -= 160;
	scrollBox.animate({marginTop: "-" + pullTo + "px"}, timespan);
}

function scrollManufacturersDown()
{
	var scrollBox = $("div#lyr1");
	var pullTo = scrollBox.height();
	var timespan = pullTo * SCROLL_SPEED_ADJUSTMENT;
	scrollBox.animate({marginTop: "0px"}, timespan);
}

function attachManufacturerScrolls()
{
	$("div#up a.uparw").mouseover(scrollManufacturersDown);
	$("div#down").mouseover(scrollManufacturersUp);
	
	$("div#up a.uparw").mouseout(function() {$("div#lyr1").stop();});
	$("div#down").mouseout(function() {$("div#lyr1").stop();});
}

/* Email Subscription Form */
function attachSubscriptionEvents()
{
	$("#btnSubscribeSubmit").click(handleSubscriptionSubmission);
}

function handleSubscriptionSubmission()
{
	var formValues = {
		check: "yes", 
		name: $("input#subName").val(),
		email: $("input#subEmail").val()
	};
	$.post("/forms/email-signup.php", formValues, subscriptionFormCallback);
	return false;
}

function subscriptionFormCallback(data)
{
	if (data.length > 0)
	{
		$("div#subscribeFormFeedback").html(data);
		
		if (data == "Your subscription request has been processed")
		{
			$("form#emailSubscribe").hide();
			$("div#subscribeFormFeedback").fadeIn(2500, tb_remove)
		}
		else
		{
			$("div#subscribeFormFeedback").show();
		}
	}
}

// attach load events
$(document).ready(attachPurchaseWatcher);
$(document).ready(attachReturnFormActions);
$(document).ready(attachManufacturerScrolls);
$(document).ready(attachSubscriptionEvents);
