// Browser Slide-Show script. With image cross fade effect for those browsers
// that support it.
// Script copyright (C) 2004-2010 www.cryer.co.uk.
// Script is free to use provided this copyright header is included.
var FadeDurationMS=1000;
function SetOpacity(object,opacityPct)
{
// IE.
object.style.filter = 'alpha(opacity=' + opacityPct + ')';
// Old mozilla and firefox
object.style.MozOpacity = opacityPct/100;
// Everything else.
object.style.opacity = opacityPct/100;
}
function ChangeOpacity(id,msDuration,msStart,fromO,toO)
{
var element=document.getElementById(id);
var msNow = (new Date()).getTime();
var opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;
if (opacity>=100)
{
SetOpacity(element,100);
element.timer = undefined;
}
else if (opacity<=0)
{
SetOpacity(element,0);
element.timer = undefined;
}
else
{
SetOpacity(element,opacity);
element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",10);
}
}
function FadeInImage(foregroundID,newImage,backgroundID)
{
var foreground=document.getElementById(foregroundID);
if (foreground.timer) window.clearTimeout(foreground.timer);
if (backgroundID)
{
var background=document.getElementById(backgroundID);
if (background)
{
if (background.src)
{
foreground.src = background.src;
SetOpacity(foreground,100);
}
background.src = newImage;
background.style.backgroundImage = 'url(' + newImage + ')';
background.style.backgroundRepeat = 'no-repeat';
var startMS = (new Date()).getTime();
foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + FadeDurationMS + "," + startMS + ",100,0)",10);
}
} else {
foreground.src = newImage;
}
}
var slideCache = new Array();
function RunSlideShow(pictureID, backgroundID,imageFiles,displaySecs)
{

var imageSeparator = imageFiles.indexOf(";");
var nextImage = imageFiles.substring(0,imageSeparator);
if (slideCache[nextImage] && slideCache[nextImage].loaded)
{
FadeInImage(pictureID,nextImage,backgroundID);
var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)
+ ';' + nextImage;
setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+futureImages+"',"+displaySecs+")",
displaySecs*1000);
// Identify the next image to cache.
imageSeparator = futureImages.indexOf(";");
nextImage = futureImages.substring(0,imageSeparator);
} else {
setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+imageFiles+"',"+displaySecs+")",
250);
}
// Cache the next image to improve performance.
if (slideCache[nextImage] == null)
{
slideCache[nextImage] = new Image;
slideCache[nextImage].loaded = false;
slideCache[nextImage].onload = function(){this.loaded=true};
slideCache[nextImage].src = nextImage;
}
}

function getObject(objname)
{
var obj;
if(typeof(objname)=="object")
return objname;
obj = document.getElementById(objname);
if(obj)
return obj;
if(document.getElementsByName(objname) && document.getElementsByName(objname)[0])
return document.getElementsByName(objname)[0];
}
function hideLayer(objname)
{
var obj;
obj = getObject(objname);
if(!obj)
return;
setVisibility(obj,false,false);
}
function showLayer(objname)
{
var obj = getObject(objname);
if(!obj)
return;
setVisibility(obj,true);
}
function fadein(objname,val)
{
if(val == null)
val = 100;
if(val == 100)
showLayer(objname);
transparency(objname,val);
val=val-5;
if(val>0)
window.setTimeout("fadein('" + objname + "'," + (++val) + ")", 100);
else
{
window.setTimeout("fadeout('" + objname + "'," + (++val) + ")", 4000);
}
}
function fadeout(objname,val)
{
if(val == null)
val = 0;
transparency(objname,val);
//alert("fadeout(" + objname + "," + val + ")");
val=val+5;
if(val<101)
{
window.setTimeout("fadeout('" + objname + "'," + (++val) + ")", 100);
}
else
{
transparency(objname,100);
window.setTimeout("fadein('" + objname + "'," + (++val) + ")", 1000);
}
}
function transparency(element,percentage)
{
var i, count, objStyle, filterValue, opacityValue,obj;
if(document.getElementById)
{
if(typeof(element)=="object" && element)
obj=element;
else
if(document.getElementsByName(element) && document.getElementsByName(element)[0])
obj=document.getElementsByName(element);
else if (document.getElementById(element)) { obj=document.getElementById(element); }
else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
else { obj=false; }
if(obj) {
percentage=(typeof(percentage)=="undefined")?50:100-percentage;
filterValue="Alpha(opacity="+percentage+")";
opacityValue=""+percentage/100;
count=(obj.length)?obj.length:1;
for(i=0;i<count;i++) {
objStyle=(obj.length)?obj[i].style:obj.style;
objStyle.filter=filterValue;
objStyle.MozOpacity=opacityValue;
objStyle.KhtmlOpacity=opacityValue;
objStyle.opacity=opacityValue;
}
}
}
}
function setVisibility(objname,vis,place)
{
if(vis)
{
objname.style.display = "inline";
objname.style.visibility = "visible";
}
else
{
if(place)
{
objname.style.display = "inline";
objname.style.visibility = "hidden";
}
else
{
objname.style.display = "none";
}
}
}
function writeToDiv(text,id)
{
x = getObject(id);
if(!x)
return;
if (document.getElementById)
{
//x = document.getElementById(id);
x.innerHTML = '';
x.innerHTML = text;
}
else if (document.all)
{
//x = document.all[id];
x.innerHTML = text;
}
else if (document.layers)
{
//x = document.layers[id];
x.document.open();
x.document.write(text);
x.document.close();
}
}



