function CCycleBackground(a_iBackgroundInterval)
{ var m_iBackgroundInterval = a_iBackgroundInterval; this.m_iBackgroundInterval = m_iBackgroundInterval; var m_arrSetCollection = new Array; var m_iTransitionInterval = 100; var m_iBackgroundIntervalID = -1; var m_iTransitionIntervalID = -1; function addSetImages()
{ var oNewImageSet = new Array(); var oNewImage; var szElementID = arguments[0]; var arrSetCollection = getSetCollectionByElementID(szElementID); if(arrSetCollection)
{ for(var i=1;i<arguments.length;i++)
{ oNewImage = new Object(); oNewImage.src = "url('"+arguments[i]+"')"; preloadImage(arguments[i]); oNewImageSet.push(oNewImage);}
arrSetCollection.arrSet.push(oNewImageSet);}
}
this.addSetImages = addSetImages; function run()
{ while(!arePreloadedImagesLoaded())
{ setTimeout(run,1000); return;}
m_iBackgroundIntervalID = setInterval(cycleElements,m_iBackgroundInterval)
}
this.run = run; function cycleElements()
{ var bDone = null; for(var i=0;i<m_arrSetCollection.length;i++)
{ fadebackground(m_arrSetCollection[i]); bDone = m_arrSetCollection[i].bDone;}
if(bDone)
{ if(m_iTransitionIntervalID != -1)
{ clearInterval(m_iTransitionIntervalID); m_iTransitionIntervalID = -1; m_iBackgroundIntervalID = setInterval(cycleElements,m_iBackgroundInterval);}
}
else
{ if(m_iBackgroundIntervalID != -1)
{ clearInterval(m_iBackgroundIntervalID); m_iBackgroundIntervalID = -1; m_iTransitionIntervalID = setInterval(cycleElements,m_iTransitionInterval);}
}
}
function fadebackground(a_oSet)
{ if(a_oSet)
{ if(a_oSet.oElement)
{ if(a_oSet.iSetIndex < a_oSet.arrSet.length)
{ var oCurSet = a_oSet.arrSet[a_oSet.iSetIndex]; if(a_oSet.iImageIndex < oCurSet.length)
{ var oCurImage = oCurSet[a_oSet.iImageIndex]; a_oSet.oElement.style.backgroundImage = oCurImage.src; a_oSet.iImageIndex++; a_oSet.bDone = false;}
else
{ a_oSet.iImageIndex = 0; a_oSet.iSetIndex++; if(a_oSet.iSetIndex >= a_oSet.arrSet.length)
{ a_oSet.iSetIndex = 0;}
a_oSet.bDone = true;}
}
}
}
}
function getSetCollectionByElementID(a_szElementID)
{ for(var i=0;i<m_arrSetCollection.length;i++)
{ if(a_szElementID == m_arrSetCollection[i].name)
{ return m_arrSetCollection[i];}
}
var newCollection = new Object; newCollection.name = a_szElementID; newCollection.oElement = ei(a_szElementID); newCollection.iSetIndex = 0; newCollection.iImageIndex = 0; newCollection.arrSet = new Array(); m_arrSetCollection.push(newCollection); return newCollection;}
}
