Difference between revisions of "Template:Washington"
Line 411: | Line 411: | ||
/* to make the sidebar anchor*/ | /* to make the sidebar anchor*/ | ||
+ | |||
+ | |||
+ | var tabLinks = new Array(); | ||
+ | var contentDivs = new Array(); | ||
+ | |||
+ | function init() { | ||
+ | |||
+ | // Grab the tab links and content divs from the page | ||
+ | var tabListItems = document.getElementById('tabs').childNodes; | ||
+ | for ( var i = 0; i < tabListItems.length; i++ ) { | ||
+ | if ( tabListItems[i].nodeName == "LI" ) { | ||
+ | var tabLink = getFirstChildWithTagName( tabListItems[i], 'A' ); | ||
+ | var id = getHash( tabLink.getAttribute('href') ); | ||
+ | tabLinks[id] = tabLink; | ||
+ | contentDivs[id] = document.getElementById( id ); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Assign onclick events to the tab links, and | ||
+ | // highlight the first tab | ||
+ | var i = 0; | ||
+ | |||
+ | for ( var id in tabLinks ) { | ||
+ | tabLinks[id].onclick = showTab; | ||
+ | tabLinks[id].onfocus = function() { this.blur() }; | ||
+ | if ( i == 0 ) tabLinks[id].className = 'selected'; | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | // Hide all content divs except the first | ||
+ | var i = 0; | ||
+ | |||
+ | for ( var id in contentDivs ) { | ||
+ | if ( i != 0 ) contentDivs[id].className = 'tabContent hide'; | ||
+ | i++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function showTab() { | ||
+ | var selectedId = getHash( this.getAttribute('href') ); | ||
+ | |||
+ | // Highlight the selected tab, and dim all others. | ||
+ | // Also show the selected content div, and hide all others. | ||
+ | for ( var id in contentDivs ) { | ||
+ | if ( id == selectedId ) { | ||
+ | tabLinks[id].className = 'selected'; | ||
+ | contentDivs[id].className = 'tabContent'; | ||
+ | } else { | ||
+ | tabLinks[id].className = ''; | ||
+ | contentDivs[id].className = 'tabContent hide'; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Stop the browser following the link | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | function getFirstChildWithTagName( element, tagName ) { | ||
+ | for ( var i = 0; i < element.childNodes.length; i++ ) { | ||
+ | if ( element.childNodes[i].nodeName == tagName ) return element.childNodes[i]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function getHash( url ) { | ||
+ | var hashPos = url.lastIndexOf ( '#' ); | ||
+ | return url.substring( hashPos + 1 ); | ||
+ | } | ||
+ | |||
</script> | </script> |
Revision as of 10:03, 17 September 2015