
	var textPadding = 3; // Padding at the left of tab text - bigger value gives you wider tabs
	var strictDocType = true; 
	var tabView_maxNumberOfTabs = 4;	// Maximum number of tabs

	var dhtmlgoodies_tabObj = new Array();

	var activeTabIndex = new Array();

	var MSIE = navigator.userAgent.indexOf('MSIE')>=0?true:false;

	

	var regExp = new RegExp(".*MSIE ([0-9]\.[0-9]).*","g");

	var navigatorVersion = navigator.userAgent.replace(regExp,'$1');

	

	var ajaxObjects = new Array();

	var tabView_countTabs = new Array();

	var tabViewHeight = new Array();

	var tabDivCounter = 0;

	var closeImageHeight = 8;	// Pixel height of close buttons

	var closeImageWidth = 8;	// Pixel height of close buttons

	

	

	function setPadding(obj,padding){

		var span = obj.getElementsByTagName('SPAN')[0];

		span.style.paddingLeft = padding + 'px';	

		span.style.paddingRight = padding + 'px';	

	}

	function showTab(parentId,tabIndex)

	{

		var parentId_div = parentId + "_";

		if(!document.getElementById('tabView' + parentId_div + tabIndex)){

			return;

		}

		if(activeTabIndex[parentId]>=0){

			if(activeTabIndex[parentId]==tabIndex){

				return;

			}

	

			var obj = document.getElementById('tabTab'+parentId_div + activeTabIndex[parentId]);

			

			obj.className='tabInactive';

			var img = obj.getElementsByTagName('IMG')[0];

			if(img.src.indexOf('tab_')==-1)img = obj.getElementsByTagName('IMG')[1];

			img.src = '/css-custom/images/tab_right_inactive.gif';

			document.getElementById('tabView' + parentId_div + activeTabIndex[parentId]).style.display='none';

		}

		

		var thisObj = document.getElementById('tabTab'+ parentId_div +tabIndex);	

			

		thisObj.className='tabActive';

		var img = thisObj.getElementsByTagName('IMG')[0];

		if(img.src.indexOf('tab_')==-1)img = thisObj.getElementsByTagName('IMG')[1];

		img.src = '/css-custom/images/tab_right_active.gif';

		

		document.getElementById('tabView' + parentId_div + tabIndex).style.display='block';

		activeTabIndex[parentId] = tabIndex;

		



		var parentObj = thisObj.parentNode;

		var aTab = parentObj.getElementsByTagName('DIV')[0];

		countObjects = 0;

		var startPos = 2;

		var previousObjectActive = false;

		while(aTab){

			if(aTab.tagName=='DIV'){

				if(previousObjectActive){

					previousObjectActive = false;

					startPos-=2;

				}

				if(aTab==thisObj){

					startPos-=2;

					previousObjectActive=true;

					setPadding(aTab,textPadding+1);

				}else{

					setPadding(aTab,textPadding);

				}

				

				aTab.style.left = startPos + 'px';

				countObjects++;

				startPos+=2;

			}			

			aTab = aTab.nextSibling;

		}

		

		return;

	}

	

	function tabClick()

	{

		var idArray = this.id.split('_');		

		showTab(this.parentNode.parentNode.id,idArray[idArray.length-1].replace(/[^0-9]/gi,''));

		

	}

	

	function rolloverTab()

	{

		if(this.className.indexOf('tabInactive')>=0){

			this.className='inactiveTabOver';

			var img = this.getElementsByTagName('IMG')[0];

			if(img.src.indexOf('tab_')<=0)img = this.getElementsByTagName('IMG')[1];

			img.src = '/css-custom/images/tab_right_over.gif';

		}

		

	}

	function rolloutTab()

	{

		if(this.className ==  'inactiveTabOver'){

			this.className='tabInactive';

			var img = this.getElementsByTagName('IMG')[0];

			if(img.src.indexOf('tab_')<=0)img = this.getElementsByTagName('IMG')[1];

			img.src = '/css-custom/images/tab_right_inactive.gif';

		}

		

	}

	

	function hoverTabViewCloseButton()

	{

		this.src = this.src.replace('close.gif','close_over.gif');

	}

	

	function stopHoverTabViewCloseButton()

	{

		this.src = this.src.replace('close_over.gif','close.gif');

	}

	

	function initTabs(mainContainerID,tabTitles,activeTab,width,height,closeButtonArray,additionalTab)

	{

		if(!closeButtonArray)closeButtonArray = new Array();

		

		if(!additionalTab || additionalTab=='undefined'){			

			dhtmlgoodies_tabObj[mainContainerID] = document.getElementById(mainContainerID);

			width = width + '';

			if(width.indexOf('%')<0)width= width + 'px';

			dhtmlgoodies_tabObj[mainContainerID].style.width = width;

						

			height = height + '';

			if(height.length>0){

				if(height.indexOf('%')<0)height= height + 'px';

				dhtmlgoodies_tabObj[mainContainerID].style.height = height;

			}

			



			tabViewHeight[mainContainerID] = height;

			

			var tabDiv = document.createElement('DIV');		

			var firstDiv = dhtmlgoodies_tabObj[mainContainerID].getElementsByTagName('DIV')[0];	

			

			dhtmlgoodies_tabObj[mainContainerID].insertBefore(tabDiv,firstDiv);	

			tabDiv.className = 'dhtmlgoodies_tabPane';			

			tabView_countTabs[mainContainerID] = 0;



		}else{

			var tabDiv = dhtmlgoodies_tabObj[mainContainerID].getElementsByTagName('DIV')[0];

			var firstDiv = dhtmlgoodies_tabObj[mainContainerID].getElementsByTagName('DIV')[1];

			height = tabViewHeight[mainContainerID];

			activeTab = tabView_countTabs[mainContainerID];		

	

			

		}

		

		

		

		for(var no=0;no<tabTitles.length;no++){

			var aTab = document.createElement('DIV');

			aTab.id = 'tabTab' + mainContainerID + "_" +  (no + tabView_countTabs[mainContainerID]);

			aTab.onmouseover = rolloverTab;

			aTab.onmouseout = rolloutTab;

			aTab.onclick = tabClick;

			aTab.className='tabInactive';

			tabDiv.appendChild(aTab);

			var span = document.createElement('SPAN');

			span.innerHTML = tabTitles[no];

			span.style.position = 'relative';

			aTab.appendChild(span);

			

			if(closeButtonArray[no]){

				var closeButton = document.createElement('IMG');

				closeButton.src = '/css-custom/images/close.gif';

				closeButton.height = closeImageHeight + 'px';

				closeButton.width = closeImageHeight + 'px';

				closeButton.setAttribute('height',closeImageHeight);

				closeButton.setAttribute('width',closeImageHeight);

				closeButton.style.position='absolute';

				closeButton.style.top = '6px';

				closeButton.style.right = '0px';

				closeButton.onmouseover = hoverTabViewCloseButton;

				closeButton.onmouseout = stopHoverTabViewCloseButton;

				

				span.innerHTML = span.innerHTML + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';	

				

				var deleteTxt = span.innerHTML+'';



				closeButton.onclick = function(){ deleteTab(this.parentNode.innerHTML) };

				span.appendChild(closeButton);

			}

			

			var img = document.createElement('IMG');

			img.valign = 'bottom';

			img.src = '/css-custom/images/tab_right_inactive.gif';

			// IE5.X FIX

			if((navigatorVersion && navigatorVersion<6) || (MSIE && !strictDocType)){

				img.style.styleFloat = 'none';

				img.style.position = 'relative';	

				img.style.top = '4px'

				span.style.paddingTop = '4px';

				aTab.style.cursor = 'hand';

			}	// End IE5.x FIX

			aTab.appendChild(img);

		}



		var tabs = dhtmlgoodies_tabObj[mainContainerID].getElementsByTagName('DIV');

		var divCounter = 0;

		for(var no=0;no<tabs.length;no++){

			if(tabs[no].className=='dhtmlgoodies_aTab' && tabs[no].parentNode.id == mainContainerID){

				if(height.length>0)tabs[no].style.height = height;

				tabs[no].style.display='none';

				tabs[no].id = 'tabView' + mainContainerID + "_" + divCounter;

				divCounter++;

			}			

		}	

		tabView_countTabs[mainContainerID] = tabView_countTabs[mainContainerID] + tabTitles.length;	

		showTab(mainContainerID,activeTab);



		return activeTab;

	}	

	

	function showAjaxTabContent(ajaxIndex,parentId,tabId)

	{

		var obj = document.getElementById('tabView'+parentId + '_' + tabId);

		obj.innerHTML = ajaxObjects[ajaxIndex].response;		

	}

	

	function resetTabIds(parentId)

	{

		var tabTitleCounter = 0;

		var tabContentCounter = 0;

		

		

		var divs = dhtmlgoodies_tabObj[parentId].getElementsByTagName('DIV');



		

		for(var no=0;no<divs.length;no++){

			if(divs[no].className=='dhtmlgoodies_aTab'){

				divs[no].id = 'tabView' + parentId + '_' + tabTitleCounter;

				tabTitleCounter++;

			}

			if(divs[no].id.indexOf('tabTab')>=0){

				divs[no].id = 'tabTab' + parentId + '_' + tabContentCounter;	

				tabContentCounter++;

			}	

			

				

		}

	

		tabView_countTabs[parentId] = tabContentCounter;

	}

	

	

	function createNewTab(parentId,tabTitle,tabContent,tabContentUrl,closeButton)

	{

		if(tabView_countTabs[parentId]>=tabView_maxNumberOfTabs)return;	// Maximum number of tabs reached - return

		var div = document.createElement('DIV');

		div.className = 'dhtmlgoodies_aTab';

		dhtmlgoodies_tabObj[parentId].appendChild(div);		



		var tabId = initTabs(parentId,Array(tabTitle),0,'','',Array(closeButton),true);

		if(tabContent)div.innerHTML = tabContent;

		if(tabContentUrl){		

			var ajaxIndex = ajaxObjects.length;

			ajaxObjects[ajaxIndex] = new sack();

			ajaxObjects[ajaxIndex].requestFile = tabContentUrl;	// Specifying which file to get



			ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxTabContent(ajaxIndex,parentId,tabId); };	// Specify function that will be executed after file has been found

			ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function	

		

		}

				

	}

	

	function getTabIndexByTitle(tabTitle)

	{

		var regExp = new RegExp("(.*?)&nbsp.*$","gi");

		tabTitle = tabTitle.replace(regExp,'$1');

		for(var prop in dhtmlgoodies_tabObj){

			var divs = dhtmlgoodies_tabObj[prop].getElementsByTagName('DIV');

			for(var no=0;no<divs.length;no++){

				if(divs[no].id.indexOf('tabTab')>=0){

					var span = divs[no].getElementsByTagName('SPAN')[0];

					var regExp2 = new RegExp("(.*?)&nbsp.*$","gi");

					var spanTitle = span.innerHTML.replace(regExp2,'$1');

					

					if(spanTitle == tabTitle){

						

						var tmpId = divs[no].id.split('_');						

						return Array(prop,tmpId[tmpId.length-1].replace(/[^0-9]/g,'')/1);

					}		

				}

			}

		}

		

		return -1;

		

	}

	

	/* Call this function if you want to display some content from external file in one of the tabs 

	Arguments: Title of tab and relative path to external file */

	

	function addAjaxContentToTab(tabTitle,tabContentUrl)

	{

		var index = getTabIndexByTitle(tabTitle);

		if(index!=-1){

			var ajaxIndex = ajaxObjects.length;

			

			tabId = index[1];

			parentId = index[0];

			

			

			ajaxObjects[ajaxIndex] = new sack();

			ajaxObjects[ajaxIndex].requestFile = tabContentUrl;	// Specifying which file to get



			ajaxObjects[ajaxIndex].onCompletion = function(){ showAjaxTabContent(ajaxIndex,parentId,tabId); };	// Specify function that will be executed after file has been found

			ajaxObjects[ajaxIndex].runAJAX();		// Execute AJAX function				

			

		}	

	}



	

	

	function deleteTab(tabLabel,tabIndex,parentId)

	{



		if(tabLabel){

			var index = getTabIndexByTitle(tabLabel);

			if(index!=-1){

				deleteTab(false,index[1],index[0]);

			}

			

		}else if(tabIndex>=0){

			if(document.getElementById('tabTab' + parentId + '_' + tabIndex)){

				var obj = document.getElementById('tabTab' + parentId + '_' + tabIndex);

				var id = obj.parentNode.parentNode.id;

				obj.parentNode.removeChild(obj);

				var obj2 = document.getElementById('tabView' + parentId + '_' + tabIndex);

				obj2.parentNode.removeChild(obj2);

				resetTabIds(parentId);

				activeTabIndex[parentId]=-1;

				showTab(parentId,'0');
			}			
		}
	}