(function($){
"use strict";
$.fn.countTo=function(options){
options=$.extend({}, $.fn.countTo.defaults, options||{});
var loops=Math.ceil(options.speed / options.refreshInterval),
increment=(options.to - options.from) / loops;
return $(this).each(function(){
var _this=this,
loopCount=0,
value=options.from,
interval=setInterval(updateTimer, options.refreshInterval);
function updateTimer(){
value +=increment;
loopCount++;
$(_this).html(value.toFixed(options.decimals));
if(typeof(options.onUpdate)==='function'){
options.onUpdate.call(_this, value);
}
if(loopCount >=loops){
clearInterval(interval);
value=options.to;
if(typeof(options.onComplete)==='function'){
options.onComplete.call(_this, value);
}}
}});
};
$.fn.countTo.defaults={
from: 0,
to: 100,
speed: 1000,
refreshInterval: 100,
decimals: 0,
onUpdate: null,
onComplete: null
};})(jQuery);