﻿var page = {

    // initialize the page
    init: function () {

        $("#login-box").dialog({
            autoOpen: false,
            modal: true,
            resizable: false,
            close: page.dialogClose
        });

        // admin, and login click events
        $("#login").click(function () { $("#login-box").dialog('open'); });

        $("#logout").click(function () {
            var params = { mode: "logout" };
            $.getJSON(location.href.replace(/[#]/, ''), params, function () { location.href = "/Default.aspx" });
        });

        // assign each tab click a different function.
        $("#sidebar-tab-1").click(page.fixtureClick);
        $("#sidebar-tab-2").click(page.resultsClick);

        $("#btnLogin").click(page.checkLogin);

        // load latest fixtures
        var params = { mode: 'sidebar', type: 1 };
        $.getJSON(location.href.replace(/[#]/, ''), params, page.loadFixtures);

        var params = { mode: 'sidebar', type: 2 };
        $.getJSON(location.href.replace(/[#]/, ''), params, page.loadFixtures);
    },

    fixtureClick: function () {

        $("#sidebar-results-pane").hide();
        $("#sidebar-fixtures-pane").show();
        $("#s-tab-1").removeClass().addClass("tab-active");
        $("#s-tab-2").removeClass().addClass("tab-inactive");

        // load latest fixtures
        var params = { mode: 'sidebar', type: 1 };
        $.getJSON(location.href.replace(/[#]/, ''), params, page.loadFixtures);

        var params = { mode: 'sidebar', type: 2 };
        $.getJSON(location.href.replace(/[#]/, ''), params, page.loadFixtures);

    },

    resultsClick: function () {

        $("#sidebar-fixtures-pane").hide();
        $("#sidebar-results-pane").show();
        $("#s-tab-1").removeClass().addClass("tab-inactive");
        $("#s-tab-2").removeClass().addClass("tab-active");

    },

    // load latest fixtures
    loadFixtures: function (d, textstatus) {

        // retrieve our server-side data
        if (d && d.strStatus == "success") {

            // vars
            var objDataset = d.obj;
            var strTableContent = '';
            var intFixtureType = 1;

            // loop our dataset and draw our table
            for (var objDataRow, i = 0; objDataRow = objDataset[i]; i++) {

                if (objDataRow.intFixtureID == objDataRow.intTodaysTheDay) {
                    strTableContent += '<tr class="todays-row">';
                } else {
                    strTableContent += '<tr class="' + (i % 2 ? '' : 'alternate-row') + '">';
                }

                strTableContent += '<td>' + objDataRow.strAgainst + ' (' + objDataRow.strHomeAway + ')</td>';
                strTableContent += '<td class="date">' + objDataRow.strDate + '</td>';
                strTableContent += '</tr>';

                intFixtureType = objDataRow.intFixtureType;

            }

            // insert our html and do some spring cleaning.
            intFixtureType == 2 ? $("#tbl-sunday-fixtures").html(strTableContent)
                                : $("#tbl-saturday-fixtures").html(strTableContent);
            delete strTableContent;

            $("#sidebar-loader").hide();
            $("#sidebar-fixtures").show();

        } else {
            $("#sidebar-error").show();
        }
    },

    // login callback function
    loginRedirect: function (d, textstatus) {

        // retrieve our server-side data
        if (d && d.strStatus == "success") {

            // succesful login, change page
            window.location = "/admin/manage.aspx";

        } else if (d && d.strStatus == "failed") {

            // error in login, show error.
            $("#loginError p").html(d.strErrorMessage);
            $("#loginError").show();

        }
    },

    // fires off to server to check login details
    checkLogin: function () {
        var params = {
            user: $("#username").val(),
            pass: $("#password").val(),
            mode: 'login'
        }
        $.getJSON(location.href.replace(/[#]/, ''), params, page.loginRedirect);
    },

    // dialog close functions
    dialogClose: function () {
        $("#username").val('')
        $("#password").val('')
        $("#loginError p").html('');
        $("#loginError").hide();
    }

}

$(document).ready(page.init);
