/*Yetii - Yet (E)Another Tab Interface Implementation,version 1.2,http://www.kminek.pl/lab/yetii/,

Copyright (c) 2007-2008 Grzegorz Wojcik,Code licensed under the BSD License: http://www.kminek.pl/bsdlicense.txt*/

function Yetii(){
	this.defaults={id:null,active:1,interval:null,wait:null,tabclass:'tab',activeclass:'active',callback:null,start_google:null};
	for(var n in arguments[0])
	{
		this.defaults[n]=arguments[0][n]
	};
	
	this.getTabs=function()
	{	var a=[];
		var b=document.getElementById(this.defaults.id).getElementsByTagName('*');
		var c=new RegExp("(^|\\s)"+this.defaults.tabclass.replace(/\-/g,"\\-")+"(\\s|$)");
		for(var i=0;i<b.length;i++)
		{
			if(c.test(b[i].className))a.push(b[i])
		}
		return a
	};
	
	this.links=document.getElementById(this.defaults.id+'-nav').getElementsByTagName('a');
	
	this.show=function(a)
	{
		for(var i=0;i<this.tabs.length;i++)
		{
			this.tabs[i].style.display=((i+1)==a)?'block':'none';
			this.links[i].className=((i+1)==a)?this.defaults.activeclass:''
					
		}
		if ((this.defaults.start_google>0) && (this.defaults.start_google==a)) { load_maps(); }
		this.defaults.active=a;
	if(this.defaults.callback)this.defaults.callback(a)
	};
	
	this.rotate=function(a)
	{
		this.show(this.defaults.active);
		this.defaults.active++;if(this.defaults.active>this.tabs.length)this.defaults.active=1;
		var b=this;
		if(this.defaults.wait)clearTimeout(this.timer2);
		this.timer1=setTimeout(
				function()
				{b.rotate(a)
				},a*1000)
	};
	
	this.next=function()
	{
		this.defaults.active++;if(this.defaults.active>this.tabs.length)this.defaults.active=1;
		this.show(this.defaults.active)};
		
	this.previous=function()
	{this.defaults.active--;
	if(!this.defaults.active)this.defaults.active=this.tabs.length;
	this.show(this.defaults.active)};
	this.tabs=this.getTabs();
	this.show(this.defaults.active);
	var d=this;
	for(var i=0;i<this.links.length;i++){this.links[i].customindex=i+1;
	this.links[i].onclick=function()
	{
		if(d.timer1)clearTimeout(d.timer1);
		if(d.timer2)clearTimeout(d.timer2);
		d.show(this.customindex);
	if(d.defaults.wait)d.timer2=setTimeout(function()
			{d.rotate(d.defaults.interval)},d.defaults.wait*1000);
	return false}}
	if(this.defaults.interval)
	this.rotate(this.defaults.interval)
	};