eval(function (p, a, c, k, e, d) { e = function (c) { return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) { d[e(c)] = k[c] || e(c) } k = [function (e) { return d[e] } ]; e = function () { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p } ('(2($){$.c.f=2(p){p=$.d({g:"!@#$%^&*()+=[]\\\\\\\';,/{}|\\":<>?~`.- ",4:"",9:""},p);7 3.b(2(){5(p.G)p.4+="Q";5(p.w)p.4+="n";s=p.9.z(\'\');x(i=0;i<s.y;i++)5(p.g.h(s[i])!=-1)s[i]="\\\\"+s[i];p.9=s.O(\'|\');6 l=N M(p.9,\'E\');6 a=p.g+p.4;a=a.H(l,\'\');$(3).J(2(e){5(!e.r)k=o.q(e.K);L k=o.q(e.r);5(a.h(k)!=-1)e.j();5(e.u&&k==\'v\')e.j()});$(3).B(\'D\',2(){7 F})})};$.c.I=2(p){6 8="n";8+=8.P();p=$.d({4:8},p);7 3.b(2(){$(3).f(p)})};$.c.t=2(p){6 m="A";p=$.d({4:m},p);7 3.b(2(){$(3).f(p)})}})(C);', 53, 53, '||function|this|nchars|if|var|return|az|allow|ch|each|fn|extend||alphanumeric|ichars|indexOf||preventDefault||reg|nm|abcdefghijklmnopqrstuvwxyz|String||fromCharCode|charCode||alpha|ctrlKey||allcaps|for|length|split|1234567890|bind|jQuery|contextmenu|gi|false|nocaps|replace|numeric|keypress|which|else|RegExp|new|join|toUpperCase|ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('|'), 0, {}));

if (document.images) {
    preload_image_object = new Image();
    // set image url
    preload_image_object.src = "ajax-loader.gif";
}
$(document).ready(function () {
    $("#txtPartySize").numeric();
    var cguid = getCookie("cguid");
    if (cguid != "") {
        $("#txtEmail").val("Loading, please wait...");
        $("#txtFirstName").val("Loading, please wait...");
        $("#txtLastName").val("Loading, please wait...");
        $("#txtPhone").val("Loading, please wait...");
        PageMethod("GetContactInfo", ["rguid", $("#rguid").val(), "cguid", cguid], PopulateInfo, AjaxFailed);
    }
    $("#txtDate").datepicker();
    PageMethod("GetSections", ["rguid", $("#rguid").val()], function (result) {
        var csvSections = result.d;
        var arrSections = csvSections.split('|');
        for (i = 0; i < arrSections.length; i++) {
            var sect = arrSections[i].split('~');
            $(".desiredArea").append($('<option></option>').val(sect[0]).html(sect[1]));
        }
    }, AjaxFailed);
    $("#SubmitDate").click(function (event) {
        event.preventDefault();
        GetTimes();
    });

});

var MONTH_NAMES = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var DAY_NAMES = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');

function LZ(x) { return (x < 0 || x > 9 ? "" : "0") + x }
function LZ(x) { return (x < 0 || x > 9 ? "" : "0") + x }
function GetTimes() {
    if ($("#txtEmail").val() == "" | $("#txtFirstName").val() == "" | $("#txtLastName").val() == "" | $("#txtPartySize").val() == "" | $("#txtDate").val() == "") {
        alert("You are missing some information. Please fill in all the fields and try again.");
    }
    else {
        var partySize = $("#txtPartySize").val();
        //var requestedDate = formatDate(new Date($("#txtDate").val()), "yyyy-MM-dd hh:mm:ss a");
        var requestedDate = $("#txtDate").val();
        var desiredArea = $(".desiredArea").val();
        var firstName = $("#txtFirstName").val();
        var lastName = $("#txtLastName").val();
        var email = $("#txtEmail").val();
        var phone = $("#txtPhone").val();
        SetHiddenValue("hdnFirstName", firstName);
        SetHiddenValue("hdnLastName", lastName);
        SetHiddenValue("hdnEmail", email);
        SetHiddenValue("hdnPartySize", partySize);
        SetHiddenValue("hdnDesiredArea", desiredArea);
        SetHiddenValue("hdnPhone", phone);
        SetHiddenValue("hdnRequestedDate", requestedDate);

        $("#smtresvinner").html("<table align='center'><tr><td align='center'><img src='ajax-loader.gif' width='32' height='32' alt='Loading...' /></td></tr><tr><td align='center'><strong>Please Wait</strong><br />Looking Up Available Times</td></tr></table>");
        PageMethod("GetAvailableTimes", ["partySize", partySize, "requestedDate", requestedDate, "desiredArea", desiredArea, "desiredServerId", "0", "firstName", firstName, "lastName", lastName, "email", email, "phone", phone, "rguid", $("#rguid").val()], ShowTimes, AjaxFailed);
    }
}
function ShowTimes(result) {
    var arr = result.d.split('|');
    setCookie("cguid", arr[0], 365);
    $("#smtresvinner").html(arr[1]);
}
function ShowMessage(result) {
    $("#smtresvinner").html(result.d);
}
function PopulateInfo(result) {
    var arr = result.d.split('|');
    if (arr.length == 4) {
        if ($("#txtFirstName").val() == "Loading, please wait...") {
            $("#txtFirstName").val(arr[0]);
        }
        if ($("#txtLastName").val() == "Loading, please wait...") {
            $("#txtLastName").val(arr[1]);
        }
        if ($("#txtPhone").val() == "Loading, please wait...") {
            $("#txtPhone").val(arr[2]);
        }
        if ($("#txtEmail").val() == "Loading, please wait...") {
            $("#txtEmail").val(arr[3]);
        }
    }

    else {
        if ($("#txtFirstName").val() == "Loading, please wait...") {
            $("#txtFirstName").val("");
        }
        if ($("#txtLastName").val() == "Loading, please wait...") {
            $("#txtLastName").val("");
        }
        if ($("#txtPhone").val() == "Loading, please wait...") {
            $("#txtPhone").val("");
        }
        if ($("#txtEmail").val() == "Loading, please wait...") {
            $("#txtEmail").val("");
        }
    }
}
function AjaxFailed(result) {
    alert("Failure: " + result.d);
}
function ChooseTime() {
    var reqDate = $("#resTime").val();
    SelectReservationTime(reqDate);
}
function BackToFirst() {
    $("#smtresvinner").html("<table><tr><td style=\"vertical-align:top\"><span class=\"fieldname\">Email</span></td><td><input type=\"text\" id=\"txtEmail\" /><p class=\"smaller\">Required to confirm your reservation.</p></td></tr><tr><td><span class=\"fieldname\">First Name</span></td><td><input type=\"text\" id=\"txtFirstName\" /></td></tr><td><span class=\"fieldname\">Last Name</span></td><td><input type=\"text\" id=\"txtLastName\" /></td></tr><tr><td><span class=\"fieldname\">Phone Number</span></td><td><input type=\"text\" id=\"txtPhone\" /><p class=\"smalltext\">Optional.</p></td></tr><tr><td><span class=\"fieldname\">No. of People</span></td><td><input type=\"text\" id=\"txtPartySize\" size=\"5\" /></td></tr><tr><td><span class=\"fieldname\">Date</span></td><td><input type=\"text\" id=\"txtDate\" /></td></tr><tr><td><span class=\"fieldname\">Area</span></td><td><select id=\"ddDesiredArea\" class=\"desiredArea\"><option value=\"0\">First Available</option></select></td></tr><tr><td colspan=\"2\" align=\"center\"><a href=\"#\" id=\"SubmitDate\" class=\"button\" onclick=\"GetTimes(); return false;\">Next &raquo;</a></td></tr></table>");
    $("#txtFirstName").val($("#hdnFirstName").val());
    $("#txtLastName").val($("#hdnLastName").val());
    $("#txtEmail").val($("#hdnEmail").val());
    $("#txtPhone").val($("#hdnPhone").val());
    $("#txtPartySize").val($("#hdnPartySize").val());
    $("#txtDate").val($("#hdnRequestedDate").val());
    $("#ddDesiredArea").val($("#hdnDesiredArea").val());
    $("#txtDate").datepicker();
}
function SelectReservationTime(requestedDate) {
    SetHiddenValue("hdnRequestedDate", requestedDate);
    var partySize = document.getElementById("hdnPartySize").value;
    $("#smtresvinner").html("<table align='center'><tr><td align='center'><img src='ajax-loader.gif' width='32' height='32' alt='Loading...' /></td></tr><tr><td align='center'><strong>Please Wait</strong><br />Selecting Times</td></tr></table>");
    PageMethod("GetConfirmationMessage", ["requestedDate", requestedDate, "partySize", partySize, "rguid", $("#rguid").val()], ShowMessage, AjaxFailed);
}
function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}
function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
function ConfirmTable() {
    
    var partySize = document.getElementById("hdnPartySize").value;
    var requestedDate = document.getElementById("hdnRequestedDate").value;
    var email = document.getElementById("hdnEmail").value;
    //var requestedDate = formatDate(new Date(document.getElementById("hdnRequestedDate").value), "yyyy-MM-dd hh:mm:ss a");
    var partyName = document.getElementById("hdnFirstName").value + " " + document.getElementById("hdnLastName").value;
    var firstName = document.getElementById("hdnFirstName").value;
    var lastName = document.getElementById("hdnLastName").value;
    var desiredArea = document.getElementById("hdnDesiredArea").value;
    var phone = document.getElementById("hdnPhone").value;
    var redirectlocation = document.getElementById("locRedirect").value;
    var notes = document.getElementById("notes").value;
    var dietary = "";
    if (document.getElementById("dietary") != null) {
        dietary = document.getElementById("dietary").value;
    }
    
    if (notes == "undefined") {
        notes = "";
    }
    if (dietary == "undefined") {
        dietary = "";
    }
    $("#smtresvinner").html("<table align='center'><tr><td align='center'><img src='ajax-loader.gif' width='32' height='32' alt='Loading...' /></td></tr><tr><td align='center'><strong>Please Wait</strong><br />Confirming Reservation</td></tr></table>");
    //alert(firstName + "|" + lastName + "|" + email + "|" + phone);
    PageMethod("ConfirmTableWR", ["requestedDate", requestedDate, "partySize", partySize, "partyName", partyName, "desiredArea", desiredArea, "desiredServerId", "0", "email", email, "firstName", firstName, "lastName", lastName, "phone", phone, "cguid", getCookie("cguid"), "notes", notes, "dietary", dietary, "rguid", $("#rguid").val(), "redirectLoc", $("#locRedirect").val()], ShowMessage, AjaxFailed);
    return false;
}
function RejectTable() {
    var partySize = $("#hdnPartySize").val();
    //var requestedDate = formatDate(new Date($("#hdnRequestedDate").val()), "yyyy-MM-dd hh:mm:ss a");
    var requestedDate = $("#hdnRequestedDate").val();
    var desiredArea = $("#hdnDesiredArea").val();
    var firstName = $("#hdnFirstName").val();
    var lastName = $("#hdnLastName").val();
    var email = $("#hdnEmail").val();
    var phone = $("#hdnPhone").val();

    $("#smtresvinner").html("<table align='center'><tr><td align='center'><img src='ajax-loader.gif' width='32' height='32' alt='Loading...' /></td></tr><tr><td align='center'><strong>Please Wait</strong><br />Looking Up Available Times</td></tr></table>");
    PageMethod("GetAvailableTimes", ["partySize", partySize, "requestedDate", requestedDate, "desiredArea", desiredArea, "desiredServerId", "0", "firstName", firstName, "lastName", lastName, "email", email, "phone", phone, "rguid", $("#rguid").val()], ShowTimes, AjaxFailed);
}

function PageMethod(fn, paramArray, successFn, errorFn) {
    var pagePath = "/Reservations.asmx";
    //Create list of parameters in the form: 
    //{"paramName1":"paramValue1","paramName2":"paramValue2"} 
    var paramList = '';
    if (paramArray.length > 0) {
        for (var i = -1; i < paramArray.length-1; i++) {
        	i++;
            if (paramList.length > 0) paramList += ',';
            paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
        }
    }
    paramList = '{' + paramList + '}';
    //Call the page method
    //alert(paramList);
    $.ajax({
        type: "POST",
        url: pagePath + "/" + fn,
        contentType: "application/json; charset=utf-8",
        data: paramList,
        dataType: "json",
        success: successFn,
        error: errorFn
    });
}

function SetHiddenValue(hiddenId, newValue) {
    document.getElementById(hiddenId).value = newValue;
}

function formatDate(date, format) {
    format = format + "";
    var result = "";
    var i_format = 0;
    var c = "";
    var token = "";
    var y = date.getYear() + "";
    var M = date.getMonth() + 1;
    var d = date.getDate();
    var E = date.getDay();
    var H = date.getHours();
    var m = date.getMinutes();
    var s = date.getSeconds();
    var yyyy, yy, MMM, MM, dd, hh, h, mm, ss, ampm, HH, H, KK, K, kk, k;
    // Convert real date parts into formatted versions
    var value = new Object();
    if (y.length < 4) { y = "" + (y - 0 + 1900); }
    value["y"] = "" + y;
    value["yyyy"] = y;
    value["yy"] = y.substring(2, 4);
    value["M"] = M;
    value["MM"] = LZ(M);
    value["MMM"] = MONTH_NAMES[M - 1];
    value["NNN"] = MONTH_NAMES[M + 11];
    value["d"] = d;
    value["dd"] = LZ(d);
    value["E"] = DAY_NAMES[E + 7];
    value["EE"] = DAY_NAMES[E];
    value["H"] = H;
    value["HH"] = LZ(H);
    if (H == 0) { value["h"] = 12; }
    else if (H > 12) { value["h"] = H - 12; }
    else { value["h"] = H; }
    value["hh"] = LZ(value["h"]);
    if (H > 11) { value["K"] = H - 12; } else { value["K"] = H; }
    value["k"] = H + 1;
    value["KK"] = LZ(value["K"]);
    value["kk"] = LZ(value["k"]);
    if (H > 11) { value["a"] = "PM"; }
    else { value["a"] = "AM"; }
    value["m"] = m;
    value["mm"] = LZ(m);
    value["s"] = s;
    value["ss"] = LZ(s);
    while (i_format < format.length) {
        c = format.charAt(i_format);
        token = "";
        while ((format.charAt(i_format) == c) && (i_format < format.length)) {
            token += format.charAt(i_format++);
        }
        if (value[token] != null) { result = result + value[token]; }
        else { result = result + token; }
    }
    return result;
}
