/*
	Dynamic Interval
	Copyright Thomas Frank, may 2010
	MIT-license
*/

setDynamicInterval=function(func,interval,percent){
	percent=percent||100;
	var f=function(){
		var me, timeTaken, startTime=new Date().getTime();
		me=arguments.callee;
		if(me.clearer.clear){return};
		func();
		timeTaken=new Date().getTime()-startTime;
		setTimeout(me,Math.max(interval-timeTaken,timeTaken*100/percent));
	};
	f.clearer={};
	f();
	return f.clearer
};

clearDynamicInterval=function(clearer){
	clearer.clear=true
};
