	function cycle_home_slides() {
		var slides = $$('#hp_feature img');
		if (slides[window.homeslide + 1]) {
			// Advance to the next slide
			force_home_slide(window.homeslide + 2);
		} else {
			// Cycle back to the first slide
			force_home_slide(1);
		}		
	}
	
	function activateCycleButton(n) {
		$$('.cyclebutton').each(function(b) {
			if (b.id == ('cyclebutton_' + n)) { b.addClassName('active'); }
			else { b.removeClassName('active'); }
		});
	}
	
	function cyclebuttonMouseover(e) {
		var el = e.findElement('.cyclebutton');
		el.addClassName('active');
	}
	
	function cyclebuttonMouseout(e) {
		var el = e.findElement('.cyclebutton');
		var id = el.id.split('_').pop();
		var dx = id - 1;
		if (window.homeslide != dx) {
			el.removeClassName('active');
		}
	}
	
	function force_home_slide(n) {
		var dx = n - 1;
		var slides = $$('#hp_feature img');
		if (slides[dx]) {
			// Clear the interval in progress.
			clearInterval(window.homeCycler);
						
			// Advance to the specified slide.
			if (Prototype.Browser.IE === true) {
				// Using IE
				slides[window.homeslide].style.display = 'none';
				slides[dx].style.opacity = 1.0;
				slides[dx].style.display = 'block';
				window.homeslide = dx;
				activateCycleButton(n);
			} else {
				// Not using IE
				slides[dx].style.opacity = 0.0;
				slides[dx].style.display = 'block';					
				new Effect.Opacity(slides[window.homeslide], {
					from: 1.0, to: 0.0,
					duration: 0.4, 
					afterFinish: function() {
						slides[window.homeslide].style.display = 'none';
						new Effect.Opacity(slides[dx], {
							from: 0.0, to: 1.0, 
							duration: 0.4	
						});
						window.homeslide = dx;
						activateCycleButton(n);
					}
				});
			}
			
			// Start a new interval.
			window.homeCycler = setInterval(cycle_home_slides, 4000);
		}
	}
	
	function cycleButtonClicked(e) {
		var b = e.findElement('.cyclebutton');
		var n = b.id.split('_')[1];
		force_home_slide(n);
	}
	
	function init_page() {
		window.homeslide = 0;
		window.homeCycler = setInterval(cycle_home_slides, 4000);
		if ($('cycleButtons')) {
			$$('.cyclebutton').each(function(b) {
				b.observe('click', cycleButtonClicked);
				b.observe('mouseover', cyclebuttonMouseover);
				b.observe('mouseout', cyclebuttonMouseout);
			});
		}
	}
	Event.observe(window, 'load', init_page);	

