User:Controlnet/global.js

// IE fixes javascript

window.isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup ); window.doneIETransform = undefined; window.doneIEAlphaFix = undefined;

window.hookit = function { if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) { doneIETransform = true; relativeforfloats; fixalpha; } };

if ( document.attachEvent ) { document.attachEvent( 'onreadystatechange', window.hookit ); }

// png alpha transparency fixes window.fixalpha = function( logoId ) { // bg	if ( isMSIE55 && !doneIEAlphaFix ) { var plogo = document.getElementById( logoId || 'p-logo' ); if ( !plogo ) { return; }

var logoa = plogo.getElementsByTagName('a')[0]; if ( !logoa ) { return; }

var bg = logoa.currentStyle.backgroundImage; var imageUrl = bg.substring( 5, bg.length - 2 );

doneIEAlphaFix = true;

if ( imageUrl.substr( imageUrl.length - 4 ).toLowerCase == '.png' ) { var logospan = logoa.appendChild( document.createElement( 'span' ) );

logoa.style.backgroundImage = 'none'; logospan.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl + ')'; logospan.style.height = '100%'; logospan.style.position = 'absolute'; logospan.style.width = logoa.currentStyle.width; logospan.style.cursor = 'hand'; // Center image with hack for IE5.5 if ( document.documentElement.dir == 'rtl' ) { logospan.style.right = '50%'; logospan.style.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' ); } else { logospan.style.left = '50%'; logospan.style.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' ); }			logospan.style.top = '50%'; logospan.style.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );

var linkFix = logoa.appendChild( logoa.cloneNode ); linkFix.style.position = 'absolute'; linkFix.style.height = '100%'; linkFix.style.width = '100%'; }	} };

if ( isMSIE55 ) { // ondomready $( fixalpha ); }

// fix ie6 disappering float bug window.relativeforfloats = function { var bc = document.getElementById( 'bodyContent' ); if ( bc ) { var tables = bc.getElementsByTagName( 'table' ); var divs = bc.getElementsByTagName( 'div' ); setrelative( tables ); setrelative( divs ); } };

window.setrelative = function( nodes ) { var i = 0; while ( i < nodes.length ) { if( ( ( nodes[i].style.float && nodes[i].style.float != ( 'none' ) ||			( nodes[i].align && nodes[i].align != ( 'none' ) ) ) && ( !nodes[i].style.position || nodes[i].style.position != 'relative' ) ) ) {			nodes[i].style.position = 'relative'; }		i++; } };

// Expand links for printing String.prototype.hasClass = function( classWanted ) { var classArr = this.split(/\s/); for ( var i = 0; i < classArr.length; i++ ) { if ( classArr[i].toLowerCase == classWanted.toLowerCase ) { return true; }	}	return false; };

window.expandedURLs = undefined;

window.onbeforeprint = function { expandedURLs = [];

var contentEl = document.getElementById( 'content' );

if ( contentEl ) { var allLinks = contentEl.getElementsByTagName( 'a' );

for ( var i = 0; i < allLinks.length; i++ ) { if ( allLinks[i].className.hasClass( 'external' ) && !allLinks[i].className.hasClass( 'free' ) ) { var expandedLink = document.createElement( 'span' ); var expandedText = document.createTextNode( ' (' + allLinks[i].href + ')' ); expandedLink.appendChild( expandedText ); allLinks[i].parentNode.insertBefore( expandedLink, allLinks[i].nextSibling ); expandedURLs[i] = expandedLink; }		}	} };

window.onafterprint = function { for ( var i = 0; i < expandedURLs.length; i++ ) { if ( expandedURLs[i] ) { expandedURLs[i].removeNode( true ); }	} };