PluginProbe
Boxzilla – WordPress Popup Builder / 3.1.12
Boxzilla – WordPress Popup Builder v3.1.12
3.4.11 3.4.10 3.4.9 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 trunk 3.0 3.0.1 3.0.2 3.0.3 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 All 72 releases
boxzilla / assets / browserify / script.js

script.js in Boxzilla – WordPress Popup Builder 3.1.12, at assets/browserify/script.js

117 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function() {
2 'use strict';
3
4 var Boxzilla = require('boxzilla');
5 var options = window.boxzilla_options;
6
7 // expose Boxzilla object to window
8 window.Boxzilla = Boxzilla;
9
10 function ready(fn) {
11 if (document.readyState != 'loading'){
12 fn();
13 } else {
14 document.addEventListener('DOMContentLoaded', fn);
15 }
16 }
17
18 // helper function for setting CSS styles
19 function css(element, styles) {
20 if( styles.background_color ) {
21 element.style.background = styles.background_color;
22 }
23
24 if( styles.color ) {
25 element.style.color = styles.color;
26 }
27
28 if( styles.border_color ) {
29 element.style.borderColor = styles.border_color;
30 }
31
32 if( styles.border_width ) {
33 element.style.borderWidth = parseInt(styles.border_width) + "px";
34 }
35
36 if( styles.border_style ) {
37 element.style.borderStyle = styles.border_style;
38 }
39
40 if( styles.width ) {
41 element.style.maxWidth = parseInt(styles.width) + "px";
42 }
43 }
44
45 function createBoxesFromConfig() {
46 var isLoggedIn = document.body.className.indexOf('logged-in') > -1;
47
48 // failsafe against including script twice.
49 if( options.inited ) {
50 return;
51 }
52
53 // print message when test mode is enabled
54 if( isLoggedIn && options.testMode ) {
55 console.log( 'Boxzilla: Test mode is enabled. Please disable test mode if you\'re done testing.' );
56 }
57
58 // init boxzilla
59 Boxzilla.init();
60
61 // create boxes from options
62 for( var i=0; i < options.boxes.length; i++ ) {
63 // get opts
64 var boxOpts = options.boxes[i];
65 boxOpts.testMode = isLoggedIn && options.testMode;
66
67 // fix http:// links in box content....
68 if( window.location.protocol === "https:" && window.location.host ) {
69 var o = "http://" + window.location.host;
70 var n = o.replace('http://', 'https://');
71 boxOpts.content = boxOpts.content.replace(o, n);
72 }
73
74 // create box
75 var box = Boxzilla.create(boxOpts.id, boxOpts);
76
77 // add box slug to box element as classname
78 box.element.className = box.element.className + ' boxzilla-' + boxOpts.post.slug;
79
80 // add custom css to box
81 css(box.element, boxOpts.css);
82
83 box.element.firstChild.firstChild.className += " first-child";
84 box.element.firstChild.lastChild.className += " last-child";
85 }
86
87 /**
88 * If a MailChimp for WordPress form was submitted, open the box containing that form (if any)
89 *
90 * TODO: Just set location hash from MailChimp for WP?
91 */
92 window.addEventListener('load', openMailChimpForWordPressBox);
93
94 options.inited = true;
95
96 // trigger "done" event.
97 Boxzilla.trigger('done');
98 }
99
100 function openMailChimpForWordPressBox() {
101 if( typeof(window.mc4wp_forms_config) === "object" && window.mc4wp_forms_config.submitted_form ) {
102 var selector = '#' + window.mc4wp_forms_config.submitted_form.element_id;
103 var boxes = Boxzilla.boxes;
104 for( var boxId in boxes ) {
105 if(!boxes.hasOwnProperty(boxId)) { continue; }
106 var box = boxes[boxId];
107 if( box.element.querySelector(selector)) {
108 box.show();
109 return;
110 }
111 }
112 }
113 }
114
115 // create boxes as soon as document.ready fires
116 ready(createBoxesFromConfig);
117 })();