Edit in JSFiddle

/**
 * Smartphone check Plugin
 * User: Tenderfeel
 * Date: 11/08/08
 * LastModified: 11/09/28
 * version:1.3.93
 *
 */

(function($) {
    /**
     * jQuery function 'checkSmartphone'
     * @param method {string|object|undefined}
     *
     * $(document.body).checkSmartphone({});
     */
    $.fn.checkSmartphone = function(method) {
        var ua = navigator.userAgent;

        var OS = null;
        var APPLE = false;
        var ANDROID = false;
        var WINDOWS = false;
        var BROWSER_NAME = null;
        var DEVICE_NAME = null;
        var OS_VERSION = 0;
        var BROWSER_VERSION = null;
        var TABLET = false;
        var SMARTPHONE = false;
        var TOUCH = false;
        var isOrientation = function() {
            return (typeof window.orientation != 'undefined');
        };

        var isTouch = function() {
            if (typeof TouchEvent != 'undefined') {
                return true;
            } else {
                return false;
            }
        };
        var _doAndroid = function() {
            var m;
            ANDROID = true;
            OS = 'android';
            TOUCH = isTouch();

            if ($.browser.webkit) {
                m = ua.match(/([\w]+)\s(\d\.\d(?:[^;]+)*); \w{2,3}\-\w{2,3};\s([^\/]+)\sBuild\/[^\)]*\).*Version\/([\d\.]+)\s([\w\s]*Safari)\/[\d\.]+/i);
                /**
                 * m[1] OS Name
                 * m[2] OS Version
                 * m[3] Device name
                 * m[4] Browser Version
                 * m[5] Browser name
                 */
                OS = m[1];
                OS_VERSION = m[2];
                DEVICE_NAME = m[3].replace(/\s/ig, '');
                BROWSER_NAME = m[5].replace(/\s/ig, '');
                BROWSER_VERSION = m[4];

            } else if ($.browser.opera) {
                m = ua.match(/Opera\/9\.80 \((?:Android )*([^;]+);(\sLinux;)*\s([^\/]+)\/([^\/]+)[^;]*;\s\w+;\s([^\)]*)\).*Version\/([\d\.]+)/i);
                /**
                 * m[1] OS Name
                 * m[2] OS Version
                 * m[3] Browser Name
                 * m[4] Browser Version(mini)
                 * m[5] lang
                 * m[6] Browser Version(mobi)
                 */
                OS = m[1];
                OS_VERSION = m[2];
                BROWSER_NAME = m[3].replace(/\s/ig, '');

                if (BROWSER_NAME === 'OperaMobi') {
                    BROWSER_VERSION = m[6];
                } else {
                    BROWSER_VERSION = m[4];
                }

            } else if ($.browser.mozilla) {
                m = ua.match(/Mozilla\/[\d\.]+\s\(([^;]+);\s[^;\/]*;{0,1}[^;]*\)[;\s]*[^\s]+\s[^\s]+\sFennec\/([\d\.\w]+)/i);
                var n = m[1].split('/');
                OS = m[1];
                BROWSER_NAME = 'Fennec';
                BROWSER_VERSION = n[2];

            }

            if (isOrientation() || ua.match(/(?:Mobi(?:le)*|Fennec)/i)) {
                SMARTPHONE = true;
            } else {
                TABLET = true;
            }
        };
        
        var _doWin = function(){
            var m;
            WINDOWS = true;
            OS = 'windows';
            TOUCH = isTouch();
            
            if ($.browser.ie) {
                m = ua.match(/Mozilla\/[\d\.]+\s\(\w+;\sMSIE\s[\d\.]+;\s([^\d]+)\sOS\s([\d\.]+);\s.+IEMobile\/([\d\.]+)/i);
                /**
                 * m[1] = os name
                 * m[2] = os version
                 * m[3] = browser version
                 */
                OS = m[1];
                OS_VERSION = m[2];
                BROWSER_NAME = 'IEMobile';
                BROWSER_VERSION = m[3];
            }
            
            if (isOrientation() || ua.indexOf('Mobile') > -1) {
                SMARTPHONE = true;
            } else {
                TABLET = true;
            }
        };

        var _doApple = function() {
            var m;
            APPLE = true;
            OS = 'apple';
            TOUCH = isTouch();

            if (isOrientation()) {
                SMARTPHONE = true;
            }
            if(("standalone" in window.navigator) && !window.navigator.standalone){

                 if ($.browser.webkit) {
                    m = ua.match(/\((\w+); U;[\w\s]+? OS (\d_\d(?:_\d)*).*(?:Version\/([\d\.]+))*/i);
                    DEVICE_NAME = m[1];
                    OS_VERSION = m[2].replace(/_/g, '.');
                    if(m[3]){
                        BROWSER_VERSION = m[3];
                    }else{
                        BROWSER_VERSION = $.browser.version;
                    }
                    BROWSER_NAME = 'MobileSafari';
    
                } else if ($.browser.opera) {
                    m = ua.match(/Opera\/9\.80 \(([^;]+);\s([^\/]+)\/([^\/]+)[^;]*;\s\w+;\s([^\)]*)\).*/i);
                    DEVICE_NAME = m[1];
                    BROWSER_NAME = m[2].replace(/\s/ig, '');
                    BROWSER_VERSION = m[3];
    
                }
            }else{
                m = ua.match(/\((\w+); U;[\w\s]+? OS (\d_\d(?:_\d)*).*/i);
                DEVICE_NAME = m[1];
                OS_VERSION = m[2].replace(/_/g, '.');
                BROWSER_VERSION = $.browser.version;
                BROWSER_NAME = 'AppMode';
            }


        };

        var publics = {
            init: function(options) {
                this.checkSmartphone.settings = $.extend({}, this.checkSmartphone.defaults, options);
                var settings = this.checkSmartphone.settings;
                var cn = [];
                OS = 'pc';

                if (!$.browser.agent) {
                    if (ua.indexOf('Android') !== -1) {
                        _doAndroid();
                    } else if (ua.indexOf('Windows Phone') !== -1) {
                        _doWin();
                    } else if (ua.indexOf('iPhone') !== -1 || ua.indexOf('iPad') !== -1 || ua.indexOf('iPod') !== -1) {
                        _doApple();
                    }

                    $.extend($.browser, {
                        'agent': {
                            'os': OS,
                            'apple': APPLE,
                            'android': ANDROID,
                            'device': DEVICE_NAME,
                            'browser_name': BROWSER_NAME,
                            'browser_version': BROWSER_VERSION,
                            'os_version': parseFloat(OS_VERSION),
                            'smartphone': SMARTPHONE,
                            'tablet': TABLET,
                            'touch': TOUCH
                        }
                    });

                    $.each(settings, function(key, val) {
                        if (val !== true) {
                            return;
                        }
                        switch (key) {
                        case 'smartphone':
                            if ($.browser.agent.smartphone) cn.push('smartphone');
                            break;
                        case 'tablet':
                            if ($.browser.agent.tablet) cn.push('tablet');
                            break;
                        case 'touch':
                            if ($.browser.agent.touch) cn.push('touch');
                            break;
                        case 'os_version':
                            if ($.browser.agent.os_version) {
                                if ($.browser.agent.device === 'iPhone' || $.browser.agent.device === 'iPad') {
                                    cn.push($.browser.agent.device + String($.browser.agent.os_version).slice(0, 1));
                                }

                                cn.push('ov' + String($.browser.agent.os_version).replace(/\./g, '_'));
                            }
                            break;
                        case 'browser_version':
                            cn.push('bv' + String($.browser.agent.browser_version).replace(/\./g, '_'));
                            break;
                        default:
                            cn.push($.browser.agent[key]);
                            break;
                        }
                    });
                }

                return this.each(function() {
                    var $element = $(this),
                        element = this;
                    $element.addClass($.trim(cn.join(' ')));
                });
            }
        };

        $.extend({
            getAgent: function(type) {
                if (!$.browser.agent) return null;
                if (type !== 'all' && typeof type === 'string') {
                    return $.browser.agent[type];
                } else if (!type || type === 'all') {
                    var str = '';
                    var s = arguments[1] || ':';
                    var n = arguments[2] || '<br />';
                    $.each($.browser.agent, function(key, val) {
                        str += key + s + val + n;
                    });
                    return str;
                }
            }
        });

        if (publics[method]) {
            return publics[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return publics.init.apply(this, arguments);
        } else {
            $.error(method + ' はcheckAgentプラグインに定義されていません');
        }
    };

    $.fn.checkSmartphone.defaults = {
        'os': true,
        'device': true,
        'browser_name': false,
        'browser_version': false,
        'os_version': false,
        'smartphone': false,
        'tablet': false,
        'touch': true
    };

    $.fn.checkSmartphone.settings = {};

})(jQuery);


$(function() {
    $('#ua').val(navigator.userAgent);
        $.extend({
            getAgent: function(type) {
                if (!$.browser.agent) return null;
                if (type !== 'all' && typeof type === 'string') {
                    return $.browser.agent[type];
                } else if (!type || type === 'all') {
                    var str = '';
                    var s = arguments[1] || ':';
                    var n = arguments[2] || '<br />';
                    $.each($.browser.agent, function(key, val) {
                        str += key + s + val + n;
                    });
                    return str;
                }
            }
        });
    $(document.body).checkSmartphone();
    $('#info').html($.getAgent());
});
<div><textarea id="ua" cols="50" rows="5"></textarea></div>
<div id="info"></div>