﻿/* 
 *  TabStrip js handler 
 *   v0.01 by demon 
 */
 
// #Region "Class TabStrip"
function TabStrip()
{
    this.selectedTabIndex = null;
    this.placeHolder	  = null;   
    this.tabs             = [];
    this.containers       = [];
    this.status           = null;
}
// #End Region

// #Region "Assign Methods"
TabStrip.prototype.selectTab    = _selectTab;
TabStrip.prototype.isSelected   = _isSelected;
TabStrip.prototype.isLoading    = null; 
TabStrip.prototype.setStatus    = _setStatus;
TabStrip.prototype.getStatus    = _getStatus;
TabStrip.prototype.statusType   = {ready:0, loading:1, pending:2};
TabStrip.prototype.overTab      = _overTab;
// #End Region

// Region "Methods"
function _selectTab(tabIndex)
{	
    if(this.status != this.statusType.loading)
    {
        if(!this.isSelected(tabIndex))
		{		
		    // Select desired tab		    
		    var tab = findObj(this.tabs[tabIndex]);
		    var container = findObj(this.containers[tabIndex]);
		    		   		    
		    _internalSelectTab(tab, container, true);
								
			// Unselected previous
			var selectedTab = findObj(this.tabs[this.selectedTabIndex]);
			var selectedContainer = findObj(this.containers[this.selectedTabIndex]);
									
			_internalSelectTab(selectedTab, selectedContainer, false);
			
			// Set as selected the new on
			this.selectedTabIndex = tabIndex;
		}
		
		// Changed Status
		if(this.status == this.statusType.pending)
			this.status = this.statusType.loading;
    }    
}

// Tab on over
function _overTab(src, on)
{
    var divs = src.getElementsByTagName('div');
	divs[2].style.textDecoration = (on ? 'underline' : '');
}

// Private method
function _internalSelectTab(src, container, on)
{       	
	// Load divs && change to active			
	var divs = src.getElementsByTagName('div');
	var prefix = (on ? 's' : 'us');
	
	divs[0].getElementsByTagName('img')[0].src = '/images/tabs2/' + prefix + '_left.gif';
	divs[1].style.background = 'url(/images/tabs2/' + prefix + '_tile.gif) repeat-x left top';	
	divs[3].getElementsByTagName('img')[0].src = '/images/tabs2/' + prefix + '_right.gif';			
	
	// Show hide containers
	container.style.display = (on ? '' : 'none');
	
	// Mark tab as selected
	src.setAttribute('selected', on.toString());
}

// Is Current Tab Selected
function _isSelected(tabIndex){return(this.selectedTabIndex == tabIndex);}
// Set TabStrip Status
function _setStatus(status){this.status = status;}
// Get TabStrip Status
function _getStatus(status){return this.status};
// #End Region