$(document).ready(function() {

    var sessionInterval;
    var interval = 3000000; // set to 50 minutes (application session is set to 60 minutes);

        // set up expired session click event
        $(".session-ended").live("click", function(e) {
            e.preventDefault(); // prevent default behaviour of submit
            $("#track-your-topic-results").hide();
            $("#track-your-topic-results").html("<ul id=\"error\"><li><span class=\"tracker-msg error\">Your session may have ended.<br /><a id=\"refresh-page\">Click here to refresh the page.</a></span></li></ul>");
            $('#track-your-topic-results').fadeIn("slow");
            clearInterval(sessionInterval); // clear the interval
        });

        // set up active session click event
        $('.session-active').live("click", function(e) {
                    $("#track-your-topic-results").ajaxStart(function() {
                        $(this).html('<div id="candy-tracker"><!-- candy cane --></div>');
                        animateCandy("candy-tracker", "-");
                    });
                    e.preventDefault(); // prevent default behaviour of submit
                    var serializedData = $("#trackYourTopicForm").serialize(); // prepare data
                    $.ajax({
                        type: "POST",
                        url: "/ll/track-topic.htm",
                        data: serializedData,
                        success: function(msg) {
                            var result = $(msg).find('#track-your-topic-submit-result').html();
                            $('#track-your-topic-results').html(result);
                            $('#track-your-topic-results').fadeIn("fast");
                        },
                        error: function(msg, textStatus) {
                            alert("Request failed, please retry: " + msg + textStatus);
                        }
                    });
                    clearInterval(sessionInterval); // clear the current interval
                    sessionInterval = window.setInterval(sessionEnded, interval); // and set a new one...
                });

                sessionInterval = window.setInterval(sessionEnded, interval);// set the timeout on initial page load
});

$("#refresh-page").live("click", function(e) {
    e.preventDefault();
    location.reload(true);
});

function sessionEnded() {
    $("#trackYourTopicSubmit").removeClass("session-active");
    $("#trackYourTopicSubmit").addClass("session-ended");
}

