// Plaintabs voor wisselen menu-items homepage

/*
Script: plaintabs.js
	PlainTabs provides a simple tabbed interface mechanism that requires only a
	minimal structure and does not require the introduction of superfluous CSS
	classes or identifiers.

License:
	MIT-style license, refer to LICENSE file.
	
Credits:
  James Thompson <james@plainprograms.com> - Implementation & Conceptual Refinements
  Shane Thacker <shane@shanethacker.com> - HTML Structural Concept
*/


/*
Class: PlainTabs

Implements:
  Options
  
Syntax:
  >var plaintabs = new PlainTabs(element, [{options}]);
  
Arguments:
  element - (string) Element acting as wrapper for tab set
  options - (hash, optional) see Options below
  
Options:
  activeTabClass - (string) CSS class to assign to active tabs and panels
  activateOnLoad - (integer) Count of which tab and panel to activate on load 
*/
	var PlainTabs = new Class({
	  options: {
		activeTabClass: 'actief',
		activateOnLoad: 1
	  },
	  
	  initialize: function(tabarea, options) {
		this.setOptions(options);
		
		this.tabarea = $(tabarea);
		
		this.tabs = this.tabarea.getElement('ul').getElements('li');
		firstPanel = this.tabarea.getElement('div');
		
		this.panels = new Array();
		
		this.panels.combine([firstPanel]);
		
		currentPanel = firstPanel.getNext();
		
		for(var i = 1; i <= this.tabs.length - 1; i++){
		  this.panels[i] = currentPanel;
		  
		  currentPanel = currentPanel.getNext();
		};
		
		this.tabs.each(function(item, index) {
		  item.addEvent('click', function() {
			this.activate(index + 1);
		  }.bind(this));
		}.bind(this));
		
		if(this.options.activateOnLoad != 'none')
			{
				this.activate(this.options.activateOnLoad, true);	
			}
	  },
	  
	  activate: function(tabNumber, skipAnim) {
		if(! $defined(skipAnim))
			{
				skipAnim = false;
			}
			
			tabIndex = tabNumber - 1;
			
			tab = this.tabs[tabIndex];
			tabPanel = this.panels[tabIndex];
			
			this.deactivate();
		  
		  tab.addClass(this.options.activeTabClass);
		  tabPanel.addClass(this.options.activeTabClass);
	  },
	  
	  deactivate: function() {
		activeTabs = this.tabarea.getElement('ul').getElements('li.' + this.options.activeTabClass);
		
		activeTabs.each(function(item){
		  item.removeClass(this.options.activeTabClass);
		}.bind(this));
		
		this.panels.each(function(item){
		  if(item.hasClass(this.options.activeTabClass)){
			item.removeClass(this.options.activeTabClass);
		  }
		}.bind(this));
	  }
	});


PlainTabs.implement(new Options);