function getMenu() {
    makeRequest("php/menu.php", getMenuBack, 1);
}

function getToday() {
    makeRequest("php/menu.php?today=4", getTodayBack, 0);
}


var dayIndex = 0;
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
            "Saturday"];
function newDay(first, day, dayweek) {
    var s = '';
    if (!first) {
        s += '</ul></div></div>';
    }

    s += '<div class="menu-day"><span class="menu-day-announce">';
    s += dayweek + ' / ' + day;
    return s + '</span>';
}

var meals = ['Breakfast', 'Brunch', 'Lunch', 'Dinner', 'Closed'];
function newMeal(meal, newDay) {
    var s = '';
    if (!newDay) {
        s += '</ul></div>';
    }

    s += '<div class="menu-col"><span class="menu-meal">';
    s += meals[meal] + "</span><ul>";
    return s;
}


var prevText = '';
function searchMenu(text) {
    if (text.length > 1 && text != prevText) {
        var params = "s=" + escape(text);
        makeRequest("php/menu.php?" + params, getMenuBack, 1);
    }
    else if (text == '') getMenu();
    prevText = text;
}

function searchMenuBack() {
    index = 1;
    if (requests[index].readyState != 4) return;
    if (requests[index].status != 200) {
        if (requests[index].status == 0) return;
        alert("OH SHIT PROBLEM PROBLEM NOOOOOO");
        return;
    }
    alert(requests[index].responseText);

}

function getTodayBack() {
    index = 0;
    if (requests[index].readyState != 4) return;
    if (requests[index].status != 200) {
        if (requests[index].status == 0) return;
        alert("OH SHIT PROBLEM PROBLEM NOOOOOO");
        return;
    }

    var days = eval('(' + requests[index].responseText + ')');
    dayIndex = days.today;

    var html = '';
    var currMeal = null;
    for (var i = 0; i < days.arr.length; i++) {
        if (i == 0) html += newDay(true, days.arr[i].day, 
                                   days.arr[i].dayweek);
        if (currMeal != days.arr[i].meal) {
            html += newMeal(days.arr[i].meal, i == 0);
            currMeal = days.arr[i].meal;
        }

        html += "<li>" + days.arr[i].nom + "</li>";
    }

    if (html == "") html = "There's no menu listed for today!";
    document.getElementById("TODAY-PLACE").innerHTML = html;
}

var currWeek = 0;
function changeWeek(amt) {
    currWeek += amt;
    makeRequest("php/menu.php?cw="+currWeek, getMenuBack, 1);
}

function getMenuBack() {
    index = 1;
    if (requests[index].readyState != 4) return;
    if (requests[index].status != 200) {
        if (requests[index].status == 0) return;
        alert("OH SHIT PROBLEM PROBLEM NOOOOOO");
        return;
    }

    // Convert the JSON
    var menu = eval('(' + requests[index].responseText + ')');
    var start = menu['start'];
    menu = menu['arr']

    // Initialize variables
    var startVal = -1;
    var currMeal = startVal;
    var currDay = startVal;
    var html = '';
    dayIndex = 0;

    // Create the html!
    for (var i = 0; i < menu.length; i++) {
        if (menu[i].meal != currMeal || menu[i].day != currDay) {
            // Add the new day html
            var day = false;
            if (menu[i].day != currDay) {
                html += newDay(currDay == startVal, menu[i].day,
                    menu[i].dayweek);
                currDay = menu[i].day;
                day = true;
            }

            // Add the new meal html
            html += newMeal(menu[i].meal, day);
            currMeal = menu[i].meal;
        }
        
        // Add in the food and its description
        html += "<li>" + menu[i].nom + "</li>";
    }

    // Set the tag
    if (html == '') {
        if (start == '') {
            html = "There are no results for your search. <br><br>Maybe you should make a menu suggestion?";
        } else {
            html = "There's no menu available for the week of ";
            html += start + ".";
        }
    }
    document.getElementById("MENU-PLACE").innerHTML = html;
}

