2009-06-11 19:43:45 +02:00
|
|
|
/*
|
2011-01-24 00:34:05 +01:00
|
|
|
* Copyright [2011] [wisemapping]
|
2009-06-11 19:43:45 +02:00
|
|
|
*
|
2011-01-24 00:34:05 +01:00
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License") plus the
|
|
|
|
* "powered by wisemapping" text requirement on every single page;
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the license at
|
2009-06-11 19:43:45 +02:00
|
|
|
*
|
2011-01-24 00:34:05 +01:00
|
|
|
* http://www.wisemapping.org/license
|
2009-06-11 19:43:45 +02:00
|
|
|
*
|
2011-01-24 00:34:05 +01:00
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
2009-06-11 19:43:45 +02:00
|
|
|
*/
|
|
|
|
|
2009-06-07 20:59:43 +02:00
|
|
|
core.UserAgent = {
|
|
|
|
_isVMLSupported:null,
|
|
|
|
isVMLSupported: function()
|
|
|
|
{
|
|
|
|
if (!core.Utils.isDefined())
|
|
|
|
{
|
|
|
|
this._isVMLSupported = navigator.appVersion.match(/MSIE (\d\.\d)/);
|
2010-11-20 23:43:54 +01:00
|
|
|
if(this._isVMLSupported == null || parseInt(this._isVMLSupported[1])>=9){
|
|
|
|
this._isVMLSupported = false;
|
|
|
|
}
|
2009-06-07 20:59:43 +02:00
|
|
|
}
|
|
|
|
return this._isVMLSupported;
|
|
|
|
},
|
|
|
|
isSVGSupported: function()
|
|
|
|
{
|
|
|
|
return !core.UserAgent.isVMLSupported();
|
|
|
|
},
|
|
|
|
isMozillaFamily: function()
|
|
|
|
{
|
|
|
|
return this.browser == "Netscape" || this.browser == "Firefox";
|
|
|
|
},
|
|
|
|
isIE: function()
|
|
|
|
{
|
|
|
|
return this.browser == "Explorer";
|
|
|
|
},
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
searchVersion: function (dataString) {
|
|
|
|
var index = dataString.indexOf(this.versionSearchString);
|
|
|
|
if (index == -1) return;
|
|
|
|
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"
|
|
|
|
},
|
2010-11-20 23:43:54 +01:00
|
|
|
{
|
|
|
|
string: navigator.vendor,
|
|
|
|
subString: "Google Inc.",
|
|
|
|
identity: "Chrome"
|
|
|
|
},
|
2009-06-07 20:59:43 +02:00
|
|
|
{
|
|
|
|
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: "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"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
core.UserAgent.init();
|