PageSourceSearch

https://www.yongin.go.kr/resources/user/intro/js/pgwbrowser.js

js yongin.go.kr collected 2026-10-02 18:05:29 UTC 13,562 bytes, 263 lines download raw bytes

1/**
2 * PgwBrowser - Version 1.3
3 *
4 * Copyright 2014-2015, Jonathan M. Piat
5 * http://pgwjs.com - http://pagawa.com
6 * 
7 * Released under the GNU GPLv3 license - http://opensource.org/licenses/gpl-3.0
8 */
9;(function($){
10    $.pgwBrowser = function() {
11
12        var pgwBrowser = {};
13        pgwBrowser.userAgent = navigator.userAgent;
14        pgwBrowser.browser = {};
15        pgwBrowser.viewport = {};
16        pgwBrowser.os = {};
17        resizeEvent = null;
18
19        // The order of the following arrays is important, be careful if you change it.
20
21        var browserData = [
22            { name: 'Chromium',          group: 'Chrome',   identifier: 'Chromium/([0-9\.]*)'       },
23            { name: 'Chrome Mobile',     group: 'Chrome',   identifier: 'Chrome/([0-9\.]*) Mobile', versionIdentifier: 'Chrome/([0-9\.]*)'},
24            { name: 'Chrome',            group: 'Chrome',   identifier: 'Chrome/([0-9\.]*)'         },
25            { name: 'Chrome for iOS',    group: 'Chrome',   identifier: 'CriOS/([0-9\.]*)'          },
26            { name: 'Android Browser',   group: 'Chrome',   identifier: 'CrMo/([0-9\.]*)'           },
27            { name: 'Firefox',           group: 'Firefox',  identifier: 'Firefox/([0-9\.]*)'        },
28            { name: 'Opera Mini',        group: 'Opera',    identifier: 'Opera Mini/([0-9\.]*)'     },
29            { name: 'Opera',             group: 'Opera',    identifier: 'Opera ([0-9\.]*)'          },
30            { name: 'Opera',             group: 'Opera',    identifier: 'Opera/([0-9\.]*)',         versionIdentifier: 'Version/([0-9\.]*)' },
31            { name: 'IEMobile',          group: 'Explorer', identifier: 'IEMobile/([0-9\.]*)'       },
32            { name: 'Internet Explorer', group: 'Explorer', identifier: 'MSIE ([a-zA-Z0-9\.]*)'     },
33            { name: 'Internet Explorer', group: 'Explorer', identifier: 'Trident/([0-9\.]*)',       versionIdentifier: 'rv:([0-9\.]*)' },
34            { name: 'Spartan',           group: 'Spartan',  identifier: 'Edge/([0-9\.]*)',          versionIdentifier: 'Edge/([0-9\.]*)' },
35            { name: 'Safari',            group: 'Safari',   identifier: 'Safari/([0-9\.]*)',        versionIdentifier: 'Version/([0-9\.]*)' }
36        ];
37
38        var osData = [
39            { name: 'Windows 2000',           group: 'Windows',       identifier: 'Windows NT 5.0',                     version: '5.0' },
40            { name: 'Windows XP',             group: 'Windows',       identifier: 'Windows NT 5.1',                     version: '5.1' },
41            { name: 'Windows Vista',          group: 'Windows',       identifier: 'Windows NT 6.0',                     version: '6.0' },
42            { name: 'Windows 7',              group: 'Windows',       identifier: 'Windows NT 6.1',                     version: '7.0' },
43            { name: 'Windows 8',              group: 'Windows',       identifier: 'Windows NT 6.2',                     version: '8.0' },
44            { name: 'Windows 8.1',            group: 'Windows',       identifier: 'Windows NT 6.3',                     version: '8.1' },
45            { name: 'Windows 10',             group: 'Windows',       identifier: 'Windows NT 10.0',                    version: '10.0' },
46            { name: 'Windows Phone',          group: 'Windows Phone', identifier: 'Windows Phone ([0-9\.]*)'            },
47            { name: 'Windows Phone',          group: 'Windows Phone', identifier: 'Windows Phone OS ([0-9\.]*)'         },
48            { name: 'Windows',                group: 'Windows',       identifier: 'Windows'                             },
49            { name: 'Chrome OS',              group: 'Chrome OS',     identifier: 'CrOS'                                },
50            { name: 'Android',                group: 'Android',       identifier: 'Android',                            versionIdentifier: 'Android ([a-zA-Z0-9\.-]*)' },
51            { name: 'iPad',                   group: 'iOS',           identifier: 'iPad',                               versionIdentifier: 'OS ([0-9_]*)', versionSeparator: '[_|\.]' },
52            { name: 'iPod',                   group: 'iOS',           identifier: 'iPod',                               versionIdentifier: 'OS ([0-9_]*)', versionSeparator: '[_|\.]' },
53            { name: 'iPhone',                 group: 'iOS',           identifier: 'iPhone OS',                          versionIdentifier: 'OS ([0-9_]*)', versionSeparator: '[_|\.]' },            
54            { name: 'Mac OS X El Capitan',    group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])11([0-9_\.]*))', versionSeparator: '[_|\.]' },
55            { name: 'Mac OS X Yosemite',      group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])10([0-9_\.]*))', versionSeparator: '[_|\.]' },
56            { name: 'Mac OS X Mavericks',     group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])9([0-9_\.]*))',  versionSeparator: '[_|\.]' },
57            { name: 'Mac OS X Mountain Lion', group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])8([0-9_\.]*))',  versionSeparator: '[_|\.]' },
58            { name: 'Mac OS X Lion',          group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])7([0-9_\.]*))',  versionSeparator: '[_|\.]' },
59            { name: 'Mac OS X Snow Leopard',  group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])6([0-9_\.]*))',  versionSeparator: '[_|\.]' },
60            { name: 'Mac OS X Leopard',       group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])5([0-9_\.]*))',  versionSeparator: '[_|\.]' },
61            { name: 'Mac OS X Tiger',         group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])4([0-9_\.]*))',  versionSeparator: '[_|\.]' },
62            { name: 'Mac OS X Panther',       group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])3([0-9_\.]*))',  versionSeparator: '[_|\.]' },
63            { name: 'Mac OS X Jaguar',        group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])2([0-9_\.]*))',  versionSeparator: '[_|\.]' },
64            { name: 'Mac OS X Puma',          group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])1([0-9_\.]*))',  versionSeparator: '[_|\.]' },
65            { name: 'Mac OS X Cheetah',       group: 'Mac OS',        identifier: 'Mac OS X (10([_|\.])0([0-9_\.]*))',  versionSeparator: '[_|\.]' },
66            { name: 'Mac OS',                 group: 'Mac OS',        identifier: 'Mac OS'                              },
67            { name: 'Ubuntu',                 group: 'Linux',         identifier: 'Ubuntu',                             versionIdentifier: 'Ubuntu/([0-9\.]*)' },
68            { name: 'Debian',                 group: 'Linux',         identifier: 'Debian'                              },
69            { name: 'Gentoo',                 group: 'Linux',         identifier: 'Gentoo'                              },
70            { name: 'Linux',                  group: 'Linux',         identifier: 'Linux'                               },
71            { name: 'BlackBerry',             group: 'BlackBerry',    identifier: 'BlackBerry'                          }
72        ];
73
74        //  Set browser data
75        var setBrowserData = function() {
76            var userAgent = pgwBrowser.userAgent.toLowerCase();
77
78            // Check browser type
79            for (i in browserData) {
80                var browserRegExp = new RegExp(browserData[i].identifier.toLowerCase());
81                var browserRegExpResult = browserRegExp.exec(userAgent);
82
83                if (browserRegExpResult != null && browserRegExpResult[1]) {
84                    pgwBrowser.browser.name = browserData[i].name;
85                    pgwBrowser.browser.group = browserData[i].group;
86
87                    // Check version
88                    if (browserData[i].versionIdentifier) {
89                        var versionRegExp = new RegExp(browserData[i].versionIdentifier.toLowerCase());
90                        var versionRegExpResult = versionRegExp.exec(userAgent);
91
92                        if (versionRegExpResult != null && versionRegExpResult[1]) {
93                            setBrowserVersion(versionRegExpResult[1]);
94                        }
95
96                    } else {
97                        setBrowserVersion(browserRegExpResult[1]);
98                    }
99
100                    break;
101                }
102            }
103
104            return true;
105        };
106
107        // Set browser version
108        var setBrowserVersion = function(version) {
109            var splitVersion = version.split('.', 2);
110            pgwBrowser.browser.fullVersion = version;
111
112            // Major version
113            if (splitVersion[0]) {
114                pgwBrowser.browser.majorVersion = parseInt(splitVersion[0]);
115            }
116
117            // Minor version
118            if (splitVersion[1]) {
119                pgwBrowser.browser.minorVersion = parseInt(splitVersion[1]);
120            }
121
122            return true;
123        };
124
125        //  Set OS data
126        var setOsData = function() {
127            var userAgent = pgwBrowser.userAgent.toLowerCase();
128
129            // Check browser type
130            for (i in osData) {
131                var osRegExp = new RegExp(osData[i].identifier.toLowerCase());
132                var osRegExpResult = osRegExp.exec(userAgent);
133
134                if (osRegExpResult != null) {
135                    pgwBrowser.os.name = osData[i].name;
136                    pgwBrowser.os.group = osData[i].group;
137
138                    // Version defined
139                    if (osData[i].version) {
140                        setOsVersion(osData[i].version, (osData[i].versionSeparator) ? osData[i].versionSeparator : '.');
141
142                    // Version detected
143                    } else if (osRegExpResult[1]) {
144                        setOsVersion(osRegExpResult[1], (osData[i].versionSeparator) ? osData[i].versionSeparator : '.');
145
146                    // Version identifier
147                    } else if (osData[i].versionIdentifier) {
148                        var versionRegExp = new RegExp(osData[i].versionIdentifier.toLowerCase());
149                        var versionRegExpResult = versionRegExp.exec(userAgent);
150
151                        if (versionRegExpResult != null && versionRegExpResult[1]) {
152                            setOsVersion(versionRegExpResult[1], (osData[i].versionSeparator) ? osData[i].versionSeparator : '.');
153                        }
154                    }
155
156                    break;
157                }
158            }
159
160            return true;
161        };
162
163        // Set OS version
164        var setOsVersion = function(version, separator) {
165            if (separator.substr(0, 1) == '[') {
166                var splitVersion = version.split(new RegExp(separator, 'g'), 2);
167            } else {
168                var splitVersion = version.split(separator, 2);
169            }
170
171            if (separator != '.') {
172                version = version.replace(new RegExp(separator, 'g'), '.');
173            }
174
175            pgwBrowser.os.fullVersion = version;
176
177            // Major version
178            if (splitVersion[0]) {
179                pgwBrowser.os.majorVersion = parseInt(splitVersion[0]);
180            }
181
182            // Minor version
183            if (splitVersion[1]) {
184                pgwBrowser.os.minorVersion = parseInt(splitVersion[1]);
185            }
186
187            return true;
188        };
189
190        // Set viewport size
191        var setViewportSize = function(init) {
192            pgwBrowser.viewport.width = $(window).width();
193            pgwBrowser.viewport.height = $(window).height();
194
195            // Resize triggers
196            if (typeof init == 'undefined') {
197                if (resizeEvent == null) {
198                    $(window).trigger('PgwBrowser::StartResizing');
199                } else {
200                    clearTimeout(resizeEvent);
201                }
202
203                resizeEvent = setTimeout(function() {
204                    $(window).trigger('PgwBrowser::StopResizing');
205                    clearTimeout(resizeEvent);
206                    resizeEvent = null;
207                }, 300);
208            }
209            
210            return true;
211        };
212
213        // Set viewport orientation
214        var setViewportOrientation = function() {
215            if (typeof window.orientation == 'undefined') {
216
217                if (pgwBrowser.viewport.width >= pgwBrowser.viewport.height) {
218                    pgwBrowser.viewport.orientation = 'landscape';
219                } else {
220                    pgwBrowser.viewport.orientation = 'portrait';
221                }
222
223            } else {
224                switch(window.orientation) {
225                    case -90:
226                    case 90:
227                        pgwBrowser.viewport.orientation = 'landscape';
228                        break;
229                    default:
230                        pgwBrowser.viewport.orientation = 'portrait';
231                        break; 
232                }
233            }
234
235            // Orientation trigger
236            $(window).trigger('PgwBrowser::OrientationChange');
237
238            return true;
239        };
240
241        // Replace default value for the user-agent tester on pgwjs.com
242        if (typeof window.pgwJsUserAgentTester != 'undefined') {
243            pgwBrowser.userAgent = window.pgwJsUserAgentTester;
244        }
245
246        // Initialization
247        setBrowserData();
248        setOsData();
249        setViewportSize(true);
250        setViewportOrientation();
251
252        // Triggers
253        $(window).on('orientationchange', function(e) {
254            setViewportOrientation();
255        });
256
257        $(window).resize(function(e) {
258            setViewportSize();
259        });
260
261        return pgwBrowser;
262    }
263})(window.Zepto || window.jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.