├── .gitignore
├── .gitmodules
├── README.md
├── chrome-extension
├── README.md
└── Source
│ ├── content_script.js
│ ├── icon.png
│ ├── icon128.png
│ ├── icon16.png
│ ├── icon48.png
│ ├── icon64.png
│ ├── logo.png
│ ├── manifest.json
│ └── static
│ ├── FuckAdBlock
│ ├── .DS_Store
│ ├── .gitattributes
│ └── fuckadblock.js
│ ├── adblock-to-bitcoin.css
│ ├── bitcoinaddress.js
│ ├── .DS_Store
│ ├── .gitignore
│ ├── .node-inspectorrc
│ ├── .npmignore
│ ├── dist
│ │ ├── .DS_Store
│ │ └── demo.js
│ └── qrcode.js
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ └── fontawesome-webfont.woff2
│ ├── jquery.min.js
│ └── shared
│ ├── bootstrap.min.js
│ └── font-awesome.css
├── crossdomain.xml
├── demo.html
├── wordpress-plugin.zip
└── wordpress-plugin
├── README.md
├── adblock-to-bitcoin.php
├── helpers.php
├── readme.txt
├── screenshot-1.png
├── screenshot-2.png
├── screenshot-3.png
├── screenshot-4.png
├── settings.php
└── static
├── FuckAdBlock
├── .DS_Store
├── .gitattributes
└── fuckadblock.js
├── adblock-to-bitcoin.css
├── adblock-to-bitcoin.js
├── bitcoinaddress.js
├── .DS_Store
├── .gitignore
├── .node-inspectorrc
├── .npmignore
├── dist
│ ├── .DS_Store
│ └── demo.js
└── qrcode.js
├── demo.html
├── fonts
├── FontAwesome.otf
├── fontawesome-webfont.eot
├── fontawesome-webfont.svg
├── fontawesome-webfont.ttf
├── fontawesome-webfont.woff
└── fontawesome-webfont.woff2
└── shared
├── alwaysshow.js
├── bootstrap.min.js
└── font-awesome.css
/.gitignore:
--------------------------------------------------------------------------------
1 | sftp-config.json
2 | wordpress/sftp-config.json
3 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "bitcoinaddress.js"]
2 | path = bitcoinaddress.js
3 | url = https://github.com/miohtama/bitcoinaddress.js.git
4 | [submodule "FuckAdBlock"]
5 | path = FuckAdBlock
6 | url = https://github.com/sitexw/FuckAdBlock.git
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Updated 1/2/2016 - Install a2b directly on your browser with the a2b Chrome Extension](https://github.com/owocki/adblock-to-bitcoin/tree/master/chrome-extension)
2 |
3 | # [Updated 1/1/2016 - Install a2b directly from Wordpress Plugin Directory](https://wordpress.org/plugins/block-ads-to-bitcoin/)
4 |
5 | # Updated 12/19/2015 -- Wordpress Plugin Released
6 |
7 | # Updated 12/10/2015 -- Publishers Wanted
8 |
9 | # What
10 |
11 |
12 |
13 | A project that turns ads into bitcoin donation solicitations when adblockers are enabled. Turns
14 |
15 | # Install
16 |
17 | [Install directly from Wordpress Plugin Directory](https://wordpress.org/plugins/block-ads-to-bitcoin/)
18 |
19 | #### Example 1
20 |
21 |
22 |
23 | into
24 |
25 |
26 |
27 | #### Example 2
28 |
29 | into
30 |
31 | #### Example 3
32 |
33 | into
34 |
35 |
36 |
37 | ## Why
38 |
39 | Thesis of this project is that _publishers that have a *loyal* following might be able to get close to PPC unit economics with bitcoin donations_.
40 |
41 | While we are building relationships with publishers to test this thesis empirically, I've conducting a rather-unscientific poll suggesting that a small sample of users would be willing to pay for ad-free content, but not if they are forced:
42 |
43 |
44 |
45 | # Forked from
46 |
47 | Special thanks to these guys, who did much of the work and upon whom this project is based:
48 |
49 | * https://github.com/sitexw/FuckAdBlock
50 | * https://github.com/miohtama/bitcoinaddress.js
51 |
52 | # Try it
53 |
54 | On a mac:
55 |
56 | ```bash
57 |
58 | git clone git@github.com:owocki/adblock-to-bitcoin.git
59 | cd adblock-to-bitcoin
60 | git submodule init
61 | git submodule update
62 |
63 | ```
64 |
65 | #Demo
66 |
67 | Demo code is at [https://github.com/owocki/adblock-to-bitcoin/blob/master/demo.html](https://github.com/owocki/adblock-to-bitcoin/blob/master/demo.html) and live demo is at [http://experiments.owocki.com/adblock-to-bitcoin/demo.html](http://experiments.owocki.com/adblock-to-bitcoin/demo.html)
68 |
69 | ## Supported Browsers / Adblockers
70 |
71 | Demo code is tested with Adblock Plus and uBlock on Google Chrome on a Mac. Any other combinations, use at your own risk (and this is open source software, feel free to submit PRs).
72 |
73 | # How you can help
74 |
75 | * _Engineer?_ Can you help with cross-browser compatibility and bringing this project to multiple browsers?
76 | * _Publisher?_ Give adblock-to-bitcoin a try with our [Wordpress Plugin)(https://github.com/owocki/adblock-to-bitcoin/blob/master/wordpress-plugin)]
77 | * _Data Scientist?_ We need DATA! The thesis behind this project is brands that have a loyal following could test different suggested payments / different copy, and might be able to get close to PPC unit economics. [Contact me on twitter](http://twitter.com/owocki)]
78 | * _Bitcoin Enthusiast?_ Help us grow the universe of real-worlduse cases for BTC. If you see this tool on a website, donate.
79 | * _Media/Publishing Enthusiast?_ Help us migrate the publishing industry into the 21st century. Refer `adblock-to-bitcoin` and our [Wordpress Plugin)(https://github.com/owocki/adblock-to-bitcoin/blob/master/wordpress-plugin)] to a publisher-friend or write about the project .
80 |
81 | # Get in touch
82 |
83 | [Contact @owocki on twitter](http://twitter.com/owocki). If there is enough interest, I will set up a google group for the project.
84 |
85 | # Donate
86 |
87 | You can donate to the author at `1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE`. Suggested donation for use on your ad-supported site: *0.045 BTC*
88 |
89 |
90 |
91 |
92 |
93 |
--------------------------------------------------------------------------------
/chrome-extension/README.md:
--------------------------------------------------------------------------------
1 | # Noble Adblocker chrome extension
2 |
3 |
4 |
5 | # What
6 |
7 | An adblocker for Google Chrome that turns ads into bitcoin solicitations. This chrome extension (1) adblocks ads and (2) allows users to send bitcoin to publishers (at their discretion) in return for their content.
8 |
9 | Turns
10 |
11 | into
12 |
13 | and
14 |
15 | into
16 |
17 |
18 | # How
19 |
20 | We collect donations into [1Mfe1HsWidckKohULYniDmDN3aExsJeQpN](https://blockchain.info/address/1Mfe1HsWidckKohULYniDmDN3aExsJeQpN). Once a month, when the balance for any specific domain goes is above 0.01 BTC (about $4.50 at time of authorship), we send the balance to the publisher.
21 |
22 | In the future, this plugin will allow publishers to register their own BTC addressess and collect donations in real time.
23 |
--------------------------------------------------------------------------------
/chrome-extension/Source/content_script.js:
--------------------------------------------------------------------------------
1 | ad_ids = [ 'rhs_block', // google right hand side
2 | 'tads', // google top ads
3 | 'pagelet_ego_pane', //facebook right hand side
4 | 'ad', //google adsense
5 | ]
6 | ad_classes = [ 'ego_column', //facebook right hand side
7 | 'ego_unit_container', //facebook right hand side
8 | 'adfuel-rendered', //cnn, right hand side
9 | 'ad', //google adsense
10 | ]
11 | partial_ids=['google_ads_iframe_', //google ad
12 | ]
13 | partial_classes=['google_ads_iframe_', //google ad
14 | ]
15 |
16 | function render_bitcoin_solicitation(ele){
17 | if(ele.className.indexOf('a2b_me') > -1){
18 | return;
19 | }
20 | var width = ele.offsetWidth;
21 | var height = ele.offsetHeight;
22 | if(width < 100 || height< 100){
23 | ele.innerHTML = '';
24 | return;
25 | }
26 | if(document.adcount> 2){ //only display 3 bitcoin solicitations per page.
27 | ele.innerHTML = '';
28 | return;
29 | }
30 | document.adcount++;
31 |
32 | var bat = document.createElement("div");
33 | bat.innerHTML = '
';
74 | document.getElementsByTagName('body')[0].appendChild(bat);
75 |
76 | if(height<200){
77 | height = 200;
78 | }
79 | var padding_top="20px";
80 | if(height>330){
81 | padding_top=parseInt((height-330)/2)+"px";
82 | }
83 |
84 | var domain = document.domain.replace('www.','');
85 | var bitcoin_address = '1Mfe1HsWidckKohULYniDmDN3aExsJeQpN'; //todo -- give publishers the ability to register their domains for an address.
86 | var sol_class = '';
87 | var suggested_donation_amount = '0.50';
88 | ele.className = ele.className + ' a2b_me';
89 | ele.innerHTML = ' '+
90 | '
Hey there! You have an ad blocker enabled . '+domain+' is an ad-supported site. Would you consider giving a small donation to cover their servers, power, rent, staff, and protect their independence? Suggested donation $'+suggested_donation_amount+' .'+
91 | '
'+
92 | ' '+bitcoin_address+' '+
93 | '
'+
94 | '
';
95 |
96 | $('.bitcoin-address, .bitcoin-address-container').each(function(e){
97 | $(this).attr('data-bc-message',document.location);
98 | });
99 |
100 | }
101 |
102 | function blockIds(element, index, array){
103 | var ele = document.getElementById(element);
104 | if(!ele)
105 | return;
106 | render_bitcoin_solicitation(ele);
107 | }
108 | function blockClasses(element, index, array){
109 | var eles = document.getElementsByClassName(element);
110 | for (var i = 0; i < eles.length; i++) {
111 | var ele = eles[i];
112 | render_bitcoin_solicitation(ele);
113 | }
114 | }
115 |
116 | document.adcount = 0;
117 | function check_for_ads(){
118 | //whole classes
119 | ad_ids.forEach(blockIds);
120 | ad_classes.forEach(blockClasses);
121 |
122 | //partial ids
123 | for (var i = 0; i < partial_ids.length; i++) {
124 | partial_id = partial_ids[i]
125 | var eles = $('[id*="'+partial_id+'"]')
126 | for (var k = 0; k < eles.length; k++) {
127 | var ele = eles[k];
128 | render_bitcoin_solicitation(ele);
129 | }
130 | }
131 |
132 | //partial classes
133 | for (var i = 0; i < partial_classes.length; i++) {
134 | partial_class = partial_classes[i]
135 | var eles = $('[id*="'+partial_class+'"]')
136 | for (var k = 0; k < eles.length; k++) {
137 | var ele = eles[k];
138 | render_bitcoin_solicitation(ele);
139 | }
140 | }
141 | setTimeout(check_for_ads,1000);
142 | }
143 | check_for_ads();
144 |
145 |
146 |
--------------------------------------------------------------------------------
/chrome-extension/Source/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon.png
--------------------------------------------------------------------------------
/chrome-extension/Source/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon128.png
--------------------------------------------------------------------------------
/chrome-extension/Source/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon16.png
--------------------------------------------------------------------------------
/chrome-extension/Source/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon48.png
--------------------------------------------------------------------------------
/chrome-extension/Source/icon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/icon64.png
--------------------------------------------------------------------------------
/chrome-extension/Source/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/logo.png
--------------------------------------------------------------------------------
/chrome-extension/Source/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "manifest_version": 2,
3 | "name": "Noble AdBlocker",
4 | "version": "0.21",
5 | "description": "Noble AdBlocker is an ethcial ad blocker. This chrome extension (1) adblocks ads and (2) allows donate bitcoin to publishers.",
6 | "web_accessible_resources": [ "static/fonts/*", "static/fonts/fontawesome-webfont.woff" ],
7 | "icons": { "16": "icon16.png",
8 | "48": "icon48.png",
9 | "128": "icon128.png" },
10 | "content_scripts":
11 | [
12 | {
13 | "matches": ["*://*/*"],
14 | "js": ["static/jquery.min.js", "static/shared/bootstrap.min.js", "static/bitcoinaddress.js/dist/demo.js", "content_script.js"],
15 | "css": ["static/adblock-to-bitcoin.css", "static/shared/font-awesome.css"],
16 | "run_at": "document_end"
17 | }
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/chrome-extension/Source/static/FuckAdBlock/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/FuckAdBlock/.DS_Store
--------------------------------------------------------------------------------
/chrome-extension/Source/static/FuckAdBlock/.gitattributes:
--------------------------------------------------------------------------------
1 | test.html linguist-vendored
2 |
--------------------------------------------------------------------------------
/chrome-extension/Source/static/FuckAdBlock/fuckadblock.js:
--------------------------------------------------------------------------------
1 | /*
2 | * FuckAdBlock 3.2.0
3 | * Copyright (c) 2015 Valentin Allaire
4 | * Released under the MIT license
5 | * https://github.com/sitexw/FuckAdBlock
6 | */
7 |
8 | (function(window) {
9 | var FuckAdBlock = function(options) {
10 | this._options = {
11 | checkOnLoad: false,
12 | resetOnEnd: false,
13 | loopCheckTime: 50,
14 | loopMaxNumber: 5,
15 | baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links',
16 | baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;',
17 | debug: false
18 | };
19 | this._var = {
20 | version: '3.2.0',
21 | bait: null,
22 | checking: false,
23 | loop: null,
24 | loopNumber: 0,
25 | event: { detected: [], notDetected: [] }
26 | };
27 | if(options !== undefined) {
28 | this.setOption(options);
29 | }
30 | var self = this;
31 | var eventCallback = function() {
32 | setTimeout(function() {
33 | if(self._options.checkOnLoad === true) {
34 | if(self._options.debug === true) {
35 | self._log('onload->eventCallback', 'A check loading is launched');
36 | }
37 | if(self._var.bait === null) {
38 | self._creatBait();
39 | }
40 | setTimeout(function() {
41 | self.check();
42 | }, 1);
43 | }
44 | }, 1);
45 | };
46 | if(window.addEventListener !== undefined) {
47 | window.addEventListener('load', eventCallback, false);
48 | } else {
49 | window.attachEvent('onload', eventCallback);
50 | }
51 | };
52 | FuckAdBlock.prototype._options = null;
53 | FuckAdBlock.prototype._var = null;
54 | FuckAdBlock.prototype._bait = null;
55 |
56 | FuckAdBlock.prototype._log = function(method, message) {
57 | console.log('[FuckAdBlock]['+method+'] '+message);
58 | };
59 |
60 | FuckAdBlock.prototype.setOption = function(options, value) {
61 | if(value !== undefined) {
62 | var key = options;
63 | options = {};
64 | options[key] = value;
65 | }
66 | for(var option in options) {
67 | this._options[option] = options[option];
68 | if(this._options.debug === true) {
69 | this._log('setOption', 'The option "'+option+'" he was assigned to "'+options[option]+'"');
70 | }
71 | }
72 | return this;
73 | };
74 |
75 | FuckAdBlock.prototype._creatBait = function() {
76 | var bait = document.createElement('div');
77 | bait.setAttribute('class', this._options.baitClass);
78 | bait.setAttribute('style', this._options.baitStyle);
79 | this._var.bait = window.document.body.appendChild(bait);
80 |
81 | this._var.bait.offsetParent;
82 | this._var.bait.offsetHeight;
83 | this._var.bait.offsetLeft;
84 | this._var.bait.offsetTop;
85 | this._var.bait.offsetWidth;
86 | this._var.bait.clientHeight;
87 | this._var.bait.clientWidth;
88 |
89 | if(this._options.debug === true) {
90 | this._log('_creatBait', 'Bait has been created');
91 | }
92 | };
93 | FuckAdBlock.prototype._destroyBait = function() {
94 | window.document.body.removeChild(this._var.bait);
95 | this._var.bait = null;
96 |
97 | if(this._options.debug === true) {
98 | this._log('_destroyBait', 'Bait has been removed');
99 | }
100 | };
101 |
102 | FuckAdBlock.prototype.check = function(loop) {
103 | if(loop === undefined) {
104 | loop = true;
105 | }
106 |
107 | if(this._options.debug === true) {
108 | this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop');
109 | }
110 |
111 | if(this._var.checking === true) {
112 | if(this._options.debug === true) {
113 | this._log('check', 'A check was canceled because there is already an ongoing');
114 | }
115 | return false;
116 | }
117 | this._var.checking = true;
118 |
119 | if(this._var.bait === null) {
120 | this._creatBait();
121 | }
122 |
123 | var self = this;
124 | this._var.loopNumber = 0;
125 | if(loop === true) {
126 | this._var.loop = setInterval(function() {
127 | self._checkBait(loop);
128 | }, this._options.loopCheckTime);
129 | }
130 | setTimeout(function() {
131 | self._checkBait(loop);
132 | }, 1);
133 | if(this._options.debug === true) {
134 | this._log('check', 'A check is in progress ...');
135 | }
136 |
137 | return true;
138 | };
139 | FuckAdBlock.prototype._checkBait = function(loop) {
140 | var detected = false;
141 |
142 | if(this._var.bait === null) {
143 | this._creatBait();
144 | }
145 |
146 | if(window.document.body.getAttribute('abp') !== null
147 | || this._var.bait.offsetParent === null
148 | || this._var.bait.offsetHeight == 0
149 | || this._var.bait.offsetLeft == 0
150 | || this._var.bait.offsetTop == 0
151 | || this._var.bait.offsetWidth == 0
152 | || this._var.bait.clientHeight == 0
153 | || this._var.bait.clientWidth == 0) {
154 | detected = true;
155 | }
156 | if(window.getComputedStyle !== undefined) {
157 | var baitTemp = window.getComputedStyle(this._var.bait, null);
158 | if(baitTemp.getPropertyValue('display') == 'none'
159 | || baitTemp.getPropertyValue('visibility') == 'hidden') {
160 | detected = true;
161 | }
162 | }
163 |
164 | if(this._options.debug === true) {
165 | this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative'));
166 | }
167 |
168 | if(loop === true) {
169 | this._var.loopNumber++;
170 | if(this._var.loopNumber >= this._options.loopMaxNumber) {
171 | this._stopLoop();
172 | }
173 | }
174 |
175 | if(detected === true) {
176 | this._stopLoop();
177 | this._destroyBait();
178 | this.emitEvent(true);
179 | if(loop === true) {
180 | this._var.checking = false;
181 | }
182 | } else if(this._var.loop === null || loop === false) {
183 | this._destroyBait();
184 | this.emitEvent(false);
185 | if(loop === true) {
186 | this._var.checking = false;
187 | }
188 | }
189 | };
190 | FuckAdBlock.prototype._stopLoop = function(detected) {
191 | clearInterval(this._var.loop);
192 | this._var.loop = null;
193 | this._var.loopNumber = 0;
194 |
195 | if(this._options.debug === true) {
196 | this._log('_stopLoop', 'A loop has been stopped');
197 | }
198 | };
199 |
200 | FuckAdBlock.prototype.emitEvent = function(detected) {
201 | if(this._options.debug === true) {
202 | this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called');
203 | }
204 |
205 | var fns = this._var.event[(detected===true?'detected':'notDetected')];
206 | for(var i in fns) {
207 | if(this._options.debug === true) {
208 | this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length);
209 | }
210 | if(fns.hasOwnProperty(i)) {
211 | fns[i]();
212 | }
213 | }
214 | if(this._options.resetOnEnd === true) {
215 | this.clearEvent();
216 | }
217 | return this;
218 | };
219 | FuckAdBlock.prototype.clearEvent = function() {
220 | this._var.event.detected = [];
221 | this._var.event.notDetected = [];
222 |
223 | if(this._options.debug === true) {
224 | this._log('clearEvent', 'The event list has been cleared');
225 | }
226 | };
227 |
228 | FuckAdBlock.prototype.on = function(detected, fn) {
229 | this._var.event[(detected===true?'detected':'notDetected')].push(fn);
230 | if(this._options.debug === true) {
231 | this._log('on', 'A type of event "'+(detected===true?'detected':'notDetected')+'" was added');
232 | }
233 |
234 | return this;
235 | };
236 | FuckAdBlock.prototype.onDetected = function(fn) {
237 | return this.on(true, fn);
238 | };
239 | FuckAdBlock.prototype.onNotDetected = function(fn) {
240 | return this.on(false, fn);
241 | };
242 |
243 | window.FuckAdBlock = FuckAdBlock;
244 |
245 | if(window.fuckAdBlock === undefined) {
246 | window.fuckAdBlock = new FuckAdBlock({
247 | checkOnLoad: true,
248 | resetOnEnd: true
249 | });
250 | }
251 | })(window);
252 |
--------------------------------------------------------------------------------
/chrome-extension/Source/static/adblock-to-bitcoin.css:
--------------------------------------------------------------------------------
1 |
2 | /* http://davidwalsh.name/html5-hidden */
3 | *[hidden] { display: none; }
4 |
5 | /* Action hints are slidedowns, hidden by default */
6 | .bitcoin-action-hint {
7 | display: none;
8 | }
9 |
10 | /* Show dashed underlining so people get a hint it's clickable */
11 | .bitcoin-address-container .bitcoin-address {
12 | border-bottom: 1px dashed gray;
13 | cursor: pointer;
14 | }
15 |
16 | /* Center QR code image */
17 | .bitcoin-address-qr-container > img,
18 | .bitcoin-address-qr-container > canvas {
19 | margin: 0 auto;
20 | max-width: 200px;
21 | }
22 |
23 | /* bitcoinprices.js - for bitcoinprices, donation nominated in USD */
24 | .clickable-price {
25 | cursor: pointer;
26 | border-bottom: 1px #888 dashed;
27 | }
28 |
29 | /* Demo page splash styling */
30 | #bitcoin-icon {
31 | font-size: 128px;
32 | color: #F7931A;
33 | }
34 |
35 | #bitcoin-icon .fa-circle {
36 | text-shadow: 0 3px 3px rgba(32, 32, 32, 0.3);
37 | }
38 | .example-row {
39 | margin: 30px 0;
40 | }
41 |
42 | .example-heading {
43 | color: #357ebd;
44 | }
45 |
46 | /* adblock-to-bitcoin sizes */
47 | .ad_container {
48 |
49 | }
50 | .bitcoin_solicitation{
51 | background-color: #fafafa;
52 | padding: 10px;
53 | word-wrap: break-word;
54 | text-align: center;
55 | overflow-y: scroll;
56 | }
57 | .bitcoin_solicitation span.hidden{
58 | display: none !important;
59 | }
60 |
61 | .bitcoin_solicitation a{
62 | color: #428bca;
63 | text-decoration: none
64 | }
65 |
66 | .bitcoin_solicitation .poweredby{
67 | font-size: 70%;
68 | margin-top: 5px;
69 | }
70 |
71 |
72 | .bitcoin_solicitation.adblock_enabled{
73 | display:block;
74 | background-color: #f5f5f5;
75 | border: 1px solid #e3e3e3;
76 | border-radius: 4px;
77 | padding: 6px;
78 | text-align:center;
79 | }
80 | .bitcoin_solicitation.leaderboard,{
81 | width: 728px;
82 | height: 90px;
83 | }
84 | .bitcoin_solicitation.large-rectangle{
85 | padding-top: 10% ;
86 | padding-bottom: 10% ;
87 | width: 336px;
88 | height: 280px;
89 | }
90 | .bitcoin_solicitation.mobile-banner{
91 | width: 320px;
92 | height: 100px;
93 | font-size: 75%;
94 | }
95 | .bitcoin_solicitation.mobile-banner .bitcoin-address-action{
96 | display: none;
97 | }
98 | .bitcoin_solicitation.large-skyscraper{
99 | padding-top: 20% ;
100 | padding-bottom: 20% ;
101 | width: 300px;
102 | height: 600px;
103 | }
104 | .sitename, .smallbitcoin{
105 | font-style: italic;
106 | }
107 |
--------------------------------------------------------------------------------
/chrome-extension/Source/static/bitcoinaddress.js/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/bitcoinaddress.js/.DS_Store
--------------------------------------------------------------------------------
/chrome-extension/Source/static/bitcoinaddress.js/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm-debug.log
--------------------------------------------------------------------------------
/chrome-extension/Source/static/bitcoinaddress.js/.node-inspectorrc:
--------------------------------------------------------------------------------
1 | {
2 | "save-live-edit": true
3 | }
--------------------------------------------------------------------------------
/chrome-extension/Source/static/bitcoinaddress.js/.npmignore:
--------------------------------------------------------------------------------
1 | dist
--------------------------------------------------------------------------------
/chrome-extension/Source/static/bitcoinaddress.js/dist/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/bitcoinaddress.js/dist/.DS_Store
--------------------------------------------------------------------------------
/chrome-extension/Source/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/chrome-extension/Source/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/chrome-extension/Source/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/chrome-extension/Source/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/chrome-extension/Source/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/chrome-extension/Source/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/chrome-extension/Source/static/shared/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.3 (http://getbootstrap.com)
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | */
6 |
7 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i ').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
--------------------------------------------------------------------------------
/chrome-extension/Source/static/shared/font-awesome.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 | /* FONT PATH
6 | * -------------------------- */
7 | @font-face {
8 | font-family: 'FontAwesome';
9 | src: url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.eot');
10 | src: url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.woff') format('woff'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.ttf') format('truetype'), url('chrome-extension://__MSG_@@extension_id__/static/fonts/fontawesome-webfont.svg#fontawesomeregular') format('svg');
11 | font-weight: normal;
12 | font-style: normal;
13 | }
14 | .fa {
15 | display: inline-block;
16 | font-family: FontAwesome;
17 | font-style: normal;
18 | font-weight: normal;
19 | line-height: 1;
20 | -webkit-font-smoothing: antialiased;
21 | -moz-osx-font-smoothing: grayscale;
22 | }
23 | /* makes the font 33% larger relative to the icon container */
24 | .fa-lg {
25 | font-size: 1.3333333333333333em;
26 | line-height: 0.75em;
27 | vertical-align: -15%;
28 | }
29 | .fa-2x {
30 | font-size: 2em;
31 | }
32 | .fa-3x {
33 | font-size: 3em;
34 | }
35 | .fa-4x {
36 | font-size: 4em;
37 | }
38 | .fa-5x {
39 | font-size: 5em;
40 | }
41 | .fa-fw {
42 | width: 1.2857142857142858em;
43 | text-align: center;
44 | }
45 | .fa-ul {
46 | padding-left: 0;
47 | margin-left: 2.142857142857143em;
48 | list-style-type: none;
49 | }
50 | .fa-ul > li {
51 | position: relative;
52 | }
53 | .fa-li {
54 | position: absolute;
55 | left: -2.142857142857143em;
56 | width: 2.142857142857143em;
57 | top: 0.14285714285714285em;
58 | text-align: center;
59 | }
60 | .fa-li.fa-lg {
61 | left: -1.8571428571428572em;
62 | }
63 | .fa-border {
64 | padding: .2em .25em .15em;
65 | border: solid 0.08em #eeeeee;
66 | border-radius: .1em;
67 | }
68 | .pull-right {
69 | float: right;
70 | }
71 | .pull-left {
72 | float: left;
73 | }
74 | .fa.pull-left {
75 | margin-right: .3em;
76 | }
77 | .fa.pull-right {
78 | margin-left: .3em;
79 | }
80 | .fa-spin {
81 | -webkit-animation: spin 2s infinite linear;
82 | -moz-animation: spin 2s infinite linear;
83 | -o-animation: spin 2s infinite linear;
84 | animation: spin 2s infinite linear;
85 | }
86 | @-moz-keyframes spin {
87 | 0% {
88 | -moz-transform: rotate(0deg);
89 | }
90 | 100% {
91 | -moz-transform: rotate(359deg);
92 | }
93 | }
94 | @-webkit-keyframes spin {
95 | 0% {
96 | -webkit-transform: rotate(0deg);
97 | }
98 | 100% {
99 | -webkit-transform: rotate(359deg);
100 | }
101 | }
102 | @-o-keyframes spin {
103 | 0% {
104 | -o-transform: rotate(0deg);
105 | }
106 | 100% {
107 | -o-transform: rotate(359deg);
108 | }
109 | }
110 | @-ms-keyframes spin {
111 | 0% {
112 | -ms-transform: rotate(0deg);
113 | }
114 | 100% {
115 | -ms-transform: rotate(359deg);
116 | }
117 | }
118 | @keyframes spin {
119 | 0% {
120 | transform: rotate(0deg);
121 | }
122 | 100% {
123 | transform: rotate(359deg);
124 | }
125 | }
126 | .fa-rotate-90 {
127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
128 | -webkit-transform: rotate(90deg);
129 | -moz-transform: rotate(90deg);
130 | -ms-transform: rotate(90deg);
131 | -o-transform: rotate(90deg);
132 | transform: rotate(90deg);
133 | }
134 | .fa-rotate-180 {
135 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
136 | -webkit-transform: rotate(180deg);
137 | -moz-transform: rotate(180deg);
138 | -ms-transform: rotate(180deg);
139 | -o-transform: rotate(180deg);
140 | transform: rotate(180deg);
141 | }
142 | .fa-rotate-270 {
143 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
144 | -webkit-transform: rotate(270deg);
145 | -moz-transform: rotate(270deg);
146 | -ms-transform: rotate(270deg);
147 | -o-transform: rotate(270deg);
148 | transform: rotate(270deg);
149 | }
150 | .fa-flip-horizontal {
151 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
152 | -webkit-transform: scale(-1, 1);
153 | -moz-transform: scale(-1, 1);
154 | -ms-transform: scale(-1, 1);
155 | -o-transform: scale(-1, 1);
156 | transform: scale(-1, 1);
157 | }
158 | .fa-flip-vertical {
159 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
160 | -webkit-transform: scale(1, -1);
161 | -moz-transform: scale(1, -1);
162 | -ms-transform: scale(1, -1);
163 | -o-transform: scale(1, -1);
164 | transform: scale(1, -1);
165 | }
166 | .fa-stack {
167 | position: relative;
168 | display: inline-block;
169 | width: 2em;
170 | height: 2em;
171 | line-height: 2em;
172 | vertical-align: middle;
173 | }
174 | .fa-stack-1x,
175 | .fa-stack-2x {
176 | position: absolute;
177 | left: 0;
178 | width: 100%;
179 | text-align: center;
180 | }
181 | .fa-stack-1x {
182 | line-height: inherit;
183 | }
184 | .fa-stack-2x {
185 | font-size: 2em;
186 | }
187 | .fa-inverse {
188 | color: #ffffff;
189 | }
190 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
191 | readers do not read off random characters that represent icons */
192 | .fa-glass:before {
193 | content: "\f000";
194 | }
195 | .fa-music:before {
196 | content: "\f001";
197 | }
198 | .fa-search:before {
199 | content: "\f002";
200 | }
201 | .fa-envelope-o:before {
202 | content: "\f003";
203 | }
204 | .fa-heart:before {
205 | content: "\f004";
206 | }
207 | .fa-star:before {
208 | content: "\f005";
209 | }
210 | .fa-star-o:before {
211 | content: "\f006";
212 | }
213 | .fa-user:before {
214 | content: "\f007";
215 | }
216 | .fa-film:before {
217 | content: "\f008";
218 | }
219 | .fa-th-large:before {
220 | content: "\f009";
221 | }
222 | .fa-th:before {
223 | content: "\f00a";
224 | }
225 | .fa-th-list:before {
226 | content: "\f00b";
227 | }
228 | .fa-check:before {
229 | content: "\f00c";
230 | }
231 | .fa-times:before {
232 | content: "\f00d";
233 | }
234 | .fa-search-plus:before {
235 | content: "\f00e";
236 | }
237 | .fa-search-minus:before {
238 | content: "\f010";
239 | }
240 | .fa-power-off:before {
241 | content: "\f011";
242 | }
243 | .fa-signal:before {
244 | content: "\f012";
245 | }
246 | .fa-gear:before,
247 | .fa-cog:before {
248 | content: "\f013";
249 | }
250 | .fa-trash-o:before {
251 | content: "\f014";
252 | }
253 | .fa-home:before {
254 | content: "\f015";
255 | }
256 | .fa-file-o:before {
257 | content: "\f016";
258 | }
259 | .fa-clock-o:before {
260 | content: "\f017";
261 | }
262 | .fa-road:before {
263 | content: "\f018";
264 | }
265 | .fa-download:before {
266 | content: "\f019";
267 | }
268 | .fa-arrow-circle-o-down:before {
269 | content: "\f01a";
270 | }
271 | .fa-arrow-circle-o-up:before {
272 | content: "\f01b";
273 | }
274 | .fa-inbox:before {
275 | content: "\f01c";
276 | }
277 | .fa-play-circle-o:before {
278 | content: "\f01d";
279 | }
280 | .fa-rotate-right:before,
281 | .fa-repeat:before {
282 | content: "\f01e";
283 | }
284 | .fa-refresh:before {
285 | content: "\f021";
286 | }
287 | .fa-list-alt:before {
288 | content: "\f022";
289 | }
290 | .fa-lock:before {
291 | content: "\f023";
292 | }
293 | .fa-flag:before {
294 | content: "\f024";
295 | }
296 | .fa-headphones:before {
297 | content: "\f025";
298 | }
299 | .fa-volume-off:before {
300 | content: "\f026";
301 | }
302 | .fa-volume-down:before {
303 | content: "\f027";
304 | }
305 | .fa-volume-up:before {
306 | content: "\f028";
307 | }
308 | .fa-qrcode:before {
309 | content: "\f029";
310 | }
311 | .fa-barcode:before {
312 | content: "\f02a";
313 | }
314 | .fa-tag:before {
315 | content: "\f02b";
316 | }
317 | .fa-tags:before {
318 | content: "\f02c";
319 | }
320 | .fa-book:before {
321 | content: "\f02d";
322 | }
323 | .fa-bookmark:before {
324 | content: "\f02e";
325 | }
326 | .fa-print:before {
327 | content: "\f02f";
328 | }
329 | .fa-camera:before {
330 | content: "\f030";
331 | }
332 | .fa-font:before {
333 | content: "\f031";
334 | }
335 | .fa-bold:before {
336 | content: "\f032";
337 | }
338 | .fa-italic:before {
339 | content: "\f033";
340 | }
341 | .fa-text-height:before {
342 | content: "\f034";
343 | }
344 | .fa-text-width:before {
345 | content: "\f035";
346 | }
347 | .fa-align-left:before {
348 | content: "\f036";
349 | }
350 | .fa-align-center:before {
351 | content: "\f037";
352 | }
353 | .fa-align-right:before {
354 | content: "\f038";
355 | }
356 | .fa-align-justify:before {
357 | content: "\f039";
358 | }
359 | .fa-list:before {
360 | content: "\f03a";
361 | }
362 | .fa-dedent:before,
363 | .fa-outdent:before {
364 | content: "\f03b";
365 | }
366 | .fa-indent:before {
367 | content: "\f03c";
368 | }
369 | .fa-video-camera:before {
370 | content: "\f03d";
371 | }
372 | .fa-picture-o:before {
373 | content: "\f03e";
374 | }
375 | .fa-pencil:before {
376 | content: "\f040";
377 | }
378 | .fa-map-marker:before {
379 | content: "\f041";
380 | }
381 | .fa-adjust:before {
382 | content: "\f042";
383 | }
384 | .fa-tint:before {
385 | content: "\f043";
386 | }
387 | .fa-edit:before,
388 | .fa-pencil-square-o:before {
389 | content: "\f044";
390 | }
391 | .fa-share-square-o:before {
392 | content: "\f045";
393 | }
394 | .fa-check-square-o:before {
395 | content: "\f046";
396 | }
397 | .fa-arrows:before {
398 | content: "\f047";
399 | }
400 | .fa-step-backward:before {
401 | content: "\f048";
402 | }
403 | .fa-fast-backward:before {
404 | content: "\f049";
405 | }
406 | .fa-backward:before {
407 | content: "\f04a";
408 | }
409 | .fa-play:before {
410 | content: "\f04b";
411 | }
412 | .fa-pause:before {
413 | content: "\f04c";
414 | }
415 | .fa-stop:before {
416 | content: "\f04d";
417 | }
418 | .fa-forward:before {
419 | content: "\f04e";
420 | }
421 | .fa-fast-forward:before {
422 | content: "\f050";
423 | }
424 | .fa-step-forward:before {
425 | content: "\f051";
426 | }
427 | .fa-eject:before {
428 | content: "\f052";
429 | }
430 | .fa-chevron-left:before {
431 | content: "\f053";
432 | }
433 | .fa-chevron-right:before {
434 | content: "\f054";
435 | }
436 | .fa-plus-circle:before {
437 | content: "\f055";
438 | }
439 | .fa-minus-circle:before {
440 | content: "\f056";
441 | }
442 | .fa-times-circle:before {
443 | content: "\f057";
444 | }
445 | .fa-check-circle:before {
446 | content: "\f058";
447 | }
448 | .fa-question-circle:before {
449 | content: "\f059";
450 | }
451 | .fa-info-circle:before {
452 | content: "\f05a";
453 | }
454 | .fa-crosshairs:before {
455 | content: "\f05b";
456 | }
457 | .fa-times-circle-o:before {
458 | content: "\f05c";
459 | }
460 | .fa-check-circle-o:before {
461 | content: "\f05d";
462 | }
463 | .fa-ban:before {
464 | content: "\f05e";
465 | }
466 | .fa-arrow-left:before {
467 | content: "\f060";
468 | }
469 | .fa-arrow-right:before {
470 | content: "\f061";
471 | }
472 | .fa-arrow-up:before {
473 | content: "\f062";
474 | }
475 | .fa-arrow-down:before {
476 | content: "\f063";
477 | }
478 | .fa-mail-forward:before,
479 | .fa-share:before {
480 | content: "\f064";
481 | }
482 | .fa-expand:before {
483 | content: "\f065";
484 | }
485 | .fa-compress:before {
486 | content: "\f066";
487 | }
488 | .fa-plus:before {
489 | content: "\f067";
490 | }
491 | .fa-minus:before {
492 | content: "\f068";
493 | }
494 | .fa-asterisk:before {
495 | content: "\f069";
496 | }
497 | .fa-exclamation-circle:before {
498 | content: "\f06a";
499 | }
500 | .fa-gift:before {
501 | content: "\f06b";
502 | }
503 | .fa-leaf:before {
504 | content: "\f06c";
505 | }
506 | .fa-fire:before {
507 | content: "\f06d";
508 | }
509 | .fa-eye:before {
510 | content: "\f06e";
511 | }
512 | .fa-eye-slash:before {
513 | content: "\f070";
514 | }
515 | .fa-warning:before,
516 | .fa-exclamation-triangle:before {
517 | content: "\f071";
518 | }
519 | .fa-plane:before {
520 | content: "\f072";
521 | }
522 | .fa-calendar:before {
523 | content: "\f073";
524 | }
525 | .fa-random:before {
526 | content: "\f074";
527 | }
528 | .fa-comment:before {
529 | content: "\f075";
530 | }
531 | .fa-magnet:before {
532 | content: "\f076";
533 | }
534 | .fa-chevron-up:before {
535 | content: "\f077";
536 | }
537 | .fa-chevron-down:before {
538 | content: "\f078";
539 | }
540 | .fa-retweet:before {
541 | content: "\f079";
542 | }
543 | .fa-shopping-cart:before {
544 | content: "\f07a";
545 | }
546 | .fa-folder:before {
547 | content: "\f07b";
548 | }
549 | .fa-folder-open:before {
550 | content: "\f07c";
551 | }
552 | .fa-arrows-v:before {
553 | content: "\f07d";
554 | }
555 | .fa-arrows-h:before {
556 | content: "\f07e";
557 | }
558 | .fa-bar-chart-o:before {
559 | content: "\f080";
560 | }
561 | .fa-twitter-square:before {
562 | content: "\f081";
563 | }
564 | .fa-facebook-square:before {
565 | content: "\f082";
566 | }
567 | .fa-camera-retro:before {
568 | content: "\f083";
569 | }
570 | .fa-key:before {
571 | content: "\f084";
572 | }
573 | .fa-gears:before,
574 | .fa-cogs:before {
575 | content: "\f085";
576 | }
577 | .fa-comments:before {
578 | content: "\f086";
579 | }
580 | .fa-thumbs-o-up:before {
581 | content: "\f087";
582 | }
583 | .fa-thumbs-o-down:before {
584 | content: "\f088";
585 | }
586 | .fa-star-half:before {
587 | content: "\f089";
588 | }
589 | .fa-heart-o:before {
590 | content: "\f08a";
591 | }
592 | .fa-sign-out:before {
593 | content: "\f08b";
594 | }
595 | .fa-linkedin-square:before {
596 | content: "\f08c";
597 | }
598 | .fa-thumb-tack:before {
599 | content: "\f08d";
600 | }
601 | .fa-external-link:before {
602 | content: "\f08e";
603 | }
604 | .fa-sign-in:before {
605 | content: "\f090";
606 | }
607 | .fa-trophy:before {
608 | content: "\f091";
609 | }
610 | .fa-github-square:before {
611 | content: "\f092";
612 | }
613 | .fa-upload:before {
614 | content: "\f093";
615 | }
616 | .fa-lemon-o:before {
617 | content: "\f094";
618 | }
619 | .fa-phone:before {
620 | content: "\f095";
621 | }
622 | .fa-square-o:before {
623 | content: "\f096";
624 | }
625 | .fa-bookmark-o:before {
626 | content: "\f097";
627 | }
628 | .fa-phone-square:before {
629 | content: "\f098";
630 | }
631 | .fa-twitter:before {
632 | content: "\f099";
633 | }
634 | .fa-facebook:before {
635 | content: "\f09a";
636 | }
637 | .fa-github:before {
638 | content: "\f09b";
639 | }
640 | .fa-unlock:before {
641 | content: "\f09c";
642 | }
643 | .fa-credit-card:before {
644 | content: "\f09d";
645 | }
646 | .fa-rss:before {
647 | content: "\f09e";
648 | }
649 | .fa-hdd-o:before {
650 | content: "\f0a0";
651 | }
652 | .fa-bullhorn:before {
653 | content: "\f0a1";
654 | }
655 | .fa-bell:before {
656 | content: "\f0f3";
657 | }
658 | .fa-certificate:before {
659 | content: "\f0a3";
660 | }
661 | .fa-hand-o-right:before {
662 | content: "\f0a4";
663 | }
664 | .fa-hand-o-left:before {
665 | content: "\f0a5";
666 | }
667 | .fa-hand-o-up:before {
668 | content: "\f0a6";
669 | }
670 | .fa-hand-o-down:before {
671 | content: "\f0a7";
672 | }
673 | .fa-arrow-circle-left:before {
674 | content: "\f0a8";
675 | }
676 | .fa-arrow-circle-right:before {
677 | content: "\f0a9";
678 | }
679 | .fa-arrow-circle-up:before {
680 | content: "\f0aa";
681 | }
682 | .fa-arrow-circle-down:before {
683 | content: "\f0ab";
684 | }
685 | .fa-globe:before {
686 | content: "\f0ac";
687 | }
688 | .fa-wrench:before {
689 | content: "\f0ad";
690 | }
691 | .fa-tasks:before {
692 | content: "\f0ae";
693 | }
694 | .fa-filter:before {
695 | content: "\f0b0";
696 | }
697 | .fa-briefcase:before {
698 | content: "\f0b1";
699 | }
700 | .fa-arrows-alt:before {
701 | content: "\f0b2";
702 | }
703 | .fa-group:before,
704 | .fa-users:before {
705 | content: "\f0c0";
706 | }
707 | .fa-chain:before,
708 | .fa-link:before {
709 | content: "\f0c1";
710 | }
711 | .fa-cloud:before {
712 | content: "\f0c2";
713 | }
714 | .fa-flask:before {
715 | content: "\f0c3";
716 | }
717 | .fa-cut:before,
718 | .fa-scissors:before {
719 | content: "\f0c4";
720 | }
721 | .fa-copy:before,
722 | .fa-files-o:before {
723 | content: "\f0c5";
724 | }
725 | .fa-paperclip:before {
726 | content: "\f0c6";
727 | }
728 | .fa-save:before,
729 | .fa-floppy-o:before {
730 | content: "\f0c7";
731 | }
732 | .fa-square:before {
733 | content: "\f0c8";
734 | }
735 | .fa-bars:before {
736 | content: "\f0c9";
737 | }
738 | .fa-list-ul:before {
739 | content: "\f0ca";
740 | }
741 | .fa-list-ol:before {
742 | content: "\f0cb";
743 | }
744 | .fa-strikethrough:before {
745 | content: "\f0cc";
746 | }
747 | .fa-underline:before {
748 | content: "\f0cd";
749 | }
750 | .fa-table:before {
751 | content: "\f0ce";
752 | }
753 | .fa-magic:before {
754 | content: "\f0d0";
755 | }
756 | .fa-truck:before {
757 | content: "\f0d1";
758 | }
759 | .fa-pinterest:before {
760 | content: "\f0d2";
761 | }
762 | .fa-pinterest-square:before {
763 | content: "\f0d3";
764 | }
765 | .fa-google-plus-square:before {
766 | content: "\f0d4";
767 | }
768 | .fa-google-plus:before {
769 | content: "\f0d5";
770 | }
771 | .fa-money:before {
772 | content: "\f0d6";
773 | }
774 | .fa-caret-down:before {
775 | content: "\f0d7";
776 | }
777 | .fa-caret-up:before {
778 | content: "\f0d8";
779 | }
780 | .fa-caret-left:before {
781 | content: "\f0d9";
782 | }
783 | .fa-caret-right:before {
784 | content: "\f0da";
785 | }
786 | .fa-columns:before {
787 | content: "\f0db";
788 | }
789 | .fa-unsorted:before,
790 | .fa-sort:before {
791 | content: "\f0dc";
792 | }
793 | .fa-sort-down:before,
794 | .fa-sort-asc:before {
795 | content: "\f0dd";
796 | }
797 | .fa-sort-up:before,
798 | .fa-sort-desc:before {
799 | content: "\f0de";
800 | }
801 | .fa-envelope:before {
802 | content: "\f0e0";
803 | }
804 | .fa-linkedin:before {
805 | content: "\f0e1";
806 | }
807 | .fa-rotate-left:before,
808 | .fa-undo:before {
809 | content: "\f0e2";
810 | }
811 | .fa-legal:before,
812 | .fa-gavel:before {
813 | content: "\f0e3";
814 | }
815 | .fa-dashboard:before,
816 | .fa-tachometer:before {
817 | content: "\f0e4";
818 | }
819 | .fa-comment-o:before {
820 | content: "\f0e5";
821 | }
822 | .fa-comments-o:before {
823 | content: "\f0e6";
824 | }
825 | .fa-flash:before,
826 | .fa-bolt:before {
827 | content: "\f0e7";
828 | }
829 | .fa-sitemap:before {
830 | content: "\f0e8";
831 | }
832 | .fa-umbrella:before {
833 | content: "\f0e9";
834 | }
835 | .fa-paste:before,
836 | .fa-clipboard:before {
837 | content: "\f0ea";
838 | }
839 | .fa-lightbulb-o:before {
840 | content: "\f0eb";
841 | }
842 | .fa-exchange:before {
843 | content: "\f0ec";
844 | }
845 | .fa-cloud-download:before {
846 | content: "\f0ed";
847 | }
848 | .fa-cloud-upload:before {
849 | content: "\f0ee";
850 | }
851 | .fa-user-md:before {
852 | content: "\f0f0";
853 | }
854 | .fa-stethoscope:before {
855 | content: "\f0f1";
856 | }
857 | .fa-suitcase:before {
858 | content: "\f0f2";
859 | }
860 | .fa-bell-o:before {
861 | content: "\f0a2";
862 | }
863 | .fa-coffee:before {
864 | content: "\f0f4";
865 | }
866 | .fa-cutlery:before {
867 | content: "\f0f5";
868 | }
869 | .fa-file-text-o:before {
870 | content: "\f0f6";
871 | }
872 | .fa-building-o:before {
873 | content: "\f0f7";
874 | }
875 | .fa-hospital-o:before {
876 | content: "\f0f8";
877 | }
878 | .fa-ambulance:before {
879 | content: "\f0f9";
880 | }
881 | .fa-medkit:before {
882 | content: "\f0fa";
883 | }
884 | .fa-fighter-jet:before {
885 | content: "\f0fb";
886 | }
887 | .fa-beer:before {
888 | content: "\f0fc";
889 | }
890 | .fa-h-square:before {
891 | content: "\f0fd";
892 | }
893 | .fa-plus-square:before {
894 | content: "\f0fe";
895 | }
896 | .fa-angle-double-left:before {
897 | content: "\f100";
898 | }
899 | .fa-angle-double-right:before {
900 | content: "\f101";
901 | }
902 | .fa-angle-double-up:before {
903 | content: "\f102";
904 | }
905 | .fa-angle-double-down:before {
906 | content: "\f103";
907 | }
908 | .fa-angle-left:before {
909 | content: "\f104";
910 | }
911 | .fa-angle-right:before {
912 | content: "\f105";
913 | }
914 | .fa-angle-up:before {
915 | content: "\f106";
916 | }
917 | .fa-angle-down:before {
918 | content: "\f107";
919 | }
920 | .fa-desktop:before {
921 | content: "\f108";
922 | }
923 | .fa-laptop:before {
924 | content: "\f109";
925 | }
926 | .fa-tablet:before {
927 | content: "\f10a";
928 | }
929 | .fa-mobile-phone:before,
930 | .fa-mobile:before {
931 | content: "\f10b";
932 | }
933 | .fa-circle-o:before {
934 | content: "\f10c";
935 | }
936 | .fa-quote-left:before {
937 | content: "\f10d";
938 | }
939 | .fa-quote-right:before {
940 | content: "\f10e";
941 | }
942 | .fa-spinner:before {
943 | content: "\f110";
944 | }
945 | .fa-circle:before {
946 | content: "\f111";
947 | }
948 | .fa-mail-reply:before,
949 | .fa-reply:before {
950 | content: "\f112";
951 | }
952 | .fa-github-alt:before {
953 | content: "\f113";
954 | }
955 | .fa-folder-o:before {
956 | content: "\f114";
957 | }
958 | .fa-folder-open-o:before {
959 | content: "\f115";
960 | }
961 | .fa-smile-o:before {
962 | content: "\f118";
963 | }
964 | .fa-frown-o:before {
965 | content: "\f119";
966 | }
967 | .fa-meh-o:before {
968 | content: "\f11a";
969 | }
970 | .fa-gamepad:before {
971 | content: "\f11b";
972 | }
973 | .fa-keyboard-o:before {
974 | content: "\f11c";
975 | }
976 | .fa-flag-o:before {
977 | content: "\f11d";
978 | }
979 | .fa-flag-checkered:before {
980 | content: "\f11e";
981 | }
982 | .fa-terminal:before {
983 | content: "\f120";
984 | }
985 | .fa-code:before {
986 | content: "\f121";
987 | }
988 | .fa-reply-all:before {
989 | content: "\f122";
990 | }
991 | .fa-mail-reply-all:before {
992 | content: "\f122";
993 | }
994 | .fa-star-half-empty:before,
995 | .fa-star-half-full:before,
996 | .fa-star-half-o:before {
997 | content: "\f123";
998 | }
999 | .fa-location-arrow:before {
1000 | content: "\f124";
1001 | }
1002 | .fa-crop:before {
1003 | content: "\f125";
1004 | }
1005 | .fa-code-fork:before {
1006 | content: "\f126";
1007 | }
1008 | .fa-unlink:before,
1009 | .fa-chain-broken:before {
1010 | content: "\f127";
1011 | }
1012 | .fa-question:before {
1013 | content: "\f128";
1014 | }
1015 | .fa-info:before {
1016 | content: "\f129";
1017 | }
1018 | .fa-exclamation:before {
1019 | content: "\f12a";
1020 | }
1021 | .fa-superscript:before {
1022 | content: "\f12b";
1023 | }
1024 | .fa-subscript:before {
1025 | content: "\f12c";
1026 | }
1027 | .fa-eraser:before {
1028 | content: "\f12d";
1029 | }
1030 | .fa-puzzle-piece:before {
1031 | content: "\f12e";
1032 | }
1033 | .fa-microphone:before {
1034 | content: "\f130";
1035 | }
1036 | .fa-microphone-slash:before {
1037 | content: "\f131";
1038 | }
1039 | .fa-shield:before {
1040 | content: "\f132";
1041 | }
1042 | .fa-calendar-o:before {
1043 | content: "\f133";
1044 | }
1045 | .fa-fire-extinguisher:before {
1046 | content: "\f134";
1047 | }
1048 | .fa-rocket:before {
1049 | content: "\f135";
1050 | }
1051 | .fa-maxcdn:before {
1052 | content: "\f136";
1053 | }
1054 | .fa-chevron-circle-left:before {
1055 | content: "\f137";
1056 | }
1057 | .fa-chevron-circle-right:before {
1058 | content: "\f138";
1059 | }
1060 | .fa-chevron-circle-up:before {
1061 | content: "\f139";
1062 | }
1063 | .fa-chevron-circle-down:before {
1064 | content: "\f13a";
1065 | }
1066 | .fa-html5:before {
1067 | content: "\f13b";
1068 | }
1069 | .fa-css3:before {
1070 | content: "\f13c";
1071 | }
1072 | .fa-anchor:before {
1073 | content: "\f13d";
1074 | }
1075 | .fa-unlock-alt:before {
1076 | content: "\f13e";
1077 | }
1078 | .fa-bullseye:before {
1079 | content: "\f140";
1080 | }
1081 | .fa-ellipsis-h:before {
1082 | content: "\f141";
1083 | }
1084 | .fa-ellipsis-v:before {
1085 | content: "\f142";
1086 | }
1087 | .fa-rss-square:before {
1088 | content: "\f143";
1089 | }
1090 | .fa-play-circle:before {
1091 | content: "\f144";
1092 | }
1093 | .fa-ticket:before {
1094 | content: "\f145";
1095 | }
1096 | .fa-minus-square:before {
1097 | content: "\f146";
1098 | }
1099 | .fa-minus-square-o:before {
1100 | content: "\f147";
1101 | }
1102 | .fa-level-up:before {
1103 | content: "\f148";
1104 | }
1105 | .fa-level-down:before {
1106 | content: "\f149";
1107 | }
1108 | .fa-check-square:before {
1109 | content: "\f14a";
1110 | }
1111 | .fa-pencil-square:before {
1112 | content: "\f14b";
1113 | }
1114 | .fa-external-link-square:before {
1115 | content: "\f14c";
1116 | }
1117 | .fa-share-square:before {
1118 | content: "\f14d";
1119 | }
1120 | .fa-compass:before {
1121 | content: "\f14e";
1122 | }
1123 | .fa-toggle-down:before,
1124 | .fa-caret-square-o-down:before {
1125 | content: "\f150";
1126 | }
1127 | .fa-toggle-up:before,
1128 | .fa-caret-square-o-up:before {
1129 | content: "\f151";
1130 | }
1131 | .fa-toggle-right:before,
1132 | .fa-caret-square-o-right:before {
1133 | content: "\f152";
1134 | }
1135 | .fa-euro:before,
1136 | .fa-eur:before {
1137 | content: "\f153";
1138 | }
1139 | .fa-gbp:before {
1140 | content: "\f154";
1141 | }
1142 | .fa-dollar:before,
1143 | .fa-usd:before {
1144 | content: "\f155";
1145 | }
1146 | .fa-rupee:before,
1147 | .fa-inr:before {
1148 | content: "\f156";
1149 | }
1150 | .fa-cny:before,
1151 | .fa-rmb:before,
1152 | .fa-yen:before,
1153 | .fa-jpy:before {
1154 | content: "\f157";
1155 | }
1156 | .fa-ruble:before,
1157 | .fa-rouble:before,
1158 | .fa-rub:before {
1159 | content: "\f158";
1160 | }
1161 | .fa-won:before,
1162 | .fa-krw:before {
1163 | content: "\f159";
1164 | }
1165 | .fa-bitcoin:before,
1166 | .fa-btc:before {
1167 | content: "\f15a";
1168 | }
1169 | .fa-file:before {
1170 | content: "\f15b";
1171 | }
1172 | .fa-file-text:before {
1173 | content: "\f15c";
1174 | }
1175 | .fa-sort-alpha-asc:before {
1176 | content: "\f15d";
1177 | }
1178 | .fa-sort-alpha-desc:before {
1179 | content: "\f15e";
1180 | }
1181 | .fa-sort-amount-asc:before {
1182 | content: "\f160";
1183 | }
1184 | .fa-sort-amount-desc:before {
1185 | content: "\f161";
1186 | }
1187 | .fa-sort-numeric-asc:before {
1188 | content: "\f162";
1189 | }
1190 | .fa-sort-numeric-desc:before {
1191 | content: "\f163";
1192 | }
1193 | .fa-thumbs-up:before {
1194 | content: "\f164";
1195 | }
1196 | .fa-thumbs-down:before {
1197 | content: "\f165";
1198 | }
1199 | .fa-youtube-square:before {
1200 | content: "\f166";
1201 | }
1202 | .fa-youtube:before {
1203 | content: "\f167";
1204 | }
1205 | .fa-xing:before {
1206 | content: "\f168";
1207 | }
1208 | .fa-xing-square:before {
1209 | content: "\f169";
1210 | }
1211 | .fa-youtube-play:before {
1212 | content: "\f16a";
1213 | }
1214 | .fa-dropbox:before {
1215 | content: "\f16b";
1216 | }
1217 | .fa-stack-overflow:before {
1218 | content: "\f16c";
1219 | }
1220 | .fa-instagram:before {
1221 | content: "\f16d";
1222 | }
1223 | .fa-flickr:before {
1224 | content: "\f16e";
1225 | }
1226 | .fa-adn:before {
1227 | content: "\f170";
1228 | }
1229 | .fa-bitbucket:before {
1230 | content: "\f171";
1231 | }
1232 | .fa-bitbucket-square:before {
1233 | content: "\f172";
1234 | }
1235 | .fa-tumblr:before {
1236 | content: "\f173";
1237 | }
1238 | .fa-tumblr-square:before {
1239 | content: "\f174";
1240 | }
1241 | .fa-long-arrow-down:before {
1242 | content: "\f175";
1243 | }
1244 | .fa-long-arrow-up:before {
1245 | content: "\f176";
1246 | }
1247 | .fa-long-arrow-left:before {
1248 | content: "\f177";
1249 | }
1250 | .fa-long-arrow-right:before {
1251 | content: "\f178";
1252 | }
1253 | .fa-apple:before {
1254 | content: "\f179";
1255 | }
1256 | .fa-windows:before {
1257 | content: "\f17a";
1258 | }
1259 | .fa-android:before {
1260 | content: "\f17b";
1261 | }
1262 | .fa-linux:before {
1263 | content: "\f17c";
1264 | }
1265 | .fa-dribbble:before {
1266 | content: "\f17d";
1267 | }
1268 | .fa-skype:before {
1269 | content: "\f17e";
1270 | }
1271 | .fa-foursquare:before {
1272 | content: "\f180";
1273 | }
1274 | .fa-trello:before {
1275 | content: "\f181";
1276 | }
1277 | .fa-female:before {
1278 | content: "\f182";
1279 | }
1280 | .fa-male:before {
1281 | content: "\f183";
1282 | }
1283 | .fa-gittip:before {
1284 | content: "\f184";
1285 | }
1286 | .fa-sun-o:before {
1287 | content: "\f185";
1288 | }
1289 | .fa-moon-o:before {
1290 | content: "\f186";
1291 | }
1292 | .fa-archive:before {
1293 | content: "\f187";
1294 | }
1295 | .fa-bug:before {
1296 | content: "\f188";
1297 | }
1298 | .fa-vk:before {
1299 | content: "\f189";
1300 | }
1301 | .fa-weibo:before {
1302 | content: "\f18a";
1303 | }
1304 | .fa-renren:before {
1305 | content: "\f18b";
1306 | }
1307 | .fa-pagelines:before {
1308 | content: "\f18c";
1309 | }
1310 | .fa-stack-exchange:before {
1311 | content: "\f18d";
1312 | }
1313 | .fa-arrow-circle-o-right:before {
1314 | content: "\f18e";
1315 | }
1316 | .fa-arrow-circle-o-left:before {
1317 | content: "\f190";
1318 | }
1319 | .fa-toggle-left:before,
1320 | .fa-caret-square-o-left:before {
1321 | content: "\f191";
1322 | }
1323 | .fa-dot-circle-o:before {
1324 | content: "\f192";
1325 | }
1326 | .fa-wheelchair:before {
1327 | content: "\f193";
1328 | }
1329 | .fa-vimeo-square:before {
1330 | content: "\f194";
1331 | }
1332 | .fa-turkish-lira:before,
1333 | .fa-try:before {
1334 | content: "\f195";
1335 | }
1336 | .fa-plus-square-o:before {
1337 | content: "\f196";
1338 | }
1339 |
--------------------------------------------------------------------------------
/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | adblock-to-bitcoin
6 |
7 |
8 |
9 |
10 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
117 |
118 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
adblock-to-bitcoin
137 |
Turn adblocked ads into bitcoin donation solicitations
138 |
View on Github
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
Examples
152 |
153 |
154 |
155 |
156 | Example: 728x90 ad
157 |
158 |
159 |
165 |
166 |
169 |
170 |
171 |
Hey there! You have an ad blocker enabled . Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05 .
172 |
173 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | Example: 336x280 ad
183 |
184 |
185 |
191 |
192 |
195 |
196 |
197 |
Hey there! You've blocked 384 ads on this site Owocki.com supports your right to use adblockers, but would you consider supporting the costs of serving 384 articles via a small bitcoin donation? Suggested donation (384 articles): $0.50 .
198 |
199 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 | Example: 320x100 ad
209 |
210 |
211 |
217 |
218 |
221 |
222 |
223 |
Hey there! You have an ad blocker enabled . Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05 .
224 |
225 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 | Example: 300x600 ad
235 |
236 |
237 |
243 |
244 |
247 |
248 |
249 |
Hey there! You have an ad blocker enabled . Owocki.com is $1000.00 away from it's quarterly fundraising goal. Your donations cover our servers, power, rent, staff, and protect our independence. Would you consider a small bitcoin donation? Suggested donation (Q4 2015): $1.50 .
250 |
251 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
252 |
253 |
254 |
255 |
256 |
257 |
258 |
263 |
264 |
265 |
266 |
307 |
308 |
309 |
310 |
311 |
312 |
340 |
341 |
342 |
343 |
344 |
356 |
357 |
--------------------------------------------------------------------------------
/wordpress-plugin.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin.zip
--------------------------------------------------------------------------------
/wordpress-plugin/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Block Ads to Bitcoin wordpress plug
3 |
4 | # What
5 |
6 | Implements [adblock-to-bitcoin](https://github.com/owocki/adblock-to-bitcoin) natively on a wordpress blog.
7 |
8 | # Download
9 |
10 | Download plugin [here](http://bits.owocki.com/0i451Y1n1V1J/wordpress-plugin.zip).
11 |
12 | # How
13 |
14 | 1. Install/Activate the plugin.
15 | 1. In your WP Admin, navigate to _Settings > Block Ads to Bitcoin _.
16 | 1. Update your bitcoin address, and any other settings you may care to modify (copy, suggested donation amount, etc).
17 | 1. Don't have a bitcoin address? Create an account with coinbase, and get one here .
18 | 1. Add code to your templates whereever you'd like the plugin to display a bitcoin solicitation:
19 |
20 |
21 | ### Leaderboard (728 x 90px)
22 |
23 | ```
24 |
25 | ```
26 |
27 | ### Large Rectangle (336px x 280px)
28 | ```
29 |
30 | ```
31 |
32 | ### Leaderboard (320 x 100px)
33 | ```
34 |
35 | ```
36 |
37 | ### Large SkyScraper (300 x 600px)
38 | ```
39 |
40 | ```
41 |
42 |
--------------------------------------------------------------------------------
/wordpress-plugin/adblock-to-bitcoin.php:
--------------------------------------------------------------------------------
1 | Block Ads to Bitcoin.
6 | * Version: 0.2
7 | * Author: owocki
8 | * Author URI: http://owocki.com
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 | */
14 |
15 |
16 | /* debug, remove in production */
17 |
18 |
19 | require_once plugin_dir_path( __FILE__ ) . "helpers.php";
20 | require_once plugin_dir_path( __FILE__ ) . "settings.php";
21 |
22 |
23 | function a2b_add_script_footer() {
24 | global $post;
25 | if (!isset($post)) return;
26 |
27 | echo a2b_get_bitcoin_address_template();
28 | }
29 | add_action('wp_footer', 'a2b_add_script_footer');
30 | add_action( 'wp_enqueue_scripts', 'a2b_queue_css' );
31 | add_action( 'wp_enqueue_scripts', 'a2b_queue_js' );
32 |
33 | ?>
34 |
--------------------------------------------------------------------------------
/wordpress-plugin/helpers.php:
--------------------------------------------------------------------------------
1 | ';
9 | }
10 | return $address;
11 | }
12 |
13 | function a2b_get_suggested_donation_amount(){
14 | $options = get_option( 'a2b_option_group' );
15 | $suggested_donation_amount = $options['suggested_donation_amount'];
16 | if(!$suggested_donation_amount){
17 | $suggested_donation_amount = '0.50';
18 | }
19 | return $suggested_donation_amount;
20 | }
21 |
22 | function a2b_get_default_copy($sol_size=False){
23 | $suggested_donation_amount = a2b_get_suggested_donation_amount();
24 | $copy = 'Hey there! You have an ad blocker enabled . '.get_bloginfo('name').' supports your right to do so, but would you consider supporting our costs via a small bitcoin donation?
25 | Suggested donation: $'.$suggested_donation_amount.' .';
26 | return $copy;
27 | }
28 |
29 |
30 | function a2b_get_copy($sol_size){
31 | $options = get_option( 'a2b_option_group' );
32 | $copy = $options['copy'];
33 | if(!$copy){
34 | $copy=a2b_get_default_copy($sol_size);
35 | }
36 | return $copy;
37 | }
38 |
39 |
40 | function a2b_should_display_even_if_adblock_is_off(){
41 | $options = get_option( 'a2b_option_group' );
42 | return (bool)$options['display_always'];
43 | }
44 |
45 | function a2b_display_powered_by(){
46 | $options = get_option( 'a2b_option_group' );
47 | return (bool)$options['powered_by'];
48 | }
49 |
50 |
51 | function a2b_get_plugin_staticfiles_url(){
52 | return plugin_dir_url( __FILE__ ).'static/' ;
53 | }
54 |
55 |
56 | function a2b_queue_js(){
57 | if(a2b_should_display_even_if_adblock_is_off()){
58 | wp_enqueue_script( 'always_show', a2b_get_plugin_staticfiles_url().'shared/alwaysshow.js' );
59 | }
60 |
61 | wp_enqueue_script( 'always_show', a2b_get_plugin_staticfiles_url().'shared/alwaysshow.js' );
62 | wp_enqueue_script( 'bitcoinaddress', a2b_get_plugin_staticfiles_url().'bitcoinaddress.js/dist/demo.js' );
63 | wp_enqueue_script( 'fuckadblock', a2b_get_plugin_staticfiles_url().'FuckAdBlock/fuckadblock.js' );
64 | wp_enqueue_script( 'bootstrap', a2b_get_plugin_staticfiles_url().'shared/bootstrap.min.js' );
65 | wp_enqueue_script( 'a2b', a2b_get_plugin_staticfiles_url().'adblock-to-bitcoin.js' );
66 | }
67 |
68 | function a2b_queue_css(){
69 | wp_enqueue_style('font-awesome',a2b_get_plugin_staticfiles_url().'shared/font-awesome.css');
70 | wp_enqueue_style('a2b',a2b_get_plugin_staticfiles_url().'adblock-to-bitcoin.css');
71 | }
72 |
73 | function a2b_get_bitcoin_address_template(){
74 | return '
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | Donate from wallet
85 |
86 |
87 |
88 |
89 | Copy Address
90 |
91 |
92 |
93 |
94 | View QR code
95 |
96 |
97 |
98 | Sending payment to the address from locally installed Bitcoin wallet app.
99 |
100 |
101 |
102 | Press CTRL + C or ⌘ + C to copy the Bitcoin address.
103 |
104 |
105 |
106 |
107 | Scan the QR code with your mobile Bitcoin app to
108 | make the payment:
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 | ';
118 | }
119 |
120 | function a2b_get_bitcion_solicitation($sol_size='leaderboard'){
121 | $suggested_donation_amount = a2b_get_suggested_donation_amount();
122 | $bitcoin_address = a2b_get_bitcoin_address();
123 | $copy = a2b_get_copy($sol_size);
124 | return '
125 |
126 |
'.$copy.'
127 | $'.$suggested_donation_amount.'
128 |
129 | '.$bitcoin_address.'
130 | ' . (a2b_display_powered_by() ? ' (powered by adblock-to-bitcoin ) ' : '') .'
131 |
132 |
133 | ';
134 | }
135 |
136 | function a2b_leaderboard(){
137 | return a2b_get_bitcion_solicitation('leaderboard');
138 | }
139 |
140 | function a2b_large_rectangle(){
141 | return a2b_get_bitcion_solicitation('large-rectangle');
142 | }
143 |
144 | function a2b_mobile_banner(){
145 | return a2b_get_bitcion_solicitation('mobile-banner');
146 | }
147 | function a2b_large_skyscraper(){
148 | return a2b_get_bitcion_solicitation('large-skyscraper');
149 | }
150 |
151 | ?>
152 |
--------------------------------------------------------------------------------
/wordpress-plugin/readme.txt:
--------------------------------------------------------------------------------
1 | === Plugin Name ===
2 | Contributors: owocki
3 | Donate link: http://github.com/owocki
4 | Tags: blocked ads, adblock, bitcoin, monetization
5 | Requires at least: 4.4
6 | Tested up to: 4.4
7 | Stable tag: 4.4
8 | License: GPLv2 or later
9 | License URI: http://www.gnu.org/licenses/gpl-2.0.html
10 |
11 | Block Ads to Bitcoin is a wordpress blocks that allows publishers to monetize unused adspace when adblockers are on.
12 |
13 | == Description ==
14 |
15 | Block Ads to Bitcoin is a wordpress blocks that allows publishers to monetize unused adspace when adblockers are on. It turns ads into bitcoin donation solicitations when adblockers are enabled.
16 |
17 | * Supports 4 ad sizes natively
18 | * Allows customized suggested donation amounts.
19 | * Allows customized ad copy.
20 | * Supports multiple adblockers.
21 |
22 | == Installation ==
23 |
24 |
25 | 1. Install/Activate the plugin.
26 | 2. In your WP Admin, navigate to _Settings > Block Ads to Bitcoin _.
27 | 3. Update your bitcoin address, and any other settings you may care to modify (copy, suggested donation amount, etc).
28 | 1. Don't have a bitcoin address? Create an account with coinbase and get one here: https://support.coinbase.com/customer/portal/articles/1027432-where-is-my-wallet-address-.
29 | 4. Add code to your templates whereever you'd like the plugin to display a bitcoin solicitation. Here are some examples:
30 |
31 |
32 | ### Leaderboard (728 x 90px)
33 |
34 | ``
35 |
36 | ### Large Rectangle (336px x 280px)
37 |
38 | ``
39 |
40 | ### Leaderboard (320 x 100px)
41 |
42 | ``
43 |
44 | ### Large SkyScraper (300 x 600px)
45 |
46 | ``
47 |
48 |
49 | == Frequently Asked Questions ==
50 |
51 | = What is bitcoin? =
52 |
53 | Bitcoin is a form of digital currency, created and held electronically. No one controls it. Bitcoins aren’t printed, like dollars or euros – they’re produced by people, and increasingly businesses, running computers all around the world, using software that solves mathematical problems.
54 |
55 | = Why bitcoin? =
56 |
57 | It’s cheap
58 |
59 | With credit card transactions, your merchant account bills you on a per-transaction basis. Some merchant accounts will charge a fee for debit card transactions, as you have to pay a ‘swipe fee’. Bitcoin transaction fees are minimal, or in some cases free.
60 |
61 | It’s as private as you want it to be
62 |
63 | Sometimes, we don’t want people knowing what we have purchased. Bitcoin is a relatively private currency. On the one hand, it is transparent – thanks to the blockchain, everyone knows how much a particular bitcoin address holds in transactions. They know where those transactions came from, and where they’re sent. On the other hand, unlike conventional bank accounts, no one knows who holds a particular bitcoin address.
64 |
65 | You don’t need to trust anyone else
66 |
67 | In a conventional banking system, you have to trust people to handle your money properly along the way. You have to trust the bank, for example. You might have to trust a third-party payment processor. You’ll often have to trust the merchant too.
68 |
69 | [More on why bitcion is an important payment layer here](http://www.coindesk.com/information/why-use-bitcoin/)
70 |
71 | = Why adblockers? =
72 |
73 | We are in a macro environment in which publishers are openly wondering where their revenues are going to come from in 20 years. On a micro scale, there has been a lot of ink (and bits) spilled about the resounding need for change in the ad and publishing space *today*. Some analysis’ have shown that 9.26% of impressions were found to be ad-blocked, with some sites reaching as high as 50% While there is innovation happening in online payments, no one has yet connected the dots in a meaningful way.
74 |
75 | = Why Block Ads to Bitcoin =
76 |
77 | Block Ads to Bitcoin is a free and easy way to monetize ad space that is unused due to adblockers.
78 |
79 | = How much can I expect to monetize with Block Ads to Bitcoin? =
80 |
81 | I've seen CPMs of over $2.00. More details here => http://owocki.com/adblock-to-bitcoin-2-dollar-cpms-via-micropayments/
82 |
83 |
84 | == Screenshots ==
85 |
86 | 1. screenshot-1.png
87 | 2. screenshot-2.png
88 | 3. screenshot-3.png
89 | 3. screenshot-4.png
90 |
91 | == Changelog ==
92 |
93 | = 0.2 =
94 | * Wordpress submission guideilnes https://github.com/owocki/adblock-to-bitcoin/pull/4/files
95 |
96 | = 0.1 =
97 | * Plugin MVP
98 |
99 | == Upgrade Notice ==
100 |
101 | = 0.1 =
102 | * Plugin MVP
103 |
104 |
--------------------------------------------------------------------------------
/wordpress-plugin/screenshot-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-1.png
--------------------------------------------------------------------------------
/wordpress-plugin/screenshot-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-2.png
--------------------------------------------------------------------------------
/wordpress-plugin/screenshot-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-3.png
--------------------------------------------------------------------------------
/wordpress-plugin/screenshot-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/screenshot-4.png
--------------------------------------------------------------------------------
/wordpress-plugin/settings.php:
--------------------------------------------------------------------------------
1 | options = get_option( 'a2b_option_group' );
40 | ?>
41 |
42 |
Configuration Settings
43 | is_active()){
45 | ?>
46 |
WARNING: This plugin is not active. To make it active, make sure you have entered (1) a valid bitcoin address, (2) a valid suggested donation amount, and (3) valid ad copy.
47 |
50 |
61 |
62 | Block Ads to Bitcoin on github.');
148 | }
149 |
150 |
151 | public function is_active(){
152 | $is_active = is_numeric($this->options['suggested_donation_amount']) &&
153 | $this->options['bitcoin_address'] != '' &&
154 | ( $this->options['copy'] && $this->options['copy'] != '');
155 | return $is_active;
156 | }
157 |
158 | /**
159 | * Get the settings option array and print one of its values
160 | */
161 | public function bitcoin_address_callback()
162 | {
163 | $is_set = ( $this->options['bitcoin_address'] && $this->options['bitcoin_address'] != '');
164 | printf(
165 | ' ',
166 | $is_set ? esc_attr( $this->options['bitcoin_address']) : a2b_get_bitcoin_address()
167 | );
168 | }
169 |
170 | /**
171 | * Get the settings option array and print one of its values
172 | */
173 | public function copy_callback()
174 | {
175 | $is_set = ( $this->options['copy'] && $this->options['copy'] != '');
176 | $val = $is_set ? esc_attr( $this->options['copy']) : a2b_get_default_copy();
177 | printf(
178 | '',
179 | $val
180 | );
181 | }
182 |
183 |
184 | /**
185 | * Get the settings option array and print one of its values
186 | */
187 | public function suggested_donation_amount_callback()
188 | {
189 | $is_set = ( $this->options['suggested_donation_amount'] && $this->options['suggested_donation_amount'] != '');
190 | printf(
191 | '$ ',
192 | $is_set ? esc_attr( $this->options['suggested_donation_amount']) : '0.50'
193 | );
194 | }
195 |
196 | /**
197 | * Get the settings option array and print one of its values
198 | */
199 | public function display_settings_callback()
200 | {
201 | printf(
202 | ' ',
203 | isset( $this->options['display_always'] ) ? 'checked' : ''
204 | );
205 | }
206 |
207 | /**
208 | * Get the settings option array and print one of its values
209 | */
210 | public function powered_by_callback()
211 | {
212 | printf(
213 | ' ',
214 | isset( $this->options['powered_by'] ) ? 'checked' : ''
215 | );
216 | }
217 | }
218 |
219 | if( is_admin() )
220 | $a2b_settings_page = new a2bSettings();
221 | if($_POST){
222 | if(function_exists('wp_verify_nonce')){
223 | wp_verify_nonce( $_REQUEST['a2b_wpnonce'], 'admin_page_a2b' );
224 | }
225 | }
226 |
227 |
228 | ?>
229 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/FuckAdBlock/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/FuckAdBlock/.DS_Store
--------------------------------------------------------------------------------
/wordpress-plugin/static/FuckAdBlock/.gitattributes:
--------------------------------------------------------------------------------
1 | test.html linguist-vendored
2 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/FuckAdBlock/fuckadblock.js:
--------------------------------------------------------------------------------
1 | /*
2 | * FuckAdBlock 3.2.0
3 | * Copyright (c) 2015 Valentin Allaire
4 | * Released under the MIT license
5 | * https://github.com/sitexw/FuckAdBlock
6 | */
7 |
8 | (function(window) {
9 | var FuckAdBlock = function(options) {
10 | this._options = {
11 | checkOnLoad: false,
12 | resetOnEnd: false,
13 | loopCheckTime: 50,
14 | loopMaxNumber: 5,
15 | baitClass: 'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links',
16 | baitStyle: 'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;',
17 | debug: false
18 | };
19 | this._var = {
20 | version: '3.2.0',
21 | bait: null,
22 | checking: false,
23 | loop: null,
24 | loopNumber: 0,
25 | event: { detected: [], notDetected: [] }
26 | };
27 | if(options !== undefined) {
28 | this.setOption(options);
29 | }
30 | var self = this;
31 | var eventCallback = function() {
32 | setTimeout(function() {
33 | if(self._options.checkOnLoad === true) {
34 | if(self._options.debug === true) {
35 | self._log('onload->eventCallback', 'A check loading is launched');
36 | }
37 | if(self._var.bait === null) {
38 | self._creatBait();
39 | }
40 | setTimeout(function() {
41 | self.check();
42 | }, 1);
43 | }
44 | }, 1);
45 | };
46 | if(window.addEventListener !== undefined) {
47 | window.addEventListener('load', eventCallback, false);
48 | } else {
49 | window.attachEvent('onload', eventCallback);
50 | }
51 | };
52 | FuckAdBlock.prototype._options = null;
53 | FuckAdBlock.prototype._var = null;
54 | FuckAdBlock.prototype._bait = null;
55 |
56 | FuckAdBlock.prototype._log = function(method, message) {
57 | console.log('[FuckAdBlock]['+method+'] '+message);
58 | };
59 |
60 | FuckAdBlock.prototype.setOption = function(options, value) {
61 | if(value !== undefined) {
62 | var key = options;
63 | options = {};
64 | options[key] = value;
65 | }
66 | for(var option in options) {
67 | this._options[option] = options[option];
68 | if(this._options.debug === true) {
69 | this._log('setOption', 'The option "'+option+'" he was assigned to "'+options[option]+'"');
70 | }
71 | }
72 | return this;
73 | };
74 |
75 | FuckAdBlock.prototype._creatBait = function() {
76 | var bait = document.createElement('div');
77 | bait.setAttribute('class', this._options.baitClass);
78 | bait.setAttribute('style', this._options.baitStyle);
79 | this._var.bait = window.document.body.appendChild(bait);
80 |
81 | this._var.bait.offsetParent;
82 | this._var.bait.offsetHeight;
83 | this._var.bait.offsetLeft;
84 | this._var.bait.offsetTop;
85 | this._var.bait.offsetWidth;
86 | this._var.bait.clientHeight;
87 | this._var.bait.clientWidth;
88 |
89 | if(this._options.debug === true) {
90 | this._log('_creatBait', 'Bait has been created');
91 | }
92 | };
93 | FuckAdBlock.prototype._destroyBait = function() {
94 | window.document.body.removeChild(this._var.bait);
95 | this._var.bait = null;
96 |
97 | if(this._options.debug === true) {
98 | this._log('_destroyBait', 'Bait has been removed');
99 | }
100 | };
101 |
102 | FuckAdBlock.prototype.check = function(loop) {
103 | if(loop === undefined) {
104 | loop = true;
105 | }
106 |
107 | if(this._options.debug === true) {
108 | this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop');
109 | }
110 |
111 | if(this._var.checking === true) {
112 | if(this._options.debug === true) {
113 | this._log('check', 'A check was canceled because there is already an ongoing');
114 | }
115 | return false;
116 | }
117 | this._var.checking = true;
118 |
119 | if(this._var.bait === null) {
120 | this._creatBait();
121 | }
122 |
123 | var self = this;
124 | this._var.loopNumber = 0;
125 | if(loop === true) {
126 | this._var.loop = setInterval(function() {
127 | self._checkBait(loop);
128 | }, this._options.loopCheckTime);
129 | }
130 | setTimeout(function() {
131 | self._checkBait(loop);
132 | }, 1);
133 | if(this._options.debug === true) {
134 | this._log('check', 'A check is in progress ...');
135 | }
136 |
137 | return true;
138 | };
139 | FuckAdBlock.prototype._checkBait = function(loop) {
140 | var detected = false;
141 |
142 | if(this._var.bait === null) {
143 | this._creatBait();
144 | }
145 |
146 | if(window.document.body.getAttribute('abp') !== null
147 | || this._var.bait.offsetParent === null
148 | || this._var.bait.offsetHeight == 0
149 | || this._var.bait.offsetLeft == 0
150 | || this._var.bait.offsetTop == 0
151 | || this._var.bait.offsetWidth == 0
152 | || this._var.bait.clientHeight == 0
153 | || this._var.bait.clientWidth == 0) {
154 | detected = true;
155 | }
156 | if(window.getComputedStyle !== undefined) {
157 | var baitTemp = window.getComputedStyle(this._var.bait, null);
158 | if(baitTemp.getPropertyValue('display') == 'none'
159 | || baitTemp.getPropertyValue('visibility') == 'hidden') {
160 | detected = true;
161 | }
162 | }
163 |
164 | if(this._options.debug === true) {
165 | this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative'));
166 | }
167 |
168 | if(loop === true) {
169 | this._var.loopNumber++;
170 | if(this._var.loopNumber >= this._options.loopMaxNumber) {
171 | this._stopLoop();
172 | }
173 | }
174 |
175 | if(detected === true) {
176 | this._stopLoop();
177 | this._destroyBait();
178 | this.emitEvent(true);
179 | if(loop === true) {
180 | this._var.checking = false;
181 | }
182 | } else if(this._var.loop === null || loop === false) {
183 | this._destroyBait();
184 | this.emitEvent(false);
185 | if(loop === true) {
186 | this._var.checking = false;
187 | }
188 | }
189 | };
190 | FuckAdBlock.prototype._stopLoop = function(detected) {
191 | clearInterval(this._var.loop);
192 | this._var.loop = null;
193 | this._var.loopNumber = 0;
194 |
195 | if(this._options.debug === true) {
196 | this._log('_stopLoop', 'A loop has been stopped');
197 | }
198 | };
199 |
200 | FuckAdBlock.prototype.emitEvent = function(detected) {
201 | if(this._options.debug === true) {
202 | this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called');
203 | }
204 |
205 | var fns = this._var.event[(detected===true?'detected':'notDetected')];
206 | for(var i in fns) {
207 | if(this._options.debug === true) {
208 | this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length);
209 | }
210 | if(fns.hasOwnProperty(i)) {
211 | fns[i]();
212 | }
213 | }
214 | if(this._options.resetOnEnd === true) {
215 | this.clearEvent();
216 | }
217 | return this;
218 | };
219 | FuckAdBlock.prototype.clearEvent = function() {
220 | this._var.event.detected = [];
221 | this._var.event.notDetected = [];
222 |
223 | if(this._options.debug === true) {
224 | this._log('clearEvent', 'The event list has been cleared');
225 | }
226 | };
227 |
228 | FuckAdBlock.prototype.on = function(detected, fn) {
229 | this._var.event[(detected===true?'detected':'notDetected')].push(fn);
230 | if(this._options.debug === true) {
231 | this._log('on', 'A type of event "'+(detected===true?'detected':'notDetected')+'" was added');
232 | }
233 |
234 | return this;
235 | };
236 | FuckAdBlock.prototype.onDetected = function(fn) {
237 | return this.on(true, fn);
238 | };
239 | FuckAdBlock.prototype.onNotDetected = function(fn) {
240 | return this.on(false, fn);
241 | };
242 |
243 | window.FuckAdBlock = FuckAdBlock;
244 |
245 | if(window.fuckAdBlock === undefined) {
246 | window.fuckAdBlock = new FuckAdBlock({
247 | checkOnLoad: true,
248 | resetOnEnd: true
249 | });
250 | }
251 | })(window);
252 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/adblock-to-bitcoin.css:
--------------------------------------------------------------------------------
1 | /* bitcoinaddress css styles */
2 | body {
3 | padding-top: 60px;
4 | }
5 |
6 | /* http://davidwalsh.name/html5-hidden */
7 | *[hidden] { display: none; }
8 |
9 | /* Action hints are slidedowns, hidden by default */
10 | .bitcoin-action-hint {
11 | display: none;
12 | }
13 |
14 | /* Show dashed underlining so people get a hint it's clickable */
15 | .bitcoin-address-container .bitcoin-address {
16 | border-bottom: 1px dashed gray;
17 | cursor: pointer;
18 | }
19 |
20 | /* Center QR code image */
21 | .bitcoin-address-qr-container > img,
22 | .bitcoin-address-qr-container > canvas {
23 | margin: 0 auto;
24 | }
25 |
26 | /* bitcoinprices.js - for bitcoinprices, donation nominated in USD */
27 | .clickable-price {
28 | cursor: pointer;
29 | border-bottom: 1px #888 dashed;
30 | }
31 |
32 | /* Demo page splash styling */
33 | #bitcoin-icon {
34 | font-size: 128px;
35 | color: #F7931A;
36 | }
37 |
38 | #bitcoin-icon .fa-circle {
39 | text-shadow: 0 3px 3px rgba(32, 32, 32, 0.3);
40 | }
41 | .example-row {
42 | margin: 30px 0;
43 | }
44 |
45 | .example-heading {
46 | color: #357ebd;
47 | }
48 |
49 | /* adblock-to-bitcoin sizes */
50 | .ad_container {
51 |
52 | }
53 | .bitcoin_solicitation{
54 | display:none;
55 | background-color: #eee;
56 | padding: 2px;
57 | word-wrap: break-word;
58 | }
59 | .bitcoin_solicitation span.hidden{
60 | display: none !important;
61 | }
62 |
63 | .bitcoin_solicitation a{
64 | color: #428bca;
65 | text-decoration: none
66 | }
67 |
68 | .bitcoin_solicitation .poweredby{
69 | font-size: 70%;
70 | margin-top: 5px;
71 | }
72 |
73 |
74 | .bitcoin_solicitation.adblock_enabled{
75 | display:block;
76 | background-color: #f5f5f5;
77 | border: 1px solid #e3e3e3;
78 | border-radius: 4px;
79 | padding: 6px;
80 | text-align:center;
81 | }
82 | .bitcoin_solicitation.leaderboard,{
83 | width: 728px;
84 | height: 90px;
85 | }
86 | .bitcoin_solicitation.large-rectangle{
87 | padding-top: 10% ;
88 | padding-bottom: 10% ;
89 | width: 336px;
90 | height: 280px;
91 | }
92 | .bitcoin_solicitation.mobile-banner{
93 | width: 320px;
94 | height: 100px;
95 | font-size: 75%;
96 | }
97 | .bitcoin_solicitation.mobile-banner .bitcoin-address-action{
98 | display: none;
99 | }
100 | .bitcoin_solicitation.large-skyscraper{
101 | padding-top: 20% ;
102 | padding-bottom: 20% ;
103 | width: 300px;
104 | height: 600px;
105 | }
106 | .sitename, .smallbitcoin{
107 | font-style: italic;
108 | }
109 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/adblock-to-bitcoin.js:
--------------------------------------------------------------------------------
1 | function showSolicitations() {
2 | $('.bitcoin_solicitation').addClass('adblock_enabled');
3 | }
4 | function adBlockDetected() {
5 | showSolicitations();
6 | }
7 | function adBlockNotDetected() {
8 | }
9 |
10 | // attach the document URL to qr-code generating attributes such that it will be sent by default in bitcoin payments.
11 | // this will allow publishers to know what content is generating BTC for them.
12 | $(document).ready(function(){
13 | $('.bitcoin-address, .bitcoin-address-container').each(function(e){
14 | $(this).attr('data-bc-message',document.location);
15 | });
16 |
17 | if(document.always_show_bitcoin_solicitations){
18 | showSolicitations();
19 | } else if(typeof fuckAdBlock === 'undefined') {
20 | adBlockDetected();
21 | } else {
22 | fuckAdBlock.setOption({ debug: true });
23 | fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected);
24 | }
25 |
26 | function checkAgain() {
27 | $('#fuck-adb-enabled').hide();
28 | $('#fuck-adb-not-enabled').hide();
29 | // setTimeout 300ms for the recheck is visible when you click on the button
30 | setTimeout(function() {
31 | if(typeof fuckAdBlock === 'undefined') {
32 | adBlockDetected();
33 | } else {
34 | fuckAdBlock.onDetected(adBlockDetected).onNotDetected(adBlockNotDetected);
35 | fuckAdBlock.check();
36 | }
37 | }, 300);
38 | }
39 |
40 |
41 | });
42 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/bitcoinaddress.js/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/bitcoinaddress.js/.DS_Store
--------------------------------------------------------------------------------
/wordpress-plugin/static/bitcoinaddress.js/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm-debug.log
--------------------------------------------------------------------------------
/wordpress-plugin/static/bitcoinaddress.js/.node-inspectorrc:
--------------------------------------------------------------------------------
1 | {
2 | "save-live-edit": true
3 | }
--------------------------------------------------------------------------------
/wordpress-plugin/static/bitcoinaddress.js/.npmignore:
--------------------------------------------------------------------------------
1 | dist
--------------------------------------------------------------------------------
/wordpress-plugin/static/bitcoinaddress.js/dist/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/bitcoinaddress.js/dist/.DS_Store
--------------------------------------------------------------------------------
/wordpress-plugin/static/demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | adblock-to-bitcoin
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
25 |
26 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
adblock-to-bitcoin
45 |
Turn adblocked ads into bitcoin donation solicitations
46 |
View on Github
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
Examples
60 |
61 |
62 |
63 |
64 | Example: 728x90 ad
65 |
66 |
67 |
73 |
74 |
77 |
78 |
79 |
Hey there! You have an ad blocker enabled . Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05 .
80 |
81 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | Example: 336x280 ad
91 |
92 |
93 |
99 |
100 |
103 |
104 |
105 |
Hey there! You've blocked 384 ads on this site Owocki.com supports your right to use adblockers, but would you consider supporting the costs of serving 384 articles via a small bitcoin donation? Suggested donation (384 articles): $0.50 .
106 |
107 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Example: 320x100 ad
117 |
118 |
119 |
125 |
126 |
129 |
130 |
131 |
Hey there! You have an ad blocker enabled . Owocki.com supports your right to do so, but would you consider supporting our costs via a small bitcoin donation? Suggested donation: $0.05 .
132 |
133 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 | Example: 300x600 ad
143 |
144 |
145 |
151 |
152 |
155 |
156 |
157 |
Hey there! You have an ad blocker enabled . Owocki.com is $1000.00 away from it's quarterly fundraising goal. Your donations cover our servers, power, rent, staff, and protect our independence. Would you consider a small bitcoin donation? Suggested donation (Q4 2015): $1.50 .
158 |
159 | 1A3KJ7f3YAS9jvhPjotLEzEMd1dNKZ9EPE
160 |
161 |
162 |
163 |
164 |
165 |
166 |
171 |
172 |
173 |
174 |
215 |
216 |
217 |
218 |
219 |
220 |
248 |
249 |
250 |
251 |
252 |
264 |
265 |
--------------------------------------------------------------------------------
/wordpress-plugin/static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/wordpress-plugin/static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/wordpress-plugin/static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/wordpress-plugin/static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/wordpress-plugin/static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owocki/adblock-to-bitcoin/959eea1f102bf1e11c7e1d4e29d2b5331735cc34/wordpress-plugin/static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/wordpress-plugin/static/shared/alwaysshow.js:
--------------------------------------------------------------------------------
1 | document.always_show_bitcoin_solicitations=1;
--------------------------------------------------------------------------------
/wordpress-plugin/static/shared/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.3 (http://getbootstrap.com)
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | */
6 |
7 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i ').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
--------------------------------------------------------------------------------
/wordpress-plugin/static/shared/font-awesome.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 | /* FONT PATH
6 | * -------------------------- */
7 | @font-face {
8 | font-family: 'FontAwesome';
9 | src: url('../fonts/fontawesome-webfont.eot?v=4.0.3');
10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
11 | font-weight: normal;
12 | font-style: normal;
13 | }
14 | .fa {
15 | display: inline-block;
16 | font-family: FontAwesome;
17 | font-style: normal;
18 | font-weight: normal;
19 | line-height: 1;
20 | -webkit-font-smoothing: antialiased;
21 | -moz-osx-font-smoothing: grayscale;
22 | }
23 | /* makes the font 33% larger relative to the icon container */
24 | .fa-lg {
25 | font-size: 1.3333333333333333em;
26 | line-height: 0.75em;
27 | vertical-align: -15%;
28 | }
29 | .fa-2x {
30 | font-size: 2em;
31 | }
32 | .fa-3x {
33 | font-size: 3em;
34 | }
35 | .fa-4x {
36 | font-size: 4em;
37 | }
38 | .fa-5x {
39 | font-size: 5em;
40 | }
41 | .fa-fw {
42 | width: 1.2857142857142858em;
43 | text-align: center;
44 | }
45 | .fa-ul {
46 | padding-left: 0;
47 | margin-left: 2.142857142857143em;
48 | list-style-type: none;
49 | }
50 | .fa-ul > li {
51 | position: relative;
52 | }
53 | .fa-li {
54 | position: absolute;
55 | left: -2.142857142857143em;
56 | width: 2.142857142857143em;
57 | top: 0.14285714285714285em;
58 | text-align: center;
59 | }
60 | .fa-li.fa-lg {
61 | left: -1.8571428571428572em;
62 | }
63 | .fa-border {
64 | padding: .2em .25em .15em;
65 | border: solid 0.08em #eeeeee;
66 | border-radius: .1em;
67 | }
68 | .pull-right {
69 | float: right;
70 | }
71 | .pull-left {
72 | float: left;
73 | }
74 | .fa.pull-left {
75 | margin-right: .3em;
76 | }
77 | .fa.pull-right {
78 | margin-left: .3em;
79 | }
80 | .fa-spin {
81 | -webkit-animation: spin 2s infinite linear;
82 | -moz-animation: spin 2s infinite linear;
83 | -o-animation: spin 2s infinite linear;
84 | animation: spin 2s infinite linear;
85 | }
86 | @-moz-keyframes spin {
87 | 0% {
88 | -moz-transform: rotate(0deg);
89 | }
90 | 100% {
91 | -moz-transform: rotate(359deg);
92 | }
93 | }
94 | @-webkit-keyframes spin {
95 | 0% {
96 | -webkit-transform: rotate(0deg);
97 | }
98 | 100% {
99 | -webkit-transform: rotate(359deg);
100 | }
101 | }
102 | @-o-keyframes spin {
103 | 0% {
104 | -o-transform: rotate(0deg);
105 | }
106 | 100% {
107 | -o-transform: rotate(359deg);
108 | }
109 | }
110 | @-ms-keyframes spin {
111 | 0% {
112 | -ms-transform: rotate(0deg);
113 | }
114 | 100% {
115 | -ms-transform: rotate(359deg);
116 | }
117 | }
118 | @keyframes spin {
119 | 0% {
120 | transform: rotate(0deg);
121 | }
122 | 100% {
123 | transform: rotate(359deg);
124 | }
125 | }
126 | .fa-rotate-90 {
127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
128 | -webkit-transform: rotate(90deg);
129 | -moz-transform: rotate(90deg);
130 | -ms-transform: rotate(90deg);
131 | -o-transform: rotate(90deg);
132 | transform: rotate(90deg);
133 | }
134 | .fa-rotate-180 {
135 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
136 | -webkit-transform: rotate(180deg);
137 | -moz-transform: rotate(180deg);
138 | -ms-transform: rotate(180deg);
139 | -o-transform: rotate(180deg);
140 | transform: rotate(180deg);
141 | }
142 | .fa-rotate-270 {
143 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
144 | -webkit-transform: rotate(270deg);
145 | -moz-transform: rotate(270deg);
146 | -ms-transform: rotate(270deg);
147 | -o-transform: rotate(270deg);
148 | transform: rotate(270deg);
149 | }
150 | .fa-flip-horizontal {
151 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
152 | -webkit-transform: scale(-1, 1);
153 | -moz-transform: scale(-1, 1);
154 | -ms-transform: scale(-1, 1);
155 | -o-transform: scale(-1, 1);
156 | transform: scale(-1, 1);
157 | }
158 | .fa-flip-vertical {
159 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
160 | -webkit-transform: scale(1, -1);
161 | -moz-transform: scale(1, -1);
162 | -ms-transform: scale(1, -1);
163 | -o-transform: scale(1, -1);
164 | transform: scale(1, -1);
165 | }
166 | .fa-stack {
167 | position: relative;
168 | display: inline-block;
169 | width: 2em;
170 | height: 2em;
171 | line-height: 2em;
172 | vertical-align: middle;
173 | }
174 | .fa-stack-1x,
175 | .fa-stack-2x {
176 | position: absolute;
177 | left: 0;
178 | width: 100%;
179 | text-align: center;
180 | }
181 | .fa-stack-1x {
182 | line-height: inherit;
183 | }
184 | .fa-stack-2x {
185 | font-size: 2em;
186 | }
187 | .fa-inverse {
188 | color: #ffffff;
189 | }
190 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
191 | readers do not read off random characters that represent icons */
192 | .fa-glass:before {
193 | content: "\f000";
194 | }
195 | .fa-music:before {
196 | content: "\f001";
197 | }
198 | .fa-search:before {
199 | content: "\f002";
200 | }
201 | .fa-envelope-o:before {
202 | content: "\f003";
203 | }
204 | .fa-heart:before {
205 | content: "\f004";
206 | }
207 | .fa-star:before {
208 | content: "\f005";
209 | }
210 | .fa-star-o:before {
211 | content: "\f006";
212 | }
213 | .fa-user:before {
214 | content: "\f007";
215 | }
216 | .fa-film:before {
217 | content: "\f008";
218 | }
219 | .fa-th-large:before {
220 | content: "\f009";
221 | }
222 | .fa-th:before {
223 | content: "\f00a";
224 | }
225 | .fa-th-list:before {
226 | content: "\f00b";
227 | }
228 | .fa-check:before {
229 | content: "\f00c";
230 | }
231 | .fa-times:before {
232 | content: "\f00d";
233 | }
234 | .fa-search-plus:before {
235 | content: "\f00e";
236 | }
237 | .fa-search-minus:before {
238 | content: "\f010";
239 | }
240 | .fa-power-off:before {
241 | content: "\f011";
242 | }
243 | .fa-signal:before {
244 | content: "\f012";
245 | }
246 | .fa-gear:before,
247 | .fa-cog:before {
248 | content: "\f013";
249 | }
250 | .fa-trash-o:before {
251 | content: "\f014";
252 | }
253 | .fa-home:before {
254 | content: "\f015";
255 | }
256 | .fa-file-o:before {
257 | content: "\f016";
258 | }
259 | .fa-clock-o:before {
260 | content: "\f017";
261 | }
262 | .fa-road:before {
263 | content: "\f018";
264 | }
265 | .fa-download:before {
266 | content: "\f019";
267 | }
268 | .fa-arrow-circle-o-down:before {
269 | content: "\f01a";
270 | }
271 | .fa-arrow-circle-o-up:before {
272 | content: "\f01b";
273 | }
274 | .fa-inbox:before {
275 | content: "\f01c";
276 | }
277 | .fa-play-circle-o:before {
278 | content: "\f01d";
279 | }
280 | .fa-rotate-right:before,
281 | .fa-repeat:before {
282 | content: "\f01e";
283 | }
284 | .fa-refresh:before {
285 | content: "\f021";
286 | }
287 | .fa-list-alt:before {
288 | content: "\f022";
289 | }
290 | .fa-lock:before {
291 | content: "\f023";
292 | }
293 | .fa-flag:before {
294 | content: "\f024";
295 | }
296 | .fa-headphones:before {
297 | content: "\f025";
298 | }
299 | .fa-volume-off:before {
300 | content: "\f026";
301 | }
302 | .fa-volume-down:before {
303 | content: "\f027";
304 | }
305 | .fa-volume-up:before {
306 | content: "\f028";
307 | }
308 | .fa-qrcode:before {
309 | content: "\f029";
310 | }
311 | .fa-barcode:before {
312 | content: "\f02a";
313 | }
314 | .fa-tag:before {
315 | content: "\f02b";
316 | }
317 | .fa-tags:before {
318 | content: "\f02c";
319 | }
320 | .fa-book:before {
321 | content: "\f02d";
322 | }
323 | .fa-bookmark:before {
324 | content: "\f02e";
325 | }
326 | .fa-print:before {
327 | content: "\f02f";
328 | }
329 | .fa-camera:before {
330 | content: "\f030";
331 | }
332 | .fa-font:before {
333 | content: "\f031";
334 | }
335 | .fa-bold:before {
336 | content: "\f032";
337 | }
338 | .fa-italic:before {
339 | content: "\f033";
340 | }
341 | .fa-text-height:before {
342 | content: "\f034";
343 | }
344 | .fa-text-width:before {
345 | content: "\f035";
346 | }
347 | .fa-align-left:before {
348 | content: "\f036";
349 | }
350 | .fa-align-center:before {
351 | content: "\f037";
352 | }
353 | .fa-align-right:before {
354 | content: "\f038";
355 | }
356 | .fa-align-justify:before {
357 | content: "\f039";
358 | }
359 | .fa-list:before {
360 | content: "\f03a";
361 | }
362 | .fa-dedent:before,
363 | .fa-outdent:before {
364 | content: "\f03b";
365 | }
366 | .fa-indent:before {
367 | content: "\f03c";
368 | }
369 | .fa-video-camera:before {
370 | content: "\f03d";
371 | }
372 | .fa-picture-o:before {
373 | content: "\f03e";
374 | }
375 | .fa-pencil:before {
376 | content: "\f040";
377 | }
378 | .fa-map-marker:before {
379 | content: "\f041";
380 | }
381 | .fa-adjust:before {
382 | content: "\f042";
383 | }
384 | .fa-tint:before {
385 | content: "\f043";
386 | }
387 | .fa-edit:before,
388 | .fa-pencil-square-o:before {
389 | content: "\f044";
390 | }
391 | .fa-share-square-o:before {
392 | content: "\f045";
393 | }
394 | .fa-check-square-o:before {
395 | content: "\f046";
396 | }
397 | .fa-arrows:before {
398 | content: "\f047";
399 | }
400 | .fa-step-backward:before {
401 | content: "\f048";
402 | }
403 | .fa-fast-backward:before {
404 | content: "\f049";
405 | }
406 | .fa-backward:before {
407 | content: "\f04a";
408 | }
409 | .fa-play:before {
410 | content: "\f04b";
411 | }
412 | .fa-pause:before {
413 | content: "\f04c";
414 | }
415 | .fa-stop:before {
416 | content: "\f04d";
417 | }
418 | .fa-forward:before {
419 | content: "\f04e";
420 | }
421 | .fa-fast-forward:before {
422 | content: "\f050";
423 | }
424 | .fa-step-forward:before {
425 | content: "\f051";
426 | }
427 | .fa-eject:before {
428 | content: "\f052";
429 | }
430 | .fa-chevron-left:before {
431 | content: "\f053";
432 | }
433 | .fa-chevron-right:before {
434 | content: "\f054";
435 | }
436 | .fa-plus-circle:before {
437 | content: "\f055";
438 | }
439 | .fa-minus-circle:before {
440 | content: "\f056";
441 | }
442 | .fa-times-circle:before {
443 | content: "\f057";
444 | }
445 | .fa-check-circle:before {
446 | content: "\f058";
447 | }
448 | .fa-question-circle:before {
449 | content: "\f059";
450 | }
451 | .fa-info-circle:before {
452 | content: "\f05a";
453 | }
454 | .fa-crosshairs:before {
455 | content: "\f05b";
456 | }
457 | .fa-times-circle-o:before {
458 | content: "\f05c";
459 | }
460 | .fa-check-circle-o:before {
461 | content: "\f05d";
462 | }
463 | .fa-ban:before {
464 | content: "\f05e";
465 | }
466 | .fa-arrow-left:before {
467 | content: "\f060";
468 | }
469 | .fa-arrow-right:before {
470 | content: "\f061";
471 | }
472 | .fa-arrow-up:before {
473 | content: "\f062";
474 | }
475 | .fa-arrow-down:before {
476 | content: "\f063";
477 | }
478 | .fa-mail-forward:before,
479 | .fa-share:before {
480 | content: "\f064";
481 | }
482 | .fa-expand:before {
483 | content: "\f065";
484 | }
485 | .fa-compress:before {
486 | content: "\f066";
487 | }
488 | .fa-plus:before {
489 | content: "\f067";
490 | }
491 | .fa-minus:before {
492 | content: "\f068";
493 | }
494 | .fa-asterisk:before {
495 | content: "\f069";
496 | }
497 | .fa-exclamation-circle:before {
498 | content: "\f06a";
499 | }
500 | .fa-gift:before {
501 | content: "\f06b";
502 | }
503 | .fa-leaf:before {
504 | content: "\f06c";
505 | }
506 | .fa-fire:before {
507 | content: "\f06d";
508 | }
509 | .fa-eye:before {
510 | content: "\f06e";
511 | }
512 | .fa-eye-slash:before {
513 | content: "\f070";
514 | }
515 | .fa-warning:before,
516 | .fa-exclamation-triangle:before {
517 | content: "\f071";
518 | }
519 | .fa-plane:before {
520 | content: "\f072";
521 | }
522 | .fa-calendar:before {
523 | content: "\f073";
524 | }
525 | .fa-random:before {
526 | content: "\f074";
527 | }
528 | .fa-comment:before {
529 | content: "\f075";
530 | }
531 | .fa-magnet:before {
532 | content: "\f076";
533 | }
534 | .fa-chevron-up:before {
535 | content: "\f077";
536 | }
537 | .fa-chevron-down:before {
538 | content: "\f078";
539 | }
540 | .fa-retweet:before {
541 | content: "\f079";
542 | }
543 | .fa-shopping-cart:before {
544 | content: "\f07a";
545 | }
546 | .fa-folder:before {
547 | content: "\f07b";
548 | }
549 | .fa-folder-open:before {
550 | content: "\f07c";
551 | }
552 | .fa-arrows-v:before {
553 | content: "\f07d";
554 | }
555 | .fa-arrows-h:before {
556 | content: "\f07e";
557 | }
558 | .fa-bar-chart-o:before {
559 | content: "\f080";
560 | }
561 | .fa-twitter-square:before {
562 | content: "\f081";
563 | }
564 | .fa-facebook-square:before {
565 | content: "\f082";
566 | }
567 | .fa-camera-retro:before {
568 | content: "\f083";
569 | }
570 | .fa-key:before {
571 | content: "\f084";
572 | }
573 | .fa-gears:before,
574 | .fa-cogs:before {
575 | content: "\f085";
576 | }
577 | .fa-comments:before {
578 | content: "\f086";
579 | }
580 | .fa-thumbs-o-up:before {
581 | content: "\f087";
582 | }
583 | .fa-thumbs-o-down:before {
584 | content: "\f088";
585 | }
586 | .fa-star-half:before {
587 | content: "\f089";
588 | }
589 | .fa-heart-o:before {
590 | content: "\f08a";
591 | }
592 | .fa-sign-out:before {
593 | content: "\f08b";
594 | }
595 | .fa-linkedin-square:before {
596 | content: "\f08c";
597 | }
598 | .fa-thumb-tack:before {
599 | content: "\f08d";
600 | }
601 | .fa-external-link:before {
602 | content: "\f08e";
603 | }
604 | .fa-sign-in:before {
605 | content: "\f090";
606 | }
607 | .fa-trophy:before {
608 | content: "\f091";
609 | }
610 | .fa-github-square:before {
611 | content: "\f092";
612 | }
613 | .fa-upload:before {
614 | content: "\f093";
615 | }
616 | .fa-lemon-o:before {
617 | content: "\f094";
618 | }
619 | .fa-phone:before {
620 | content: "\f095";
621 | }
622 | .fa-square-o:before {
623 | content: "\f096";
624 | }
625 | .fa-bookmark-o:before {
626 | content: "\f097";
627 | }
628 | .fa-phone-square:before {
629 | content: "\f098";
630 | }
631 | .fa-twitter:before {
632 | content: "\f099";
633 | }
634 | .fa-facebook:before {
635 | content: "\f09a";
636 | }
637 | .fa-github:before {
638 | content: "\f09b";
639 | }
640 | .fa-unlock:before {
641 | content: "\f09c";
642 | }
643 | .fa-credit-card:before {
644 | content: "\f09d";
645 | }
646 | .fa-rss:before {
647 | content: "\f09e";
648 | }
649 | .fa-hdd-o:before {
650 | content: "\f0a0";
651 | }
652 | .fa-bullhorn:before {
653 | content: "\f0a1";
654 | }
655 | .fa-bell:before {
656 | content: "\f0f3";
657 | }
658 | .fa-certificate:before {
659 | content: "\f0a3";
660 | }
661 | .fa-hand-o-right:before {
662 | content: "\f0a4";
663 | }
664 | .fa-hand-o-left:before {
665 | content: "\f0a5";
666 | }
667 | .fa-hand-o-up:before {
668 | content: "\f0a6";
669 | }
670 | .fa-hand-o-down:before {
671 | content: "\f0a7";
672 | }
673 | .fa-arrow-circle-left:before {
674 | content: "\f0a8";
675 | }
676 | .fa-arrow-circle-right:before {
677 | content: "\f0a9";
678 | }
679 | .fa-arrow-circle-up:before {
680 | content: "\f0aa";
681 | }
682 | .fa-arrow-circle-down:before {
683 | content: "\f0ab";
684 | }
685 | .fa-globe:before {
686 | content: "\f0ac";
687 | }
688 | .fa-wrench:before {
689 | content: "\f0ad";
690 | }
691 | .fa-tasks:before {
692 | content: "\f0ae";
693 | }
694 | .fa-filter:before {
695 | content: "\f0b0";
696 | }
697 | .fa-briefcase:before {
698 | content: "\f0b1";
699 | }
700 | .fa-arrows-alt:before {
701 | content: "\f0b2";
702 | }
703 | .fa-group:before,
704 | .fa-users:before {
705 | content: "\f0c0";
706 | }
707 | .fa-chain:before,
708 | .fa-link:before {
709 | content: "\f0c1";
710 | }
711 | .fa-cloud:before {
712 | content: "\f0c2";
713 | }
714 | .fa-flask:before {
715 | content: "\f0c3";
716 | }
717 | .fa-cut:before,
718 | .fa-scissors:before {
719 | content: "\f0c4";
720 | }
721 | .fa-copy:before,
722 | .fa-files-o:before {
723 | content: "\f0c5";
724 | }
725 | .fa-paperclip:before {
726 | content: "\f0c6";
727 | }
728 | .fa-save:before,
729 | .fa-floppy-o:before {
730 | content: "\f0c7";
731 | }
732 | .fa-square:before {
733 | content: "\f0c8";
734 | }
735 | .fa-bars:before {
736 | content: "\f0c9";
737 | }
738 | .fa-list-ul:before {
739 | content: "\f0ca";
740 | }
741 | .fa-list-ol:before {
742 | content: "\f0cb";
743 | }
744 | .fa-strikethrough:before {
745 | content: "\f0cc";
746 | }
747 | .fa-underline:before {
748 | content: "\f0cd";
749 | }
750 | .fa-table:before {
751 | content: "\f0ce";
752 | }
753 | .fa-magic:before {
754 | content: "\f0d0";
755 | }
756 | .fa-truck:before {
757 | content: "\f0d1";
758 | }
759 | .fa-pinterest:before {
760 | content: "\f0d2";
761 | }
762 | .fa-pinterest-square:before {
763 | content: "\f0d3";
764 | }
765 | .fa-google-plus-square:before {
766 | content: "\f0d4";
767 | }
768 | .fa-google-plus:before {
769 | content: "\f0d5";
770 | }
771 | .fa-money:before {
772 | content: "\f0d6";
773 | }
774 | .fa-caret-down:before {
775 | content: "\f0d7";
776 | }
777 | .fa-caret-up:before {
778 | content: "\f0d8";
779 | }
780 | .fa-caret-left:before {
781 | content: "\f0d9";
782 | }
783 | .fa-caret-right:before {
784 | content: "\f0da";
785 | }
786 | .fa-columns:before {
787 | content: "\f0db";
788 | }
789 | .fa-unsorted:before,
790 | .fa-sort:before {
791 | content: "\f0dc";
792 | }
793 | .fa-sort-down:before,
794 | .fa-sort-asc:before {
795 | content: "\f0dd";
796 | }
797 | .fa-sort-up:before,
798 | .fa-sort-desc:before {
799 | content: "\f0de";
800 | }
801 | .fa-envelope:before {
802 | content: "\f0e0";
803 | }
804 | .fa-linkedin:before {
805 | content: "\f0e1";
806 | }
807 | .fa-rotate-left:before,
808 | .fa-undo:before {
809 | content: "\f0e2";
810 | }
811 | .fa-legal:before,
812 | .fa-gavel:before {
813 | content: "\f0e3";
814 | }
815 | .fa-dashboard:before,
816 | .fa-tachometer:before {
817 | content: "\f0e4";
818 | }
819 | .fa-comment-o:before {
820 | content: "\f0e5";
821 | }
822 | .fa-comments-o:before {
823 | content: "\f0e6";
824 | }
825 | .fa-flash:before,
826 | .fa-bolt:before {
827 | content: "\f0e7";
828 | }
829 | .fa-sitemap:before {
830 | content: "\f0e8";
831 | }
832 | .fa-umbrella:before {
833 | content: "\f0e9";
834 | }
835 | .fa-paste:before,
836 | .fa-clipboard:before {
837 | content: "\f0ea";
838 | }
839 | .fa-lightbulb-o:before {
840 | content: "\f0eb";
841 | }
842 | .fa-exchange:before {
843 | content: "\f0ec";
844 | }
845 | .fa-cloud-download:before {
846 | content: "\f0ed";
847 | }
848 | .fa-cloud-upload:before {
849 | content: "\f0ee";
850 | }
851 | .fa-user-md:before {
852 | content: "\f0f0";
853 | }
854 | .fa-stethoscope:before {
855 | content: "\f0f1";
856 | }
857 | .fa-suitcase:before {
858 | content: "\f0f2";
859 | }
860 | .fa-bell-o:before {
861 | content: "\f0a2";
862 | }
863 | .fa-coffee:before {
864 | content: "\f0f4";
865 | }
866 | .fa-cutlery:before {
867 | content: "\f0f5";
868 | }
869 | .fa-file-text-o:before {
870 | content: "\f0f6";
871 | }
872 | .fa-building-o:before {
873 | content: "\f0f7";
874 | }
875 | .fa-hospital-o:before {
876 | content: "\f0f8";
877 | }
878 | .fa-ambulance:before {
879 | content: "\f0f9";
880 | }
881 | .fa-medkit:before {
882 | content: "\f0fa";
883 | }
884 | .fa-fighter-jet:before {
885 | content: "\f0fb";
886 | }
887 | .fa-beer:before {
888 | content: "\f0fc";
889 | }
890 | .fa-h-square:before {
891 | content: "\f0fd";
892 | }
893 | .fa-plus-square:before {
894 | content: "\f0fe";
895 | }
896 | .fa-angle-double-left:before {
897 | content: "\f100";
898 | }
899 | .fa-angle-double-right:before {
900 | content: "\f101";
901 | }
902 | .fa-angle-double-up:before {
903 | content: "\f102";
904 | }
905 | .fa-angle-double-down:before {
906 | content: "\f103";
907 | }
908 | .fa-angle-left:before {
909 | content: "\f104";
910 | }
911 | .fa-angle-right:before {
912 | content: "\f105";
913 | }
914 | .fa-angle-up:before {
915 | content: "\f106";
916 | }
917 | .fa-angle-down:before {
918 | content: "\f107";
919 | }
920 | .fa-desktop:before {
921 | content: "\f108";
922 | }
923 | .fa-laptop:before {
924 | content: "\f109";
925 | }
926 | .fa-tablet:before {
927 | content: "\f10a";
928 | }
929 | .fa-mobile-phone:before,
930 | .fa-mobile:before {
931 | content: "\f10b";
932 | }
933 | .fa-circle-o:before {
934 | content: "\f10c";
935 | }
936 | .fa-quote-left:before {
937 | content: "\f10d";
938 | }
939 | .fa-quote-right:before {
940 | content: "\f10e";
941 | }
942 | .fa-spinner:before {
943 | content: "\f110";
944 | }
945 | .fa-circle:before {
946 | content: "\f111";
947 | }
948 | .fa-mail-reply:before,
949 | .fa-reply:before {
950 | content: "\f112";
951 | }
952 | .fa-github-alt:before {
953 | content: "\f113";
954 | }
955 | .fa-folder-o:before {
956 | content: "\f114";
957 | }
958 | .fa-folder-open-o:before {
959 | content: "\f115";
960 | }
961 | .fa-smile-o:before {
962 | content: "\f118";
963 | }
964 | .fa-frown-o:before {
965 | content: "\f119";
966 | }
967 | .fa-meh-o:before {
968 | content: "\f11a";
969 | }
970 | .fa-gamepad:before {
971 | content: "\f11b";
972 | }
973 | .fa-keyboard-o:before {
974 | content: "\f11c";
975 | }
976 | .fa-flag-o:before {
977 | content: "\f11d";
978 | }
979 | .fa-flag-checkered:before {
980 | content: "\f11e";
981 | }
982 | .fa-terminal:before {
983 | content: "\f120";
984 | }
985 | .fa-code:before {
986 | content: "\f121";
987 | }
988 | .fa-reply-all:before {
989 | content: "\f122";
990 | }
991 | .fa-mail-reply-all:before {
992 | content: "\f122";
993 | }
994 | .fa-star-half-empty:before,
995 | .fa-star-half-full:before,
996 | .fa-star-half-o:before {
997 | content: "\f123";
998 | }
999 | .fa-location-arrow:before {
1000 | content: "\f124";
1001 | }
1002 | .fa-crop:before {
1003 | content: "\f125";
1004 | }
1005 | .fa-code-fork:before {
1006 | content: "\f126";
1007 | }
1008 | .fa-unlink:before,
1009 | .fa-chain-broken:before {
1010 | content: "\f127";
1011 | }
1012 | .fa-question:before {
1013 | content: "\f128";
1014 | }
1015 | .fa-info:before {
1016 | content: "\f129";
1017 | }
1018 | .fa-exclamation:before {
1019 | content: "\f12a";
1020 | }
1021 | .fa-superscript:before {
1022 | content: "\f12b";
1023 | }
1024 | .fa-subscript:before {
1025 | content: "\f12c";
1026 | }
1027 | .fa-eraser:before {
1028 | content: "\f12d";
1029 | }
1030 | .fa-puzzle-piece:before {
1031 | content: "\f12e";
1032 | }
1033 | .fa-microphone:before {
1034 | content: "\f130";
1035 | }
1036 | .fa-microphone-slash:before {
1037 | content: "\f131";
1038 | }
1039 | .fa-shield:before {
1040 | content: "\f132";
1041 | }
1042 | .fa-calendar-o:before {
1043 | content: "\f133";
1044 | }
1045 | .fa-fire-extinguisher:before {
1046 | content: "\f134";
1047 | }
1048 | .fa-rocket:before {
1049 | content: "\f135";
1050 | }
1051 | .fa-maxcdn:before {
1052 | content: "\f136";
1053 | }
1054 | .fa-chevron-circle-left:before {
1055 | content: "\f137";
1056 | }
1057 | .fa-chevron-circle-right:before {
1058 | content: "\f138";
1059 | }
1060 | .fa-chevron-circle-up:before {
1061 | content: "\f139";
1062 | }
1063 | .fa-chevron-circle-down:before {
1064 | content: "\f13a";
1065 | }
1066 | .fa-html5:before {
1067 | content: "\f13b";
1068 | }
1069 | .fa-css3:before {
1070 | content: "\f13c";
1071 | }
1072 | .fa-anchor:before {
1073 | content: "\f13d";
1074 | }
1075 | .fa-unlock-alt:before {
1076 | content: "\f13e";
1077 | }
1078 | .fa-bullseye:before {
1079 | content: "\f140";
1080 | }
1081 | .fa-ellipsis-h:before {
1082 | content: "\f141";
1083 | }
1084 | .fa-ellipsis-v:before {
1085 | content: "\f142";
1086 | }
1087 | .fa-rss-square:before {
1088 | content: "\f143";
1089 | }
1090 | .fa-play-circle:before {
1091 | content: "\f144";
1092 | }
1093 | .fa-ticket:before {
1094 | content: "\f145";
1095 | }
1096 | .fa-minus-square:before {
1097 | content: "\f146";
1098 | }
1099 | .fa-minus-square-o:before {
1100 | content: "\f147";
1101 | }
1102 | .fa-level-up:before {
1103 | content: "\f148";
1104 | }
1105 | .fa-level-down:before {
1106 | content: "\f149";
1107 | }
1108 | .fa-check-square:before {
1109 | content: "\f14a";
1110 | }
1111 | .fa-pencil-square:before {
1112 | content: "\f14b";
1113 | }
1114 | .fa-external-link-square:before {
1115 | content: "\f14c";
1116 | }
1117 | .fa-share-square:before {
1118 | content: "\f14d";
1119 | }
1120 | .fa-compass:before {
1121 | content: "\f14e";
1122 | }
1123 | .fa-toggle-down:before,
1124 | .fa-caret-square-o-down:before {
1125 | content: "\f150";
1126 | }
1127 | .fa-toggle-up:before,
1128 | .fa-caret-square-o-up:before {
1129 | content: "\f151";
1130 | }
1131 | .fa-toggle-right:before,
1132 | .fa-caret-square-o-right:before {
1133 | content: "\f152";
1134 | }
1135 | .fa-euro:before,
1136 | .fa-eur:before {
1137 | content: "\f153";
1138 | }
1139 | .fa-gbp:before {
1140 | content: "\f154";
1141 | }
1142 | .fa-dollar:before,
1143 | .fa-usd:before {
1144 | content: "\f155";
1145 | }
1146 | .fa-rupee:before,
1147 | .fa-inr:before {
1148 | content: "\f156";
1149 | }
1150 | .fa-cny:before,
1151 | .fa-rmb:before,
1152 | .fa-yen:before,
1153 | .fa-jpy:before {
1154 | content: "\f157";
1155 | }
1156 | .fa-ruble:before,
1157 | .fa-rouble:before,
1158 | .fa-rub:before {
1159 | content: "\f158";
1160 | }
1161 | .fa-won:before,
1162 | .fa-krw:before {
1163 | content: "\f159";
1164 | }
1165 | .fa-bitcoin:before,
1166 | .fa-btc:before {
1167 | content: "\f15a";
1168 | }
1169 | .fa-file:before {
1170 | content: "\f15b";
1171 | }
1172 | .fa-file-text:before {
1173 | content: "\f15c";
1174 | }
1175 | .fa-sort-alpha-asc:before {
1176 | content: "\f15d";
1177 | }
1178 | .fa-sort-alpha-desc:before {
1179 | content: "\f15e";
1180 | }
1181 | .fa-sort-amount-asc:before {
1182 | content: "\f160";
1183 | }
1184 | .fa-sort-amount-desc:before {
1185 | content: "\f161";
1186 | }
1187 | .fa-sort-numeric-asc:before {
1188 | content: "\f162";
1189 | }
1190 | .fa-sort-numeric-desc:before {
1191 | content: "\f163";
1192 | }
1193 | .fa-thumbs-up:before {
1194 | content: "\f164";
1195 | }
1196 | .fa-thumbs-down:before {
1197 | content: "\f165";
1198 | }
1199 | .fa-youtube-square:before {
1200 | content: "\f166";
1201 | }
1202 | .fa-youtube:before {
1203 | content: "\f167";
1204 | }
1205 | .fa-xing:before {
1206 | content: "\f168";
1207 | }
1208 | .fa-xing-square:before {
1209 | content: "\f169";
1210 | }
1211 | .fa-youtube-play:before {
1212 | content: "\f16a";
1213 | }
1214 | .fa-dropbox:before {
1215 | content: "\f16b";
1216 | }
1217 | .fa-stack-overflow:before {
1218 | content: "\f16c";
1219 | }
1220 | .fa-instagram:before {
1221 | content: "\f16d";
1222 | }
1223 | .fa-flickr:before {
1224 | content: "\f16e";
1225 | }
1226 | .fa-adn:before {
1227 | content: "\f170";
1228 | }
1229 | .fa-bitbucket:before {
1230 | content: "\f171";
1231 | }
1232 | .fa-bitbucket-square:before {
1233 | content: "\f172";
1234 | }
1235 | .fa-tumblr:before {
1236 | content: "\f173";
1237 | }
1238 | .fa-tumblr-square:before {
1239 | content: "\f174";
1240 | }
1241 | .fa-long-arrow-down:before {
1242 | content: "\f175";
1243 | }
1244 | .fa-long-arrow-up:before {
1245 | content: "\f176";
1246 | }
1247 | .fa-long-arrow-left:before {
1248 | content: "\f177";
1249 | }
1250 | .fa-long-arrow-right:before {
1251 | content: "\f178";
1252 | }
1253 | .fa-apple:before {
1254 | content: "\f179";
1255 | }
1256 | .fa-windows:before {
1257 | content: "\f17a";
1258 | }
1259 | .fa-android:before {
1260 | content: "\f17b";
1261 | }
1262 | .fa-linux:before {
1263 | content: "\f17c";
1264 | }
1265 | .fa-dribbble:before {
1266 | content: "\f17d";
1267 | }
1268 | .fa-skype:before {
1269 | content: "\f17e";
1270 | }
1271 | .fa-foursquare:before {
1272 | content: "\f180";
1273 | }
1274 | .fa-trello:before {
1275 | content: "\f181";
1276 | }
1277 | .fa-female:before {
1278 | content: "\f182";
1279 | }
1280 | .fa-male:before {
1281 | content: "\f183";
1282 | }
1283 | .fa-gittip:before {
1284 | content: "\f184";
1285 | }
1286 | .fa-sun-o:before {
1287 | content: "\f185";
1288 | }
1289 | .fa-moon-o:before {
1290 | content: "\f186";
1291 | }
1292 | .fa-archive:before {
1293 | content: "\f187";
1294 | }
1295 | .fa-bug:before {
1296 | content: "\f188";
1297 | }
1298 | .fa-vk:before {
1299 | content: "\f189";
1300 | }
1301 | .fa-weibo:before {
1302 | content: "\f18a";
1303 | }
1304 | .fa-renren:before {
1305 | content: "\f18b";
1306 | }
1307 | .fa-pagelines:before {
1308 | content: "\f18c";
1309 | }
1310 | .fa-stack-exchange:before {
1311 | content: "\f18d";
1312 | }
1313 | .fa-arrow-circle-o-right:before {
1314 | content: "\f18e";
1315 | }
1316 | .fa-arrow-circle-o-left:before {
1317 | content: "\f190";
1318 | }
1319 | .fa-toggle-left:before,
1320 | .fa-caret-square-o-left:before {
1321 | content: "\f191";
1322 | }
1323 | .fa-dot-circle-o:before {
1324 | content: "\f192";
1325 | }
1326 | .fa-wheelchair:before {
1327 | content: "\f193";
1328 | }
1329 | .fa-vimeo-square:before {
1330 | content: "\f194";
1331 | }
1332 | .fa-turkish-lira:before,
1333 | .fa-try:before {
1334 | content: "\f195";
1335 | }
1336 | .fa-plus-square-o:before {
1337 | content: "\f196";
1338 | }
1339 |
--------------------------------------------------------------------------------