/**
 *
 * Javascript Widgets 2000
 * Javascript reusable GUI components.
 * Copyright by ChieftainY2k
 *
 * Designed, coded and maintained by ChieftainY2k , www.ChieftainY2k.net
 * ChieftainY2k[at]Y2k-design[dot]net
 * ChieftainY2k[at]vip[dot]interia[dot]pl
 * ChieftainY2k[at]anronet[dot]pl
 *
 * Post all questions regarding licensing to one of the addresses given above.
 *
 */

/*

 Tab Pane Interface
 ver 1.0

 Usage example:

		<style> @import url(jsw2000/w-tabpane-xp2.css); </style>
		<script src="jsw2000/w-tabpane.js"></script>

		<div id="panel2-tab1" class="panel_hidden">pane2 tab1</div>
		<div id="panel2-tab2" class="panel_hidden">pane2 tab2</div>
		<div id="panel2-tab3" class="panel_hidden">pane2 tab3</div>
		<div id="panel2-tab1-body" class="panel_hidden">ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota ala ma kota </div>
		<div id="panel2-tab2-body" class="panel_hidden">contents 2</div>
		<div id="panel2-tab3-body" class="panel_hidden">contents 3</div>
		<script>tabpane_init("panel2",'',100,'xp2');</script>

*/


//initialize all tab panels on the page
function tabpane_init(setName,defaultTabId,defaultHeight,themeName,tabsWidth)
 {
	var obj,tmp;

	if (!themeName) themeName='';
	themePrefix = themeName?themeName+"_":"";

	//get all DIVs
	var elements = document.getElementsByTagName("div");
	//scan for tabsnames for this tabset
 	eval("var tabPanelRegex = /^"+setName+"\-[a-z0-9]*$/i;");
	for ( var i = 0; (i<elements.length); i++ )
	 if ( tabPanelRegex.test(elements[i].id) )
			{
				obj = elements[i];
				//assign properties, styles etc....
				obj.className=themePrefix+"panel_tab";
				tmp = obj.id.split("-"); //get panelset name and tab name
				setName = tmp[0];
				paneName = tmp[1];
				//set handlers for this tab
				eval("obj.attachEvent('onclick',     function () { tabpane_click('"+setName+"','"+paneName+"'); });");
				eval("obj.attachEvent('onmouseover', function () { tabpane_mouseover('"+setName+"','"+paneName+"'); });");
				eval("obj.attachEvent('onmouseout',  function () { tabpane_mouseout('"+setName+"','"+paneName+"'); });");
				var innerHTML = obj.innerHTML;
				obj.innerHTML ='';
				//rearrange tab contents
				obj.insertAdjacentHTML('beforeEnd',"<div id='"+setName+"-"+paneName+"-left' class='"+themePrefix+"panel_tab_left'></div>");
				obj.insertAdjacentHTML('beforeEnd',"<div id='"+setName+"-"+paneName+"-text' class='"+themePrefix+"panel_tab_text' style='"+(tabsWidth ? "width:"+tabsWidth+"" : "")+"'>"+innerHTML+"</div>");
				obj.insertAdjacentHTML('beforeEnd',"<div id='"+setName+"-"+paneName+"-right' class='"+themePrefix+"panel_tab_right'></div>");
				//alert(setName+"-"+paneName);
				//obj.insertAdjacentHTML('beforeEnd',"<div style='background:red; display:inline; top:-3px;'>a</div>");
				document.all[obj.id+"-body"].className=themePrefix+"panel_body";
				if (defaultHeight) document.all[obj.id+"-body"].style.height=defaultHeight;
				if (!defaultTabId) defaultTabId=paneName; //get default tab to activate
			};
	//alert(themePrefix);
	//create vars for this panelset
	eval("document.tabset_"+setName+"_currId = 0;");
	eval("document.tabset_"+setName+"_themeName = themeName;");
	//actavate first tab
	if (defaultTabId) tabpane_click(setName,defaultTabId);
 };

//set tabset bodies height
function tabpane_setheight(setName, newHeight)
 {
	newHeight = Math.max(0,newHeight);
	//get and scan all DIVs
	var elements = document.getElementsByTagName("div");
 	eval("var tabPanelRegex = /^"+setName+"\-[a-z0-9]*$/i;");
	for ( var i = 0; (i<elements.length); i++ )
 	 if ( tabPanelRegex.test(elements[i].id) )
	  document.all[elements[i].id+"-body"].style.height=newHeight;
 };

//tab was clicked
function tabpane_click(setName,newId)
  {
  	//alert("tabpane_click("+setName+","+newId+")");
	eval("var themeName = document.tabset_"+setName+"_themeName;");
	themePrefix = themeName?themeName+"_":"";
	eval("var currId = document.tabset_"+setName+"_currId;");
	if (currId==newId) return; //no need to change it
	if (currId)
	{
		//disable current tab
		document.all[setName+"-"+currId].className=themePrefix+"panel_tab";
		document.all[setName+"-"+currId+"-left"].className=themePrefix+"panel_tab_left";
		document.all[setName+"-"+currId+"-text"].className=themePrefix+"panel_tab_text";
		document.all[setName+"-"+currId+"-right"].className=themePrefix+"panel_tab_right";
		document.all[setName+"-"+currId+"-body"].style.display = "none";
	};
	//enable new tab
	document.all[setName+"-"+newId].className=themePrefix+"panel_tab_active";
	document.all[setName+"-"+newId+"-left"].className=themePrefix+"panel_tab_active_left";
	document.all[setName+"-"+newId+"-text"].className=themePrefix+"panel_tab_active_text";
	document.all[setName+"-"+newId+"-right"].className=themePrefix+"panel_tab_active_right";
	document.all[setName+"-"+newId+"-body"].style.display = "block";
	//save current pane ID for this panelset
	eval("document.tabset_"+setName+"_currId = newId;");
  };

function tabpane_mouseover(setName,tabId)
  {
	eval("var themeName = document.tabset_"+setName+"_themeName;");
	themePrefix = themeName?themeName+"_":"";
	eval("var currId = document.tabset_"+setName+"_currId;");
	if (currId==tabId) return; //this tab is active already
	document.all[setName+"-"+tabId].className=themePrefix+"panel_tab_hover";
	document.all[setName+"-"+tabId+"-left"].className=themePrefix+"panel_tab_hover_left";
	document.all[setName+"-"+tabId+"-text"].className=themePrefix+"panel_tab_hover_text";
	document.all[setName+"-"+tabId+"-right"].className=themePrefix+"panel_tab_hover_right";
  };

function tabpane_mouseout(setName,tabId)
  {
	eval("var themeName = document.tabset_"+setName+"_themeName;");
	themePrefix = themeName?themeName+"_":"";
	eval("var currId = document.tabset_"+setName+"_currId;");
	if (currId==tabId) return; //this tab is active already
	document.all[setName+"-"+tabId].className=themePrefix+"panel_tab";
	document.all[setName+"-"+tabId+"-left"].className=themePrefix+"panel_tab_left";
	document.all[setName+"-"+tabId+"-text"].className=themePrefix+"panel_tab_text";
	document.all[setName+"-"+tabId+"-right"].className=themePrefix+"panel_tab_right";
  };
//tabs switcher end ////////////////////////////////////////////////////////////////////


