﻿var fade_transition = 1000;
var fade_pause = 5000;

$(document).ready(function(){
    
    var blurbs = [
      "quote_00.jpg",
      "quote_10.jpg",
      "quote_01.jpg",
      "quote_09.jpg",
      "quote_02.jpg",
      "quote_03.jpg",
      "quote_04.jpg",
      "quote_05.jpg",
      "quote_06.jpg",
      "quote_07.jpg",
      "quote_08.jpg"
    ];
    
    // Hide default homepage quote
    var container = $("#intro_home");
    container.css({background: "none"});
    
    // Setup fade rollover for the preorder button
    makeRollover("callout_indiebound_highlight", "callout_indiebound");
//    makeRollover("callout_order_highlight", "callout_order");
    
    // Setup fade rollover for the hanging tree button
    makeRollover("callout_hangingtree_highlight", "callout_hangingtree");
    
    // Setup fade rollover for the starvation lake button
    makeRollover("callout_starvationlake_highlight", "callout_starvationlake");
    
    // Setup fade rollover for the prologue download button
    makeRollover("callout_excerpt_highlight", "callout_excerpt");
    
    // Setup fade rollover for the mailing list button
//    makeRollover("callout_email_list_highlight", "callout_email_list");
    
    // Setup fade rollover for the egg pie recipe button
    makeRollover("callout_egg_pie_recipe_highlight", "callout_egg_pie_recipe");
    
    // Setup rollover & click events for Domenica Marchetti button
    $("#callout_egg_pie_recipe a span").hover(
      function() {
        $(this).addClass("hover");
      },
      function() {
        $(this).removeClass("hover");
      }
    ).click(function() {
      window.open("http://www.domenicacooks.com/");
      return false;
    });
    
    // Create blurbs
    var curr_quote = 0;
    //var curr_quote = parseInt(getCookie("start_quote"), 10);
    if (isNaN(curr_quote) || curr_quote < 0 || curr_quote >= blurbs.length)
        curr_quote = 0;
    
    for (var i=0; i<blurbs.length; i++) {
        var div = document.createElement("div");
        div.className = "homepage_quote";
        div.id = "homepage_quote_" + i;
        $(div).css({
            backgroundImage: "url('_images/homepage/" + blurbs[i] + "')",
            backgroundRepeat: "no-repeat",
            opacity: (i == curr_quote ? 1.0 : 0.0)
        });
        $(div).appendTo(container);
    }
    
    // Remove the no-script copy
    $("#home_text").remove();
    
    var fade_out_quote = null;
    var fade_in_quote = null;
    var blurb_interval_function = function() {
        fade_out_quote = $("#homepage_quote_" + curr_quote);
        curr_quote = (curr_quote == blurbs.length - 1 ? 0 : curr_quote + 1);
        fade_in_quote = $("#homepage_quote_" + curr_quote);
        
        // Move fade-in item on top of fade out item
        fade_in_quote.css({opacity: 0.0});
        fade_in_quote.appendTo(container);
        
        // Perform animation
        fade_in_quote.animate({opacity: 1.0}, fade_transition);
        
        // Update cookie
        setCookie("start_quote", curr_quote, 365);
    };
    
    var blurb_interval = setInterval(blurb_interval_function, fade_transition + fade_pause);
    
    // Setup next blurb link
    $("#next_blurb_link").bind("click", function() {
        // Stop animations & interval
        clearInterval(blurb_interval);
        if (fade_out_quote != null) {
            fade_out_quote.stop();
            fade_out_quote.css({opacity: 0.0});
        }
        if (fade_in_quote != null) {
            fade_in_quote.stop();
            fade_in_quote.css({opacity: 0.0});
        }
        
        // Increment quote number and display
        curr_quote = (curr_quote == blurbs.length - 1 ? 0 : curr_quote + 1);
        fade_in_quote = $("#homepage_quote_" + curr_quote);
        fade_out_quote = null;
        fade_in_quote.css({opacity: 1.0});
        
        // Update cookie
        setCookie("start_quote", curr_quote, 365);
        
        // Restart interval
        blurb_interval = setInterval(blurb_interval_function, fade_transition + fade_pause);
        
        return false;
    });
    
    // Mailing list
    var mailing_list_backdrop = $("#mailing_list_backdrop");
    var mailing_list_form = $("#mailing_list_form");
    var mailing_list_form_form = $("#mailing_list_form form");
    
    $("#callout_email_list a").click(function() {
        this.blur();
        mailing_list_backdrop.css({
            opacity: 0.0,
            display: "block",
            width: $("body").width(),
            height: $("body").height()
        }).animate({opacity: 0.5}, 300);
        mailing_list_form.css({
            opacity: 0.0,
            display: "block",
            top: (($(window).height() - mailing_list_form.height()) / 2) + $(window).scrollTop(),
            left: ($(window).width() - mailing_list_form.width()) / 2
        }).animate({opacity: 1.0}, 300);
        
        return false;
    });
    
    $("#mailing_list_cancel a").click(function() {
        this.blur();
        mailing_list_backdrop.animate({opacity: 0.0}, 300, function() {
            mailing_list_backdrop.css({
                display: "none"
            });
        });
        mailing_list_form.animate({opacity: 0.0}, 300, function() {
            mailing_list_form.css({
                display: "none"
            });
        });
        
        return false;
    });
    
    $("#mailing_list_submit").click(function() {
        mailing_list_form_form.submit();
        return false;
    });
    
    $("#mailing_list_name").focus(function() {
        this.value = "";
    });
    $("#mailing_list_name").blur(function() {
        if (this.value == "")
            this.value = "Name";
    });
    
    $("#mailing_list_email").focus(function() {
        this.value = "";
    });
    $("#mailing_list_email").blur(function() {
        if (this.value == "")
            this.value = "E-mail address";
    });
    
    mailing_list_form_form.submit(function() {
        if (($("#mailing_list_name").val() == "Name" || $("#mailing_list_email").val() == "E-mail address") ||
            ($("#mailing_list_name").val() == "" || $("#mailing_list_email").val() == "")) {
            alert("Please enter your name and email address to join the Bryan Gruley mailing list.");
            return false;
        }
        
        $.ajax({
            url: "mailing_list.php",
            data: mailing_list_form_form.serialize(),
            success: function(data, status) {
                alert("Thank you for joining the Bryan Gruley mailing list!");
                $("#mailing_list_cancel a").click();
            },
            error: function(xhr, status, err) {
                alert("We're sorry, but we couldn't process your request at this time.  Please try again later.");
                window.location.href = "./";
            }
        });
        return false;
    });
    
    // Embed SWFs
    swfobject.embedSWF(
      "_swf/hanging_tree_prologue.swf",
      "prologue_swf",
      "190",
      "30",
      "8",
      null,
      null,//flashvars,
      {
        wmode: "transparent"
      },//params,
      null,//attributes,
      null
    );
});

function makeRollover(divId, containerID) {
    var div = document.createElement("div");
    div.id = divId;
    
    $(div).appendTo("#" + containerID + " a");
    $(div).css({opacity: 0.0});
    
    $("#" + containerID).hover(
        function() {
            var div = $("#" + divId);
            div.stop();
            div.animate({opacity: 1.0}, 150);
        },
        function() {
            var div = $("#" + divId);
            div.stop();
            div.animate({opacity: 0.0}, 400);
        }
    );
}

function getCookie(c_name)
{
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) { 
            c_start = c_start + c_name.length+1; 
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1)
                c_end = document.cookie.length;
            
            return unescape(document.cookie.substring(c_start, c_end));
        } 
    }
    
    return "";
}

function setCookie(c_name, value, expiredays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
