FanZone = {

    addEvent: function(object, eventType, func) {
        if (object.addEventListener) {
            object.addEventListener(eventType, func, false);
        }
        else if (object.attachEvent) {
            return object.attachEvent('on' + eventType, func);
        }
        else {
            return false;
        }
    },

    addClass: function(object, className) {
        FanZone.deleteClass(object, className);
        object.className = object.className + ' ' + className;
    },

    deleteClass: function(object, className) {
        object.className = object.className.replace(new RegExp('\\b' + className + '\\b'), '');
    },

    getEventTarget: function(e) {
        var e = e || window.event;
        return e ? e.target || e.srcElement : null;
    },

    getViewport: function() {
        var viewportwidth;
        var viewportheight;

        // the more standards compliant browsers (mozilla/netscape/opera/IE7)
        // use window.innerWidth and window.innerHeight
        if (typeof window.innerWidth != 'undefined') {
            viewportwidth = window.innerWidth;
            viewportheight = window.innerHeight;
        }
        // IE6 in standards compliant mode (i.e. with a valid doctype as the
        // first line in the document)
        else if (typeof document.documentElement != 'undefined'
                 && typeof document.documentElement.clientWidth != 'undefined'
                 && document.documentElement.clientWidth != 0) {
            viewportwidth = document.documentElement.clientWidth;
            viewportheight = document.documentElement.clientHeight;
        }
        // older versions of IE
        else {
            viewportwidth = document.getElementsByTagName('body')[0].clientWidth;
            viewportheight = document.getElementsByTagName('body')[0].clientHeight;
        }

        return '' + viewportwidth + 'x' + viewportheight;
    }
}

