FauxRM.model('Page', {order : 'menu_position'});


Object.extend(Page, {
  
  defaultPosition : function() {
    return Math.floor(document.viewport.getDimensions().height / 3);
  },
  
  loadPages : function(setting, first) {
    var self = this;
    
    var readyToRoll = function(page) {
      Menu.initialize(self);
      Typewriter.initialize();
      Typewriter.loadPage(page);
    }.bind(this);
    
    var afterLoad = function() {
      if (setting) var active = setting.get('value');
      var page = active ? Page.get(active) : Page.first(); 
      if (!page) {
        page = new Page();
        page.set('text', Templates.defaultPage);
        page.setTitle();
        page.set('page_position', Page.defaultPosition());
        page.save();
      }
      if (first.get('value') || page.get('text').length < 1) {
        get('.first_timer').show();
        var intro = get('.introduction');
        intro.onclick = function() {
          first.set('value', false);
          first.save(); 
          intro.hide();
          readyToRoll(page);
        };
        intro.show();
      } else {
        readyToRoll(page);
      }
    }.bind(this);
    
    this.load(afterLoad, {order : 'menu_position'});
  }
  
});


Page.addMethods({
  
  setTitle : function() {
    this.set('title', this.get('text').truncate(50));
  },
  
  saveText : function(text) {
    this.set('text', text);
    this.setTitle();
    this.save();
    Menu.updateMenuItem(this);
  }
  
});