/*
*	mo's Tabs script
*	
*	mo@momche.net
*   please keep this disclaimer and send me a message if you intend to use the script
*/
cMoTabs = new Object()

cMoTabs.getTabGroup = function( hElement )
{
	return getParentByTagName( hElement, 'UL' )
}

cMoTabs.getTabElement = function( hElement )
{
	if( hElement == null )
	{
		return null
	}
	try
	{
		if( typeof hElement.tagName == 'undefined' ) return null
	}
	catch( hException )
	{
		return null
	}
	return getParentByProperty( hElement, 'className', 'tab' )
}


cMoTabs.setActiveTabElement = function( hTabElement )
{
	if( hTabElement == null )
	{
		return
	}
    hTabElement.className = 'tabactive'
    var hView = document.getElementById( hTabElement.getAttribute( 'tabview' ) )
    if( hView )
    {
        hView.style.display = 'block'
    }
}

cMoTabs.setInactiveTabElement = function( hTabElement )
{
	if( hTabElement == null )
	{
		return
	}
    hTabElement.className = 'tab'
    var hView = document.getElementById( hTabElement.getAttribute( 'tabview' ) )
    if( hView )
    {
        hView.style.display = 'none'
    }
}

cMoTabs.doTab = function( e )
{
	cDomEvent.init( e )
    var hTabElement = null
    
    if( e.type.indexOf( 'keypress' ) > -1 )
    {
        if( e.keyCode != 13 )
        {
            return
        }
    }

    hTabElement = cMoTabs.getTabElement( cDomEvent.target )

	if ( hTabElement != null )
	{
        //var hLink = getSubNodeByName( hTabElement, 'a' )
        //hLink.blur()
        var hGroup = cMoTabs.getTabGroup( hTabElement )
        if( hGroup.hAcvtiveElm == null )
        {
            var hActiveTab = getSubNodeByProperty( hTabElement.parentNode, 'className', 'tabactive' )
        }
        else
        {
            var hActiveTab = hGroup.hAcvtiveElm
        }
        if( hActiveTab == hTabElement )
        {
        }
        else
        {
	        cMoTabs.setInactiveTabElement( hActiveTab )
	        cMoTabs.setActiveTabElement( hTabElement )
	        hGroup.hAcvtiveElm = hTabElement
	    }
	}
	return true
}

cMoTabs.doTabClick = function( e )
{
	cDomEvent.init( e )
	if( e.preventDefault )
	{
		e.preventDefault()
	}
	e.cancelBubble = false
	e.returnValue = false
	return false
}

cMoTabs.init = function( hListItem )
{
	var hLink = getSubNodeByName( hListItem, 'a' )
	cDomEvent.addEvent( hLink, 'activate', cMoTabs.doTab, false )
	cDomEvent.addEvent( hLink, 'focus', cMoTabs.doTab, false )
	cDomEvent.addEvent( hLink, 'mousedown', cMoTabs.doTab, false )
	cDomEvent.addEvent( hLink, 'keypress', cMoTabs.doTab, false )	
	cDomEvent.addEvent( hLink, 'click', cMoTabs.doTabClick, false )
}
 

cDomExtensionManager.register( new cDomExtension( document, [ "li[tabview]" ], cMoTabs.init ) ) 

