// Total number of images
var numImages = 15;

// Create image file paths
var headerImgPaths = new Array(numImages);
for (var i = 1; i <= numImages; i++)
	headerImgPaths[i-1] = "/img/layout/head_img"+i+".jpg";

// Store images that we already loaded
var headerImgs = new Array(numImages);
headerImgs[0] = new Image();
headerImgs[0].src = headerImgPaths[0]; 
for (var i = 1; i < numImages; i++)
	headerImgs[i] = null;

// Variable to hold header image element
var headerImgElem = null;
var headerImg2Elem = null;

// Current image number and next image number
var curImgNum = 1;
var nextImgNum = Math.floor(Math.random() * (numImages - 1)) + 1;
headerImgs[nextImgNum] = new Image();
headerImgs[nextImgNum].src = headerImgPaths[nextImgNum];

// Fix opacity of parish text for IE
if (document.styleSheets.length > 0 && !document.styleSheets[0].cssRules)
{
	//var parishText = document.getElementById();
	for (var i = 0; i < document.styleSheets.length; i++)
	{
		// Check each css rule for opacity
		var css = document.styleSheets[i].rules;
		for (h = 0; h < css.length; h++)
		{
			if (css[h].style.opacity)
				css[h].style.filter = "alpha(opacity=" + (css[h].style.opacity*100) + ")";
		}
	}
}

// Rotates the image
function headerRotate()
{
	// Get image element
	if (headerImgElem == null || headerImg2Elem == null)
	{
		headerImgElem = document.getElementById("imgRotator");
		headerImg2Elem = document.getElementById("imgRotator2");
		
		if (headerImg2Elem != null)
			headerImg2Elem.src = headerImgPaths[nextImgNum];
		
		// Check if the browser is IE6
		if (typeof document.body.style.maxHeight == "undefined")
		{
			// Create span
			var span = document.createElement("span");
		
			// Get elements
			var elem = document.getElementById("headImg");
			var links  = document.getElementById("links");
			if (elem != null && span != null && links != null)
			{	
				// Set span style for image
				span.id = "headImgIeSpan";
				span.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + elem.src + "')";
				span.style.height = elem.offsetHeight + "px";
				span.style.width = elem.offsetWidth + "px";
				
				// Set link z-index to fix bug that hides links
				links.style.zIndex = "15";
				
				// Replace actual image with span
				elem.parentNode.replaceChild(span, elem);
			}
			
			// Replace the bulletin if it is on the page
			var bulletin = document.getElementById("bulletin");
			if (bulletin != null)
			{
				// Create span
				var bulletinSpan = document.createElement("span");
				if (bulletinSpan != null)
				{
					// Set span style for image
					bulletinSpan.id = "bulletin";
					bulletinSpan.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + bulletin.src + "')";
					bulletinSpan.style.height = bulletin.offsetHeight + "px";
					bulletinSpan.style.width = bulletin.offsetWidth + "px";
					
					// Replace actual image with span
					bulletin.parentNode.replaceChild(bulletinSpan, bulletin);
				}
			}
		}
		
		// Set interval for changes
		setInterval("headerRotate();", 15000);
	}	
	// Make sure we have the element
	else
	{	
		// Fade out the front image
		fadeHeaderImg(1);
	}
}

// Fades out the front image
function fadeHeaderImg(opacity)
{
	// Wait for the back image to load
	if (!headerImg2Elem.complete)
		setTimeout("fadeHeaderImg(" + opacity + ");", 250);

	// Fade out the front image
	if (typeof headerImgElem.style.opacity != "undefined")
		headerImgElem.style.opacity = opacity;
	else
		headerImgElem.style.filter = "alpha(opacity="+(opacity*100)+")";
			
	if (opacity < 0)
	{
		// Change the front image
		headerImgElem.src = headerImg2Elem.src;
		
		// Change the opacity of front image
		if (typeof headerImgElem.style.opacity != "undefined")
			headerImgElem.style.opacity = 1;
		else
			headerImgElem.style.filter = "alpha(opacity=100)";
			
		// Pick a random image for next time
		do
		{
			nextImgNum = Math.floor(Math.random() * numImages);
		} while (nextImgNum == curImgNum);
		curImgNum = nextImgNum;
		
		// Change the back image
		if (headerImgs[nextImgNum] == null)
		{ 
			headerImgs[nextImgNum] = new Image();
			headerImgs[nextImgNum].src = headerImgPaths[nextImgNum];
		}
		headerImg2Elem.src = headerImgs[nextImgNum].src;
	}
	else
		setTimeout("fadeHeaderImg(" + (opacity-.05) + ");", 50);
}
