CrossFadingOptions = {
	
	outputElementId: '',
	currentIndex: 0,
	transitionTime: 5000,
	animationSpeed: 40,
	crossPercentage: 70,
	listImages: [],
	minOpacity: 0,
	maxOpacity: 100
	
}

CrossFading = {
	
	setOpacity: function(sElementId, iValue)
				{
					var oElement = document.getElementById(sElementId);
					
					if(this.isBrowserIE())
					{
						oElement.style.filter  = 'alpha(opacity='+iValue+')';
					}
					else
					{
						oElement.style.opacity = iValue / 100;
					}
				},

	setDisplay: function(sElementId, iStatus)
				{
					var oElement = document.getElementById(sElementId);
					
					oElement.style.display = (iStatus == 1) ? 'inline' : 'none';
				},

	isBrowserIE: function()
				 {
					 var sBrowserName = navigator.appName;
					
					 if(sBrowserName == 'Microsoft Internet Explorer')
					 {
				 		 return true;
					 }
					 else
					 {
						 return false;
					 }
				 },

	fadeIn: function(sElementId)
			{
				var obj = this;
				CrossFadingOptions.maxOpacity = 100;
				
				this.setOpacity(sElementId, CrossFadingOptions.maxOpacity);
				this.bTimerIn = setInterval(function() { obj.animateFadeIn(sElementId); }, CrossFadingOptions.animationSpeed);
			},

	fadeOut: function fadeOut(sElementId)
			 {				
				 var obj = this;
				 CrossFadingOptions.minOpacity = 0;

				 this.setDisplay(sElementId, 1);
				 this.setOpacity(sElementId, CrossFadingOptions.minOpacity);
				 this.bTimerOut = setInterval(function() { obj.animateFadeOut(sElementId); }, CrossFadingOptions.animationSpeed);
			 },

	animateFadeIn: function(sElementId)
				   {
					   if(CrossFadingOptions.maxOpacity > 0)
					   {
						   CrossFadingOptions.maxOpacity = CrossFadingOptions.maxOpacity - 5;
						   this.setOpacity(sElementId, CrossFadingOptions.maxOpacity);
						   
						   if(CrossFadingOptions.maxOpacity == CrossFadingOptions.crossPercentage)
						   {
							   if(CrossFadingOptions.currentIndex + 1 != CrossFadingOptions.listImages.length)
							   {
								   CrossFadingOptions.currentIndex++;
							   }
							   else
							   {
								   CrossFadingOptions.currentIndex = 0;
							   }
							   this.fadeOut('crossfading_image'+CrossFadingOptions.currentIndex, CrossFadingOptions.animationSpeed);
						   }
					   }
					   else
					   {
						   clearInterval(this.bTimerIn);
						   this.setDisplay(sElementId, 0);
					   }
				   },

	animateFadeOut: function(sElementId)
					{
						if(CrossFadingOptions.minOpacity < 100)
						{
							CrossFadingOptions.minOpacity = CrossFadingOptions.minOpacity + 5;
							this.setOpacity(sElementId, CrossFadingOptions.minOpacity);
						}
						else
						{
							var obj = this;

							clearInterval(this.bTimerOut);
							setTimeout(function() { obj.fadeIn('crossfading_image'+CrossFadingOptions.currentIndex); }, CrossFadingOptions.transitionTime);
						}
					},
					
	init: function()
		  {
			  var obj 			= this;
			  var numImages 	= CrossFadingOptions.listImages.length;
			  var outputElement = document.getElementById(CrossFadingOptions.outputElementId);

			  for(var i = 0; i < numImages; i++)
			  {
				  var createImage = document.createElement('img');
				  createImage.setAttribute('src', CrossFadingOptions.listImages[i]);
				  createImage.setAttribute('id', 'crossfading_image'+i);
				  outputElement.appendChild(createImage);
			  }

			  this.setDisplay('crossfading_image0', 1);
			  setTimeout(function() { obj.fadeIn('crossfading_image0'); }, CrossFadingOptions.transitionTime);
		  }
}