/*! * jQuery Smart Banner * Copyright (c) 2012 Arnold Daniels * Based on 'jQuery Smart Web App Banner' by Kurt Zenisek @ kzeni.com */(function(root,factory){if(typeof define=='function'&&define.amd){define(['jquery'],factory);}else{factory(root.jQuery);}})(this,function($){var UA=navigator.userAgent;var isEdge=/Edge/i.test(UA);var SmartBanner=function(options){this.origHtmlMargin=parseFloat($('html').css('margin-top'));this.options=$.extend({},$.smartbanner.defaults,options);var standalone=navigator.standalone;if(this.options.force){this.type=this.options.force;} else if(UA.match(/Windows Phone/i)!==null&&UA.match(/Edge|Touch/i)!==null){this.type='windows';} else if(UA.match(/iPhone|iPod/i)!==null||(UA.match(/iPad/)&&this.options.iOSUniversalApp)){if(UA.match(/Safari/i)!==null&&(UA.match(/CriOS/i)!==null||UA.match(/FxiOS/i)!=null||window.Number(UA.substr(UA.indexOf('OS ')+3,3).replace('_','.'))<6)){this.type='ios';}} else if(UA.match(/\bSilk\/(.*\bMobile Safari\b)?/)||UA.match(/\bKF\w/)||UA.match('Kindle Fire')){this.type='kindle';} else if(UA.match(/Android/i)!==null){this.type='android';} if(!this.type||standalone||this.getCookie('sb-closed')||this.getCookie('sb-installed')){return;} this.scale=this.options.scale=='auto'?$(window).width()/window.screen.width:this.options.scale;if(this.scale<1){this.scale=1;} var meta=$(this.type=='android'?'meta[name="google-play-app"]':(this.type=='ios'?'meta[name="apple-itunes-app"]':(this.type=='kindle'?'meta[name="kindle-fire-app"]':'meta[name="msApplication-ID"]')));if(!meta.length){return;} if(this.type=='windows'){if(isEdge){this.appId=$('meta[name="msApplication-PackageEdgeName"]').attr('content');} if(!this.appId){this.appId=$('meta[name="msApplication-PackageFamilyName"]').attr('content');}} else{var parsedMetaContent=/app-id=([^\s,]+)/.exec(meta.attr('content'));if(parsedMetaContent){this.appId=parsedMetaContent[1];}else{return;}} this.title=this.options.title?this.options.title:(meta.data('title')||$('title').text().replace(/\s*[|\-ยท].*$/,''));this.author=this.options.author?this.options.author:(meta.data('author')||($('meta[name="author"]').length?$('meta[name="author"]').attr('content'):window.location.hostname));this.iconUrl=meta.data('icon-url');this.price=meta.data('price');if(typeof this.options.onInstall=='function'){this.options.onInstall=this.options.onInstall;}else{this.options.onInstall=function(){};} if(typeof this.options.onClose=='function'){this.options.onClose=this.options.onClose;}else{this.options.onClose=function(){};} this.create();this.show();this.listen();};SmartBanner.prototype={constructor:SmartBanner,create:function(){var iconURL;var price=this.price||this.options.price;var link=this.options.url||(function(){switch(this.type){case 'android':return 'market://details?id=';case 'kindle':return 'amzn://apps/android?asin=';case 'windows':return isEdge?'ms-windows-store://pdp/?productid=':'ms-windows-store:navigate?appid=';} return 'https://itunes.apple.com/'+this.options.appStoreLanguage+'/app/id';}.call(this)+this.appId);var inStore=!price?'':(function(){var result=price+' - ';switch(this.type){case 'android':return result+this.options.inGooglePlay;case 'kindle':return result+this.options.inAmazonAppStore;case 'windows':return result+this.options.inWindowsStore;} return result+this.options.inAppStore}.call(this));var gloss=this.options.iconGloss==null?(this.type=='ios'):this.options.iconGloss;if(this.type=='android'&&this.options.GooglePlayParams){link+='&referrer='+this.options.GooglePlayParams;} var banner=('
'+ '
'+ '×'+ ''+ '
'+ ''+this.title+''+ ''+this.author+''+ ''+inStore+''+ '
'+ ''+ ''+this.options.button+''+ ''+ '
'+ '
');if(this.options.layer){$(this.options.appendToSelector).append(banner);}else{$(this.options.appendToSelector).prepend(banner);} if(this.options.icon){iconURL=this.options.icon;}else if(this.iconUrl){iconURL=this.iconUrl;}else if($('link[rel="apple-touch-icon-precomposed"]').length>0){iconURL=$('link[rel="apple-touch-icon-precomposed"]').attr('href');if(this.options.iconGloss==null){gloss=false;}}else if($('link[rel="apple-touch-icon"]').length>0){iconURL=$('link[rel="apple-touch-icon"]').attr('href');}else if($('meta[name="msApplication-TileImage"]').length>0){iconURL=$('meta[name="msApplication-TileImage"]').attr('content');}else if($('meta[name="msapplication-TileImage"]').length>0){iconURL=$('meta[name="msapplication-TileImage"]').attr('content');} if(iconURL){$('#smartbanner .sb-icon').css('background-image','url('+iconURL+')');if(gloss){$('#smartbanner .sb-icon').addClass('gloss');}}else{$('#smartbanner').addClass('no-icon');} this.bannerHeight=$('#smartbanner').outerHeight()+2;if(this.scale>1){$('#smartbanner').css('top',parseFloat($('#smartbanner').css('top'))*this.scale).css('height',parseFloat($('#smartbanner').css('height'))*this.scale).hide();$('#smartbanner .sb-container').css('-webkit-transform','scale('+this.scale+')').css('-msie-transform','scale('+this.scale+')').css('-moz-transform','scale('+this.scale+')').css('width',$(window).width()/this.scale);} $('#smartbanner').css('position',this.options.layer?'absolute':'static');},listen:function(){$('#smartbanner .sb-close').on('click',$.proxy(this.close,this));$('#smartbanner .sb-button').on('click',$.proxy(this.install,this));},show:function(callback){var banner=$('#smartbanner');banner.stop();if(this.options.layer){banner.animate({top:0,display:'block'},this.options.speedIn).addClass('shown').show();$(this.pushSelector).animate({paddingTop:this.origHtmlMargin+(this.bannerHeight*this.scale)},this.options.speedIn,'swing',callback);} else{if($.support.transition){banner.animate({top:0},this.options.speedIn).addClass('shown');var transitionCallback=function(){$('html').removeClass('sb-animation');if(callback){callback();}};$(this.pushSelector).addClass('sb-animation').one($.support.transition.end,transitionCallback).emulateTransitionEnd(this.options.speedIn).css('margin-top',this.origHtmlMargin+(this.bannerHeight*this.scale));} else{banner.slideDown(this.options.speedIn).addClass('shown');}}},hide:function(callback){var banner=$('#smartbanner');banner.stop();if(this.options.layer){banner.animate({top:-1*this.bannerHeight*this.scale,display:'block'},this.options.speedIn).removeClass('shown');$(this.pushSelector).animate({paddingTop:this.origHtmlMargin},this.options.speedIn,'swing',callback);} else{if($.support.transition){if(this.type!=='android'){banner.css('top',-1*this.bannerHeight*this.scale).removeClass('shown');} else{banner.css({display:'none'}).removeClass('shown');} var transitionCallback=function(){$('html').removeClass('sb-animation');if(callback){callback();}};$(this.pushSelector).addClass('sb-animation').one($.support.transition.end,transitionCallback).emulateTransitionEnd(this.options.speedOut).css('margin-top',this.origHtmlMargin);} else{banner.slideUp(this.options.speedOut).removeClass('shown');}}},close:function(e){e.preventDefault();this.hide();this.setCookie('sb-closed','true',this.options.daysHidden);this.options.onClose(e);},install:function(e){if(this.options.hideOnInstall){this.hide();} this.setCookie('sb-installed','true',this.options.daysReminder);this.options.onInstall(e);},setCookie:function(name,value,exdays){var exdate=new Date();exdate.setDate(exdate.getDate()+exdays);value=encodeURI(value)+((exdays==null)?'':'; expires='+exdate.toUTCString());document.cookie=name+'='+value+'; path=/;';},getCookie:function(name){var i,x,y,ARRcookies=document.cookie.split(';');for(i=0;i