
var AutomaticSlideshow = function() {
	var timeout       = 1;  	// Seconds between fades
	var fadeDuration  = 5;  	// Seconds to fade
	var container     = ''; 	// Conatiner block
	var blocks        = [];  	// Blocks to fade between
	var currentSlide  = 0

	var hideBlocks = function() {
		alert(blocks);
		YAHOO.util.Dom.setStyle(blocks, 'display', 'none');
	}

	var nextSlide = function() {
		if (blocks.length == 0) {
			alert('no blocks loaded');
			return;
		}


		YAHOO.util.Dom.setStyle(blocks[currentSlide], 'opacity', 100);

		fadeOut();
	}


	var fadeOut = function() {
		var fadeOut = new YAHOO.util.Anim(blocks[currentSlide], { opacity: { from:100, to: 0 } }, 5, YAHOO.util.Easing.easeOut);
		fadeOut.onComplete.subscribe(fadeIn);

		var _current = currentSlide;
		_current++;
		if (_current >= blocks.length) {
			_current = 0;
		}

		YAHOO.util.Dom.setStyle(blocks[_current], 'opacity', 0);


		fadeOut.animate();
	}


	var fadeIn = function() {

		var lastSlide = currentSlide;


		currentSlide++;
		if (currentSlide >= blocks.length) {
			currentSlide = 0;
		}

		YAHOO.util.Dom.setStyle(blocks[lastSlide],    'display', 'none');
		shiftBlock(lastSlide);
		YAHOO.util.Dom.setStyle(blocks[lastSlide], 'opacity', 100);
		YAHOO.util.Dom.setStyle(blocks[lastSlide], 'display', 'block');


		var fadeIn = new YAHOO.util.Anim(blocks[currentSlide], { opacity: {from: 0, to: 100 } }, 15, YAHOO.util.Easing.easeBoth);
		fadeIn.animate();

		setTimeout(nextSlide, 4*1000);
	}


	var loadBlocks = function(c) {
		var children = c.childNodes;
		for(var i=0; i<children.length; i++) {
			if (children[i].nodeName == 'DIV' || children[i].nodeName == 'div') {
				blocks.push(children[i]);
			}
		}
		return blocks;
	}

	var shiftBlock = function(lastSlide) {
		container.removeChild(blocks[lastSlide]);
		container.appendChild(blocks[lastSlide]);
	}

	return {
		set: function(k,c) {
			if (!document.getElementById(c.container)) {
				return;
			}
			container = document.getElementById(c.container);

			if (document.all) {
				container.style.zoom = 1;
			}
			blocks = loadBlocks(container);

			YAHOO.util.Dom.setStyle(blocks, 'opacity', 0);
			nextSlide();
		},
		init: function(c) {
			YAHOO.util.Event.on(window, 'load', AutomaticSlideshow.set, {container: c}, true);
		}
	}
}();