var timerlen = 5;
var slideAniLen = 1000;

var obj = new Array();
var leftStartPos = new Array();
var leftEndPos = new Array();
var stopSlidingLeft = new Array();
var moving = new Array();
var dir = new Array();

var timerID = new Array();
var startTime = new Array();

function slideLeft(objname, endPosition) {
    if (moving[objname])
        return;
    obj[objname] = document.getElementById(objname);
    leftStartPos[objname] = parseInt(obj[objname].style.left);
    leftEndPos[objname] = leftStartPos[objname] + endPosition;
    
    if (leftStartPos[objname] < leftEndPos[objname]) {
        dir[objname] = "right";
    } else {
        dir[objname] = "left";
    }
    moving[objname] = true;
    stopSlidingLeft[objname] = "false";
    startSlideLeft(objname);
}
function stopSlideLeft(objname) {
    
    stopSlidingLeft[objname] = "true";
}
function startSlideLeft(objname) {
    
    obj[objname] = document.getElementById(objname);
    startTime[objname] = (new Date()).getTime();
    timerID[objname] = setInterval('slideLeftTick(\'' + objname + '\');', timerlen);
}
function slideLeftTick(objname) {
    var elapsed = (new Date()).getTime() - startTime[objname];
    
    
    if ((stopSlidingLeft[objname] == "true"))
        endLeftMove(objname);
    else if ((parseInt(obj[objname].style.left) < -1450)) {
        obj[objname].style.left = -1448 + "px";
        endLeftMove(objname);
    } else if (parseInt(obj[objname].style.left) > 0) {
        obj[objname].style.left = -2 + "px";
        endLeftMove(objname);
    }
    else {
        var d;
        
        if (dir[objname] == "left") {
            d = Math.round(elapsed / slideAniLen * (leftStartPos[objname] - leftEndPos[objname]));
            d = leftStartPos[objname] - d;
        }
        else {
            d = Math.round(elapsed / slideAniLen * (leftEndPos[objname] - leftStartPos[objname]));
            d = leftStartPos[objname] + d;
        }        
        obj[objname].style.left = d + "px";
    }

    return;
}
function endLeftMove(objname) {
    clearInterval(timerID[objname]);

    //obj[objname].style.top = topEndPos[objname] + "px";

    delete (moving[objname]);
    delete (timerID[objname]);
    delete (startTime[objname]);
    delete (leftEndPos[objname]);
    delete (leftStartPos[objname]);
    delete (obj[objname]);
    delete (dir[objname]);

    return;
}