﻿/// <reference name="MicrosoftAjax.js" />
/// <reference path="jquery-1.4.2.min.js" />

var shareSaveSpend = function() {
	var pub = {};

	pub.displayInfo = function(info) {
		alert(info);
	};

	pub.displayError = function(error) {
		alert(error);
	};

	pub.ajaxRequestFailed = function(error) {
		pub.displayError(error.get_message());
	};

	pub.setHeader = function(activeHeader) {
		var $activeHeader = $("#header ." + activeHeader);
		$activeHeader.addClass("active");
	};

	pub.fixBackground = function() {
		$("#footer").css("background-position", (($("#container").outerHeight() - 2) % 5) + "px 0px");
	};

	pub.setupHeader = function() {
		$("#topNav .drop").each(function() {
			$(this).find("li:not(.top):first").addClass("first");
			$(this).find("li:not(.bottom):last").addClass("last");
		});

		$("#topNav li.navItem").hover(function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); });
	};

	pub.setupNewsletterSubscription = function() {
		$newsLetterSignup = $(".newsletterSignup");
		if ($newsLetterSignup.size() == 0) {
			return;
		}
		$subscribeName = $newsLetterSignup.find(".subscribeName");
		var defaultName = $subscribeName.val();
		$subscribeEmail = $newsLetterSignup.find(".subscribeEmail");
		var defaultEmail = $subscribeEmail.val();
		$subscribeName.focus(function() {
			if ($subscribeName.val() == defaultName) {
				$subscribeName.val("");
			}
		});
		$subscribeName.blur(function() {
			if ($subscribeName.val() == "") {
				$subscribeName.val(defaultName);
			}
		});
		$subscribeEmail.focus(function() {
			if ($subscribeEmail.val() == defaultEmail) {
				$subscribeEmail.val("");
			}
		});
		$subscribeEmail.blur(function() {
			if ($subscribeEmail.val() == "") {
				$subscribeEmail.val(defaultEmail);
			}
		});
		$nameAndEmail = $subscribeEmail.add($subscribeName);
		$nameAndEmail.keyup(function(event) {
			if (event.keyCode == 13) {
				$(".signMeUp").click();
			}
		});
		$newsLetterSignup.find(".signMeUp").click(function(event) {
			event.preventDefault();
			var name = $subscribeName.val();
			var emailAddress = $subscribeEmail.val();
			if (name == "" || name == defaultName) {
				alert("Your name is required.");
			}
			else if (emailAddress == "" || emailAddress == defaultEmail) {
				alert("Your e-mail address is required.");
			}
			else if (!stringHelper.isValidEmail(emailAddress)) {
				alert("Please enter a valid e-mail address.");
			}
			else {
				NewsletterService.Subscribe(name, emailAddress, function(result) {
					if (result == true) {
						$(".signMeUp").fadeOut("slow", function() {
							$(".subscribeMessage.failure").hide();
							$(".subscribeMessage.success").fadeIn("slow");
						});
					}
					else {
						alert("We're sorry but we there was a problem signing you up for the newsletter.");
					}
				}, function(error) {
					alert("We're sorry but we there was a problem signing you up for the newsletter.");
				});
			}
		});
	};

	pub.setupSideBarProduct = function() {
		$("div.sideBarArea .featuredProduct .productImage a[data-addToCart=true]").click(function(event) {
			event.preventDefault();
			window.location = "/Basket.aspx?AddProductId=" + $(this).attr("data-productId");
		});
	};

	pub.setupSearch = function() {
		$topNav = $("#topNav");
		$searchField = $topNav.find(".searchField");
		if ($searchField.size() == 0) {
			return;
		}
		var defaultSearch = $searchField.val();
		$searchField.blur(function() {
			if ($searchField.val() == "") {
				$searchField.val(defaultSearch);
			}
		});
		$searchField.focus(function() {
			if ($searchField.val() == defaultSearch) {
				$searchField.val("");
			}
		});
		$searchField.keyup(function(event) {
			if (event.keyCode == 13) {
				$(".searchFieldButton").click();
			}
		});
		$topNav.find(".searchFieldButton").click(function(event) {
			event.preventDefault();
			window.location = "/SearchResults.aspx?Query=" + $("#topNav .searchField").val();
		});
	};

	pub.cartCount = function(count) {
		$("var.cartCount").html(count);
	};

	return pub;
} ();

$(document).ready(function() {
    shareSaveSpend.fixBackground();
    shareSaveSpend.setupHeader();
    shareSaveSpend.setupNewsletterSubscription();
    shareSaveSpend.setupSideBarProduct();
    shareSaveSpend.setupSearch();

    $("a:external").attr("target", "_blank");

    setTimeout(function() {
    	$("#content .eventInformation .middle, #content .subscribe .middle").equalHeight();
    }, 100);
});

// Creating custom :external selector
$.expr[':'].external = function(obj) {
	return !obj.href.match(/^mailto\:/)
		&& !(obj.href.indexOf("javascript") == 0)
		&& !(obj.href == "#")
        && (obj.hostname != location.hostname);
};

