﻿function reportError(msg, url, line) {
    var str = "You have found an error as below: \n\n";
    str += "Err: " + msg + " on line: " + line;
    alert(str);
    return true;
}

window.onerror = reportError;

//    var obj_marquee = document.getElementById("marquee");
var repeat = null;
var marquee_spd = 50;

function marquee_init(obj) {
    var obj_marquee = document.getElementById(obj);
    var obj_unit = obj_marquee.firstChild;
    var marquee_high = parseInt(obj_marquee.style.height);
    var marquee_wide = parseInt(obj_marquee.style.width);
    var unit_high = obj_unit.offsetHeight;
    var unit_wide = obj_unit.offsetWidth;
    var m = 0, n = 0, i = 0;
    var tmp = null;

    m = Math.ceil(marquee_wide / unit_wide);
    n = Math.ceil(marquee_high / unit_high);

    obj_unit.style.width = marquee_wide * (m + 1);
    obj_unit.rows[0].cells[0].style.width = obj_marquee.style.width;

    for (i = 0; i < m; i++) {
        tmp = obj_unit.rows[0].insertCell(-1);
        tmp.innerHTML = obj_unit.rows[0].cells[0].innerHTML;
        tmp.style.width = marquee_wide;
        tmp = null;
    }

    for (i = 0; i < n; i++) {
        obj_marquee.appendChild(obj_unit.cloneNode(true));
    }

    return obj_marquee;
}

function marquee_show(direction, obj_marquee) {
    switch (direction) {
        case "up":
            if (obj_marquee.scrollTop >= obj_marquee.children[1].offsetTop) {
                obj_marquee.scrollTop -= obj_marquee.firstChild.offsetHeight;
            } else {
                obj_marquee.scrollTop++;
            }
            break;
        case "down":
            if (obj_marquee.scrollTop <= 0) {
                obj_marquee.scrollTop += obj_marquee.firstChild.offsetHeight;
            } else {
                obj_marquee.scrollTop--;
            }
            break;
        case "left":
            if (obj_marquee.scrollLeft >= obj_marquee.firstChild.rows[0].cells[0].offsetWidth) {
                obj_marquee.scrollLeft -= obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
            } else {
                obj_marquee.scrollLeft++;
            }
            break;
        case "right":
            if (obj_marquee.scrollLeft <= 0) {
                obj_marquee.scrollLeft += obj_marquee.firstChild.rows[0].cells[0].offsetWidth;
            } else {
                obj_marquee.scrollLeft--;
            }
            break;
        default:
            break;
    }
    return;
}

function marquee_doit(obj_marquee) {
    var direction = "";
    direction = obj_marquee.getAttribute("direction");
    if (direction != null) marquee_show(direction, obj_marquee);
    direction = obj_marquee.getAttribute("direction2");
    if (direction != null) marquee_show(direction, obj_marquee);
    return;
}

//调用方法
// var obj=marquee_init('marquee');     //返回要滚动的对象
// var interval=setInterval("marquee_doit(obj)", marquee_spd);  // obj是刚才获取的对象,marquee_spd为速度