	function initFade()
	{
		if(document.all)
		{
			var back = document.getElementById('public-background');
			if(back)
			{
				back.style.filter = 'alpha(opacity=90);';
				//back.style.height = back.parentNode.offsetHeight + 'px';
			}
		}
	
		var container = document.getElementById('crossfade-container');
		for(var i = 0, group; group = crossfadeImages[i]; i++)
		{
			var div = pregoCreateElement('DIV');
			div.id = 'crossfader-'+i;
			
			div.crossfadeFirstLoaded = false;
			div.crossfadeAllLoaded = false;
			div.crossfadeFadingIn = true;
			div.crossfadeInitComplete = false;
			
			div.className = 'crossfader';
			div.style.width = group.width + 'px';
			for(var j = 0, img; img = group.images[j]; j++)
			{
				var imgNode = pregoCreateImage('images/'+img, '');
				imgNode.id = div.id + '-' + j;
				imgNode.crossfadeLoaded = false;
				imgNode.style.zIndex = 1;
				setOpacity(imgNode, 0);
				imgNode.onload = function() 
				{
					setOpacity(this, 0);
				
					var d = this.parentNode;
				
					this.crossfadeLoaded = true;
				
					if(!d.crossfadeFirstLoaded)
					{
						//fadeIn(this.id);
						setOpacity(this, 1);
						d.crossfadeFadingIn = false;
					}
				
					d.crossfadeFirstLoaded = true;
					
					var allLoaded = true;
					var images = d.getElementsByTagName('IMG');
					for(var j = 0, img; img = images[j]; j++)
						allLoaded = allLoaded && img.crossfadeLoaded;
						
					d.crossfadeAllLoaded = allLoaded;
					
					startFade(d.id);
				};
				div.appendChild(imgNode);
			}
			container.appendChild(div);
		}
	}
	
	function startFade(div)
	{
		var d = document.getElementById(div);
		if(d.crossfadeFadingIn || !d.crossfadeAllLoaded || d.crossfadeInitComplete)
			return;
			
		d.crossfadeInitComplete = true;

		if(d.className == 'crossfader')
		{
			var images = d.getElementsByTagName('IMG');
			var image1, image2;
			for(var i = 0, img; img = images[i]; i++)
			{
				if(img.crossfadeOpacity >= 1)
					image1 = img.id;
				else
					image2 = img.id;
			}
			
			var timeout = Math.floor(Math.random()*5000);
			setTimeout('crossFade("'+image1+'", "'+image2+'", "'+d.id+'");', timeout);
		}
	}
	
	function fadeIn(image)
	{
		var imgNode = document.getElementById(image);
		if(!imgNode)
			return;
		
		setOpacity(imgNode, imgNode.crossfadeOpacity + 0.05);
		
		if(imgNode.style.opacity < 1)
		{
			setTimeout('fadeIn("'+image+'");', 100);
			return;
		}
		
		imgNode.parentNode.crossfadeFadingIn = false;
		startFade(imgNode.parentNode.id);
	}
	
	function setOpacity(image, opacity)
	{
		opacity = Math.round(opacity * 100) / 100;
	
		image.crossfadeOpacity = opacity;
		image.style.opacity = opacity;
		image.style.filter = 'alpha(opacity='+(opacity * 100)+');';
	}
	
	function crossFade(image1, image2, container)
	{
		var img1Node = document.getElementById(image1);
		var img2Node = document.getElementById(image2);
	
		setOpacity(img1Node, img1Node.crossfadeOpacity - 0.05);
		setOpacity(img2Node, 1 - img1Node.crossfadeOpacity);
		
		if(img1Node.style.opacity > 0)
		{
			setTimeout('crossFade("'+image1+'", "'+image2+'", "'+container+'");', 100);
			return;
		}
		
		var timeout = 5000 + Math.floor(Math.random() * 3000);
		
		var containerNode = document.getElementById(container);
		var images = containerNode.getElementsByTagName('IMG');
		var newImage = image1;
		for(var i = 0, im; im = images[i]; i++)
		{
			if(im.id != image1 && im.id != image2)
				newImage = im.id;
		}
		
		setTimeout('crossFade("'+image2+'", "'+newImage+'", "'+container+'");', timeout);
	}


	addLoadEvent(initFade);