YUI().use("node", "event", "io", "node-menunav", "overlay", function(Y) {
	var index = {
		
		ioSubscribe: null,
		
		init: function()
		{
			Y.one("#subscribe_submit").set("disabled", false);
			
			Y.one("#myContent").setStyle("display", "block");
			index.subscribeOverlay = new Y.Overlay({
				srcNode: "#myContent",
				visible: false,
				width: "35em",
				centered: true
			});
			index.subscribeOverlay.render();
			
			Y.one("#subscribe").on("click", function(e) {
				var overlay = Y.one("#overlay");
				e.halt();
				overlay.setStyles({ height: Y.DOM.docHeight() + "px", display: "block" });
				index.subscribeOverlay.centered();
				index.subscribeOverlay.show();
				Y.one("#subscribe_email").focus();
			});
			
			Y.one("#subscribe_cancel").on("click", function(e) {
				if (index.ioSubscribe !== null)
				{
					index.ioSubscribe.abort();
				}
				index.subscribeOverlay.hide();
				Y.one("#overlay").setStyle("display", "none");
				index.resetSubscribe();
			});
			
			Y.one("#subscribe_submit").on("click", function(e) {
				var email = Y.one("#subscribe_email").get("value");
				if (!/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i.test(email))
				{
					return false;
				}
				var config = {
					method: "post",
					data: "email=" + email + "&lang=" + language,
					on: {
						success: index.onEmailSubscribeSuccess,
						failure: index.onEmailSubscribeFailure
					}
				};
				this.set("disabled", true);
				Y.one("#subscribe_loading").setStyle("visibility", "inherit");
				index.ioSubscribe = Y.io("../xhr/subscribe.php", config);
			});
		},
		
		resetSubscribe: function()
		{
			Y.one("#subscribe_email").set("value", "");
			Y.one("#subscribe_submit").set("disabled", false);
			Y.one("#subscribe_cancel").set("value", language == 0 ? "Cancel" : "Annuler");
			Y.one("#subscribe_loading").setStyle("visibility", "hidden");
			Y.one("#subscribe_message").set("innerHTML", "");
		},
		
		onEmailSubscribeSuccess: function(i, response)
		{
			index.ioSubscribe = null;
			index.resetSubscribe();
			if (response.responseText == "-2")
			{
				Y.one("#subscribe_message").set("innerHTML", "<p class=\"Success\">" + (language == 0 ? "Thank you, that email is already registered to receive our newsletter" : "Merci, cette addresse courriel est d&eacute;j&agrave; enregistrée pour re&ccedil;evoir des nouvelles") + "</p>");
				return;
			}
			Y.one("#subscribe_message").set("innerHTML", "<p class=\"Success\">" + (language == 0 ? "Thank you, your subscription was successful. Press the \"Close\" button to close this window." : "Merci d'enregistrer avec nous. Veuillez appuyez sur \"Fermer\" pour parvenir de fermer cette fen&ecirc;tre.") + "</p>");
			Y.one("#subscribe_cancel").set("value", language == 0 ? "Close" : "Fermer");
		},
		
		onEmailSubscribeFailure: function(i, response)
		{
			if (response.statusText == "abort")
			{
				return;
			}
			index.resetSubscribe();
			Y.one("#subscribe_message").set("innerHTML", "<p class=\"Error\">" + (language == 0 ? "We encountered an error receiving your subscription" : "Il a &eacute;t&eacute; un probl&egrave;me en communication avec notre serveurs") + "</p>");
		}
	};
	Y.on("domready", index.init);
});
