(function(){ var loadvcScript = function(url, callback){ var vcscript = document.createElement("script"); vcscript.type = "text/javascript"; if (vcscript.readyState){ vcscript.onreadystatechange = function(){ if (vcscript.readyState == "loaded" || vcscript.readyState == "complete"){ vcscript.onreadystatechange = null; callback(); } }; } else { vcscript.onload = function(){ callback(); }; } vcscript.src = url; document.getElementsByTagName("head")[0].appendChild(vcscript); }; var gvisicountappsJavaScript = function(jQuery){ var vcenable = 0, vcshopurl = Shopify.shop, visitorappurl = "https://thegafapps.com/visitorcounter", great_proid = __st.rtyp ? __st.rid : null, great_cart_btn = "form[action*='/cart/add']:first #AddToCart-product-template:visible, form[action*='/cart/add']:first #AddToCart-product-templates, form[action*='/cart/add']:first .btn--view-cart, form[action*='/cart/add']:first [type=submit]:visible:first, form[action*='/cart/add']:visible [type=submit]:visible, .product-form__item #AddToCart-product-template, form[action$='/cart/add']:first .btn--add-to-cart:visible, form[action$='/cart/add']:first button.add_to_cart, form[action$='/cart/add']:first #addToCart, .Product__Info .addCart, form[action$='/cart/add']:first .product-buy-buttons--primary", great_product, widgettext = '', vcposition = 'bottom', gaftheme = 'standard', vcbg_color = 'transparent', text_color = '#000', visitor_number_color = '#000', gaffont_size = '14', text_padding = '0', vcborder_radius = '0', border_width = '0', vccustom_css = '', fromapi = '0', geoip = [], gafvcisbotuser = 'no', customcss = '', isstoreowner = 'no', vcdata = []; var botPattern = "(googlebot\/|bot|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis)"; var re = new RegExp(botPattern, 'i'); var userAgent = navigator.userAgent; if (re.test(userAgent)) {gafvcisbotuser = 'yes';} var vcisowner = jQuery('#admin-bar-iframe').html(); if(vcisowner !== undefined){setgafvcCookie('vcisowner', 'yes', 1000);} var vcisownerCookie = getgafvcCookie('vcisowner'); if(vcisownerCookie == 'yes'){isstoreowner = 'yes';} var gafvccounteronpage = 0; if (window.location.href.indexOf("/products/") != -1 || jQuery("body .visitors_counter").length > 0){ gafvccounteronpage = 1; } if (gafvccounteronpage == 1 && gafvcisbotuser == 'no') { jQuery("head").append(''); jQuery("head").append(''); jQuery.getJSON(window.location.href, function (result) { if(result.product !== undefined){ great_proid = (result.product.id !== undefined)?result.product.id:'', great_product = (result.product !== undefined)?result.product:''; } }).always(function () { var shopify_vc_domain = window.location.hostname; if(shopify_vc_domain.indexOf('myshopify.com') != -1){ var $ipurl = 'https://geolocation-db.com/json/'; var geoip = getgafvcCookie('gafipinfo'); if (geoip == '') { fromapi = '1'; jQuery.getJSON($ipurl, function (result) { vcgeo = {query: result.IPv4, country: result.country_name, region: result.state, city: result.city, postal: result.postal, lat: result.latitude, lon: result.longitude} geoip = vcgeo; setgafvcCookie('gafipinfo', JSON.stringify(geoip), 30); }).always(function () { var postdata = {shop: vcshopurl, isstoreowner: isstoreowner, pid: great_proid, geoip: geoip, fromapi: fromapi, pagedata: window.ShopifyAnalytics.meta.page} setgafcounter(postdata); }); } else { var postdata = {shop: vcshopurl, isstoreowner: isstoreowner, pid: great_proid, geoip: geoip, fromapi: fromapi, pagedata: window.ShopifyAnalytics.meta.page} setgafcounter(postdata); } }else{ var $ipurl = '//extreme-ip-lookup.com/json/'; var geoip = getgafvcCookie('gafipinfo'); if (geoip == '') { fromapi = '1'; jQuery.getJSON($ipurl, function (result) { geoip = JSON.stringify(result); setgafvcCookie('gafipinfo', JSON.stringify(result), 30); }).always(function () { var postdata = {shop: vcshopurl, isstoreowner: isstoreowner, pid: great_proid, geoip: geoip, fromapi: fromapi, pagedata: window.ShopifyAnalytics.meta.page} setgafcounter(postdata); }); } else { var postdata = {shop: vcshopurl, isstoreowner: isstoreowner, pid: great_proid, geoip: geoip, fromapi: fromapi, pagedata: window.ShopifyAnalytics.meta.page} setgafcounter(postdata); } } }); function setgafcounter(postdata) { jQuery.ajax({ url: visitorappurl + "/visitors", data: postdata, dataType: "json", type: "POST", success: function (evc) { vcdata = evc; vcenable = evc.enable; if (vcenable == '1') { vceventfire('vcbeforeload', {"data":evc}); if(evc.position != 'custom'){ jQuery('body .visitors_counter').remove(); } if(typeof customvcwidgettext !== 'undefined'){ evc.widgettext = customvcwidgettext; } vcposition = evc.position; if (evc.buttonclass) {great_cart_btn = evc.buttonclass;} if (vcposition == 'bottom') {jQuery(great_cart_btn).after('
');} if (vcposition == 'top') {jQuery(great_cart_btn).before('
');} if(evc.font != "") { jQuery("head").append(""); } gaffont_size = evc.font_size; vcbg_color = (evc.bg_color != '')?evc.bg_color:vcbg_color; text_color = evc.text_color; visitor_number_color = evc.visitor_number_color; text_padding = evc.text_padding; vcfont = evc.font; vcborder_radius = evc.border_radius; border_width = evc.border_width; widgettext = evc.widgettext; gaftheme = evc.theme; var $barstyle = 'style="'; $barstyle += 'background:' + vcbg_color + ';color:' + text_color + ';font-size:' + gaffont_size + 'px;padding:' + text_padding + 'px;font-family:' + vcfont + ';border-radius:' + vcborder_radius + 'px;'; if (evc.border_width > 0) { $barstyle += 'border:' + border_width + 'px solid;'; } else { $barstyle += 'border:none;'; } $barstyle += '"'; if (evc.customcss != '') { vccustom_css = evc.customcss; } if (vccustom_css != '') { jQuery('head').append(''); } if(vcdata.frequently == 1 && vcdata.setdelay == 'fixdelaytime'){ window.setInterval(vcfrequentlychange, evc.setdelaytime); } if(vcdata.frequently == 1 && vcdata.setdelay == 'randomdelaytime'){ vcfrequentlyloop(); } var vcrandomvisitor = getvcrandomvisitor(); widgettext = widgettext.replace("{{number}}", ""+vcrandomvisitor+""); widgettext = widgettext.replace("[number]", ""+vcrandomvisitor+""); var countertext = ''; if(evc.countericon != ''){ countertext = ''; } jQuery('body .visitors_counter').each(function () { jQuery(this).find('.shopper-view').remove(); jQuery(this).append('
'+countertext + widgettext + '
'); }); vceventfire('vcafterload', {"data":evc}); jQuery('.visitors_counter span').css('color', visitor_number_color); if(vcdata.iconcolor != ''){ jQuery('.visitors_counter .shopper-view i').css('color', vcdata.iconcolor); } updategafvcvisitor(); } if(vcdata.maxvisitor){ jQuery('head').append(''); jQuery('body').append(vcdata.maxvisitormessage); } } }); } function vceventfire(eventname, detail) { var gafcncevent = new CustomEvent(eventname, {detail: detail }); document.dispatchEvent(gafcncevent); } function vcfrequentlyloop() { var vcrand = Math.round(Math.random() * (8000)) + 2000; setTimeout(function() { vcfrequentlychange(); vcfrequentlyloop(); }, vcrand); } function vcfrequentlychange() { var today = new Date(); var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); var vcrandomvisitor = getvcrandomvisitor(); jQuery('body .visitors_counter').each(function () { jQuery(this).find('.shopper-view span').text(vcrandomvisitor); }); } function getvcrandomvisitor() { var totalvisitor = vcdata.totalvisitor; if(vcdata.totalvisitor >= 10 && vcdata.frequently == 1){ var minimunvccount = vcdata.totalvisitor-10; totalvisitor = Math.floor(Math.random() * 11) + minimunvccount; } if(vcshopurl == '444e97.myshopify.com'){ if(vcdata.totalvisitor >= 10 && vcdata.frequently == 1){ var minimunvccount = vcdata.totalvisitor-6; totalvisitor = Math.floor(Math.random() * 6) + minimunvccount; } } return totalvisitor; } jQuery("body").on("click", ".gafvcownerpopupclose", function () { if(jQuery(this).hasClass('riskabovefourdays') && !jQuery(this).hasClass('gafvceventsopen')){ //first click_on_x jQuery(this).addClass('gafvceventsopen'); jQuery("body .gafvcownerpopup .gafvccontent, body .gafvcownerpopup .gafvcfooter").hide(); jQuery("body .gafvcownerpopup .gafvccontent.reskmoreevents").show(); }else if(jQuery(this).hasClass('gafvceventsopen')){ gafvcownerevent('dont_remind_me'); jQuery("body #gafvcownerpopup").hide(); }else{ //second time click_on_x jQuery("body #gafvcownerpopup").hide(); gafvcownerevent('click_on_x'); } }); jQuery("body").on("click", ".gafvcownerremind .gafvcremind", function () { gafvcownerevent('clicked_on_remind_me'); jQuery("body #gafvcownerpopup").hide(); }); jQuery("body").on("click", ".gafvcownerremind .gafvcdontremind", function () { gafvcownerevent('dont_remind_me'); jQuery("body #gafvcownerpopup").hide(); }); jQuery("body").on("click", ".gafvcupgradenow", function () { gafvcownerevent('click_on_upgrade'); jQuery("body #gafvcownerpopup").hide(); }); function gafvcownerevent(event) { jQuery.ajax({ type: "POST", url: visitorappurl+'/visitors/addmaxvisitors', data: {'storeid': vcdata.storeid, 'event' : event}, //dataType: "JSON", success: function (response) { } }); } function updategafvcvisitor(){ var vcgafcookie = getgafvcCookie('Disablevc'); var vcisownerCookie = getgafvcCookie('vcisowner'); if (vcgafcookie != 'yes' && vcisownerCookie != 'yes'){ jQuery.ajax({ type: "POST", url: visitorappurl + '/visitors/updategafVisitor', data: {'shop_url': vcshopurl}, success: function (response) { setgafvcCookie('Disablevc', 'yes', 1); } }); } } } }; function setgafvcCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getgafvcCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } if ((typeof jQuery === 'undefined') || (parseFloat(jQuery.fn.jquery) < 1.7)) { loadvcScript('//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js', function(){ GVCAPPS = jQuery.noConflict(true); GVCAPPS(document).ready(function() { gvisicountappsJavaScript(GVCAPPS); }); }); } else { gvisicountappsJavaScript(jQuery); } })();