
Element.addMethods({
  scrollTo: function(element, left, top){
    var element = $(element);
    if (arguments.length == 1){
      var pos = element.cumulativeOffset();
      window.scrollTo(pos[0], pos[1]);
    } else {
      element.scrollLeft = left;
      element.scrollTop  = top;
    }
    return element;
  }
});
Effect.Scroll = Class.create();
Object.extend(Object.extend(Effect.Scroll.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = $(element);
    if(!this.element) throw(Effect._elementDoesNotExistError);
    this.start(Object.extend({x: 0, y: 0}, arguments[1] || {}));
  },
  setup: function() {
    var scrollOffsets = (this.element == window) 
                ? document.viewport.getScrollOffsets() 
                : Element._returnOffset(this.element.scrollLeft, this.element.scrollTop) ;
    this.originalScrollLeft = scrollOffsets.left;
    this.originalScrollTop  = scrollOffsets.top;
  },
  update: function(pos) {
    this.element.scrollTo(Math.round(this.options.x * pos + this.originalScrollLeft), Math.round(this.options.y * pos + this.originalScrollTop));
  }
});


function init(event) {
	tabify_tabables()
}
function tabify_tabables() {
	if ($('tabs')) {
	$$("#dblocks #tabs a").each(function(a){ a.observe('click', toggle_tab) })
	block = $$('#dblocks #tabs a').first()
	block.addClassName('selected')
	$(block.getAttribute('href').split("#").last()).addClassName("selected")
	}
}

function toggle_tab(event) {
	$$('#tabs a').invoke('removeClassName', 'selected')
	this.addClassName('selected')
	$$('#dblocks div').invoke("setStyle", "display:none;")
	$(this.getAttribute("href").split("#").last()).setStyle('display:block')
	Event.stop(event)
	return false
}


document.observe('dom:loaded', init)