| | |
| | | <public:component> |
| | | <public:component lightWeight="true"> |
| | | <public:attach event="onpropertychange" onevent="propertyChanged()" /> |
| | | <public:attach event="onbeforeprint" for="window" onevent="beforePrint()" /> |
| | | <public:attach event="onafterprint" for="window" onevent="afterPrint()" /> |
| | | <public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/> |
| | | <public:attach event="onafterprint" onevent="afterPrint()" for="window"/> |
| | | <script> |
| | | |
| | | /* |
| | | * PNG Behavior |
| | | * |
| | | * This script was created by Erik Arvidsson (erik(at)eae.net) |
| | | * This script was created by Erik Arvidsson (http://webfx.eae.net/contact.html#erik) |
| | | * for WebFX (http://webfx.eae.net) |
| | | * Copyright 2002 |
| | | * |
| | | * For usage see license at http://webfx.eae.net/license.html |
| | | * Copyright 2002-2004 |
| | | * |
| | | * Version: 1.01a |
| | | * For usage see license at http://webfx.eae.net/license.html |
| | | * |
| | | * Version: 1.02 |
| | | * Created: 2001-??-?? First working version |
| | | * Updated: 2002-03-28 Fixed issue when starting with a non png image and |
| | | * switching between non png images |
| | | * 2003-01-06 Fixed RegExp to correctly work with IE 5.0x |
| | | * 2004-05-09 When printing revert to original |
| | | * |
| | | */ |
| | | |
| | | var IS_PNG = /\.png$/i; |
| | | var supported = /MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == 'Win32'; |
| | | var realSrc, realHeight, realWidth; |
| | | var blankSrc = 'skins/default/images/blank.gif'; |
| | | |
| | | var supported = /MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32", |
| | | realSrc, |
| | | blankSrc = "skins/default/images/blank.gif", |
| | | isPrinting = false; |
| | | |
| | | if (supported) fixImage(); |
| | | |
| | | function propertyChanged() { |
| | | if (supported && event.propertyName == 'src') { |
| | | var i = element.src.lastIndexOf(blankSrc); |
| | | if (i == -1 || i != element.src.length - blankSrc.length) { |
| | | fixImage(); |
| | | } |
| | | } |
| | | } |
| | | if (!supported || isPrinting) return; |
| | | |
| | | var pName = event.propertyName; |
| | | if (pName != "src") return; |
| | | // if not set to blank |
| | | if (!new RegExp(blankSrc).test(src)) |
| | | fixImage(); |
| | | }; |
| | | |
| | | function fixImage() { |
| | | if (realSrc && element.src == realSrc) { |
| | | // this is an attempt to set the image to itself! |
| | | // pointless - leave the filter as-is, restore the blank image |
| | | element.src = blankSrc; |
| | | } else { |
| | | // set the image to something different |
| | | if (IS_PNG.test(element.src)) { |
| | | // fixable PNG |
| | | realSrc = element.src; |
| | | realWidth = element.width; |
| | | realHeight = element.height; |
| | | element.src = blankSrc; |
| | | element.style.width = realWidth + 'px'; |
| | | element.style.height = realHeight + 'px'; |
| | | element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + encodeURI(realSrc) + "',sizingMethod='scale')"; |
| | | } else { |
| | | // ordinary image - make sure the fix is removed |
| | | if (realSrc) { |
| | | realSrc = null; |
| | | element.runtimeStyle.filter = ''; |
| | | } |
| | | } |
| | | } |
| | | // get src |
| | | var src = element.src; |
| | | |
| | | // check for real change |
| | | if (src == realSrc && /\.png$/i.test(src)) { |
| | | element.src = blankSrc; |
| | | return; |
| | | } |
| | | |
| | | if ( ! new RegExp(blankSrc).test(src)) { |
| | | // backup old src |
| | | realSrc = src; |
| | | } |
| | | |
| | | // test for png |
| | | if (/\.png$/i.test(realSrc)) { |
| | | // set blank image |
| | | element.src = blankSrc; |
| | | // set filter |
| | | element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + |
| | | "AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; |
| | | } |
| | | else { |
| | | // remove filter |
| | | element.runtimeStyle.filter = ""; |
| | | } |
| | | } |
| | | |
| | | function beforePrint() { |
| | | if (realSrc) { |
| | | supported = false; |
| | | element.src = realSrc; |
| | | element.runtimeStyle.filter = ''; |
| | | supported = true; |
| | | } |
| | | isPrinting = true; |
| | | element.src = realSrc; |
| | | element.runtimeStyle.filter = ""; |
| | | realSrc = null; |
| | | } |
| | | |
| | | function afterPrint() { |
| | | if (realSrc) { |
| | | var rs = realSrc; |
| | | realSrc = null; |
| | | element.src = rs; |
| | | } |
| | | isPrinting = false; |
| | | fixImage(); |
| | | } |
| | | |
| | | </script> |
| | | </public:component> |