.factory('countdown', function($q, $interval) {
return function(to) {
var d = $q.defer();
var elapsed = 0;
var intervalId = $interval(function() {
elapsed += 1;
d.notify(elapsed);
if(Date.now() >= to) {
$interval.cancel(intervalId);
d.resolve();
}
}, 1000);
return d.promise;
};
});