var playing_animations = new Object();

BFAnimatedGifPlayer = function() {
	
	this.load_count = 0;
		
	this.play = function(args, overlay) {
		this.overlay = overlay;
		var anisrc = $(args.image_id).src.replace(/_preview\.gif$/, '.gif');
		this.image = new Image();
		this.image.src = anisrc;
		$(args.image_id).src = anisrc;
		$(args.image_id).parentNode.className += ' animated-spinner';
		this.gifIsLoaded();
	}

	this.gifIsLoaded = function() {
		this.load_count++;			
		var loadtime = this.load_count * 200;
		if(! this.image.complete && loadtime < 10000) {
			var il = function() {
				this.gifIsLoaded();
			}.bind(this);
			setTimeout(il, 200); 
		} else {
			this.overlay.hide();
		}
	}
};


function RegisterAnimation(args) {
	if(! args || ! args.image_element_play_id) {		
		console.error("RegisterAnimation needs args: {image_element_play_id: 'animation-id-1234'}");
	}			
	$(args.image_element_play_id).observe('click', function(e) {
		e.stop();
		var data = e.element().getAttribute('gif_animation');
		var player = new BFAnimatedGifPlayer();
		player.play( eval('(' + data + ')'),  e.element());
	});
}

