// マウスを追いかける画像
var chaser_id = "chaser";
var chaser_x = 0, chaser_y = 0;
var chaser_distance = 48;
var chaser_interval = 8;
var chaser_obj = 0;

function chaser_init() {
    var img = document.images[chaser_id];
    if(!img) return;
    chaser_obj = document.createElement("img");
    chaser_obj.src = img.src;
    chaser_obj.width = img.width;
    chaser_obj.height = img.height;
    chaser_obj.style.position = "absolute";
    document.body.appendChild(chaser_obj);
}

function chaser_move (e) {
    if(!chaser_obj) chaser_init();
    if(!chaser_obj) return;
    
    var x, y;
    if(window.event) {
        x = event.clientX + chaser_scrollleft();
        y = event.clientY + chaser_scrolltop();
    }
    else if(e) { x = e.pageX; y = e.pageY; }
    
    var len = Math.sqrt(Math.pow(chaser_x - x, 2) + 
        Math.pow(chaser_y - y, 2));
    if(len > chaser_interval) {
        var x2 = (chaser_distance / len) * (chaser_x - x) + x;
        var y2 = (chaser_distance / len) * (chaser_y - y) + y;
        if(x2 < x && chaser_obj.width)  x2 -= chaser_obj.width;
        if(y2 < y && chaser_obj.height) y2 -= chaser_obj.height;
        chaser_obj.style.left = Math.floor(x2) + "px";
        chaser_obj.style.top =  Math.floor(y2) + "px";
        chaser_x = x; chaser_y = y;
    }
}

/* ------------------------------------
  スクロール領域の上端
------------------------------------ */
function chaser_scrolltop () {
    if(document.compatMode == "CSS1Compat") {
        return document.body.parentNode.scrollTop;
    }
    else if(document.body && document.body.scrollTop) {
        return document.body.scrollTop;
    }
    else if(self.pageYOffset)
        return self.pageYOffset;
    return 0;
}

/* ------------------------------------
  スクロール領域の左端
------------------------------------ */
function chaser_scrollleft () {
    if(document.compatMode == "CSS1Compat") {
        return document.body.parentNode.scrollLeft;
    }
    else if(document.body && document.body.scrollLeft) {
        return document.body.scrollLeft;
    }
    else if(self.pageXOffset)
        return self.pageXOffset;
    return 0;
}

if(document.getElementById) document.onmousemove = chaser_move;
