var frontImage,backImage,mainLink,loops,interval,fadeSpeed,linkTarget;
var opacity = 0;
var loopsCounter = 0;
var y = 1;

function beginRotation(sentLoops,sentInterval,sentFadeSpeed,sentTarget)
{
	frontImage = document.getElementById("mainImage1");
	backImage = document.getElementById("mainImage2");
	mainLink = document.getElementById("mainLink");	
	loops = sentLoops;
	interval = sentInterval;
	fadeSpeed = sentFadeSpeed / 2;
	target = sentTarget;

	setTimeout(rotateImages, interval);
}

function rotateImages()
{
	if(loops == 0 || loopsCounter < loops)
	{
		frontImage.src = imgLinkPairs[y][0];
		// If linkId was provided
		if(imgLinkPairs[0][1] != "")
		{
			mainLink.href = imgLinkPairs[y][1];
			if(target != "")
				mainLink.target = target;
		}
		y++;
		// When we get to the last image, begin again at the first, and iterate the loop count
		if(y == imgLinkPairs.length)
		{
			y = 0;
			loopsCounter++;
		}
		
		if(fadeSpeed > 0 && backImage)
			fade();
		else
			setTimeout(rotateImages,interval);
	}
	// Once looping is complete, go back to first image/link pair
	else
	{
		frontImage.src = imgLinkPairs[0][0];
		if(imgLinkPairs[0][1] != "")
		{
			mainLink.href = imgLinkPairs[0][1];
			if(target != "")
				mainLink.target = target;
		}
	}	
}

function fade()
{
	if(opacity < 100)
	{
		opacity += fadeSpeed;
		fadeOpacity = 100 - opacity;
		
		setOpacity(frontImage,opacity);
		setOpacity(backImage,fadeOpacity);
			
		setTimeout(fade,10);
	}
	else
	{ 
		backImage.src = frontImage.src;		
		setOpacity(frontImage,0);
		setOpacity(backImage,100);		
		setTimeout(resetOpacity,5);
		setTimeout(rotateImages,interval); 
	}	
}

function setOpacity(theImage, theOpacity)
{
	if (theImage.filters)
		theImage.style.filter = "alpha(opacity="+theOpacity+")";
	else if (theImage.style.MozOpacity)
		theImage.style.MozOpacity=theOpacity/101;
	else if (theImage.style.KhtmlOpacity)
		theImage.style.KhtmlOpacity=theOpacity/100;
	else if (theImage.style.opacity&&!theImage.filters)
		theImage.style.opacity=theOpacity/101;
}

function resetOpacity()
{
	opacity = 0;
	fadeOpacity = 100;
}