function clsTabs(){
var ClassNameOver = 'over';
var ClassNameOut = 'out';
var ClassNameClick = 'selected';
var ClassNamePanel = 'panel';

var Tab = null
var listObj = new Array();
var publicObj = null;
var lastObj = null;
var SelectedTab = null;
var ClassName = '';
var delayFade = 400;
this.nInt = 0;
this.nTime = 0;
this.nAct = 0;
this.nOldAct = null;
this.aDivs = null;
this.nDur = 0;
this.nID1 = null;
this.nID2 = null;
var _interrupt=null;

this.setInterrupt = function(fnname){
	_interrupt = fnname;	
};
this.init = function(TabName, classname, selectedTab, delayTime){
if(typeof TabName!='object')
TabName = document.getElementById(TabName);
if(typeof TabName!='object')
return;
delay = delayTime;
Tab = TabName;
ClassName = classname;
Tab.setAttribute("class",ClassName);
Tab.className = ClassName;
if(selectedTab && selectedTab!='' && typeof selectedTab!='object')
SelectedTab = selectedTab;

var tempObj = Tab.getElementsByTagName("li");
for(var i=0,j=0;i<tempObj.length;i++){
listObj[j]=tempObj[i];
listObj[j].setAttribute("class",ClassNameOut);
listObj[j].className = ClassNameOut;

EventUtil.removeEventHandler(listObj[j], "mouseover", OverLi);
EventUtil.removeEventHandler(listObj[j], "mouseout", OutLi);
EventUtil.removeEventHandler(listObj[j], "click", ClickLi);

EventUtil.addEventHandler(listObj[j], "mouseover", OverLi);
EventUtil.addEventHandler(listObj[j], "mouseout", OutLi);
EventUtil.addEventHandler(listObj[j], "click", ClickLi);

document.getElementById(listObj[j].getAttribute('link')).style.display = 'none';
document.getElementById(listObj[j].getAttribute('link')).setAttribute("class",ClassNamePanel);
document.getElementById(listObj[j].getAttribute('link')).className = ClassNamePanel;
if(listObj[j].getAttribute("link")==SelectedTab){
SelectedTab = listObj[j];
onClickLi(SelectedTab);
}
j++;
}
};


function initPrivate(){
var tempObj = Tab.getElementsByTagName("li");
for(var i=0,j=0;i<tempObj.length;i++)
if(tempObj[i].getAttribute("link")){
listObj[j]=tempObj[i];
listObj[j].setAttribute("class",ClassNameOut);
listObj[j].className = ClassNameOut;

EventUtil.removeEventHandler(listObj[j], "mouseover", OverLi);
EventUtil.removeEventHandler(listObj[j], "mouseout", OutLi);
EventUtil.removeEventHandler(listObj[j], "click", ClickLi);

EventUtil.addEventHandler(listObj[j], "mouseover", OverLi);
EventUtil.addEventHandler(listObj[j], "mouseout", OutLi);
EventUtil.addEventHandler(listObj[j], "click", ClickLi);

j++;
}
};


function OverLi(){
var obj = EventUtil.getEvent();
obj = obj.target;
if(!obj.getAttribute("link"))
return;
obj.setAttribute("class",ClassNameOver);
obj.className = ClassNameOver;
EventUtil.addEventHandler(obj, "selectstart", DisableSelection);
};


function OutLi(){
var obj = EventUtil.getEvent();
obj = obj.target;
if(!obj.getAttribute("link"))
return;
obj.setAttribute("class",ClassNameOut);
obj.className = ClassNameOut;
EventUtil.removeEventHandler(obj, "selectstart", DisableSelection);
};


function ClickLi(){
var obj = null;
if(typeof outobject=='object')
obj = outobject;
else{
obj = EventUtil.getEvent();
obj = obj.target;
}
if(!obj.getAttribute("link"))
return;
initPrivate();
obj.setAttribute("class",ClassNameClick);
obj.className = ClassNameClick;
EventUtil.removeEventHandler(obj,"mouseover",OverLi);
EventUtil.removeEventHandler(obj,"mouseout",OutLi);
EventUtil.removeEventHandler(obj,"click",ClickLi);
lastObj = publicObj;
publicObj = document.getElementById(obj.getAttribute("link"));
ShowDiv(obj);
};


function onClickLi(obj){
initPrivate();
obj.setAttribute("class",ClassNameClick);
obj.className = ClassNameClick;
EventUtil.removeEventHandler(obj,"mouseover",OverLi);
EventUtil.removeEventHandler(obj,"mouseout",OutLi);
EventUtil.removeEventHandler(obj,"click",ClickLi);
lastObj = publicObj;
publicObj = document.getElementById(obj.getAttribute("link"));
ShowDiv(obj);
};


function ShowDiv(obj){
	var temp;
	for(var i=0;i<listObj.length;i++){
		try{temp=lastObj.id;}catch(e){temp=null;}
		if(listObj[i].getAttribute("link")!=obj.getAttribute("link") && temp!=listObj[i].getAttribute("link"))
			document.getElementById(listObj[i].getAttribute("link")).style.display = 'none';
	}

var temp = new Array();
var t1 = publicObj;
if(_interrupt){
	_interrupt(publicObj,'show');
	_interrupt(lastObj,'hidden');
}
if(publicObj)
	t1 = publicObj.id;
var t2 = lastObj;
	if(lastObj)
t2 = lastObj.id;
if(t1 && t2)
temp = new Array(t1,t2);
else if(t1 && !t2)
temp = new Array(t1);
else if(!t1 && t2)
temp = new Array(t2);

publicObj.style.display = 'block';
Crossfader(temp);
};

function DisableSelection(){
return 0;
};


function Crossfader(divs){
this.nAct = -1;
this.aDivs = divs;
for (var i=0;i<divs.length;i++){
document.getElementById(divs[i]).style.opacity = 0;
document.getElementById(divs[i]).style.position = "absolute";
document.getElementById(divs[i]).style.filter = "alpha(opacity=0)";
document.getElementById(divs[i]).style.opacity = "0.0";
document.getElementById(divs[i]).style.visibility = "hidden";
document.getElementById(divs[i]).style.display = "none";
}

this.nDur = delayFade;
_newfade();
};

function _newfade(){
if (this.nID1)
clearInterval(this.nID1);

this.nOldAct = this.nAct;
this.nAct++;
if (!this.aDivs[this.nAct])	this.nAct = 0;

if (this.nAct == this.nOldAct)
return false;

document.getElementById( this.aDivs[this.nAct] ).style.visibility = "visible";
document.getElementById( this.aDivs[this.nAct] ).style.display = "block";
document.getElementById( this.aDivs[this.nAct] ).style.position = "";

this.nInt = 50;
this.nTime = 0;

var p=this;

clearInterval( this.nID2 );
this.nID2 = setInterval(function() { _fade() }, this.nInt);
};


function _fade(){
this.nTime += this.nInt;

var ieop = Math.round( _easeInOut(this.nTime, 0, 1, this.nDur) * 100 );
var op = ieop / 100;
document.getElementById( this.aDivs[this.nAct] ).style.opacity = op;
document.getElementById( this.aDivs[this.nAct] ).style.filter = "alpha(opacity="+ieop+")";

if (this.nOldAct > -1)
{
document.getElementById( this.aDivs[this.nOldAct] ).style.opacity = 1 - op;
document.getElementById( this.aDivs[this.nOldAct] ).style.filter = "alpha(opacity="+(100 - ieop)+")";
}

if (this.nTime == this.nDur)
{
clearInterval( this.nID2 );

if (this.nOldAct > -1)
document.getElementById( this.aDivs[this.nOldAct] ).style.visibility = "hidden";	

var p=this;
}
};

function _easeInOut(t,b,c,d){
return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;
};


this.setItem = function(obj){
var t = ClickLi;
t(obj);
};}
