/* * Browser Detection * © 2010 DevSlide Labs * * Visit us at: www.devslide.com/labs */ $.noConflict(); function casCloseFunction() { var el = document.getElementById('casNotifyElementInHTML'); el.parentNode.removeChild(el); var el = document.getElementById('casNotifyElementInHTMLTransparent'); el.parentNode.removeChild(el); } var supportedBrowsers = []; var styles = { part: "

{{{NotyText}}}

", link: "
{{{moreText}}} | {{{closeText}}}
", overlay: { code: "
{{{rowText}}}
" }, banner: { code: "
{{{rowText}}}
" } } var BrowserDetection = { init: function(batch){ if(notSupportedBrowsers == null || notSupportedBrowsers.length < 1){ notSupportedBrowsers = this.defaultNotSupportedBrowsers; } this.detectBrowser(); this.detectOS(); if(this.browser == '' || this.browser == 'Unknown' || this.os == '' || this.os == 'Unknown' || this.browserVersion == '' || this.browserVersion == 0) { return; } // Check if this is old browser var oldBrowser = false; var oldOs = false; for(var i=0; i < notSupportedBrowsers.length; i++){ if(notSupportedBrowsers[i].os == 'Any' || notSupportedBrowsers[i].os == this.os){ if(notSupportedBrowsers[i].browser == 'Any' || notSupportedBrowsers[i].browser == this.browser){ if(notSupportedBrowsers[i].version == "Any" || this.browserVersion <= parseFloat(notSupportedBrowsers[i].version)){ oldBrowser = true; break; } } } } var osName = ''; for (var i=0; i"+noticeLangCustom.os.notify.start+osName+noticeLangCustom.os.notify.end+""; } } if(oldBrowser){ this.oldBrowser = true; this.displayNotice(); } else { document.getElementById("resultidfoo").innerHTML ="
" + "

"+noticeLangCustom.good.start+" "+this.browser+" "+noticeLangCustom.good.mid+" "+this.browserVersion+" "+noticeLangCustom.good.end+"

"; document.getElementById("res").innerHTML = ""; } } } }, getEl: function(id){ return window.document.getElementById(id); }, getElSize: function(id){ var el = this.getEl(id); if(el == null){ return null; } return { 'width': parseInt(el.offsetWidth), 'height': parseInt(el.offsetHeight) }; }, getWindowSize: function(){ if(typeof window.innerWidth != 'undefined'){ return {'width': parseInt(window.innerWidth), 'height': parseInt(window.innerHeight)}; } else { if(window.document.documentElement.clientWidth != 0){ return {'width': parseInt(window.document.documentElement.clientWidth), 'height': parseInt(window.document.documentElement.clientHeight)}; } else { return {'width': parseInt(window.document.body.clientWidth), 'height': parseInt(window.document.body.clientHeight)}; } } }, displayNotice: function(){ this.writeNoticeCode(); var el = this; }, writeCookie: function(name, value, days){ var expiration = ""; if(parseInt(days) > 0){ var date = new Date(); date.setTime(date.getTime() + parseInt(days) * 24 * 60 * 60 * 1000); expiration = '; expires=' + date.toGMTString(); } document.cookie = name + '=' + value + expiration + '; path=/'; }, readCookie: function(name){ if(!document.cookie){ return ''; } var searchName = name + '='; var data = document.cookie.split(';'); for(var i = 0; i < data.length; i++){ while(data[i].charAt(0) == ' '){ data[i] = data[i].substring(1, data[i].length); } if(data[i].indexOf(searchName) == 0){ return data[i].substring(searchName.length, data[i].length); } } return ''; }, writeNoticeCode: function(){ var title = ''; var notice = ''; var selectBrowser = ''; var neverRemindAgain = ''; var browsersList = null; var code = '
'; title = noticeLangCustom.title_start+' '+this.browser+' '+noticeLangCustom.title_mid+' '+this.browserVersion+' '+noticeLangCustom.title_end; notice = noticeLangCustom.notice; selectBrowser = noticeLangCustom.selectBrowser; notice = notice.replace("\n", '

'); notice = notice.replace("{browser_name}", (this.browser + " " + this.browserVersion)); code += '

' + title + '

' + notice + '

' + selectBrowser + '

'; if(supportedBrowsers.length > 0){ browsersList = supportedBrowsers; } else { browsersList = this.supportedBrowsers; } code += '
'; document.getElementById("resultidfoo").innerHTML += code; }, detectBrowser: function(){ this.browser = ''; this.browserVersion = 0; if(/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Opera'; } else if(/OPR[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Opera'; } else if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ this.browser = 'Internet Explorer'; } else if(/Trident/.test(navigator.userAgent)){ this.browser = 'Internet Explorer'; /rv:(\d+\.\d+)/.test(navigator.userAgent); this.browserVersion = new Number(RegExp.$1); } else if(/Navigator[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Netscape'; } else if(/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Chrome'; } else if(/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Safari'; /Version[\/\s](\d+\.\d+)/.test(navigator.userAgent); this.browserVersion = new Number(RegExp.$1); } else if(/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ this.browser = 'Firefox'; } if(this.browser == ''){ this.browser = 'Unknown'; } else if(this.browserVersion == 0) { this.browserVersion = parseFloat(new Number(RegExp.$1)); } }, // Detect operation system detectOS: function(){ this.os = 'unknown'; this.osVersion = 0; if(/Windows NT[\s](\d+\.\d+)/.test(navigator.userAgent)){ this.os = 'Windows'; } else if (/Windows/.test(navigator.userAgent)) { this.os = 'Windows_Old'; } this.osVersion = parseFloat(new Number(RegExp.$1)); for(var i = 0; i < this.operatingSystems.length; i++){ if(this.operatingSystems[i].searchString.indexOf(this.operatingSystems[i].subStr) != -1){ this.os = this.operatingSystems[i].name; return; } } }, // Variables noticeHeight: 0, browser: '', os: '', browserVersion: '', supportedBrowsers: [ { 'cssClass': 'firefox', 'name': 'Mozilla Firefox', 'downloadUrl': 'http://www.getfirefox.com/' }, { 'cssClass': 'chrome', 'name': 'Google Chrome', 'downloadUrl': 'http://www.google.com/chrome/' }, { 'cssClass': 'msie', 'name': 'Internet Explorer', 'downloadUrl': 'http://www.getie.com/' }, { 'cssClass': 'opera', 'name': 'Opera', 'downloadUrl': 'http://www.opera.com/' }, { 'cssClass': 'safari', 'name': 'Apple Safari', 'downloadUrl': 'http://www.apple.com/safari/' } ], operatingSystems: [ { 'searchString': navigator.platform, 'name': 'Windows', 'subStr': 'Win' }, { 'searchString': navigator.platform, 'name': 'Mac', 'subStr': 'Mac' }, { 'searchString': navigator.platform, 'name': 'Linux', 'subStr': 'Linux' }, { 'searchString': navigator.userAgent, 'name': 'iPhone', 'subStr': 'iPhone/iPod' } ], defaultNotSupportedBrowsers: [{'os': 'Any', 'browser': 'MSIE', 'version': 6}], }; window.onload = function(){ BrowserDetection.init(); };