Добрго времени суток уважаемые знатоки
есть код который работает с косяком если посмотрите увидите его.
подскажите как исправить.
или хотябы наводящие вопросы. За любую помощь заранее благодарен
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        #wrapper{
            position: relative;
            border: 2px solid #000000;
            width: 500px;
            height: 400px;
        }
        #test{
            width: 100px;
            height: 100px;
            position: absolute;
            background: #ff0000;
        }
    </style>
</head>
<body>
<div id="wrapper">
    <div id="test"></div>
</div>
<script type="text/javascript">
var direction = [[1,1],
    [1,-1],
    [-1,-1],
    [-1,1]];
var direct = 0;
function move() {
    var elem = document.getElementById('test');
    var left = 0; 
    var top = 0;  
    function frame() {
        var currentCoord = [left, top];
        var nextCoord = currentCoord.map(function(value, index) { return value + direction[direct][index] } );
        elem.style.left = nextCoord[0] + 'px';
        elem.style.top = nextCoord[1] + 'px';
        left = nextCoord[0];
        top = nextCoord[1];
        var x = 0;
        var y = 1;
        if ( nextCoord[y] == 300  ) {
            direct = 1;
            
        }
        if ( nextCoord[x] == 400 ) {
            direct = 2;
    
        }
        if ( nextCoord[y] == 0  ) {
            direct = 3;
           
        }
        if( nextCoord[x] == 0 ) {
            direct = 0;
        }
            
    }
    var timer = setInterval(frame, 1); 
}
move();
</script>
</body>
</html>