(function() {
  /*
  Dataa
  */
  var App, CatMenuCollection, CategoryNutriView, CategoryView, DishDetailView, IconView, MenuItemNutriView, MenuItemRightView, MenuItemView, MenuModel, MenusCollection, SubCategoryNutriView, SubCategoryView, date;
  var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
    for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
    function ctor() { this.constructor = child; }
    ctor.prototype = parent.prototype;
    child.prototype = new ctor;
    child.__super__ = parent.prototype;
    return child;
  }, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
  MenuModel = (function() {
    __extends(MenuModel, Backbone.Model);
    function MenuModel() {
      MenuModel.__super__.constructor.apply(this, arguments);
    }
    return MenuModel;
  })();
  this.MenuModel = MenuModel;
  MenusCollection = (function() {
    __extends(MenusCollection, Backbone.Collection);
    function MenusCollection() {
      MenusCollection.__super__.constructor.apply(this, arguments);
    }
    MenusCollection.prototype.model = MenuModel;
    MenusCollection.prototype.url = '/_js/menu.js';
    return MenusCollection;
  })();
  this.MenusCollection = MenusCollection;
  CatMenuCollection = (function() {
    __extends(CatMenuCollection, Backbone.Collection);
    function CatMenuCollection() {
      CatMenuCollection.__super__.constructor.apply(this, arguments);
    }
    CatMenuCollection.prototype.model = MenuModel;
    return CatMenuCollection;
  })();
  this.CatMenuCollection = CatMenuCollection;
  /*
    Single Views
  */
  IconView = (function() {
    __extends(IconView, Backbone.View);
    function IconView() {
      this.render = __bind(this.render, this);
      IconView.__super__.constructor.apply(this, arguments);
    }
    IconView.prototype.initialize = function() {
      return this.render;
    };
    IconView.prototype.tagName = "p";
    IconView.prototype.className = "itemDesc";
    IconView.prototype.render = function() {
      var $template, templ;
      $template = $("#IconItemTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return IconView;
  })();
  this.IconView = IconView;
  DishDetailView = (function() {
    __extends(DishDetailView, Backbone.View);
    function DishDetailView() {
      this.render = __bind(this.render, this);
      DishDetailView.__super__.constructor.apply(this, arguments);
    }
    DishDetailView.prototype.initialize = function() {
      return this.render;
    };
    DishDetailView.prototype.tagName = "div";
    DishDetailView.prototype.id = "leondish";
    DishDetailView.prototype.render = function() {
      var $template, templ;
      $template = $("#dishDetailTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return DishDetailView;
  })();
  this.DishDetailView = DishDetailView;
  MenuItemView = (function() {
    __extends(MenuItemView, Backbone.View);
    function MenuItemView() {
      this.render = __bind(this.render, this);
      MenuItemView.__super__.constructor.apply(this, arguments);
    }
    MenuItemView.prototype.initialize = function() {
      return this.render;
    };
    MenuItemView.prototype.tagName = "div";
    MenuItemView.prototype.className = "testme";
    MenuItemView.prototype.render = function() {
      var $template, templ;
      $template = $("#menuItemTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return MenuItemView;
  })();
  this.MenuItemView = MenuItemView;
  MenuItemRightView = (function() {
    __extends(MenuItemRightView, Backbone.View);
    function MenuItemRightView() {
      this.render = __bind(this.render, this);
      MenuItemRightView.__super__.constructor.apply(this, arguments);
    }
    MenuItemRightView.prototype.initialize = function() {
      return this.render;
    };
    MenuItemRightView.prototype.tagName = "div";
    MenuItemRightView.prototype.className = "testme right";
    MenuItemRightView.prototype.render = function() {
      var $template, templ;
      $template = $("#menuItemTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return MenuItemRightView;
  })();
  this.MenuItemRightView = MenuItemRightView;
  MenuItemNutriView = (function() {
    __extends(MenuItemNutriView, Backbone.View);
    function MenuItemNutriView() {
      this.render = __bind(this.render, this);
      MenuItemNutriView.__super__.constructor.apply(this, arguments);
    }
    MenuItemNutriView.prototype.initialize = function() {
      return this.render;
    };
    MenuItemNutriView.prototype.tagName = "div";
    MenuItemNutriView.prototype.className = "dishRow";
    MenuItemNutriView.prototype.render = function() {
      var $template, templ;
      $template = $("#menuItemNutriTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return MenuItemNutriView;
  })();
  this.MenuItemNutriView = MenuItemNutriView;
  /*
    Compiled Views
  */
  SubCategoryView = (function() {
    __extends(SubCategoryView, Backbone.View);
    function SubCategoryView() {
      this.render = __bind(this.render, this);
      SubCategoryView.__super__.constructor.apply(this, arguments);
    }
    SubCategoryView.prototype.initialize = function() {
      return this.render;
    };
    SubCategoryView.prototype.tagName = "h3";
    SubCategoryView.prototype.className = "sectionHead";
    SubCategoryView.prototype.render = function() {
      var $template, templ;
      $template = $("#subCategoryTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return SubCategoryView;
  })();
  this.SubCategoryView = SubCategoryView;
  SubCategoryNutriView = (function() {
    __extends(SubCategoryNutriView, Backbone.View);
    function SubCategoryNutriView() {
      this.render = __bind(this.render, this);
      SubCategoryNutriView.__super__.constructor.apply(this, arguments);
    }
    SubCategoryNutriView.prototype.initialize = function() {
      return this.render;
    };
    SubCategoryNutriView.prototype.tagName = "div";
    SubCategoryNutriView.prototype.className = "subRow";
    SubCategoryNutriView.prototype.render = function() {
      var $template, templ;
      $template = $("#subCategoryNutriTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return SubCategoryNutriView;
  })();
  this.SubCategoryNutriView = SubCategoryNutriView;
  CategoryView = (function() {
    __extends(CategoryView, Backbone.View);
    function CategoryView() {
      this.render = __bind(this.render, this);
      CategoryView.__super__.constructor.apply(this, arguments);
    }
    CategoryView.prototype.initialize = function() {
      return this.render;
    };
    CategoryView.prototype.tagName = "p";
    CategoryView.prototype.className = "sectionHead";
    CategoryView.prototype.render = function() {
      var $template, templ;
      $template = $("#CategoryTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return CategoryView;
  })();
  this.CategoryView = CategoryView;
  CategoryNutriView = (function() {
    __extends(CategoryNutriView, Backbone.View);
    function CategoryNutriView() {
      this.render = __bind(this.render, this);
      CategoryNutriView.__super__.constructor.apply(this, arguments);
    }
    CategoryNutriView.prototype.initialize = function() {
      return this.render;
    };
    CategoryNutriView.prototype.tagName = "div";
    CategoryNutriView.prototype.className = "headerRow";
    CategoryNutriView.prototype.render = function() {
      var $template, templ;
      $template = $("#CategoryNutriTemplate").html();
      templ = _.template($template, this.model.toJSON());
      $(this.el).html(templ);
      return this;
    };
    return CategoryNutriView;
  })();
  this.CategoryNutriView = CategoryNutriView;
  /*
    Initialize App
  */
  App = {};
  App.models = {};
  App.filters = {};
  App.collections = {};
  App.views = {};
  App.routers = {};
  App.models.menu = new MenuModel;
  App.collections.menus = new MenusCollection;
  /*
   Soups 
   
  */
  date = new Date();
  App.day = date.getDay();
  /*
    Functions to clean and sort data
  */
  App.nullcheck = function() {
    return App.collections.menus.each(function(record) {
      var item, var_record;
      item = record.get("description");
      var_record = record;
      if (item === null) {
        return var_record.set({
          description: ""
        });
      }
    });
  };
  App.day2num = function() {
    return App.collections.menus.each(function(record) {
      var item;
      item = record.get("day");
      return record.set({
        day: parseInt(item)
      });
    });
  };
  App.cat2num = function() {
    return App.collections.menus.each(function(record) {
      var item;
      item = record.get("cat_order");
      return record.set({
        cat_order: parseInt(item)
      });
    });
  };
  App.dish2num = function() {
    return App.collections.menus.each(function(record) {
      var item;
      item = record.get("dish_order");
      return record.set({
        dish_order: parseInt(item)
      });
    });
  };
  App.sub_cat2num = function() {
    return App.collections.menus.each(function(record) {
      var item;
      item = record.get("sub_cat_order");
      return record.set({
        sub_cat_order: parseInt(item)
      });
    });
  };
  App.gl_load2num = function() {
    return App.collections.menus.each(function(record) {
      var item;
      item = record.get("gl_load");
      return record.set({
        gl_load: parseInt(item)
      });
    });
  };
  App.sortedCollectionByDishOrder = function(collection) {
    return collection.sortBy(function(mod) {
      var result;
      result = mod.get("dish_order");
      return result;
    });
  };
  App.groupCollectionsByCatOrder = function(collection) {
    return collection.groupBy(function(mod) {
      var result;
      result = mod.get("cat_order");
      return result;
    });
  };
  App.groupArrayBySubCatOrder = function(array) {
    return _.groupBy(array, function(mod) {
      var result;
      result = mod.get("sub_cat_order");
      return result;
    });
  };
  App.groupArrayByDishOrder = function(array) {
    return _.groupBy(array, function(mod) {
      var result;
      result = mod.get("dish_order");
      return result;
    });
  };
  App.sortMenuBySubCat = function(obj) {
    var sorted_array;
    sorted_array = [];
    _.each(obj, function(array) {
      var sorted_obj;
      sorted_obj = App.groupArrayBySubCatOrder(array);
      return sorted_array.push(sorted_obj);
    });
    return sorted_array;
  };
  App.sortMenuByDishOrder = function(obj) {
    var sorted_array;
    sorted_array = [];
    _.each(obj, function(array) {
      var sorted_obj;
      sorted_obj = App.groupArrayByDishOrder(array);
      return sorted_array.push(sorted_obj);
    });
    return sorted_array;
  };
  App.CompileMenu = function(array) {
    var sorted_array;
    sorted_array = [];
    _.each(array, function(obj) {
      var sorted_obj;
      sorted_obj = App.sortMenuByDishOrder(obj);
      return sorted_array.push(sorted_obj);
    });
    return sorted_array;
  };
  App.sortMenu4 = function(obj) {
    return _.each(obj, function(array) {
      return App.groupArrayByDishOrder(array);
    });
  };
  App.flattenArrayofObjects = function(arrayOfObjects) {
    var coll;
    coll = [];
    _.each(arrayOfObjects, function(obj) {
      return coll.push(_.flatten(obj));
    });
    return coll;
  };
  App.cleanupSortedArray = function(sortedArray) {
    return _.reject(sortedArray, function(model) {
      if (model.get("id") === null) {
        return true;
      }
    });
  };
  /*
    Render Process
  */
  App.iterate = function(sortedArray) {
    var firstModel, restOfArray;
    firstModel = _.first(sortedArray);
    restOfArray = _.rest(sortedArray);
    App.setFirstModelOfSortedArray(firstModel);
    return App.setRestOfSortedArray(restOfArray);
  };
  App.setFirstModelOfSortedArray = function(model) {
    return App.getFirstModelOfSortedArray = model;
  };
  App.setRestOfSortedArray = function(restSortedArray) {
    return App.getRestOfSortedArray = restSortedArray;
  };
  App.initWelcomeRender = function(sortedArray) {
    return _.each(sortedArray, function(model) {
      if (model.get('day') === App.day) {
        return App.soupRenderer(model);
      }
    });
  };
  App.soupRenderer = function(model) {
    var veg;
    veg = model.get('veg');
    if (veg === "Y") {
      App.renderSoupVeg(model);
    }
    if (!(veg === "Y")) {
      return App.renderSoupMeat(model);
    }
  };
  App.initRenderProcess = function(sortedArray) {
    App.iterate(sortedArray);
    App.initSetMarkers();
    App.renderCat(App.getFirstModelOfSortedArray);
    App.renderSubCat(App.getFirstModelOfSortedArray);
    App.renderDish(App.getFirstModelOfSortedArray);
    App.iterate(App.getRestOfSortedArray);
    return App.renderProcess();
  };
  App.initReRenderProcess = function(sortedArray) {
    return _.each(sortedArray, function(model) {
      return App.renderDish(model);
    });
  };
  App.testDishOrder = function(sortedArray) {
    return _.each(sortedArray, function(model) {
      return console.log(App.getDishOrder(model));
    });
  };
  App.initSetMarkers = function() {
    var cat_order, sub_cat_order;
    cat_order = App.getCatOrder(App.getFirstModelOfSortedArray);
    sub_cat_order = App.getSubCatOrder(App.getFirstModelOfSortedArray);
    App.setCatOrderMarker(cat_order);
    return App.setSubCatOrderMarker(sub_cat_order);
  };
  App.renderProcess = function() {
    if (App.notNewCat(App.getFirstModelOfSortedArray) === true) {
      if (App.notNewSubCat(App.getFirstModelOfSortedArray) === true) {
        App.renderDish(App.getFirstModelOfSortedArray);
        if (App.getRestOfSortedArray.length < 1) {
          return "done";
        } else {
          App.iterate(App.getRestOfSortedArray);
          return App.renderProcess();
        }
      } else {
        App.renderSubCat(App.getFirstModelOfSortedArray);
        App.renderDish(App.getFirstModelOfSortedArray);
        App.iterate(App.getRestOfSortedArray);
        return App.renderProcess();
      }
    } else {
      App.setSubCatOrderMarker(App.getSubCatOrder(App.getFirstModelOfSortedArray));
      App.renderCat(App.getFirstModelOfSortedArray);
      App.renderSubCat(App.getFirstModelOfSortedArray);
      App.renderDish(App.getFirstModelOfSortedArray);
      App.iterate(App.getRestOfSortedArray);
      return App.renderProcess();
    }
  };
  App.renderNutriProcess = function() {
    if (App.notNewCat(App.getFirstModelOfSortedArray) === true) {
      if (App.notNewSubCat(App.getFirstModelOfSortedArray) === true) {
        App.renderNutriDish(App.getFirstModelOfSortedArray);
        if (App.getRestOfSortedArray.length < 1) {
          return "done";
        } else {
          App.iterate(App.getRestOfSortedArray);
          return App.renderNutriProcess();
        }
      } else {
        App.renderNutriSubCat(App.getFirstModelOfSortedArray);
        App.renderNutriDish(App.getFirstModelOfSortedArray);
        App.iterate(App.getRestOfSortedArray);
        return App.renderNutriProcess();
      }
    } else {
      App.setSubCatOrderMarker(App.getSubCatOrder(App.getFirstModelOfSortedArray));
      App.renderNutriCat(App.getFirstModelOfSortedArray);
      App.renderNutriSubCat(App.getFirstModelOfSortedArray);
      App.renderNutriDish(App.getFirstModelOfSortedArray);
      App.iterate(App.getRestOfSortedArray);
      return App.renderNutriProcess();
    }
  };
  App.initNutriRenderProcess = function(sortedArray) {
    App.iterate(sortedArray);
    App.initSetMarkers();
    App.renderNutriCat(App.getFirstModelOfSortedArray);
    App.renderNutriSubCat(App.getFirstModelOfSortedArray);
    App.renderNutriDish(App.getFirstModelOfSortedArray);
    App.iterate(App.getRestOfSortedArray);
    return App.renderNutriProcess();
  };
  App.notNewCat = function(model) {
    result;
    var result;
    if (App.getCatOrder(model) > App.getCatOrderMarker) {
      result = false;
      App.setCatOrderMarker(App.getCatOrder(model));
    } else {
      result = true;
    }
    return result;
  };
  App.notNewSubCat = function(model) {
    result;
    var result;
    if (App.getSubCatOrder(model) > App.getSubCatOrderMarker) {
      result = false;
      App.setSubCatOrderMarker(App.getSubCatOrder(model));
    } else {
      result = true;
    }
    return result;
  };
  App.getGlobalSubCatMarker = 0;
  App.setGlobalSubCatMarker = function(marker) {
    return App.getGlobalSubCatMarker = marker;
  };
  /*
    Render Functions
  */
  App.getRenderFloatMarker = [0, 1];
  App.setRenderFloatMarker = function(marker) {
    return App.getRenderFloatMarker = marker;
  };
  App.renderCat = function(model) {
    var catView;
    catView = new CategoryView({
      model: model
    });
    return $('#menu').append(catView.render().el);
  };
  App.renderSubCat = function(model) {
    var subbyView;
    if (!(model.get('other_info') === "nomenu")) {
      subbyView = new SubCategoryView({
        model: model
      });
      $('#menu').append(subbyView.render().el);
    }
    return App.setRenderFloatMarker([0, 1]);
  };
  App.renderDish = function(model) {
    var thisMarker;
    thisMarker = App.getRenderFloatMarker[0];
    if (!(model.get('other_info') === 'nomenu')) {
      if (thisMarker === 0) {
        App.setRenderFloatMarker(App.getRenderFloatMarker.reverse());
        App.renderLeftDish(model);
      }
      if (thisMarker === 1) {
        App.setRenderFloatMarker(App.getRenderFloatMarker.reverse());
        return App.renderRightDish(model);
      }
    }
  };
  App.renderLeftDish = function(model) {
    var dish_view;
    if (isNaN(model.get('day'))) {
      dish_view = new MenuItemView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 1) {
      dish_view = new MenuItemView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 2) {
      dish_view = new MenuItemView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 3) {
      dish_view = new MenuItemView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 4) {
      dish_view = new MenuItemView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 5) {
      dish_view = new MenuItemView({
        model: model
      });
      return $('#menu').append(dish_view.render().el);
    }
  };
  App.renderRightDish = function(model) {
    var dish_view;
    if (isNaN(model.get('day'))) {
      dish_view = new MenuItemRightView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 1) {
      dish_view = new MenuItemRightView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 2) {
      dish_view = new MenuItemRightView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 3) {
      dish_view = new MenuItemRightView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 4) {
      dish_view = new MenuItemRightView({
        model: model
      });
      $('#menu').append(dish_view.render().el);
    }
    if (model.get('day') === 5) {
      dish_view = new MenuItemRightView({
        model: model
      });
      return $('#menu').append(dish_view.render().el);
    }
  };
  App.renderSoupVeg = function(model) {
    var view;
    view = new MenuItemView({
      model: model
    });
    return $('div#veg-soup').append(view.render().el);
  };
  App.renderSoupMeat = function(model) {
    var dish_view;
    dish_view = new MenuItemView({
      model: model
    });
    return $('div#meat-soup').append(dish_view.render().el);
  };
  /*
   Render nutrition
  */
  App.renderNutriCat = function(model) {
    var catView;
    catView = new CategoryNutriView({
      model: model
    });
    if (model.get("other_info") !== "nonutrition") {
      return $('#nutri').append(catView.render().el);
    }
  };
  App.renderNutriSubCat = function(model) {
    var subbyView;
    subbyView = new SubCategoryNutriView({
      model: model
    });
    if (model.get("other_info") !== "nonutrition") {
      return $('#nutri').append(subbyView.render().el);
    }
  };
  App.renderNutriDish = function(model) {
    var dish_view;
    if (isNaN(model.get('day'))) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        $('#nutri').append(dish_view.render().el);
      }
    }
    if (model.get('day') === 1) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        $('#nutri').append(dish_view.render().el);
      }
    }
    if (model.get('day') === 2) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        $('#nutri').append(dish_view.render().el);
      }
    }
    if (model.get('day') === 3) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        $('#nutri').append(dish_view.render().el);
      }
    }
    if (model.get('day') === 4) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        $('#nutri').append(dish_view.render().el);
      }
    }
    if (model.get('day') === 5) {
      dish_view = new MenuItemNutriView({
        model: model
      });
      if (model.get("other_info") !== "nonutrition") {
        return $('#nutri').append(dish_view.render().el);
      }
    }
  };
  App.renderDishDetail = function(model) {
    var dishdetail_view;
    dishdetail_view = new DishDetailView({
      model: model
    });
    return $('td.rightCol').append(dishdetail_view.render().el);
  };
  /*
    Jquery Dom stuff
  */
  App.fallOverArray = [];
  App.jquery_select2 = function($selectorArray) {
    return _.each($selectorArray, function(element) {
      var selectorString, sub_category;
      sub_category = $(element).attr('data-subcat');
      selectorString = "#menu " + sub_category + " td.menuColumn td";
      if ($(selectorString).length < 1) {
        return App.fallOverArray.push(element);
      } else {
        return $(selectorString).append(element);
      }
    });
  };
  App.selectMC = function(subcat) {
    return $(subcat + ' .menuColumn td');
  };
  App.jquery_select = function($selectorArray) {
    return _.each($selectorArray, function(element) {
      var selectorString, sub_category;
      sub_category = $(element).attr('data-subcat');
      selectorString = "#menu " + sub_category + " td.menuColumn td";
      if ($(selectorString).length < 1) {
        return App.fallOverArray.push(element);
      } else {
        return $(selectorString).append(element);
      }
    });
  };
  /*
    Query Functions
  */
  App.getCatOrder = function(model) {
    return model.get("cat_order");
  };
  App.getDishOrder = function(model) {
    return model.get("dish_order");
  };
  App.setCatOrderMarker = function(marker) {
    return App.getCatOrderMarker = marker;
  };
  App.getSubCatOrder = function(model) {
    return model.get("sub_cat_order");
  };
  App.setSubCatOrderMarker = function(marker) {
    return App.getSubCatOrderMarker = marker;
  };
  App.getCategory = function(model) {
    return model.get("category");
  };
  App.getSubCategory = function(model) {
    return model.get("sub_cat");
  };
  App.getSubCategoryAsID = function(model) {
    var sub_category;
    sub_category = App.getSubCategory(model);
    return sub_category.replace(RegExp(" ", "g"), "").replace(/,/g, "").replace(/'/g, "");
  };
  App.getDish = function(model) {
    return model.get("dish");
  };
  /*
    App Initialization
  */
  App.start = function(page) {
    var $icons, $itemFirst, $itemLast, $kids, $wraps, compiledMenu, flatten_stage1, flatten_stage2, query, query_model_id, sort_stage1, sort_stage2;
    if (page === "Welcome") {
      App.collections.menus.reset(window.InitData);
      App.nullcheck();
      App.day2num();
      App.cat2num();
      App.sub_cat2num();
      App.dish2num();
      App.gl_load2num();
      sort_stage1 = App.groupCollectionsByCatOrder(App.collections.menus);
      sort_stage2 = App.sortMenuBySubCat(sort_stage1);
      compiledMenu = App.CompileMenu(sort_stage2);
      flatten_stage1 = _.flatten(compiledMenu);
      flatten_stage2 = App.flattenArrayofObjects(flatten_stage1);
      App.flattenedCollection = _.flatten(flatten_stage2);
      App.cleanedAndFlattenedCollection = App.cleanupSortedArray(App.flattenedCollection);
      App.initWelcomeRender(App.cleanedAndFlattenedCollection);
      $icons = $('span.icons');
      $itemFirst = $('.itemName a:first');
      $itemLast = $('.itemName a:last');
      if (App.day === 6) {
        $icons.remove();
        $itemFirst.attr('href', '/');
        $itemLast.attr('href', '/');
      }
      if (App.day === 0) {
        $icons.remove();
        $itemFirst.attr('href', '/');
        $itemLast.attr('href', '/');
      }
    }
    if (page === "Menu") {
      App.collections.menus.reset(window.InitData);
      App.nullcheck();
      App.day2num();
      App.cat2num();
      App.sub_cat2num();
      App.dish2num();
      App.gl_load2num();
      sort_stage1 = App.groupCollectionsByCatOrder(App.collections.menus);
      sort_stage2 = App.sortMenuBySubCat(sort_stage1);
      compiledMenu = App.CompileMenu(sort_stage2);
      flatten_stage1 = _.flatten(compiledMenu);
      flatten_stage2 = App.flattenArrayofObjects(flatten_stage1);
      App.flattenedCollection = _.flatten(flatten_stage2);
      App.cleanedAndFlattenedCollection = App.cleanupSortedArray(App.flattenedCollection);
      App.initRenderProcess(App.cleanedAndFlattenedCollection);
      $kids = $('h3.sectionHead:contains("Leon Kids Menu")');
      $kids.attr('id', 'kids');
      $wraps = $('h3.sectionHead:contains("Hot Wraps")');
      $wraps.attr('id', 'wraps');
      return $('h3.sectionHead:contains("Dunkers")').remove();
    } else if (page === "Nutrition") {
      App.collections.menus.reset(window.InitData);
      App.nullcheck();
      App.day2num();
      App.cat2num();
      App.sub_cat2num();
      App.dish2num();
      App.gl_load2num();
      sort_stage1 = App.groupCollectionsByCatOrder(App.collections.menus);
      sort_stage2 = App.sortMenuBySubCat(sort_stage1);
      compiledMenu = App.CompileMenu(sort_stage2);
      flatten_stage1 = _.flatten(compiledMenu);
      flatten_stage2 = App.flattenArrayofObjects(flatten_stage1);
      App.flattenedCollection = _.flatten(flatten_stage2);
      App.cleanedAndFlattenedCollection = App.cleanupSortedArray(App.flattenedCollection);
      return App.initNutriRenderProcess(App.cleanedAndFlattenedCollection);
    } else if (page === "DishDetail") {
      query = window.location.search.substring(1);
      query_model_id = query.split('=')[1];
      App.collections.menus.reset(window.InitData);
      App.nullcheck();
      App.day2num();
      App.cat2num();
      App.sub_cat2num();
      App.dish2num();
      App.gl_load2num();
      sort_stage1 = App.groupCollectionsByCatOrder(App.collections.menus);
      sort_stage2 = App.sortMenuBySubCat(sort_stage1);
      compiledMenu = App.CompileMenu(sort_stage2);
      flatten_stage1 = _.flatten(compiledMenu);
      flatten_stage2 = App.flattenArrayofObjects(flatten_stage1);
      App.flattenedCollection = _.flatten(flatten_stage2);
      App.cleanedAndFlattenedCollection = App.cleanupSortedArray(App.flattenedCollection);
      return App.renderDishDetail(App.collections.menus.get(query_model_id));
    }
  };
  window.App = App;
}).call(this);

