blob: 40a12ba2fb28c4fdb6e29e6355f7e89ef554ac04 [file] [log] [blame]
/*==================================================
* Platform Utility Functions and Constants
*==================================================
*/
Timeline.Platform.os = {
isMac: false,
isWin: false,
isWin32: false,
isUnix: false
};
Timeline.Platform.browser = {
isIE: false,
isNetscape: false,
isMozilla: false,
isFirefox: false,
isOpera: false,
isSafari: false,
majorVersion: 0,
minorVersion: 0
};
(function() {
var an = navigator.appName.toLowerCase();
var ua = navigator.userAgent.toLowerCase();
/*
* Operating system
*/
Timeline.Platform.os.isMac = (ua.indexOf('mac') != -1);
Timeline.Platform.os.isWin = (ua.indexOf('win') != -1);
Timeline.Platform.os.isWin32 = Timeline.Platform.isWin && (
ua.indexOf('95') != -1 ||
ua.indexOf('98') != -1 ||
ua.indexOf('nt') != -1 ||
ua.indexOf('win32') != -1 ||
ua.indexOf('32bit') != -1
);
Timeline.Platform.os.isUnix = (ua.indexOf('x11') != -1);
/*
* Browser
*/
Timeline.Platform.browser.isIE = (an.indexOf("microsoft") != -1);
Timeline.Platform.browser.isNetscape = (an.indexOf("netscape") != -1);
Timeline.Platform.browser.isMozilla = (ua.indexOf("mozilla") != -1);
Timeline.Platform.browser.isFirefox = (ua.indexOf("firefox") != -1);
Timeline.Platform.browser.isOpera = (an.indexOf("opera") != -1);
//Timeline.Platform.browser.isSafari = (an.indexOf("safari") != -1);
var parseVersionString = function(s) {
var a = s.split(".");
Timeline.Platform.browser.majorVersion = parseInt(a[0]);
Timeline.Platform.browser.minorVersion = parseInt(a[1]);
};
var indexOf = function(s, sub, start) {
var i = s.indexOf(sub, start);
return i >= 0 ? i : s.length;
};
if (Timeline.Platform.browser.isMozilla) {
var offset = ua.indexOf("mozilla/");
if (offset >= 0) {
parseVersionString(ua.substring(offset + 8, indexOf(ua, " ", offset)));
}
}
if (Timeline.Platform.browser.isIE) {
var offset = ua.indexOf("msie ");
if (offset >= 0) {
parseVersionString(ua.substring(offset + 5, indexOf(ua, ";", offset)));
}
}
if (Timeline.Platform.browser.isNetscape) {
var offset = ua.indexOf("rv:");
if (offset >= 0) {
parseVersionString(ua.substring(offset + 3, indexOf(ua, ")", offset)));
}
}
if (Timeline.Platform.browser.isFirefox) {
var offset = ua.indexOf("firefox/");
if (offset >= 0) {
parseVersionString(ua.substring(offset + 8, indexOf(ua, " ", offset)));
}
}
})();
Timeline.Platform.getDefaultLocale = function() {
return Timeline.Platform.clientLocale;
};