
var animation = {
timer: new Array(),
params: new Array(),
start: new Array(),
animtick: new Array(),
animend: new Array(),
length: new Array()
};
function start_animation(name, params, length, onanimtick, onanimend) {
if(animation.timer[name])
return;
animation.params[name] = params;
animation.start[name] = (new Date()).getTime();
animation.length[name] = length;
animation.animtick[name] = onanimtick;
animation.animend[name] = onanimend;
animation.timer[name] = setInterval('do_animation(\'' + name + '\');', 5);
}
function do_animation(name) {
var elapsed = (new Date()).getTime() - animation.start[name];
if(elapsed > animation.length[name]) {
clearInterval(animation.timer[name]);
var params = animation.params[name];
var length = animation.length[name];
var animend = animation.animend[name];
delete(animation.timer[name]);
delete(animation.params[name]);
delete(animation.start[name]);
delete(animation.animtick[name]);
delete(animation.animend[name]);
delete(animation.length[name]);
animend(elapsed, length, params);
return;
}
animation.animtick[name](elapsed, animation.length[name], animation.params[name]);
return;
}
