function SwapImage(pImage, pUrl) { if ((pImage != null) && (pUrl != null)) { pImage.wSrc = pImage.src; pImage.src = pUrl; } }
function SwapImageById(pImageId, pUrl) { SwapImage(GetObject(pImageId), pUrl); }
function SwapImageOriginal(pImage) { if ((pImage != null) && (pImage.wSrc != null)) { pImage.src = pImage.wSrc; pImage.wSrc = null; } }
function SwapImageOriginalById(pImageId) { SwapImageOriginal(GetObject(pImageId)); }
function SwapBackgroundImage(pObject, pUrl) { if ((pObject != null) && (pUrl != null)) { pObject.wBackgroundImage = pObject.style.backgroundImage; pObject.style.backgroundImage = "url('" + pUrl + "')"; } }
function SwapBackgroundImageById(pObjectId, pUrl) { SwapBackgroundImage(GetObject(pObjectId), pUrl); }
function SwapBackgroundImageOriginal(pObject) { if ((pObject != null) && (pObject.wBackgroundImage != null)) { pObject.style.backgroundImage = pObject.wBackgroundImage; pObject.wBackgroundImage = null; } }
function SwapBackgroundImageOriginalById(pObjectId) { SwapBackgroundImageOriginal(GetObject(pObjectId)); }
function PreloadImage(pUrl) { var oImage = new Image(); oImage.src = pUrl; }

function GetObject(pId) 
{
	var oSource;
	
	if (document.all)
		oSource = document.all(pId);
	else
	{
		if (document.layers)
			oSource = document.layers(pId);
		else if (document.getElementById)
			oSource = document.getElementById(pId);
	}
	
	return oSource;
}

function GetPosX(pSource)
{
	var PosX;
	PosX = 0;
	
	if (pSource.offsetParent)
	{
		while (pSource.offsetParent) 
		{
			PosX += pSource.offsetLeft;
			pSource = pSource.offsetParent;
		}
	}
	else if (pSource.x)
		PosX += pSource.x;
		
	return PosX;
}

function GetPosY(pSource)
{
	var PosY;
	PosY = 0;
	
	if (pSource.offsetParent)
	{
		while (pSource.offsetParent)
		{
			PosY += pSource.offsetTop;
			pSource = pSource.offsetParent;
		}
	}
	else if (pSource.y)
		PosY += pSource.y;
		
	return PosY;
}

function GetWidth(pSource)
{
	var Width;
	Width = 0;
	
	if (pSource.offsetWidth)
		Width = pSource.offsetWidth;
	else if (pSource.clip)
		Width = pSource.clip.width;
	 
	return Width;
}

function GetHeight(pSource)
{
	var Height;
	Height = 0;
	
	if (pSource.offsetHeight)
		Height = pSource.offsetHeight;
	else if (pSource.clip)
		Height = pSource.clip.height;
	 
	return Height;
}

function FindItem(pItems, pItem) 
{
	var Result;
	Result = false;
	
	for (i=0;i<pItems.length;i++) 
	{
		if (pItems[i] == pItem)
			Result = true;
	}
			
	return Result;
}

function FlashActivationRemove(pId)
{
	var FlashObject = document.getElementById(pId);
	if (FlashObject != null) { FlashObject.outerHTML = FlashObject.outerHTML; }
}

function GetCookie(pName)
{
	var Result = "";

	if (document.cookie.length > 0)
	{
		var Start = document.cookie.indexOf(pName + "=");

		if (Start != -1)
		{
			Start = Start + pName.length + 1;

			var End = document.cookie.indexOf(";", Start);
			if (End == -1) { End = document.cookie.length; }

			Result = unescape(document.cookie.substring(Start, End));
		}
	}

	return Result;
}

// INNER FADE //
(function($)
{
	$.fn.innerfade = function(options, ControlPanel) { return this.each(function() { $.innerfade(this, options, ControlPanel); }); };

	$.innerfade = function(container, options, ControlPanel)
	{
		var settings = {
			'animationtype': 'fade',
			'speed': 'normal',
			'type': 'sequence',
			'timeout': 2000,
			'containerheight': 'auto',
			'runningclass': 'innerfade',
			'children': null,
			'autostart': true,
			'CurrentCounter': 0,
			'LastCounter': -1,
			'ControlTimeout': null,
			'SlideTimeout': null
		};

		if (options) { $.extend(settings, options); }

		if (settings.children === null) { var elements = $(container).children(); }
		else { var elements = $(container).children(settings.children); }

		if (elements.length > 1)
		{
			$(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);

			for (var i = 0; i < elements.length; i++) { $(elements[i]).css('z-index', String(elements.length - i)).css('position', 'absolute').hide(); };

			if (settings.autostart) { settings.SlideTimeout = setTimeout(function() { $.innerfade.next(elements, settings); }, settings.timeout); }

			if (settings.type == 'sequence') { $(elements[0]).show(); }
			else
			{
				settings.CurrentCounter = Math.floor(Math.random() * (elements.length));
				$(elements[settings.CurrentCounter]).show();

				if (settings.type == 'random_start') { settings.type = 'sequence'; }
			}
		}
		if (ControlPanel)
		{
			$(ControlPanel).show();
			$(ControlPanel).fadeTo('normal', 0.3);

			$(elements).hover(function() { $(ControlPanel).fadeTo('normal', 1); }, function() { settings.ControlTimeout = setTimeout((function() { $(ControlPanel).fadeTo('normal', 0.3); }), 200); })
			$(ControlPanel).hover(function() { clearTimeout(settings.ControlTimeout); $(ControlPanel).fadeTo('normal', 1); });

			$(ControlPanel).find('.SlideshowPreviousButton').click(function() { $.innerfade.previous(elements, settings); })
			$(ControlPanel).find('.SlideshowNextButton').click(function() { $.innerfade.next(elements, settings); })
		}
	};

	$.innerfade.next = function(elements, settings)
	{
		if (settings.SlideTimeout != null) { clearTimeout(settings.SlideTimeout); }
		
		if (settings.type == 'sequence')
		{
			if ((settings.CurrentCounter + 1) < elements.length)
			{
				settings.CurrentCounter = settings.CurrentCounter + 1;
				settings.LastCounter = settings.CurrentCounter - 1;
			}
			else
			{
				settings.CurrentCounter = 0;
				settings.LastCounter = elements.length - 1;
			}
		}
		else if (settings.type == 'random')
		{
			settings.LastCounter = settings.CurrentCounter;
			while (settings.CurrentCounter == settings.LastCounter) { settings.CurrentCounter = Math.floor(Math.random() * elements.length); }
		}
		else { alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\''); }

		$.innerfade.show(elements, settings);

		if (settings.autostart) { settings.SlideTimeout = setTimeout((function() { $.innerfade.next(elements, settings); }), settings.timeout); }
	};

	$.innerfade.previous = function(elements, settings)
	{
		if (settings.SlideTimeout != null) { clearTimeout(settings.SlideTimeout); }

		if (settings.type == 'sequence')
		{
			if ((settings.CurrentCounter - 1) >= 0)
			{
				settings.CurrentCounter = settings.CurrentCounter - 1;
				settings.LastCounter = settings.CurrentCounter + 1;
			}
			else
			{
				settings.CurrentCounter = elements.length - 1;
				settings.LastCounter = 0;
			}
		}
		else if (settings.type == 'random')
		{
			settings.LastCounter = settings.CurrentCounter;
			while (settings.CurrentCounter == settings.LastCounter) { settings.CurrentCounter = Math.floor(Math.random() * elements.length); }
		}
		else { alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\''); }

		$.innerfade.show(elements, settings);

		if (settings.autostart) { settings.SlideTimeout = setTimeout((function() { $.innerfade.next(elements, settings); }), settings.timeout); }
	};

	$.innerfade.show = function(elements, settings)
	{
		if (settings.animationtype == 'slide')
		{
			$(elements[settings.LastCounter]).slideUp(settings.speed);
			$(elements[settings.CurrentCounter]).slideDown(settings.speed);
		}
		else if (settings.animationtype == 'fade')
		{
			$(elements[settings.LastCounter]).fadeOut(settings.speed);
			$(elements[settings.CurrentCounter]).fadeIn(settings.speed, function() { removeFilter($(this)[0]); });
		}
		else { alert('Innerfade-animationtype must either be \'slide\' or \'fade\''); }
	}

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) { if (element.style.removeAttribute) { element.style.removeAttribute('filter'); } }
// END INNER FADE //
