/* TAB SWAP
*******************************/
var TabSwap = function(id) {
  this.create(id);
}
var TabSwapArray = new Array();

$.extend(TabSwap.prototype, {
	_id : '',
	_self : 0,
	_links : 0,
	_elem : '',
	_tabs : '',
	_contenttabs : '',
	_current : '',
	create : function(id){
		this._id = id;
		this._elem = $(id);
		this._tabs = $('dt',this._elem);
		currentset = false;
		if(window.location.href.indexOf('#')!= -1){
			hash = window.location.href.split('#');
			hash = hash[1];
		}else{
			hash = '';	
		}
		for(x=0;x<this._tabs.length;x++){
			$(this._tabs[x]).bind('click', {obj:this, tab:x}, this.switchTab);
			tmplinks = $('a[href*="#' + this._tabs[x].id + '"]');
			if(tmplinks.length>0){
				tmplinks.attr('href',"javascript:void(0);");
				tmplinks.bind('click', {obj:this, tab:x}, this.switchTab);
			}
			if(hash!='' && hash == this._tabs[x].id){
				this._tabs[x].id='current';
				$(this._tabs[x]).addClass('current-' + this._tabs[x].className);
				currentset = true;
				this._current = x;
			}
		
			//SPECIAL FOR tabbed-window
			if(id.className == 'tabbed-window'){
				$(this._tabs[x]).css({'width':(300-(this._tabs.length*20))/this._tabs.length, 'left':((300-(this._tabs.length*20))/this._tabs.length+20) * x});
			}
		}
		
		if(!currentset){
			//this._tabs[0].id='current';
			this._tabs[0].className='current';
			this._current = 0;
			//$(this._tabs[0]).addClass('current-' + this._tabs[0].className);
		}
		
		this._contenttabs = $('dd',this._elem);
		this._contenttabs.css('display', 'none');
		$(this._contenttabs[this._current]).css('display', 'block');
		
	},
	switchTab:function(eve){
		if(eve.data.obj._contenttabs[eve.data.tab] && eve.data.tab !=eve.data.obj._current){
				eve.data.obj._tabs[eve.data.obj._current].className = '';
				eve.data.obj._tabs[eve.data.tab].className = 'current';
				//$(eve.data.obj._tabs[eve.data.obj._current]).removeClass('current-' + eve.data.obj._tabs[eve.data.obj._current].className);
				//$(eve.data.obj._tabs[eve.data.tab]).addClass('current-' + eve.data.obj._tabs[eve.data.tab].className);
				$(eve.data.obj._contenttabs[eve.data.obj._current]).css('display','none');
				$(eve.data.obj._contenttabs[eve.data.tab]).css('display','block');
				eve.data.obj._current = eve.data.tab;
		}
	}
	
});

$(document).ready(function(){
	if($('.tabbed-window').length > 0){
		TabSwapArray[0] = new TabSwap($('.tabbed-window')[0]);
		$('body').addClass('tabswap');
	}
});
