window.addEvent('domready',function() {
			/* settings */
			var showDuration = 6000;
			var container = $('slideshow-container');
			var images = container.getElements('img');
			var currentIndex = 0;
			var interval;
			var toc = [];
			var tocActive = 'toc-active';
			var thumbOpacity = 1.0;
			
			/* new: create caption area */
			var captionDIV = new Element('div',{
				id: 'slideshow-container-caption',
				styles: {
					//display:none,
					opacity: thumbOpacity
				}
			}).inject(container);
			var captionHeight = captionDIV.getSize().y;
			captionDIV.setStyle('height',0);
			
			/* new: starts the show */
			var start = function() { interval = show.periodical(showDuration); };
			var stop = function() { $clear(interval); };
            
			/* worker */
			var show = function(to) {
				images[currentIndex].fade('out');
				toc[currentIndex].removeClass(tocActive).fade(thumbOpacity);
				images[currentIndex = ($defined(to) ? to : (currentIndex < images.length - 1 ? currentIndex+1 : 0))].fade('in');
				toc[currentIndex].addClass(tocActive).fade(1);
				captionDIV.set('tween',{
					onComplete: function() {
						captionDIV.set('tween',{
							onComplete: $empty
						}).tween('height',captionHeight);
						/* parse caption */
						var title = '';
						var captionText = '';
						if(images[currentIndex].get('alt')) {
							cap = images[currentIndex].get('alt').split('::');
							title = cap[0];
							captionText = cap[1];
							captionDIV.set('html','<h4>' + title + '</h4>' + (captionText ? '<p>' + captionText + '</p>' : ''));
						}
					}
				}).tween('height',0);
			};
			
			/* new: create preview area */
			var preview = new Element('div',{
				id: 'slideshow-container-controls'
			}).inject(container,'after');
			
			/* new: control: table of contents */
			images.each(function(img,i){
				/* add to table of contents */
				toc.push(new Element('img',{
					src: img.get('src'),
					title: img.get('alt'),
					styles: {
						opacity: thumbOpacity
					}
				}).inject(preview));
				if(i > 0) { img.set('opacity',0); }
				
			});
			
			/* start once the page is finished loading */
			window.addEvent('load',function(){ show(0); start(); });
		});
