/*************************************
 作者：DK
 时间：2010年1月1日
 网址：http://www.dklogs.net
 电子邮箱：xiaobaov2@gmail.com
 *************************************/
var dklogsEye = {
    _x: null,
    _y: null,
    offset: 5,
    eyeInfo: {
        leftID: 'eyeLeft',
        rightID: 'eyeRight',
        eyeballR: 10,
        eyeR: 15
    },
    eyeballL: {
        eyeID: 'eyeLeft',
        eyeballID: 'eyeball_1',
        x: null,
        y: null,
        xDst: 0,
        yDst: 0,
        dst: 0,
        cntrX: 0,
        cntrY: 0,
        node: null
    },
    eyeballR: {
        eyeID: 'eyeRight',
        eyeballID: 'eyeball_2',
        x: null,
        y: null,
        xDst: 0,
        yDst: 0,
        dst: 0,
        cntrX: 0,
        cntrY: 0,
        node: null
    },
    eyeballMove: function(e){
        e = e || window.event;
        dklogsEye._x = parseInt(dklogsEye.getMousePositionInDoc(e).x);
        dklogsEye._y = parseInt(dklogsEye.getMousePositionInDoc(e).y);
        dklogsEye.processData(dklogsEye.eyeballL, dklogsEye._x, dklogsEye._y);
        dklogsEye.processData(dklogsEye.eyeballR, dklogsEye._x, dklogsEye._y);
        //document.getElementById('infos').value = dklogsEye.eyeballL.x + '____' + dklogsEye.eyeballL.y + '____' + dklogsEye.eyeballL.cntrX + '____' + dklogsEye.eyeballL.cntrY;
    },
    processData: function(data, _x, _y){
        data.xDst = Math.abs(_x - data.cntrX);
        data.yDst = Math.abs(_y - data.cntrY);
        data.dst = Math.sqrt(Math.pow(data.xDst, 2) + Math.pow(data.yDst, 2));
        
        if (data.dst > dklogsEye.eyeInfo.eyeballR) {
            data.x = (dklogsEye.eyeInfo.eyeballR / data.dst) * (_x - data.cntrX) + dklogsEye.eyeInfo.eyeR;
            data.y = (dklogsEye.eyeInfo.eyeballR / data.dst) * (_y - data.cntrY) + dklogsEye.eyeInfo.eyeR;
        }
        else {
            data.x = _x - data.cntrX + dklogsEye.eyeInfo.eyeR;
            data.y = _y - data.cntrY + dklogsEye.eyeInfo.eyeR;
        }
        data.node.style.left = data.x - dklogsEye.offset + 'px';
        data.node.style.top = data.y - dklogsEye.offset + 'px';
    },
    init: function(){
        dklogsEye.setEyeInfo(dklogsEye.eyeballL);
        dklogsEye.setEyeInfo(dklogsEye.eyeballR);
        document.onmousemove = dklogsEye.eyeballMove;
    },
    setEyeInfo: function(data){
        var positionInDoc = dklogsEye.getPositionInDoc(data.eyeID);
        data.cntrX = positionInDoc.left + dklogsEye.eyeInfo.eyeR;
        data.cntrY = positionInDoc.top + dklogsEye.eyeInfo.eyeR;
        data.node = dk.$(data.eyeballID);
    },
    getPositionInDoc: function(target){
        (typeof(target) == 'string') && (target = document.getElementById(target));
        var left = 0, top = 0;
        do {
            left += target.offsetLeft || 0;
            top += target.offsetTop || 0;
            target = target.offsetParent;
        }
        while (target);
        return {
            left: left,
            top: top
        };
    },
    getMousePositionInDoc: function(e){
        var scrollx, scrolly;
        if (typeof(window.pageXOffset) == 'number') {
            scrollx = window.pageXOffset;
            scrolly = window.pageYOffset;
        }
        else {
            scrollx = document.documentElement.scrollLeft;
            scrolly = document.documentElement.scrollTop;
        }
        return {
            x: e.clientX + scrollx,
            y: e.clientY + scrolly
        }
    }
}
dk.addEvent(window, 'load', function(){
    dklogsEye.init();
})

