function libeffectsFadeOut(element) {
	var opacity = 1.0;
	var step = function() {
		opacity = opacity - 0.01;
		if (opacity < 0.0) {
			opacity = 0.0;
		}
		xOpacity(element, opacity);
		if (opacity > 0.0) {
			setTimeout(step, 10);
		}
	}
	setTimeout(step, 10);
}

function libeffectsStartSlideshow(image1, image2, imagePaths) {
	var currentImageElement = document.getElementById(image1);
	var nextImageElement = document.getElementById(image2);
	var imagePaths = imagePaths;
	var imageCount = imagePaths.length;
	if (currentImageElement && nextImageElement && imageCount > 0) {
		var index = parseInt(xCookie.get("libeffects.slideshow.index"));
		if (isNaN(index)) {
			index = 0;
		} else {
			index = index % imageCount;
		}
		currentImageElement.style.backgroundImage = "url('" + imagePaths[index] + "')";
		currentImageElement.style.zIndex = 1;
		xOpacity(currentImageElement, 1.0);
		index = (index + 1) % imageCount;
		nextImageElement.style.backgroundImage = "url('" + imagePaths[index] + "')";
		nextImageElement.style.zIndex = 2;
		xOpacity(nextImageElement, 0.0);
		opa = 0.0;
		var initTransition = function() {
			xCookie.set("libeffects.slideshow.index", "" + index);
			currentImageElement.style.zIndex = 1;
			nextImageElement.style.zIndex = 2;
			setTimeout(runTransition, 50);
		};
		var runTransition = function() {
			opa = opa + 0.05;
			if (opa > 1.0) {
				opa = 1.0;
			}
			xOpacity(nextImageElement, opa);
			if (opa == 1.0) {
				var temp = currentImageElement;
				currentImageElement = nextImageElement;
				nextImageElement = temp;
				index = (index + 1) % imageCount;
				nextImageElement.style.backgroundImage = "url('" + imagePaths[index] + "')";
				xOpacity(nextImageElement, 0.0);
				opa = 0.0;
				setTimeout(initTransition, 4000);
			} else {
				setTimeout(runTransition, 50);
			}
		};
		setTimeout(initTransition, 4000);
	}

}

function libeffectsStartTicker(parentElement, element, tickerTexts) {
	if (parentElement && element && tickerTexts) {
		var text = "";
		var tickerText = "";
		for (tickerTextKey in tickerTexts) {
			tickerText = tickerTexts[tickerTextKey].replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;").replace("'", "&apos;").replace("\"", "&quot;");
			text = text + "+++&nbsp;" + tickerText + "&nbsp;";
		}
		text = text + text;
		text = text + text;
		text = text + text;
		element.innerHTML = text;
		var currentOffset = xWidth(parentElement);
		element.style.left = "" + currentOffset + "px";
		var runTicker = function() {
			var parentWidth = xWidth(parentElement);
			// var width = xWidth(element);
			// if (width > 0 && parentWidth > 0 && width < 2 * parentWidth && width < 10) {
			// text = text + text;
			// element.innerHTML = text;
			// }
			if (currentOffset > parentWidth) {
				currentOffset = parentWidth;
			}
			currentOffset--;
			var minimumOffset = -xWidth(element) / 2;
			if (currentOffset <= minimumOffset) {
				currentOffset = 0;
			}
			element.style.left = "" + currentOffset + "px";
			setTimeout(runTicker, 10);
		}
		setTimeout(runTicker, 10);
	}

}

