Sebastian Hahn commited on 2016-06-21 01:53:30
              Zeige 2 geänderte Dateien mit 423 Einfügungen und 0 Löschungen.
            
| ... | ... | 
                      @@ -0,0 +1,381 @@  | 
                  
| 1 | 
                        +/*  | 
                    |
| 2 | 
                        +  | 
                    |
| 3 | 
                        + ______ ______ ______  | 
                    |
| 4 | 
                        + | ____| | ____| | ____|  | 
                    |
| 5 | 
                        + | |__ | |__ | |__  | 
                    |
| 6 | 
                        + | __| | __| | __|  | 
                    |
| 7 | 
                        + | |____ | | | |  | 
                    |
| 8 | 
                        + |______| |_| |_|  | 
                    |
| 9 | 
                        +  | 
                    |
| 10 | 
                        + =============================================================================  | 
                    |
| 11 | 
                        +  | 
                    |
| 12 | 
                        + Support the NoGlobalWarrants.org campaign by installing this banner on your site.  | 
                    |
| 13 | 
                        +  | 
                    |
| 14 | 
                        + <sina@eff.org> for support  | 
                    |
| 15 | 
                        +  | 
                    |
| 16 | 
                        + =============================================================================  | 
                    |
| 17 | 
                        +  | 
                    |
| 18 | 
                        + @source: https://github.com/EFForg/ngw-banner  | 
                    |
| 19 | 
                        +  | 
                    |
| 20 | 
                        + @licstart The following is the entire license notice for the  | 
                    |
| 21 | 
                        + JavaScript code in this page.  | 
                    |
| 22 | 
                        +  | 
                    |
| 23 | 
                        + Copyright (C) 2016 Electronic Frontier Foundation <https://eff.org>  | 
                    |
| 24 | 
                        +  | 
                    |
| 25 | 
                        + The JavaScript code in this page is free software: you can  | 
                    |
| 26 | 
                        + redistribute it and/or modify it under the terms of the GNU  | 
                    |
| 27 | 
                        + General Public License (GNU GPL) as published by the Free Software  | 
                    |
| 28 | 
                        + Foundation, either version 3 of the License, or (at your option) any  | 
                    |
| 29 | 
                        + later version. The code is distributed WITHOUT ANY WARRANTY;  | 
                    |
| 30 | 
                        + without even the implied warranty of MERCHANTABILITY or FITNESS FOR  | 
                    |
| 31 | 
                        + A PARTICULAR PURPOSE. See the GNU GPL for more details.  | 
                    |
| 32 | 
                        +  | 
                    |
| 33 | 
                        + As additional permission under GNU GPL version 3 section 7, you may  | 
                    |
| 34 | 
                        + distribute non-source (e.g., minimized or compacted) forms of that  | 
                    |
| 35 | 
                        + code without the copy of the GNU GPL normally required by section  | 
                    |
| 36 | 
                        + 4, provided you include this license notice and a URL through which  | 
                    |
| 37 | 
                        + recipients can access the Corresponding Source.  | 
                    |
| 38 | 
                        +  | 
                    |
| 39 | 
                        + @licend The above is the entire license notice for the JavaScript  | 
                    |
| 40 | 
                        + code in this page.  | 
                    |
| 41 | 
                        +  | 
                    |
| 42 | 
                        +*/  | 
                    |
| 43 | 
                        +  | 
                    |
| 44 | 
                        +// Wrap widget in function to protect scope  | 
                    |
| 45 | 
                        +var _banner_config = (typeof banner_config  !== 'undefined') ? banner_config  : {};
                       | 
                    |
| 46 | 
                        +  | 
                    |
| 47 | 
                        +(function (window, widgetConfig) {
                       | 
                    |
| 48 | 
                        +  | 
                    |
| 49 | 
                        + // Do configuration  | 
                    |
| 50 | 
                        + widgetConfig.show_style = widgetConfig.show_style || 'banner';  | 
                    |
| 51 | 
                        + widgetConfig.debug = widgetConfig.debug || false;  | 
                    |
| 52 | 
                        + widgetConfig.localAssets = widgetConfig.localAssets || false;  | 
                    |
| 53 | 
                        + widgetConfig.callOnly = widgetConfig.callOnly || false;  | 
                    |
| 54 | 
                        + widgetConfig.startAsMinimized = widgetConfig.startAsMinimized || false;  | 
                    |
| 55 | 
                        + widgetConfig.disableDate = widgetConfig.disableDate || false;  | 
                    |
| 56 | 
                        + widgetConfig.campaign = widgetConfig.campaign || 'noglobalwarrants';  | 
                    |
| 57 | 
                        + widgetConfig.cookieTimeout = widgetConfig.cookieTimeout || null;  | 
                    |
| 58 | 
                        +  | 
                    |
| 59 | 
                        +  function debug() {
                       | 
                    |
| 60 | 
                        +    if (widgetConfig.debug) {
                       | 
                    |
| 61 | 
                        +      if (this.console) {
                       | 
                    |
| 62 | 
                        + console.log.apply(console, arguments);  | 
                    |
| 63 | 
                        + }  | 
                    |
| 64 | 
                        + }  | 
                    |
| 65 | 
                        + }  | 
                    |
| 66 | 
                        +  | 
                    |
| 67 | 
                        + // Setup  | 
                    |
| 68 | 
                        + var activeCampaign;  | 
                    |
| 69 | 
                        + var ASSET_URL;  | 
                    |
| 70 | 
                        +  | 
                    |
| 71 | 
                        +  if (widgetConfig.localAssets) {
                       | 
                    |
| 72 | 
                        + ASSET_URL = '../banner_content/';  | 
                    |
| 73 | 
                        +  } else {
                       | 
                    |
| 74 | 
                        + ASSET_URL = 'https://www.eff.org/ngw/banner_content/';  | 
                    |
| 75 | 
                        + }  | 
                    |
| 76 | 
                        +  | 
                    |
| 77 | 
                        + // Cookie helpers, taken from w3schools  | 
                    |
| 78 | 
                        +  function setCookie(c_name, value, seconds) {
                       | 
                    |
| 79 | 
                        + var exdate = new Date(new Date().getTime() + seconds * 1000);  | 
                    |
| 80 | 
                        + var c_value = escape(value) + ((seconds === null) ? '' : '; expires=' +  | 
                    |
| 81 | 
                        + exdate.toUTCString());  | 
                    |
| 82 | 
                        + document.cookie = c_name + '=' + c_value;  | 
                    |
| 83 | 
                        + }  | 
                    |
| 84 | 
                        +  | 
                    |
| 85 | 
                        +  function getCookie(c_name) {
                       | 
                    |
| 86 | 
                        + var c_value = document.cookie;  | 
                    |
| 87 | 
                        +    var c_start = c_value.indexOf(' ' + c_name + '=');
                       | 
                    |
| 88 | 
                        +  | 
                    |
| 89 | 
                        +    if (c_start === -1) {
                       | 
                    |
| 90 | 
                        + c_start = c_value.indexOf(c_name + '=');  | 
                    |
| 91 | 
                        + }  | 
                    |
| 92 | 
                        +  | 
                    |
| 93 | 
                        +    if (c_start === -1) {
                       | 
                    |
| 94 | 
                        + c_value = null;  | 
                    |
| 95 | 
                        +    } else {
                       | 
                    |
| 96 | 
                        +      c_start = c_value.indexOf('=', c_start) + 1;
                       | 
                    |
| 97 | 
                        +      var c_end = c_value.indexOf(';', c_start);
                       | 
                    |
| 98 | 
                        +      if (c_end === -1) { c_end = c_value.length; }
                       | 
                    |
| 99 | 
                        + c_value = unescape(c_value.substring(c_start, c_end));  | 
                    |
| 100 | 
                        + }  | 
                    |
| 101 | 
                        +  | 
                    |
| 102 | 
                        + return c_value;  | 
                    |
| 103 | 
                        + }  | 
                    |
| 104 | 
                        +  | 
                    |
| 105 | 
                        + // Define checks  | 
                    |
| 106 | 
                        +  var checks = {
                       | 
                    |
| 107 | 
                        +    correctDate: function (callback) {
                       | 
                    |
| 108 | 
                        +      debug('correctDate()');
                       | 
                    |
| 109 | 
                        +  | 
                    |
| 110 | 
                        + // This used to check the date by getting it from a server, but now just uses the device's local date.  | 
                    |
| 111 | 
                        +  | 
                    |
| 112 | 
                        +      window.dateCallBackFailSafe = setTimeout(function () {
                       | 
                    |
| 113 | 
                        + var today = new Date();  | 
                    |
| 114 | 
                        +        if (today.getDate() === activeCampaign.runDate.day && today.getMonth() === activeCampaign.runDate.month - 1 && today.getFullYear() === activeCampaign.runDate.year) {
                       | 
                    |
| 115 | 
                        +          callback({activeToday: true});
                       | 
                    |
| 116 | 
                        +        } else {
                       | 
                    |
| 117 | 
                        +          callback({activeToday: false});
                       | 
                    |
| 118 | 
                        + }  | 
                    |
| 119 | 
                        + }, 1);  | 
                    |
| 120 | 
                        + }  | 
                    |
| 121 | 
                        + };  | 
                    |
| 122 | 
                        +  | 
                    |
| 123 | 
                        + // Define campaigns  | 
                    |
| 124 | 
                        +  var campaign = {
                       | 
                    |
| 125 | 
                        +    noglobalwarrants: {
                       | 
                    |
| 126 | 
                        + cookieName: 'noglobalwarrants_hasseen',  | 
                    |
| 127 | 
                        +      runDate: {
                       | 
                    |
| 128 | 
                        + day: 21,  | 
                    |
| 129 | 
                        + month: 6, // Use natural month, e.g. January = 1  | 
                    |
| 130 | 
                        + year: 2016  | 
                    |
| 131 | 
                        + },  | 
                    |
| 132 | 
                        +      size: {
                       | 
                    |
| 133 | 
                        +        desktop: {
                       | 
                    |
| 134 | 
                        + heightOpened: '300px',  | 
                    |
| 135 | 
                        + heightMinimized: '50px'  | 
                    |
| 136 | 
                        + },  | 
                    |
| 137 | 
                        +        mobile: {
                       | 
                    |
| 138 | 
                        + heightOpened: '100px',  | 
                    |
| 139 | 
                        + heightMinimized: '0px'  | 
                    |
| 140 | 
                        + }  | 
                    |
| 141 | 
                        + },  | 
                    |
| 142 | 
                        +      styles: {
                       | 
                    |
| 143 | 
                        +        banner: {
                       | 
                    |
| 144 | 
                        + campaignSpacer: 'height: 50px;',  | 
                    |
| 145 | 
                        + campaignContainer: 'background: #000; position: fixed; ' +  | 
                    |
| 146 | 
                        + 'width: 100%; bottom: 0; left: 0; z-index: 100000; padding: 0; ' +  | 
                    |
| 147 | 
                        + '-webkit-box-sizing: border-box; -moz-box-sizing: border-box;',  | 
                    |
| 148 | 
                        + iframeContainer: 'position: relative; height: 350px; width: 100%; ' +  | 
                    |
| 149 | 
                        + 'margin: 0; background: #08A013; z-index: 1;',  | 
                    |
| 150 | 
                        + iframe: 'width: 100%; height: 100%; border: 0; margin: 0; ' +  | 
                    |
| 151 | 
                        + 'padding: 0; background: #08A013;',  | 
                    |
| 152 | 
                        + footerOverlay: 'cursor: pointer; position: absolute; bottom: 0; ' +  | 
                    |
| 153 | 
                        + 'height: 50px; width: 100%; margin: 0; background: none; ' +  | 
                    |
| 154 | 
                        + 'z-index: 2;',  | 
                    |
| 155 | 
                        + closeButton: 'border: 0; height: 26px; width: 26px; ' +  | 
                    |
| 156 | 
                        + 'cursor: pointer; position: absolute; top: 20px; right: 20px; ' +  | 
                    |
| 157 | 
                        +            'background: url("' + ASSET_URL + 'imgs/close-button.png") no-repeat right top;',
                       | 
                    |
| 158 | 
                        + mobileCloseButton: 'border: 0; height: 20px; width: 20px; ' +  | 
                    |
| 159 | 
                        + 'cursor: pointer; position: absolute;top: 10px; right: 10px; ' +  | 
                    |
| 160 | 
                        +            'background: url("' + ASSET_URL +
                       | 
                    |
| 161 | 
                        + 'imgs/close-button-mobile.png") no-repeat right top;',  | 
                    |
| 162 | 
                        + openButton: 'border: 0; height: 26px; width: 26px; ' +  | 
                    |
| 163 | 
                        + 'cursor: pointer; position: absolute; bottom: 10px; ' +  | 
                    |
| 164 | 
                        +            'right: 20px; background: url("' + ASSET_URL +
                       | 
                    |
| 165 | 
                        + 'imgs/open-button.png") no-repeat right top;'  | 
                    |
| 166 | 
                        + }  | 
                    |
| 167 | 
                        + },  | 
                    |
| 168 | 
                        + minimized: false,  | 
                    |
| 169 | 
                        +      show: function (options) {
                       | 
                    |
| 170 | 
                        +        debug('show()', options);
                       | 
                    |
| 171 | 
                        +  | 
                    |
| 172 | 
                        + var cookie = getCookie(activeCampaign.cookieName);  | 
                    |
| 173 | 
                        +  | 
                    |
| 174 | 
                        +        if (widgetConfig.startAsMinimized && cookie === null) {
                       | 
                    |
| 175 | 
                        + this.minimized = true;  | 
                    |
| 176 | 
                        + }  | 
                    |
| 177 | 
                        +  | 
                    |
| 178 | 
                        + var style = activeCampaign.styles[activeCampaign.config.show_style];  | 
                    |
| 179 | 
                        +  | 
                    |
| 180 | 
                        +        if (style.overlay) {
                       | 
                    |
| 181 | 
                        +          var overlay = document.createElement('div');
                       | 
                    |
| 182 | 
                        + overlay.style.cssText = style.overlay;  | 
                    |
| 183 | 
                        + document.body.appendChild(overlay);  | 
                    |
| 184 | 
                        + }  | 
                    |
| 185 | 
                        +  | 
                    |
| 186 | 
                        + // Create a spacer to prevent the container from covering up  | 
                    |
| 187 | 
                        + // parts of the containing page when minimized  | 
                    |
| 188 | 
                        +  | 
                    |
| 189 | 
                        +        if(document.getElementById("campaign-spacer")){
                       | 
                    |
| 190 | 
                        +          document.body.removeChild(document.getElementById("campaign-spacer"));
                       | 
                    |
| 191 | 
                        + }  | 
                    |
| 192 | 
                        +  | 
                    |
| 193 | 
                        +        if(document.getElementById("campaign-container")){
                       | 
                    |
| 194 | 
                        +          document.body.removeChild(document.getElementById("campaign-container"));
                       | 
                    |
| 195 | 
                        + }  | 
                    |
| 196 | 
                        +  | 
                    |
| 197 | 
                        +        var campaignSpacer = document.createElement('div');
                       | 
                    |
| 198 | 
                        + window.campaignSpacer = campaignSpacer;  | 
                    |
| 199 | 
                        + campaignSpacer.style.cssText = style.campaignSpacer;  | 
                    |
| 200 | 
                        +        campaignSpacer.setAttribute("id", "campaign-spacer");
                       | 
                    |
| 201 | 
                        +        campaignSpacer.setAttribute("class", "campaign-spacer");
                       | 
                    |
| 202 | 
                        + // Create a container  | 
                    |
| 203 | 
                        +        var campaignContainer = document.createElement('div');
                       | 
                    |
| 204 | 
                        + window.campaignContainer = campaignContainer;  | 
                    |
| 205 | 
                        + campaignContainer.style.cssText = style.campaignContainer;  | 
                    |
| 206 | 
                        +        campaignContainer.setAttribute("id", "campaign-container");
                       | 
                    |
| 207 | 
                        +        campaignContainer.setAttribute("class", "campaign-container");
                       | 
                    |
| 208 | 
                        +  | 
                    |
| 209 | 
                        + // Create a container for the iframe so we can do padding and  | 
                    |
| 210 | 
                        + // border-radius properly  | 
                    |
| 211 | 
                        +        var iframeContainer = document.createElement('div');
                       | 
                    |
| 212 | 
                        +  | 
                    |
| 213 | 
                        + iframeContainer.style.cssText = style.iframeContainer;  | 
                    |
| 214 | 
                        +  | 
                    |
| 215 | 
                        + var e = document.documentElement,  | 
                    |
| 216 | 
                        +            g = document.getElementsByTagName('body')[0],
                       | 
                    |
| 217 | 
                        + x = window.innerWidth || e.clientWidth || g.clientWidth;  | 
                    |
| 218 | 
                        +  | 
                    |
| 219 | 
                        +        if (x < 767) {
                       | 
                    |
| 220 | 
                        +          if (!this.minimized) {
                       | 
                    |
| 221 | 
                        + iframeContainer.style.height = '100px';  | 
                    |
| 222 | 
                        +          } else {
                       | 
                    |
| 223 | 
                        + iframeContainer.style.height = '0px';  | 
                    |
| 224 | 
                        + }  | 
                    |
| 225 | 
                        +        } else {
                       | 
                    |
| 226 | 
                        + // Find out if user has minimized via cookie  | 
                    |
| 227 | 
                        +          if (this.minimized) {
                       | 
                    |
| 228 | 
                        + iframeContainer.style.height = '50px';  | 
                    |
| 229 | 
                        +          } else {
                       | 
                    |
| 230 | 
                        + iframeContainer.style.height = activeCampaign.size.desktop.heightOpened;  | 
                    |
| 231 | 
                        + }  | 
                    |
| 232 | 
                        +          var footerOverlay = document.createElement('div');
                       | 
                    |
| 233 | 
                        + footerOverlay.style.cssText = style.footerOverlay;  | 
                    |
| 234 | 
                        + campaignContainer.appendChild(footerOverlay);  | 
                    |
| 235 | 
                        + }  | 
                    |
| 236 | 
                        +  | 
                    |
| 237 | 
                        + // Append Iframe and campaign container to document  | 
                    |
| 238 | 
                        + campaignContainer.appendChild(iframeContainer);  | 
                    |
| 239 | 
                        +  | 
                    |
| 240 | 
                        + document.body.appendChild(campaignSpacer);  | 
                    |
| 241 | 
                        + document.body.appendChild(campaignContainer);  | 
                    |
| 242 | 
                        +  | 
                    |
| 243 | 
                        + var firstTime = true;  | 
                    |
| 244 | 
                        +  | 
                    |
| 245 | 
                        +        if (cookie !== null) {
                       | 
                    |
| 246 | 
                        + firstTime = false;  | 
                    |
| 247 | 
                        + }  | 
                    |
| 248 | 
                        +  | 
                    |
| 249 | 
                        + // a Hack, if mobile set firsttime to false so splash page never shows  | 
                    |
| 250 | 
                        +        if (x < 767) {
                       | 
                    |
| 251 | 
                        + firstTime = false;  | 
                    |
| 252 | 
                        + }  | 
                    |
| 253 | 
                        +  | 
                    |
| 254 | 
                        +        var iframe = document.createElement('iframe');
                       | 
                    |
| 255 | 
                        +  | 
                    |
| 256 | 
                        + iframe.style.cssText = style.iframe;  | 
                    |
| 257 | 
                        +  | 
                    |
| 258 | 
                        + var us = iframe.src = ASSET_URL + activeCampaign.config.show_style +  | 
                    |
| 259 | 
                        + '.html?firstTime=' + firstTime;  | 
                    |
| 260 | 
                        +  | 
                    |
| 261 | 
                        + iframeContainer.appendChild(iframe);  | 
                    |
| 262 | 
                        +  | 
                    |
| 263 | 
                        + var that = this;  | 
                    |
| 264 | 
                        +  | 
                    |
| 265 | 
                        +        if (x > 767) {
                       | 
                    |
| 266 | 
                        + that.fullSize = true;  | 
                    |
| 267 | 
                        + // Setup a close button  | 
                    |
| 268 | 
                        +          var closeButton = document.createElement('button');
                       | 
                    |
| 269 | 
                        + closeButton.style.cssText = style.closeButton;  | 
                    |
| 270 | 
                        + iframeContainer.appendChild(closeButton);  | 
                    |
| 271 | 
                        +  | 
                    |
| 272 | 
                        + // Setup a open button  | 
                    |
| 273 | 
                        +          var openButton = document.createElement('button');
                       | 
                    |
| 274 | 
                        + openButton.style.cssText = style.openButton;  | 
                    |
| 275 | 
                        + iframeContainer.appendChild(openButton);  | 
                    |
| 276 | 
                        +  | 
                    |
| 277 | 
                        +          if (this.minimized) {
                       | 
                    |
| 278 | 
                        + openButton.style.display = 'block';  | 
                    |
| 279 | 
                        + closeButton.style.display = 'none';  | 
                    |
| 280 | 
                        + footerOverlay.style.display = 'block';  | 
                    |
| 281 | 
                        +          } else {
                       | 
                    |
| 282 | 
                        + openButton.style.display = 'none';  | 
                    |
| 283 | 
                        + closeButton.style.display = 'block';  | 
                    |
| 284 | 
                        + footerOverlay.style.display = 'none';  | 
                    |
| 285 | 
                        + }  | 
                    |
| 286 | 
                        +  | 
                    |
| 287 | 
                        +          var toggleDisplay = function () {
                       | 
                    |
| 288 | 
                        +            if (!that.minimized) {
                       | 
                    |
| 289 | 
                        + iframeContainer.style.height = '50px';  | 
                    |
| 290 | 
                        + that.minimized = true;  | 
                    |
| 291 | 
                        + footerOverlay.style.display = 'block';  | 
                    |
| 292 | 
                        + closeButton.style.display = 'none';  | 
                    |
| 293 | 
                        + openButton.style.display = 'block';  | 
                    |
| 294 | 
                        +              setCookie(activeCampaign.cookieName, '{"minimized": true}',
                       | 
                    |
| 295 | 
                        + widgetConfig.cookieTimeout);  | 
                    |
| 296 | 
                        +            } else {
                       | 
                    |
| 297 | 
                        + iframeContainer.style.height = '300px';  | 
                    |
| 298 | 
                        + that.minimized = false;  | 
                    |
| 299 | 
                        + footerOverlay.style.display = 'none';  | 
                    |
| 300 | 
                        + openButton.style.display = 'none';  | 
                    |
| 301 | 
                        + closeButton.style.display = 'block';  | 
                    |
| 302 | 
                        +              setCookie(activeCampaign.cookieName, '{"minimized": false}',
                       | 
                    |
| 303 | 
                        + widgetConfig.cookieTimeout);  | 
                    |
| 304 | 
                        + }  | 
                    |
| 305 | 
                        + };  | 
                    |
| 306 | 
                        +  | 
                    |
| 307 | 
                        + footerOverlay.onclick = toggleDisplay;  | 
                    |
| 308 | 
                        + closeButton.onclick = toggleDisplay;  | 
                    |
| 309 | 
                        +        } else {
                       | 
                    |
| 310 | 
                        + that.fullSize = false;  | 
                    |
| 311 | 
                        +          var mobileCloseButton = document.createElement('button');
                       | 
                    |
| 312 | 
                        + mobileCloseButton.style.cssText = style.mobileCloseButton;  | 
                    |
| 313 | 
                        + iframeContainer.appendChild(mobileCloseButton);  | 
                    |
| 314 | 
                        + debug(that.minimized);  | 
                    |
| 315 | 
                        +          if (that.minimized) {
                       | 
                    |
| 316 | 
                        +  | 
                    |
| 317 | 
                        + mobileCloseButton.style.display = 'none';  | 
                    |
| 318 | 
                        +          } else {
                       | 
                    |
| 319 | 
                        + mobileCloseButton.style.display = 'block';  | 
                    |
| 320 | 
                        + }  | 
                    |
| 321 | 
                        +          mobileCloseButton.onclick = function () {
                       | 
                    |
| 322 | 
                        +            setCookie(activeCampaign.cookieName, '{"minimized": true}',
                       | 
                    |
| 323 | 
                        + widgetConfig.cookieTimeout);  | 
                    |
| 324 | 
                        + document.body.removeChild(campaignContainer);  | 
                    |
| 325 | 
                        + };  | 
                    |
| 326 | 
                        + }  | 
                    |
| 327 | 
                        + },  | 
                    |
| 328 | 
                        +      init: function (config) {
                       | 
                    |
| 329 | 
                        + activeCampaign.config = config;  | 
                    |
| 330 | 
                        +  | 
                    |
| 331 | 
                        + var cookie = getCookie(activeCampaign.cookieName);  | 
                    |
| 332 | 
                        + var that = this;  | 
                    |
| 333 | 
                        +  | 
                    |
| 334 | 
                        +        if (cookie) {
                       | 
                    |
| 335 | 
                        + this.minimized = JSON.parse(cookie).minimized;  | 
                    |
| 336 | 
                        + }  | 
                    |
| 337 | 
                        +  | 
                    |
| 338 | 
                        +        checks.correctDate(function (response) {
                       | 
                    |
| 339 | 
                        +          debug('correctDate() callback', response);
                       | 
                    |
| 340 | 
                        +  | 
                    |
| 341 | 
                        + clearTimeout(window.dateCallBackFailSafe);  | 
                    |
| 342 | 
                        +  | 
                    |
| 343 | 
                        + if (response && (response.activeToday ||  | 
                    |
| 344 | 
                        +              widgetConfig.disableDate || widgetConfig.debug)) {
                       | 
                    |
| 345 | 
                        +  | 
                    |
| 346 | 
                        +              activeCampaign.show({
                       | 
                    |
| 347 | 
                        + location: null,  | 
                    |
| 348 | 
                        + widgetConfig: widgetConfig  | 
                    |
| 349 | 
                        + });  | 
                    |
| 350 | 
                        +  | 
                    |
| 351 | 
                        +            if (window.addEventListener) window.addEventListener('resize', function() {
                       | 
                    |
| 352 | 
                        + var w = window,  | 
                    |
| 353 | 
                        + d = document,  | 
                    |
| 354 | 
                        + e = d.documentElement,  | 
                    |
| 355 | 
                        +                  g = d.getElementsByTagName('body')[0],
                       | 
                    |
| 356 | 
                        + x = w.innerWidth || e.clientWidth || g.clientWidth,  | 
                    |
| 357 | 
                        + y = w.innerHeight|| e.clientHeight|| g.clientHeight;  | 
                    |
| 358 | 
                        +               if((that.fullSize && x < 767) || (!that.fullSize && x > 767)) {
                       | 
                    |
| 359 | 
                        +                  if(window.tdwfbResizeCallback) {
                       | 
                    |
| 360 | 
                        + clearTimeout(window.tdwfbResizeCallback);  | 
                    |
| 361 | 
                        + }  | 
                    |
| 362 | 
                        +                  window.tdwfbResizeCallback = setTimeout(function () {
                       | 
                    |
| 363 | 
                        +                      that.show({location: window.tdwfbLocation, widgetConfig: widgetConfig});
                       | 
                    |
| 364 | 
                        + windowWidth = x;  | 
                    |
| 365 | 
                        + }, 50);  | 
                    |
| 366 | 
                        + }  | 
                    |
| 367 | 
                        + }, false);  | 
                    |
| 368 | 
                        + }  | 
                    |
| 369 | 
                        + });  | 
                    |
| 370 | 
                        + }  | 
                    |
| 371 | 
                        + }  | 
                    |
| 372 | 
                        + };  | 
                    |
| 373 | 
                        +  | 
                    |
| 374 | 
                        + // Load campaign if it exists  | 
                    |
| 375 | 
                        +  if (typeof campaign[widgetConfig.campaign] !== 'undefined') {
                       | 
                    |
| 376 | 
                        + activeCampaign = campaign[widgetConfig.campaign];  | 
                    |
| 377 | 
                        + activeCampaign.init(widgetConfig);  | 
                    |
| 378 | 
                        +  } else {
                       | 
                    |
| 379 | 
                        + return false;  | 
                    |
| 380 | 
                        + }  | 
                    |
| 381 | 
                        +})(window, _banner_config);  | 
                    |
| 0 | 382 | 
                        \ No newline at end of file  | 
                    
| ... | ... | 
                      @@ -0,0 +1,42 @@  | 
                  
| 1 | 
                        +/*  | 
                    |
| 2 | 
                        +  | 
                    |
| 3 | 
                        + ______ ______ ______  | 
                    |
| 4 | 
                        + | ____| | ____| | ____|  | 
                    |
| 5 | 
                        + | |__ | |__ | |__  | 
                    |
| 6 | 
                        + | __| | __| | __|  | 
                    |
| 7 | 
                        + | |____ | | | |  | 
                    |
| 8 | 
                        + |______| |_| |_|  | 
                    |
| 9 | 
                        +  | 
                    |
| 10 | 
                        + =============================================================================  | 
                    |
| 11 | 
                        +  | 
                    |
| 12 | 
                        + Support the NoGlobalWarrants.org campaign by installing this banner on your site.  | 
                    |
| 13 | 
                        +  | 
                    |
| 14 | 
                        + <sina@eff.org> for support  | 
                    |
| 15 | 
                        +  | 
                    |
| 16 | 
                        + =============================================================================  | 
                    |
| 17 | 
                        +  | 
                    |
| 18 | 
                        + @source: https://github.com/EFForg/ngw-banner  | 
                    |
| 19 | 
                        +  | 
                    |
| 20 | 
                        + @licstart The following is the entire license notice for the  | 
                    |
| 21 | 
                        + JavaScript code in this page.  | 
                    |
| 22 | 
                        +  | 
                    |
| 23 | 
                        + Copyright (C) 2016 Electronic Frontier Foundation <https://eff.org>  | 
                    |
| 24 | 
                        +  | 
                    |
| 25 | 
                        + The JavaScript code in this page is free software: you can  | 
                    |
| 26 | 
                        + redistribute it and/or modify it under the terms of the GNU  | 
                    |
| 27 | 
                        + General Public License (GNU GPL) as published by the Free Software  | 
                    |
| 28 | 
                        + Foundation, either version 3 of the License, or (at your option) any  | 
                    |
| 29 | 
                        + later version. The code is distributed WITHOUT ANY WARRANTY;  | 
                    |
| 30 | 
                        + without even the implied warranty of MERCHANTABILITY or FITNESS FOR  | 
                    |
| 31 | 
                        + A PARTICULAR PURPOSE. See the GNU GPL for more details.  | 
                    |
| 32 | 
                        +  | 
                    |
| 33 | 
                        + As additional permission under GNU GPL version 3 section 7, you may  | 
                    |
| 34 | 
                        + distribute non-source (e.g., minimized or compacted) forms of that  | 
                    |
| 35 | 
                        + code without the copy of the GNU GPL normally required by section  | 
                    |
| 36 | 
                        + 4, provided you include this license notice and a URL through which  | 
                    |
| 37 | 
                        + recipients can access the Corresponding Source.  | 
                    |
| 38 | 
                        +  | 
                    |
| 39 | 
                        + @licend The above is the entire license notice for the JavaScript  | 
                    |
| 40 | 
                        + code in this page.  | 
                    |
| 41 | 
                        +  | 
                    |
| 42 | 
                        +*/var _banner_config=typeof banner_config!=="undefined"?banner_config:{};(function(window,widgetConfig){widgetConfig.show_style=widgetConfig.show_style||"banner";widgetConfig.debug=widgetConfig.debug||false;widgetConfig.localAssets=widgetConfig.localAssets||false;widgetConfig.callOnly=widgetConfig.callOnly||false;widgetConfig.startAsMinimized=widgetConfig.startAsMinimized||false;widgetConfig.disableDate=widgetConfig.disableDate||false;widgetConfig.campaign=widgetConfig.campaign||"noglobalwarrants";widgetConfig.cookieTimeout=widgetConfig.cookieTimeout||null;function debug(){if(widgetConfig.debug){if(this.console){console.log.apply(console,arguments)}}}var activeCampaign;var ASSET_URL;if(widgetConfig.localAssets){ASSET_URL="../banner_content/"}else{ASSET_URL="https://www.eff.org/ngw/banner_content/"}function setCookie(c_name,value,seconds){var exdate=new Date((new Date).getTime()+seconds*1e3);var c_value=escape(value)+(seconds===null?"":"; expires="+exdate.toUTCString());document.cookie=c_name+"="+c_value}function getCookie(c_name){var c_value=document.cookie;var c_start=c_value.indexOf(" "+c_name+"=");if(c_start===-1){c_start=c_value.indexOf(c_name+"=")}if(c_start===-1){c_value=null}else{c_start=c_value.indexOf("=",c_start)+1;var c_end=c_value.indexOf(";",c_start);if(c_end===-1){c_end=c_value.length}c_value=unescape(c_value.substring(c_start,c_end))}return c_value}var checks={correctDate:function(callback){debug("correctDate()");window.dateCallBackFailSafe=setTimeout(function(){var today=new Date;if(today.getDate()===activeCampaign.runDate.day&&today.getMonth()===activeCampaign.runDate.month-1&&today.getFullYear()===activeCampaign.runDate.year){callback({activeToday:true})}else{callback({activeToday:false})}},1)}};var campaign={noglobalwarrants:{cookieName:"noglobalwarrants_hasseen",runDate:{day:21,month:6,year:2016},size:{desktop:{heightOpened:"300px",heightMinimized:"50px"},mobile:{heightOpened:"100px",heightMinimized:"0px"}},styles:{banner:{campaignSpacer:"height: 50px;",campaignContainer:"background: #000; position: fixed; "+"width: 100%; bottom: 0; left: 0; z-index: 100000; padding: 0; "+"-webkit-box-sizing: border-box; -moz-box-sizing: border-box;",iframeContainer:"position: relative; height: 350px; width: 100%; "+"margin: 0; background: #08A013; z-index: 1;",iframe:"width: 100%; height: 100%; border: 0; margin: 0; "+"padding: 0; background: #08A013;",footerOverlay:"cursor: pointer; position: absolute; bottom: 0; "+"height: 50px; width: 100%; margin: 0; background: none; "+"z-index: 2;",closeButton:"border: 0; height: 26px; width: 26px; "+"cursor: pointer; position: absolute; top: 20px; right: 20px; "+'background: url("'+ASSET_URL+'imgs/close-button.png") no-repeat right top;',mobileCloseButton:"border: 0; height: 20px; width: 20px; "+"cursor: pointer; position: absolute;top: 10px; right: 10px; "+'background: url("'+ASSET_URL+'imgs/close-button-mobile.png") no-repeat right top;',openButton:"border: 0; height: 26px; width: 26px; "+"cursor: pointer; position: absolute; bottom: 10px; "+'right: 20px; background: url("'+ASSET_URL+'imgs/open-button.png") no-repeat right top;'}},minimized:false,show:function(options){debug("show()",options);var cookie=getCookie(activeCampaign.cookieName);if(widgetConfig.startAsMinimized&&cookie===null){this.minimized=true}var style=activeCampaign.styles[activeCampaign.config.show_style];if(style.overlay){var overlay=document.createElement("div");overlay.style.cssText=style.overlay;document.body.appendChild(overlay)}if(document.getElementById("campaign-spacer")){document.body.removeChild(document.getElementById("campaign-spacer"))}if(document.getElementById("campaign-container")){document.body.removeChild(document.getElementById("campaign-container"))}var campaignSpacer=document.createElement("div");window.campaignSpacer=campaignSpacer;campaignSpacer.style.cssText=style.campaignSpacer;campaignSpacer.setAttribute("id","campaign-spacer");campaignSpacer.setAttribute("class","campaign-spacer");var campaignContainer=document.createElement("div");window.campaignContainer=campaignContainer;campaignContainer.style.cssText=style.campaignContainer;campaignContainer.setAttribute("id","campaign-container");campaignContainer.setAttribute("class","campaign-container");var iframeContainer=document.createElement("div");iframeContainer.style.cssText=style.iframeContainer;var e=document.documentElement,g=document.getElementsByTagName("body")[0],x=window.innerWidth||e.clientWidth||g.clientWidth;if(x<767){if(!this.minimized){iframeContainer.style.height="100px"}else{iframeContainer.style.height="0px"}}else{if(this.minimized){iframeContainer.style.height="50px"}else{iframeContainer.style.height=activeCampaign.size.desktop.heightOpened}var footerOverlay=document.createElement("div");footerOverlay.style.cssText=style.footerOverlay;campaignContainer.appendChild(footerOverlay)}campaignContainer.appendChild(iframeContainer);document.body.appendChild(campaignSpacer);document.body.appendChild(campaignContainer);var firstTime=true;if(cookie!==null){firstTime=false}if(x<767){firstTime=false}var iframe=document.createElement("iframe");iframe.style.cssText=style.iframe;var us=iframe.src=ASSET_URL+activeCampaign.config.show_style+".html?firstTime="+firstTime;iframeContainer.appendChild(iframe);var that=this;if(x>767){that.fullSize=true;var closeButton=document.createElement("button");closeButton.style.cssText=style.closeButton;iframeContainer.appendChild(closeButton);var openButton=document.createElement("button");openButton.style.cssText=style.openButton;iframeContainer.appendChild(openButton);if(this.minimized){openButton.style.display="block";closeButton.style.display="none";footerOverlay.style.display="block"}else{openButton.style.display="none";closeButton.style.display="block";footerOverlay.style.display="none"}var toggleDisplay=function(){if(!that.minimized){iframeContainer.style.height="50px";that.minimized=true;footerOverlay.style.display="block";closeButton.style.display="none";openButton.style.display="block";setCookie(activeCampaign.cookieName,'{"minimized": true}',widgetConfig.cookieTimeout)}else{iframeContainer.style.height="300px";that.minimized=false;footerOverlay.style.display="none";openButton.style.display="none";closeButton.style.display="block";setCookie(activeCampaign.cookieName,'{"minimized": false}',widgetConfig.cookieTimeout)}};footerOverlay.onclick=toggleDisplay;closeButton.onclick=toggleDisplay}else{that.fullSize=false;var mobileCloseButton=document.createElement("button");mobileCloseButton.style.cssText=style.mobileCloseButton;iframeContainer.appendChild(mobileCloseButton);debug(that.minimized);if(that.minimized){mobileCloseButton.style.display="none"}else{mobileCloseButton.style.display="block"}mobileCloseButton.onclick=function(){setCookie(activeCampaign.cookieName,'{"minimized": true}',widgetConfig.cookieTimeout);document.body.removeChild(campaignContainer)}}},init:function(config){activeCampaign.config=config;var cookie=getCookie(activeCampaign.cookieName);var that=this;if(cookie){this.minimized=JSON.parse(cookie).minimized}checks.correctDate(function(response){debug("correctDate() callback",response);clearTimeout(window.dateCallBackFailSafe);if(response&&(response.activeToday||widgetConfig.disableDate||widgetConfig.debug)){activeCampaign.show({location:null,widgetConfig:widgetConfig});if(window.addEventListener)window.addEventListener("resize",function(){var w=window,d=document,e=d.documentElement,g=d.getElementsByTagName("body")[0],x=w.innerWidth||e.clientWidth||g.clientWidth,y=w.innerHeight||e.clientHeight||g.clientHeight;if(that.fullSize&&x<767||!that.fullSize&&x>767){if(window.tdwfbResizeCallback){clearTimeout(window.tdwfbResizeCallback)}window.tdwfbResizeCallback=setTimeout(function(){that.show({location:window.tdwfbLocation,widgetConfig:widgetConfig});windowWidth=x},50)}},false)}})}}};if(typeof campaign[widgetConfig.campaign]!=="undefined"){activeCampaign=campaign[widgetConfig.campaign];activeCampaign.init(widgetConfig)}else{return false}})(window,_banner_config);
                       | 
                    |
| 0 | 43 | 
                        \ No newline at end of file  | 
                    
| 1 | 44 |