(function($) {

	$.animations['banners'] = {
		settings: {},
		images: [],
		current: 0,
		fadeouts: null,
		logo: null,
		initialize: function(options)
		{
			var B = $.animations.banners;
			B.settings = $.extend({
				images: [],
				preload: 1
			}, options);
			B.images = B.settings.images;
			B.fadeouts = $('#title-intro,#logo');
			if ($.browser.msie) {
				B.fadeouts.css('visibility', 'hidden');
			} else {
				B.fadeouts.css('opacity', 0);
			}
		},
		start: function()
		{
			var settings = $.animations.banners.settings;
			var count = settings.images.length, loaded = 0, preload = settings.preload;
			function _image_loaded() {
				loaded += 1;
				if (loaded == Math.round(count * preload)) {
					window.setTimeout(_start_anim, 500);
				}
			};
			function _start_anim() {
				var $banner = $('#banner'),
					bHeight = $banner.height(),
					sMargin = (bHeight - 1) / 2;
				$banner
					.height(1)
					.css({
						'backgroundImage': 'none',
						'backgroundPosition': '50% 50%',
						'border': '1px solid #4e839c',
						'marginTop': sMargin+'px'
					})
					.animate({
						'height': bHeight+'px',
						'width': '100%',
						'marginTop': '0'
					}, function() {
						if ($.browser.msie) {
							$.animations.banners.fadeouts.css('visibility', 'visible');
							$.animations.start('service_thumbs');
						} else {
							$.animations.banners.fadeouts.animate(
								{'opacity': 1},
								'slow', 'swing',
								function() {
									$.animations.start('service_thumbs');
								});
						}
						$.animations.banners.do_switch(true);
						window.setInterval($.animations.banners.do_switch, 2000);
					});
			}
			for (var i=0; i<count; i++) {
				var img = document.createElement('IMG');
				$(img).attr('src', settings.images[i]).load(_image_loaded);
			}
		},
		do_switch: function(first)
		{
			var images  = $.animations.banners.images,
			    current = $.animations.banners.current;
			if (current == images.length) {
				current = 0;
			}
			var url = 'url("'+images[current]+'")',
				$banner = $('#banner'),
				$inner = $('#banner>div.inner');
			$inner.css('backgroundImage', $banner.css('backgroundImage'));
			function _next() {
				$banner.css('backgroundImage', url);
				$inner.fadeOut();
			}
			if (first) {
				$inner.fadeIn('fast', _next);
			} else {
				$inner.show();
				_next();
			}
			$.animations.banners.current = current + 1;
		}
	};

})(jQuery);