////////////////////////////////////////////////////////////
//
//		@Package:		com.bringrr.*
//		@Description:	
//		@Author:		Dustin ( code@elementpod.com )
//		@Date:			June 17, 2010
//		@Version:		0.0.1
//
////////////////////////////////////////////////////////////


var BRINGRR = {};

BRINGRR.Application = function() {
	
	var utils;
	var navigation;
	var signup;
	
	function initFonts() {
		//Cufon.replace(".TexGyreAdventor-Regular");
		Cufon.replace("h1");
		Cufon.replace("div.home-subtitle p");
		Cufon.replace("div#home-purchase-price p");
		Cufon.replace("ul#footer-menu li a");
	}
	
	function initPage() {
		var contents = $(".common-container-contents");
		var pn = utils.getPageName();
		if (pn == "product") {
			$("#gallery").easySlider( {
				orientation: "vertical",
				continuous: true,
				numeric: true,
				numericId: "gallery-navigation"
			});
			contents.css("padding", "0px")
				.css("height", "375px")
				.css("top", "1px")
				.css("left", "1px");
			
			initProduct();
		}
		else if (pn == "about") {
			initAbout();
		}
		else if (pn == "legal") {
			initLegal();
		}
		else if (pn == "faq") {
			initFaq();
		}
		
		
		if (pn != "index" && pn != "") {
			var h = contents.height();
			var p = contents.css("padding-top").split("px")[0];
			var pn = parseInt(p)*2;
			$(".common-container").css("height", h+pn+"px");
			$("#page-footer").css("top", h+pn+"px");
		}
		else if (pn == "index" || pn == "") {
			$("#home-purchase-button").hover( onHomePurchaseOver, onPurchaseOut )
				.click( function() {
					window.location = "http://bringrr.myshopify.com/";
				});
		}
	}
	
	function initProduct() {
		var section = utils.getUrlParams("p");
		$("#product-faq-button").hover( onFaqOver, onFaqOut )
			.click( function() {
				window.location = "faq.php?s="+section;
			});
		
		$("#product-purchase-button").hover( onProductPurchaseOver, onPurchaseOut )
			.click( function() {
				window.location = "http://bringrr.myshopify.com/";
			});
	}
	
	function initAbout() {
		var section = utils.getUrlParams("s");
		var team = $("#team-button");
		var partners = $("#partners-button");
		var intellectual = $("#intellectual-button");
		
		if (section == "team") {
			team.css("background-position", "0px -28px");
		}
		else if (section == "partners") {
			partners.css("background-position", "0px -28px");
		}
		else if (section == "intellectual") {
			intellectual.css("background-position", "0px -28px");
		}
		
		team.click( function() {
			window.location = "about.php?s=team";
		}).hover( onSectionOver, onSectionOut );
		partners.click( function() {
			window.location = "about.php?s=partners";
		}).hover( onSectionOver, onSectionOut );
		intellectual.click( function() {
			window.location = "about.php?s=intellectual";
		}).hover( onSectionOver, onSectionOut );
	}
	
	function initLegal() {
		var section = utils.getUrlParams("s");
		var privacy = $("#privacy-button");
		var terms = $("#terms-button");
		var warranty = $("#warranty-button");
		
		if (section == "privacy") {
			privacy.css("background-position", "0px -28px");
		}
		else if (section == "terms") {
			terms.css("background-position", "0px -28px");
		}
		else if (section == "warranty") {
			warranty.css("background-position", "0px -28px");
		}
		
		privacy.click( function() {
			window.location = "legal.php?s=privacy";
		}).hover( onSectionOver, onSectionOut );
		terms.click( function() {
			window.location = "legal.php?s=terms";
		}).hover( onSectionOver, onSectionOut );
		warranty.click( function() {
			window.location = "legal.php?s=warranty";
		}).hover( onSectionOver, onSectionOut );
	}
	
	function initFaq() {
		var section = utils.getUrlParams("s");
		var classic = $("#classic-button");
		var charger = $("#charger-button");
		if (section == "classic") {
			classic.css("background-position", "0px -28px");
		}
		else if (section == "charger") {
			charger.css("background-position", "0px -28px");
		}
		
		classic.click( function() {
			window.location = "faq.php?s=classic";
		}).hover( onSectionOver, onSectionOut );
		charger.click( function() {
			window.location = "faq.php?s=charger";
		}).hover( onSectionOver, onSectionOut );
	}
	
	function onSectionOver() {
		$(this).css("background-position", "0px -28px");
	}
	
	function onSectionOut() {
		if (!$(this).hasClass("selected-section")) {
			$(this).css("background-position", "0px 0px");
		}
	}
	
	function onLogoClick() {
		window.location = "index.php";
	}
	
	function onFaqOver() {
		$(this).css("background-position", "0px -22px");
	}
	
	function onFaqOut() {
		$(this).css("background-position", "0px 0px");
	}
	
	function onProductPurchaseOver() {
		$(this).css("background-position", "-61px 0px");
		//$(this).animate( {"left":"651px" }, 200, "swing" );
	}
	/*
	function onProductPurchaseOut() {
		$(this).animate( {"left":"641px" }, 200, "swing" );
	}
	*/
	function onPurchaseOut() {
		$(this).css("background-position", "0px 0px");
	}
	
	function onHomePurchaseOver() {
		$(this).css("background-position", "0px -56px");
	}
	
	return {
		initialize: function() {
			navigation = new BRINGRR.Navigation().initialize();
			signup = new BRINGRR.EmailSignup().initialize();
			utils = new ELEMENTPOD.Utils();
			
			initFonts();
			initPage();
			
			$("#logo").click( onLogoClick );
			$("#navigation-logo").click( onLogoClick );
		}
	}
}

BRINGRR.Navigation = function() {
	
	var storeURL = "http://bringrr.myshopify.com/";
	var aboutURL = "about.php";
	
	function onButtonOver() {
		var id = $(this).attr("id");
		if (id !== "navigation-products") {
			closeProductMenu();
		}
		$(this).css("background-position", "0px -57px")
			.animate( { "margin-top":"-10px" }, 250, "swing");
	}
	
	function onButtonOut() {
		var btn = $(this);
		if (!btn.hasClass("active-menu-item")) {
			btn.css("background-position", "0px 0px")
				.animate( { "margin-top":"-1px" }, 300, "swing");
		}
	}
	
	function onButtonClick() {
		var id = $(this).attr("id");
		if (id === "navigation-store") {
			$(this).trigger("mouseout");
			window.location = storeURL;
		}
		else if (id === "navigation-about") {
			$(this).trigger("mouseout");
			window.location = aboutURL;
		}
		else if (id === "navigation-products") {
			$(this).addClass("active-menu-item");
			showProductMenu();
		}
	}
	
	function showProductMenu() {
		$("div#navigation-product-menu").animate( { "bottom":"106px" }, 400, "swing" );
	}
	
	function closeProductMenu() {
		var btn = $("#navigation-products");
		if (btn.hasClass("active-menu-item")) {
			btn.removeClass("active-menu-item");
			btn.css("background-position", "0px 0px")
				.animate( { "margin-top":"-1px" }, 300, "swing");
		}
		$("div#navigation-product-menu").delay(300).animate( { "bottom":"5px" }, 400, "swing" );
	}
	
	function onProductMenuOver() {
		$(this).stop( true );	// Clear the delay for animation.
		showProductMenu();
	}
	
	function onProductMenuOut() {
		closeProductMenu();
	}
	
	function onProductClick() {
		closeProductMenu();
	}
	
	return {
		initialize: function() {
			$(".navigation-button").hover( onButtonOver, onButtonOut )
				.click( onButtonClick );
			
			$("div#navigation-product-menu").hover( onProductMenuOver, onProductMenuOut );
			$(".product-menu-product a").click( onProductClick );
		}
	}
}

BRINGRR.EmailSignup = function() {
	
	function onSubmitOver() {
		$(this).css("background-position", "0px -20px");
	}
	
	function onSubmitOut() {
		$(this).css("background-position", "0px 0px");
	}
	
	function onSubmitClick( e ) {
		e.preventDefault();
		submitForm();
	}
	
	function submitForm() {
		var d = "email="+$("input:text[name=email]").val();
		
		$("input:text[name=email]").val( "Sending..." );
		
		$.ajax( { url:"includes/mailer.php",
			type:"POST",
			dataType:"json",
			data: d,
			cache: false,
			success: onFormSuccess
		});
	}
	
	function onFormSuccess( data ) {
		
		if (window.console) {
			console.log("data: " + data);
		}
		
		if (data.success == "true") {
			$("input:text[name=email]").val( "Thank you" );
		}
		else {
			$("input:text[name=email]").val( "Failed to send" );
		}
	}
	
	return {
		initialize: function() {
			$("input#submit-button").hover( onSubmitOver, onSubmitOut )
				.click( onSubmitClick );
		}
	}
}
