(function($) {
	GS.extend('ui.thumb', function($images) {
		var loaded = false;
		$.each($images, function() {
			if (loaded) {
				return;
			}
			new GS.ui.thumb_($(this));
			loaded = true;
		});
	});
	GS.extend('ui.thumb_', function($wrapper) {
		var wrapper = $wrapper,
			image = $('img', wrapper),
			src = image.attr('src'),
			tries = 0;
		var Init = function() {
			var check = image.width();
			if (check == 0) {
				wrapper.addClass('image_loading');
				image.bind('load', HandleImageLoaded).bind('error', HandleImageError);
			}
		};
		var HandleImageError = function() {
			tries++;
			if (tries < 4) {
				setTimeout(function() {
					image.attr('src', src);
				}, 1000);
			}
		};
		var HandleImageLoaded = function() {
			wrapper.removeClass('image_loading');
		};
		Init();
	});
})(jQuery);
