var DD_belatedPNG = { ns: 'DD_belatedPNG', imgSize: {}, delay: 10, nodesFixed: 0, createVmlNameSpace: function () { /* enable VML */ if (document.namespaces && !document.namespaces[this.ns]) { document.namespaces.add(this.ns, 'urn:schemas-microsoft-com:vml'); } }, createVmlStyleSheet: function () { var screenStyleSheet, printStyleSheet; screenStyleSheet = document.createElement('style'); screenStyleSheet.setAttribute('media', 'screen'); document.documentElement.firstChild.insertBefore(screenStyleSheet, document.documentElement.firstChild.firstChild); if (screenStyleSheet.styleSheet) { screenStyleSheet = screenStyleSheet.styleSheet; screenStyleSheet.addRule(this.ns + '\\:*', '{behavior:url(#default#VML)}'); screenStyleSheet.addRule(this.ns + '\\:shape', 'position:absolute;'); screenStyleSheet.addRule('img.' + this.ns + '_sizeFinder', 'behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;'); this.screenStyleSheet = screenStyleSheet; printStyleSheet = document.createElement('style'); printStyleSheet.setAttribute('media', 'print'); document.documentElement.firstChild.insertBefore(printStyleSheet, document.documentElement.firstChild.firstChild); printStyleSheet = printStyleSheet.styleSheet; printStyleSheet.addRule(this.ns + '\\:*', '{display: none !important;}'); printStyleSheet.addRule('img.' + this.ns + '_sizeFinder', '{display: none !important;}'); } }, readPropertyChange: function () { var el, display, v; el = event.srcElement; if (!el.vmlInitiated) { return; } if (event.propertyName.search('background') != -1 || event.propertyName.search('border') != -1) { DD_belatedPNG.applyVML(el); } if (event.propertyName == 'style.display') { display = (el.currentStyle.display == 'none') ? 'none' : 'block'; for (v in el.vml) { if (el.vml.hasOwnProperty(v)) { 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) { if (this.screenStyleSheet) { var selectors, i; selectors = selector.split(','); for (i=0; i size.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)'; } }, figurePercentage: function (bg, size, axis, position) { var horizontal, fraction; fraction = true; horizontal = (axis == 'X'); switch(position) { case 'left': case 'top': bg[axis] = 0; break; case 'center': bg[axis] = 0.5; break; case 'right': case 'bottom': bg[axis] = 1; break; default: if (position.search('%') != -1) { bg[axis] = parseInt(position, 10) / 100; }else { fraction = false; } } bg[axis] = Math.ceil( fraction ? ( (size[horizontal?'W': 'H'] * bg[axis]) - (size[horizontal?'w': 'h'] * bg[axis]) ) : parseInt(position, 10) ); if (bg[axis] % 2 === 0) { bg[axis]++; } return bg[axis]; }, fixPng: function (el) { el.style.behavior = 'none'; var lib, els, nodeStr, v, e; 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; } lib = DD_belatedPNG; el.vml = {color: {}, image: {}}; els = {shape: {}, fill: {}}; for (v in el.vml) { if (el.vml.hasOwnProperty(v)) { for (e in els) { if (els.hasOwnProperty(e)) { nodeStr = lib.ns + ':' + e; el.vml[v][e] = document.createElement(nodeStr); } } el.vml[v].shape.stroked = false; el.vml[v].shape.appendChild(el.vml[v].fill); el.parentNode.insertBefore(el.vml[v].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); el.vmlInitiated = true; lib.applyVML(el); } }; try { document.execCommand("BackgroundImageCache", false, true); } catch(r) {} DD_belatedPNG.createVmlNameSpace(); DD_belatedPNG.createVmlStyleSheet();