﻿var rollingArr = new Array();

function initRolling(id, innerId) {
    var target = getTarget(id);

    if (target == null) {
        target = new Object();
        target.id = id;
        target.node = $("#" + id);
        target.direction = "left";
        target.innerId = innerId;

        rollingArr.push(target);
    }

    startRolling(id);
}

function interval(id) {
    var target = getTarget(id);

    if (target.node.width() >= $("#" + target.innerId).width()) {
        stopRolling(target.id);
    }
    else {
        if (typeof (target.interval) == "undefined" || target.interval == null) {
            target.interval = setInterval("startRolling('" + id + "')", 30);
        }
    }
}

function startRolling(id) {
    var target = getTarget(id);

    interval(id);

    if (target != null) {
        if (target.direction == "left") {
            if (target.node.scrollLeft() + target.node.width() < $("#" + target.innerId).width() - 10) {
                target.direction = "left";
            }
            else {
                target.direction = "right";
            }

            target.node.scrollLeft(target.node.scrollLeft() + 1);
        }
        else {
            if (target.node.scrollLeft() == 0) {
                target.direction = "left";
            }
            else {
                target.direction = "right";
            }

            target.node.scrollLeft(target.node.scrollLeft() - 1);
        }
    }
}

function stopRolling(id) {
    var target = getTarget(id);
    if (target != null && target.interval != null) {
        clearInterval(target.interval);
    }
}

function getTarget(id) {
    var target = null;

    for (var i = 0; i < rollingArr.length; i++) {
        if (rollingArr[i].id == id) {
            target = rollingArr[i];
            break;
        }
    }

    return target;
}