
function Series(List, InitialIndex, SrcPath, Button, CaptionContainer, Image, IconsContainer) 
{
	var PlaySrc = "../../images/logo/play-cl.gif";
	var PauseSrc = "../../images/logo/pause-cl.gif";
	var CurrentItem = null;
	var PlayButton = document.createElement("img");
	PlayButton.className = "playIcon";
	var DisplayItem = function(item) {
		if (CurrentItem) 
		{
			CurrentItem.element.className = "displayThumb";
		}
		CurrentItem = item;
		CurrentItem.element.className = "displayThumb current";
		FadeOut([Image, CaptionContainer], 0.5, function () {
			CaptionContainer.innerHTML = item.caption;
			Image.src = SrcPath + item.img;
			FadeIn([Image, CaptionContainer], 1);
			});
	} 
	var Fill = function(list) {
		IconsContainer.innerHTML = "";
		if (IconsContainer.stop)
		{
			IconsContainer.stop();
		}
		AutoPause();
		IconsContainer.appendChild(PlayButton);
		for (var i = 0; i < list.length; i++) {
			var elm = document.createElement("img");
			elm.src = SrcPath + "mikro/" + list[i].img;
			elm.item = list[i];
			elm.index = i;
			elm.className = "displayThumb";
			list[i].element	= elm;
			elm.onclick = function(item){
				return function(e) { 
					AutoPause(e);
					DisplayItem(item);
				}}(elm.item);
			IconsContainer.appendChild(elm);
		}
	}
	if (Button) {
		Button.onclick = function(e) {
			Fill(List);
			DisplayItem(List[InitialIndex]);
		};
	}
	var ID = 0;
	var StepTime = 50; // ms
	function FadeOut(elements, time, continuation)
	{
		var steps = time/(StepTime/1000); // seconds
		var currentStep = steps;
		var fadeStep = function() {
			for (var i = 0; i < elements.length; i++) {
				Browser.SetOpacity(elements[i], currentStep/steps);
			}
			if (currentStep-- == 0) {
				clearInterval(ID);
				if (continuation) {
					continuation();
				}
			}
		}
		ID = setInterval(fadeStep, StepTime);
	}
	
	function FadeIn(elements, time, continuation)
	{
		var steps = time/(StepTime/1000); // seconds
		var currentStep = 0;
		var fadeStep = function() {
			for (var i = 0; i < elements.length; i++) {
				Browser.SetOpacity(elements[i], currentStep/steps);
			}
			if (currentStep++ == steps) {
				clearInterval(ID);
				if (continuation) {
					continuation();
				}
			}
		}
		ID = setInterval(fadeStep, StepTime);
	}
	
	function DisplayNext() {
		var index = CurrentItem.element.index;
		index = (index + 1) % List.length;
		DisplayItem(List[index]);
	}
	
	var AutoId = 0;
	function AutoPlay(e) {
		PlayButton.src = PauseSrc;
		PlayButton.onclick = AutoPause;		
		IconsContainer.stop = AutoPause;
		DisplayNext();
		AutoId = setInterval(DisplayNext, 5000);
	}
	function AutoPause(e) {
		PlayButton.src = PlaySrc;
		PlayButton.onclick = AutoPlay;	
		clearInterval(ID);
		clearInterval(AutoId);
	}

}
