Gallery = function(container, options) {
	
	var window_width = $(window).width();
	var left = -((2000-window_width)/2);
	var loading_left = ( left * (-1) + window_width / 2 ) - 16;
	
	var wrapper = jQuery('#hometeaser_wrapper');
	wrapper.css({
		'width': window_width,
		'overflow': 'hidden'
	});
	container.css({
		'position': 'absolute',
		'top': 0,
		'left': left
	});
	
	container = jQuery(container);
	options = options || {};
	
	var instance = this;
	var timeAutoChange = 4800;
	var timeFadeImage = 1200;

	var changeRunning = false;
	var homeTeaserElems = jQuery('div.teaserelem', container);
	
	if (homeTeaserElems.length < 2) {
		homeTeaserElems.show();
		return;
	}
	
	var loading = jQuery('<div class="loading" style="left:' + loading_left + 'px;"><img src="/ite-theme/images/custom/ajax-loader.gif" alt="" /></div>');
	container.append(loading);	
	homeTeaserElems.hide();

	var changeElem;
	var changer;
	var starter;
	
	var start = function() {
		starter = setInterval(function() {
			startsec();
		}, 1000 * 1);
	}
	
	var startsec = function() {
		clearInterval(starter);
		jQuery('.loading img').fadeOut();
		jQuery(homeTeaserElems.get(homeTeaserElems.size() - 1)).fadeIn(timeFadeImage, function() {
			homeTeaserElems.show();
			startAnimation();
		});
	}
	
	var loadcounter = 0;
	var init = function() {
		homeTeaserElems.each(
			function() {
				var img = new Image();
				img.onLoad = imgloaded();
				var src = jQuery('img', jQuery(this)).attr('src');
				img.src = src;
			}
		);
	}
	
	var imgloaded = function() {
		loadcounter++;
		if (loadcounter == homeTeaserElems.size()) {
			start();
		}
	}
	
	var startAnimation = function() {
		changer = setInterval(function() {
			changeNext();
		}, timeAutoChange);
	}
	
	var changeNext = function() {
		if (changeRunning) return;
		changeRunning = true;
		instance.changeElem = jQuery('div.teaserelem:last', instance.container);
		instance.changeElem.fadeOut(timeFadeImage, function() {
			jQuery(container).prepend(this);
			jQuery(this).show();
			changeRunning = false;
		});
	}
	
	init();
}

