
(function($, nrt) {

    //variables
    var $container,
        $trackerPopup,
        $trackerMessages;

    //plugin configuration
    var hoverConfig = {
        over: function() { },
        timeout: 0,
        out: function() { },
        sensitivity: 2,
        interval: 100
    };

    //functions
    hoverConfig.over = function() {
        if ($trackerPopup.html().length > 0) {
            $trackerPopup.fadeTo(500, 1);
            $trackerMessages.fadeTo(500, 0.5);
        };
    };

    hoverConfig.out = function() {
        $trackerPopup.fadeTo(500, 0);
        $trackerMessages.fadeTo(500, 1);
    };

    var showTrackerMessage = function(tracker) {
        $container.fadeOut(1000, function() {
            $container.find(".message").html(tracker.message);
            $container.find(".value span").html(tracker.value);
            $container.find(".popup").html(tracker.popup);
            (tracker.popup.length > 0) ? $container.find(".popup-marker").show() : $container.find(".popup-marker").hide();
            (tracker.display == 1 || tracker.display == 5) ? $container.find(".message-time").show() : $container.find(".message-time").hide();
            $(this).slideDown(2000);
        });
    };

    var temptationDataCallbackSuccess = function(data) {
        $trackerPopup = $("#tempation-tracker .popup");
        $trackerPopup.fadeTo(0, 0);
        $trackerMessages = $("#tempation-tracker span").not(".popup");

        data.tracker.pop(); //get rid of the last array item since we know it is a dud
        $container.find(".message-time").html(data.application.daysText + " : " + data.application.hoursText);
        $container.find(".hoverAction").hoverIntent(hoverConfig);
        $container.find(".popup-marker").hoverIntent(hoverConfig);
        showTrackerMessage(data.tracker[0]);

        var i = 0;
        var slideshow = setInterval(function() {
            var val = data.tracker[++i] || data.tracker[i = 0];
            showTrackerMessage(val);
        }, data.application.delay);
    };

    // public function
    var temptations = {
        populateTemptations: function() {
            $container = $("#tempation-tracker");
            if ($container.length > 0) {
                $.ajax({
                    type: "GET",
                    url: "/json/Temptation.aspx?rand=" + (new Date()).getTime(),
                    //url: "/json/Temptation.json.html",
                    dataType: "json",
                    success: temptationDataCallbackSuccess
                });
            }
        }
    };

    $.extend(window.nrt, temptations);

})(jQuery, nrt);

// page ready events
$(document).ready(function() {
    nrt.populateTemptations();
});
