﻿/// <reference path="~/scripts/jquery.min.js">

var timeIncrement = 30; // Amount of minutes to increment by

$(window).unload(function () {
    $("#LoaderGif").hide();
    setCookie("qbCentreId", $(centreClientId).val(), 3600);
    setCookie("qbTime", $(timeClientId).val(), 3600);
    setCookie("qbAdult", $(adultClientId).val(), 3600);
    setCookie("qbJunior", $(juniorClientId).val(), 3600);
    setCookie("qbConcession", $(concessionClientId).val(), 3600);
    setCookie("qbDate", $(dateClientId).val(), 3600);
});

// Document dot ready !!
$(document).ready(function () {

    var qbTime = getCookie("qbTime");
    var qbCentreId = getCookie("qbCentreId");
    var qbAdult = getCookie("qbAdult");
    var qbJunior = getCookie("qbJunior");
    var qbConcession = getCookie("qbConcession");
    var qbDate = getCookie("qbDate");
    // Prevent keydown event on booking date fields
    $(dateClientId).keydown(function (e) {
        e.preventDefault();
        return false; // IE6
    });

    $("#lnkPromo").click(function () {
        $(this).hide();
        $("#spanPromo").show();
        $("#divPromo").show();
    });

    $("#divPromo input").keydown(function (e) {
        var code = (e.which) ? e.which : e.keyCode;

        if (code == 13) {
            e.preventDefault();
            $(btnContinueClientId).trigger("click");
            return false;
        }
    });

    $(btnContinueClientId).click(function (e) {
        $("#quickErrorMessage").hide();
        $("#LoaderGif").show();
        var players = parseInt($(adultClientId).val()) + parseInt($(juniorClientId).val()) + parseInt($(concessionClientId).val());
        var centreId = parseInt($(centreClientId).val());
        if (centreId == 0 || players == 0) { //check the "select" message wasnt chosen
            e.preventDefault();
            if (centreId == 0) {
                $("#quickErrorMessage").html("Please choose a location");
            } else if (players == 0) {
                $("#quickErrorMessage").html("Please choose at least one player");
            }
            $("#LoaderGif").hide();
            $("#quickErrorMessage").show();
            return false;
        }
    });

    $(centreClientId).change(checkLocationOnline);
    $(dateClientId).change(changeTimes);
    $(timeClientId).change(function () { $(hdnTimeClientId).val($(timeClientId).val()); });
    $(timeClientId).val($(timeClientId).parent().find("span").html());

    if (qbTime.length && qbTime != 'null') {
        $(timeClientId).val(qbTime);
        $(timeClientId).parent().find("span").html(qbTime);
    }

    if (qbAdult.length) {
        $(adultClientId).val(qbAdult);
        $(adultClientId).parent().find("span").html($(adultClientId + " option:selected").text());
    }

    if (qbJunior.length) {
        $(juniorClientId).val(qbJunior);
        $(juniorClientId).parent().find("span").html($(juniorClientId + " option:selected").text());
    }

    if (qbConcession.length) {
        $(concessionClientId).val(qbConcession);
        $(concessionClientId).parent().find("span").html($(concessionClientId + " option:selected").text());
    }

    if (qbDate.length) {
        var cookieDate = new Date(qbDate);
        if(cookieDate >= cookieDate)
            $(dateClientId).val(qbDate);
    }

    if (qbCentreId.length && qbCentreId != "1042") {
        $(centreClientId).val(qbCentreId);
        $(centreClientId).parent().find("span").html($(centreClientId + " option:selected").text());
    }

    enableControls(false);
    enableControls(true);

    // enableControls(true);
    if ($(centreClientId).val() == 0) {
        enableControls(false);
    }
});

function changeTimes(callback) {

    Kill();

    $("#LoaderGif").show();

    $(timeClientId).html('');

    tenpinApiClient.getOpeningHours($(centreClientId).val(), $(dateClientId).val(), $(dateClientId).val(), function (data) {

        var currentDateTime = new Date(currentDateTimeText);

        $.each(data, function () {

            var openTime = new Date(parseInt(this.OpenTime.replace(/(^.*\()|([+-].*$)/g, '')));
            var closeTime = new Date(parseInt(this.CloseTime.replace(/(^.*\()|([+-].*$)/g, '')));

            // Round up the open time if its less than the current date time
            if (openTime < currentDateTime) {

                openTime = currentDateTime;
                var mins = openTime.getMinutes();

                // Work out our next possible available booking time slot
                if (mins < timeIncrement) {
                    openTime.setMinutes(mins + (timeIncrement - mins) + timeIncrement);
                } else {
                    openTime.setHours(openTime.getHours() + 1);
                    openTime.setMinutes(timeIncrement);
                }
            }

            // Now loop through and update the time dropdown
            for (var i = openTime; i <= closeTime; i.setMinutes(i.getMinutes() + timeIncrement)) {
                var time = i.getHours() + (i.getHours() == 0 ? '0' : '') + ':' + i.getMinutes() + (i.getMinutes() == 3 || i.getMinutes() == 0 ? '0' : '');
                $(timeClientId).append($('<option />').val(time).text(time));
            } // for
        });

        setHiddenTime($(timeClientId + " :first").val());

        enableControls(true);

        $(timeClientId + " option:first-child").attr("selected", "selected");
        $(timeClientId).parent().find("span").html($(timeClientId).val());

        $("#LoaderGif").hide();
    });
} // changeTimes

function checkLocationOnline() {
    if ($(centreClientId).val() != 0) //check the "select" message wasnt chosen
    {
        $("#quickErrorMessage").hide();
        Kill();

        $("#LoaderGif").show();

        enableControls(false);

        if ($(centreClientId + " option:selected").data("useOldBookingEngine") && $(centreClientId + " option:selected").data("oldBookingEngineUrl").length > 0) {
            window.location = $(centreClientId + " option:selected").data("oldBookingEngineUrl");
        }
        else {
            tenpinApiClient.isCentreOnline($(centreClientId).val(), function (data) {
                if (data.Outcome) {
                    changeTimes();
                    enableControls(true);
                    $("#onlineMessageBox").hide();
                }
                else {
                    window.location = "/centre-offline/";
                }

            });

            $("#LoaderGif").hide();
        }
    }
    else {
        $("#quickErrorMessage").html("Please choose a location");
        $("#quickErrorMessage").show();
        enableControls(false);
    }

} // checkLocationOnline

function setHiddenTime(time) {
    $(hdnTimeClientId).val(time);
} // setHiddenTime

function enableControls(enabled) {
    if (enabled) {
        $("div#disableSection input:image,div#disableSection input:text,div#disableSection select").removeAttr("disabled");
        $("div#disableSection").removeClass("disabled");

    }
    else {
        $("div#disableSection input:image,div#disableSection input:text,div#disableSection select").attr("disabled", "disabled");
        $("div#disableSection").addClass("disabled");
    }
} // enableControls



