function Dashboard() 
{	
  this.location = "/account/dashboard_pane/";
  
	this.tabs = $('dashboard-pills').getElementsByTagName('li');
	this.default_tab = this.tabs[0].getElementsByTagName('a')[0];
	//this.default_tab_title = this.tabs[0].getElementsByTagName('a')[0].innerHTML.replace(/ /g, "_").toLowerCase();
	
	this.body = $('dashboard-panes');
	this.body_id ="dashboard-panes";
	
	this.bind();
	
	this.update_tab(this, this.default_tab);
	//this.update_tab(this, this.default_tab, this.default_tab_title);
}

Dashboard.prototype.bind = function() 
{
  var o = this;
  for(var i = 0; i < this.tabs.length; i++) {
    var tab = this.tabs[i];
    var tab_anchor = tab.getElementsByTagName('a')[0];
    tab_anchor.onclick = function() { 
      //var tab_title = this.innerHTML.replace(/ /g, "_").toLowerCase();
      o.update_tab(o, this);
      return false;
    }
  }
}
//Dashboard.prototype.update_tab = function(o, tab, tab_title)
Dashboard.prototype.update_tab = function(o, tab)
{
  var tab_title = tab.innerHTML.replace(/ /g, "_").toLowerCase();
  new Ajax.Updater(o.body_id, o.location + tab_title, {
    onLoading: function() {
      $('dashboard-pills').addClassName('loading');
      o.activate_tab(tab);
    },
    onComplete: function() {
      $('dashboard-pills').removeClassName('loading');
      o.nudge_widgets();
    }
  }); 
  return false;
}
Dashboard.prototype.activate_tab = function(tab) {
  for(var i = 0; i < this.tabs.length; i++) {
    this.tabs[i].getElementsByTagName('a')[0] == tab ? this.tabs[i].addClassName('active') : this.tabs[i].removeClassName('active');
  }
}
Dashboard.prototype.choose_tab = function(title) {
  for(var i = 0; i < this.tabs.length; i++) {
    tab = this.tabs[i].getElementsByTagName('a')[0];
    if (tab.innerHTML == title) {
      this.update_tab(this, tab);
    }
  }
}
Dashboard.prototype.nudge_widgets = function() {   
  var widgets = document.getElementsByClassName('widget');    
  for (var i = 0; i < widgets.length; i++) {
    if (!widgets[i].getAttribute('attached')) {
      widgets[i].setAttribute('attached', 'true');
      new Widget(widgets[i].id, widgets[i].getAttribute('title'));
    }
  }
}
