/** * DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML . * Author: Drew Diller * Email: drew.diller@gmail.com * URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/ * Version: 0.0.7a * Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license * * Example usage: * DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector * DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement **/ var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){DD_belatedPNG=null})}},createVmlStyleSheet:function(){var style=document.createElement("style");document.documentElement.firstChild.insertBefore(style,document.documentElement.firstChild.firstChild);var styleSheet=style.styleSheet;styleSheet.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");styleSheet.addRule(this.ns+"\\:shape","position:absolute;");styleSheet.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.styleSheet=styleSheet},readPropertyChange:function(){var el=event.srcElement;if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(el)}if(event.propertyName=="style.display"){var display=(el.currentStyle.display=="none")?"none":"block";for(var v in el.vml){el.vml[v].shape.style.display=display}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(el)}},vmlOpacity:function(el){if(el.currentStyle.filter.search("lpha")!=-1){var trans=el.currentStyle.filter;trans=parseInt(trans.substring(trans.lastIndexOf("=")+1,trans.lastIndexOf(")")),10)/100;el.vml.color.shape.style.filter=el.currentStyle.filter;el.vml.image.fill.opacity=trans}},handlePseudoHover:function(el){setTimeout(function(){DD_belatedPNG.applyVML(el)},1)},fix:function(selector){var selectors=selector.split(",");for(var i=0;isize.H){c.B=size.H}el.vml.image.shape.style.clip="rect("+c.T+"px "+(c.R+fudge)+"px "+c.B+"px "+(c.L+fudge)+"px)"}else{el.vml.image.shape.style.clip="rect("+dC.T+"px "+dC.R+"px "+dC.B+"px "+dC.L+"px)"}},fixPng:function(el){el.style.behavior="none";if(el.nodeName=="BODY"||el.nodeName=="TD"||el.nodeName=="TR"){return}el.isImg=false;if(el.nodeName=="IMG"){if(el.src.toLowerCase().search(/\.png$/)!=-1){el.isImg=true;el.style.visibility="hidden"}else{return}}else{if(el.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}var lib=DD_belatedPNG;el.vml={color:{},image:{}};var els={shape:{},fill:{}};for(var r in el.vml){for(var e in els){var nodeStr=lib.ns+":"+e;el.vml[r][e]=document.createElement(nodeStr)}el.vml[r].shape.stroked=false;el.vml[r].shape.appendChild(el.vml[r].fill);el.parentNode.insertBefore(el.vml[r].shape,el)}el.vml.image.shape.fillcolor="none";el.vml.image.fill.type="tile";el.vml.color.fill.on=false;lib.attachHandlers(el);lib.giveLayout(el);lib.giveLayout(el.offsetParent);lib.applyVML(el)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();