(function($) {
	var settings;
		
	$.rotator = function(callerSettings) {
		settings = $.extend({
			container: null,
			imgSrcs: null,
			changeTime: 15000,
			transformTime: 200
		}, callerSettings || {});
		
		//get link to current image
		settings.currentPos = 0;
		
		settings.currentImage = $("img", settings.container);
		
		//add relative position to block & set fixed hight and width


		$(settings.container).addClass("header_gallery").css({height: $(settings.currentImage).height() ? $(settings.currentImage).height() : '330px', width: $(settings.currentImage).width()});

		var proceed = function() {
			$(settings.currentImage).addClass("header_current_image").removeClass("header_next_image");
			
			//preload next image
			var nextPos = (settings.currentPos + 1 < settings.imgSrcs.length) ? settings.currentPos + 1 : 0;
			var nextImage = new Image();
			nextImage.onload = function() {
				//add second image below current
				$(nextImage).addClass("header_next_image").insertAfter($(settings.currentImage));
				
				//descrease opacity
				$(settings.currentImage).fadeOut(settings.transformTime, function() {
					$(this).remove();
				});
				//make next image current
				settings.currentPos = nextPos;
				settings.currentImage = $(nextImage);
				
				setTimeout(function() {proceed();}, settings.changeTime);
			}
			nextImage.src = settings.imgSrcs[nextPos];//moved after onload for IE
			//nextImage.onerror = function() {alert("error");}
		}

		//run
		setTimeout(function() {proceed();}, settings.changeTime);
	}
})(jQuery);
