dkamera.loading = (function($) {
	var color = '#f7f7f7';
	var image_src = '/media/images/loading.gif';
	var image_width = 94;
	var image_height = 68;
	var $image = $('<img>').attr('src', image_src).css({
		position: 'absolute',
		left: '50%',
		top: '50%',
		marginLeft: '-' + (image_width / 2) + 'px',
		marginTop: '-' + (image_height / 2) + 'px'
	});
	
	function start(container)
	{
		var $container = $(container);
		var $loading = $('<div>');
		var running = true;
		var shown = null;
		var $img = $image.clone();
		$loading.append($img);
		
		$loading.css({
			position: 'absolute',
			left: $container.position().left,
			top: $container.position().top,
			backgroundColor: color,
			opacity: 0.8
		});
		
		function resize() {
			$loading.css({
				width: $container.innerWidth(),
				height: $container.innerHeight(),
			});
			if ($container.innerHeight() > 500)
				$img.css('top', '250px');
			else
				$img.css('top', '50%');
		}
		resize();
		$container.bind('resize', resize);
		
		$loading.hide();
		$container.offsetParent().append($loading);
		
		function show()
		{
			if (!running) return;
			$loading.fadeIn(250);
		}
		
		function stop()
		{
			if (!running) return;
			running = false;
			$loading.remove();
			if (shown) window.clearTimeout(shown);
			$container.unbind('resize', resize);
		}
		
		shown = window.setTimeout(show, 250);
		
		return {
			stop: stop,
			show: show
		}
	}
	
	return {
		start: start
	};
})(jQuery);


