summaryrefslogtreecommitdiffstats
path: root/autocomplete/js/tabs2.js
diff options
context:
space:
mode:
Diffstat (limited to 'autocomplete/js/tabs2.js')
-rw-r--r--autocomplete/js/tabs2.js124
1 files changed, 124 insertions, 0 deletions
diff --git a/autocomplete/js/tabs2.js b/autocomplete/js/tabs2.js
new file mode 100644
index 0000000..9d196c8
--- /dev/null
+++ b/autocomplete/js/tabs2.js
@@ -0,0 +1,124 @@
+/*
+* 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 ) )