﻿// global vars
var SlideArray = null;
var SlideArrayCount = 0;
var t = null;

$(document).ready(function() {

    $("form input.submitBtn").live("click", function() {
        submitForm($("input[name = 'formentity']").val());
        return false;
    });

    // navigation dropdowns
    var dropIt;
    var closeIt;
    $("#navigation li").hover(function() {
        clearTimeout(closeIt);
        var thisThing = $(this);
        var showDropdown = function() { thisThing.children("div.dropdown:hidden").slideDown(); };
        dropIt = setTimeout(showDropdown, 150);
        $(this).siblings("li").children("div.dropdown").slideUp();
    }, function() {
        clearTimeout(dropIt);
        var thisThing = $(this);
        var hideDropdown = function() { thisThing.children("div.dropdown").slideUp(); };
        closeIt = setTimeout(hideDropdown, 300);
    });

    // Set active section in main nav
    $("#navigation li").each(function() {
        var navName = $(this).attr("section");
        if ($("#pageWrap").hasClass(navName)) {
            $(this).addClass("active");
        }
    });

    // Set active section in side nav
    $("#leftCol a").each(function() {
        var pageName = $(this).attr("page");
        if ($("#pageWrap").hasClass(pageName)) {
            $(this).addClass("active");
        }
    });

    //BUGTracker
    $("#reportBug").live("click", function() {
        serializedForm = "location=" + urlencode(window.location.href);
        var action = "BugReporter.aspx?action=show";
        $.post(action, serializedForm, showBugForm);
    });
    $("form#bugReporter .submit").live("click", function() {
        var serializedForm = $("#bugReporter").serialize();
        var action = "BugReporter.aspx?action=submit";
        $.post(action, serializedForm, showBugForm);
        $("form#bugReporter, #bugMask").remove();
    });
    $("form#bugReporter #levelID option").live("click", function() {
        $("form#bugReporter #levelID").attr("style", $(this).attr("style"));
    });
    $("form#bugReporter .bugClose").live("click", function() {
        $("form#bugReporter, #bugMask").remove();
    });

    // homepage only
    if ($("div#pageWrap").hasClass("home")) {
        slideshow();
    }

    // print window only
    if ($("body").hasClass("print")) {
        window.print();
    }

    /* Clear & Re-Populate Form Fields
    $("input").focus(function() {
    var ex = $(this).attr("example");
    if (ex == $(this).val()) {
    $(this).val("");
    }
    });
    $("input").blur(function() {
    if ($(this).val() == "") {
    $(this).val($(this).attr("example"));
    }
    });*/

});
        
//******************** Functions *************************//

//AJAX FORM SUBMISSIONS
function submitForm(theToken) {
    var f = $("#" + theToken);
    var serializedForm = f.serialize();
    var action = "formsprocessor.aspx";
    $.post(action, serializedForm, webFormHandler);
    return false;
}

function webFormHandler(r) {
    var ra = r.split("||");
    if ((ra[0] == "OK") || (ra[0] == "HasErrors")) {
        if ((ra[2].charAt(0) == "@") && (ra[0] == "OK")) {
            window.location.href = ra[2].substr(1) + "?" + ra[1];
        } else {
            var f = "#" + ra[1]
            $(f).html(ra[2]);
        }
    }
    return false;
}

function ajaxHandler(r) {
    var ra = r.split("||");

    if ((ra[0] == "OK") || (ra[0] == "HasErrors")) {
        switch (ra[1]) {
            case 'getslides':
                SlideArray = ra[2].split("^^");
                break;
        }
    }
    return false;
}

//Bug Reporting
function showBugForm(r) {
    $("form#bugReporter, #bugMask").remove();
    $("body").append(r);

    $("form#bugReporter #levelID option").css({ "color": "white","width":"100%"});
    $("form#bugReporter #levelID option:eq(0)").css({"color": "black", "background-color": "white"});
    $("form#bugReporter #levelID option:eq(1)").css("background-color", "red");
    $("form#bugReporter #levelID option:eq(2)").css("background-color", "orange");
    $("form#bugReporter #levelID option:eq(3)").css("background-color", "gold");
    $("form#bugReporter #levelID option:eq(4)").css("background-color", "blue");
    $("form#bugReporter #levelID option:eq(5)").css("background-color", "green");
    $("form#bugReporter #levelID").attr("style", $("form#bugReporter #levelID option:selected").attr("style"));
}

function slideshow() {
    
    // retrieve array of slide info
    dbAJAX("/scripts/yoddle/ui.aspx?", "action=getSlides", ajaxHandler);

    // initiate timer object
    t = new Timer();
    t.Interval = 50;
    t.Tick = slideshowFade;
    t.Start();
}

function slideshowFade() {

    // after initial loop, lengthen wait
    if (t.Interval < 1000) {t.Stop(); t.Interval = 2000;t.Start(); }

    // fade div1 & reload & show
    $("div.slide#ss1").fadeOut(1500, function() {
        $("div.slide#ss1").html($("div.slide#ss2 div.bgImage").clone());
        $("div.slide#ss1 div.bgImage").css('background', $("div.slide#ss2 div.bgImage").css('background'));
        $("div.slide#ss1").show();
    });

    // reload div2
    var nextSlide = SlideArray[SlideArrayCount].split("^");
    var path = 'url(' + nextSlide[0] + ') no-repeat scroll 50% 50%';    
    $("div.slide#ss2 div.bgImage").css('background', path);
    if (nextSlide.length = 2) { $("div.slide#ss2 h4").html(nextSlide[1]); }
    
    // increment counter
    SlideArrayCount++;
    if (SlideArrayCount == (SlideArray.length)) {
        t.Stop();               // don't loop
        //SlideArrayCount = 0;  // loop
    }
};



