﻿var Common = (function() {
    var topWindow = window.parent;
    while (topWindow.parent && topWindow.parent != topWindow) {
        try {
            if (topWindow.parent.document.domain != document.domain)
                break;
            if (topWindow.parent.document.getElementsByTagName('frameset').length > 0)
                break;
        }
        catch (e) {
            break;
        }
        topWindow = topWindow.parent;
    }

    var userAgent = navigator.userAgent.toLowerCase();
    var browserInfo = {
        IsIE: /*@cc_on!@*/false,
        IsIE8: /*@cc_on!@*/false && (parseInt(userAgent.match(/msie (\d+)/)[1], 10) >= 8),
        IsIE7: /*@cc_on!@*/false && (parseInt(userAgent.match(/msie (\d+)/)[1], 10) >= 7),
        IsIE6: /*@cc_on!@*/false && (parseInt(userAgent.match(/msie (\d+)/)[1], 10) >= 6),
        IsFirefox: /firefox/.test(userAgent),
        IsOpera: !!window.opera,
        IsSafari: / applewebkit/.test(userAgent)
    }
    
    return {
        TopWindow: topWindow,
        BrowserInfo: browserInfo
    }
})();

Common.getEvent = function () {
    if (window.event) {
        return window.event;
    }
    else {
        return Common.getEvent.caller.arguments[0];
    }
}

Common.addEventHandler = function(target, eventType, handler) {
    if (target.addEventListener) {
        target.addEventListener(eventType, handler, false);
    }
    else if (target.attachEvent) {
        target.attachEvent("on" + eventType, handler);
    }
    else {
        target["on" + eventType] = handler;
    }
}

Common.removeEventHandler = function (target, eventType, handler) {
    if (target.removeEventListener) {
        target.removeEventListener(eventType, handler, false);
    }
    else if (target.detachEvent) {
        target.detachEvent("on" + eventType, handler);
    }
    else {
        target["on" + eventType] = null;
    }
}

