Блок доходит до определенного момента останавливается на 2 секунды после чего перемещается на начальную координату

<script type="text/javascript">
var Tival=setTimeout("one();", 2000);   
 
function sdvig()
{
    
var b=document.getElementById("block"); 
var a=document.getElementById("imgdv"); 
var x;  
a.style.position="relative";
x=parseInt(a.style.left);
 
if(x>50)
{
    x=-200; 
    clearInterval(Timeval);
    var Tivalet=setTimeout("one();", 2000);
    
}
x +=1;
a.style.left=x+"px";
}
 
function one()
{
var Timeval=setInterval("sdvig();", 15);    
 
}
</script>
Суть скрипта в том, чтобы блок доходит до определенного момента останавливается на 2 секунды после чего перемещается на начальную координату. Неполучается остановить на 2 секунды пытаюсь отчистить clearInterval(Timeval); после чего запустить его заново но с задержкой 2 секунды 1 круг проходит и намертво встает. Подскажите как реализовать, что то я не понимаю в работе таймера.
1 ответ

<script>
onload = function () {m = 0; anim ()}
function anim ()
{
if (++m < 999)
   {
   document.getElementById ('first').style.left = m + 'px';
   t = setTimeout (anim, 10);
   }
else t = setTimeout ('m = 0; anim ()', 2000);
}
</script>
 
<div id="first" style="width: 123px;
                       height: 123px;
                       background: red;
                       position: absolute;
                       z-index: 555;
                       top: 234px"></div>