annotate src/nabble/modules/ad/Javascript.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 package nabble.modules.ad;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 import nabble.model.Init;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 final class Javascript {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 public static String BANNER_IMG = Init.get("bannerImg", "ad_nabble.png");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 public static String BANNER_URL = Init.get("bannerUrl", "https://www.nabble.com/");
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 public static volatile String hackAds = "";
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 static String text(Ad ad) {
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 boolean isSafe = ad.isSafe();
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 return
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 "\r\n\r\n var _gaq = _gaq || [];\r\n\r\n var isA;\r\n\r\n (function() {\r\n var ab = Nabble.getCookie(\"ab\");\r\n if( ab == null ) {\r\n ab = Math.random() < 0.5 ? \"a\" : \"b\";\r\n Nabble.setCookie(\"ab\",ab);\r\n }\r\n isA = ab == \"a\";\r\n })();\r\n\r\n var isB = !isA;\r\n\r\n Nabble.isSafe = "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 +(isSafe)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 +";\r\n Nabble.adGroup = '"
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 +( isSafe ? "SAFE" : "BAD" )
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 +"';\r\n\r\n var lastDayWithoutAds = "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 +(ad.lastDayWithoutAds())
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 +";\r\n var daysLeft = Math.round((lastDayWithoutAds - new Date().getTime()) / (24 * 60 * 60 * 1000));\r\n Nabble.currentCredits = "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 +(ad.getCredits())
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 +";\r\n Nabble.isPaid = "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26 +(ad.isPaid())
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 +";\r\n Nabble.creditsForUsersOnly = "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 +(ad.isCreditsForUsersOnly())
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 +";\r\n Nabble.wasCreatedRecently = daysLeft > 0;\r\n Nabble.removeAdsPath = '/template/NamlServlet.jtp?macro=site_payment';\r\n\r\n Nabble.noAds = function(location) {\r\n Nabble.noAds = function(location) {};\r\n _gaq.push(['nabble._trackEvent', 'ad-type', 'NONE']);\r\n };\r\n\r\n Nabble.ads = function(location) {\r\n if (Nabble.currentCredits > 0 && Nabble.creditsForUsersOnly && Nabble.userId)\r\n return;\r\n Nabble.fixAdGroup(location);\r\n Ads[Nabble.adGroup](location);\r\n };\r\n\r\n Nabble.adbayes = function() {\r\n window.Adbayes = window.Adbayes || { properties:{} };\r\n Adbayes.properties['domain'] = window.location.hostname;\r\n Adbayes.properties['adtype'] = Nabble.adGroup;\r\n\r\n if (Nabble.wasCreatedRecently && Nabble.adGroup == 'SAFE')\r\n Nabble.adGroup = \"NEW\";\r\n\r\n if( Nabble.adGroup=='SAFE' && Adbayes.result != 'safe' )\r\n Nabble.adGroup = 'UNSAFE';\r\n\r\n if( Nabble.adGroup=='SAFE' )\r\n _gaq.push(['nabble._setCustomVar', 1, 'Safe', 'x']);\r\n };\r\n\r\n Nabble.fixAdGroup = function(location) {\r\n Nabble.fixAdGroup = function(location) {};\r\n\r\n if (!window.Adbayes) {\r\n Nabble.adGroup = \"NEW\";\r\n _gaq.push(['nabble._trackEvent', 'ad-type', Nabble.adGroup]);\r\n return;\r\n }\r\n\r\n switch(location) {\r\n case 'app_bottom':\r\n Adbayes.properties['page-type'] = 'forum';\r\n break;\r\n case 'first_classic_message':\r\n case 'last_classic_message':\r\n Adbayes.properties['page-type'] = 'classic-view';\r\n break;\r\n case 'list_bottom':\r\n Adbayes.properties['page-type'] = 'list-view';\r\n break;\r\n case 'threaded_bottom':\r\n Adbayes.properties['page-type'] = 'threaded-view';\r\n break;\r\n case 'blog_topic':\r\n Adbayes.properties['page-type'] = 'blog-topic';\r\n break;\r\n case 'search_top':\r\n case 'search_bottom':\r\n Adbayes.properties['page-type'] = 'search';\r\n break;\r\n case 'widget':\r\n Adbayes.properties['page-type'] = 'widget';\r\n break;\r\n default:\r\n Adbayes.properties['page-type'] = 'unknown:' + location;\r\n break;\r\n }\r\n Nabble.realTimeAnalytics();\r\n };\r\n\r\n Nabble.realTimeAnalytics = function() {\r\n _gaq.push(['nabble._trackEvent', 'ad-type', Nabble.adGroup]);\r\n if (Adbayes.properties['adtype'] == 'SAFE' && window.Adbayes.listeners) {\r\n window.Adbayes.listeners.push(function() {\r\n var page = Adbayes.properties['page-type'];\r\n var status;\r\n if (Adbayes.isNew) {\r\n status = \"new\";\r\n } else if (Adbayes.isCanonical) {\r\n status = \"canonical\";\r\n } else if(Adbayes.isOutdated) {\r\n status = \"outdated\";\r\n } else {\r\n status = \"set\";\r\n }\r\n _gaq.push(['nabble._trackEvent', 'adbayes-status', page + ':' + status, Adbayes.result]);\r\n });\r\n }\r\n };\r\n\r\n\r\n var Ads = {};\r\n\r\n Ads.styles = {\r\n widget: { cls: '', style: '' },\r\n blog_topic: { cls: 'shaded-bg-color rounded', style: 'padding:.5em;' },\r\n first_classic_message: { cls: '', style: 'text-align:left;' },\r\n last_classic_message: { cls: '', style: 'text-align:left;padding-top:1em;' },\r\n list_bottom: { cls: '', style: 'margin-top:1.5em;' },\r\n threaded_bottom: { cls: '', style: 'margin-top:1.5em;' },\r\n search_top: { cls: '', style: 'text-align:left;margin:1em 0;padding:.5em 0;' },\r\n search_bottom: { cls: '', style: 'text-align:left;padding:.5em 0;' },\r\n app_bottom: { cls: '', style: 'margin:2.5em auto;text-align:center;' },\r\n topic_bottom: { cls: '', style: '' }\r\n };\r\n\r\n Ads.NEW = function(location) {\r\n switch(location) {\r\n case 'blog_topic':\r\n case 'first_classic_message':\r\n case 'list_bottom':\r\n case 'threaded_bottom':\r\n case 'search_bottom':\r\n case 'app_bottom':\r\n }\r\n };\r\n\r\n Ads.NABBLE = function(location) {\r\n switch(location) {\r\n case 'blog_topic':\r\n case 'first_classic_message':\r\n case 'list_bottom':\r\n case 'threaded_bottom':\r\n case 'search_bottom':\r\n Nabble.showAd( location, function() {\r\n var imgName = '"
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 +(BANNER_IMG)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31 +"';\r\n var url = '"
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 +(BANNER_URL)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33 +"';\r\n _gaq.push(['nabble._trackEvent', 'banner', imgName]);\r\n document.write('<a href=\"'+url+'\" rel=\"nofollow\" style=\"display:block !important;visibility:visible !important;height:auto !important; width: auto !important;position:static !important;top:auto !important;left:auto !important\"><img src=\"http://static.nabble.com/images/'+imgName+'\" style=\"border:1px solid #bbb;display:inline !important;visibility:visible !important;height:auto !important;width:auto !important\"/></a>');\r\n } );\r\n }\r\n };\r\n\r\n Ads.AdSense = function(location) {\r\n switch(location) {\r\n case 'blog_topic':\r\n Nabble.showAd( location, function() {\r\n google_ad_slot = \"8807592501\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n Nabble._adsense();\r\n } );\r\n break;\r\n case 'first_classic_message':\r\n Nabble.showAd( location, function() {\r\n var fn = function() {\r\n google_ad_slot = \"8703015991\";\r\n google_ad_width = 336;\r\n google_ad_height = 280;\r\n Nabble._adsense();\r\n };\r\n document.writeln('<div style=\"width:336px; float:left; clear:none; display:block !important;\">');\r\n Nabble.writeFn(fn);\r\n document.writeln('</div>');\r\n document.writeln('<div style=\"width:336px; float:left; clear:none; display:block !important;\">');\r\n Nabble.writeFn(fn);\r\n document.writeln('</div>');\r\n }, \"width:675px !important;\" );\r\n break;\r\n case 'last_classic_message':\r\n Nabble.showAd( location, function() {\r\n google_ad_slot = \"8323336297\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n Nabble._adsense();\r\n } );\r\n break;\r\n case 'list_bottom':\r\n Nabble.showAd( location, function() {\r\n google_ad_slot = \"6508328921\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n Nabble._adsense();\r\n } );\r\n break;\r\n case 'threaded_bottom':\r\n Nabble.showAd( location, function() {\r\n google_ad_slot = \"8434893994\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n Nabble._adsense();\r\n } );\r\n break;\r\n case 'search_top':\r\n Nabble.AdsenseSearchAds();\r\n break;\r\n case 'search_bottom':\r\n Nabble.showAd( location, function() {\r\n google_ad_slot = \"0099567777\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n google_ad_type = \"image\";\r\n Nabble._adsense();\r\n } );\r\n break;\r\n case 'app_bottom':\r\n Nabble.showAd( location, function() {\r\n var fn = function() {\r\n google_ad_slot = \"1057993213\";\r\n google_ad_width = 728;\r\n google_ad_height = 90;\r\n Nabble._adsense();\r\n };\r\n Nabble.writeFn(fn);\r\n } );\r\n break;\r\n }\r\n };\r\n\r\n Ads.SAFE = function(location) {\r\n Ads.AdSense(location);\r\n };\r\n\r\n Ads.ST = function(location) {\r\n if (Nabble.currentCredits > 0 || Nabble.isPaid)\r\n return;\r\n window.has_st = true;\r\n };\r\n\r\n Ads.BAD = Ads.ST;\r\n Ads.UNSAFE = Ads.ST;\r\n\r\n Nabble.showAd = function(location,fn,style) {\r\n var customStyle = Ads.styles[location].style + (style == null?'':style);\r\n document.writeln('<div class=\"ad '+Ads.styles[location].cls+'\" style=\"display:block !important;visibility:visible !important;height:auto !important; width: auto !important;position:static !important;top:auto !important;left:auto !important;'+customStyle+'\">');\r\n fn();\r\n if (!Nabble.creditsForUsersOnly || Nabble.userId) {\r\n document.writeln('<div style=\"padding-top:.3em;font-size:90%;clear:both\"><a href=\"'+Nabble.removeAdsPath+'\">'+Ads.text.removeAds+'</a></div>');\r\n document.writeln('</div>');\r\n }\r\n };\r\n\r\n Nabble.AdsenseSearchAds = function() {\r\n if (nabble_search_query && nabble_search_query != '') {\r\n (function(G,o,O,g,L,e){G[g]=G[g]||function(){(G[g]['q']=G[g]['q']||[]).push(\r\n arguments)},G[g]['t']=1*new Date;L=o.createElement(O),e=o.getElementsByTagName(\r\n O)[0];L.async=1;L.src='//www.google.com/adsense/search/async-ads.js';\r\n e.parentNode.insertBefore(L,e)})(window,document,'script','_googCsa');\r\n\r\n document.writeln('<div id=\"ad1\" style=\"margin:0 0 1em -.3em\"></div>');\r\n var pageOptions = {\r\n 'pubId': 'pub-6703598369329977',\r\n 'query': nabble_search_query,\r\n 'hl': 'en'\r\n };\r\n var ad = Nabble._ad();\r\n var bg = '#'+Nabble._bgcolor(ad);\r\n var tc = '#'+Nabble._color('div.search-results-header','808080');\r\n var lc = '#'+Nabble._linkColor(ad);\r\n var adblock1 = {\r\n 'container': 'ad1',\r\n 'width': '100%',\r\n 'fontFamily': 'verdana',\r\n 'fontSizeTitle': 15,\r\n 'fontSizeDescription': 13,\r\n 'fontSizeDomainLink': 13,\r\n 'colorTitleLink': lc,\r\n 'colorText': tc,\r\n 'colorDomainLink': tc,\r\n 'colorBackground': bg,\r\n 'colorAdBorder': bg,\r\n 'colorBorder': bg\r\n };\r\n _googCsa('ads', pageOptions, adblock1);\r\n }\r\n };\r\n\r\n Nabble.writeFn = function(fn) {\r\n Nabble._fn = fn;\r\n document.writeln('<script type=\"text/javascript\">Nabble._fn()</script>');\r\n };\r\n\r\n\r\n Nabble._adwords = function() {\r\n google_conversion_id = 975361083;\r\n google_conversion_language = \"en\";\r\n google_conversion_format = \"3\";\r\n google_conversion_color = \"ffffff\";\r\n google_conversion_label = \"sfP9CM34nwgQu6iL0QM\";\r\n google_conversion_value = 10;\r\n google_remarketing_only = false;\r\n document.write('<script type=\"text/javascript\" src=\"//www.googleadservices.com/pagead/conversion.js\"></script>');\r\n };\r\n\r\n Nabble._adsense = function() {\r\n var ad = Nabble._ad();\r\n if( google_ad_width==728 && Nabble._narrowUnit(ad,728) ) {\r\n google_ad_slot = \"1143776366\";\r\n google_ad_width = 468;\r\n google_ad_height = 60;\r\n }\r\n var bg = Nabble._bgcolor(ad);\r\n google_color_border = bg;\r\n google_color_bg = bg;\r\n google_color_text = \"808080\";\r\n google_color_url = \"808080\";\r\n google_color_link = Nabble._linkColor(ad);\r\n google_ad_client = \"ca-pub-6703598369329977\";\r\n document.write('<script type=\"text/javascript\" src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\"></script>');\r\n var __ad = 'div'+ad.getAttribute('id').substring(2);\r\n $(ad).parent().addClass(__ad);\r\n document.write('<style type=\"text/css\">');\r\n document.write('.nabble .' + __ad + ' ins { display:inline-table !important; visibility: visible !important; height:' + google_ad_height + 'px !important; width: ' + google_ad_width + 'px !important; position:static !important;top:auto !important;left:auto !important; }');\r\n document.write('.nabble .' + __ad + ' ins ins iframe { display:block !important; visibility: visible !important; height:' + google_ad_height + 'px !important; width: ' + google_ad_width + 'px !important; position:static !important;top:auto !important;left:auto !important; }');\r\n document.write('</style>');\r\n };\r\n\r\n Nabble._ad = function() {\r\n var ad = \"ad\" + Math.round(Math.random() * 999999);\r\n document.writeln('<a id=\"'+ad+'\" href=\"#\" style=\"display:none\">.</a>');\r\n return Nabble.get(ad);\r\n };\r\n\r\n Nabble._bgcolor = function(ad) {\r\n var $elem = $(ad);\r\n var $parent = $elem;\r\n var bg;\r\n while ($parent.size() > 0) {\r\n try {\r\n bg = $parent.css('background-color');\r\n } catch(err) {\r\n $elem.addClass('shaded-bg-color');\r\n bg = $elem.css('background-color');\r\n break;\r\n }\r\n if (bg != 'transparent' && bg.indexOf('rgba') != 0)\r\n break;\r\n $parent = $parent.parent();\r\n }\r\n if (bg.charAt(0) == '#')\r\n return bg.substring(1);\r\n else if (bg.indexOf('rgb') == 0) {\r\n bg = bg.substring(4, bg.length-1);\r\n var rgb = bg.split(',');\r\n return Nabble._hexa(rgb[0]) + Nabble._hexa(rgb[1]) + Nabble._hexa(rgb[2]);\r\n }\r\n return bg;\r\n };\r\n\r\n Nabble._linkColor = function(ad) {\r\n var c = $(ad).css('color');\r\n if (c.charAt(0) == '#')\r\n return c.substring(1);\r\n else if (c.indexOf('rgb') == 0) {\r\n c = c.substring(4, c.length-1);\r\n var rgb = c.split(',');\r\n return Nabble._hexa(rgb[0]) + Nabble._hexa(rgb[1]) + Nabble._hexa(rgb[2]);\r\n }\r\n return 'EEEEEE';\r\n };\r\n\r\n Nabble._color = function(sel,def) {\r\n var c = $(sel).css('color');\r\n if (c.charAt(0) == '#')\r\n return c.substring(1);\r\n else if (c.indexOf('rgb') == 0) {\r\n c = c.substring(4, c.length-1);\r\n var rgb = c.split(',');\r\n return Nabble._hexa(rgb[0]) + Nabble._hexa(rgb[1]) + Nabble._hexa(rgb[2]);\r\n }\r\n return def;\r\n };\r\n\r\n Nabble._hexa = function(c) {\r\n var n = parseInt(c).toString(16);\r\n return n.length == 1? '0' + n : n;\r\n };\r\n\r\n Nabble._narrowUnit = function(ad,limit) {\r\n return $(ad).parent().width() < limit;\r\n };\r\n\r\n\r\n var b = function() {};\r\n\r\n "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 +(hackAds)
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 +"\r\n\r\n if(isB) b();\r\n "
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 ;
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39 private Javascript() {} // never
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 }
7ecd1a4ef557 add content
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41