		var commentators = new Array();

		// Too add new commentators, use the following format:
		// commentators[n] =
		// new commentator('commentator_name_goes_here',
		//                 "commentator_description_goes_here",
		//                 'image_url_goes_here');	
		// When filling in these fields, you can't use single quotes (') or double quotes (") without adding a backslash in front of them.
		// For example, if you wanted to say [Can't] you would write [can\'t].  

		
		commentators[0] = 
			new commentator('<b>Scot McKnight</b>',
					"\"What the Church needs most when it comes to ministering to emerging adults is <i>reliable data</i>, and this collection of essays in the Changing SEA project contributes that sort of data.   \" &nbsp;&nbsp;<a href=\"http://changingsea.org/mcknightcom.php\">Read More</a>",
					'http://changingsea.org/mcknight.jpg');	

		commentators[1] = 
			new commentator('<b>Carol Howard Merritt</b>',
					"\"ChangingSEA is not only a good acronym, but it is also an apt metaphor for what seems to be happening in our religious landscape right now. There are so many evolutions in our popular...\" &nbsp;<a href=\"http://changingsea.org/merrittcom.php\">Read More</a>",
					'http://changingsea.org/merritt.png');	

		commentators[2] = 
			new commentator('<b>Paul Jarzembowski</b>',
					"\"Young adult ministry is a difficult outreach effort for any church, but it is one we dare not avoid. Unfortunately, too few congregations spend time or money on this...\" &nbsp;&nbsp;<a href=\"http://changingsea.org/jarzemcom.php\">Read More</a>",
					'http://changingsea.org/jarzem.png');	

		commentators[3] = 
			new commentator('<b>John Roberto</b>',
					"\"The fifteen essays in the Changing SEA project provide a substantive look at what research studies are telling us about the contemporary experience of emerging adults...\" &nbsp;&nbsp;<a href=\"http://changingsea.org/robertocom.php\">Read More</a>",
					'http://changingsea.org/roberto.png');					
		
		// ID of the paragraph element that contains the commentator text
		textID = "textBlock";
		
		// ID of the paragraph element that contains the commentator name
		nameID = "nameBlock";
		
		// ID of the anchor element that contains the commentators picture URL
		urlID = "urlBlock";
		
		FadeTick = 33;
		
		// Amount of time, in millseconds, it takes to go from a completly visible commentator to seeing nothing.
		TimeToFade = 500;

		// Amount of time, in millseconds, to display a commentator before switching to the next one
		FadeDelay = 6000; 
		


		// DO NOT CHANGE CODE BELOW THIS LINE



		// Fade States
		VISIBLE = 2;
		FADING_IN = 1;
		FADING_OUT = -1;
		HIDDEN = -2;
		
		function commentator(name, text, pictureUrl){
			this.name = name;
			this.text = text;
			this.pictureUrl = pictureUrl;
		}
			
		function startSlideShow(eid) {
			// Preload all the images
			for (var i = 1; i < commentators.length; i++) {
      				preload_image = new Image(); 
      				preload_image.src = commentators[i].pictureUrl; 
			}

			var element = document.getElementById(eid);
			if(element == null)
				return;
				
			element.fadeState = FADING_OUT;
			element.FadeTimeLeft = TimeToFade;
			slideShow(new Date().getTime(), eid, 1);
		}
		
		function slideShow(lastTick, eid, index) {
			var element = document.getElementById(eid);
			if(element == null){
				return;
			}
			
			var curTick = new Date().getTime();
			var elapsedTicks = curTick - lastTick;
			
			if(element.FadeTimeLeft <= elapsedTicks) {
				element.style.opacity = element.FadeState == FADING_IN ? '1' : '0';
				element.style.filter = 'alpha(opacity = ' + (element.FadeState == FADING_IN ? '100' : '0') + ')';
				element.FadeState = element.FadeState == FADING_IN ? VISIBLE : HIDDEN;
				
				// Element is now hidden, let's change the text and call again to show it
				if(element.FadeState == HIDDEN) {
					if (index > commentators.length)
						index = 1;		
						
					// Name
					nameElement = document.getElementById(nameID);
					nameElement.innerHTML = commentators[index - 1].name;
					
					// Text
					textElement = document.getElementById(textID);
					textElement.innerHTML = commentators[index - 1].text;

					// Picture Url
					urlElement = document.getElementById(urlID);
					urlElement.src = commentators[index - 1].pictureUrl;
					
					element.FadeState = FADING_IN;
					element.FadeTimeLeft = TimeToFade;
					setTimeout("slideShow(" + new Date().getTime() + ",'" + eid + "'," + (index) + ")", 33);
				}
				// Element is shown, let's wait a bit and then hide it
				else {
					element.FadeState = FADING_OUT;
					element.FadeTimeLeft = TimeToFade;
					setTimeout("slideShow(" + (new Date().getTime() + FadeDelay) + ",'" + eid + "'," + (index + 1) + ")", FadeDelay);
				}
			}
			else {
				element.FadeTimeLeft -= elapsedTicks;
				var newOpVal = element.FadeTimeLeft/TimeToFade;
				
				if(element.FadeState == FADING_IN)
					newOpVal = 1 - newOpVal;

				element.style.opacity = newOpVal;
				element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
				setTimeout("slideShow(" + curTick + ",'" + eid + "'," + index + ")", 33);
			}
		}
