function preloadImage(img) 
{
	var image = new Image();
	image.src = imageRoot+img;
	return image;
}

function preInit() 
{
	if ((document.getElementById) && (gallery = document.getElementById(galleryId))) 
	{
		gallery.style.visibility = "hidden";
		if (typeof preInitTimer != 'undefined') 
			clearTimeout(preInitTimer);
	} else {
		preInitTimer = setTimeout("preInit()",2);
	}
}

function fader(imageNumber, opacity) 
{
	var obj = galleryImages[imageNumber];
	if (obj.style) 
	{
		if (obj.style.MozOpacity != null) {  
			/* Mozilla's pre-CSS3 proprietary rule */
			obj.style.MozOpacity = (opacity/100) - .001;
		} else if (obj.style.opacity != null) {
			/* CSS3 compatible */
			obj.style.opacity = (opacity/100) - .001;
		} else if (obj.style.filter != null) {
			/* IE's proprietary filter */
			obj.style.filter = "alpha(opacity="+opacity+")";
		}
	}
}

function fadeInit() 
{
	if (document.getElementById) 
	{
		preInit();
		galleryImages = new Array;
		var node = gallery.firstChild;
		while (node) {
			if (node.nodeType ==1 ) {
				galleryImages.push(node);
			}
			node = node.nextSibling;
		}
		for (i=0; i < galleryImages.length; i++) {
			galleryImages[i].style.position='absolute';
			galleryImages[i].style.top=0;
			galleryImages[i].style.zIndex=0;
			fader(i,0);
		}

		gallery.style.visibility = 'visible';

		currentImage = 0;
		previousImage = galleryImages.length-1;
		opacity = 100;
		fader(currentImage, 100);
		window.setTimeout("crossfade(100)", 2000);
	}
}

function crossfade(opacity) 
{
	if (opacity < 100) 
	{
		fader(currentImage,opacity);
		opacity += 10;
		window.setTimeout("crossfade("+opacity+")", 30);
	} else {
		fader(previousImage,0);
		previousImage = currentImage;
		currentImage += 1;
		if (currentImage >= galleryImages.length) 
		{
			currentImage = 0;
		}
		galleryImages[previousImage].style.zIndex = 0;
		galleryImages[currentImage].style.zIndex = 10;
		opacity = 0;
		window.setTimeout("crossfade("+opacity+")", 2000);
	}
		
}

function addEvent(elm, evType, fn, useCapture) 
{
 if (elm.addEventListener){
   elm.addEventListener(evType, fn, useCapture);
   return true;
 } else if (elm.attachEvent){
   var r = elm.attachEvent("on"+evType, fn);
   return r;
 }
} 
