function check_os() {
    var user_agent = navigator.userAgent.toLowerCase();

    var os_is;

    if (user_agent.indexOf('linux') != -1) {
        os_is = 'linux';
    } else if (user_agent.indexOf('mac') != -1) {
        os_is = 'mac';
    } else if (user_agent.indexOf('win') != -1) {
        os_is = 'windows';
    } else {
        os_is = 'other';
    }

    return os_is;
}

function check_browser() {
    var user_agent  = navigator.userAgent.toLowerCase();
    var app_version = navigator.appVersion.toLowerCase();

    var browser_is;

    if (user_agent.indexOf('opera') != -1) {
        browser_is = 'opera';
    } else if (user_agent.indexOf('konqueror') != -1) {
        browser_is = 'konqueror';
    } else if (user_agent.indexOf('safari') != -1) {
        browser_is = 'safari';
    } else if (navigator.product && navigator.product.toLowerCase() == 'gecko') {
        if (navigator.vendor && navigator.vendor.toLowerCase().indexOf('firebird') != -1 || user_agent.indexOf('firebird') != -1) {
            browser_is = 'firebird';
        } else if (navigator.vendor && navigator.vendor.toLowerCase().indexOf('firefox') != -1 || user_agent.indexOf('firefox') != -1) {
            browser_is = 'firefox';
        } else {
            browser_is = 'mozilla';
        }
    } else if (navigator.vendor && navigator.vendor.toLowerCase().indexOf('netscape6')) {
        browser_is = 'netscape6';
    } else if (navigator.vendor && navigator.vendor.toLowerCase().indexOf('netscape')) {
        browser_is = 'netscape';
    } else if (app_version.indexOf('msie') != -1) {
        browser_is = 'ie';

        var version_at;
        var minor_version;

        if (check_os() == 'mac') {
            version_at = user_agent.indexOf('msie');
            minor_version = parseFloat(user_agent.substring(version_at + 5, user_agent.indexOf(';', version_at)));
        } else {
            version_at = app_version.indexOf('msie');
            minor_version = parseFloat(app_version.substring(version_at + 5, app_version.indexOf(';', version_at)));
        }

        major_version = parseInt(minor_version);
            
        browser_is += major_version;
    }

    return browser_is;
}

