Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ***************************************
- // Auto hide (courtesy of Xd1358)
- // ***************************************
- function addHideButtons() {
- var hidables = getElementsByClass( 'hidable' );
- for( var i = 0; i < hidables.length; i++ ) {
- var box = hidables[i];
- var button = getElementsByClass( 'hidable-button', box, 'span' );
- if( button != null && button.length > 0 ) {
- button = button[0];
- button.onclick = toggleHidable;
- button.appendChild( document.createTextNode( '[Hide]' ) );
- if( new ClassTester( 'start-hidden' ).isMatch( box ) ) {
- button.onclick( 'bypass' );
- }
- }
- }
- }
- function toggleHidable() {
- var parent = getParentByClass( 'hidable', this );
- var content = getElementsByClass( 'hidable-content', parent );
- var nowShown;
- if( content != null && content.length > 0 ) {
- content = content[0];
- if( content.style.display == 'none' ) {
- content.style.display = content.oldDisplayStyle;
- this.firstChild.nodeValue = '[Hide]';
- nowShown = true;
- } else {
- content.oldDisplayStyle = content.style.display;
- content.style.display = 'none';
- this.firstChild.nodeValue = '[Show]';
- nowShown = false;
- }
- }
- }
- function getElementsByClass( searchClass, node, tag ) {
- var classElements = new Array();
- if( node == null ) {
- node = document;
- }
- if( tag == null ) {
- tag = '*';
- }
- var els = node.getElementsByTagName( tag );
- var elsLen = els.length;
- var tester = new ClassTester( searchClass );
- for( i = 0, j = 0; i < elsLen; i++ ) {
- if( tester.isMatch( els[i] ) ) {
- classElements[j] = els[i];
- j++;
- }
- }
- return classElements;
- }
- function getParentByClass( className, element ) {
- var tester = new ClassTester( className );
- var node = element.parentNode;
- while( node != null && node != document ) {
- if( tester.isMatch( node ) ) {
- return node;
- }
- node = node.parentNode;
- }
- return null;
- }
- function ClassTester( className ) {
- this.regex = new RegExp( "(^|\\s)" + className + "(\\s|$)" );
- }
- ClassTester.prototype.isMatch = function( element ) {
- return this.regex.test( element.className );
- }
Advertisement
Add Comment
Please, Sign In to add comment