Difference between revisions of "Template:Waterloo"

(more js)
Line 1: Line 1:
 
<html>
 
<html>
 +
<script>
 +
/* browser.js v0.1-dev | @ajlkn | MIT licensed */
  
 +
var browser = (function() { "use strict"; var _ = {
 +
 +
/**
 +
* Name.
 +
* @var {string}
 +
*/
 +
name: null,
 +
 +
/**
 +
* Version.
 +
* @var {float}
 +
*/
 +
version: null,
 +
 +
/**
 +
* OS.
 +
* @var {string}
 +
*/
 +
os: null,
 +
 +
/**
 +
* OS version.
 +
* @var {float}
 +
*/
 +
osVersion: null,
 +
 +
/**
 +
* Touch.
 +
* @var {bool}
 +
*/
 +
touch: null,
 +
 +
/**
 +
* Mobile.
 +
* @var {bool}
 +
*/
 +
mobile: null,
 +
 +
/**
 +
* Temporary element for canUse()
 +
* @var {DOMElement}
 +
*/
 +
_canUse: null,
 +
 +
/**
 +
* Determines if the browser supports a given property.
 +
* @param {string} p Property.
 +
* @return {bool} True if property is supported, false if not.
 +
*/
 +
canUse: function(p) {
 +
 +
// Create temporary element if it doesn't already exist.
 +
if (!_._canUse)
 +
_._canUse = document.createElement('div');
 +
 +
// Check for property.
 +
var e = _._canUse.style,
 +
up = p.charAt(0).toUpperCase() + p.slice(1);
 +
 +
return (
 +
p in e
 +
|| ('Moz' + up) in e
 +
|| ('Webkit' + up) in e
 +
|| ('O' + up) in e
 +
|| ('ms' + up) in e
 +
);
 +
 +
},
 +
 +
/**
 +
* Initialize.
 +
*/
 +
init: function() {
 +
 +
var x, y, a, i, ua = navigator.userAgent;
 +
 +
// name, version.
 +
x = 'other';
 +
y = 0;
 +
a = [
 +
['firefox', /Firefox\/([0-9\.]+)/],
 +
['bb', /BlackBerry.+Version\/([0-9\.]+)/],
 +
['bb', /BB[0-9]+.+Version\/([0-9\.]+)/],
 +
['opera', /OPR\/([0-9\.]+)/],
 +
['opera', /Opera\/([0-9\.]+)/],
 +
['edge', /Edge\/([0-9\.]+)/],
 +
['safari', /Version\/([0-9\.]+).+Safari/],
 +
['chrome', /Chrome\/([0-9\.]+)/],
 +
['ie', /MSIE ([0-9]+)/],
 +
['ie', /Trident\/.+rv:([0-9]+)/]
 +
];
 +
 +
for (i=0; i < a.length; i++) {
 +
 +
if (ua.match(a[i][1])) {
 +
 +
x = a[i][0];
 +
y = parseFloat(RegExp.$1);
 +
 +
break;
 +
 +
}
 +
 +
}
 +
 +
_.name = x;
 +
_.version = y;
 +
 +
// os, osVersion.
 +
x = 'other';
 +
y = 0;
 +
a = [
 +
['ios', /([0-9_]+) like Mac OS X/, function(v) { return v.replace('_', '.').replace('_', ''); }],
 +
['ios', /CPU like Mac OS X/, function(v) { return 0 }],
 +
['wp', /Windows Phone ([0-9\.]+)/, null],
 +
['android', /Android ([0-9\.]+)/, null],
 +
['mac', /Macintosh.+Mac OS X ([0-9_]+)/, function(v) { return v.replace('_', '.').replace('_', ''); }],
 +
['windows', /Windows NT ([0-9\.]+)/, null],
 +
['bb', /BlackBerry.+Version\/([0-9\.]+)/, null],
 +
['bb', /BB[0-9]+.+Version\/([0-9\.]+)/, null]
 +
];
 +
 +
for (i=0; i < a.length; i++) {
 +
 +
if (ua.match(a[i][1])) {
 +
 +
x = a[i][0];
 +
y = parseFloat( a[i][2] ? (a[i][2])(RegExp.$1) : RegExp.$1 );
 +
 +
break;
 +
 +
}
 +
 +
}
 +
 +
_.os = x;
 +
_.osVersion = y;
 +
 +
// touch.
 +
_.touch = (_.os == 'wp' ? (navigator.msMaxTouchPoints > 0) : !!('ontouchstart' in window));
 +
 +
// mobile.
 +
_.mobile = (_.os == 'wp' || _.os == 'android' || _.os == 'ios' || _.os == 'bb');
 +
 +
},
 +
 +
}; _.init(); return _; })();
 +
 +
// UMD Wrapper (github.com/umdjs/umd/blob/master/returnExports.js | @umdjs + @nason)
 +
(function(root, factory) {
 +
 +
// AMD.
 +
if (typeof define === 'function' && define.amd)
 +
define([], factory);
 +
 +
// Node.
 +
else if (typeof exports === 'object')
 +
module.exports = factory();
 +
 +
// Browser global.
 +
else
 +
root.browser = factory();
 +
 +
}(this, function() { return browser; }));
 +
</script>
 
<script>
 
<script>
 
/* breakpoints.js v0.1-dev | @ajlkn | MIT licensed */
 
/* breakpoints.js v0.1-dev | @ajlkn | MIT licensed */

Revision as of 21:28, 17 October 2019