
    /*
     *	对象名称：Event
     *	职责：负责控制所有自定义事件
     *
     */
    var Event = {};
    Event.MOUSEDOWN = 1;
    Event.MOUSEUP = 2;
    Event.MOUSEOVER = 4;
    Event.MOUSEOUT = 8;
    Event.MOUSEMOVE = 16;
    Event.MOUSEDRAG = 32;
    /*
     *	函数说明：获得事件触发对象
     *	参数：	event:eventObj      事件对象
     *	返回值：object:object       HTML对象
     *	作者：毛云
     *	日期：2006-4-10
     *
     */
    Event.getSrcElement = function(eventObj){
        var srcElement = null;
        if(_BROWSER==_BROWSER_IE){
            srcElement = eventObj.srcElement;
        }else{
            srcElement = eventObj.target;
        }
        return srcElement;
    }
    /*
     *	函数说明：使事件始终捕捉对象
     *	参数：	object:srcElement       HTML对象
                number:eventType        事件类型
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-10
     *
     */
    Event.setCapture = function(srcElement,eventType){
        if(_BROWSER==_BROWSER_IE){
            srcElement.setCapture();
        }else{
            window.captureEvents(eventType);
        }
    }
    /*
     *	函数说明：使事件放弃始终捕捉对象
     *	参数：	object:srcElement       HTML对象
                number:eventType        事件类型
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-10
     *
     */
    Event.releaseCapture = function(srcElement,eventType){
        if(_BROWSER==_BROWSER_IE){
            srcElement.releaseCapture();
        }else{
            window.releaseEvents(eventType);
        }
    }
    /*
     *	函数说明：取消事件
     *	参数：	event:eventObj          事件对象
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-10
     *
     */
    Event.cancel = function(eventObj){
        if(_BROWSER==_BROWSER_IE){
            eventObj.returnValue = false;
        }else{
            eventObj.preventDefault();
        }
    }
    /*
     *	函数说明：阻止事件向上冒泡
     *	参数：	event:eventObj          事件对象
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-10
     *
     */
    Event.cancelBubble = function(eventObj){
        if(_BROWSER==_BROWSER_IE){
            eventObj.cancelBubble = true;
        }else{
            eventObj.stopPropagation();
        }
    }
    /*
     *	函数说明：附加事件
     *	参数：	object:srcElement       HTML对象
                string:eventName        事件名称(不带on前缀)
                function:listener       回调方法                
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-18
     *
     */
    Event.attachEvent = function(srcElement,eventName,listener){
        if(null==srcElement || null==eventName || null==listener){
            alert("需要的参数为空，请检查");
            return;
        }
        if(_BROWSER==_BROWSER_IE){
            srcElement.attachEvent("on"+eventName,listener);
        }else{
            srcElement.addEventListener(eventName,listener,false);
        }
    }
    /*
     *	函数说明：取消附加事件
     *	参数：	object:srcElement       HTML对象
                string:eventName        事件名称(不带on前缀)
                function:listener       回调方法                
     *	返回值：
     *	作者：毛云
     *	日期：2006-4-18
     *
     */
    Event.detachEvent = function(srcElement,eventName,listener){
        if(_BROWSER==_BROWSER_IE){
            srcElement.detachEvent("on"+eventName,listener);
        }else{
            srcElement.removeEventListener(eventName,listener,false);
        }
    }
    /*
     *	函数说明：事件是否发生在滚动条上
     *	参数：	event:eventObj          事件对象
     *	返回值：boolean:isOnScrollBar   是否在滚动条上
     *	作者：毛云
     *	日期：2006-4-14
     *
     */
    Event.fireOnScrollBar = function(eventObj){
        var isOnScrollBar = false;
        var srcElement = this.getSrcElement(eventObj);

        //有显示纵向滚动条
        if(srcElement.offsetWidth>srcElement.clientWidth){
            var offsetX = Event.offsetX(eventObj);
            if(offsetX>srcElement.clientWidth){
                isOnScrollBar = true;
            }
        }
        //有显示横向滚动条
        if(false==isOnScrollBar && srcElement.offsetHeight>srcElement.clientHeight){
            var offsetY = Event.offsetY(eventObj);
            if(offsetY>srcElement.clientHeight){
                isOnScrollBar = true;
            }
        }
        return isOnScrollBar;
    }
    /*
     *	函数说明：事件相对触发对象位置X
     *	参数：	event:eventObj          事件对象
     *	返回值：number:offsetX          相对位置X
     *	作者：毛云
     *	日期：2006-4-14
     *
     */
    Event.offsetX = function(eventObj){
        var clientX = eventObj.clientX;
        var srcElement = this.getSrcElement(eventObj);
        var offsetLeft = Element.absLeft(srcElement);

        return clientX - offsetLeft;
    }
    /*
     *	函数说明：事件相对触发对象位置Y
     *	参数：	event:eventObj          事件对象
     *	返回值：number:offsetY          相对位置Y
     *	作者：毛云
     *	日期：2006-4-14
     *
     */
    Event.offsetY = function(eventObj){
        var clientY = eventObj.clientY;
        var srcElement = this.getSrcElement(eventObj);
        var offsetTop = Element.absTop(srcElement);

        return clientY - offsetTop;
    }