var BrowserDetect = { init: function() { if (!window.$) { window.$ = function(b) { return window.document.getElementById(b) } } 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(a) { for (var c = 0; c < a.length; c++) { var b = a[c].string; var d = a[c].prop; this.versionSearchString = a[c].versionSearch || a[c].identity; if (b) { if (b.indexOf(a[c].subString) != -1) { return a[c].identity } } else { if (d) { return a[c].identity } } } }, searchVersion: function(b) { var a = b.indexOf(this.versionSearchString); if (a == -1) { return } return parseFloat(b.substring(a + this.versionSearchString.length + 1)) }, hasClassName: function(a, b) { var c = a.className; if (!c) { return false } return (c.length > 0 && (c == b || c.match(new RegExp("(^|\\s)" + b + "(\\s|$)")))) }, addClassName: function(a, b) { if (!this.hasClassName(b)) { a.className += (a.className ? " " : "") + b } return a }, addBodyClasses: function() { BrowserDetect.browser = ((BrowserDetect.browser == "Explorer") ? "ie" : BrowserDetect.browser.toLowerCase()); BrowserDetect.OS = BrowserDetect.OS.toLowerCase(); BrowserDetect.browser = BrowserDetect.browser.toLowerCase(); if (new String(BrowserDetect.version).indexOf(".") != -1) { BrowserDetect.version = Math.floor(BrowserDetect.version) } var a = document.body; this.addClassName(a, BrowserDetect.browser); this.addClassName(a, BrowserDetect.browser + BrowserDetect.version); this.addClassName(a, BrowserDetect.OS); if (BrowserDetect.browser != "ie") { this.addClassName(a, "notie") } if (BrowserDetect.browser == "ie" && BrowserDetect.version == 6 || BrowserDetect.version == 7) { this.addClassName(a, "ie6or7") } BrowserDetect.classString = a.className }, dataBrowser: [{ string: navigator.userAgent, subString: "Chrome", identity: "Chrome" }, { string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" }, { string: navigator.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, { 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" }, { 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" }, { 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.userAgent, subString: "iPhone", identity: "iPhone/iPod" }, { string: navigator.platform, subString: "Linux", identity: "Linux"}] }; function init() { if (arguments.callee.done) { return } arguments.callee.done = true; BrowserDetect.init(); BrowserDetect.addBodyClasses() } if (document.addEventListener) { document.addEventListener("DOMContentLoaded", init, false) } else { window.onload = init };