// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
// (c) 2008 Angus Turnbull http://www.twinhelix.com
// This is licensed under the GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
var IEPNGFix=window.IEPNGFix||{};IEPNGFix.tileBG=function(elm,pngSrc,ready){var data=this.data[elm.uniqueID],elmW=Math.max(elm.clientWidth,elm.scrollWidth),elmH=Math.max(elm.clientHeight,elm.scrollHeight),bgX=elm.currentStyle.backgroundPositionX,bgY=elm.currentStyle.backgroundPositionY,bgR=elm.currentStyle.backgroundRepeat;if(!data.tiles){data.tiles={elm:elm,src:"",cache:[],img:new Image(),old:{}}}var tiles=data.tiles,pngW=tiles.img.width,pngH=tiles.img.height;if(pngSrc){if(!ready&&pngSrc!=tiles.src){tiles.img.onload=function(){this.onload=null;IEPNGFix.tileBG(elm,pngSrc,1)};return tiles.img.src=pngSrc}}else{if(tiles.src){ready=1}pngW=pngH=0}tiles.src=pngSrc;if(!ready&&elmW==tiles.old.w&&elmH==tiles.old.h&&bgX==tiles.old.x&&bgY==tiles.old.y&&bgR==tiles.old.r){return}var pos={top:"0%",left:"0%",center:"50%",bottom:"100%",right:"100%"},x,y,pc;x=pos[bgX]||bgX;y=pos[bgY]||bgY;if(pc=x.match(/(\d+)%/)){x=Math.round((elmW-pngW)*(parseInt(pc[1])/100))}if(pc=y.match(/(\d+)%/)){y=Math.round((elmH-pngH)*(parseInt(pc[1])/100))}x=parseInt(x);y=parseInt(y);var repeatX={repeat:1,"repeat-x":1}[bgR],repeatY={repeat:1,"repeat-y":1}[bgR];if(repeatX){x%=pngW;if(x>0){x-=pngW}}if(repeatY){y%=pngH;if(y>0){y-=pngH}}this.hook.enabled=0;if(!({relative:1,absolute:1}[elm.currentStyle.position])){elm.style.position="relative"}var count=0,xPos,maxX=repeatX?elmW:x+0.1,yPos,maxY=repeatY?elmH:y+0.1,d,s,isNew;if(pngW&&pngH){for(xPos=x;xPos<maxX;xPos+=pngW){for(yPos=y;yPos<maxY;yPos+=pngH){isNew=0;if(!tiles.cache[count]){tiles.cache[count]=document.createElement("div");isNew=1}var clipR=(xPos+pngW>elmW?elmW-xPos:pngW),clipB=(yPos+pngH>elmH?elmH-yPos:pngH);d=tiles.cache[count];s=d.style;s.behavior="none";s.left=xPos+"px";s.top=yPos+"px";s.width=clipR+"px";s.height=clipB+"px";s.clip="rect("+(yPos<0?0-yPos:0)+"px,"+clipR+"px,"+clipB+"px,"+(xPos<0?0-xPos:0)+"px)";s.display="block";if(isNew){s.position="absolute";s.zIndex=-999;if(elm.firstChild){elm.insertBefore(d,elm.firstChild)}else{elm.appendChild(d)}}this.fix(d,pngSrc,0);count++}}}while(count<tiles.cache.length){this.fix(tiles.cache[count],"",0);tiles.cache[count++].style.display="none"}this.hook.enabled=1;tiles.old={w:elmW,h:elmH,x:bgX,y:bgY,r:bgR}};IEPNGFix.update=function(){for(var i in IEPNGFix.data){var t=IEPNGFix.data[i].tiles;if(t&&t.elm&&t.src){IEPNGFix.tileBG(t.elm,t.src)}}};IEPNGFix.update.timer=0;if(window.attachEvent&&!window.opera){window.attachEvent("onresize",function(){clearTimeout(IEPNGFix.update.timer);IEPNGFix.update.timer=setTimeout(IEPNGFix.update,100)})};