/**
* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
* Author: Drew Diller
* Email: drew.diller@gmail.com
* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
* Version: 0.0.5a
* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
*
* jQuery Port by Jonathan Neal - http://jquery.thewikies.com/iepngfix
**/
jQuery.DD_belatedPNG=(function($){var d=document,ie=(!window.opera&&(ie=navigator.userAgent.match(/MSIE (\d)/)))?parseInt(ie[1].replace('5','6'),10):false,nameSpace='DD_belatedPNG';if(!ie){return{fixPng:function(){return true}}}if(d.namespaces&&!d.namespaces[nameSpace]){d.namespaces.add(nameSpace,'urn:schemas-microsoft-com:vml')}return{resize:function(a){this.updateVmlDimensions(a)},interceptPropertyChanges:function(a){if(/background/.test(event.propertyName)){this.updateVmlFill(a)}},handlePseudoHover:function(a){var b=this;setTimeout(function(){a.runtimeStyle.backgroundColor='';a.runtimeStyle.backgroundImage='';b.updateVmlFill(a)},1)},fixPng:function(a){var b,each,elemName=a.nodeName,handlers={propertychange:'interceptPropertyChanges',resize:'resize',move:'resize'},moreForAs={mouseleave:'handlePseudoHover',mouseenter:'handlePseudoHover',focus:'handlePseudoHover',blur:'handlePseudoHover'},onHandler=function(){self[handlers[each]](a)},self=this;a.style.behavior='none';if(/^(BODY|TR|TD)$/.test(elemName)){return}a.bgSizeFinder=d.createElement('IMG');b=a.bgSizeFinder.style;b.position='absolute';b.top='-10000px';b.visibility='hidden';b.zIndex=-1;a.bgSizeFinder.attachEvent('onload',function(){self.updateVmlDimensions(a)});d.body.insertBefore(a.bgSizeFinder,d.body.firstChild);a.imgRect=d.createElement(nameSpace+':rect');a.imgRect.style.position='absolute';a.imgFill=d.createElement(nameSpace+':fill');a.colorRect=d.createElement(nameSpace+':rect');a.colorRect.style.position='absolute';a.rects=[a.imgRect,a.colorRect];for(each=0;each<2;each++){a.rects[each].stroked=false}a.parentNode.insertBefore(a.colorRect,a);a.imgRect.appendChild(a.imgFill);a.parentNode.insertBefore(a.imgRect,a);a.imgRect.addBehavior('#default#VML');a.imgFill.addBehavior('#default#VML');a.colorRect.addBehavior('#default#VML');if(elemName==='A'){for(each in moreForAs){handlers[each]=moreForAs[each]}}for(each in handlers){a.attachEvent('on'+each,onHandler)}self.updateVmlFill(a)},updateVmlFill:function(b){var c={Style:true,Width:true,Color:true},bg,each,elemName=b.nodeName,elemStyle=b.currentStyle,giveLayout=function(a){a.style.zoom=1;if(a.currentStyle.position==='static'){a.style.position='relative'}},knownZ;if(elemStyle.backgroundImage){knownZ=(elemStyle.zIndex!=='0')?elemStyle.zIndex:-1;b.colorRect.style.zIndex=knownZ;b.imgRect.style.zIndex=knownZ;giveLayout(b);giveLayout(b.parentNode);bg=elemStyle.backgroundImage.split('"')[1]}if(b.src){bg=b.src}if(elemStyle.backgroundImage||b.src){b.bgSizeFinder.src=bg;b.imgFill.src=bg;b.imgFill.type='tile'}b.imgRect.filled=true;b.colorRect.filled=false;b.colorRect.style.backgroundColor=elemStyle.backgroundColor;b.runtimeStyle.backgroundImage='none';b.runtimeStyle.backgroundColor='transparent';if(elemName==='IMG'){if(elemStyle.position==='static'){b.style.position='relative'}for(each in c){b.imgRect.style['border'+each]=elemStyle['border'+each];b.colorRect.style['border'+each]=elemStyle['border'+each]}b.width=b.clientWidth;b.height=b.clientHeight;b.style.visibility='hidden'}},updateVmlDimensions:function(a){var b={X:{b1:'L',b2:'R',d:'W'},Y:{b1:'T',b2:'B',d:'H'}},bg={X:0,Y:0},bgR,corner,dC,each,elemName=a.nodeName,elemStyle=a.currentStyle,fraction=true,horz,position,size,v;size={W:a.clientWidth,H:a.clientHeight,w:a.bgSizeFinder.width,h:a.bgSizeFinder.height,L:a.offsetLeft,T:a.offsetTop,bLW:parseInt(elemStyle.borderLeftWidth,10),bTW:parseInt(elemStyle.borderTopWidth,10)};if(isNaN(size.bLW)||elemName==='IMG'){size.bLW=0}if(isNaN(size.bTW)||elemName==='IMG'){size.bTW=0}if(size.W>=d.body.clientWidth){--size.W}for(each=0;each<2;each++){a.rects[each].style.width=size.W+'px';a.rects[each].style.height=size.H+'px';a.rects[each].style.left=(size.L+size.bLW)+'px';a.rects[each].style.top=(size.T+size.bTW)+'px'}for(each in bg){position=elemStyle['backgroundPosition'+each];switch(position){case'left':case'top':bg[each]=0;break;case'center':bg[each]=0.5;break;case'right':case'bottom':bg[each]=1;break;default:if(/%/.test(position)){bg[each]=parseInt(position,10)*0.01}else{fraction=false}}horz=(each==='X');bg[each]=Math.ceil(fraction?((size[horz?'W':'H']*bg[each])-(size[horz?'w':'h']*bg[each])):parseInt(position,10))}a.imgFill.position=(bg.X/size.W)+','+(bg.Y/size.H);bgR=elemStyle.backgroundRepeat;dC={T:0,R:size.W,B:size.H,L:0};if(bgR!=='repeat'){corner={T:bg.Y,R:bg.X+size.w+((size.bLW===0)?1:0),B:bg.Y+size.h,L:bg.X+((size.bLW===0)?1:0)};if(/repeat-/.test(bgR)){v=bgR.split('repeat-')[1].toUpperCase();corner[b[v].b1]=0;corner[b[v].b2]=size[b[v].d]}a.imgRect.style.clip='rect('+[corner.T,corner.R,corner.B,corner.L,''].join('px ')+')'}else{a.imgRect.style.clip='rect(auto)'}}}}(jQuery));jQuery.fn.DD_belatedPNG=(function($){return function(){var $each,each=0;while(($each=this.eq(each++))[0]){if($.browser.msie){$each[0].setExpression('behavior',$.DD_belatedPNG.fixPng($each[0]))}}}}(jQuery));
