var txCarsHeader = {
	imageFadeDuration : 1000,
//	imageFadeDuration : 600,
	imageFadeTimeout : 5400,
	activeFading : false,
	imagesLoaded: false,
	carImagesLoaded: {},
	nextFading: false,
	crossfadingActive: false,

	switchCar: function(nextId) {
		if(this.crossfadingActive) {
			//clear the crossfading
			$clear(this.crossfadePeriodical);
		}
		if(this.imagesLoaded == false || this.activeFading || this.activeCar==nextId) {
			//only switch if images are loaded, no other fading is active and the next image is not the actual
			if(nextId!=this.nextId) {
				this.nextFading = nextId;
			}
			return false;
		}

		this.activeFading = true;
		this.nextId = nextId;

		this.oldContainer = $('headerImage-'+this.activeCar);
		this.oldContainer.setStyle('z-index', 10);
		this.oldContainer.effect('opacity', {duration: this.imageFadeDuration}).start(0);

		var nextContainer = $('headerImage-'+nextId);
		nextContainer.setStyles({opacity : 0, 'z-index' : 5});
		nextContainer.effect('opacity', {duration: this.imageFadeDuration, onComplete: function(){
			$('navigationItem-'+this.nextId).setProperty('class','active');
			$('navigationItem-'+this.activeCar).setProperty('class','inactive');

			this.oldContainer.setStyle('z-index', 1);
			this.activeCar = this.nextId;
			this.activeFading = false;
			if(this.nextFading) {
				this.switchCar(this.nextFading);
				this.nextFading = false;
			}
		}.bind(this)}).start(1);
	},

	preloadCarImages: function(images) {
		this.carImagesLoaded = {};
		this.totalImages = images.length;
		for(image in images) {
			new Asset.image(images[image], {
				onload: function(image) {
					this.carImagesLoaded[image] = true;
					if(this.carImagesLoaded.length == this.totalImages) {
						this.imagesLoaded = true;
					}
				}.bind(this, image)
			});

		}
	},

	initImageCrossfade: function() {
		if(this.imagesLoaded) {
			$clear(this.initIamgeCrossafdePeriodical);
			this.crossfadePeriodical = this.crossfade.periodical(this.imageFadeTimeout, this);
			this.crossfadingActive = true;
		}
	},

	crossfade: function() {
		var nextId = this.activeCar+1;
		if(nextId > this.imageCount) {
			nextId = 1;
		}
		this.switchImage(nextId);
	},

	switchImage: function(nextId) {
		this.activeFading = true;
		this.nextId = nextId;

		this.oldContainer = $('headerImage-'+this.activeCar);
		this.oldContainer.setStyle('z-index', 10);
		this.oldContainer.effect('opacity', {duration: this.imageFadeDuration}).start(0);

		var nextContainer = $('headerImage-'+nextId);
		nextContainer.setStyles({opacity : 0, 'z-index' : 5});
		nextContainer.effect('opacity', {duration: this.imageFadeDuration, onComplete: function(){
			this.activeFading = false;
			var navigationItemNext = $('navigationItem-'+this.nextId);
			var navigationItemActive  = $('navigationItem-'+this.activeCar);

			if(navigationItemActive) {
				navigationItemActive.setProperty('class','inactive');
			}
			if(navigationItemNext) {
				navigationItemNext.setProperty('class','active');
			}

			this.oldContainer.setStyle('z-index', 1);
			this.activeCar = this.nextId;
			if(this.nextFading) {
				this.switchCar(this.nextFading);
				this.nextFading = false;
			}

		}.bind(this)}).start(1);
	},

	preloadImages: function(images) {
		new Asset.images(images, {
			onComplete: function() {
				this.imagesLoaded = true;
			}.bind(this)
		});
	},

	setFadeDuration: function(fadeDuration) {
		this.imageFadeDuration = fadeDuration;
	}
}
