Dvintage.Tabsnavigator = Class.create({
    initialize: function(sections, replaceElement){
	    this.options = Object.extend({
      		afterFinish:null,
			switchBackgrounds:null
		}, arguments[2] || { });
		this.sections = sections;
		this.replaceElement = replaceElement;
		this.tabs = [];
		this._insertTabs();
	},
	_insertTabs: function() {
		var tabsnavigator = new Element('div', {className:'tabsnavigator'});
		var tabsnavigatorcontainer = new Element('div', {className:'tabsnavigatorcontainer'});
		this.sections.each(function(element, i) {
			var tab = new Element('div').update(element.readAttribute('tabname'));
			tab.observe('click', function(){this._setSection(i)}.bind(this))
			tabsnavigatorcontainer.insert(tab);
			if (i == 0) {
				tab.addClassName('activetab');
			}
			this.tabs[i] = tab;
		}.bind(this));
		tabsnavigator.insert(tabsnavigatorcontainer);
		this.replaceElement.replace(tabsnavigator);

        this._setSection(this._calculateDefaultSection());
	},
	_setSection: function (sectionnumber) {
		this.sections.each(function(element, i) {
			if (i == sectionnumber) {
				element.show();
				this.tabs[i].addClassName('activetab');
			}
			else {
				element.hide();
				this.tabs[i].removeClassName('activetab');
			}
		}.bind(this))
		if (this.options.afterFinish) {
			this.options.afterFinish();
		}
		if (this.options.switchBackgrounds) {
			var bckgrnoption = this.options.switchBackgrounds;
			$(bckgrnoption.element).setStyle({backgroundImage:'url('+bckgrnoption.backgrounds[sectionnumber]+')'});
			if (this.options.switchBackgrounds.offsets) {
				var offset = this.options.switchBackgrounds.offsets[sectionnumber];
				if (offset.left && offset.top) {
					$(bckgrnoption.element).setStyle({
						backgroundPosition: offset.left + 'px ' + offset.top + 'px'
					});
				}
			}
		}
	},
    _calculateDefaultSection: function() {
		var defaultSection = 0;
        if(window.location.search) {
			var q = window.location.search.toQueryParams();
			if (!q.tab)
				return defaultSection;
            this.sections.each(function(element, i) {
                if(element.readAttribute('id') == q.tab) {
				   defaultSection = i;
                }
            });
        }
        return defaultSection;
    }
})