diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2010-07-28 11:52:48 +0200 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2010-07-28 11:52:48 +0200 |
commit | 222b01f5169f1c7e69762e0e8904c24f78f71882 (patch) | |
tree | 8e932e12546bb991357ec48eb1638d1770be7a35 /skins/common/IEFixes.js | |
parent | 00ab76a6b686e98a914afc1975812d2b1aaa7016 (diff) |
update to MediaWiki 1.16.0
Diffstat (limited to 'skins/common/IEFixes.js')
-rw-r--r-- | skins/common/IEFixes.js | 205 |
1 files changed, 103 insertions, 102 deletions
diff --git a/skins/common/IEFixes.js b/skins/common/IEFixes.js index f85f506c..762d7a78 100644 --- a/skins/common/IEFixes.js +++ b/skins/common/IEFixes.js @@ -1,127 +1,128 @@ // IE fixes javascript -var isMSIE55 = (window.showModalDialog && window.clipboardData && window.createPopup); +var isMSIE55 = ( window.showModalDialog && window.clipboardData && window.createPopup ); var doneIETransform; var doneIEAlphaFix; -if (document.attachEvent) - document.attachEvent('onreadystatechange', hookit); +if ( document.attachEvent ) { + document.attachEvent( 'onreadystatechange', hookit ); +} function hookit() { - if (!doneIETransform && document.getElementById && document.getElementById('bodyContent')) { - doneIETransform = true; - relativeforfloats(); - fixalpha(); - } + if ( !doneIETransform && document.getElementById && document.getElementById( 'bodyContent' ) ) { + doneIETransform = true; + relativeforfloats(); + fixalpha(); + } } // png alpha transparency fixes -function fixalpha() { - // bg - if (isMSIE55 && !doneIEAlphaFix) - { - var plogo = document.getElementById('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%'; - } - } +function fixalpha( 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%'; + } + } } // fix ie6 disappering float bug function relativeforfloats() { - var bc = document.getElementById('bodyContent'); - if (bc) { - var tables = bc.getElementsByTagName('table'); - var divs = bc.getElementsByTagName('div'); - } - setrelative(tables); - setrelative(divs); + var bc = document.getElementById( 'bodyContent' ); + if ( bc ) { + var tables = bc.getElementsByTagName( 'table' ); + var divs = bc.getElementsByTagName( 'div' ); + } + setrelative( tables ); + setrelative( divs ); } -function setrelative (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++; - } +function setrelative( 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; +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; } var expandedURLs; -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; - } - } - } +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; + } + } + } } -onafterprint = function() -{ - for (var i=0; i < expandedURLs.length; i++) - if (expandedURLs[i]) - expandedURLs[i].removeNode(true); +onafterprint = function() { + for ( var i = 0; i < expandedURLs.length; i++ ) { + if ( expandedURLs[i] ) { + expandedURLs[i].removeNode( true ); + } + } } |