﻿(function($) { $.reject = function(opts) { var opts = $.extend(true, { reject: { all: false, msie5: true, msie6: true }, display: [], browserInfo: { firefox: { text: 'Firefox 3.6+', url: 'http://www.mozilla.com/firefox/' }, safari: { text: 'Safari 5+', url: 'http://www.apple.com/safari/download/' }, opera: { text: 'Opera 10.0+', url: 'http://www.opera.com/download/' }, chrome: { text: 'Chrome 6.0+', url: 'http://www.google.com/chrome/' }, msie: { text: 'Internet Explorer 8+', url: 'http://www.microsoft.com/windows/Internet-explorer/'} }, header: 'Did you know that your Internet Browser is out of date?', paragraph1: 'To get the best possible experience using our website we recommend that you upgrade to a newer version or other web browser. A list of the most popular web browsers can be found below.', paragraph2: 'Just click on the icons to get to the download page.', close: true, closeMessage: 'By closing this window you acknowledge that your experience on this website may be degraded', closeLink: 'Close This Window', closeURL: '#', closeESC: true, closeCookie: true, cookieSettings: { path: '/', expires: 0 }, imagePath: '/images/browsers/', overlayBgColor: '#000', overlayOpacity: 0.8, fadeInTime: 'fast', fadeOutTime: 'fast' }, opts); if (opts.display.length < 1) opts.display = ['firefox', 'chrome', 'msie', 'safari', 'opera', 'gcf']; if ($.isFunction(opts.beforeReject)) opts.beforeReject(opts); if (!opts.close) opts.closeESC = false; var browserCheck = function(settings) { return (settings['all'] ? true : false) || (settings[$.os.name] ? true : false) || (settings[$.layout.name] ? true : false) || (settings[$.browser.name] ? true : false) || (settings[$.browser.className] ? true : false) }; if (!browserCheck(opts.reject)) { if ($.isFunction(opts.onFail)) opts.onFail(opts); return false } if (opts.close && opts.closeCookie) { var COOKIE_NAME = 'jreject-close'; var _cookie = function(name, value) { if (typeof value != 'undefined') { var expires = ''; if (opts.cookieSettings.expires != 0) { var date = new Date(); date.setTime(date.getTime() + (opts.cookieSettings.expires)); var expires = "; expires=" + date.toGMTString() } var path = opts.cookieSettings.path || '/'; document.cookie = name + '=' + encodeURIComponent(value == null ? '' : value) + expires + '; path=' + path } else { var cookie, val = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; ++i) { cookie = $.trim(cookies[i]); if (cookie.substring(0, name.length + 1) == (name + '=')) { val = decodeURIComponent(cookie.substring(name.length + 1)); break } } } return val } }; if (_cookie(COOKIE_NAME) != null) return false } var html = '<div id="jr_overlay"></div><div id="jr_wrap"><div id="jr_inner"><h1 id="jr_header">' + opts.header + '</h1>' + (opts.paragraph1 === '' ? '' : '<p>' + opts.paragraph1 + '</p>') + (opts.paragraph2 === '' ? '' : '<p>' + opts.paragraph2 + '</p>') + '<ul>'; var displayNum = 0; for (var x in opts.display) { var browser = opts.display[x]; var info = opts.browserInfo[browser] || false; if (!info || (info['allow'] != undefined && !browserCheck(info['allow']))) continue; var url = info.url || '#'; html += '<li id="jr_' + browser + '"><div class="jr_icon"></div>' + '<div><a href="' + url + '">' + (info.text || 'Unknown') + '</a></div></li>'; ++displayNum } html += '</ul><div id="jr_close">' + (opts.close ? '<a href="' + opts.closeURL + '">' + opts.closeLink + '</a><p>' + opts.closeMessage + '</p>' : '') + '</div>' + '</div></div>'; var element = $('<div>' + html + '</div>'); var size = _pageSize(); var scroll = _scrollSize(); element.bind('closejr', function() { if (!opts.close) return false; if ($.isFunction(opts.beforeClose)) opts.beforeClose(opts); $(this).unbind('closejr'); $('#jr_overlay,#jr_wrap').fadeOut(opts.fadeOutTime, function() { $(this).remove(); if ($.isFunction(opts.afterClose)) opts.afterClose(opts) }); $('embed, object, select, applet').show(); if (opts.closeCookie) _cookie(COOKIE_NAME, 'true'); return true }); element.find('#jr_overlay').css({ width: size[0], height: size[1], position: 'absolute', top: 0, left: 0, background: opts.overlayBgColor, zIndex: 200, opacity: opts.overlayOpacity, padding: 0, margin: 0 }).next('#jr_wrap').css({ position: 'absolute', width: '100%', top: scroll[1] + (size[3] / 4), left: scroll[0], zIndex: 300, textAlign: 'center', padding: 0, margin: 0 }).children('#jr_inner').css({ background: '#FFF', border: '1px solid #CCC', fontFamily: '"Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif', color: '#4F4F4F', margin: '0 auto', position: 'relative', height: 'auto', minWidth: displayNum * 100, maxWidth: displayNum * 140, width: $.layout.name == 'trident' ? displayNum * 155 : 'auto', padding: 20, fontSize: 12 }).children('#jr_header').css({ display: 'block', fontSize: '1.3em', marginBottom: '0.5em', color: '#333', fontFamily: 'Helvetica,Arial,sans-serif', fontWeight: 'bold', textAlign: 'left', padding: 5, margin: 0 }).nextAll('p').css({ textAlign: 'left', padding: 5, margin: 0, clear: 'both' }).siblings('ul').css({ listStyleImage: 'none', listStylePosition: 'outside', listStyleType: 'none', margin: 0, padding: 0, marginTop: 5 }).children('li').css({ background: 'transparent url("' + opts.imagePath + 'background_browser.gif") no-repeat scroll left top', cusor: 'pointer', 'float': 'left', width: 120, height: 122, margin: '0 10px 10px 10px', padding: 0, textAlign: 'center' }).children('.jr_icon').css({ width: 100, height: 100, margin: '1px auto', padding: 0, background: 'transparent no-repeat scroll left top', cursor: 'pointer' }).each(function() { var self = $(this); self.css('background', 'transparent url(' + opts.imagePath + 'browser_' + (self.parent('li').attr('id').replace(/jr_/, '')) + '.gif) no-repeat scroll left top'); self.click(function() { window.open($(this).next('div').children('a').attr('href'), 'jr_' + Math.round(Math.random() * 11)); return false }) }).siblings('div').css({ color: '#808080', fontSize: '0.8em', height: 18, lineHeight: '17px', margin: '1px auto', padding: 0, width: 118, textAlign: 'center' }).children('a').css({ color: '#333', textDecoration: 'none', padding: 0, margin: 0 }).hover(function() { $(this).css('textDecoration', 'underline') }, function() { $(this).css('textDecoration', 'none') }).click(function() { window.open($(this).attr('href'), 'jr_' + Math.round(Math.random() * 11)); return false }).parents('#jr_inner').children('#jr_close').css({ margin: '0 0 0 50px', clear: 'both', textAlign: 'left', padding: 0, margin: 0 }).children('a').css({ color: '#000', display: 'block', width: 'auto', margin: 0, paddingLeft: 5, textDecoration: 'underline' }).click(function() { $(this).trigger('closejr'); if (opts.closeURL === '#') return false }).nextAll('p').css({ padding: '10px 0 0 5px', margin: 0 }); $('#jr_overlay').focus(); $('embed, object, select, applet').hide(); $('body').append(element.hide().fadeIn(opts.fadeInTime)); $(window).bind('resize scroll', function() { var size = _pageSize(); $('#jr_overlay').css({ width: size[0], height: size[1] }); var scroll = _scrollSize(); $('#jr_wrap').css({ top: scroll[1] + (size[3] / 4), left: scroll[0] }) }); if (opts.closeESC) { $(document).bind('keydown', function(event) { if (event.keyCode == 27) element.trigger('closejr') }) } if ($.isFunction(opts.afterReject)) opts.afterReject(opts); return true }; var _pageSize = function() { var xScroll = window.innerWidth && window.scrollMaxX ? window.innerWidth + window.scrollMaxX : (document.body.scrollWidth > document.body.offsetWidth ? document.body.scrollWidth : document.body.offsetWidth); var yScroll = window.innerHeight && window.scrollMaxY ? window.innerHeight + window.scrollMaxY : (document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight); var windowWidth = window.innerWidth ? window.innerWidth : (document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth); var windowHeight = window.innerHeight ? window.innerHeight : (document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight); return [xScroll < windowWidth ? xScroll : windowWidth, yScroll < windowHeight ? windowHeight : yScroll, windowWidth, windowHeight] }; var _scrollSize = function() { return [window.pageXOffset ? window.pageXOffset : (document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollLeft : document.body.scrollLeft), window.pageYOffset ? window.pageYOffset : (document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)] } })(jQuery); (function($) { $.browserTest = function(a, z) { var u = 'unknown', x = 'X', m = function(r, h) { for (var i = 0; i < h.length; i = i + 1) { r = r.replace(h[i][0], h[i][1]) } return r }, c = function(i, a, b, c) { var r = { name: m((a.exec(i) || [u, u])[1], b) }; r[r.name] = true; r.version = (c.exec(i) || [x, x, x, x])[3]; if (r.name.match(/safari/) && r.version > 400) { r.version = '2.0' } if (r.name === 'presto') { r.version = ($.browser.version > 9.27) ? 'futhark' : 'linear_b' } r.versionNumber = parseFloat(r.version, 10) || 0; r.versionX = (r.version !== x) ? (r.version + '').substr(0, 1) : x; r.className = r.name + r.versionX; return r }; a = (a.match(/Opera|Navigator|Minefield|KHTML|Chrome/) ? m(a, [[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/, ''], ['Chrome Safari', 'Chrome'], ['KHTML', 'Konqueror'], ['Minefield', 'Firefox'], ['Navigator', 'Netscape']]) : a).toLowerCase(); $.browser = $.extend((!z) ? $.browser : {}, c(a, /(camino|chrome|firefox|netscape|konqueror|lynx|msie|opera|safari)/, [], /(camino|chrome|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/)); $.layout = c(a, /(gecko|konqueror|msie|opera|webkit)/, [['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto']], /(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/); $.os = { name: (/(win|mac|linux|sunos|solaris|iphone)/.exec(navigator.platform.toLowerCase()) || [u])[0].replace('sunos', 'solaris') }; if (!z) { $('html').addClass([$.os.name, $.browser.name, $.browser.className, $.layout.name, $.layout.className].join(' ')) } }; $.browserTest(navigator.userAgent) })(jQuery);
