// Source code Copyright © vanAnnies.  All Rights Reserved.
// Contact GetTheGhost.com for Licensing
function vanGhostSlideshowImage(url,caption,link) { this.url = url; if(caption == undefined) this.caption = ''; else this.caption = caption; this.image = new Image(); this.image.src = this.url; if(link == undefined) this.link = url; else this.link = link; }; vanGhostSlideshowImage.randomize = function(images) { var L = images.length; for(ndx = L-1; ndx > 0; ndx--) { var rnd = Math.round((Math.random() * ndx)); var save = images[ndx]; images[ndx] = images[rnd]; images[rnd] = save; } return images; }; function vanGhostSlideshow(images,width,height,container,caption,pause,transition,steps) { this.images = null; this.imgndx = 0; this.imgndxnext = 0; this.imgcount = 0; if(images && images !== undefined) { this.images = images; this.imgcount = images.length; } this.layer1 = null; this.layer2 = null; this.layerC = null; this.pause = 25; this.pausendx = 0; if(pause !== undefined) { this.pause = Math.round(vanGhostTimer.getStepsPerSecond() * pause); } this.stop = false; this.waitforimage = false; this.width = width; this.height = height; this.steps = 0; this.stepndx = 0; this.transition = null; if(transition !== undefined) this.transition = transition; if(steps !== undefined) { this.steps = Math.round(vanGhostTimer.getStepsPerSecond() * steps); } this.step = vanGhostSlideshow.step; this.layer1 = document.createElement('div'); this.layer1.style.width = width + 'px'; this.layer1.style.height = height + 'px'; this.layer1.style.position = 'relative'; this.layer1.style.textAlign = 'left'; this.layer1.style.backgroundColor = 'white'; this.image1 = document.createElement('img'); this.image1.style.width = width + 'px'; this.image1.style.height = height + 'px'; this.image1.style.border = 'none'; this.layer1.appendChild(this.image1); if(this.transition) { this.layer2 = document.createElement('div'); this.layer2.style.textAlign = 'left'; this.layer2.style.position = 'absolute'; this.layer2.style.top = '0px'; this.layer2.style.left = '0px'; this.layer2.style.width = width + 'px'; this.layer2.style.height = height + 'px'; this.layer2.style.backgroundColor = 'white'; this.image2 = document.createElement('img'); this.image2.style.width = width + 'px'; this.image2.style.height = height + 'px'; this.image2.style.border = 'none'; this.layer2.appendChild(this.image2); this.layer1.appendChild(this.layer2); } if(caption != undefined && caption != null) this.layerC = document.getElementById(caption); this.control = vanGhostSlideshow.createControlBar(this); var open = document.createElement('div'); open.style.position = 'absolute'; open.style.cursor = 'pointer'; open.style.top = '0px'; open.style.left = '0px'; open.style.width = this.width + 'px'; open.style.height = (this.height-this.control.height) + 'px'; open.title = 'Click to View'; open.style.opacity = 0; open.style.MozOpacity = 0; open.style.KhtmlOpacity = 0; open.style.filter = "alpha(opacity=0)"; open.style.backgroundColor = 'white'; open.onclick = function(obj) { return function(evt) { window.open((obj.images[obj.imgndx]).link); } }(this); this.container = document.getElementById(container); this.container.style.position = 'relative'; this.container.style.width = width + 'px'; this.container.style.height = height + 'px'; this.container.style.overflow = 'hidden'; this.container.style.margin = '0px'; this.container.style.padding = '0px'; this.container.innerHTML = ''; this.container.appendChild(this.layer1); this.container.appendChild(this.control); this.container.appendChild(open); this.container.onmouseover = function(obj) { return function(evt) { obj.control.style.visibility = 'visible'; } }(this); this.container.onmouseout = function(obj) { return function(evt) { obj.control.style.visibility = 'hidden'; } }(this); }; vanGhostSlideshow.createControlBar = function(obj) { var barheight = (obj.width)/8; if(barheight > 24) barheight = 24; var bh = barheight; var bw = bh * 1.5; var pause = vanGhostSlideshow.createButton('Pause','||',bw,bh); pause.onclick = function(obj) { return function(evt) { if(obj.stop) { obj.pausendx = obj.pause; this.button.innerHTML = '||'; this.button.title = 'Pause'; } else { this.button.innerHTML = '&gt;'; this.button.title = 'Play'; } obj.stop = !obj.stop; } }(obj); var next = vanGhostSlideshow.createButton('Next','&gt;&gt;',bw,bh); next.onclick = function(obj) { return function(evt) { obj.imgndx++; vanGhostSlideshow.showImage(obj); } }(obj); var prev = vanGhostSlideshow.createButton('Previous','&lt;&lt;',bw,bh); prev.onclick = function(obj) { return function(evt) { obj.imgndx--; vanGhostSlideshow.showImage(obj); } }(obj); var begin = vanGhostSlideshow.createButton('First','|&lt;',bw,bh); begin.onclick = function(obj) { return function(evt) { obj.imgndx = 0; vanGhostSlideshow.showImage(obj); } }(obj); var end = vanGhostSlideshow.createButton('Last', '&gt;|',bw,bh); end.onclick = function(obj) { return function(evt) { obj.imgndx = obj.imgcount - 1; vanGhostSlideshow.showImage(obj); } }(obj); var control = document.createElement('div'); control.style.textAlign = 'center'; control.style.margin = '0px auto'; control.style.height = barheight + 'px'; control.style.width = (bw * 5) + 'px'; control.appendChild(begin); control.appendChild(prev); control.appendChild(pause); control.appendChild(next); control.appendChild(end); var bar = document.createElement('div'); bar.style.position = 'absolute'; bar.style.top = (obj.height-barheight) + 'px'; bar.style.left = '0px'; bar.style.width = obj.width + 'px'; bar.style.height = barheight + 'px'; bar.style.textAlign = 'center'; bar.style.margin = '0px auto'; bar.style.opacity = 0.7; bar.style.MozOpacity = 0.7; bar.style.KhtmlOpacity = 0.7; bar.style.filter = "alpha(opacity=70)"; bar.style.visibility = 'hidden'; bar.style.backgroundColor = 'black'; bar.height = barheight; bar.appendChild(control); return bar; }; vanGhostSlideshow.createButton = function(name, symbol, width, height) { var fontheight = height - 10; var button = document.createElement('div'); button.style.font = fontheight + "px monospace"; button.style.textAlign = 'center'; button.style.padding = '2px 0px'; button.style.margin = '0px'; button.style.border = 'groove 2px'; button.style.color = 'white'; button.style.cursor = 'pointer'; button.innerHTML = symbol; button.title = name; var box = document.createElement('div'); box.style.width = width + 'px'; box.style.height = height + 'px'; box.style.cssFloat = 'left'; box.style.styleFloat = 'left'; box.style.cursor = 'pointer'; box.appendChild(button); box.button = button; return box; }; vanGhostSlideshow.step = function() { if(this.stop) return true; if(!this.images) return false; if(this.pausendx == 0) { vanGhostSlideshow.showImage(this); } if(this.pausendx >= this.pause) { if(this.stepndx >= this.steps) { this.stepndx = 0; this.pausendx = 0; this.imgndx++; } else { if(this.transition && this.transition.step) this.transition.step(this); this.stepndx++; } } else { if(!this.waitforimage) this.pausendx++; } return true; }; vanGhostSlideshow.showImage = function(obj) { if(obj.imgndx >= obj.imgcount) { obj.imgndx = 0; } else if(obj.imgndx < 0) { obj.imgndx = obj.imgcount - 1; } obj.pausendx = 0; if(obj.layerC) obj.layerC.innerHTML = (obj.images[obj.imgndx]).caption; obj.waitforimage = !(obj.images[obj.imgndx]).image.complete; if(obj.waitforimage) return; obj.image1.src = (obj.images[obj.imgndx]).url; vanGhostSlideshow.centerImage(obj, obj.image1, obj.images[obj.imgndx]); if(obj.transition) { obj.stepndx = 0; obj.imgndxnext = obj.imgndx + 1; if(obj.imgndxnext >= obj.imgcount) obj.imgndxnext = 0; obj.waitforimage = !(obj.images[obj.imgndxnext]).image.complete; if(obj.waitforimage) return; obj.image2.src = (obj.images[obj.imgndxnext]).url; vanGhostSlideshow.centerImage(obj, obj.image2, obj.images[obj.imgndxnext]); if(obj.transition.showImage) obj.transition.showImage(obj); } }; vanGhostSlideshow.centerImage = function(obj,layer,img) { var aspect1 = img.image.width / img.image.height; var aspect2 = obj.width / obj.height; if(aspect1 < aspect2) { layer.style.width = ''; layer.style.height = obj.height + 'px'; layer.style.marginTop = '0px'; var space = (obj.width - (obj.height * aspect1))/2; layer.style.marginLeft = space + 'px'; } else { layer.style.width = obj.width + 'px'; layer.style.height = ''; layer.style.marginLeft = '0px'; var space = (obj.height - (obj.width / aspect1))/2; layer.style.marginTop = space + 'px'; } }; function vanGhostSlideshowTransitionFade() { this.showImage = vanGhostSlideshowTransitionFade.showImage; this.step = vanGhostSlideshowTransitionFade.step; }; vanGhostSlideshowTransitionFade.showImage = function(obj) { obj.layer2.style.opacity = 0; obj.layer2.style.MozOpacity = 0; obj.layer2.style.KhtmlOpacity = 0; obj.layer2.style.filter = "alpha(opacity=0)"; }; vanGhostSlideshowTransitionFade.step = function(obj) { var s = obj.layer2.style; var op = (obj.stepndx / obj.steps) * 100; s.opacity = (op / 100); s.MozOpacity = (op / 100); s.KhtmlOpacity = (op / 100); s.filter = "alpha(opacity=" + op + ")"; }; function vanGhostSlideshowTransitionHorizontal(direction,slide,swapslide) { this.direction = 1; this.slide = false; this.swapslide = false; if(slide == true) this.slide = true; if(slide == true && swapslide == true) this.swapslide = true; if(direction == 'right') this.direction = -1; else this.direction = 1; this.showImage = vanGhostSlideshowTransitionHorizontal.showImage; this.step = vanGhostSlideshowTransitionHorizontal.step; this.position = 0; }; vanGhostSlideshowTransitionHorizontal.showImage = function(obj) { if(this.swapslide) { obj.image1.src = (obj.images[obj.imgndxnext]).url; obj.image2.src = (obj.images[obj.imgndx]).url; vanGhostSlideshow.centerImage(obj, obj.image1, obj.images[obj.imgndxnext]); vanGhostSlideshow.centerImage(obj, obj.image2, obj.images[obj.imgndx]); obj.layer1.style.left = '0px'; obj.layer2.style.left = '0px'; } else { obj.layer1.style.left = '0px'; obj.layer2.style.left = (obj.width * this.direction) + 'px'; } this.position = 0; this.stepsize = obj.width/obj.steps; }; vanGhostSlideshowTransitionHorizontal.step = function(obj) { this.position = this.position - (this.stepsize * this.direction); if(this.swapslide) obj.layer2.style.left = Math.round(this.position) + 'px'; else if(this.slide) obj.layer2.style.left = ((obj.width * this.direction) +  Math.round(this.position)) + 'px'; else obj.layer1.style.left = Math.round(this.position) + 'px'; }; function vanGhostSlideshowTransitionVertical(direction,slide,swapslide) { this.direction = 1; this.slide = false; this.swapslide = false; if(slide == true) this.slide = true; if(slide == true && swapslide == true) this.swapslide = true; if(direction == 'down') this.direction = -1; else this.direction = 1; this.showImage = vanGhostSlideshowTransitionVertical.showImage; this.step = vanGhostSlideshowTransitionVertical.step; this.position = 0; }; vanGhostSlideshowTransitionVertical.showImage = function(obj) { if(this.swapslide) { obj.image1.src = (obj.images[obj.imgndxnext]).url; obj.image2.src = (obj.images[obj.imgndx]).url; vanGhostSlideshow.centerImage(obj, obj.image1, obj.images[obj.imgndxnext]); vanGhostSlideshow.centerImage(obj, obj.image2, obj.images[obj.imgndx]); obj.layer1.style.top = '0px'; obj.layer2.style.top = '0px'; } else { obj.layer1.style.top = '0px'; obj.layer2.style.top = (obj.height * this.direction) + 'px'; } this.position = 0; this.stepsize = obj.height/obj.steps; }; vanGhostSlideshowTransitionVertical.step = function(obj) { this.position = this.position - (this.stepsize * this.direction); if(this.swapslide) obj.layer2.style.top =  Math.round(this.position) + 'px'; else if(this.slide) obj.layer2.style.top = ((obj.height * this.direction) +  Math.round(this.position)) + 'px'; else obj.layer1.style.top =  Math.round(this.position) + 'px'; }; function vanGhostSlideshowTransitionReveal(direction) { if(direction == null || direction == undefined) this.direction = 'up'; else this.direction = direction; this.showImage = vanGhostSlideshowTransitionReveal.showImage; this.step = vanGhostSlideshowTransitionReveal.step; }; vanGhostSlideshowTransitionReveal.showImage = function(obj) { this.top = 0; this.left = 0; this.bottom = 0; this.right = 0; this.topStep = 0; this.leftStep = 0; this.bottomStep = 0; this.rightStep = 0; switch(this.direction) { default: case 'up': this.top = obj.height; this.bottom = obj.height; this.left = 0; this.right = obj.width; this.topStep = -(obj.height / obj.steps); break; case 'down': this.top = 0; this.bottom = 0; this.left = 0; this.right = obj.width; this.bottomStep = (obj.height / obj.steps); break; case 'left': this.top = 0; this.bottom = obj.height; this.left = obj.width; this.right = obj.width; this.leftStep = -(obj.width / obj.steps); break; case 'right': this.top = 0; this.bottom = obj.height; this.left = 0; this.right = 0; this.rightStep = (obj.width / obj.steps); break; case 'center': this.top = obj.height/2; this.bottom = obj.height/2; this.left = obj.width/2; this.right = obj.width/2; this.rightStep = (obj.width / 2 / obj.steps); this.leftStep = -(this.rightStep); this.bottomStep = (obj.height / 2 / obj.steps); this.topStep = -(this.bottomStep); break; case 'horizontal': this.top = obj.height/2; this.bottom = obj.height/2; this.left = 0; this.right = obj.width; this.bottomStep = (obj.height / 2 / obj.steps); this.topStep = -(this.bottomStep); break; case 'vertical': this.top = 0; this.bottom = obj.height; this.left = obj.width/2; this.right = obj.width/2; this.rightStep = (obj.width / 2 / obj.steps); this.leftStep = -(this.rightStep); break; case 'upperleft': this.top = 0; this.bottom = 0; this.left = 0; this.right = 0; this.rightStep = (obj.width / obj.steps); this.bottomStep = (obj.height / obj.steps); break; case 'upperright': this.top = 0; this.bottom = 0; this.left = obj.width; this.right = obj.width; this.leftStep = -(obj.width / obj.steps); this.bottomStep = (obj.height / obj.steps); break; case 'lowerleft': this.top = obj.height; this.bottom = obj.height; this.left = 0; this.right = 0; this.rightStep = (obj.width / obj.steps); this.topStep = -(obj.height / obj.steps); break; case 'lowerright': this.top = obj.height; this.bottom = obj.height; this.left = obj.width; this.right = obj.width; this.leftStep = -(obj.width / obj.steps); this.topStep = -(obj.height / obj.steps); break; } obj.layer2.style.clip = 'rect('+Math.round(this.top)+'px, '+Math.round(this.right)+'px, '+Math.round(this.bottom)+'px, '+Math.round(this.left)+'px)'; }; vanGhostSlideshowTransitionReveal.step = function(obj) { this.top += this.topStep; this.bottom += this.bottomStep; this.left += this.leftStep; this.right += this.rightStep; obj.layer2.style.clip = 'rect('+Math.round(this.top)+'px, '+Math.round(this.right)+'px, '+Math.round(this.bottom)+'px, '+Math.round(this.left)+'px)'; }; function vanGhostSlideshowTransitionRevealSwap(direction) { if(direction == null || direction == undefined) this.direction = 'up'; else this.direction = direction; this.showImage = vanGhostSlideshowTransitionRevealSwap.showImage; this.step = vanGhostSlideshowTransitionRevealSwap.step; }; vanGhostSlideshowTransitionRevealSwap.showImage = function(obj) { obj.image1.src = (obj.images[obj.imgndxnext]).url; obj.image2.src = (obj.images[obj.imgndx]).url; vanGhostSlideshow.centerImage(obj, obj.image1, obj.images[obj.imgndxnext]); vanGhostSlideshow.centerImage(obj, obj.image2, obj.images[obj.imgndx]); this.top = 0; this.bottom = obj.height; this.left = 0; this.right = obj.width; this.topStep = 0; this.leftStep = 0; this.bottomStep = 0; this.rightStep = 0; switch(this.direction) { default: case 'center': this.leftStep = (obj.width / 2 / obj.steps); this.rightStep = -(this.leftStep); this.topStep = (obj.height / 2 / obj.steps); this.bottomStep = -(this.topStep); break; case 'horizontal': this.topStep = (obj.height / 2 / obj.steps); this.bottomStep = -(this.topStep); break; case 'vertical': this.leftStep = (obj.width / 2 / obj.steps); this.rightStep = -(this.leftStep); break; case 'upperleft': this.rightStep = -(obj.width / obj.steps); this.bottomStep = -(obj.height / obj.steps); break; case 'upperright': this.leftStep = (obj.width / obj.steps); this.bottomStep = -(obj.height / obj.steps); break; case 'lowerleft': this.rightStep = -(obj.width / obj.steps); this.topStep = (obj.height / obj.steps); break; case 'lowerright': this.leftStep = (obj.width / obj.steps); this.topStep = (obj.height / obj.steps); break; } obj.layer2.style.clip = 'rect('+Math.round(this.top)+'px, '+Math.round(this.right)+'px, '+Math.round(this.bottom)+'px, '+Math.round(this.left)+'px)'; }; vanGhostSlideshowTransitionRevealSwap.step = function(obj) { this.top += this.topStep; this.bottom += this.bottomStep; this.left += this.leftStep; this.right += this.rightStep; obj.layer2.style.clip = 'rect('+Math.round(this.top)+'px, '+Math.round(this.right)+'px, '+Math.round(this.bottom)+'px, '+Math.round(this.left)+'px)'; }; function vanGhostSlideshowTransitionCycle(cycle) { this.transitions = new Array(); switch(cycle) { case 'corneron': this.transitions.push(new vanGhostSlideshowTransitionReveal('upperleft')); this.transitions.push(new vanGhostSlideshowTransitionReveal('upperright')); this.transitions.push(new vanGhostSlideshowTransitionReveal('lowerright')); this.transitions.push(new vanGhostSlideshowTransitionReveal('lowerleft')); break; case 'corneroff': this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('upperleft')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('upperright')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('lowerright')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('lowerleft')); break; case 'slideon': this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left',true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('up',true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right',true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('down',true)); break; case 'slideoff': this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left',true,true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('up',true,true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right',true,true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('down',true,true)); break; case 'scroll': this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left')); this.transitions.push(new vanGhostSlideshowTransitionVertical('up')); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right')); this.transitions.push(new vanGhostSlideshowTransitionVertical('down')); break; case 'reveal': this.transitions.push(new vanGhostSlideshowTransitionReveal('left')); this.transitions.push(new vanGhostSlideshowTransitionReveal('up')); this.transitions.push(new vanGhostSlideshowTransitionReveal('right')); this.transitions.push(new vanGhostSlideshowTransitionReveal('down')); break; case 'open': this.transitions.push(new vanGhostSlideshowTransitionReveal('center')); this.transitions.push(new vanGhostSlideshowTransitionReveal('horizontal')); this.transitions.push(new vanGhostSlideshowTransitionReveal('vertical')); break; case 'close': this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('center')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('horizontal')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('vertical')); break; case 'random': this.transitions.push(new vanGhostSlideshowTransitionFade()); this.transitions.push(new vanGhostSlideshowTransitionReveal('upperleft')); this.transitions.push(new vanGhostSlideshowTransitionReveal('upperright')); this.transitions.push(new vanGhostSlideshowTransitionReveal('lowerright')); this.transitions.push(new vanGhostSlideshowTransitionReveal('lowerleft')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('upperleft')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('upperright')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('lowerright')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('lowerleft')); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left',true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('up',true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right',true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('down',true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left',true,true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('up',true,true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right',true,true)); this.transitions.push(new vanGhostSlideshowTransitionVertical('down',true,true)); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('left')); this.transitions.push(new vanGhostSlideshowTransitionVertical('up')); this.transitions.push(new vanGhostSlideshowTransitionHorizontal('right')); this.transitions.push(new vanGhostSlideshowTransitionVertical('down')); this.transitions.push(new vanGhostSlideshowTransitionReveal('up')); this.transitions.push(new vanGhostSlideshowTransitionReveal('left')); this.transitions.push(new vanGhostSlideshowTransitionReveal('down')); this.transitions.push(new vanGhostSlideshowTransitionReveal('right')); this.transitions.push(new vanGhostSlideshowTransitionReveal('center')); this.transitions.push(new vanGhostSlideshowTransitionReveal('horizontal')); this.transitions.push(new vanGhostSlideshowTransitionReveal('vertical')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('center')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('horizontal')); this.transitions.push(new vanGhostSlideshowTransitionRevealSwap('vertical')); var L = this.transitions.length; for(i = 0; i < 3; i++) for(ndx = 0; ndx < L; ndx++) { var rnd = Math.round((Math.random() * (L-1))); var save = this.transitions[ndx]; this.transitions[ndx] = this.transitions[rnd]; this.transitions[rnd] = save; } break; default: this.transitions = cycle; break; } this.tcount = this.transitions.length; this.tndx = this.tcount; this.showImage = vanGhostSlideshowTransitionCycle.showImage; this.step = vanGhostSlideshowTransitionCycle.step; }; vanGhostSlideshowTransitionCycle.showImage = function(obj) { this.tndx++; if(this.tndx >= this.tcount) this.tndx = 0; obj.layer1.style.left = '0px'; obj.layer1.style.top = '0px'; obj.layer1.style.width = obj.width + 'px'; obj.layer1.style.height = obj.height + 'px'; obj.layer2.style.left = '0px'; obj.layer2.style.top = '0px'; obj.layer2.style.width = obj.width + 'px'; obj.layer2.style.height = obj.height + 'px'; obj.layer2.style.opacity = 1; obj.layer2.style.MozOpacity = 1; obj.layer2.style.KhtmlOpacity = 1; obj.layer2.style.filter = "alpha(opacity=100)"; obj.layer2.style.clip = 'rect(0px,'+obj.width+'px,'+obj.height+'px,0px)'; this.transitions[this.tndx].showImage(obj); }; vanGhostSlideshowTransitionCycle.step = function(obj) { this.transitions[this.tndx].step(obj); }; 