﻿/*
* This file contains the functions to handle tabs on a page.
*/


var currentTab;
var totalTabCount;
var maxTabsPerRow;
var maxLengthOfRow;
var showNav,showNav2;
function tabstrip()
{
   this.tabs = new Array();
   this.add = addTab;
   this.write = writeTabstrip;
}

function tab(caption)
{
  this.setId = setId;
  this.caption = caption;
  this.write = writeTab;
}

function addTab(tab)
{
  tab.setId("tab" + eval(this.tabs.length+1));
  this.tabs[this.tabs.length] = tab;
}

function setId(id)
{
  this.id = id;
}

function initiate()
{    
  if (currentTab=="")
    currentTab = 1;
  var div = document.getElementById("tab"+currentTab);
  showPane(div);
}

function showPane(div)
{
	var tr,tb, td, lk;
	var classCount;
		for(var i=1;i<(totalTabCount+1);++i)
		{
		    classCount = i%8;
			tr=document.getElementById("datatab"+ i);
	        td=document.getElementById("top_"+ i);
	        lk=document.getElementById("linktab"+ i);
			tr.style.display = "none";
			tb=document.getElementById("tab"+ i);			
			tr.className="datatab";
			if (div.id=="tab"+ i)
			{
			    tb.className="selectedTab";
			    tb.style.color = "white";
			    lk.className = "blackTabLink";
			    td.innerHTML = "<b class='tab1_color'></b><b class='tab2_color'></b><b class='tab3_color'></b><b class='tab4_color'></b>";			   			
			}
			else
			{
			    tb.style.color = "black";
			    tb.className="unselectedTab";
			    lk.className = "tabLink";
			    td.innerHTML = "<b class='tab1_color2'></b><b class='tab2_color2'></b><b class='tab3_color2'></b><b class='tab4_color2'></b>";			 
			}
		}
        
		currentTab = div;
		var trial = document.getElementById("data"+ div.id);
		trial.style.display = "block";
		if (findElement("CurrentTabVal")!=null)
		{
		    findElement("CurrentTabVal").value = div.id;
		}
		if ((window.showNav) && (showNav==1))
		{	
			if (window.checkClickCondn)
				checkClickCondn(div.id);
			showButtons();
		}
	
		if ((window.showNav2) && (showNav2==1))
		{	
		 	if ( (! window.showNav) && (window.checkClickCondn) )
				checkClickCondn(div.id);
			showButtons2();
		}
}

function writeTab()
{
   var width = eval(100)/eval(maxTabsPerRow);
   var str="<td height='100%' width='"+ width +"%' id='" + this.id + "' onclick='showPane(this)' align='center'>";
   //str = str + "<a href='#' class=tabLink id='link"+ this.id +"'>" + this.caption + "</a></td>";
     str = str + "<a href='#tabs' class=tabLink id='link"+ this.id +"'>" + this.caption + "</a></td>";
   return(str);
}

function max(val1,val2)
{
	if (val1>val2)
		return val1;
	else 
		return val2;
}

function min(val1,val2)
{
	if (val1<val2)
		return val1;
	else 
		return val2;
}

function writeTabstrip()
{
var maxTabs=maxTabsPerRow;
var maxLength=maxLengthOfRow;
var i=-1,chrCount=0,maxed=0,done="false";
var rows,init=0,inserts="",upperLimit=0;
rows=this.tabs.length/maxTabs;
var tabsInTop;
if (totalTabCount<maxTabsPerRow)
    tabsInTop = totalTabCount;
else
    tabsInTop = maxTabsPerRow;
    
if (rows==0)
	rows=1;
for (var j=0;j<rows;++j)
{
	while(done=="false")
	{
	if (maxed==0)
	{
		init=j*maxTabs;
		if (upperLimit>0)
			init=max(init,upperLimit);
	}
	else 
		init=maxed+1;
	chrCount=0;
	if (inserts.length!=0)
	{
		inserts=inserts+"<table width='100%' class=tabTable cellpadding=0 cellspacing=0 border=0>";
		inserts = inserts + "<tr>";
		for (var j=0;j<tabsInTop;++j)
        {
		    inserts = inserts + "<td id='top_"+ (j+1) +"'></td>";
		}
		inserts = inserts + "</tr>";
		inserts=inserts+"<tr>";
	}
	else
	{	    
		inserts="<table width='100%' class=tabTable cellpadding=0 cellspacing=0 border=0>";
		inserts = inserts + "<tr>";
		for (var j=0;j<tabsInTop;++j)
        {
		    inserts = inserts + "<td id='top_"+ (j+1) +"'></td>";
		}
		inserts = inserts + "</tr>";
		inserts=inserts+"<tr>";
	}
	upperLimit=min(this.tabs.length,init+maxTabs);
	maxed=0;
	for(i = init;i<upperLimit; i++)
	{
		if (maxed==0)
		{
			chrCount = chrCount + this.tabs[i].caption.length;			
			inserts=inserts+this.tabs[i].write();
			if (chrCount>maxLength)			
				maxed=i;
		}
	}
	if (maxed==0)
		done="true";
	else
		done="false";
	inserts=inserts+"</tr>";
	inserts=inserts+"</table>";
	}
	done="false";
}
var ts = document.getElementById("ts");
if (ts != null) {
    ts.innerHTML = inserts;
    initiate();

}
}




