﻿function attachEventHandler(obj, event, func, capture) {
    if (obj.addEventListener) {
        obj.addEventListener(event, func, (!capture) ? false : capture);
        return true;
    } else if (obj.attachEvent) {
        return obj.attachEvent("on" + event, func);
    }
    return false;
}

function parseEvent(e) {
    var event = window.event || e;
    if (!event) {
        return null;
    }
    
    if (event.stopPropagation) {
        e.stopPropagation();
    } else {
        event.cancelBubble = true;
    }
    
    if (event.preventDefault) {
        event.preventDefault();
    }
    
    if (!event.target) {
        event.target = event.srcElement;
    }
    
    return event;
}

function getWindowSize() {
    var _width = 0;
    var _height = 0;

    if (!window.innerWidth) {
        if (!(document.documentElement.clientWidth == 0)) {
            _width = document.documentElement.clientWidth;
            _height = document.documentElement.clientHeight;
        } else {
            _width = document.body.clientWidth;
            _height = document.body.clientHeight;
        }
    } else {
        _width = window.innerWidth;
        _height = window.innerHeight;
    }

    return { width: _width, height: _height };
}

function getCenterPoint(width, height) {
    var offsetX = 0;
    var offsetY = 0;

    if (!window.pageYOffset) {
        if (!(document.documentElement.scrollTop == 0)) {
            offsetY = document.documentElement.scrollTop;
            offsetX = document.documentElement.scrollLeft;
        } else {
            offsetY = document.body.scrollTop;
            offsetX = document.body.scrollLeft;
        }
    } else {
        offsetX = window.pageXOffset;
        offsetY = window.pageYOffset;
    }

    var size = getWindowSize();
    var _x = ((size.width - width) / 2) + offsetX;
    var _y = ((size.height - height) / 2) + offsetY;

    return { x: _x, y: _y };
}

function getObjectSize(obj) {
    var i;
    var _width = 0;
    var _height = 0;

    i = 0;
    while ("0123456789".indexOf(obj.style.width[i++]) >= 0);
    _width = parseInt(obj.style.width.substring(0, i - 1));

    i = 0;
    while ("0123456789".indexOf(obj.style.height[i++]) >= 0);
    _height = parseInt(obj.style.height.substring(0, i - 1));

    return { width: _width, height: _height };
}
