(function() {

var Clip = {
	regexp: /_(\d{3})_0\.jpg$/,
	lambda: function(m, i) { return '_' + ('00' + ++i).slice(-3) + '_0.jpg' },
	lend: '_001_0.jpg',
	delay: 300
};
var job;
function nextFrame() {
	var img = this;
	if (!img.oimg.play) return;
	if (!img.onerror){ //&& img.src != img.osrc) {
		img.onerror = function() { if (this.src != this.osrc) this.src =  this.src.replace(Clip.regexp, Clip.lend) };
	}
	img.oimg.src = img.src;
	job= setTimeout(function() { img.src = img.src.replace(Clip.regexp, Clip.lambda) }, Clip.delay);
}

function playClip(e) {
	var el = e.srcElement || e.target;
	if (!el || el.tagName != 'IMG' || !Clip.regexp.test(el.src)) return;
	el.play = (e.type == 'mouseover');
	if (el.loader) {
		el.loader.src = el.src.replace(Clip.regexp, Clip.lambda);
	} else if (el.play) {
		var img = document.createElement('img');
		img.oimg = el;
		img.onload = nextFrame;
		img.src = el.src;
		el.loader = img;
	}
}
function stopClip(e) {
	if(job) {
		clearTimeout(job);
		job = 0;
	}
	var el = e.srcElement || e.target;
	if (!el || el.tagName != 'IMG' || !Clip.regexp.test(el.src)) return;
	el.play = false;
	var img = document.createElement('img');
	img.oimg = el;
	img.onload = "";
}
addEvent(document, 'mouseover', playClip);
addEvent(document, 'mouseout', stopClip);
addEvent(document, 'click', stopClip);

})()
