/***** Image Cross Fade Redux Version 1.0 Last revision: 02.15.2006 steve@slayeroffice.com Please leave this notice intact. Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/index.html *****/ window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init); var d=document, imgs = new Array(), zInterval = null, current=0, pause=false; var myDivWidth, myDivHeight; function toggleStartStop() { mydiv = d.getElementById("rotator"); if (mydiv) { imgs = mydiv.getElementsByTagName("img"); if (imgs[0]) { if (pause == true) { pause = false; setTimeout(so_xfade,50); } else { pause = true; setTimeout(checkIfPiclensIsRunning,1000); } } } } function checkIfPiclensIsRunning() { if (PicLensLite.piclensIsRunning_ == true) { setTimeout(checkIfPiclensIsRunning,1000); } else { toggleStartStop(); } } function so_init() { if(!d.getElementById || !d.createElement)return; mydiv = d.getElementById("rotator"); if (mydiv) { imgs = mydiv.getElementsByTagName("img"); // set the 4:3 height myDivWidth = mydiv.offsetWidth; myDivHeight = Math.round(myDivWidth * 0.75); mydiv.style.height = myDivHeight + 'px'; myNoImgDiv = d.getElementById("noImages"); if (myNoImgDiv) { myNoImgDivW = myNoImgDiv.offsetWidth; myNoImgDivH = Math.round(myNoImgDivW * 0.75); myNoImgDiv.style.height = myNoImgDivH + 'px'; } if (imgs[0]) { for(i=0;i 1000) { fudgeFactor = 0.01; } else { fudgeFactor = 0.1; } // find the w&h multiplier, round down. var widthMultiplier = (myDivWidth-2) / iImageWidth; var heightMultiplier = (myDivHeight-2) / iImageHeight; var wMulti = widthMultiplier.toFixed(2) - fudgeFactor; var hMulti = heightMultiplier.toFixed(2); // pick the lesser of the two. if (wMulti > hMulti) { var multiplier = hMulti; var nShift = 2; } else { var multiplier = wMulti; var nShift = 2; } imgs[i].width = Math.floor(iImageWidth * multiplier); imgs[i].height = Math.floor(iImageHeight * multiplier); wWhiteSpace = myDivWidth - imgs[i].width; hWhiteSpace = myDivHeight - imgs[i].height; topSpace = Math.round(hWhiteSpace/2)+2; leftSpace = Math.round(wWhiteSpace/2)-5; imgs[i].style.display = "none"; imgs[i].style.position = "absolute"; imgs[i].style.top = topSpace + "px"; imgs[i].style.left = leftSpace + "px"; } imgs[0].style.display = "block"; imgs[0].xOpacity = .99; setTimeout(so_xfade,2000); } } } function so_xfade() { var cOpacity = imgs[current].xOpacity; var nIndex = imgs[current+1]?current+1:0; var nOpacity = imgs[nIndex].xOpacity; if (pause) { return; } cOpacity-=.05; nOpacity+=.05; imgs[nIndex].style.display = "block"; imgs[current].xOpacity = cOpacity; imgs[nIndex].xOpacity = nOpacity; setOpacity(imgs[current]); setOpacity(imgs[nIndex]); if(cOpacity<=0) { imgs[current].style.display = "none"; current = nIndex; setTimeout(so_xfade,2000); } else { setTimeout(so_xfade,50); } function setOpacity(obj) { if(obj.xOpacity>.99) { obj.xOpacity = .99; return; } obj.style.opacity = obj.xOpacity; obj.style.MozOpacity = obj.xOpacity; obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")"; } }