var IgtSlideshow = new function () {
	
	this.HandleBefore = function(currSlide, nextSlide, options, forwardFlag) {
			
			// IE7 fix (http://www.positioniseverything.net/explorer/ienondisappearcontentbugPIE/index.htm).
			var element = $(nextSlide).find(".hover_image");
			if(element.length > 0) {
					element = element[0];
					element.style.position = "relative";
					element.style.position = "absolute";
			}
			
	}
	
	this.InitSlideshow = function (elementID, pagerID, duration, speed, effect, hoverSpeed) {
		var t = this;
		$(document).ready(function () {

			// Initialize slideshow.
			if ($("#" + pagerID).length > 0) {
				$("#" + elementID).cycle({
					fx: effect, timeout: duration, speed: speed,
					pager: "#" + pagerID, before: t.HandleBefore
				});
			} else {
				$("#" + elementID).cycle({
					fx: effect, timeout: duration, speed: speed, before: t.HandleBefore
				});
			}

			// Hover effect.
			var hoverImages = $("#" + elementID + " div.hover_image");
			hoverImages.hide();
			hoverImages.css("display", "none");
			$("#" + elementID).hover(function () {

				// Mouse in.
				hoverImages = $("#" + elementID + " div.hover_image");
				hoverImages.stop(true, true).fadeIn(hoverSpeed, function () {
					this.style.display = "block";
				});

			},
			function () {

				// Mouse out.
				hoverImages = $("#" + elementID + " div.hover_image");
				hoverImages.stop(true, true).fadeOut(hoverSpeed, function () {
					this.style.display = "none";
				});

			});
		});
	};

	this.Pause = function (elementID) {
		$("#" + elementID).cycle("pause");
	};

	this.Play = function (elementID) {
		$("#" + elementID).cycle("resume");
	};

}
