app/javascript/oldjs/miq_browser_detect.js
window.miqBrowserDetect = function() {
var BrowserDetect = {
init: function() {
this.browser = this.searchString(this.dataBrowser) || 'An unknown browser';
this.version = this.searchVersion(navigator.userAgent) ||
this.searchVersion(navigator.appVersion) ||
'an unknown version';
this.OS = this.searchString(this.dataOS) || 'an unknown OS';
},
searchString: function(data) {
for (var i = 0; i < data.length; i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) !== -1) {
return data[i].identity;
}
} else if (dataProp) {
return data[i].identity;
}
}
return null;
},
searchVersion: function(dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index === -1) {
return null;
}
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
},
dataBrowser: [
{
string: navigator.userAgent,
subString: 'OmniWeb',
versionSearch: 'OmniWeb/',
identity: 'OmniWeb',
},
{
string: navigator.vendor,
subString: 'Apple',
identity: 'Safari',
},
{
prop: window.opera,
identity: 'Opera',
},
{
string: navigator.vendor,
subString: 'iCab',
identity: 'iCab',
},
{
string: navigator.vendor,
subString: 'KDE',
identity: 'Konqueror',
},
{
string: navigator.userAgent,
subString: 'Firefox',
identity: 'Firefox',
},
{
string: navigator.vendor,
subString: 'Camino',
identity: 'Camino',
},
{ // For newer Netscapes (6+)
string: navigator.userAgent,
subString: 'Netscape',
identity: 'Netscape',
},
{
string: navigator.userAgent,
subString: 'MSIE',
identity: 'Explorer',
versionSearch: 'MSIE',
},
{
string: navigator.userAgent,
subString: 'Trident',
identity: 'Explorer',
versionSearch: 'rv',
},
{
string: navigator.vendor,
subString: 'Google Inc.',
identity: 'Chrome',
versionSearch: 'Chrome',
},
{
string: navigator.userAgent,
subString: 'Gecko',
identity: 'Mozilla',
versionSearch: 'rv',
},
{ // For older Netscapes (4-)
string: navigator.userAgent,
subString: 'Mozilla',
identity: 'Netscape',
versionSearch: 'Mozilla',
}],
dataOS: [
{
string: navigator.platform,
subString: 'Win',
identity: 'Windows',
},
{
string: navigator.platform,
subString: 'Mac',
identity: 'Mac',
},
{
string: navigator.platform,
subString: 'Linux',
identity: 'Linux',
},
],
};
BrowserDetect.init();
return BrowserDetect;
}