// JavaScript Document ImageFader
/* Chayne Walsh : 2008 11 05 */

var ImageFader = 
{
	ImageArray : new Array(),
	ImageIndex : 0,
	ImagePreviousId : '',
	ImagePreviousIndex : -1,
	TimeOutNextImage : null,
	TimeOutRotateImage : null,
	init: function()
	{
		AjaxImages.Get('/avtrucks/images/backgrounds/trucks/imagefiles.asp');
	},
	createImgElement : function(imgId,imgSrc)
	{
		var img = document.createElement('img');
			//img.id = imgId;
			img.setAttribute('id', imgId);
			img.style.position = 'absolute';
			img.style.top = '0px';
			img.style.left = '0px';
			img.style.zIndex = '4';
			img.style.display = 'none';
			img.src = imgSrc ; //'/avtrucks/images/backgrounds/trucks/wstar-truck-2.jpg';
			img.opacity = (0); 
			img.MozOpacity = (0); 
			img.KhtmlOpacity = (0); 
			img.filter = "alpha(opacity=0)"; 
		return img;
	},
	Run : function(strImages)
	{
		//try
		//{
			var fader1 = document.getElementById("backgroundImage1");
			
			ImageFader.ImageArray;
			strArray = strImages.split(';#');
			if (strArray.length > 0)
			{
				for ( var i = 0; i < strArray.length; i++)
				{
					// create an array of image src
					ImageFader.ImageArray[i] = {'id' : 'RotateImages_'+i, 'src' : '/avtrucks/images/backgrounds/trucks/' + strArray[i]};
					// create image elements
					fader1.appendChild( ImageFader.createImgElement( ImageFader.ImageArray[i].id, ImageFader.ImageArray[i].src ) );
				}
			}
			// turn off image fading until debugged
			//ImageFader.rotateImages('linear',10000);
		//}catch(e){}
	},
	rotateImages : function(order,timeoutMiliseconds)
	{
		if ( order == 'linear' && ImageFader.ImageIndex < ImageFader.ImageArray.length )
		{
			var intervalBufferTime = Math.round(100/ImageFader.fadeSpeedSteps) * ImageFader.fadeSpeedTime; 
			
			clearTimeout( ImageFader.TimeOutNextImage );
			clearTimeout( ImageFader.TimeOutRotateImage );
			
			if ( ImageFader.ImageIndex < 0 ) ImageFader.ImageIndex = 0;
			if ( ImageFader.ImageIndex >= ImageFader.ImageArray.length ) ImageFader.ImageIndex = 0;
			ImageFader.TimeOutNextImage = setTimeout("ImageFader.nextImage("+ImageFader.ImageIndex+");",timeoutMiliseconds-intervalBufferTime);
			ImageFader.TimeOutRotateImage = setTimeout("ImageFader.rotateImages('linear',10000);",timeoutMiliseconds);
			ImageFader.ImageIndex++;
		}
		
		
	},
	fadeSpeedTime : 1,
	fadeSpeedSteps : 3,
	nextImage : function(index)
	{
		if ( ImageFader.ImagePreviousId != '' && ImageFader.ImagePreviousIndex > -1)
		{
			var imgPrevious = document.getElementById(ImageFader.ImagePreviousId);
			// If we had a previous image then fade it out to zero opacity.
			ImageFader.FadeImages (ImageFader.ImageArray[ImageFader.ImagePreviousIndex].id, 100, 0, ImageFader.fadeSpeedTime,ImageFader.fadeSpeedSteps);
			
		}
		
		// make sure the image is set to zero opacity
		Core.setOpacity ( ImageFader.ImageArray[index].id, 0 );
		var img = document.getElementById(ImageFader.ImageArray[index].id);
		// set this image to block
		img.style.display = 'block';
		img.style.zIndex = 4;
		// fade in this image from zero to 100
		ImageFader.FadeImages ( ImageFader.ImageArray[index].id, 0, 100, ImageFader.fadeSpeedTime,ImageFader.fadeSpeedSteps);
		
		Debug.Messages( "ID=" + ImageFader.ImageArray[index].id + " | src=" + ImageFader.ImageArray[index].src + " | Index=" + index );
		// store this image id and index for the next rotation
		ImageFader.ImagePreviousId = ImageFader.ImageArray[index].id;
		ImageFader.ImagePreviousIndex = index;
		
		
	},
    FadeImages : function (id, opacStart, opacEnd, speedInMiliseconds, steps)
	{
		//try
		//{
			var obj = document.getElementById(id);
			
			
			if(opacStart > opacEnd)
			{ 
				if ( opacStart < opacEnd ) opacStart = opacEnd;
				
				Core.setOpacity(id,opacStart);
				opacStart -= steps;
				setTimeout("ImageFader.FadeImages('" + id + "'," + opacStart + "," + opacEnd + ","+speedInMiliseconds+","+steps+")",(speedInMiliseconds)); 
				if ( opacStart <= 0 ) obj.style.display= 'none';
				if ( opacStart <= 0 ) obj.style.zIndex = 2;
			}
			else if(opacStart < opacEnd)
			{ 
				if ( opacStart > opacEnd ) opacStart = opacEnd ;
				Core.setOpacity(id,opacStart);
				opacStart += steps;
				setTimeout("ImageFader.FadeImages('" + id + "'," + opacStart + "," + opacEnd + ","+speedInMiliseconds+","+steps+")",(speedInMiliseconds)); 
			} 
		//}
		//catch (e) {/*do nothing*/}
	} 
}
Core.start(ImageFader);

var AjaxImages =
{
	httpRequest : Core.createXHR(),
	Text : '',
    Get: function(path)
    {
        try
		{
			AjaxImages.httpRequest.open('GET', path, true);
            AjaxImages.httpRequest.onreadystatechange = function()
            {  
                if (AjaxImages.httpRequest.readyState == 4)
				{
                    if (AjaxImages.httpRequest.status == 200)
                    {
                        try 
						{ 
							if (AjaxImages.httpRequest.responseText != '')
							{
								ImageFader.Run(AjaxImages.httpRequest.responseText);
							}
							
						} catch (e){ }
                    }
                }
            }
            AjaxImages.httpRequest.send(null);
			Core.preventDefault(event);

        }catch(e){}
    }
 }

