diff --git a/outdatedbrowser/outdatedbrowser.js b/outdatedbrowser/outdatedbrowser.js index f89bf52..0529e00 100755 --- a/outdatedbrowser/outdatedbrowser.js +++ b/outdatedbrowser/outdatedbrowser.js @@ -5,215 +5,221 @@ author: Burocratik website: http://www.burocratik.com * @preserve -----------------------------------------------------------------------*/ -var outdatedBrowser = function(options) { - - //Variable definition (before ajax) - var outdated = document.getElementById("outdated"); - - // Default settings - this.defaultOpts = { - bgColor: '#f25648', - color: '#ffffff', - lowerThan: 'transform', - languagePath: '../outdatedbrowser/lang/en.html' - } - - if (options) { - //assign css3 property to IE browser version - if(options.lowerThan == 'IE8' || options.lowerThan == 'borderSpacing') { - options.lowerThan = 'borderSpacing'; - } else if (options.lowerThan == 'IE9' || options.lowerThan == 'boxShadow') { - options.lowerThan = 'boxShadow'; - } else if (options.lowerThan == 'IE10' || options.lowerThan == 'transform' || options.lowerThan == '' || typeof options.lowerThan === "undefined") { - options.lowerThan = 'transform'; - } else if (options.lowerThan == 'IE11' || options.lowerThan == 'borderImage') { - options.lowerThan = 'borderImage'; - } - //all properties - this.defaultOpts.bgColor = options.bgColor; - this.defaultOpts.color = options.color; - this.defaultOpts.lowerThan = options.lowerThan; - this.defaultOpts.languagePath = options.languagePath; - - bkgColor = this.defaultOpts.bgColor; - txtColor = this.defaultOpts.color; - cssProp = this.defaultOpts.lowerThan; - languagePath = this.defaultOpts.languagePath; - } else { - bkgColor = this.defaultOpts.bgColor; - txtColor = this.defaultOpts.color; - cssProp = this.defaultOpts.lowerThan; - languagePath = this.defaultOpts.languagePath; - };//end if options - - - //Define opacity and fadeIn/fadeOut functions - var done = true; - - function function_opacity(opacity_value) { - outdated.style.opacity = opacity_value / 100; - outdated.style.filter = 'alpha(opacity=' + opacity_value + ')'; - } - - // function function_fade_out(opacity_value) { - // function_opacity(opacity_value); - // if (opacity_value == 1) { - // outdated.style.display = 'none'; - // done = true; - // } - // } - - function function_fade_in(opacity_value) { - function_opacity(opacity_value); - if (opacity_value == 1) { - outdated.style.display = 'block'; - } - if (opacity_value == 100) { - done = true; - } - } - - //check if element has a particular class - // function hasClass(element, cls) { - // return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; - // } - - var supports = (function() { - var div = document.createElement('div'), - vendors = 'Khtml Ms O Moz Webkit'.split(' '), - len = vendors.length; - - return function(prop) { - if ( prop in div.style ) return true; - - prop = prop.replace(/^[a-z]/, function(val) { - return val.toUpperCase(); - }); - - while(len--) { - if ( vendors[len] + prop in div.style ) { - return true; - } - } - return false; - }; - })(); - - //if browser does not supports css3 property (transform=default), if does > exit all this - if ( !supports(''+ cssProp +'') ) { - if (done && outdated.style.opacity !== '1') { - done = false; - for (var i = 1; i <= 100; i++) { - setTimeout((function (x) { - return function () { - function_fade_in(x); - }; - })(i), i * 8); - } - } - }else{ - return; - };//end if - - //Check AJAX Options: if languagePath == '' > use no Ajax way, html is needed inside
- if( languagePath === ' ' || languagePath.length == 0 ){ - startStylesAndEvents(); - }else{ - grabFile(languagePath); - } - - //events and colors - function startStylesAndEvents(){ - var btnClose = document.getElementById("btnCloseUpdateBrowser"); - var btnUpdate = document.getElementById("btnUpdateBrowser"); - - //check settings attributes - outdated.style.backgroundColor = bkgColor; - //way too hard to put !important on IE6 - outdated.style.color = txtColor; - outdated.children[0].style.color = txtColor; - outdated.children[1].style.color = txtColor; - - //check settings attributes - btnUpdate.style.color = txtColor; - // btnUpdate.style.borderColor = txtColor; - if (btnUpdate.style.borderColor) btnUpdate.style.borderColor = txtColor; - btnClose.style.color = txtColor; - - //close button - btnClose.onmousedown = function() { - outdated.style.display = 'none'; - return false; - }; - - //Override the update button color to match the background color - btnUpdate.onmouseover = function() { - this.style.color = bkgColor; - this.style.backgroundColor = txtColor; - }; - btnUpdate.onmouseout = function() { - this.style.color = txtColor; - this.style.backgroundColor = bkgColor; - }; - }//end styles and events - - - // IF AJAX with request ERROR > insert english default - var ajaxEnglishDefault = '
Your browser is out-of-date!
' - + '

Update your browser to view this website correctly. Update my browser now

' - + '

×

'; - - - //** AJAX FUNCTIONS - Bulletproof Ajax by Jeremy Keith ** - function getHTTPObject() { - var xhr = false; - if (window.XMLHttpRequest) { - xhr = new XMLHttpRequest(); - } else if (window.ActiveXObject) { - try { - xhr = new ActiveXObject("Msxml2.XMLHTTP"); - } catch(e) { - try { - xhr = new ActiveXObject("Microsoft.XMLHTTP"); - } catch(e) { - xhr = false; - } - } - } - return xhr; - };//end function - - function grabFile(file) { - var request = getHTTPObject(); - if (request) { - request.onreadystatechange = function() { - displayResponse(request); - }; - request.open("GET", file, true); - request.send(null); - } - return false; - };//end grabFile - - function displayResponse(request) { - var insertContentHere = document.getElementById("outdated"); - if (request.readyState == 4) { - if (request.status == 200 || request.status == 304) { - insertContentHere.innerHTML = request.responseText; - }else{ - insertContentHere.innerHTML = ajaxEnglishDefault; - } - startStylesAndEvents(); - } - return false; - };//end displayResponse - -////////END of outdatedBrowser function -}; - - - - - - - +(function (root, factory) { /* istanbul ignore if */ + if (typeof define === "function" && define.amd) { + // AMD. Register as an anonymous module. + define([], function () { + return factory(root); + }); /* istanbul ignore else */ + } else if (typeof module === "object" && module.exports) { + // Node, or CommonJS-Like environments + module.exports = factory(); + } else { + // Browser globals + root.outdatedBrowser = factory(root); + } +}(this, function (global, undefined) { + + var outdatedBrowser = function(options) { + + //Variable definition (before ajax) + var outdated = document.getElementById("outdated"); + + // Default settings + this.defaultOpts = { + bgColor: '#f25648', + color: '#ffffff', + lowerThan: 'transform', + languagePath: '../outdatedbrowser/lang/en.html' + }; + + if (options) { + //assign css3 property to IE browser version + if(options.lowerThan == 'IE8' || options.lowerThan == 'borderSpacing') { + options.lowerThan = 'borderSpacing'; + } else if (options.lowerThan == 'IE9' || options.lowerThan == 'boxShadow') { + options.lowerThan = 'boxShadow'; + } else if (options.lowerThan == 'IE10' || options.lowerThan == 'transform' || options.lowerThan == '' || typeof options.lowerThan === "undefined") { + options.lowerThan = 'transform'; + } else if (options.lowerThan == 'IE11' || options.lowerThan == 'borderImage') { + options.lowerThan = 'borderImage'; + } + //all properties + this.defaultOpts.bgColor = options.bgColor; + this.defaultOpts.color = options.color; + this.defaultOpts.lowerThan = options.lowerThan; + this.defaultOpts.languagePath = options.languagePath; + } + + var bkgColor = this.defaultOpts.bgColor; + var txtColor = this.defaultOpts.color; + var cssProp = this.defaultOpts.lowerThan; + var languagePath = this.defaultOpts.languagePath; + + + //Define opacity and fadeIn/fadeOut functions + var done = true; + + function function_opacity(opacity_value) { + outdated.style.opacity = opacity_value / 100; + outdated.style.filter = 'alpha(opacity=' + opacity_value + ')'; + } + + // function function_fade_out(opacity_value) { + // function_opacity(opacity_value); + // if (opacity_value == 1) { + // outdated.style.display = 'none'; + // done = true; + // } + // } + + function function_fade_in(opacity_value) { + function_opacity(opacity_value); + if (opacity_value == 1) { + outdated.style.display = 'block'; + } + if (opacity_value == 100) { + done = true; + } + } + + //check if element has a particular class + // function hasClass(element, cls) { + // return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1; + // } + + var supports = (function() { + var div = document.createElement('div'), + vendors = 'Khtml Ms O Moz Webkit'.split(' '), + len = vendors.length; + + return function(prop) { + if ( prop in div.style ) return true; + + prop = prop.replace(/^[a-z]/, function(val) { + return val.toUpperCase(); + }); + + while(len--) { + if ( vendors[len] + prop in div.style ) { + return true; + } + } + return false; + }; + })(); + + //if browser does not supports css3 property (transform=default), if does > exit all this + if ( !supports(''+ cssProp +'') ) { + if (done && outdated.style.opacity !== '1') { + done = false; + for (var i = 1; i <= 100; i++) { + setTimeout((function (x) { + return function () { + function_fade_in(x); + }; + })(i), i * 8); + } + } + } else { + return; + }//end if + + //Check AJAX Options: if languagePath == '' > use no Ajax way, html is needed inside
+ if( languagePath === ' ' || languagePath.length == 0 ) { + startStylesAndEvents(); + } else { + grabFile(languagePath); + } + + //events and colors + function startStylesAndEvents(){ + var btnClose = document.getElementById("btnCloseUpdateBrowser"); + var btnUpdate = document.getElementById("btnUpdateBrowser"); + + //check settings attributes + outdated.style.backgroundColor = bkgColor; + //way too hard to put !important on IE6 + outdated.style.color = txtColor; + outdated.children[0].style.color = txtColor; + outdated.children[1].style.color = txtColor; + + //check settings attributes + btnUpdate.style.color = txtColor; + // btnUpdate.style.borderColor = txtColor; + if (btnUpdate.style.borderColor) btnUpdate.style.borderColor = txtColor; + btnClose.style.color = txtColor; + + //close button + btnClose.onmousedown = function() { + outdated.style.display = 'none'; + return false; + }; + + //Override the update button color to match the background color + btnUpdate.onmouseover = function() { + this.style.color = bkgColor; + this.style.backgroundColor = txtColor; + }; + btnUpdate.onmouseout = function() { + this.style.color = txtColor; + this.style.backgroundColor = bkgColor; + }; + }//end styles and events + + + // IF AJAX with request ERROR > insert english default + var ajaxEnglishDefault = '
Your browser is out-of-date!
' + + '

Update your browser to view this website correctly. Update my browser now

' + + '

×

'; + + + //** AJAX FUNCTIONS - Bulletproof Ajax by Jeremy Keith ** + function getHTTPObject() { + var xhr = false; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + try { + xhr = new ActiveXObject("Msxml2.XMLHTTP"); + } catch(e) { + try { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } catch(e) { + xhr = false; + } + } + } + return xhr; + }//end function + + function grabFile(file) { + var request = getHTTPObject(); + if (request) { + request.onreadystatechange = function() { + displayResponse(request); + }; + request.open("GET", file, true); + request.send(null); + } + return false; + }//end grabFile + + function displayResponse(request) { + var insertContentHere = document.getElementById("outdated"); + if (request.readyState == 4) { + if (request.status == 200 || request.status == 304) { + insertContentHere.innerHTML = request.responseText; + }else{ + insertContentHere.innerHTML = ajaxEnglishDefault; + } + startStylesAndEvents(); + } + return false; + }//end displayResponse + + ////////END of outdatedBrowser function + }; + + return outdatedBrowser; +})); diff --git a/outdatedbrowser/outdatedbrowser.min.js b/outdatedbrowser/outdatedbrowser.min.js index 52c025b..6590661 100755 --- a/outdatedbrowser/outdatedbrowser.min.js +++ b/outdatedbrowser/outdatedbrowser.min.js @@ -1,8 +1 @@ -/*!-------------------------------------------------------------------- -JAVASCRIPT "Outdated Browser" -Version: 1.1.0 - 2014 -author: Burocratik -website: http://www.burocratik.com -* @preserve ------------------------------------------------------------------------*/ -var outdatedBrowser=function(t){function o(t){s.style.opacity=t/100,s.style.filter="alpha(opacity="+t+")"}function e(t){o(t),1==t&&(s.style.display="block"),100==t&&(u=!0)}function r(){var t=document.getElementById("btnCloseUpdateBrowser"),o=document.getElementById("btnUpdateBrowser");s.style.backgroundColor=bkgColor,s.style.color=txtColor,s.children[0].style.color=txtColor,s.children[1].style.color=txtColor,o.style.color=txtColor,o.style.borderColor&&(o.style.borderColor=txtColor),t.style.color=txtColor,t.onmousedown=function(){return s.style.display="none",!1},o.onmouseover=function(){this.style.color=bkgColor,this.style.backgroundColor=txtColor},o.onmouseout=function(){this.style.color=txtColor,this.style.backgroundColor=bkgColor}}function l(){var t=!1;if(window.XMLHttpRequest)t=new XMLHttpRequest;else if(window.ActiveXObject)try{t=new ActiveXObject("Msxml2.XMLHTTP")}catch(o){try{t=new ActiveXObject("Microsoft.XMLHTTP")}catch(o){t=!1}}return t}function a(t){var o=l();return o&&(o.onreadystatechange=function(){n(o)},o.open("GET",t,!0),o.send(null)),!1}function n(t){var o=document.getElementById("outdated");return 4==t.readyState&&(o.innerHTML=200==t.status||304==t.status?t.responseText:d,r()),!1}var s=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"},t?("IE8"==t.lowerThan||"borderSpacing"==t.lowerThan?t.lowerThan="borderSpacing":"IE9"==t.lowerThan||"boxShadow"==t.lowerThan?t.lowerThan="boxShadow":"IE10"==t.lowerThan||"transform"==t.lowerThan||""==t.lowerThan||"undefined"==typeof t.lowerThan?t.lowerThan="transform":("IE11"==t.lowerThan||"borderImage"==t.lowerThan)&&(t.lowerThan="borderImage"),this.defaultOpts.bgColor=t.bgColor,this.defaultOpts.color=t.color,this.defaultOpts.lowerThan=t.lowerThan,this.defaultOpts.languagePath=t.languagePath,bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath):(bkgColor=this.defaultOpts.bgColor,txtColor=this.defaultOpts.color,cssProp=this.defaultOpts.lowerThan,languagePath=this.defaultOpts.languagePath);var u=!0,i=function(){var t=document.createElement("div"),o="Khtml Ms O Moz Webkit".split(" "),e=o.length;return function(r){if(r in t.style)return!0;for(r=r.replace(/^[a-z]/,function(t){return t.toUpperCase()});e--;)if(o[e]+r in t.style)return!0;return!1}}();if(!i(""+cssProp)){if(u&&"1"!==s.style.opacity){u=!1;for(var c=1;100>=c;c++)setTimeout(function(t){return function(){e(t)}}(c),8*c)}" "===languagePath||0==languagePath.length?r():a(languagePath);var d='
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

'}}; \ No newline at end of file +(function(root,factory){if(typeof define==="function"&&define.amd){define([],function(){return factory(root)})}else if(typeof module==="object"&&module.exports){module.exports=factory()}else{root.outdatedBrowser=factory(root)}})(this,function(global,undefined){var outdatedBrowser=function(options){var outdated=document.getElementById("outdated");this.defaultOpts={bgColor:"#f25648",color:"#ffffff",lowerThan:"transform",languagePath:"../outdatedbrowser/lang/en.html"};if(options){if(options.lowerThan=="IE8"||options.lowerThan=="borderSpacing"){options.lowerThan="borderSpacing"}else if(options.lowerThan=="IE9"||options.lowerThan=="boxShadow"){options.lowerThan="boxShadow"}else if(options.lowerThan=="IE10"||options.lowerThan=="transform"||options.lowerThan==""||typeof options.lowerThan==="undefined"){options.lowerThan="transform"}else if(options.lowerThan=="IE11"||options.lowerThan=="borderImage"){options.lowerThan="borderImage"}this.defaultOpts.bgColor=options.bgColor;this.defaultOpts.color=options.color;this.defaultOpts.lowerThan=options.lowerThan;this.defaultOpts.languagePath=options.languagePath}var bkgColor=this.defaultOpts.bgColor;var txtColor=this.defaultOpts.color;var cssProp=this.defaultOpts.lowerThan;var languagePath=this.defaultOpts.languagePath;var done=true;function function_opacity(opacity_value){outdated.style.opacity=opacity_value/100;outdated.style.filter="alpha(opacity="+opacity_value+")"}function function_fade_in(opacity_value){function_opacity(opacity_value);if(opacity_value==1){outdated.style.display="block"}if(opacity_value==100){done=true}}var supports=function(){var div=document.createElement("div"),vendors="Khtml Ms O Moz Webkit".split(" "),len=vendors.length;return function(prop){if(prop in div.style)return true;prop=prop.replace(/^[a-z]/,function(val){return val.toUpperCase()});while(len--){if(vendors[len]+prop in div.style){return true}}return false}}();if(!supports(""+cssProp+"")){if(done&&outdated.style.opacity!=="1"){done=false;for(var i=1;i<=100;i++){setTimeout(function(x){return function(){function_fade_in(x)}}(i),i*8)}}}else{return}if(languagePath===" "||languagePath.length==0){startStylesAndEvents()}else{grabFile(languagePath)}function startStylesAndEvents(){var btnClose=document.getElementById("btnCloseUpdateBrowser");var btnUpdate=document.getElementById("btnUpdateBrowser");outdated.style.backgroundColor=bkgColor;outdated.style.color=txtColor;outdated.children[0].style.color=txtColor;outdated.children[1].style.color=txtColor;btnUpdate.style.color=txtColor;if(btnUpdate.style.borderColor)btnUpdate.style.borderColor=txtColor;btnClose.style.color=txtColor;btnClose.onmousedown=function(){outdated.style.display="none";return false};btnUpdate.onmouseover=function(){this.style.color=bkgColor;this.style.backgroundColor=txtColor};btnUpdate.onmouseout=function(){this.style.color=txtColor;this.style.backgroundColor=bkgColor}}var ajaxEnglishDefault="
Your browser is out-of-date!
"+'

Update your browser to view this website correctly. Update my browser now

'+'

×

';function getHTTPObject(){var xhr=false;if(window.XMLHttpRequest){xhr=new XMLHttpRequest}else if(window.ActiveXObject){try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xhr=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){xhr=false}}}return xhr}function grabFile(file){var request=getHTTPObject();if(request){request.onreadystatechange=function(){displayResponse(request)};request.open("GET",file,true);request.send(null)}return false}function displayResponse(request){var insertContentHere=document.getElementById("outdated");if(request.readyState==4){if(request.status==200||request.status==304){insertContentHere.innerHTML=request.responseText}else{insertContentHere.innerHTML=ajaxEnglishDefault}startStylesAndEvents()}return false}};return outdatedBrowser}); \ No newline at end of file