Uji Countdown - Version 2.0.4

Version Description

  • NEW: Recurring Time
  • Fixed shortcodes issue. New tinymce 4.x shortcodes generator.
  • Fixed URL redirection after expiry
Download this release

Release Info

Developer ujimoto
Plugin Icon 128x128 Uji Countdown
Version 2.0.4
Comparing to
See all releases

Code changes from version 2.0.3 to 2.0.4

Files changed (47) hide show
  1. README.txt +26 -11
  2. assets/css/admin.css +19 -11
  3. assets/css/jquery-ui-custom.css +77 -77
  4. assets/{tinymce/css → css}/jquery-ui.min.css +0 -0
  5. assets/css/pink.psd +0 -0
  6. assets/css/pink@2x.psd +0 -0
  7. assets/css/ujic-style.css +85 -0
  8. assets/googlefonts.php +7 -7
  9. assets/{tinymce/images → images}/data-picker.png +0 -0
  10. assets/{tinymce/images → images}/data-picker@2.png +0 -0
  11. assets/images/icon-rec.png +0 -0
  12. assets/images/modern.png +0 -0
  13. assets/images/modern@2.png +0 -0
  14. assets/js/admin.js +285 -10
  15. assets/js/ujic-popup-button.js +198 -0
  16. assets/js/widget.js +23 -23
  17. assets/tinymce/config.php +0 -82
  18. assets/tinymce/css/popup.css +0 -223
  19. assets/tinymce/get_wp.php +0 -11
  20. assets/tinymce/images/icon.png +0 -0
  21. assets/tinymce/images/jq_UI/ui-bg_flat_75_ffffff_40x100.png +0 -0
  22. assets/tinymce/images/jq_UI/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  23. assets/tinymce/images/jq_UI/ui-bg_glass_65_ffffff_1x400.png +0 -0
  24. assets/tinymce/images/jq_UI/ui-bg_glass_75_dadada_1x400.png +0 -0
  25. assets/tinymce/images/jq_UI/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  26. assets/tinymce/images/jq_UI/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  27. assets/tinymce/images/jq_UI/ui-icons_222222_256x240.png +0 -0
  28. assets/tinymce/images/jq_UI/ui-icons_2e83ff_256x240.png +0 -0
  29. assets/tinymce/images/jq_UI/ui-icons_454545_256x240.png +0 -0
  30. assets/tinymce/images/jq_UI/ui-icons_888888_256x240.png +0 -0
  31. assets/tinymce/images/jq_UI/ui-icons_cd0a0a_256x240.png +0 -0
  32. assets/tinymce/js/base64.js +0 -333
  33. assets/tinymce/js/jquery.appendo.js +0 -136
  34. assets/tinymce/js/jquery.livequery.js +0 -226
  35. assets/tinymce/js/popup.js +0 -192
  36. assets/tinymce/js/popup.old.js +0 -191
  37. assets/tinymce/plugin.js +0 -32
  38. assets/tinymce/plugin.old.js +0 -51
  39. assets/tinymce/popup.php +0 -63
  40. assets/tinymce/shortcodes.class.php +0 -344
  41. classes/class-uji-countdown-admin.php +23 -14
  42. classes/class-uji-countdown-front.php +46 -7
  43. classes/class-uji-countdown.php +87 -45
  44. classes/class-uji-widget.php +301 -259
  45. css/uji-countdown.css +1 -1
  46. js/uji-countdown.js +1 -1
  47. ujicountdown.php +3 -3
README.txt CHANGED
@@ -1,11 +1,10 @@
1
-
2
  === Uji Countdown ===
3
  Contributors: ujimoto
4
  Donate link: http://www.wpmanage.com/uji-countdown
5
- Tags: countdown, counter, html5 countdown, animated countdown, countdown timer, count down, countdown clock, jQuery countdown, clock, timer
6
- Requires at least: 3.0
7
- Tested up to: 4.1
8
- Stable tag: 2.0.3
9
 
10
  Uji Countdown - HTML5 Customizable Countdown Timer
11
 
@@ -13,24 +12,35 @@ Uji Countdown - HTML5 Customizable Countdown Timer
13
 
14
  Uji Countdown allows you to display a countdown on your post or page. The easiest way to place your full customizable HTML5 Countdown Timer.
15
 
16
- Features:
17
 
18
- * HTML5 features
19
- * No flash, only javascript!
 
 
20
  * Customize of colors for text and background
21
  * Customize boxes color
22
  * Enable animation
 
23
  * Set the texts for date, time
24
  * Create unlimited styles
25
  * Simple using shortcode
26
  * Multilanguage support for date
27
  * Add countdown timers from Widgets area
28
- * Easy translation
 
 
 
 
 
29
 
30
  [youtube http://www.youtube.com/watch?v=ARNRRsIk6aI]
31
 
32
- **Plugin's Official Site**
33
- WPmanage [(http://www.wpmanage.com/uji-countdown/)](http://www.wpmanage.com/uji-countdown/)
 
 
 
34
 
35
  == Installation ==
36
 
@@ -41,6 +51,11 @@ WPmanage [(http://www.wpmanage.com/uji-countdown/)](http://www.wpmanage.com/uji-
41
 
42
  == Changelog ==
43
 
 
 
 
 
 
44
  = 2.0.3 =
45
  * NEW: Email Subscription
46
  * Visitors have now the option to subscribe using the email subscription form
 
1
  === Uji Countdown ===
2
  Contributors: ujimoto
3
  Donate link: http://www.wpmanage.com/uji-countdown
4
+ Tags: countdown, counter, html5 countdown, animated countdown, countdown timer, count down, countdown clock, jQuery countdown, clock, timer, recurring timer
5
+ Requires at least: 3.9
6
+ Tested up to: 4.1.1
7
+ Stable tag: 2.0.4
8
 
9
  Uji Countdown - HTML5 Customizable Countdown Timer
10
 
12
 
13
  Uji Countdown allows you to display a countdown on your post or page. The easiest way to place your full customizable HTML5 Countdown Timer.
14
 
15
+ List of features:
16
 
17
+ * <strong>NEW:</strong> Recurring Timer
18
+ * <strong>NEW:</strong> Email Subscription
19
+ * <strong>NEW:</strong> Subscription List CSV export
20
+ * HTML5: No flash, only javascript!
21
  * Customize of colors for text and background
22
  * Customize boxes color
23
  * Enable animation
24
+ * Server Time or User Time option
25
  * Set the texts for date, time
26
  * Create unlimited styles
27
  * Simple using shortcode
28
  * Multilanguage support for date
29
  * Add countdown timers from Widgets area
30
+ * Translate Labels in your Language
31
+ * Redirect to URL option after expiry
32
+ * Hide option after expiry
33
+ * <strong>Responsive</strong> (Pro/Premium version)
34
+ * <strong>Multiple Timers in Post/Page/Widgets</strong> (Pro/Premium version)
35
+
36
 
37
  [youtube http://www.youtube.com/watch?v=ARNRRsIk6aI]
38
 
39
+ = Demo Site =
40
+ Please feel free to visit our [demo site](http://wpmanage.com/project/ujicountdown/) where you can view some demo styles of Uji Countdown.
41
+
42
+ > <strong>Plugin's Official Site</strong><br>
43
+ > [Uji Countdown](http://www.wpmanage.com/uji-countdown/)
44
 
45
  == Installation ==
46
 
51
 
52
  == Changelog ==
53
 
54
+ = 2.0.4 =
55
+ * NEW: Recurring Time
56
+ * Fixed shortcodes issue. New tinymce 4.x shortcodes generator.
57
+ * Fixed URL redirection after expiry
58
+
59
  = 2.0.3 =
60
  * NEW: Email Subscription
61
  * Visitors have now the option to subscribe using the email subscription form
assets/css/admin.css CHANGED
@@ -264,6 +264,10 @@ Admin Form
264
  background: url(../images/classic.png) center 1px no-repeat;
265
  }
266
 
 
 
 
 
267
  #ujic-style-custom{
268
  background: url(../images/custom.png) center 1px no-repeat;
269
  }
@@ -429,17 +433,6 @@ Preview Style
429
  margin: 5px 0 0 0;
430
  }
431
 
432
-
433
- .nav-tab-pro{
434
- background-color: #9a469a;
435
- color: #ffffff!important;
436
- }
437
-
438
- .nav-tab-pro:hover{
439
- background-color: #793979;
440
- color: #ffffff!important;
441
- }
442
-
443
  /*
444
  ============================================================================
445
  Newsletter
@@ -535,6 +528,21 @@ Newsletter
535
  float:left;
536
  }
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
 
539
  /*
540
  ============================================================================
264
  background: url(../images/classic.png) center 1px no-repeat;
265
  }
266
 
267
+ #ujic-style-modern{
268
+ background: url(../images/modern.png) center 1px no-repeat;
269
+ }
270
+
271
  #ujic-style-custom{
272
  background: url(../images/custom.png) center 1px no-repeat;
273
  }
433
  margin: 5px 0 0 0;
434
  }
435
 
 
 
 
 
 
 
 
 
 
 
 
436
  /*
437
  ============================================================================
438
  Newsletter
528
  float:left;
529
  }
530
 
531
+ /*
532
+ ============================================================================
533
+ Modern Style
534
+ ============================================================================
535
+ */
536
+
537
+ .ujic-modern .ujicircle{
538
+ display: inline-block;
539
+ margin: 0.5em;
540
+ }
541
+
542
+ .ujic-modern .circles-wrp span.countdown_txt {
543
+ text-align: center;
544
+ display: block;
545
+ }
546
 
547
  /*
548
  ============================================================================
assets/css/jquery-ui-custom.css CHANGED
@@ -1,78 +1,78 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.14
3
- *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Theming/API
9
- */
10
-
11
- /* Layout helpers
12
- ----------------------------------*/
13
- .ujic_slider .ui-helper-hidden { display: none; }
14
- .ujic_slider .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
- .ujic_slider .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ujic_slider .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ujic_slider .ui-helper-clearfix { display: inline-block; }
18
- /* required comment for clearfix to work in Opera \*/
19
- * html .ujic_slider .ui-helper-clearfix { height:1%; }
20
- .ujic_slider .ui-helper-clearfix { display:block; }
21
- /* end clearfix */
22
- .ujic_slider .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
-
24
-
25
- /* Interaction Cues
26
- ----------------------------------*/
27
- .ujic_slider .ui-state-disabled { cursor: default !important; }
28
-
29
-
30
- /* Icons
31
- ----------------------------------*/
32
-
33
- /* states and images */
34
- .ujic_slider .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
-
36
-
37
- /* Misc visuals
38
- ----------------------------------*/
39
-
40
- /* Overlays */
41
- .ujic_slider .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
-
43
-
44
- /*
45
- * jQuery UI Slider 1.8.14
46
- *
47
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
- * Dual licensed under the MIT or GPL Version 2 licenses.
49
- * http://jquery.org/license
50
- *
51
- * http://docs.jquery.com/UI/Slider#theming
52
- */
53
- .ujic_sliderui { position: relative; text-align: left; background:#eee; border-radius:2px; width:200px; display:inline-block; margin-right:10px; border: 1px solid #999;}
54
- .ujic_slider .ui-slider-handle { position: absolute; z-index: 2; width: 18px; height: 18px; cursor: default; background: url(../images/slider-control.png) no-repeat center center !important; cursor: pointer;}
55
- .ujic_slider .ui-slider-handle.ui-corner-all { border:0 !important;}
56
- .ujic_slider .ui-slider-handle.ui-state-focus { border:0 !important; background: url(../images/slider-control.png) no-repeat center center !important;outline: none;}
57
- .ujic_slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
58
-
59
- .ujic_slider .ui-slider-horizontal { height: 7px; border-color: #aaa;
60
- border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;
61
- box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
62
- -moz-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
63
- -webkit-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);}
64
- .ujic_slider .ui-slider-horizontal .ui-slider-handle { top: -5px; margin-left: -9px; }
65
- .ujic_slider .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
66
- .ujic_slider .ui-slider-horizontal .ui-slider-range-min { left: 0; }
67
- .ujic_slider .ui-slider-horizontal .ui-slider-range-max { right: 0; }
68
- .ui-slider-range{border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;
69
- box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
70
- -moz-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
71
- -webkit-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);}
72
- .ujic_slider .ui-slider-range.ui-widget-header{border: 1px solid #a61ba6; margin-top: -1px; margin-left: -1px; background: #bd5abd;border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;}
73
-
74
- .ujic_slider .ui-slider-vertical { width: .8em; height: 100px; }
75
- .ujic_slider .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
76
- .ujic_slider .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
77
- .ujic_slider .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
78
  .ujic_slider .ui-slider-vertical .ui-slider-range-max { top: 0; }
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.14
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ujic_slider .ui-helper-hidden { display: none; }
14
+ .ujic_slider .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ujic_slider .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ujic_slider .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ujic_slider .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ujic_slider .ui-helper-clearfix { height:1%; }
20
+ .ujic_slider .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ujic_slider .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ujic_slider .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ujic_slider .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ujic_slider .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI Slider 1.8.14
46
+ *
47
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Slider#theming
52
+ */
53
+ .ujic_sliderui { position: relative; text-align: left; background:#eee; border-radius:2px; width:200px; display:inline-block; margin-right:10px; border: 1px solid #999;}
54
+ .ujic_slider .ui-slider-handle { position: absolute; z-index: 2; width: 18px; height: 18px; cursor: default; background: url(../images/slider-control.png) no-repeat center center !important; cursor: pointer;}
55
+ .ujic_slider .ui-slider-handle.ui-corner-all { border:0 !important;}
56
+ .ujic_slider .ui-slider-handle.ui-state-focus { border:0 !important; background: url(../images/slider-control.png) no-repeat center center !important;outline: none;}
57
+ .ujic_slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
58
+
59
+ .ujic_slider .ui-slider-horizontal { height: 7px; border-color: #aaa;
60
+ border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;
61
+ box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
62
+ -moz-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
63
+ -webkit-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);}
64
+ .ujic_slider .ui-slider-horizontal .ui-slider-handle { top: -5px; margin-left: -9px; }
65
+ .ujic_slider .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
66
+ .ujic_slider .ui-slider-horizontal .ui-slider-range-min { left: 0; }
67
+ .ujic_slider .ui-slider-horizontal .ui-slider-range-max { right: 0; }
68
+ .ui-slider-range{border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;
69
+ box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
70
+ -moz-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);
71
+ -webkit-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.20), 0px 0px 1px rgba(0, 0, 0, 0.20);}
72
+ .ujic_slider .ui-slider-range.ui-widget-header{border: 1px solid #a61ba6; margin-top: -1px; margin-left: -1px; background: #bd5abd;border-radius: 2px;-webkit-border-radius: 2px;-moz-border-radius: 2px;}
73
+
74
+ .ujic_slider .ui-slider-vertical { width: .8em; height: 100px; }
75
+ .ujic_slider .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
76
+ .ujic_slider .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
77
+ .ujic_slider .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
78
  .ujic_slider .ui-slider-vertical .ui-slider-range-max { top: 0; }
assets/{tinymce/css → css}/jquery-ui.min.css RENAMED
File without changes
assets/css/pink.psd DELETED
Binary file
assets/css/pink@2x.psd DELETED
Binary file
assets/css/ujic-style.css ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ i.mce-i-icon {
2
+ font: 400 20px/1 dashicons;
3
+ padding: 0;
4
+ vertical-align: top;
5
+ speak: none;
6
+ -webkit-font-smoothing: antialiased;
7
+ -moz-osx-font-smoothing: grayscale;
8
+ margin-left: -2px;
9
+ padding-right: 2px
10
+ }
11
+
12
+ i.ujic-own-icon {
13
+ /*background-image: url('custom-icon.png');*/
14
+ }
15
+
16
+ #uji-contdown-pop .uji_spacer{
17
+ display: block;
18
+ height: 1px;
19
+ margin: 5px 0;
20
+ width: 100%;
21
+ background: #F1F1F1;
22
+ }
23
+
24
+ #uji-contdown-pop input{
25
+ background: #f7f7f7;
26
+ }
27
+
28
+ #uji-contdown-pop #ujic-datapick{
29
+ background: #f7f7f7 url(images/data-picker.png) right top no-repeat;
30
+ }
31
+
32
+ /* CSS for high-resolution devices */
33
+ @media
34
+ (-webkit-min-device-pixel-ratio: 2),
35
+ (min-resolution: 192dpi) {
36
+ /* - datapicker */
37
+ #uji-contdown-pop #ujic-datapick{
38
+ background: #f7f7f7 url(images/data-picker@2.png) top right no-repeat;
39
+ }
40
+ }
41
+
42
+ #uji-contdown-pop #ujic_hou,
43
+ #uji-contdown-pop #ujic_min{
44
+ width: 60px!important;
45
+ }
46
+
47
+ #uji-contdown-pop #ujic_time_space{
48
+ padding: 3px 5px;
49
+ }
50
+
51
+ #uji-contdown-pop #ujic_hide,
52
+ #uji-contdown-pop #ujic_hide_txt{
53
+ display: inline;
54
+ }
55
+
56
+ #uji-contdown-pop #ujic_url_txt{
57
+ display: block;
58
+ font-weight: bold;
59
+ font-size: 12px;
60
+ }
61
+
62
+ #uji-contdown-pop #ujic_url{
63
+ display: block;
64
+ }
65
+
66
+ #uji-contdown-pop #ujic_rev_txt{
67
+ padding: 6px 22px 0 0;
68
+ }
69
+
70
+ #uji-contdown-pop #ujic_rev,
71
+ #uji-contdown-pop #ujic_rep{
72
+ width: 50px!important;
73
+ margin-right: 4px;
74
+ }
75
+
76
+ #uji-contdown-pop #ujic_rep_txt,
77
+ #uji-contdown-pop #ujic_rep_des{
78
+ padding: 6px 5px 0 0;
79
+ }
80
+
81
+ #uji-contdown-pop #ujic_rep_des{
82
+ font-size: 12px;
83
+ font-style: italic;
84
+ color: #9b9b9b;
85
+ }
assets/googlefonts.php CHANGED
@@ -1,8 +1,8 @@
1
- <?php
2
-
3
- function ujic_googlefonts() {
4
- //return array('none' => 'Default Font', 'ABeeZee' => 'ABeeZee', 'Abel' => 'Abel', 'Abril Fatface' => 'Abril Fatface', 'Aclonica' => 'Aclonica', 'Acme' => 'Acme', 'Actor' => 'Actor', 'Adamina' => 'Adamina', 'Advent Pro' => 'Advent Pro', 'Aguafina Script' => 'Aguafina Script', 'Akronim' => 'Akronim', 'Aladin' => 'Aladin', 'Aldrich' => 'Aldrich', 'Alegreya' => 'Alegreya', 'Alegreya SC' => 'Alegreya SC', 'Alex Brush' => 'Alex Brush', 'Alfa Slab One' => 'Alfa Slab One', 'Alice' => 'Alice', 'Alike' => 'Alike', 'Alike Angular' => 'Alike Angular', 'Allan' => 'Allan', 'Allerta' => 'Allerta', 'Allerta Stencil' => 'Allerta Stencil', 'Allura' => 'Allura', 'Almendra' => 'Almendra', 'Almendra Display' => 'Almendra Display', 'Almendra SC' => 'Almendra SC', 'Amarante' => 'Amarante', 'Amaranth' => 'Amaranth', 'Amatic SC' => 'Amatic SC', 'Amethysta' => 'Amethysta', 'Anaheim' => 'Anaheim', 'Andada' => 'Andada', 'Andika' => 'Andika', 'Angkor' => 'Angkor', 'Annie Use Your Telescope' => 'Annie Use Your Telescope', 'Anonymous Pro' => 'Anonymous Pro', 'Antic' => 'Antic', 'Antic Didone' => 'Antic Didone', 'Antic Slab' => 'Antic Slab', 'Anton' => 'Anton', 'Arapey' => 'Arapey', 'Arbutus' => 'Arbutus', 'Arbutus Slab' => 'Arbutus Slab', 'Architects Daughter' => 'Architects Daughter', 'Archivo Black' => 'Archivo Black', 'Archivo Narrow' => 'Archivo Narrow', 'Arimo' => 'Arimo', 'Arizonia' => 'Arizonia', 'Armata' => 'Armata', 'Artifika' => 'Artifika', 'Arvo' => 'Arvo', 'Asap' => 'Asap', 'Asset' => 'Asset', 'Astloch' => 'Astloch', 'Asul' => 'Asul', 'Atomic Age' => 'Atomic Age', 'Aubrey' => 'Aubrey', 'Audiowide' => 'Audiowide', 'Autour One' => 'Autour One', 'Average' => 'Average', 'Average Sans' => 'Average Sans', 'Averia Gruesa Libre' => 'Averia Gruesa Libre', 'Averia Libre' => 'Averia Libre', 'Averia Sans Libre' => 'Averia Sans Libre', 'Averia Serif Libre' => 'Averia Serif Libre', 'Bad Script' => 'Bad Script', 'Balthazar' => 'Balthazar', 'Bangers' => 'Bangers', 'Basic' => 'Basic', 'Battambang' => 'Battambang', 'Baumans' => 'Baumans', 'Bayon' => 'Bayon', 'Belgrano' => 'Belgrano', 'Belleza' => 'Belleza', 'BenchNine' => 'BenchNine', 'Bentham' => 'Bentham', 'Berkshire Swash' => 'Berkshire Swash', 'Bevan' => 'Bevan', 'Bigelow Rules' => 'Bigelow Rules', 'Bigshot One' => 'Bigshot One', 'Bilbo' => 'Bilbo', 'Bilbo Swash Caps' => 'Bilbo Swash Caps', 'Bitter' => 'Bitter', 'Black Ops One' => 'Black Ops One', 'Bokor' => 'Bokor', 'Bonbon' => 'Bonbon', 'Boogaloo' => 'Boogaloo', 'Bowlby One' => 'Bowlby One', 'Bowlby One SC' => 'Bowlby One SC', 'Brawler' => 'Brawler', 'Bree Serif' => 'Bree Serif', 'Bubblegum Sans' => 'Bubblegum Sans', 'Bubbler One' => 'Bubbler One', 'Buda' => 'Buda', 'Buenard' => 'Buenard', 'Butcherman' => 'Butcherman', 'Butterfly Kids' => 'Butterfly Kids', 'Cabin' => 'Cabin', 'Cabin Condensed' => 'Cabin Condensed', 'Cabin Sketch' => 'Cabin Sketch', 'Caesar Dressing' => 'Caesar Dressing', 'Cagliostro' => 'Cagliostro', 'Calligraffitti' => 'Calligraffitti', 'Cambo' => 'Cambo', 'Candal' => 'Candal', 'Cantarell' => 'Cantarell', 'Cantata One' => 'Cantata One', 'Cantora One' => 'Cantora One', 'Capriola' => 'Capriola', 'Cardo' => 'Cardo', 'Carme' => 'Carme', 'Carrois Gothic' => 'Carrois Gothic', 'Carrois Gothic SC' => 'Carrois Gothic SC', 'Carter One' => 'Carter One', 'Caudex' => 'Caudex', 'Cedarville Cursive' => 'Cedarville Cursive', 'Ceviche One' => 'Ceviche One', 'Changa One' => 'Changa One', 'Chango' => 'Chango', 'Chau Philomene One' => 'Chau Philomene One', 'Chela One' => 'Chela One', 'Chelsea Market' => 'Chelsea Market', 'Chenla' => 'Chenla', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Cherry Swash' => 'Cherry Swash', 'Chewy' => 'Chewy', 'Chicle' => 'Chicle', 'Chivo' => 'Chivo', 'Cinzel' => 'Cinzel', 'Cinzel Decorative' => 'Cinzel Decorative', 'Clicker Script' => 'Clicker Script', 'Coda' => 'Coda', 'Coda Caption' => 'Coda Caption', 'Codystar' => 'Codystar', 'Combo' => 'Combo', 'Comfortaa' => 'Comfortaa', 'Coming Soon' => 'Coming Soon', 'Concert One' => 'Concert One', 'Condiment' => 'Condiment', 'Content' => 'Content', 'Contrail One' => 'Contrail One', 'Convergence' => 'Convergence', 'Cookie' => 'Cookie', 'Copse' => 'Copse', 'Corben' => 'Corben', 'Courgette' => 'Courgette', 'Cousine' => 'Cousine', 'Coustard' => 'Coustard', 'Covered By Your Grace' => 'Covered By Your Grace', 'Crafty Girls' => 'Crafty Girls', 'Creepster' => 'Creepster', 'Crete Round' => 'Crete Round', 'Crimson Text' => 'Crimson Text', 'Croissant One' => 'Croissant One', 'Crushed' => 'Crushed', 'Cuprum' => 'Cuprum', 'Cutive' => 'Cutive', 'Cutive Mono' => 'Cutive Mono', 'Damion' => 'Damion', 'Dancing Script' => 'Dancing Script', 'Dangrek' => 'Dangrek', 'Dawning of a New Day' => 'Dawning of a New Day', 'Days One' => 'Days One', 'Delius' => 'Delius', 'Delius Swash Caps' => 'Delius Swash Caps', 'Delius Unicase' => 'Delius Unicase', 'Della Respira' => 'Della Respira', 'Denk One' => 'Denk One', 'Devonshire' => 'Devonshire', 'Didact Gothic' => 'Didact Gothic', 'Diplomata' => 'Diplomata', 'Diplomata SC' => 'Diplomata SC', 'Domine' => 'Domine', 'Donegal One' => 'Donegal One', 'Doppio One' => 'Doppio One', 'Dorsa' => 'Dorsa', 'Dosis' => 'Dosis', 'Dr Sugiyama' => 'Dr Sugiyama', 'Droid Sans' => 'Droid Sans', 'Droid Sans Mono' => 'Droid Sans Mono', 'Droid Serif' => 'Droid Serif', 'Duru Sans' => 'Duru Sans', 'Dynalight' => 'Dynalight', 'EB Garamond' => 'EB Garamond', 'Eagle Lake' => 'Eagle Lake', 'Eater' => 'Eater', 'Economica' => 'Economica', 'Electrolize' => 'Electrolize', 'Elsie' => 'Elsie', 'Elsie Swash Caps' => 'Elsie Swash Caps', 'Emblema One' => 'Emblema One', 'Emilys Candy' => 'Emilys Candy', 'Engagement' => 'Engagement', 'Englebert' => 'Englebert', 'Enriqueta' => 'Enriqueta', 'Erica One' => 'Erica One', 'Esteban' => 'Esteban', 'Euphoria Script' => 'Euphoria Script', 'Ewert' => 'Ewert', 'Exo' => 'Exo', 'Expletus Sans' => 'Expletus Sans', 'Fanwood Text' => 'Fanwood Text', 'Fascinate' => 'Fascinate', 'Fascinate Inline' => 'Fascinate Inline', 'Faster One' => 'Faster One', 'Fasthand' => 'Fasthand', 'Federant' => 'Federant', 'Federo' => 'Federo', 'Felipa' => 'Felipa', 'Fenix' => 'Fenix', 'Finger Paint' => 'Finger Paint', 'Fjalla One' => 'Fjalla One', 'Fjord One' => 'Fjord One', 'Flamenco' => 'Flamenco', 'Flavors' => 'Flavors', 'Fondamento' => 'Fondamento', 'Fontdiner Swanky' => 'Fontdiner Swanky', 'Forum' => 'Forum', 'Francois One' => 'Francois One', 'Freckle Face' => 'Freckle Face', 'Fredericka the Great' => 'Fredericka the Great', 'Fredoka One' => 'Fredoka One', 'Freehand' => 'Freehand', 'Fresca' => 'Fresca', 'Frijole' => 'Frijole', 'Fruktur' => 'Fruktur', 'Fugaz One' => 'Fugaz One', 'GFS Didot' => 'GFS Didot', 'GFS Neohellenic' => 'GFS Neohellenic', 'Gabriela' => 'Gabriela', 'Gafata' => 'Gafata', 'Galdeano' => 'Galdeano', 'Galindo' => 'Galindo', 'Gentium Basic' => 'Gentium Basic', 'Gentium Book Basic' => 'Gentium Book Basic', 'Geo' => 'Geo', 'Geostar' => 'Geostar', 'Geostar Fill' => 'Geostar Fill', 'Germania One' => 'Germania One', 'Gilda Display' => 'Gilda Display', 'Give You Glory' => 'Give You Glory', 'Glass Antiqua' => 'Glass Antiqua', 'Glegoo' => 'Glegoo', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Goblin One' => 'Goblin One', 'Gochi Hand' => 'Gochi Hand', 'Gorditas' => 'Gorditas', 'Goudy Bookletter 1911' => 'Goudy Bookletter 1911', 'Graduate' => 'Graduate', 'Grand Hotel' => 'Grand Hotel', 'Gravitas One' => 'Gravitas One', 'Great Vibes' => 'Great Vibes', 'Griffy' => 'Griffy', 'Gruppo' => 'Gruppo', 'Gudea' => 'Gudea', 'Habibi' => 'Habibi', 'Hammersmith One' => 'Hammersmith One', 'Hanalei' => 'Hanalei', 'Hanalei Fill' => 'Hanalei Fill', 'Handlee' => 'Handlee', 'Hanuman' => 'Hanuman', 'Happy Monkey' => 'Happy Monkey', 'Headland One' => 'Headland One', 'Henny Penny' => 'Henny Penny', 'Herr Von Muellerhoff' => 'Herr Von Muellerhoff', 'Holtwood One SC' => 'Holtwood One SC', 'Homemade Apple' => 'Homemade Apple', 'Homenaje' => 'Homenaje', 'IM Fell DW Pica' => 'IM Fell DW Pica', 'IM Fell DW Pica SC' => 'IM Fell DW Pica SC', 'IM Fell Double Pica' => 'IM Fell Double Pica', 'IM Fell Double Pica SC' => 'IM Fell Double Pica SC', 'IM Fell English' => 'IM Fell English', 'IM Fell English SC' => 'IM Fell English SC', 'IM Fell French Canon' => 'IM Fell French Canon', 'IM Fell French Canon SC' => 'IM Fell French Canon SC', 'IM Fell Great Primer' => 'IM Fell Great Primer', 'IM Fell Great Primer SC' => 'IM Fell Great Primer SC', 'Iceberg' => 'Iceberg', 'Iceland' => 'Iceland', 'Imprima' => 'Imprima', 'Inconsolata' => 'Inconsolata', 'Inder' => 'Inder', 'Indie Flower' => 'Indie Flower', 'Inika' => 'Inika', 'Irish Grover' => 'Irish Grover', 'Istok Web' => 'Istok Web', 'Italiana' => 'Italiana', 'Italianno' => 'Italianno', 'Jacques Francois' => 'Jacques Francois', 'Jacques Francois Shadow' => 'Jacques Francois Shadow', 'Jim Nightshade' => 'Jim Nightshade', 'Jockey One' => 'Jockey One', 'Jolly Lodger' => 'Jolly Lodger', 'Josefin Sans' => 'Josefin Sans', 'Josefin Slab' => 'Josefin Slab', 'Joti One' => 'Joti One', 'Judson' => 'Judson', 'Julee' => 'Julee', 'Julius Sans One' => 'Julius Sans One', 'Junge' => 'Junge', 'Jura' => 'Jura', 'Just Another Hand' => 'Just Another Hand', 'Just Me Again Down Here' => 'Just Me Again Down Here', 'Kameron' => 'Kameron', 'Karla' => 'Karla', 'Kaushan Script' => 'Kaushan Script', 'Kavoon' => 'Kavoon', 'Keania One' => 'Keania One', 'Kelly Slab' => 'Kelly Slab', 'Kenia' => 'Kenia', 'Khmer' => 'Khmer', 'Kite One' => 'Kite One', 'Knewave' => 'Knewave', 'Kotta One' => 'Kotta One', 'Koulen' => 'Koulen', 'Kranky' => 'Kranky', 'Kreon' => 'Kreon', 'Kristi' => 'Kristi', 'Krona One' => 'Krona One', 'La Belle Aurore' => 'La Belle Aurore', 'Lancelot' => 'Lancelot', 'Lato' => 'Lato', 'League Script' => 'League Script', 'Leckerli One' => 'Leckerli One', 'Ledger' => 'Ledger', 'Lekton' => 'Lekton', 'Lemon' => 'Lemon', 'Libre Baskerville' => 'Libre Baskerville', 'Life Savers' => 'Life Savers', 'Lilita One' => 'Lilita One', 'Limelight' => 'Limelight', 'Linden Hill' => 'Linden Hill', 'Lobster' => 'Lobster', 'Lobster Two' => 'Lobster Two', 'Londrina Outline' => 'Londrina Outline', 'Londrina Shadow' => 'Londrina Shadow', 'Londrina Sketch' => 'Londrina Sketch', 'Londrina Solid' => 'Londrina Solid', 'Lora' => 'Lora', 'Love Ya Like A Sister' => 'Love Ya Like A Sister', 'Loved by the King' => 'Loved by the King', 'Lovers Quarrel' => 'Lovers Quarrel', 'Luckiest Guy' => 'Luckiest Guy', 'Lusitana' => 'Lusitana', 'Lustria' => 'Lustria', 'Macondo' => 'Macondo', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Magra' => 'Magra', 'Maiden Orange' => 'Maiden Orange', 'Mako' => 'Mako', 'Marcellus' => 'Marcellus', 'Marcellus SC' => 'Marcellus SC', 'Marck Script' => 'Marck Script', 'Margarine' => 'Margarine', 'Marko One' => 'Marko One', 'Marmelad' => 'Marmelad', 'Marvel' => 'Marvel', 'Mate' => 'Mate', 'Mate SC' => 'Mate SC', 'Maven Pro' => 'Maven Pro', 'McLaren' => 'McLaren', 'Meddon' => 'Meddon', 'MedievalSharp' => 'MedievalSharp', 'Medula One' => 'Medula One', 'Megrim' => 'Megrim', 'Meie Script' => 'Meie Script', 'Merienda' => 'Merienda', 'Merienda One' => 'Merienda One', 'Merriweather' => 'Merriweather', 'Merriweather Sans' => 'Merriweather Sans', 'Metal' => 'Metal', 'Metal Mania' => 'Metal Mania', 'Metamorphous' => 'Metamorphous', 'Metrophobic' => 'Metrophobic', 'Michroma' => 'Michroma', 'Milonga' => 'Milonga', 'Miltonian' => 'Miltonian', 'Miltonian Tattoo' => 'Miltonian Tattoo', 'Miniver' => 'Miniver', 'Miss Fajardose' => 'Miss Fajardose', 'Modern Antiqua' => 'Modern Antiqua', 'Molengo' => 'Molengo', 'Molle' => 'Molle', 'Monda' => 'Monda', 'Monofett' => 'Monofett', 'Monoton' => 'Monoton', 'Monsieur La Doulaise' => 'Monsieur La Doulaise', 'Montaga' => 'Montaga', 'Montez' => 'Montez', 'Montserrat' => 'Montserrat', 'Montserrat Alternates' => 'Montserrat Alternates', 'Montserrat Subrayada' => 'Montserrat Subrayada', 'Moul' => 'Moul', 'Moulpali' => 'Moulpali', 'Mountains of Christmas' => 'Mountains of Christmas', 'Mouse Memoirs' => 'Mouse Memoirs', 'Mr Bedfort' => 'Mr Bedfort', 'Mr Dafoe' => 'Mr Dafoe', 'Mr De Haviland' => 'Mr De Haviland', 'Mrs Saint Delafield' => 'Mrs Saint Delafield', 'Mrs Sheppards' => 'Mrs Sheppards', 'Muli' => 'Muli', 'Mystery Quest' => 'Mystery Quest', 'Neucha' => 'Neucha', 'Neuton' => 'Neuton', 'New Rocker' => 'New Rocker', 'News Cycle' => 'News Cycle', 'Niconne' => 'Niconne', 'Nixie One' => 'Nixie One', 'Nobile' => 'Nobile', 'Nokora' => 'Nokora', 'Norican' => 'Norican', 'Nosifer' => 'Nosifer', 'Nothing You Could Do' => 'Nothing You Could Do', 'Noticia Text' => 'Noticia Text', 'Noto Sans' => 'Noto Sans', 'Noto Serif' => 'Noto Serif', 'Nova Cut' => 'Nova Cut', 'Nova Flat' => 'Nova Flat', 'Nova Mono' => 'Nova Mono', 'Nova Oval' => 'Nova Oval', 'Nova Round' => 'Nova Round', 'Nova Script' => 'Nova Script', 'Nova Slim' => 'Nova Slim', 'Nova Square' => 'Nova Square', 'Numans' => 'Numans', 'Nunito' => 'Nunito', 'Odor Mean Chey' => 'Odor Mean Chey', 'Offside' => 'Offside', 'Old Standard TT' => 'Old Standard TT', 'Oldenburg' => 'Oldenburg', 'Oleo Script' => 'Oleo Script', 'Oleo Script Swash Caps' => 'Oleo Script Swash Caps', 'Open Sans' => 'Open Sans', 'Open Sans Condensed' => 'Open Sans Condensed', 'Oranienbaum' => 'Oranienbaum', 'Orbitron' => 'Orbitron', 'Oregano' => 'Oregano', 'Orienta' => 'Orienta', 'Original Surfer' => 'Original Surfer', 'Oswald' => 'Oswald', 'Over the Rainbow' => 'Over the Rainbow', 'Overlock' => 'Overlock', 'Overlock SC' => 'Overlock SC', 'Ovo' => 'Ovo', 'Oxygen' => 'Oxygen', 'Oxygen Mono' => 'Oxygen Mono', 'PT Mono' => 'PT Mono', 'PT Sans' => 'PT Sans', 'PT Sans Caption' => 'PT Sans Caption', 'PT Sans Narrow' => 'PT Sans Narrow', 'PT Serif' => 'PT Serif', 'PT Serif Caption' => 'PT Serif Caption', 'Pacifico' => 'Pacifico', 'Paprika' => 'Paprika', 'Parisienne' => 'Parisienne', 'Passero One' => 'Passero One', 'Passion One' => 'Passion One', 'Patrick Hand' => 'Patrick Hand', 'Patrick Hand SC' => 'Patrick Hand SC', 'Patua One' => 'Patua One', 'Paytone One' => 'Paytone One', 'Peralta' => 'Peralta', 'Permanent Marker' => 'Permanent Marker', 'Petit Formal Script' => 'Petit Formal Script', 'Petrona' => 'Petrona', 'Philosopher' => 'Philosopher', 'Piedra' => 'Piedra', 'Pinyon Script' => 'Pinyon Script', 'Pirata One' => 'Pirata One', 'Plaster' => 'Plaster', 'Play' => 'Play', 'Playball' => 'Playball', 'Playfair Display' => 'Playfair Display', 'Playfair Display SC' => 'Playfair Display SC', 'Podkova' => 'Podkova', 'Poiret One' => 'Poiret One', 'Poller One' => 'Poller One', 'Poly' => 'Poly', 'Pompiere' => 'Pompiere', 'Pontano Sans' => 'Pontano Sans', 'Port Lligat Sans' => 'Port Lligat Sans', 'Port Lligat Slab' => 'Port Lligat Slab', 'Prata' => 'Prata', 'Preahvihear' => 'Preahvihear', 'Press Start 2P' => 'Press Start 2P', 'Princess Sofia' => 'Princess Sofia', 'Prociono' => 'Prociono', 'Prosto One' => 'Prosto One', 'Puritan' => 'Puritan', 'Purple Purse' => 'Purple Purse', 'Quando' => 'Quando', 'Quantico' => 'Quantico', 'Quattrocento' => 'Quattrocento', 'Quattrocento Sans' => 'Quattrocento Sans', 'Questrial' => 'Questrial', 'Quicksand' => 'Quicksand', 'Quintessential' => 'Quintessential', 'Qwigley' => 'Qwigley', 'Racing Sans One' => 'Racing Sans One', 'Radley' => 'Radley', 'Raleway' => 'Raleway', 'Raleway Dots' => 'Raleway Dots', 'Rambla' => 'Rambla', 'Rammetto One' => 'Rammetto One', 'Ranchers' => 'Ranchers', 'Rancho' => 'Rancho', 'Rationale' => 'Rationale', 'Redressed' => 'Redressed', 'Reenie Beanie' => 'Reenie Beanie', 'Revalia' => 'Revalia', 'Ribeye' => 'Ribeye', 'Ribeye Marrow' => 'Ribeye Marrow', 'Righteous' => 'Righteous', 'Risque' => 'Risque', 'Roboto' => 'Roboto', 'Roboto Condensed' => 'Roboto Condensed', 'Rochester' => 'Rochester', 'Rock Salt' => 'Rock Salt', 'Rokkitt' => 'Rokkitt', 'Romanesco' => 'Romanesco', 'Ropa Sans' => 'Ropa Sans', 'Rosario' => 'Rosario', 'Rosarivo' => 'Rosarivo', 'Rouge Script' => 'Rouge Script', 'Ruda' => 'Ruda', 'Rufina' => 'Rufina', 'Ruge Boogie' => 'Ruge Boogie', 'Ruluko' => 'Ruluko', 'Rum Raisin' => 'Rum Raisin', 'Ruslan Display' => 'Ruslan Display', 'Russo One' => 'Russo One', 'Ruthie' => 'Ruthie', 'Rye' => 'Rye', 'Sacramento' => 'Sacramento', 'Sail' => 'Sail', 'Salsa' => 'Salsa', 'Sanchez' => 'Sanchez', 'Sancreek' => 'Sancreek', 'Sansita One' => 'Sansita One', 'Sarina' => 'Sarina', 'Satisfy' => 'Satisfy', 'Scada' => 'Scada', 'Schoolbell' => 'Schoolbell', 'Seaweed Script' => 'Seaweed Script', 'Sevillana' => 'Sevillana', 'Seymour One' => 'Seymour One', 'Shadows Into Light' => 'Shadows Into Light', 'Shadows Into Light Two' => 'Shadows Into Light Two', 'Shanti' => 'Shanti', 'Share' => 'Share', 'Share Tech' => 'Share Tech', 'Share Tech Mono' => 'Share Tech Mono', 'Shojumaru' => 'Shojumaru', 'Short Stack' => 'Short Stack', 'Siemreap' => 'Siemreap', 'Sigmar One' => 'Sigmar One', 'Signika' => 'Signika', 'Signika Negative' => 'Signika Negative', 'Simonetta' => 'Simonetta', 'Sintony' => 'Sintony', 'Sirin Stencil' => 'Sirin Stencil', 'Six Caps' => 'Six Caps', 'Skranji' => 'Skranji', 'Slackey' => 'Slackey', 'Smokum' => 'Smokum', 'Smythe' => 'Smythe', 'Sniglet' => 'Sniglet', 'Snippet' => 'Snippet', 'Snowburst One' => 'Snowburst One', 'Sofadi One' => 'Sofadi One', 'Sofia' => 'Sofia', 'Sonsie One' => 'Sonsie One', 'Sorts Mill Goudy' => 'Sorts Mill Goudy', 'Source Code Pro' => 'Source Code Pro', 'Source Sans Pro' => 'Source Sans Pro', 'Special Elite' => 'Special Elite', 'Spicy Rice' => 'Spicy Rice', 'Spinnaker' => 'Spinnaker', 'Spirax' => 'Spirax', 'Squada One' => 'Squada One', 'Stalemate' => 'Stalemate', 'Stalinist One' => 'Stalinist One', 'Stardos Stencil' => 'Stardos Stencil', 'Stint Ultra Condensed' => 'Stint Ultra Condensed', 'Stint Ultra Expanded' => 'Stint Ultra Expanded', 'Stoke' => 'Stoke', 'Strait' => 'Strait', 'Sue Ellen Francisco' => 'Sue Ellen Francisco', 'Sunshiney' => 'Sunshiney', 'Supermercado One' => 'Supermercado One', 'Suwannaphum' => 'Suwannaphum', 'Swanky and Moo Moo' => 'Swanky and Moo Moo', 'Syncopate' => 'Syncopate', 'Tangerine' => 'Tangerine', 'Taprom' => 'Taprom', 'Tauri' => 'Tauri', 'Telex' => 'Telex', 'Tenor Sans' => 'Tenor Sans', 'Text Me One' => 'Text Me One', 'The Girl Next Door' => 'The Girl Next Door', 'Tienne' => 'Tienne', 'Tinos' => 'Tinos', 'Titan One' => 'Titan One', 'Titillium Web' => 'Titillium Web', 'Trade Winds' => 'Trade Winds', 'Trocchi' => 'Trocchi', 'Trochut' => 'Trochut', 'Trykker' => 'Trykker', 'Tulpen One' => 'Tulpen One', 'Ubuntu' => 'Ubuntu', 'Ubuntu Condensed' => 'Ubuntu Condensed', 'Ubuntu Mono' => 'Ubuntu Mono', 'Ultra' => 'Ultra', 'Uncial Antiqua' => 'Uncial Antiqua', 'Underdog' => 'Underdog', 'Unica One' => 'Unica One', 'UnifrakturCook' => 'UnifrakturCook', 'UnifrakturMaguntia' => 'UnifrakturMaguntia', 'Unkempt' => 'Unkempt', 'Unlock' => 'Unlock', 'Unna' => 'Unna', 'VT323' => 'VT323', 'Vampiro One' => 'Vampiro One', 'Varela' => 'Varela', 'Varela Round' => 'Varela Round', 'Vast Shadow' => 'Vast Shadow', 'Vibur' => 'Vibur', 'Vidaloka' => 'Vidaloka', 'Viga' => 'Viga', 'Voces' => 'Voces', 'Volkhov' => 'Volkhov', 'Vollkorn' => 'Vollkorn', 'Voltaire' => 'Voltaire', 'Waiting for the Sunrise' => 'Waiting for the Sunrise', 'Wallpoet' => 'Wallpoet', 'Walter Turncoat' => 'Walter Turncoat', 'Warnes' => 'Warnes', 'Wellfleet' => 'Wellfleet', 'Wendy One' => 'Wendy One', 'Wire One' => 'Wire One', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Yellowtail' => 'Yellowtail', 'Yeseva One' => 'Yeseva One', 'Yesteryear' => 'Yesteryear', 'Zeyada' => 'Zeyada');
5
- return array('none' => 'Default Font', 'ABeeZee' => 'ABeeZee', 'Abel' => 'Abel', 'Abril Fatface' => 'Abril Fatface', 'Aclonica' => 'Aclonica', 'Acme' => 'Acme', 'Actor' => 'Actor', 'Adamina' => 'Adamina', 'Advent Pro' => 'Advent Pro', 'Aguafina Script' => 'Aguafina Script', 'Akronim' => 'Akronim', 'Aladin' => 'Aladin', 'Aldrich' => 'Aldrich', 'Alef' => 'Alef', 'Alegreya' => 'Alegreya', 'Alegreya SC' => 'Alegreya SC', 'Alegreya Sans' => 'Alegreya Sans', 'Alegreya Sans SC' => 'Alegreya Sans SC', 'Alex Brush' => 'Alex Brush', 'Alfa Slab One' => 'Alfa Slab One', 'Alice' => 'Alice', 'Alike' => 'Alike', 'Alike Angular' => 'Alike Angular', 'Allan' => 'Allan', 'Allerta' => 'Allerta', 'Allerta Stencil' => 'Allerta Stencil', 'Allura' => 'Allura', 'Almendra' => 'Almendra', 'Almendra Display' => 'Almendra Display', 'Almendra SC' => 'Almendra SC', 'Amarante' => 'Amarante', 'Amaranth' => 'Amaranth', 'Amatic SC' => 'Amatic SC', 'Amethysta' => 'Amethysta', 'Anaheim' => 'Anaheim', 'Andada' => 'Andada', 'Andika' => 'Andika', 'Angkor' => 'Angkor', 'Annie Use Your Telescope' => 'Annie Use Your Telescope', 'Anonymous Pro' => 'Anonymous Pro', 'Antic' => 'Antic', 'Antic Didone' => 'Antic Didone', 'Antic Slab' => 'Antic Slab', 'Anton' => 'Anton', 'Arapey' => 'Arapey', 'Arbutus' => 'Arbutus', 'Arbutus Slab' => 'Arbutus Slab', 'Architects Daughter' => 'Architects Daughter', 'Archivo Black' => 'Archivo Black', 'Archivo Narrow' => 'Archivo Narrow', 'Arimo' => 'Arimo', 'Arizonia' => 'Arizonia', 'Armata' => 'Armata', 'Artifika' => 'Artifika', 'Arvo' => 'Arvo', 'Asap' => 'Asap', 'Asset' => 'Asset', 'Astloch' => 'Astloch', 'Asul' => 'Asul', 'Atomic Age' => 'Atomic Age', 'Aubrey' => 'Aubrey', 'Audiowide' => 'Audiowide', 'Autour One' => 'Autour One', 'Average' => 'Average', 'Average Sans' => 'Average Sans', 'Averia Gruesa Libre' => 'Averia Gruesa Libre', 'Averia Libre' => 'Averia Libre', 'Averia Sans Libre' => 'Averia Sans Libre', 'Averia Serif Libre' => 'Averia Serif Libre', 'Bad Script' => 'Bad Script', 'Balthazar' => 'Balthazar', 'Bangers' => 'Bangers', 'Basic' => 'Basic', 'Battambang' => 'Battambang', 'Baumans' => 'Baumans', 'Bayon' => 'Bayon', 'Belgrano' => 'Belgrano', 'Belleza' => 'Belleza', 'BenchNine' => 'BenchNine', 'Bentham' => 'Bentham', 'Berkshire Swash' => 'Berkshire Swash', 'Bevan' => 'Bevan', 'Bigelow Rules' => 'Bigelow Rules', 'Bigshot One' => 'Bigshot One', 'Bilbo' => 'Bilbo', 'Bilbo Swash Caps' => 'Bilbo Swash Caps', 'Bitter' => 'Bitter', 'Black Ops One' => 'Black Ops One', 'Bokor' => 'Bokor', 'Bonbon' => 'Bonbon', 'Boogaloo' => 'Boogaloo', 'Bowlby One' => 'Bowlby One', 'Bowlby One SC' => 'Bowlby One SC', 'Brawler' => 'Brawler', 'Bree Serif' => 'Bree Serif', 'Bubblegum Sans' => 'Bubblegum Sans', 'Bubbler One' => 'Bubbler One', 'Buda' => 'Buda', 'Buenard' => 'Buenard', 'Butcherman' => 'Butcherman', 'Butterfly Kids' => 'Butterfly Kids', 'Cabin' => 'Cabin', 'Cabin Condensed' => 'Cabin Condensed', 'Cabin Sketch' => 'Cabin Sketch', 'Caesar Dressing' => 'Caesar Dressing', 'Cagliostro' => 'Cagliostro', 'Calligraffitti' => 'Calligraffitti', 'Cambo' => 'Cambo', 'Candal' => 'Candal', 'Cantarell' => 'Cantarell', 'Cantata One' => 'Cantata One', 'Cantora One' => 'Cantora One', 'Capriola' => 'Capriola', 'Cardo' => 'Cardo', 'Carme' => 'Carme', 'Carrois Gothic' => 'Carrois Gothic', 'Carrois Gothic SC' => 'Carrois Gothic SC', 'Carter One' => 'Carter One', 'Caudex' => 'Caudex', 'Cedarville Cursive' => 'Cedarville Cursive', 'Ceviche One' => 'Ceviche One', 'Changa One' => 'Changa One', 'Chango' => 'Chango', 'Chau Philomene One' => 'Chau Philomene One', 'Chela One' => 'Chela One', 'Chelsea Market' => 'Chelsea Market', 'Chenla' => 'Chenla', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Cherry Swash' => 'Cherry Swash', 'Chewy' => 'Chewy', 'Chicle' => 'Chicle', 'Chivo' => 'Chivo', 'Cinzel' => 'Cinzel', 'Cinzel Decorative' => 'Cinzel Decorative', 'Clicker Script' => 'Clicker Script', 'Coda' => 'Coda', 'Coda Caption' => 'Coda Caption', 'Codystar' => 'Codystar', 'Combo' => 'Combo', 'Comfortaa' => 'Comfortaa', 'Coming Soon' => 'Coming Soon', 'Concert One' => 'Concert One', 'Condiment' => 'Condiment', 'Content' => 'Content', 'Contrail One' => 'Contrail One', 'Convergence' => 'Convergence', 'Cookie' => 'Cookie', 'Copse' => 'Copse', 'Corben' => 'Corben', 'Courgette' => 'Courgette', 'Cousine' => 'Cousine', 'Coustard' => 'Coustard', 'Covered By Your Grace' => 'Covered By Your Grace', 'Crafty Girls' => 'Crafty Girls', 'Creepster' => 'Creepster', 'Crete Round' => 'Crete Round', 'Crimson Text' => 'Crimson Text', 'Croissant One' => 'Croissant One', 'Crushed' => 'Crushed', 'Cuprum' => 'Cuprum', 'Cutive' => 'Cutive', 'Cutive Mono' => 'Cutive Mono', 'Damion' => 'Damion', 'Dancing Script' => 'Dancing Script', 'Dangrek' => 'Dangrek', 'Dawning of a New Day' => 'Dawning of a New Day', 'Days One' => 'Days One', 'Delius' => 'Delius', 'Delius Swash Caps' => 'Delius Swash Caps', 'Delius Unicase' => 'Delius Unicase', 'Della Respira' => 'Della Respira', 'Denk One' => 'Denk One', 'Devonshire' => 'Devonshire', 'Didact Gothic' => 'Didact Gothic', 'Diplomata' => 'Diplomata', 'Diplomata SC' => 'Diplomata SC', 'Domine' => 'Domine', 'Donegal One' => 'Donegal One', 'Doppio One' => 'Doppio One', 'Dorsa' => 'Dorsa', 'Dosis' => 'Dosis', 'Dr Sugiyama' => 'Dr Sugiyama', 'Droid Sans' => 'Droid Sans', 'Droid Sans Mono' => 'Droid Sans Mono', 'Droid Serif' => 'Droid Serif', 'Duru Sans' => 'Duru Sans', 'Dynalight' => 'Dynalight', 'EB Garamond' => 'EB Garamond', 'Eagle Lake' => 'Eagle Lake', 'Eater' => 'Eater', 'Economica' => 'Economica', 'Ek Mukta' => 'Ek Mukta', 'Electrolize' => 'Electrolize', 'Elsie' => 'Elsie', 'Elsie Swash Caps' => 'Elsie Swash Caps', 'Emblema One' => 'Emblema One', 'Emilys Candy' => 'Emilys Candy', 'Engagement' => 'Engagement', 'Englebert' => 'Englebert', 'Enriqueta' => 'Enriqueta', 'Erica One' => 'Erica One', 'Esteban' => 'Esteban', 'Euphoria Script' => 'Euphoria Script', 'Ewert' => 'Ewert', 'Exo' => 'Exo', 'Exo 2' => 'Exo 2', 'Expletus Sans' => 'Expletus Sans', 'Fanwood Text' => 'Fanwood Text', 'Fascinate' => 'Fascinate', 'Fascinate Inline' => 'Fascinate Inline', 'Faster One' => 'Faster One', 'Fasthand' => 'Fasthand', 'Fauna One' => 'Fauna One', 'Federant' => 'Federant', 'Federo' => 'Federo', 'Felipa' => 'Felipa', 'Fenix' => 'Fenix', 'Finger Paint' => 'Finger Paint', 'Fira Mono' => 'Fira Mono', 'Fira Sans' => 'Fira Sans', 'Fjalla One' => 'Fjalla One', 'Fjord One' => 'Fjord One', 'Flamenco' => 'Flamenco', 'Flavors' => 'Flavors', 'Fondamento' => 'Fondamento', 'Fontdiner Swanky' => 'Fontdiner Swanky', 'Forum' => 'Forum', 'Francois One' => 'Francois One', 'Freckle Face' => 'Freckle Face', 'Fredericka the Great' => 'Fredericka the Great', 'Fredoka One' => 'Fredoka One', 'Freehand' => 'Freehand', 'Fresca' => 'Fresca', 'Frijole' => 'Frijole', 'Fruktur' => 'Fruktur', 'Fugaz One' => 'Fugaz One', 'GFS Didot' => 'GFS Didot', 'GFS Neohellenic' => 'GFS Neohellenic', 'Gabriela' => 'Gabriela', 'Gafata' => 'Gafata', 'Galdeano' => 'Galdeano', 'Galindo' => 'Galindo', 'Gentium Basic' => 'Gentium Basic', 'Gentium Book Basic' => 'Gentium Book Basic', 'Geo' => 'Geo', 'Geostar' => 'Geostar', 'Geostar Fill' => 'Geostar Fill', 'Germania One' => 'Germania One', 'Gilda Display' => 'Gilda Display', 'Give You Glory' => 'Give You Glory', 'Glass Antiqua' => 'Glass Antiqua', 'Glegoo' => 'Glegoo', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Goblin One' => 'Goblin One', 'Gochi Hand' => 'Gochi Hand', 'Gorditas' => 'Gorditas', 'Goudy Bookletter 1911' => 'Goudy Bookletter 1911', 'Graduate' => 'Graduate', 'Grand Hotel' => 'Grand Hotel', 'Gravitas One' => 'Gravitas One', 'Great Vibes' => 'Great Vibes', 'Griffy' => 'Griffy', 'Gruppo' => 'Gruppo', 'Gudea' => 'Gudea', 'Habibi' => 'Habibi', 'Halant' => 'Halant', 'Hammersmith One' => 'Hammersmith One', 'Hanalei' => 'Hanalei', 'Hanalei Fill' => 'Hanalei Fill', 'Handlee' => 'Handlee', 'Hanuman' => 'Hanuman', 'Happy Monkey' => 'Happy Monkey', 'Headland One' => 'Headland One', 'Henny Penny' => 'Henny Penny', 'Herr Von Muellerhoff' => 'Herr Von Muellerhoff', 'Hind' => 'Hind', 'Holtwood One SC' => 'Holtwood One SC', 'Homemade Apple' => 'Homemade Apple', 'Homenaje' => 'Homenaje', 'IM Fell DW Pica' => 'IM Fell DW Pica', 'IM Fell DW Pica SC' => 'IM Fell DW Pica SC', 'IM Fell Double Pica' => 'IM Fell Double Pica', 'IM Fell Double Pica SC' => 'IM Fell Double Pica SC', 'IM Fell English' => 'IM Fell English', 'IM Fell English SC' => 'IM Fell English SC', 'IM Fell French Canon' => 'IM Fell French Canon', 'IM Fell French Canon SC' => 'IM Fell French Canon SC', 'IM Fell Great Primer' => 'IM Fell Great Primer', 'IM Fell Great Primer SC' => 'IM Fell Great Primer SC', 'Iceberg' => 'Iceberg', 'Iceland' => 'Iceland', 'Imprima' => 'Imprima', 'Inconsolata' => 'Inconsolata', 'Inder' => 'Inder', 'Indie Flower' => 'Indie Flower', 'Inika' => 'Inika', 'Irish Grover' => 'Irish Grover', 'Istok Web' => 'Istok Web', 'Italiana' => 'Italiana', 'Italianno' => 'Italianno', 'Jacques Francois' => 'Jacques Francois', 'Jacques Francois Shadow' => 'Jacques Francois Shadow', 'Jim Nightshade' => 'Jim Nightshade', 'Jockey One' => 'Jockey One', 'Jolly Lodger' => 'Jolly Lodger', 'Josefin Sans' => 'Josefin Sans', 'Josefin Slab' => 'Josefin Slab', 'Joti One' => 'Joti One', 'Judson' => 'Judson', 'Julee' => 'Julee', 'Julius Sans One' => 'Julius Sans One', 'Junge' => 'Junge', 'Jura' => 'Jura', 'Just Another Hand' => 'Just Another Hand', 'Just Me Again Down Here' => 'Just Me Again Down Here', 'Kalam' => 'Kalam', 'Kameron' => 'Kameron', 'Kantumruy' => 'Kantumruy', 'Karla' => 'Karla', 'Karma' => 'Karma', 'Kaushan Script' => 'Kaushan Script', 'Kavoon' => 'Kavoon', 'Kdam Thmor' => 'Kdam Thmor', 'Keania One' => 'Keania One', 'Kelly Slab' => 'Kelly Slab', 'Kenia' => 'Kenia', 'Khand' => 'Khand', 'Khmer' => 'Khmer', 'Kite One' => 'Kite One', 'Knewave' => 'Knewave', 'Kotta One' => 'Kotta One', 'Koulen' => 'Koulen', 'Kranky' => 'Kranky', 'Kreon' => 'Kreon', 'Kristi' => 'Kristi', 'Krona One' => 'Krona One', 'La Belle Aurore' => 'La Belle Aurore', 'Laila' => 'Laila', 'Lancelot' => 'Lancelot', 'Lato' => 'Lato', 'League Script' => 'League Script', 'Leckerli One' => 'Leckerli One', 'Ledger' => 'Ledger', 'Lekton' => 'Lekton', 'Lemon' => 'Lemon', 'Libre Baskerville' => 'Libre Baskerville', 'Life Savers' => 'Life Savers', 'Lilita One' => 'Lilita One', 'Lily Script One' => 'Lily Script One', 'Limelight' => 'Limelight', 'Linden Hill' => 'Linden Hill', 'Lobster' => 'Lobster', 'Lobster Two' => 'Lobster Two', 'Londrina Outline' => 'Londrina Outline', 'Londrina Shadow' => 'Londrina Shadow', 'Londrina Sketch' => 'Londrina Sketch', 'Londrina Solid' => 'Londrina Solid', 'Lora' => 'Lora', 'Love Ya Like A Sister' => 'Love Ya Like A Sister', 'Loved by the King' => 'Loved by the King', 'Lovers Quarrel' => 'Lovers Quarrel', 'Luckiest Guy' => 'Luckiest Guy', 'Lusitana' => 'Lusitana', 'Lustria' => 'Lustria', 'Macondo' => 'Macondo', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Magra' => 'Magra', 'Maiden Orange' => 'Maiden Orange', 'Mako' => 'Mako', 'Marcellus' => 'Marcellus', 'Marcellus SC' => 'Marcellus SC', 'Marck Script' => 'Marck Script', 'Margarine' => 'Margarine', 'Marko One' => 'Marko One', 'Marmelad' => 'Marmelad', 'Marvel' => 'Marvel', 'Mate' => 'Mate', 'Mate SC' => 'Mate SC', 'Maven Pro' => 'Maven Pro', 'McLaren' => 'McLaren', 'Meddon' => 'Meddon', 'MedievalSharp' => 'MedievalSharp', 'Medula One' => 'Medula One', 'Megrim' => 'Megrim', 'Meie Script' => 'Meie Script', 'Merienda' => 'Merienda', 'Merienda One' => 'Merienda One', 'Merriweather' => 'Merriweather', 'Merriweather Sans' => 'Merriweather Sans', 'Metal' => 'Metal', 'Metal Mania' => 'Metal Mania', 'Metamorphous' => 'Metamorphous', 'Metrophobic' => 'Metrophobic', 'Michroma' => 'Michroma', 'Milonga' => 'Milonga', 'Miltonian' => 'Miltonian', 'Miltonian Tattoo' => 'Miltonian Tattoo', 'Miniver' => 'Miniver', 'Miss Fajardose' => 'Miss Fajardose', 'Modern Antiqua' => 'Modern Antiqua', 'Molengo' => 'Molengo', 'Molle' => 'Molle', 'Monda' => 'Monda', 'Monofett' => 'Monofett', 'Monoton' => 'Monoton', 'Monsieur La Doulaise' => 'Monsieur La Doulaise', 'Montaga' => 'Montaga', 'Montez' => 'Montez', 'Montserrat' => 'Montserrat', 'Montserrat Alternates' => 'Montserrat Alternates', 'Montserrat Subrayada' => 'Montserrat Subrayada', 'Moul' => 'Moul', 'Moulpali' => 'Moulpali', 'Mountains of Christmas' => 'Mountains of Christmas', 'Mouse Memoirs' => 'Mouse Memoirs', 'Mr Bedfort' => 'Mr Bedfort', 'Mr Dafoe' => 'Mr Dafoe', 'Mr De Haviland' => 'Mr De Haviland', 'Mrs Saint Delafield' => 'Mrs Saint Delafield', 'Mrs Sheppards' => 'Mrs Sheppards', 'Muli' => 'Muli', 'Mystery Quest' => 'Mystery Quest', 'Neucha' => 'Neucha', 'Neuton' => 'Neuton', 'New Rocker' => 'New Rocker', 'News Cycle' => 'News Cycle', 'Niconne' => 'Niconne', 'Nixie One' => 'Nixie One', 'Nobile' => 'Nobile', 'Nokora' => 'Nokora', 'Norican' => 'Norican', 'Nosifer' => 'Nosifer', 'Nothing You Could Do' => 'Nothing You Could Do', 'Noticia Text' => 'Noticia Text', 'Noto Sans' => 'Noto Sans', 'Noto Serif' => 'Noto Serif', 'Nova Cut' => 'Nova Cut', 'Nova Flat' => 'Nova Flat', 'Nova Mono' => 'Nova Mono', 'Nova Oval' => 'Nova Oval', 'Nova Round' => 'Nova Round', 'Nova Script' => 'Nova Script', 'Nova Slim' => 'Nova Slim', 'Nova Square' => 'Nova Square', 'Numans' => 'Numans', 'Nunito' => 'Nunito', 'Odor Mean Chey' => 'Odor Mean Chey', 'Offside' => 'Offside', 'Old Standard TT' => 'Old Standard TT', 'Oldenburg' => 'Oldenburg', 'Oleo Script' => 'Oleo Script', 'Oleo Script Swash Caps' => 'Oleo Script Swash Caps', 'Open Sans' => 'Open Sans', 'Open Sans Condensed' => 'Open Sans Condensed', 'Oranienbaum' => 'Oranienbaum', 'Orbitron' => 'Orbitron', 'Oregano' => 'Oregano', 'Orienta' => 'Orienta', 'Original Surfer' => 'Original Surfer', 'Oswald' => 'Oswald', 'Over the Rainbow' => 'Over the Rainbow', 'Overlock' => 'Overlock', 'Overlock SC' => 'Overlock SC', 'Ovo' => 'Ovo', 'Oxygen' => 'Oxygen', 'Oxygen Mono' => 'Oxygen Mono', 'PT Mono' => 'PT Mono', 'PT Sans' => 'PT Sans', 'PT Sans Caption' => 'PT Sans Caption', 'PT Sans Narrow' => 'PT Sans Narrow', 'PT Serif' => 'PT Serif', 'PT Serif Caption' => 'PT Serif Caption', 'Pacifico' => 'Pacifico', 'Paprika' => 'Paprika', 'Parisienne' => 'Parisienne', 'Passero One' => 'Passero One', 'Passion One' => 'Passion One', 'Pathway Gothic One' => 'Pathway Gothic One', 'Patrick Hand' => 'Patrick Hand', 'Patrick Hand SC' => 'Patrick Hand SC', 'Patua One' => 'Patua One', 'Paytone One' => 'Paytone One', 'Peralta' => 'Peralta', 'Permanent Marker' => 'Permanent Marker', 'Petit Formal Script' => 'Petit Formal Script', 'Petrona' => 'Petrona', 'Philosopher' => 'Philosopher', 'Piedra' => 'Piedra', 'Pinyon Script' => 'Pinyon Script', 'Pirata One' => 'Pirata One', 'Plaster' => 'Plaster', 'Play' => 'Play', 'Playball' => 'Playball', 'Playfair Display' => 'Playfair Display', 'Playfair Display SC' => 'Playfair Display SC', 'Podkova' => 'Podkova', 'Poiret One' => 'Poiret One', 'Poller One' => 'Poller One', 'Poly' => 'Poly', 'Pompiere' => 'Pompiere', 'Pontano Sans' => 'Pontano Sans', 'Port Lligat Sans' => 'Port Lligat Sans', 'Port Lligat Slab' => 'Port Lligat Slab', 'Prata' => 'Prata', 'Preahvihear' => 'Preahvihear', 'Press Start 2P' => 'Press Start 2P', 'Princess Sofia' => 'Princess Sofia', 'Prociono' => 'Prociono', 'Prosto One' => 'Prosto One', 'Puritan' => 'Puritan', 'Purple Purse' => 'Purple Purse', 'Quando' => 'Quando', 'Quantico' => 'Quantico', 'Quattrocento' => 'Quattrocento', 'Quattrocento Sans' => 'Quattrocento Sans', 'Questrial' => 'Questrial', 'Quicksand' => 'Quicksand', 'Quintessential' => 'Quintessential', 'Qwigley' => 'Qwigley', 'Racing Sans One' => 'Racing Sans One', 'Radley' => 'Radley', 'Rajdhani' => 'Rajdhani', 'Raleway' => 'Raleway', 'Raleway Dots' => 'Raleway Dots', 'Rambla' => 'Rambla', 'Rammetto One' => 'Rammetto One', 'Ranchers' => 'Ranchers', 'Rancho' => 'Rancho', 'Rationale' => 'Rationale', 'Redressed' => 'Redressed', 'Reenie Beanie' => 'Reenie Beanie', 'Revalia' => 'Revalia', 'Ribeye' => 'Ribeye', 'Ribeye Marrow' => 'Ribeye Marrow', 'Righteous' => 'Righteous', 'Risque' => 'Risque', 'Roboto' => 'Roboto', 'Roboto Condensed' => 'Roboto Condensed', 'Roboto Slab' => 'Roboto Slab', 'Rochester' => 'Rochester', 'Rock Salt' => 'Rock Salt', 'Rokkitt' => 'Rokkitt', 'Romanesco' => 'Romanesco', 'Ropa Sans' => 'Ropa Sans', 'Rosario' => 'Rosario', 'Rosarivo' => 'Rosarivo', 'Rouge Script' => 'Rouge Script', 'Rozha One' => 'Rozha One', 'Rubik Mono One' => 'Rubik Mono One', 'Rubik One' => 'Rubik One', 'Ruda' => 'Ruda', 'Rufina' => 'Rufina', 'Ruge Boogie' => 'Ruge Boogie', 'Ruluko' => 'Ruluko', 'Rum Raisin' => 'Rum Raisin', 'Ruslan Display' => 'Ruslan Display', 'Russo One' => 'Russo One', 'Ruthie' => 'Ruthie', 'Rye' => 'Rye', 'Sacramento' => 'Sacramento', 'Sail' => 'Sail', 'Salsa' => 'Salsa', 'Sanchez' => 'Sanchez', 'Sancreek' => 'Sancreek', 'Sansita One' => 'Sansita One', 'Sarina' => 'Sarina', 'Sarpanch' => 'Sarpanch', 'Satisfy' => 'Satisfy', 'Scada' => 'Scada', 'Schoolbell' => 'Schoolbell', 'Seaweed Script' => 'Seaweed Script', 'Sevillana' => 'Sevillana', 'Seymour One' => 'Seymour One', 'Shadows Into Light' => 'Shadows Into Light', 'Shadows Into Light Two' => 'Shadows Into Light Two', 'Shanti' => 'Shanti', 'Share' => 'Share', 'Share Tech' => 'Share Tech', 'Share Tech Mono' => 'Share Tech Mono', 'Shojumaru' => 'Shojumaru', 'Short Stack' => 'Short Stack', 'Siemreap' => 'Siemreap', 'Sigmar One' => 'Sigmar One', 'Signika' => 'Signika', 'Signika Negative' => 'Signika Negative', 'Simonetta' => 'Simonetta', 'Sintony' => 'Sintony', 'Sirin Stencil' => 'Sirin Stencil', 'Six Caps' => 'Six Caps', 'Skranji' => 'Skranji', 'Slabo 13px' => 'Slabo 13px', 'Slabo 27px' => 'Slabo 27px', 'Slackey' => 'Slackey', 'Smokum' => 'Smokum', 'Smythe' => 'Smythe', 'Sniglet' => 'Sniglet', 'Snippet' => 'Snippet', 'Snowburst One' => 'Snowburst One', 'Sofadi One' => 'Sofadi One', 'Sofia' => 'Sofia', 'Sonsie One' => 'Sonsie One', 'Sorts Mill Goudy' => 'Sorts Mill Goudy', 'Source Code Pro' => 'Source Code Pro', 'Source Sans Pro' => 'Source Sans Pro', 'Source Serif Pro' => 'Source Serif Pro', 'Special Elite' => 'Special Elite', 'Spicy Rice' => 'Spicy Rice', 'Spinnaker' => 'Spinnaker', 'Spirax' => 'Spirax', 'Squada One' => 'Squada One', 'Stalemate' => 'Stalemate', 'Stalinist One' => 'Stalinist One', 'Stardos Stencil' => 'Stardos Stencil', 'Stint Ultra Condensed' => 'Stint Ultra Condensed', 'Stint Ultra Expanded' => 'Stint Ultra Expanded', 'Stoke' => 'Stoke', 'Strait' => 'Strait', 'Sue Ellen Francisco' => 'Sue Ellen Francisco', 'Sunshiney' => 'Sunshiney', 'Supermercado One' => 'Supermercado One', 'Suwannaphum' => 'Suwannaphum', 'Swanky and Moo Moo' => 'Swanky and Moo Moo', 'Syncopate' => 'Syncopate', 'Tangerine' => 'Tangerine', 'Taprom' => 'Taprom', 'Tauri' => 'Tauri', 'Teko' => 'Teko', 'Telex' => 'Telex', 'Tenor Sans' => 'Tenor Sans', 'Text Me One' => 'Text Me One', 'The Girl Next Door' => 'The Girl Next Door', 'Tienne' => 'Tienne', 'Tinos' => 'Tinos', 'Titan One' => 'Titan One', 'Titillium Web' => 'Titillium Web', 'Trade Winds' => 'Trade Winds', 'Trocchi' => 'Trocchi', 'Trochut' => 'Trochut', 'Trykker' => 'Trykker', 'Tulpen One' => 'Tulpen One', 'Ubuntu' => 'Ubuntu', 'Ubuntu Condensed' => 'Ubuntu Condensed', 'Ubuntu Mono' => 'Ubuntu Mono', 'Ultra' => 'Ultra', 'Uncial Antiqua' => 'Uncial Antiqua', 'Underdog' => 'Underdog', 'Unica One' => 'Unica One', 'UnifrakturCook' => 'UnifrakturCook', 'UnifrakturMaguntia' => 'UnifrakturMaguntia', 'Unkempt' => 'Unkempt', 'Unlock' => 'Unlock', 'Unna' => 'Unna', 'VT323' => 'VT323', 'Vampiro One' => 'Vampiro One', 'Varela' => 'Varela', 'Varela Round' => 'Varela Round', 'Vast Shadow' => 'Vast Shadow', 'Vesper Libre' => 'Vesper Libre', 'Vibur' => 'Vibur', 'Vidaloka' => 'Vidaloka', 'Viga' => 'Viga', 'Voces' => 'Voces', 'Volkhov' => 'Volkhov', 'Vollkorn' => 'Vollkorn', 'Voltaire' => 'Voltaire', 'Waiting for the Sunrise' => 'Waiting for the Sunrise', 'Wallpoet' => 'Wallpoet', 'Walter Turncoat' => 'Walter Turncoat', 'Warnes' => 'Warnes', 'Wellfleet' => 'Wellfleet', 'Wendy One' => 'Wendy One', 'Wire One' => 'Wire One', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Yellowtail' => 'Yellowtail', 'Yeseva One' => 'Yeseva One', 'Yesteryear' => 'Yesteryear', 'Zeyada' => 'Zeyada');
6
- }
7
-
8
  ?>
1
+ <?php
2
+
3
+ function ujic_googlefonts() {
4
+ //return array('none' => 'Default Font', 'ABeeZee' => 'ABeeZee', 'Abel' => 'Abel', 'Abril Fatface' => 'Abril Fatface', 'Aclonica' => 'Aclonica', 'Acme' => 'Acme', 'Actor' => 'Actor', 'Adamina' => 'Adamina', 'Advent Pro' => 'Advent Pro', 'Aguafina Script' => 'Aguafina Script', 'Akronim' => 'Akronim', 'Aladin' => 'Aladin', 'Aldrich' => 'Aldrich', 'Alegreya' => 'Alegreya', 'Alegreya SC' => 'Alegreya SC', 'Alex Brush' => 'Alex Brush', 'Alfa Slab One' => 'Alfa Slab One', 'Alice' => 'Alice', 'Alike' => 'Alike', 'Alike Angular' => 'Alike Angular', 'Allan' => 'Allan', 'Allerta' => 'Allerta', 'Allerta Stencil' => 'Allerta Stencil', 'Allura' => 'Allura', 'Almendra' => 'Almendra', 'Almendra Display' => 'Almendra Display', 'Almendra SC' => 'Almendra SC', 'Amarante' => 'Amarante', 'Amaranth' => 'Amaranth', 'Amatic SC' => 'Amatic SC', 'Amethysta' => 'Amethysta', 'Anaheim' => 'Anaheim', 'Andada' => 'Andada', 'Andika' => 'Andika', 'Angkor' => 'Angkor', 'Annie Use Your Telescope' => 'Annie Use Your Telescope', 'Anonymous Pro' => 'Anonymous Pro', 'Antic' => 'Antic', 'Antic Didone' => 'Antic Didone', 'Antic Slab' => 'Antic Slab', 'Anton' => 'Anton', 'Arapey' => 'Arapey', 'Arbutus' => 'Arbutus', 'Arbutus Slab' => 'Arbutus Slab', 'Architects Daughter' => 'Architects Daughter', 'Archivo Black' => 'Archivo Black', 'Archivo Narrow' => 'Archivo Narrow', 'Arimo' => 'Arimo', 'Arizonia' => 'Arizonia', 'Armata' => 'Armata', 'Artifika' => 'Artifika', 'Arvo' => 'Arvo', 'Asap' => 'Asap', 'Asset' => 'Asset', 'Astloch' => 'Astloch', 'Asul' => 'Asul', 'Atomic Age' => 'Atomic Age', 'Aubrey' => 'Aubrey', 'Audiowide' => 'Audiowide', 'Autour One' => 'Autour One', 'Average' => 'Average', 'Average Sans' => 'Average Sans', 'Averia Gruesa Libre' => 'Averia Gruesa Libre', 'Averia Libre' => 'Averia Libre', 'Averia Sans Libre' => 'Averia Sans Libre', 'Averia Serif Libre' => 'Averia Serif Libre', 'Bad Script' => 'Bad Script', 'Balthazar' => 'Balthazar', 'Bangers' => 'Bangers', 'Basic' => 'Basic', 'Battambang' => 'Battambang', 'Baumans' => 'Baumans', 'Bayon' => 'Bayon', 'Belgrano' => 'Belgrano', 'Belleza' => 'Belleza', 'BenchNine' => 'BenchNine', 'Bentham' => 'Bentham', 'Berkshire Swash' => 'Berkshire Swash', 'Bevan' => 'Bevan', 'Bigelow Rules' => 'Bigelow Rules', 'Bigshot One' => 'Bigshot One', 'Bilbo' => 'Bilbo', 'Bilbo Swash Caps' => 'Bilbo Swash Caps', 'Bitter' => 'Bitter', 'Black Ops One' => 'Black Ops One', 'Bokor' => 'Bokor', 'Bonbon' => 'Bonbon', 'Boogaloo' => 'Boogaloo', 'Bowlby One' => 'Bowlby One', 'Bowlby One SC' => 'Bowlby One SC', 'Brawler' => 'Brawler', 'Bree Serif' => 'Bree Serif', 'Bubblegum Sans' => 'Bubblegum Sans', 'Bubbler One' => 'Bubbler One', 'Buda' => 'Buda', 'Buenard' => 'Buenard', 'Butcherman' => 'Butcherman', 'Butterfly Kids' => 'Butterfly Kids', 'Cabin' => 'Cabin', 'Cabin Condensed' => 'Cabin Condensed', 'Cabin Sketch' => 'Cabin Sketch', 'Caesar Dressing' => 'Caesar Dressing', 'Cagliostro' => 'Cagliostro', 'Calligraffitti' => 'Calligraffitti', 'Cambo' => 'Cambo', 'Candal' => 'Candal', 'Cantarell' => 'Cantarell', 'Cantata One' => 'Cantata One', 'Cantora One' => 'Cantora One', 'Capriola' => 'Capriola', 'Cardo' => 'Cardo', 'Carme' => 'Carme', 'Carrois Gothic' => 'Carrois Gothic', 'Carrois Gothic SC' => 'Carrois Gothic SC', 'Carter One' => 'Carter One', 'Caudex' => 'Caudex', 'Cedarville Cursive' => 'Cedarville Cursive', 'Ceviche One' => 'Ceviche One', 'Changa One' => 'Changa One', 'Chango' => 'Chango', 'Chau Philomene One' => 'Chau Philomene One', 'Chela One' => 'Chela One', 'Chelsea Market' => 'Chelsea Market', 'Chenla' => 'Chenla', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Cherry Swash' => 'Cherry Swash', 'Chewy' => 'Chewy', 'Chicle' => 'Chicle', 'Chivo' => 'Chivo', 'Cinzel' => 'Cinzel', 'Cinzel Decorative' => 'Cinzel Decorative', 'Clicker Script' => 'Clicker Script', 'Coda' => 'Coda', 'Coda Caption' => 'Coda Caption', 'Codystar' => 'Codystar', 'Combo' => 'Combo', 'Comfortaa' => 'Comfortaa', 'Coming Soon' => 'Coming Soon', 'Concert One' => 'Concert One', 'Condiment' => 'Condiment', 'Content' => 'Content', 'Contrail One' => 'Contrail One', 'Convergence' => 'Convergence', 'Cookie' => 'Cookie', 'Copse' => 'Copse', 'Corben' => 'Corben', 'Courgette' => 'Courgette', 'Cousine' => 'Cousine', 'Coustard' => 'Coustard', 'Covered By Your Grace' => 'Covered By Your Grace', 'Crafty Girls' => 'Crafty Girls', 'Creepster' => 'Creepster', 'Crete Round' => 'Crete Round', 'Crimson Text' => 'Crimson Text', 'Croissant One' => 'Croissant One', 'Crushed' => 'Crushed', 'Cuprum' => 'Cuprum', 'Cutive' => 'Cutive', 'Cutive Mono' => 'Cutive Mono', 'Damion' => 'Damion', 'Dancing Script' => 'Dancing Script', 'Dangrek' => 'Dangrek', 'Dawning of a New Day' => 'Dawning of a New Day', 'Days One' => 'Days One', 'Delius' => 'Delius', 'Delius Swash Caps' => 'Delius Swash Caps', 'Delius Unicase' => 'Delius Unicase', 'Della Respira' => 'Della Respira', 'Denk One' => 'Denk One', 'Devonshire' => 'Devonshire', 'Didact Gothic' => 'Didact Gothic', 'Diplomata' => 'Diplomata', 'Diplomata SC' => 'Diplomata SC', 'Domine' => 'Domine', 'Donegal One' => 'Donegal One', 'Doppio One' => 'Doppio One', 'Dorsa' => 'Dorsa', 'Dosis' => 'Dosis', 'Dr Sugiyama' => 'Dr Sugiyama', 'Droid Sans' => 'Droid Sans', 'Droid Sans Mono' => 'Droid Sans Mono', 'Droid Serif' => 'Droid Serif', 'Duru Sans' => 'Duru Sans', 'Dynalight' => 'Dynalight', 'EB Garamond' => 'EB Garamond', 'Eagle Lake' => 'Eagle Lake', 'Eater' => 'Eater', 'Economica' => 'Economica', 'Electrolize' => 'Electrolize', 'Elsie' => 'Elsie', 'Elsie Swash Caps' => 'Elsie Swash Caps', 'Emblema One' => 'Emblema One', 'Emilys Candy' => 'Emilys Candy', 'Engagement' => 'Engagement', 'Englebert' => 'Englebert', 'Enriqueta' => 'Enriqueta', 'Erica One' => 'Erica One', 'Esteban' => 'Esteban', 'Euphoria Script' => 'Euphoria Script', 'Ewert' => 'Ewert', 'Exo' => 'Exo', 'Expletus Sans' => 'Expletus Sans', 'Fanwood Text' => 'Fanwood Text', 'Fascinate' => 'Fascinate', 'Fascinate Inline' => 'Fascinate Inline', 'Faster One' => 'Faster One', 'Fasthand' => 'Fasthand', 'Federant' => 'Federant', 'Federo' => 'Federo', 'Felipa' => 'Felipa', 'Fenix' => 'Fenix', 'Finger Paint' => 'Finger Paint', 'Fjalla One' => 'Fjalla One', 'Fjord One' => 'Fjord One', 'Flamenco' => 'Flamenco', 'Flavors' => 'Flavors', 'Fondamento' => 'Fondamento', 'Fontdiner Swanky' => 'Fontdiner Swanky', 'Forum' => 'Forum', 'Francois One' => 'Francois One', 'Freckle Face' => 'Freckle Face', 'Fredericka the Great' => 'Fredericka the Great', 'Fredoka One' => 'Fredoka One', 'Freehand' => 'Freehand', 'Fresca' => 'Fresca', 'Frijole' => 'Frijole', 'Fruktur' => 'Fruktur', 'Fugaz One' => 'Fugaz One', 'GFS Didot' => 'GFS Didot', 'GFS Neohellenic' => 'GFS Neohellenic', 'Gabriela' => 'Gabriela', 'Gafata' => 'Gafata', 'Galdeano' => 'Galdeano', 'Galindo' => 'Galindo', 'Gentium Basic' => 'Gentium Basic', 'Gentium Book Basic' => 'Gentium Book Basic', 'Geo' => 'Geo', 'Geostar' => 'Geostar', 'Geostar Fill' => 'Geostar Fill', 'Germania One' => 'Germania One', 'Gilda Display' => 'Gilda Display', 'Give You Glory' => 'Give You Glory', 'Glass Antiqua' => 'Glass Antiqua', 'Glegoo' => 'Glegoo', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Goblin One' => 'Goblin One', 'Gochi Hand' => 'Gochi Hand', 'Gorditas' => 'Gorditas', 'Goudy Bookletter 1911' => 'Goudy Bookletter 1911', 'Graduate' => 'Graduate', 'Grand Hotel' => 'Grand Hotel', 'Gravitas One' => 'Gravitas One', 'Great Vibes' => 'Great Vibes', 'Griffy' => 'Griffy', 'Gruppo' => 'Gruppo', 'Gudea' => 'Gudea', 'Habibi' => 'Habibi', 'Hammersmith One' => 'Hammersmith One', 'Hanalei' => 'Hanalei', 'Hanalei Fill' => 'Hanalei Fill', 'Handlee' => 'Handlee', 'Hanuman' => 'Hanuman', 'Happy Monkey' => 'Happy Monkey', 'Headland One' => 'Headland One', 'Henny Penny' => 'Henny Penny', 'Herr Von Muellerhoff' => 'Herr Von Muellerhoff', 'Holtwood One SC' => 'Holtwood One SC', 'Homemade Apple' => 'Homemade Apple', 'Homenaje' => 'Homenaje', 'IM Fell DW Pica' => 'IM Fell DW Pica', 'IM Fell DW Pica SC' => 'IM Fell DW Pica SC', 'IM Fell Double Pica' => 'IM Fell Double Pica', 'IM Fell Double Pica SC' => 'IM Fell Double Pica SC', 'IM Fell English' => 'IM Fell English', 'IM Fell English SC' => 'IM Fell English SC', 'IM Fell French Canon' => 'IM Fell French Canon', 'IM Fell French Canon SC' => 'IM Fell French Canon SC', 'IM Fell Great Primer' => 'IM Fell Great Primer', 'IM Fell Great Primer SC' => 'IM Fell Great Primer SC', 'Iceberg' => 'Iceberg', 'Iceland' => 'Iceland', 'Imprima' => 'Imprima', 'Inconsolata' => 'Inconsolata', 'Inder' => 'Inder', 'Indie Flower' => 'Indie Flower', 'Inika' => 'Inika', 'Irish Grover' => 'Irish Grover', 'Istok Web' => 'Istok Web', 'Italiana' => 'Italiana', 'Italianno' => 'Italianno', 'Jacques Francois' => 'Jacques Francois', 'Jacques Francois Shadow' => 'Jacques Francois Shadow', 'Jim Nightshade' => 'Jim Nightshade', 'Jockey One' => 'Jockey One', 'Jolly Lodger' => 'Jolly Lodger', 'Josefin Sans' => 'Josefin Sans', 'Josefin Slab' => 'Josefin Slab', 'Joti One' => 'Joti One', 'Judson' => 'Judson', 'Julee' => 'Julee', 'Julius Sans One' => 'Julius Sans One', 'Junge' => 'Junge', 'Jura' => 'Jura', 'Just Another Hand' => 'Just Another Hand', 'Just Me Again Down Here' => 'Just Me Again Down Here', 'Kameron' => 'Kameron', 'Karla' => 'Karla', 'Kaushan Script' => 'Kaushan Script', 'Kavoon' => 'Kavoon', 'Keania One' => 'Keania One', 'Kelly Slab' => 'Kelly Slab', 'Kenia' => 'Kenia', 'Khmer' => 'Khmer', 'Kite One' => 'Kite One', 'Knewave' => 'Knewave', 'Kotta One' => 'Kotta One', 'Koulen' => 'Koulen', 'Kranky' => 'Kranky', 'Kreon' => 'Kreon', 'Kristi' => 'Kristi', 'Krona One' => 'Krona One', 'La Belle Aurore' => 'La Belle Aurore', 'Lancelot' => 'Lancelot', 'Lato' => 'Lato', 'League Script' => 'League Script', 'Leckerli One' => 'Leckerli One', 'Ledger' => 'Ledger', 'Lekton' => 'Lekton', 'Lemon' => 'Lemon', 'Libre Baskerville' => 'Libre Baskerville', 'Life Savers' => 'Life Savers', 'Lilita One' => 'Lilita One', 'Limelight' => 'Limelight', 'Linden Hill' => 'Linden Hill', 'Lobster' => 'Lobster', 'Lobster Two' => 'Lobster Two', 'Londrina Outline' => 'Londrina Outline', 'Londrina Shadow' => 'Londrina Shadow', 'Londrina Sketch' => 'Londrina Sketch', 'Londrina Solid' => 'Londrina Solid', 'Lora' => 'Lora', 'Love Ya Like A Sister' => 'Love Ya Like A Sister', 'Loved by the King' => 'Loved by the King', 'Lovers Quarrel' => 'Lovers Quarrel', 'Luckiest Guy' => 'Luckiest Guy', 'Lusitana' => 'Lusitana', 'Lustria' => 'Lustria', 'Macondo' => 'Macondo', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Magra' => 'Magra', 'Maiden Orange' => 'Maiden Orange', 'Mako' => 'Mako', 'Marcellus' => 'Marcellus', 'Marcellus SC' => 'Marcellus SC', 'Marck Script' => 'Marck Script', 'Margarine' => 'Margarine', 'Marko One' => 'Marko One', 'Marmelad' => 'Marmelad', 'Marvel' => 'Marvel', 'Mate' => 'Mate', 'Mate SC' => 'Mate SC', 'Maven Pro' => 'Maven Pro', 'McLaren' => 'McLaren', 'Meddon' => 'Meddon', 'MedievalSharp' => 'MedievalSharp', 'Medula One' => 'Medula One', 'Megrim' => 'Megrim', 'Meie Script' => 'Meie Script', 'Merienda' => 'Merienda', 'Merienda One' => 'Merienda One', 'Merriweather' => 'Merriweather', 'Merriweather Sans' => 'Merriweather Sans', 'Metal' => 'Metal', 'Metal Mania' => 'Metal Mania', 'Metamorphous' => 'Metamorphous', 'Metrophobic' => 'Metrophobic', 'Michroma' => 'Michroma', 'Milonga' => 'Milonga', 'Miltonian' => 'Miltonian', 'Miltonian Tattoo' => 'Miltonian Tattoo', 'Miniver' => 'Miniver', 'Miss Fajardose' => 'Miss Fajardose', 'Modern Antiqua' => 'Modern Antiqua', 'Molengo' => 'Molengo', 'Molle' => 'Molle', 'Monda' => 'Monda', 'Monofett' => 'Monofett', 'Monoton' => 'Monoton', 'Monsieur La Doulaise' => 'Monsieur La Doulaise', 'Montaga' => 'Montaga', 'Montez' => 'Montez', 'Montserrat' => 'Montserrat', 'Montserrat Alternates' => 'Montserrat Alternates', 'Montserrat Subrayada' => 'Montserrat Subrayada', 'Moul' => 'Moul', 'Moulpali' => 'Moulpali', 'Mountains of Christmas' => 'Mountains of Christmas', 'Mouse Memoirs' => 'Mouse Memoirs', 'Mr Bedfort' => 'Mr Bedfort', 'Mr Dafoe' => 'Mr Dafoe', 'Mr De Haviland' => 'Mr De Haviland', 'Mrs Saint Delafield' => 'Mrs Saint Delafield', 'Mrs Sheppards' => 'Mrs Sheppards', 'Muli' => 'Muli', 'Mystery Quest' => 'Mystery Quest', 'Neucha' => 'Neucha', 'Neuton' => 'Neuton', 'New Rocker' => 'New Rocker', 'News Cycle' => 'News Cycle', 'Niconne' => 'Niconne', 'Nixie One' => 'Nixie One', 'Nobile' => 'Nobile', 'Nokora' => 'Nokora', 'Norican' => 'Norican', 'Nosifer' => 'Nosifer', 'Nothing You Could Do' => 'Nothing You Could Do', 'Noticia Text' => 'Noticia Text', 'Noto Sans' => 'Noto Sans', 'Noto Serif' => 'Noto Serif', 'Nova Cut' => 'Nova Cut', 'Nova Flat' => 'Nova Flat', 'Nova Mono' => 'Nova Mono', 'Nova Oval' => 'Nova Oval', 'Nova Round' => 'Nova Round', 'Nova Script' => 'Nova Script', 'Nova Slim' => 'Nova Slim', 'Nova Square' => 'Nova Square', 'Numans' => 'Numans', 'Nunito' => 'Nunito', 'Odor Mean Chey' => 'Odor Mean Chey', 'Offside' => 'Offside', 'Old Standard TT' => 'Old Standard TT', 'Oldenburg' => 'Oldenburg', 'Oleo Script' => 'Oleo Script', 'Oleo Script Swash Caps' => 'Oleo Script Swash Caps', 'Open Sans' => 'Open Sans', 'Open Sans Condensed' => 'Open Sans Condensed', 'Oranienbaum' => 'Oranienbaum', 'Orbitron' => 'Orbitron', 'Oregano' => 'Oregano', 'Orienta' => 'Orienta', 'Original Surfer' => 'Original Surfer', 'Oswald' => 'Oswald', 'Over the Rainbow' => 'Over the Rainbow', 'Overlock' => 'Overlock', 'Overlock SC' => 'Overlock SC', 'Ovo' => 'Ovo', 'Oxygen' => 'Oxygen', 'Oxygen Mono' => 'Oxygen Mono', 'PT Mono' => 'PT Mono', 'PT Sans' => 'PT Sans', 'PT Sans Caption' => 'PT Sans Caption', 'PT Sans Narrow' => 'PT Sans Narrow', 'PT Serif' => 'PT Serif', 'PT Serif Caption' => 'PT Serif Caption', 'Pacifico' => 'Pacifico', 'Paprika' => 'Paprika', 'Parisienne' => 'Parisienne', 'Passero One' => 'Passero One', 'Passion One' => 'Passion One', 'Patrick Hand' => 'Patrick Hand', 'Patrick Hand SC' => 'Patrick Hand SC', 'Patua One' => 'Patua One', 'Paytone One' => 'Paytone One', 'Peralta' => 'Peralta', 'Permanent Marker' => 'Permanent Marker', 'Petit Formal Script' => 'Petit Formal Script', 'Petrona' => 'Petrona', 'Philosopher' => 'Philosopher', 'Piedra' => 'Piedra', 'Pinyon Script' => 'Pinyon Script', 'Pirata One' => 'Pirata One', 'Plaster' => 'Plaster', 'Play' => 'Play', 'Playball' => 'Playball', 'Playfair Display' => 'Playfair Display', 'Playfair Display SC' => 'Playfair Display SC', 'Podkova' => 'Podkova', 'Poiret One' => 'Poiret One', 'Poller One' => 'Poller One', 'Poly' => 'Poly', 'Pompiere' => 'Pompiere', 'Pontano Sans' => 'Pontano Sans', 'Port Lligat Sans' => 'Port Lligat Sans', 'Port Lligat Slab' => 'Port Lligat Slab', 'Prata' => 'Prata', 'Preahvihear' => 'Preahvihear', 'Press Start 2P' => 'Press Start 2P', 'Princess Sofia' => 'Princess Sofia', 'Prociono' => 'Prociono', 'Prosto One' => 'Prosto One', 'Puritan' => 'Puritan', 'Purple Purse' => 'Purple Purse', 'Quando' => 'Quando', 'Quantico' => 'Quantico', 'Quattrocento' => 'Quattrocento', 'Quattrocento Sans' => 'Quattrocento Sans', 'Questrial' => 'Questrial', 'Quicksand' => 'Quicksand', 'Quintessential' => 'Quintessential', 'Qwigley' => 'Qwigley', 'Racing Sans One' => 'Racing Sans One', 'Radley' => 'Radley', 'Raleway' => 'Raleway', 'Raleway Dots' => 'Raleway Dots', 'Rambla' => 'Rambla', 'Rammetto One' => 'Rammetto One', 'Ranchers' => 'Ranchers', 'Rancho' => 'Rancho', 'Rationale' => 'Rationale', 'Redressed' => 'Redressed', 'Reenie Beanie' => 'Reenie Beanie', 'Revalia' => 'Revalia', 'Ribeye' => 'Ribeye', 'Ribeye Marrow' => 'Ribeye Marrow', 'Righteous' => 'Righteous', 'Risque' => 'Risque', 'Roboto' => 'Roboto', 'Roboto Condensed' => 'Roboto Condensed', 'Rochester' => 'Rochester', 'Rock Salt' => 'Rock Salt', 'Rokkitt' => 'Rokkitt', 'Romanesco' => 'Romanesco', 'Ropa Sans' => 'Ropa Sans', 'Rosario' => 'Rosario', 'Rosarivo' => 'Rosarivo', 'Rouge Script' => 'Rouge Script', 'Ruda' => 'Ruda', 'Rufina' => 'Rufina', 'Ruge Boogie' => 'Ruge Boogie', 'Ruluko' => 'Ruluko', 'Rum Raisin' => 'Rum Raisin', 'Ruslan Display' => 'Ruslan Display', 'Russo One' => 'Russo One', 'Ruthie' => 'Ruthie', 'Rye' => 'Rye', 'Sacramento' => 'Sacramento', 'Sail' => 'Sail', 'Salsa' => 'Salsa', 'Sanchez' => 'Sanchez', 'Sancreek' => 'Sancreek', 'Sansita One' => 'Sansita One', 'Sarina' => 'Sarina', 'Satisfy' => 'Satisfy', 'Scada' => 'Scada', 'Schoolbell' => 'Schoolbell', 'Seaweed Script' => 'Seaweed Script', 'Sevillana' => 'Sevillana', 'Seymour One' => 'Seymour One', 'Shadows Into Light' => 'Shadows Into Light', 'Shadows Into Light Two' => 'Shadows Into Light Two', 'Shanti' => 'Shanti', 'Share' => 'Share', 'Share Tech' => 'Share Tech', 'Share Tech Mono' => 'Share Tech Mono', 'Shojumaru' => 'Shojumaru', 'Short Stack' => 'Short Stack', 'Siemreap' => 'Siemreap', 'Sigmar One' => 'Sigmar One', 'Signika' => 'Signika', 'Signika Negative' => 'Signika Negative', 'Simonetta' => 'Simonetta', 'Sintony' => 'Sintony', 'Sirin Stencil' => 'Sirin Stencil', 'Six Caps' => 'Six Caps', 'Skranji' => 'Skranji', 'Slackey' => 'Slackey', 'Smokum' => 'Smokum', 'Smythe' => 'Smythe', 'Sniglet' => 'Sniglet', 'Snippet' => 'Snippet', 'Snowburst One' => 'Snowburst One', 'Sofadi One' => 'Sofadi One', 'Sofia' => 'Sofia', 'Sonsie One' => 'Sonsie One', 'Sorts Mill Goudy' => 'Sorts Mill Goudy', 'Source Code Pro' => 'Source Code Pro', 'Source Sans Pro' => 'Source Sans Pro', 'Special Elite' => 'Special Elite', 'Spicy Rice' => 'Spicy Rice', 'Spinnaker' => 'Spinnaker', 'Spirax' => 'Spirax', 'Squada One' => 'Squada One', 'Stalemate' => 'Stalemate', 'Stalinist One' => 'Stalinist One', 'Stardos Stencil' => 'Stardos Stencil', 'Stint Ultra Condensed' => 'Stint Ultra Condensed', 'Stint Ultra Expanded' => 'Stint Ultra Expanded', 'Stoke' => 'Stoke', 'Strait' => 'Strait', 'Sue Ellen Francisco' => 'Sue Ellen Francisco', 'Sunshiney' => 'Sunshiney', 'Supermercado One' => 'Supermercado One', 'Suwannaphum' => 'Suwannaphum', 'Swanky and Moo Moo' => 'Swanky and Moo Moo', 'Syncopate' => 'Syncopate', 'Tangerine' => 'Tangerine', 'Taprom' => 'Taprom', 'Tauri' => 'Tauri', 'Telex' => 'Telex', 'Tenor Sans' => 'Tenor Sans', 'Text Me One' => 'Text Me One', 'The Girl Next Door' => 'The Girl Next Door', 'Tienne' => 'Tienne', 'Tinos' => 'Tinos', 'Titan One' => 'Titan One', 'Titillium Web' => 'Titillium Web', 'Trade Winds' => 'Trade Winds', 'Trocchi' => 'Trocchi', 'Trochut' => 'Trochut', 'Trykker' => 'Trykker', 'Tulpen One' => 'Tulpen One', 'Ubuntu' => 'Ubuntu', 'Ubuntu Condensed' => 'Ubuntu Condensed', 'Ubuntu Mono' => 'Ubuntu Mono', 'Ultra' => 'Ultra', 'Uncial Antiqua' => 'Uncial Antiqua', 'Underdog' => 'Underdog', 'Unica One' => 'Unica One', 'UnifrakturCook' => 'UnifrakturCook', 'UnifrakturMaguntia' => 'UnifrakturMaguntia', 'Unkempt' => 'Unkempt', 'Unlock' => 'Unlock', 'Unna' => 'Unna', 'VT323' => 'VT323', 'Vampiro One' => 'Vampiro One', 'Varela' => 'Varela', 'Varela Round' => 'Varela Round', 'Vast Shadow' => 'Vast Shadow', 'Vibur' => 'Vibur', 'Vidaloka' => 'Vidaloka', 'Viga' => 'Viga', 'Voces' => 'Voces', 'Volkhov' => 'Volkhov', 'Vollkorn' => 'Vollkorn', 'Voltaire' => 'Voltaire', 'Waiting for the Sunrise' => 'Waiting for the Sunrise', 'Wallpoet' => 'Wallpoet', 'Walter Turncoat' => 'Walter Turncoat', 'Warnes' => 'Warnes', 'Wellfleet' => 'Wellfleet', 'Wendy One' => 'Wendy One', 'Wire One' => 'Wire One', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Yellowtail' => 'Yellowtail', 'Yeseva One' => 'Yeseva One', 'Yesteryear' => 'Yesteryear', 'Zeyada' => 'Zeyada');
5
+ return array('none' => 'Default Font', 'ABeeZee' => 'ABeeZee', 'Abel' => 'Abel', 'Abril Fatface' => 'Abril Fatface', 'Aclonica' => 'Aclonica', 'Acme' => 'Acme', 'Actor' => 'Actor', 'Adamina' => 'Adamina', 'Advent Pro' => 'Advent Pro', 'Aguafina Script' => 'Aguafina Script', 'Akronim' => 'Akronim', 'Aladin' => 'Aladin', 'Aldrich' => 'Aldrich', 'Alef' => 'Alef', 'Alegreya' => 'Alegreya', 'Alegreya SC' => 'Alegreya SC', 'Alegreya Sans' => 'Alegreya Sans', 'Alegreya Sans SC' => 'Alegreya Sans SC', 'Alex Brush' => 'Alex Brush', 'Alfa Slab One' => 'Alfa Slab One', 'Alice' => 'Alice', 'Alike' => 'Alike', 'Alike Angular' => 'Alike Angular', 'Allan' => 'Allan', 'Allerta' => 'Allerta', 'Allerta Stencil' => 'Allerta Stencil', 'Allura' => 'Allura', 'Almendra' => 'Almendra', 'Almendra Display' => 'Almendra Display', 'Almendra SC' => 'Almendra SC', 'Amarante' => 'Amarante', 'Amaranth' => 'Amaranth', 'Amatic SC' => 'Amatic SC', 'Amethysta' => 'Amethysta', 'Anaheim' => 'Anaheim', 'Andada' => 'Andada', 'Andika' => 'Andika', 'Angkor' => 'Angkor', 'Annie Use Your Telescope' => 'Annie Use Your Telescope', 'Anonymous Pro' => 'Anonymous Pro', 'Antic' => 'Antic', 'Antic Didone' => 'Antic Didone', 'Antic Slab' => 'Antic Slab', 'Anton' => 'Anton', 'Arapey' => 'Arapey', 'Arbutus' => 'Arbutus', 'Arbutus Slab' => 'Arbutus Slab', 'Architects Daughter' => 'Architects Daughter', 'Archivo Black' => 'Archivo Black', 'Archivo Narrow' => 'Archivo Narrow', 'Arimo' => 'Arimo', 'Arizonia' => 'Arizonia', 'Armata' => 'Armata', 'Artifika' => 'Artifika', 'Arvo' => 'Arvo', 'Asap' => 'Asap', 'Asset' => 'Asset', 'Astloch' => 'Astloch', 'Asul' => 'Asul', 'Atomic Age' => 'Atomic Age', 'Aubrey' => 'Aubrey', 'Audiowide' => 'Audiowide', 'Autour One' => 'Autour One', 'Average' => 'Average', 'Average Sans' => 'Average Sans', 'Averia Gruesa Libre' => 'Averia Gruesa Libre', 'Averia Libre' => 'Averia Libre', 'Averia Sans Libre' => 'Averia Sans Libre', 'Averia Serif Libre' => 'Averia Serif Libre', 'Bad Script' => 'Bad Script', 'Balthazar' => 'Balthazar', 'Bangers' => 'Bangers', 'Basic' => 'Basic', 'Battambang' => 'Battambang', 'Baumans' => 'Baumans', 'Bayon' => 'Bayon', 'Belgrano' => 'Belgrano', 'Belleza' => 'Belleza', 'BenchNine' => 'BenchNine', 'Bentham' => 'Bentham', 'Berkshire Swash' => 'Berkshire Swash', 'Bevan' => 'Bevan', 'Bigelow Rules' => 'Bigelow Rules', 'Bigshot One' => 'Bigshot One', 'Bilbo' => 'Bilbo', 'Bilbo Swash Caps' => 'Bilbo Swash Caps', 'Bitter' => 'Bitter', 'Black Ops One' => 'Black Ops One', 'Bokor' => 'Bokor', 'Bonbon' => 'Bonbon', 'Boogaloo' => 'Boogaloo', 'Bowlby One' => 'Bowlby One', 'Bowlby One SC' => 'Bowlby One SC', 'Brawler' => 'Brawler', 'Bree Serif' => 'Bree Serif', 'Bubblegum Sans' => 'Bubblegum Sans', 'Bubbler One' => 'Bubbler One', 'Buda' => 'Buda', 'Buenard' => 'Buenard', 'Butcherman' => 'Butcherman', 'Butterfly Kids' => 'Butterfly Kids', 'Cabin' => 'Cabin', 'Cabin Condensed' => 'Cabin Condensed', 'Cabin Sketch' => 'Cabin Sketch', 'Caesar Dressing' => 'Caesar Dressing', 'Cagliostro' => 'Cagliostro', 'Calligraffitti' => 'Calligraffitti', 'Cambo' => 'Cambo', 'Candal' => 'Candal', 'Cantarell' => 'Cantarell', 'Cantata One' => 'Cantata One', 'Cantora One' => 'Cantora One', 'Capriola' => 'Capriola', 'Cardo' => 'Cardo', 'Carme' => 'Carme', 'Carrois Gothic' => 'Carrois Gothic', 'Carrois Gothic SC' => 'Carrois Gothic SC', 'Carter One' => 'Carter One', 'Caudex' => 'Caudex', 'Cedarville Cursive' => 'Cedarville Cursive', 'Ceviche One' => 'Ceviche One', 'Changa One' => 'Changa One', 'Chango' => 'Chango', 'Chau Philomene One' => 'Chau Philomene One', 'Chela One' => 'Chela One', 'Chelsea Market' => 'Chelsea Market', 'Chenla' => 'Chenla', 'Cherry Cream Soda' => 'Cherry Cream Soda', 'Cherry Swash' => 'Cherry Swash', 'Chewy' => 'Chewy', 'Chicle' => 'Chicle', 'Chivo' => 'Chivo', 'Cinzel' => 'Cinzel', 'Cinzel Decorative' => 'Cinzel Decorative', 'Clicker Script' => 'Clicker Script', 'Coda' => 'Coda', 'Coda Caption' => 'Coda Caption', 'Codystar' => 'Codystar', 'Combo' => 'Combo', 'Comfortaa' => 'Comfortaa', 'Coming Soon' => 'Coming Soon', 'Concert One' => 'Concert One', 'Condiment' => 'Condiment', 'Content' => 'Content', 'Contrail One' => 'Contrail One', 'Convergence' => 'Convergence', 'Cookie' => 'Cookie', 'Copse' => 'Copse', 'Corben' => 'Corben', 'Courgette' => 'Courgette', 'Cousine' => 'Cousine', 'Coustard' => 'Coustard', 'Covered By Your Grace' => 'Covered By Your Grace', 'Crafty Girls' => 'Crafty Girls', 'Creepster' => 'Creepster', 'Crete Round' => 'Crete Round', 'Crimson Text' => 'Crimson Text', 'Croissant One' => 'Croissant One', 'Crushed' => 'Crushed', 'Cuprum' => 'Cuprum', 'Cutive' => 'Cutive', 'Cutive Mono' => 'Cutive Mono', 'Damion' => 'Damion', 'Dancing Script' => 'Dancing Script', 'Dangrek' => 'Dangrek', 'Dawning of a New Day' => 'Dawning of a New Day', 'Days One' => 'Days One', 'Delius' => 'Delius', 'Delius Swash Caps' => 'Delius Swash Caps', 'Delius Unicase' => 'Delius Unicase', 'Della Respira' => 'Della Respira', 'Denk One' => 'Denk One', 'Devonshire' => 'Devonshire', 'Didact Gothic' => 'Didact Gothic', 'Diplomata' => 'Diplomata', 'Diplomata SC' => 'Diplomata SC', 'Domine' => 'Domine', 'Donegal One' => 'Donegal One', 'Doppio One' => 'Doppio One', 'Dorsa' => 'Dorsa', 'Dosis' => 'Dosis', 'Dr Sugiyama' => 'Dr Sugiyama', 'Droid Sans' => 'Droid Sans', 'Droid Sans Mono' => 'Droid Sans Mono', 'Droid Serif' => 'Droid Serif', 'Duru Sans' => 'Duru Sans', 'Dynalight' => 'Dynalight', 'EB Garamond' => 'EB Garamond', 'Eagle Lake' => 'Eagle Lake', 'Eater' => 'Eater', 'Economica' => 'Economica', 'Ek Mukta' => 'Ek Mukta', 'Electrolize' => 'Electrolize', 'Elsie' => 'Elsie', 'Elsie Swash Caps' => 'Elsie Swash Caps', 'Emblema One' => 'Emblema One', 'Emilys Candy' => 'Emilys Candy', 'Engagement' => 'Engagement', 'Englebert' => 'Englebert', 'Enriqueta' => 'Enriqueta', 'Erica One' => 'Erica One', 'Esteban' => 'Esteban', 'Euphoria Script' => 'Euphoria Script', 'Ewert' => 'Ewert', 'Exo' => 'Exo', 'Exo 2' => 'Exo 2', 'Expletus Sans' => 'Expletus Sans', 'Fanwood Text' => 'Fanwood Text', 'Fascinate' => 'Fascinate', 'Fascinate Inline' => 'Fascinate Inline', 'Faster One' => 'Faster One', 'Fasthand' => 'Fasthand', 'Fauna One' => 'Fauna One', 'Federant' => 'Federant', 'Federo' => 'Federo', 'Felipa' => 'Felipa', 'Fenix' => 'Fenix', 'Finger Paint' => 'Finger Paint', 'Fira Mono' => 'Fira Mono', 'Fira Sans' => 'Fira Sans', 'Fjalla One' => 'Fjalla One', 'Fjord One' => 'Fjord One', 'Flamenco' => 'Flamenco', 'Flavors' => 'Flavors', 'Fondamento' => 'Fondamento', 'Fontdiner Swanky' => 'Fontdiner Swanky', 'Forum' => 'Forum', 'Francois One' => 'Francois One', 'Freckle Face' => 'Freckle Face', 'Fredericka the Great' => 'Fredericka the Great', 'Fredoka One' => 'Fredoka One', 'Freehand' => 'Freehand', 'Fresca' => 'Fresca', 'Frijole' => 'Frijole', 'Fruktur' => 'Fruktur', 'Fugaz One' => 'Fugaz One', 'GFS Didot' => 'GFS Didot', 'GFS Neohellenic' => 'GFS Neohellenic', 'Gabriela' => 'Gabriela', 'Gafata' => 'Gafata', 'Galdeano' => 'Galdeano', 'Galindo' => 'Galindo', 'Gentium Basic' => 'Gentium Basic', 'Gentium Book Basic' => 'Gentium Book Basic', 'Geo' => 'Geo', 'Geostar' => 'Geostar', 'Geostar Fill' => 'Geostar Fill', 'Germania One' => 'Germania One', 'Gilda Display' => 'Gilda Display', 'Give You Glory' => 'Give You Glory', 'Glass Antiqua' => 'Glass Antiqua', 'Glegoo' => 'Glegoo', 'Gloria Hallelujah' => 'Gloria Hallelujah', 'Goblin One' => 'Goblin One', 'Gochi Hand' => 'Gochi Hand', 'Gorditas' => 'Gorditas', 'Goudy Bookletter 1911' => 'Goudy Bookletter 1911', 'Graduate' => 'Graduate', 'Grand Hotel' => 'Grand Hotel', 'Gravitas One' => 'Gravitas One', 'Great Vibes' => 'Great Vibes', 'Griffy' => 'Griffy', 'Gruppo' => 'Gruppo', 'Gudea' => 'Gudea', 'Habibi' => 'Habibi', 'Halant' => 'Halant', 'Hammersmith One' => 'Hammersmith One', 'Hanalei' => 'Hanalei', 'Hanalei Fill' => 'Hanalei Fill', 'Handlee' => 'Handlee', 'Hanuman' => 'Hanuman', 'Happy Monkey' => 'Happy Monkey', 'Headland One' => 'Headland One', 'Henny Penny' => 'Henny Penny', 'Herr Von Muellerhoff' => 'Herr Von Muellerhoff', 'Hind' => 'Hind', 'Holtwood One SC' => 'Holtwood One SC', 'Homemade Apple' => 'Homemade Apple', 'Homenaje' => 'Homenaje', 'IM Fell DW Pica' => 'IM Fell DW Pica', 'IM Fell DW Pica SC' => 'IM Fell DW Pica SC', 'IM Fell Double Pica' => 'IM Fell Double Pica', 'IM Fell Double Pica SC' => 'IM Fell Double Pica SC', 'IM Fell English' => 'IM Fell English', 'IM Fell English SC' => 'IM Fell English SC', 'IM Fell French Canon' => 'IM Fell French Canon', 'IM Fell French Canon SC' => 'IM Fell French Canon SC', 'IM Fell Great Primer' => 'IM Fell Great Primer', 'IM Fell Great Primer SC' => 'IM Fell Great Primer SC', 'Iceberg' => 'Iceberg', 'Iceland' => 'Iceland', 'Imprima' => 'Imprima', 'Inconsolata' => 'Inconsolata', 'Inder' => 'Inder', 'Indie Flower' => 'Indie Flower', 'Inika' => 'Inika', 'Irish Grover' => 'Irish Grover', 'Istok Web' => 'Istok Web', 'Italiana' => 'Italiana', 'Italianno' => 'Italianno', 'Jacques Francois' => 'Jacques Francois', 'Jacques Francois Shadow' => 'Jacques Francois Shadow', 'Jim Nightshade' => 'Jim Nightshade', 'Jockey One' => 'Jockey One', 'Jolly Lodger' => 'Jolly Lodger', 'Josefin Sans' => 'Josefin Sans', 'Josefin Slab' => 'Josefin Slab', 'Joti One' => 'Joti One', 'Judson' => 'Judson', 'Julee' => 'Julee', 'Julius Sans One' => 'Julius Sans One', 'Junge' => 'Junge', 'Jura' => 'Jura', 'Just Another Hand' => 'Just Another Hand', 'Just Me Again Down Here' => 'Just Me Again Down Here', 'Kalam' => 'Kalam', 'Kameron' => 'Kameron', 'Kantumruy' => 'Kantumruy', 'Karla' => 'Karla', 'Karma' => 'Karma', 'Kaushan Script' => 'Kaushan Script', 'Kavoon' => 'Kavoon', 'Kdam Thmor' => 'Kdam Thmor', 'Keania One' => 'Keania One', 'Kelly Slab' => 'Kelly Slab', 'Kenia' => 'Kenia', 'Khand' => 'Khand', 'Khmer' => 'Khmer', 'Kite One' => 'Kite One', 'Knewave' => 'Knewave', 'Kotta One' => 'Kotta One', 'Koulen' => 'Koulen', 'Kranky' => 'Kranky', 'Kreon' => 'Kreon', 'Kristi' => 'Kristi', 'Krona One' => 'Krona One', 'La Belle Aurore' => 'La Belle Aurore', 'Laila' => 'Laila', 'Lancelot' => 'Lancelot', 'Lato' => 'Lato', 'League Script' => 'League Script', 'Leckerli One' => 'Leckerli One', 'Ledger' => 'Ledger', 'Lekton' => 'Lekton', 'Lemon' => 'Lemon', 'Libre Baskerville' => 'Libre Baskerville', 'Life Savers' => 'Life Savers', 'Lilita One' => 'Lilita One', 'Lily Script One' => 'Lily Script One', 'Limelight' => 'Limelight', 'Linden Hill' => 'Linden Hill', 'Lobster' => 'Lobster', 'Lobster Two' => 'Lobster Two', 'Londrina Outline' => 'Londrina Outline', 'Londrina Shadow' => 'Londrina Shadow', 'Londrina Sketch' => 'Londrina Sketch', 'Londrina Solid' => 'Londrina Solid', 'Lora' => 'Lora', 'Love Ya Like A Sister' => 'Love Ya Like A Sister', 'Loved by the King' => 'Loved by the King', 'Lovers Quarrel' => 'Lovers Quarrel', 'Luckiest Guy' => 'Luckiest Guy', 'Lusitana' => 'Lusitana', 'Lustria' => 'Lustria', 'Macondo' => 'Macondo', 'Macondo Swash Caps' => 'Macondo Swash Caps', 'Magra' => 'Magra', 'Maiden Orange' => 'Maiden Orange', 'Mako' => 'Mako', 'Marcellus' => 'Marcellus', 'Marcellus SC' => 'Marcellus SC', 'Marck Script' => 'Marck Script', 'Margarine' => 'Margarine', 'Marko One' => 'Marko One', 'Marmelad' => 'Marmelad', 'Marvel' => 'Marvel', 'Mate' => 'Mate', 'Mate SC' => 'Mate SC', 'Maven Pro' => 'Maven Pro', 'McLaren' => 'McLaren', 'Meddon' => 'Meddon', 'MedievalSharp' => 'MedievalSharp', 'Medula One' => 'Medula One', 'Megrim' => 'Megrim', 'Meie Script' => 'Meie Script', 'Merienda' => 'Merienda', 'Merienda One' => 'Merienda One', 'Merriweather' => 'Merriweather', 'Merriweather Sans' => 'Merriweather Sans', 'Metal' => 'Metal', 'Metal Mania' => 'Metal Mania', 'Metamorphous' => 'Metamorphous', 'Metrophobic' => 'Metrophobic', 'Michroma' => 'Michroma', 'Milonga' => 'Milonga', 'Miltonian' => 'Miltonian', 'Miltonian Tattoo' => 'Miltonian Tattoo', 'Miniver' => 'Miniver', 'Miss Fajardose' => 'Miss Fajardose', 'Modern Antiqua' => 'Modern Antiqua', 'Molengo' => 'Molengo', 'Molle' => 'Molle', 'Monda' => 'Monda', 'Monofett' => 'Monofett', 'Monoton' => 'Monoton', 'Monsieur La Doulaise' => 'Monsieur La Doulaise', 'Montaga' => 'Montaga', 'Montez' => 'Montez', 'Montserrat' => 'Montserrat', 'Montserrat Alternates' => 'Montserrat Alternates', 'Montserrat Subrayada' => 'Montserrat Subrayada', 'Moul' => 'Moul', 'Moulpali' => 'Moulpali', 'Mountains of Christmas' => 'Mountains of Christmas', 'Mouse Memoirs' => 'Mouse Memoirs', 'Mr Bedfort' => 'Mr Bedfort', 'Mr Dafoe' => 'Mr Dafoe', 'Mr De Haviland' => 'Mr De Haviland', 'Mrs Saint Delafield' => 'Mrs Saint Delafield', 'Mrs Sheppards' => 'Mrs Sheppards', 'Muli' => 'Muli', 'Mystery Quest' => 'Mystery Quest', 'Neucha' => 'Neucha', 'Neuton' => 'Neuton', 'New Rocker' => 'New Rocker', 'News Cycle' => 'News Cycle', 'Niconne' => 'Niconne', 'Nixie One' => 'Nixie One', 'Nobile' => 'Nobile', 'Nokora' => 'Nokora', 'Norican' => 'Norican', 'Nosifer' => 'Nosifer', 'Nothing You Could Do' => 'Nothing You Could Do', 'Noticia Text' => 'Noticia Text', 'Noto Sans' => 'Noto Sans', 'Noto Serif' => 'Noto Serif', 'Nova Cut' => 'Nova Cut', 'Nova Flat' => 'Nova Flat', 'Nova Mono' => 'Nova Mono', 'Nova Oval' => 'Nova Oval', 'Nova Round' => 'Nova Round', 'Nova Script' => 'Nova Script', 'Nova Slim' => 'Nova Slim', 'Nova Square' => 'Nova Square', 'Numans' => 'Numans', 'Nunito' => 'Nunito', 'Odor Mean Chey' => 'Odor Mean Chey', 'Offside' => 'Offside', 'Old Standard TT' => 'Old Standard TT', 'Oldenburg' => 'Oldenburg', 'Oleo Script' => 'Oleo Script', 'Oleo Script Swash Caps' => 'Oleo Script Swash Caps', 'Open Sans' => 'Open Sans', 'Open Sans Condensed' => 'Open Sans Condensed', 'Oranienbaum' => 'Oranienbaum', 'Orbitron' => 'Orbitron', 'Oregano' => 'Oregano', 'Orienta' => 'Orienta', 'Original Surfer' => 'Original Surfer', 'Oswald' => 'Oswald', 'Over the Rainbow' => 'Over the Rainbow', 'Overlock' => 'Overlock', 'Overlock SC' => 'Overlock SC', 'Ovo' => 'Ovo', 'Oxygen' => 'Oxygen', 'Oxygen Mono' => 'Oxygen Mono', 'PT Mono' => 'PT Mono', 'PT Sans' => 'PT Sans', 'PT Sans Caption' => 'PT Sans Caption', 'PT Sans Narrow' => 'PT Sans Narrow', 'PT Serif' => 'PT Serif', 'PT Serif Caption' => 'PT Serif Caption', 'Pacifico' => 'Pacifico', 'Paprika' => 'Paprika', 'Parisienne' => 'Parisienne', 'Passero One' => 'Passero One', 'Passion One' => 'Passion One', 'Pathway Gothic One' => 'Pathway Gothic One', 'Patrick Hand' => 'Patrick Hand', 'Patrick Hand SC' => 'Patrick Hand SC', 'Patua One' => 'Patua One', 'Paytone One' => 'Paytone One', 'Peralta' => 'Peralta', 'Permanent Marker' => 'Permanent Marker', 'Petit Formal Script' => 'Petit Formal Script', 'Petrona' => 'Petrona', 'Philosopher' => 'Philosopher', 'Piedra' => 'Piedra', 'Pinyon Script' => 'Pinyon Script', 'Pirata One' => 'Pirata One', 'Plaster' => 'Plaster', 'Play' => 'Play', 'Playball' => 'Playball', 'Playfair Display' => 'Playfair Display', 'Playfair Display SC' => 'Playfair Display SC', 'Podkova' => 'Podkova', 'Poiret One' => 'Poiret One', 'Poller One' => 'Poller One', 'Poly' => 'Poly', 'Pompiere' => 'Pompiere', 'Pontano Sans' => 'Pontano Sans', 'Port Lligat Sans' => 'Port Lligat Sans', 'Port Lligat Slab' => 'Port Lligat Slab', 'Prata' => 'Prata', 'Preahvihear' => 'Preahvihear', 'Press Start 2P' => 'Press Start 2P', 'Princess Sofia' => 'Princess Sofia', 'Prociono' => 'Prociono', 'Prosto One' => 'Prosto One', 'Puritan' => 'Puritan', 'Purple Purse' => 'Purple Purse', 'Quando' => 'Quando', 'Quantico' => 'Quantico', 'Quattrocento' => 'Quattrocento', 'Quattrocento Sans' => 'Quattrocento Sans', 'Questrial' => 'Questrial', 'Quicksand' => 'Quicksand', 'Quintessential' => 'Quintessential', 'Qwigley' => 'Qwigley', 'Racing Sans One' => 'Racing Sans One', 'Radley' => 'Radley', 'Rajdhani' => 'Rajdhani', 'Raleway' => 'Raleway', 'Raleway Dots' => 'Raleway Dots', 'Rambla' => 'Rambla', 'Rammetto One' => 'Rammetto One', 'Ranchers' => 'Ranchers', 'Rancho' => 'Rancho', 'Rationale' => 'Rationale', 'Redressed' => 'Redressed', 'Reenie Beanie' => 'Reenie Beanie', 'Revalia' => 'Revalia', 'Ribeye' => 'Ribeye', 'Ribeye Marrow' => 'Ribeye Marrow', 'Righteous' => 'Righteous', 'Risque' => 'Risque', 'Roboto' => 'Roboto', 'Roboto Condensed' => 'Roboto Condensed', 'Roboto Slab' => 'Roboto Slab', 'Rochester' => 'Rochester', 'Rock Salt' => 'Rock Salt', 'Rokkitt' => 'Rokkitt', 'Romanesco' => 'Romanesco', 'Ropa Sans' => 'Ropa Sans', 'Rosario' => 'Rosario', 'Rosarivo' => 'Rosarivo', 'Rouge Script' => 'Rouge Script', 'Rozha One' => 'Rozha One', 'Rubik Mono One' => 'Rubik Mono One', 'Rubik One' => 'Rubik One', 'Ruda' => 'Ruda', 'Rufina' => 'Rufina', 'Ruge Boogie' => 'Ruge Boogie', 'Ruluko' => 'Ruluko', 'Rum Raisin' => 'Rum Raisin', 'Ruslan Display' => 'Ruslan Display', 'Russo One' => 'Russo One', 'Ruthie' => 'Ruthie', 'Rye' => 'Rye', 'Sacramento' => 'Sacramento', 'Sail' => 'Sail', 'Salsa' => 'Salsa', 'Sanchez' => 'Sanchez', 'Sancreek' => 'Sancreek', 'Sansita One' => 'Sansita One', 'Sarina' => 'Sarina', 'Sarpanch' => 'Sarpanch', 'Satisfy' => 'Satisfy', 'Scada' => 'Scada', 'Schoolbell' => 'Schoolbell', 'Seaweed Script' => 'Seaweed Script', 'Sevillana' => 'Sevillana', 'Seymour One' => 'Seymour One', 'Shadows Into Light' => 'Shadows Into Light', 'Shadows Into Light Two' => 'Shadows Into Light Two', 'Shanti' => 'Shanti', 'Share' => 'Share', 'Share Tech' => 'Share Tech', 'Share Tech Mono' => 'Share Tech Mono', 'Shojumaru' => 'Shojumaru', 'Short Stack' => 'Short Stack', 'Siemreap' => 'Siemreap', 'Sigmar One' => 'Sigmar One', 'Signika' => 'Signika', 'Signika Negative' => 'Signika Negative', 'Simonetta' => 'Simonetta', 'Sintony' => 'Sintony', 'Sirin Stencil' => 'Sirin Stencil', 'Six Caps' => 'Six Caps', 'Skranji' => 'Skranji', 'Slabo 13px' => 'Slabo 13px', 'Slabo 27px' => 'Slabo 27px', 'Slackey' => 'Slackey', 'Smokum' => 'Smokum', 'Smythe' => 'Smythe', 'Sniglet' => 'Sniglet', 'Snippet' => 'Snippet', 'Snowburst One' => 'Snowburst One', 'Sofadi One' => 'Sofadi One', 'Sofia' => 'Sofia', 'Sonsie One' => 'Sonsie One', 'Sorts Mill Goudy' => 'Sorts Mill Goudy', 'Source Code Pro' => 'Source Code Pro', 'Source Sans Pro' => 'Source Sans Pro', 'Source Serif Pro' => 'Source Serif Pro', 'Special Elite' => 'Special Elite', 'Spicy Rice' => 'Spicy Rice', 'Spinnaker' => 'Spinnaker', 'Spirax' => 'Spirax', 'Squada One' => 'Squada One', 'Stalemate' => 'Stalemate', 'Stalinist One' => 'Stalinist One', 'Stardos Stencil' => 'Stardos Stencil', 'Stint Ultra Condensed' => 'Stint Ultra Condensed', 'Stint Ultra Expanded' => 'Stint Ultra Expanded', 'Stoke' => 'Stoke', 'Strait' => 'Strait', 'Sue Ellen Francisco' => 'Sue Ellen Francisco', 'Sunshiney' => 'Sunshiney', 'Supermercado One' => 'Supermercado One', 'Suwannaphum' => 'Suwannaphum', 'Swanky and Moo Moo' => 'Swanky and Moo Moo', 'Syncopate' => 'Syncopate', 'Tangerine' => 'Tangerine', 'Taprom' => 'Taprom', 'Tauri' => 'Tauri', 'Teko' => 'Teko', 'Telex' => 'Telex', 'Tenor Sans' => 'Tenor Sans', 'Text Me One' => 'Text Me One', 'The Girl Next Door' => 'The Girl Next Door', 'Tienne' => 'Tienne', 'Tinos' => 'Tinos', 'Titan One' => 'Titan One', 'Titillium Web' => 'Titillium Web', 'Trade Winds' => 'Trade Winds', 'Trocchi' => 'Trocchi', 'Trochut' => 'Trochut', 'Trykker' => 'Trykker', 'Tulpen One' => 'Tulpen One', 'Ubuntu' => 'Ubuntu', 'Ubuntu Condensed' => 'Ubuntu Condensed', 'Ubuntu Mono' => 'Ubuntu Mono', 'Ultra' => 'Ultra', 'Uncial Antiqua' => 'Uncial Antiqua', 'Underdog' => 'Underdog', 'Unica One' => 'Unica One', 'UnifrakturCook' => 'UnifrakturCook', 'UnifrakturMaguntia' => 'UnifrakturMaguntia', 'Unkempt' => 'Unkempt', 'Unlock' => 'Unlock', 'Unna' => 'Unna', 'VT323' => 'VT323', 'Vampiro One' => 'Vampiro One', 'Varela' => 'Varela', 'Varela Round' => 'Varela Round', 'Vast Shadow' => 'Vast Shadow', 'Vesper Libre' => 'Vesper Libre', 'Vibur' => 'Vibur', 'Vidaloka' => 'Vidaloka', 'Viga' => 'Viga', 'Voces' => 'Voces', 'Volkhov' => 'Volkhov', 'Vollkorn' => 'Vollkorn', 'Voltaire' => 'Voltaire', 'Waiting for the Sunrise' => 'Waiting for the Sunrise', 'Wallpoet' => 'Wallpoet', 'Walter Turncoat' => 'Walter Turncoat', 'Warnes' => 'Warnes', 'Wellfleet' => 'Wellfleet', 'Wendy One' => 'Wendy One', 'Wire One' => 'Wire One', 'Yanone Kaffeesatz' => 'Yanone Kaffeesatz', 'Yellowtail' => 'Yellowtail', 'Yeseva One' => 'Yeseva One', 'Yesteryear' => 'Yesteryear', 'Zeyada' => 'Zeyada');
6
+ }
7
+
8
  ?>
assets/{tinymce/images → images}/data-picker.png RENAMED
File without changes
assets/{tinymce/images → images}/data-picker@2.png RENAMED
File without changes
assets/images/icon-rec.png ADDED
Binary file
assets/images/modern.png DELETED
Binary file
assets/images/modern@2.png DELETED
Binary file
assets/js/admin.js CHANGED
@@ -62,8 +62,6 @@ jQuery(document).ready(function ($) {
62
  window[fname].init();
63
  }
64
 
65
-
66
-
67
  });
68
 
69
 
@@ -72,6 +70,8 @@ function sel_style(s) {
72
  var lnk;
73
  if (s == 'classic')
74
  lnk = 'options-general.php?page=uji-countdown&tab=tab_ujic_new&style=classic';
 
 
75
  if (s == 'custom')
76
  lnk = 'options-general.php?page=uji-countdown&tab=tab_ujic_new&style=custom';
77
  window.location.href = "" + lnk + "";
@@ -93,7 +93,7 @@ function ujic_admin_home() {
93
 
94
  (function ($) {
95
  classicSelect = {
96
- /// Init
97
  init: function () {
98
  var style = $('#ujic-style');
99
  if (style.length) {
@@ -131,7 +131,6 @@ function ujic_admin_home() {
131
  $('#ujiCountdown').find('.' + format[i]).hide();
132
  }
133
  }
134
-
135
  //live change
136
  $('.iCheck-helper').click(function () {
137
  var id = $(this).parent().find(":checkbox").attr("id");
@@ -140,9 +139,7 @@ function ujic_admin_home() {
140
  } else {
141
  $('#ujiCountdown').find('.' + id).hide();
142
  }
143
-
144
  (id === 'ujic_subscrFrmIsEnabled') ? classicSelect.handleSubscription() : null;
145
-
146
  });
147
  },
148
  subscrFormWidth : function(newWidth){
@@ -225,9 +222,7 @@ function ujic_admin_home() {
225
  new_colors: function (id, hex) {
226
  var col_up = $('#ujic_col_up').val();
227
  var col_dw = $('#ujic_col_dw').val();
228
-
229
-
230
- //console.log(id);
231
  switch (id)
232
  {
233
  case 'ujic_col_txt':
@@ -266,7 +261,7 @@ function ujic_admin_home() {
266
  $('#ujiCountdown').find('input[type=submit]').css("background", "-ms-linear-gradient(top, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* IE10+ */
267
  $('#ujiCountdown').find('input[type=submit]').css("background", "linear-gradient(to bottom, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* W3C */
268
  $('#ujiCountdown').find('input[type=submit]').css("filter", "progid:DXImageTransform.Microsoft.gradient( startColorstr='" + hex + "', endColorstr='" + this.shadeColor(hex, 20) + "',GradientType=0 )"); /* IE6-9 */
269
- break;
270
  }
271
  },
272
  /// Text Labels
@@ -309,5 +304,285 @@ function ujic_admin_home() {
309
  });
310
  }
311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  };
313
  })(jQuery);
62
  window[fname].init();
63
  }
64
 
 
 
65
  });
66
 
67
 
70
  var lnk;
71
  if (s == 'classic')
72
  lnk = 'options-general.php?page=uji-countdown&tab=tab_ujic_new&style=classic';
73
+ if (s == 'modern')
74
+ lnk = 'options-general.php?page=uji-countdown&tab=tab_ujic_new&style=modern';
75
  if (s == 'custom')
76
  lnk = 'options-general.php?page=uji-countdown&tab=tab_ujic_new&style=custom';
77
  window.location.href = "" + lnk + "";
93
 
94
  (function ($) {
95
  classicSelect = {
96
+ /// Init
97
  init: function () {
98
  var style = $('#ujic-style');
99
  if (style.length) {
131
  $('#ujiCountdown').find('.' + format[i]).hide();
132
  }
133
  }
 
134
  //live change
135
  $('.iCheck-helper').click(function () {
136
  var id = $(this).parent().find(":checkbox").attr("id");
139
  } else {
140
  $('#ujiCountdown').find('.' + id).hide();
141
  }
 
142
  (id === 'ujic_subscrFrmIsEnabled') ? classicSelect.handleSubscription() : null;
 
143
  });
144
  },
145
  subscrFormWidth : function(newWidth){
222
  new_colors: function (id, hex) {
223
  var col_up = $('#ujic_col_up').val();
224
  var col_dw = $('#ujic_col_dw').val();
225
+
 
 
226
  switch (id)
227
  {
228
  case 'ujic_col_txt':
261
  $('#ujiCountdown').find('input[type=submit]').css("background", "-ms-linear-gradient(top, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* IE10+ */
262
  $('#ujiCountdown').find('input[type=submit]').css("background", "linear-gradient(to bottom, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* W3C */
263
  $('#ujiCountdown').find('input[type=submit]').css("filter", "progid:DXImageTransform.Microsoft.gradient( startColorstr='" + hex + "', endColorstr='" + this.shadeColor(hex, 20) + "',GradientType=0 )"); /* IE6-9 */
264
+ break;
265
  }
266
  },
267
  /// Text Labels
304
  });
305
  }
306
 
307
+ };
308
+ })(jQuery);
309
+
310
+ /**
311
+ *
312
+ * Preview Modern Panel Admin
313
+ *
314
+ *
315
+ */
316
+
317
+ function init_circle(cids) {
318
+ var myCircles = [];
319
+
320
+ for (var i = 0; i <= cids.ids.length - 1; i++) {
321
+
322
+ myCircles.push(Circles.create({
323
+ parent: 'ujiCountdown2',
324
+ id: cids.ids[i],
325
+ value: parseInt(cids.time[i]),
326
+ radius: parseInt(cids.size_val),
327
+ width: cids.thick_val,
328
+ maxValue: parseInt(cids.max[i]),
329
+ colors: [cids.col_dw, cids.col_up],
330
+ duration: 0
331
+ }));
332
+
333
+ jQuery('#ujiCountdown2').children("#"+cids.ids[i]).children(".circles-wrp").children('span').text(cids.label[i]);
334
+
335
+ }
336
+
337
+ jQuery('#ujiCountdown2').find(".circles-wrp").children('span').css('color', cids.col_lab);
338
+ jQuery('#ujiCountdown2').find(".circles-text").css('color', cids.col_txt);
339
+
340
+ }
341
+
342
+ function change_modern(size, col_txt, col1, col2, thick, col_lab, lab_sz) {
343
+ if (size == undefined || size == null)
344
+ size = jQuery('#ujic_size').val();
345
+ if (col_txt == undefined || col_txt == null)
346
+ col_txt = jQuery('#ujic_col_txt').val();
347
+ if (col1 == undefined || col1 == null)
348
+ col1 = jQuery('#ujic_col_dw').val();
349
+ if (col2 == undefined || col2 == null)
350
+ col2 = jQuery('#ujic_col_up').val();
351
+ if (thick == undefined || thick == null)
352
+ thick = jQuery('#ujic_thick').val();
353
+ if (col_lab == undefined || col_lab == null)
354
+ col_lab = jQuery('#ujic_col_lab').val();
355
+ if (lab_sz == undefined || lab_sz == null)
356
+ lab_sz = jQuery('#ujic_col_lab').val();
357
+
358
+ //alert('dw'+ size + 'up'+ col2);
359
+ jQuery(".ujicircle").remove();
360
+ var format = [['ujic_y', 'Years', '1', '1'], ['ujic_o', 'Months', '9', '12'], ['ujic_w', 'Weeks', '2', '5'], ['ujic_d', 'Days', '12', '31'], ['ujic_h', 'Hours', '33', '23'], ['ujic_m', 'Minutes', '35', '59'], ['ujic_s', 'Seconds', '09', '59']];
361
+ var cids = {
362
+ ids: [],
363
+ label: [],
364
+ time: [],
365
+ max: [],
366
+ col_txt: col_txt,
367
+ col_dw: col1,
368
+ col_up: col2,
369
+ thick: thick,
370
+ col_lab: col_lab,
371
+ thick_val: thick,
372
+ size_val: size
373
+ };
374
+
375
+ for (var i = 0; i < format.length; i++) {
376
+ if (jQuery('#' + format[i][0]).is(":checked")) {
377
+ //jQuery("#ujiCountdown2").append('<div class="uji_modhold"><input class="'+format[i][0]+' ujic_circle" data-readOnly=true data-width="'+ parseInt(size) +'" data-height="'+ parseInt(size) +'" data-fgColor="'+ col1 +'" data-bgColor="'+ col2 +'" data-thickness=".'+ thick +'" value="'+format[i][2]+'"><span class="countdown_txt">'+format[i][1]+'</span></div>');
378
+ jQuery("#ujiCountdown2").append('<div class="ujicircle" id="u_'+format[i][0]+'"></div>');
379
+ cids.ids.push('u_'+format[i][0]);
380
+ cids.label.push(format[i][1]);
381
+ cids.time.push(format[i][2]);
382
+ cids.max.push(format[i][3]);
383
+ }
384
+ }
385
+ //reload
386
+ init_circle(cids);
387
+
388
+ }
389
+
390
+ (function ($) {
391
+ modernSelect = {
392
+ /// Init
393
+ init: function () {
394
+ this.the_circle();
395
+ this.the_colors();
396
+ this.the_fonts();
397
+ this.the_format();
398
+ this.the_labels();
399
+ this.the_lab_sz();
400
+ this.handleSubscription();
401
+ },
402
+ the_circle: function () {
403
+ change_modern(null);
404
+ },
405
+ /// Colors
406
+ the_colors: function () {
407
+ var col_txt = $('#ujic_col_txt').val();
408
+ var col_lab = $('#ujic_col_lab').val();
409
+ var col_sub = $('#ujic_subscrFrmSubmitColor').val();
410
+
411
+ $('.ujic_circle').css('color', col_txt);
412
+ $('.uji_modhold span').css('color', col_lab);
413
+
414
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-moz-linear-gradient(top, " + col_sub + " 0%, " + this.shadeColor(col_sub, 20) + " 100%)"); /* FF3.6+ */
415
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-webkit-gradient(linear, left top, left bottom, color-stop(0%," + col_sub + "), color-stop(100%," + this.shadeColor(col_sub, 20) + "))"); /* Chrome,Safari4+ */
416
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-webkit-linear-gradient(top, " + col_sub + " 50%," + this.shadeColor(col_sub, 20) + " 100%)"); /* Chrome10+,Safari5.1+ */
417
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-o-linear-gradient(top, " + col_sub + " 0%," + this.shadeColor(col_sub, 20) + " 100%)"); /* Opera 11.10+ */
418
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-ms-linear-gradient(top, " + col_sub + " 0%," + this.shadeColor(col_sub, 20) + " 100%)"); /* IE10+ */
419
+ $('#ujiCountdown').find('input[type=submit]').css("background", "linear-gradient(to bottom, " + col_sub + " 0%," + this.shadeColor(col_sub, 20) + " 100%)"); /* W3C */
420
+ $('#ujiCountdown').find('input[type=submit]').css("filter", "progid:DXImageTransform.Microsoft.gradient( startColorstr='" + col_sub + "', endColorstr='" + this.shadeColor(col_sub, 20) + "',GradientType=0 )"); /* IE6-9 */
421
+
422
+ },
423
+ /// Colors
424
+ new_colors: function (id, hex) {
425
+ switch (id)
426
+ {
427
+ case 'ujic_col_txt':
428
+ $('.circles-text').css('color', hex);
429
+ break;
430
+ case 'ujic_col_lab':
431
+ $('.countdown_txt').css('color', hex);
432
+ break;
433
+ case 'ujic_col_up':
434
+ change_modern(null, null, hex, $('#ujic_col_dw').val());
435
+ break;
436
+ case 'ujic_col_dw':
437
+ change_modern(null, null, $('#ujic_col_up').val(), hex);
438
+ break;
439
+ case 'ujic_subscrFrmSubmitColor':
440
+ //console.log(this.shadeColor(hex, 70));
441
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-moz-linear-gradient(top, " + hex + " 0%, " + this.shadeColor(hex, 20) + " 100%)"); /* FF3.6+ */
442
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-webkit-gradient(linear, left top, left bottom, color-stop(0%," + hex + "), color-stop(100%," + this.shadeColor(hex, 20) + "))"); /* Chrome,Safari4+ */
443
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-webkit-linear-gradient(top, " + hex + " 50%," + this.shadeColor(hex, 20) + " 100%)"); /* Chrome10+,Safari5.1+ */
444
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-o-linear-gradient(top, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* Opera 11.10+ */
445
+ $('#ujiCountdown').find('input[type=submit]').css("background", "-ms-linear-gradient(top, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* IE10+ */
446
+ $('#ujiCountdown').find('input[type=submit]').css("background", "linear-gradient(to bottom, " + hex + " 0%," + this.shadeColor(hex, 20) + " 100%)"); /* W3C */
447
+ $('#ujiCountdown').find('input[type=submit]').css("filter", "progid:DXImageTransform.Microsoft.gradient( startColorstr='" + hex + "', endColorstr='" + this.shadeColor(hex, 20) + "',GradientType=0 )"); /* IE6-9 */
448
+ break;
449
+
450
+ }
451
+ modernSelect.the_fonts();
452
+ },
453
+ /// Size
454
+ the_size: function (val) {
455
+ var size = $('#ujic_size');
456
+ if (size.length) {
457
+ var newsize = (val && val != 'undefined' && val.length) ? val : size.val();
458
+ }
459
+
460
+ change_modern(newsize);
461
+ modernSelect.the_fonts();
462
+ },
463
+
464
+ /// Size
465
+ the_thick: function (val) {
466
+ var size = $('#ujic_thick');
467
+ // alert('ya'+ ( parseInt(val).length ));
468
+ if (size.length && val && val != 'undefined') {
469
+
470
+ change_modern(null, null, null, null, val);
471
+ modernSelect.the_fonts();
472
+ }
473
+
474
+ },
475
+ /// Label Size
476
+ the_lab_sz: function (val) {
477
+ var size = $('#ujic_lab_sz');
478
+ if (size.length) {
479
+ $('.countdown_txt').css('font-size', ((val && val != 'undefined' && val.length) ? val : size.val()) + 'px');
480
+ }
481
+ },
482
+ /// Size
483
+ the_lab_size: function (val) {
484
+ var lsize = $('#ujic_lab_sz');
485
+
486
+ if (lsize.length) {
487
+ var labsize = (val && val != 'undefined' && val.length) ? val : size.val();
488
+ }
489
+ change_modern(newsize, labsize);
490
+
491
+ },
492
+ /// Format
493
+ the_format: function ( ) {
494
+ //live change
495
+ $('.iCheck-helper').click(function () {
496
+ change_modern();
497
+ modernSelect.the_fonts();
498
+ });
499
+ },
500
+ subscrFormWidth : function(newWidth){
501
+ $('#ujiCountdown form p').width(newWidth + '%');
502
+ },
503
+ handleSubscription : function(){
504
+ var formElements = {
505
+
506
+ subscrFrmElm : $('#ujiCountdown form'),
507
+ subscrFrmWidth : $('#ujic_subscrFrmWidth').parent(),
508
+ subscrFrmAboveTxt : $('#ujic_subscrFrmAboveText').parent(),
509
+ subscrFrmInputTxt : $('#ujic_subscrFrmInputText').parent(),
510
+ subscrFrmSubmitTxt : $('#ujic_subscrFrmSubmitText').parent(),
511
+ subscrFrmThanksMessage : $('#ujic_subscrFrmThanksMessage').parent(),
512
+ subscrFrmErrorMessage : $('#ujic_subscrFrmErrorMessage').parent(),
513
+ subscrFrmSubmitColor : $('#ujic_subscrFrmSubmitColor').closest( ".ujic-color" )
514
+
515
+ };
516
+
517
+ var isFormEnabled = $('#ujic_subscrFrmIsEnabled').is(':checked');
518
+ this.toggleSubscriptionElements(formElements, isFormEnabled);
519
+
520
+ formElements.subscrFrmAboveTxt.children('input').keyup(function(){
521
+ formElements.subscrFrmElm.children('span').text($(this).val());
522
+ }).keydown(function(evt){13 == evt.which ? evt.preventDefault() : '';});
523
+
524
+ formElements.subscrFrmInputTxt.children('input').keyup(function(){
525
+ formElements.subscrFrmElm.find('input:text').attr('placeholder', $(this).val());
526
+ }).keydown(function(evt){13 == evt.which ? evt.preventDefault() : '';});
527
+
528
+ formElements.subscrFrmSubmitTxt.children('input').keyup(function(){
529
+ formElements.subscrFrmElm.find('input:submit').val($(this).val()).click(function(evt){evt.preventDefault();});
530
+ }).keydown(function(evt){13 == evt.which ? evt.preventDefault() : '';});
531
+
532
+
533
+ },
534
+ toggleSubscriptionElements : function(elements, visible){
535
+
536
+ $.each(elements, function(prop, elm){
537
+ (!!visible) ? elm.show() : elm.hide(1000);
538
+ });
539
+ },
540
+ //color light
541
+ shadeColor : function(color, percent) {
542
+ var num = parseInt(color.slice(1),16), amt = Math.round(2.55 * percent), R = (num >> 16) + amt, G = (num >> 8 & 0x00FF) + amt, B = (num & 0x0000FF) + amt;
543
+ return "#" + (0x1000000 + (R<255?R<1?0:R:255)*0x10000 + (G<255?G<1?0:G:255)*0x100 + (B<255?B<1?0:B:255)).toString(16).slice(1);
544
+ },
545
+ /// Text Labels
546
+ the_labels: function ( ) {
547
+ if ($('#ujic_txt').is(":checked")) {
548
+ $('.countdown_txt').show();
549
+ } else {
550
+ $('.countdown_txt').hide();
551
+ }
552
+
553
+ //live change
554
+ $('.iCheck-helper').click(function () {
555
+ var id = $(this).parent().find(":checkbox").attr("id");
556
+ if (id == 'ujic_txt' && $(this).parent().hasClass('checked')) {
557
+ $('.countdown_txt').show();
558
+ }
559
+ else if (id == 'ujic_txt') {
560
+ $('.countdown_txt').hide();
561
+ }
562
+
563
+ (id === 'ujic_subscrFrmIsEnabled') ? classicSelect.handleSubscription() : null;
564
+ });
565
+
566
+ },
567
+ /// Google Font
568
+ the_fonts: function ( ) {
569
+ var val = $('#ujic_goof').val();
570
+ if (val && val != 'none') {
571
+ var the_font = val.replace(/\s+/g, '+');
572
+ //add reference to google font family
573
+ $('head').append('<link href="http://fonts.googleapis.com/css?family=' + the_font + '" rel="stylesheet" type="text/css">');
574
+ $('.circles-integer').css('font-family', val + ', sans-serif');
575
+ }
576
+ //live change
577
+ $('#ujic_goof').bind("change keyup", function () {
578
+ var val = $(this).val();
579
+ var the_font = val.replace(/\s+/g, '+');
580
+ //add reference to google font family
581
+ $('head').append('<link href="http://fonts.googleapis.com/css?family=' + the_font + '" rel="stylesheet" type="text/css">');
582
+ $('.circles-integer').css('font-family', val + ', sans-serif');
583
+
584
+ });
585
+ }
586
+
587
  };
588
  })(jQuery);
assets/js/ujic-popup-button.js ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function() {
2
+
3
+ var ujic_styles = ujic_short_vars.ujic_style;
4
+ var ujic_min = ujic_short_vars.ujic_min;
5
+ var ujic_hou = ujic_short_vars.ujic_hou;
6
+ var ujic_reclab = ujic_short_vars.ujic_reclab;
7
+
8
+ tinymce.PluginManager.add('ujic_tc_button', function( editor, url ) {
9
+ editor.addButton( 'ujic_tc_button', {
10
+ title: 'Uji Countdown',
11
+ type: 'button',
12
+ icon: 'mce-ico mce-i-icon dashicons-clock',
13
+ text: '',
14
+ onclick: function() {
15
+ editor.windowManager.open( {
16
+ id: 'uji-contdown-pop',
17
+ title: 'Insert Uji Countdown',
18
+ body:[{
19
+ type: 'listbox',
20
+ name: 'ujic_style',
21
+ label: 'Select Style:',
22
+ tooltip: 'Select saved style',
23
+ values: ujic_styles
24
+ },
25
+ {
26
+ type:'container',
27
+ html: '<div class="uji_spacer"></div>'
28
+ },
29
+ {
30
+ type: 'textbox',
31
+ name: 'ujic_date',
32
+ label: 'Expire Date:',
33
+ tooltip: 'Select the date to expire',
34
+ id : 'ujic-datapick'
35
+ },
36
+ {
37
+ type:'container',
38
+ label: 'Select Time:',
39
+ items:[{
40
+ type: 'listbox',
41
+ name: 'ujic_hou',
42
+ tooltip: 'Select hour',
43
+ id: 'ujic_hou',
44
+ values: ujic_hou
45
+ },
46
+ {
47
+ type: 'label',
48
+ id: 'ujic_time_space',
49
+ text: ' : '
50
+ },
51
+ {
52
+ type: 'listbox',
53
+ name: 'ujic_min',
54
+ tooltip: 'Select minute',
55
+ id: 'ujic_min',
56
+ values: ujic_min
57
+ }]
58
+ },
59
+ {
60
+ type:'container',
61
+ html: '<div class="uji_spacer"></div>'
62
+ },
63
+ {
64
+ type:'container',
65
+ label: 'After expiration:',
66
+ items:[{
67
+ type: 'checkbox',
68
+ name: 'ujic_hide',
69
+ checked: true,
70
+ id: 'ujic_hide'
71
+ },
72
+ {
73
+ type: 'label',
74
+ id: 'ujic_hide_txt',
75
+ text: ' Hide the countdown'
76
+ }],
77
+ },
78
+ {
79
+ type: 'textbox',
80
+ name: 'ujic_url',
81
+ id: 'ujic_url',
82
+ label: 'Or go to URL',
83
+ text: 'http://',
84
+ tooltip: 'Redirect page to above link'
85
+ },
86
+ {
87
+ type:'container',
88
+ html: '<div class="uji_spacer"></div>'
89
+ },
90
+ {
91
+ type:'container',
92
+ label: 'Recurring Time:',
93
+ items:[{
94
+ type: 'label',
95
+ id: 'ujic_rev_txt',
96
+ text: 'Every:'
97
+ },
98
+ {
99
+ type: 'textbox',
100
+ name: 'ujic_rev',
101
+ id: 'ujic_rev',
102
+ tooltip: 'Number of Unit'
103
+ },
104
+ {
105
+ type: 'listbox',
106
+ name: 'ujic_revlab',
107
+ tooltip: 'Select unit of time',
108
+ id: 'ujic_revlab',
109
+ values: ujic_reclab
110
+ }]
111
+ },
112
+ {
113
+ type:'container',
114
+ label: ' ',
115
+ items:[{
116
+ type: 'label',
117
+ id: 'ujic_rep_txt',
118
+ text: 'Repeats:'
119
+ },
120
+ {
121
+ type: 'textbox',
122
+ name: 'ujic_rep',
123
+ id: 'ujic_rep',
124
+ tooltip: 'Unit of time and number of repeats'
125
+ },
126
+ {
127
+ type: 'label',
128
+ id: 'ujic_rep_des',
129
+ text: 'leave it empty for unlimited'
130
+ }]
131
+ },
132
+ {
133
+ type:'container',
134
+ html: '<div class="uji_spacer"></div>'
135
+ },
136
+ {
137
+ type: 'textbox',
138
+ label: 'Campaign Name',
139
+ name: 'ujic_camp',
140
+ id: 'ujic_camp',
141
+ tooltip: 'Enter your campaign name'
142
+ }],
143
+ onsubmit: function( e ) {
144
+ if(e.data.ujic_date === '') {
145
+ var window_id = this._id;
146
+ var inputs = jQuery('#' + window_id + '-body').find('.mce-formitem input');
147
+
148
+ editor.windowManager.alert('Please fill Expire Date field.');
149
+
150
+ if(e.data.ujic_date === '') {
151
+ jQuery(inputs.get(0)).css('border-color', 'red');
152
+ }
153
+
154
+ return false;
155
+ }
156
+
157
+ //console.log(e);
158
+ editor.insertContent( '[ujicountdown id="' + e.data.ujic_style + '" expire="' + e.data.ujic_date + ' ' + e.data.ujic_hou + ':' + e.data.ujic_min + '" hide="' + e.data.ujic_hide + '" url="' + e.data.ujic_url + '" subscr="' + e.data.ujic_camp + '" recurring="' + e.data.ujic_rev + '" rectype="' + e.data.ujic_revlab + '" repeats="' + e.data.ujic_rep + '"]');
159
+
160
+
161
+ }
162
+ });
163
+ //Button name change
164
+ jQuery("#uji-contdown-pop .mce-foot").find('button').first().html('Insert');
165
+
166
+ //Datapicker Unfocus
167
+ jQuery("#uji-contdown-pop").on( "click", function() {
168
+ jQuery('#ujic-datapick').blur();
169
+ });
170
+ //Datapicker Initiate
171
+ jQuery('#ujic-datapick').datepicker({
172
+ dateFormat: 'yy/mm/dd'
173
+ });
174
+ //URL http:// placeholder
175
+ jQuery('#uji-contdown-pop #ujic_url').attr('placeholder', 'http://');
176
+
177
+ //Check based on URL. Hide if empty
178
+ jQuery('#ujic_url').focusin(function() {
179
+ jQuery('#ujic_hide').attr('aria-checked', false);
180
+ jQuery('#ujic_hide').removeClass('mce-checked');
181
+ });
182
+ jQuery('#ujic_url').focusout(function() {
183
+ if( jQuery(this).val() === ''){
184
+ console.log(jQuery(this).val());
185
+ jQuery('#ujic_hide').attr('aria-checked', true);
186
+ jQuery('#ujic_hide').addClass('mce-checked');
187
+ }
188
+ });
189
+
190
+ }
191
+
192
+ });
193
+
194
+
195
+ });
196
+
197
+
198
+ })();
assets/js/widget.js CHANGED
@@ -1,24 +1,24 @@
1
- jQuery(document).ready(function($) {
2
- jQuery("#widgets-right").on( "mouseover", ".ujic_date", function() {
3
- jQuery("#widgets-right").find(".ujic_date").datepicker({
4
- dateFormat : 'yy/mm/dd'
5
- });
6
- });
7
-
8
- jQuery('.ujic_link').each(function() {
9
- jQuery(this).keyup(function () {
10
- var value = jQuery(this).val();
11
- var cname = jQuery(this).parent().parent().find('.ujic_exp').attr("name");
12
- jQuery(this).parent().parent().find('.ujic_exp').css('border', 'red');
13
- //alert(cname);
14
-
15
- if(value){
16
- jQuery('input[name="'+cname+'"]').attr('checked', false);
17
- }else{
18
-
19
- jQuery('input[name="'+cname+'"]').attr('checked', true);
20
- }
21
-
22
- });
23
- });
24
  });
1
+ jQuery(document).ready(function($) {
2
+ jQuery("#widgets-right").on( "mouseover", ".ujic_date", function() {
3
+ jQuery("#widgets-right").find(".ujic_date").datepicker({
4
+ dateFormat : 'yy/mm/dd'
5
+ });
6
+ });
7
+
8
+ jQuery('.ujic_link').each(function() {
9
+ jQuery(this).keyup(function () {
10
+ var value = jQuery(this).val();
11
+ var cname = jQuery(this).parent().parent().find('.ujic_exp').attr("name");
12
+ jQuery(this).parent().parent().find('.ujic_exp').css('border', 'red');
13
+ //alert(cname);
14
+
15
+ if(value){
16
+ jQuery('input[name="'+cname+'"]').attr('checked', false);
17
+ }else{
18
+
19
+ jQuery('input[name="'+cname+'"]').attr('checked', true);
20
+ }
21
+
22
+ });
23
+ });
24
  });
assets/tinymce/config.php DELETED
@@ -1,82 +0,0 @@
1
- <?php
2
-
3
- /*-----------------------------------------------------------------------------------*/
4
- /* Countdown Config
5
- /*-----------------------------------------------------------------------------------*/
6
-
7
- // GET All Styles
8
- function ujic_get_styles( $desc = false ){
9
- global $wpdb;
10
- $ujic_styles = $wpdb->get_results( "SELECT style, title FROM " . $wpdb->prefix . "uji_counter ORDER BY `time` DESC" );
11
- $ujic_sel = array();
12
- if( !empty($ujic_styles) ){
13
- if( $desc ){
14
- return '';
15
- }else{
16
- foreach( $ujic_styles as $ujic ){
17
- $ujic_sel[$ujic->title] = $ujic->title .' - '. $ujic->style;
18
- }
19
- return $ujic_sel;
20
- }
21
- }else{
22
- if( $desc ){
23
- return '<span style="color:red">1. Go to Settings/Uji Countdown <br> 2. Click on Create a new timer style</span>';
24
- }else{
25
- return array( __('Please add a new style first', 'ujicountdown') );
26
- }
27
- }
28
- }
29
-
30
- //GET Data/Time
31
- function ujic_get_datetime($nr){
32
- for($i=0; $i<=$nr; $i++){
33
- $num[sprintf("%02s",$i)] = sprintf("%02s",$i);
34
- }
35
-
36
- return $num;
37
- }
38
-
39
-
40
- $ujic_shortcodes['countdown'] = array(
41
- 'no_preview' => true,
42
- 'params' => array(
43
- 'style' => array(
44
- 'type' => 'select',
45
- 'label' => __('Select Style', 'ujicountdown'),
46
- 'desc' => __('Select the style for your countdown', 'ujicountdown'),
47
- 'options' => ujic_get_styles(),
48
- 'desc' => ujic_get_styles(true)
49
- ),
50
- 'thedate' => array(
51
- 'std' => '',
52
- 'type' => 'datapick',
53
- 'label' => __('Expire Date', 'ujicountdown'),
54
- 'desc' => __('Select the date to expire', 'ujicountdown'),
55
- ),
56
- 'thetime' => array(
57
- 'type' => 'timepick',
58
- 'label' => __('Time', 'ujicountdown'),
59
- 'desc' => __('Select the time to expire', 'ujicountdown'),
60
- 'options_h' => ujic_get_datetime(23),
61
- 'options_m' => ujic_get_datetime(59),
62
- ),
63
- 'thexpi' => array(
64
- 'std' => '',
65
- 'std2' => 'http://',
66
- 'type' => 'expiry',
67
- 'fname' => __('Hide the countdown: ', 'ujicountdown'),
68
- 'fname2' => __('Or go to URL: ', 'ujicountdown'),
69
- 'label' => __('After Expiry', 'ujicountdown'),
70
- 'desc' => __('Select option after expiry', 'ujicountdown')
71
- ),
72
- 'subscr' => array(
73
- 'std' => '',
74
- 'type' => 'text',
75
- 'label' => __('Campaign Name', 'ujicountdown'),
76
- 'desc' => __('Your Campaign Name', 'ujicountdown'),
77
- )
78
- ),
79
- 'shortcode' => '[ujicountdown id="{{style}}" expire="{{thedate}} {{thetime}}:{{thetime_}}" hide="{{thexpi}}" url="{{thexpi_}}" subscr="{{subscr}}"]',
80
- 'popup_title' => __('Insert Countdown Shortcode', 'ujicountdown')
81
- );
82
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/css/popup.css DELETED
@@ -1,223 +0,0 @@
1
- i.mce-i-icon {
2
- font: 400 20px/1 dashicons;
3
- padding: 0;
4
- vertical-align: top;
5
- speak: none;
6
- -webkit-font-smoothing: antialiased;
7
- -moz-osx-font-smoothing: grayscale;
8
- margin-left: -2px;
9
- padding-right: 2px
10
- }
11
-
12
- /* GLOBAL
13
- ------------------------------------------------------- */
14
- #ujic-popup {
15
- width: 560px;
16
- font: 12px/20px Arial, Helvetica, sans-serif;
17
- overflow: hidden;
18
- }
19
-
20
- /* form side */
21
- #ujic-sc-form-wrap {
22
- width: 550px;
23
- float: left;
24
- }
25
- #ujic-sc-form-wrap #ujic-sc-form-head {
26
- width: 520px;
27
- padding: 15px;
28
- color: #fff;
29
- font-weight: bold;
30
- line-height: 1;
31
- text-shadow: 0 -1px 0 #000;
32
- background-color: #404040;
33
- background-image: -webkit-gradient(linear, left top, left bottom, from(#404040), to(#393939));
34
- background-image: -webkit-linear-gradient(top, #404040, #393939);
35
- background-image: -moz-linear-gradient(top, #404040, #393939);
36
- background-image: -ms-linear-gradient(top, #404040, #393939);
37
- background-image: -o-linear-gradient(top, #404040, #393939);
38
- background-image: linear-gradient(top, #404040, #393939);
39
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#404040', EndColorStr='#393939');
40
- }
41
- #ujic-popup.no_preview #ujic-sc-form-wrap #ujic-sc-form-head {
42
- width: 530px;
43
- }
44
- #ujic-sc-form-wrap #ujic-sc-form {
45
- width: 490px;
46
- padding: 15px;
47
- }
48
-
49
-
50
- /* FORM
51
- ------------------------------------------------------- */
52
-
53
- #ujic-sc-form-table {
54
- width: 530px;
55
- }
56
- #ujic-sc-form-table tbody tr.form-row {
57
- display: block;
58
- padding: 5px 0;
59
- border-bottom: solid 1px #eaeaea;
60
- }
61
- #ujic-sc-form-table tbody:last-child tr.form-row {
62
- border-bottom: none;
63
- }
64
- #ujic-sc-form-table tbody tr.form-row .label {
65
- width: 130px;
66
- text-align: left;
67
- vertical-align: top;
68
- line-height: 35px;
69
- padding-right: 20px;
70
- }
71
- #ujic-sc-form-table tbody tr.form-row .field {
72
- width: 370px;
73
- }
74
- #ujic-sc-form-table tbody tr.form-row .ujic-insert {
75
- color: #fff;
76
- }
77
-
78
- /* child rows, sortable */
79
- #ujic-sc-form-table .has-child #form-child-add {
80
- display: block;
81
- width: 520px;
82
- -moz-border-radius: 5px;
83
- border-radius: 5px;
84
- padding: 0;
85
- height: 30px;
86
- line-height: 30px;
87
- margin-bottom: 20px;
88
- font-weight: bold;
89
- font-size: 16px;
90
- text-align: center;
91
- }
92
- #ujic-sc-form-table .has-child .child-clone-rows {
93
- display: block;
94
- }
95
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row {
96
- padding: 8px 15px;
97
- background: #f7f7f7;
98
- border: solid 1px #e0e0e0;
99
- margin-bottom: 10px;
100
- cursor: move;
101
- -moz-border-radius: 5px;
102
- border-radius: 5px;
103
- }
104
- #ujic-sc-form-table .has-child .sortable-placeholder {
105
- border: dashed 2px #e0e0e0;
106
- margin-bottom: 10px;
107
- -moz-border-radius: 5px;
108
- border-radius: 5px;
109
- background: #f7f7f7;
110
- height: 40px;
111
- }
112
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row .child-clone-row-form {
113
- display: block;
114
- }
115
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row .child-clone-row-form .child-clone-row-form-row {
116
- display: block;
117
- padding: 7px 0;
118
- border-bottom: solid 1px #ddd;
119
- }
120
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row .child-clone-row-form .child-clone-row-form-row .child-clone-row-label label {
121
- display: block;
122
- font-weight: bold;
123
- font-style: italic;
124
- padding-bottom: 7px;
125
- line-height: 1;
126
- }
127
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row .child-clone-row-remove {
128
- color: #FF0000;
129
- padding: 1px;
130
- }
131
- #ujic-sc-form-table .has-child .child-clone-rows .child-clone-row .child-clone-row-remove:hover {
132
- color: #fff;
133
- background: #FF0000;
134
- }
135
-
136
- /* form elements */
137
-
138
- /* - all */
139
- #ujic-sc-form-table tbody tr.form-row .ujic-form-text,
140
- #ujic-sc-form-table tbody tr.form-row .ujic-form-textarea,
141
- #ujic-sc-form-table tbody tr.form-row .ujic-form-select {
142
- width: auto;
143
- padding: 5px 10px;
144
- background: #f7f7f7;
145
- border: none;
146
- border-left: solid 1px #ddd;
147
- border-top: solid 1px #ddd;
148
- -moz-border-radius: 5px;
149
- border-radius: 5px;
150
- }
151
- #ujic-sc-form-table tbody tr.form-row.has-child .ujic-form-text,
152
- #ujic-sc-form-table tbody tr.form-row.has-child .ujic-form-textarea,
153
- #ujic-sc-form-table tbody tr.form-row.has-child .ujic-form-select {
154
- background: #fff;
155
- width: 485px;
156
- }
157
-
158
- /* - textarea */
159
- #ujic-sc-form-table tbody tr.form-row .ujic-form-textarea {
160
- height: 120px;
161
- }
162
- #ujic-sc-form-table tbody tr.form-row.has-child .ujic-form-textarea {
163
- height: 100px;
164
- }
165
-
166
- /* - select */
167
- #ujic-sc-form-table tbody tr.form-row .ujic-form-select {
168
- display: block;
169
- height: 28px;
170
- }
171
-
172
- #ujic-sc-form-table tbody tr.form-row #ujic_thetime,
173
- #ujic-sc-form-table tbody tr.form-row #ujic_thetime_ {
174
- width: 60px;
175
- display: inline-block;
176
- font-size: 14px;
177
- }
178
-
179
- #ujic-sc-form-table tbody tr.form-row .ujic-form-expiry{
180
- width: 220px;
181
- margin-left: 35px;
182
- }
183
-
184
- #ujic-sc-form-table tbody tr.form-row #ujic-form-expiry-url{
185
- margin-top: 10px;
186
- }
187
-
188
- #ujic-sc-form-table tbody tr.form-row.has-child .ujic-form-select {
189
- width: auto;
190
- height: 25px;
191
- }
192
-
193
- /* - desc */
194
- #ujic-sc-form-table tbody tr.form-row .field .ujic-form-desc,
195
- #ujic-sc-form-table tbody tr.form-row .child-clone-row-desc {
196
- display: block;
197
- font-size: 12px;
198
- color: #aaa;
199
- font-style: italic;
200
- padding-top: 3px;
201
- }
202
-
203
- /* Hide outline on focus */
204
- #content_ujic_button { outline: none; }
205
-
206
-
207
- /* - datapicker */
208
- #ujic-sc-form-table tbody tr.form-row .ujic-form-datapick {
209
- height: 26px;
210
- width: 180px;
211
- background: #f7f7f7 url(../images/data-picker.png) right top no-repeat;
212
-
213
- }
214
-
215
- /* CSS for high-resolution devices */
216
- @media
217
- (-webkit-min-device-pixel-ratio: 2),
218
- (min-resolution: 192dpi) {
219
- /* - datapicker */
220
- #ujic-sc-form-table tbody tr.form-row .ujic-form-datapick {
221
- background: #f7f7f7 url(../images/data-picker.png) top right no-repeat;
222
- }
223
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/get_wp.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
-
3
- $absolute_path = __FILE__;
4
- $path_to_file = explode( 'wp-content', $absolute_path );
5
- $path_to_wp = $path_to_file[0];
6
-
7
- // Access WordPress
8
- require_once( $path_to_wp . '/wp-load.php' );
9
-
10
-
11
- ?>
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/images/icon.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_flat_75_ffffff_40x100.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_glass_55_fbf9ee_1x400.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_glass_65_ffffff_1x400.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_glass_75_dadada_1x400.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_glass_75_e6e6e6_1x400.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-bg_highlight-soft_75_cccccc_1x100.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-icons_222222_256x240.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-icons_2e83ff_256x240.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-icons_454545_256x240.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-icons_888888_256x240.png DELETED
Binary file
assets/tinymce/images/jq_UI/ui-icons_cd0a0a_256x240.png DELETED
Binary file
assets/tinymce/js/base64.js DELETED
@@ -1,333 +0,0 @@
1
- /*
2
- * More info at: http://phpjs.org
3
- *
4
- * This is version: 3.24
5
- * php.js is copyright 2011 Kevin van Zonneveld.
6
- *
7
- * Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld
8
- * (http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White
9
- * (http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jonas Raoni
10
- * Soares Silva (http://www.jsfromhell.com), Jack, Philip Peterson, Ates Goral
11
- * (http://magnetiq.com), Legaev Andrey, Ratheous, Alex, Martijn Wieringa,
12
- * Nate, lmeyrick (https://sourceforge.net/projects/bcmath-js/), Enrique
13
- * Gonzalez, Philippe Baumann, Rafał Kukawski (http://blog.kukawski.pl),
14
- * Webtoolkit.info (http://www.webtoolkit.info/), Ole Vrijenhoek, Ash Searle
15
- * (http://hexmen.com/blog/), travc, Carlos R. L. Rodrigues
16
- * (http://www.jsfromhell.com), Jani Hartikainen, stag019, GeekFG
17
- * (http://geekfg.blogspot.com), WebDevHobo (http://webdevhobo.blogspot.com/),
18
- * Erkekjetter, pilus, Rafał Kukawski (http://blog.kukawski.pl/), Johnny Mast
19
- * (http://www.phpvrouwen.nl), T.Wild,
20
- * http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript,
21
- * d3x, Michael Grier, Andrea Giammarchi (http://webreflection.blogspot.com),
22
- * marrtins, Mailfaker (http://www.weedem.fr/), Steve Hilder, gettimeofday,
23
- * mdsjack (http://www.mdsjack.bo.it), felix, majak, Steven Levithan
24
- * (http://blog.stevenlevithan.com), Mirek Slugen, Oleg Eremeev, Felix
25
- * Geisendoerfer (http://www.debuggable.com/felix), Martin
26
- * (http://www.erlenwiese.de/), gorthaur, Lars Fischer, Joris, AJ, Paul Smith,
27
- * Tim de Koning (http://www.kingsquare.nl), KELAN, Josh Fraser
28
- * (http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/),
29
- * Chris, Marc Palau, Kevin van Zonneveld (http://kevin.vanzonneveld.net/),
30
- * Arpad Ray (mailto:arpad@php.net), Breaking Par Consulting Inc
31
- * (http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7),
32
- * Nathan, Karol Kowalski, David, Dreamer, Diplom@t (http://difane.com/), Caio
33
- * Ariede (http://caioariede.com), Robin, Imgen Tata (http://www.myipdf.com/),
34
- * Pellentesque Malesuada, saulius, Aman Gupta, Sakimori, Tyler Akins
35
- * (http://rumkin.com), Thunder.m, Public Domain
36
- * (http://www.json.org/json2.js), Michael White, Kankrelune
37
- * (http://www.webfaktory.info/), Alfonso Jimenez
38
- * (http://www.alfonsojimenez.com), Frank Forte, vlado houba, Marco, Billy,
39
- * David James, madipta, noname, sankai, class_exists, Jalal Berrami, ger,
40
- * Itsacon (http://www.itsacon.net/), Scott Cariss, nobbler, Arno, Denny
41
- * Wardhana, ReverseSyntax, Mateusz "loonquawl" Zalega, Slawomir Kaniecki,
42
- * Francois, Fox, mktime, Douglas Crockford (http://javascript.crockford.com),
43
- * john (http://www.jd-tech.net), Oskar Larsson Högfeldt
44
- * (http://oskar-lh.name/), marc andreu, Nick Kolosov (http://sammy.ru), date,
45
- * Marc Jansen, Steve Clay, Olivier Louvignes (http://mg-crea.com/), Soren
46
- * Hansen, merabi, Subhasis Deb, josh, T0bsn, Tim Wiel, Brad Touesnard, MeEtc
47
- * (http://yass.meetcweb.com), Peter-Paul Koch
48
- * (http://www.quirksmode.org/js/beat.html), Pyerre, Jon Hohle, duncan, Bayron
49
- * Guevara, Adam Wallner (http://web2.bitbaro.hu/), paulo kuong, Gilbert,
50
- * Lincoln Ramsay, Thiago Mata (http://thiagomata.blog.com), Linuxworld,
51
- * lmeyrick (https://sourceforge.net/projects/bcmath-js/this.), djmix, Bryan
52
- * Elliott, David Randall, Sanjoy Roy, jmweb, Francesco, Stoyan Kyosev
53
- * (http://www.svest.org/), J A R, kenneth, T. Wild, Ole Vrijenhoek
54
- * (http://www.nervous.nl/), Raphael (Ao RUDLER), Shingo, LH, JB, nord_ua, jd,
55
- * JT, Thomas Beaucourt (http://www.webapp.fr), Ozh, XoraX
56
- * (http://www.xorax.info), EdorFaus, Eugene Bulkin (http://doubleaw.com/),
57
- * Der Simon (http://innerdom.sourceforge.net/), 0m3r, echo is bad,
58
- * FremyCompany, stensi, Kristof Coomans (SCK-CEN Belgian Nucleair Research
59
- * Centre), Devan Penner-Woelk, Pierre-Luc Paour, Martin Pool, Brant Messenger
60
- * (http://www.brantmessenger.com/), Kirk Strobeck, Saulo Vallory, Christoph,
61
- * Wagner B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong
62
- * (http://carrot.org/), Daniel Esteban, strftime, Rick Waldron, Mick@el,
63
- * Anton Ongson, Bjorn Roesbeke (http://www.bjornroesbeke.be/), Simon Willison
64
- * (http://simonwillison.net), Gabriel Paderni, Philipp Lenssen, Marco van
65
- * Oort, Bug?, Blues (http://tech.bluesmoon.info/), Tomasz Wesolowski, rezna,
66
- * Eric Nagel, Evertjan Garretsen, Luke Godfrey, Pul, Bobby Drake, uestla,
67
- * Alan C, Ulrich, Zahlii, Yves Sucaet, sowberry, Norman "zEh" Fuchs, hitwork,
68
- * johnrembo, Brian Tafoya (http://www.premasolutions.com/), Nick Callen,
69
- * Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Philippe
70
- * Jausions (http://pear.php.net/user/jausions), Aidan Lister
71
- * (http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp,
72
- * strcmp, Taras Bogach, jpfle, Alexander Ermolaev
73
- * (http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando,
74
- * dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha
75
- * (http://www.pedrotainha.com), James, penutbutterjelly, Arnout Kazemier
76
- * (http://www.3rd-Eden.com), 3D-GRAF, daniel airton wermann
77
- * (http://wermann.com.br), jakes, Yannoo, FGFEmperor, gabriel paderni, Atli
78
- * Þór, Maximusya, Diogo Resende, Rival, Howard Yeend, Allan Jensen
79
- * (http://www.winternet.no), davook, Benjamin Lupton, baris ozdil, Greg
80
- * Frazier, Manish, Matt Bradley, Cord, fearphage
81
- * (http://http/my.opera.com/fearphage/), Matteo, Victor, taith, Tim de
82
- * Koning, Ryan W Tenney (http://ryan.10e.us), Tod Gentille, Alexander M
83
- * Beedie, Riddler (http://www.frontierwebdev.com/), Luis Salazar
84
- * (http://www.freaky-media.com/), Rafał Kukawski, T.J. Leahy, Luke Smith
85
- * (http://lucassmith.name), Kheang Hok Chin (http://www.distantia.ca/),
86
- * Russell Walker (http://www.nbill.co.uk/), Jamie Beck
87
- * (http://www.terabit.ca/), Garagoth, Andrej Pavlovic, Dino, Le Torbi
88
- * (http://www.letorbi.de/), Ben (http://benblume.co.uk/), DtTvB
89
- * (http://dt.in.th/2008-09-16.string-length-in-bytes.html), Michael, Chris
90
- * McMacken, setcookie, YUI Library:
91
- * http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Andreas,
92
- * Blues at http://hacks.bluesmoon.info/strftime/strftime.js, rem, Josep Sanz
93
- * (http://www.ws3.es/), Cagri Ekin, Lorenzo Pisani, incidence, Amirouche, Jay
94
- * Klehr, Amir Habibi (http://www.residence-mixte.com/), Tony, booeyOH, meo,
95
- * William, Greenseed, Yen-Wei Liu, Ben Bryan, Leslie Hoare, mk.keck
96
- *
97
- * Dual licensed under the MIT (MIT-LICENSE.txt)
98
- * and GPL (GPL-LICENSE.txt) licenses.
99
- *
100
- * Permission is hereby granted, free of charge, to any person obtaining a
101
- * copy of this software and associated documentation files (the
102
- * "Software"), to deal in the Software without restriction, including
103
- * without limitation the rights to use, copy, modify, merge, publish,
104
- * distribute, sublicense, and/or sell copies of the Software, and to
105
- * permit persons to whom the Software is furnished to do so, subject to
106
- * the following conditions:
107
- *
108
- * The above copyright notice and this permission notice shall be included
109
- * in all copies or substantial portions of the Software.
110
- *
111
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
112
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
113
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
114
- * IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES
115
- * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
116
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
117
- * OTHER DEALINGS IN THE SOFTWARE.
118
- */
119
-
120
-
121
- function base64_decode (data) {
122
- // Decodes string using MIME base64 algorithm
123
- //
124
- // version: 1103.1210
125
- // discuss at: http://phpjs.org/functions/base64_decode
126
- // + original by: Tyler Akins (http://rumkin.com)
127
- // + improved by: Thunder.m
128
- // + input by: Aman Gupta
129
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
130
- // + bugfixed by: Onno Marsman
131
- // + bugfixed by: Pellentesque Malesuada
132
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
133
- // + input by: Brett Zamir (http://brett-zamir.me)
134
- // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
135
- // - depends on: utf8_decode
136
- // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==');
137
- // * returns 1: 'Kevin van Zonneveld'
138
- // mozilla has this native
139
- // - but breaks in 2.0.0.12!
140
- //if (typeof this.window['btoa'] == 'function') {
141
- // return btoa(data);
142
- //}
143
- var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
144
- var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
145
- ac = 0,
146
- dec = "",
147
- tmp_arr = [];
148
-
149
- if (!data) {
150
- return data;
151
- }
152
-
153
- data += '';
154
-
155
- do { // unpack four hexets into three octets using index points in b64
156
- h1 = b64.indexOf(data.charAt(i++));
157
- h2 = b64.indexOf(data.charAt(i++));
158
- h3 = b64.indexOf(data.charAt(i++));
159
- h4 = b64.indexOf(data.charAt(i++));
160
-
161
- bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;
162
-
163
- o1 = bits >> 16 & 0xff;
164
- o2 = bits >> 8 & 0xff;
165
- o3 = bits & 0xff;
166
-
167
- if (h3 == 64) {
168
- tmp_arr[ac++] = String.fromCharCode(o1);
169
- } else if (h4 == 64) {
170
- tmp_arr[ac++] = String.fromCharCode(o1, o2);
171
- } else {
172
- tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
173
- }
174
- } while (i < data.length);
175
-
176
- dec = tmp_arr.join('');
177
- dec = this.utf8_decode(dec);
178
-
179
- return dec;
180
- }
181
-
182
- function base64_encode (data) {
183
- // Encodes string using MIME base64 algorithm
184
- //
185
- // version: 1103.1210
186
- // discuss at: http://phpjs.org/functions/base64_encode
187
- // + original by: Tyler Akins (http://rumkin.com)
188
- // + improved by: Bayron Guevara
189
- // + improved by: Thunder.m
190
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
191
- // + bugfixed by: Pellentesque Malesuada
192
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
193
- // - depends on: utf8_encode
194
- // * example 1: base64_encode('Kevin van Zonneveld');
195
- // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
196
- // mozilla has this native
197
- // - but breaks in 2.0.0.12!
198
- //if (typeof this.window['atob'] == 'function') {
199
- // return atob(data);
200
- //}
201
- var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
202
- var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
203
- ac = 0,
204
- enc = "",
205
- tmp_arr = [];
206
-
207
- if (!data) {
208
- return data;
209
- }
210
-
211
- data = this.utf8_encode(data + '');
212
-
213
- do { // pack three octets into four hexets
214
- o1 = data.charCodeAt(i++);
215
- o2 = data.charCodeAt(i++);
216
- o3 = data.charCodeAt(i++);
217
-
218
- bits = o1 << 16 | o2 << 8 | o3;
219
-
220
- h1 = bits >> 18 & 0x3f;
221
- h2 = bits >> 12 & 0x3f;
222
- h3 = bits >> 6 & 0x3f;
223
- h4 = bits & 0x3f;
224
-
225
- // use hexets to index into b64, and append result to encoded string
226
- tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
227
- } while (i < data.length);
228
-
229
- enc = tmp_arr.join('');
230
-
231
- switch (data.length % 3) {
232
- case 1:
233
- enc = enc.slice(0, -2) + '==';
234
- break;
235
- case 2:
236
- enc = enc.slice(0, -1) + '=';
237
- break;
238
- }
239
-
240
- return enc;
241
- }
242
-
243
- function utf8_decode (str_data) {
244
- // Converts a UTF-8 encoded string to ISO-8859-1
245
- //
246
- // version: 1103.1210
247
- // discuss at: http://phpjs.org/functions/utf8_decode
248
- // + original by: Webtoolkit.info (http://www.webtoolkit.info/)
249
- // + input by: Aman Gupta
250
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
251
- // + improved by: Norman "zEh" Fuchs
252
- // + bugfixed by: hitwork
253
- // + bugfixed by: Onno Marsman
254
- // + input by: Brett Zamir (http://brett-zamir.me)
255
- // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
256
- // * example 1: utf8_decode('Kevin van Zonneveld');
257
- // * returns 1: 'Kevin van Zonneveld'
258
- var tmp_arr = [],
259
- i = 0,
260
- ac = 0,
261
- c1 = 0,
262
- c2 = 0,
263
- c3 = 0;
264
-
265
- str_data += '';
266
-
267
- while (i < str_data.length) {
268
- c1 = str_data.charCodeAt(i);
269
- if (c1 < 128) {
270
- tmp_arr[ac++] = String.fromCharCode(c1);
271
- i++;
272
- } else if (c1 > 191 && c1 < 224) {
273
- c2 = str_data.charCodeAt(i + 1);
274
- tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
275
- i += 2;
276
- } else {
277
- c2 = str_data.charCodeAt(i + 1);
278
- c3 = str_data.charCodeAt(i + 2);
279
- tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
280
- i += 3;
281
- }
282
- }
283
-
284
- return tmp_arr.join('');
285
- }
286
-
287
- function utf8_encode (argString) {
288
- // Encodes an ISO-8859-1 string to UTF-8
289
- //
290
- // version: 1103.1210
291
- // discuss at: http://phpjs.org/functions/utf8_encode
292
- // + original by: Webtoolkit.info (http://www.webtoolkit.info/)
293
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
294
- // + improved by: sowberry
295
- // + tweaked by: Jack
296
- // + bugfixed by: Onno Marsman
297
- // + improved by: Yves Sucaet
298
- // + bugfixed by: Onno Marsman
299
- // + bugfixed by: Ulrich
300
- // * example 1: utf8_encode('Kevin van Zonneveld');
301
- // * returns 1: 'Kevin van Zonneveld'
302
- var string = (argString + ''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
303
- var utftext = "",
304
- start, end, stringl = 0;
305
-
306
- start = end = 0;
307
- stringl = string.length;
308
- for (var n = 0; n < stringl; n++) {
309
- var c1 = string.charCodeAt(n);
310
- var enc = null;
311
-
312
- if (c1 < 128) {
313
- end++;
314
- } else if (c1 > 127 && c1 < 2048) {
315
- enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
316
- } else {
317
- enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
318
- }
319
- if (enc !== null) {
320
- if (end > start) {
321
- utftext += string.slice(start, end);
322
- }
323
- utftext += enc;
324
- start = end = n + 1;
325
- }
326
- }
327
-
328
- if (end > start) {
329
- utftext += string.slice(start, stringl);
330
- }
331
-
332
- return utftext;
333
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/js/jquery.appendo.js DELETED
@@ -1,136 +0,0 @@
1
- /**
2
- * Appendo Plugin for jQuery v1.01
3
- * Creates interface to create duplicate clones of last table row (usually for forms)
4
- * (c) 2008 Kelly Hallman. Free software released under MIT License.
5
- * See http://deepliquid.com/content/Appendo.html for more info
6
- */
7
-
8
- // Attach appendo as a jQuery plugin
9
- jQuery.fn.appendo = function(opt)
10
- {
11
- this.each(function() { jQuery.appendo.init(this,opt); });
12
- return this;
13
- };
14
-
15
- // appendo namespace
16
- jQuery.appendo = function() {
17
-
18
- // Create a closure so that we can refer to "this" correctly down the line
19
- var myself = this;
20
-
21
- // Global Options
22
- // These can be set with inline Javascript like so:
23
- // jQuery.appendo.opt.maxRows = 5;
24
- // $.appendo.opt.allowDelete = false;
25
- // (no need, in fact you shouldn't, wrap in jQuery(document).ready() etc)
26
- this.opt = { };
27
-
28
- this.init = function(obj,opt) {
29
-
30
- // Extend the defaults with global options and options given, if any
31
- var options = jQuery.extend({
32
- labelAdd: 'Add Row',
33
- labelDel: 'Remove',
34
- allowDelete: true,
35
- // copyHandlers does not seem to work
36
- // it's been removed from the docs for now...
37
- copyHandlers: false,
38
- focusFirst: true,
39
- onAdd: function() { return true; },
40
- onDel: function() { return true; },
41
- maxRows: 0,
42
- wrapClass: 'appendoButtons',
43
- wrapStyle: { padding: '.4em .2em .5em' },
44
- buttonStyle: { marginRight: '.5em' },
45
- subSelect: 'tr:last'
46
- },
47
- myself.opt,
48
- opt
49
- );
50
-
51
- // Store clone of last table row
52
- var $cpy = jQuery(obj).find(options.subSelect).clone(options.copyHandlers);
53
- // We consider this starting off with 1 row
54
- var rows = 1;
55
- // Create two button objects
56
- var $add_btn = jQuery('#form-child-add').click(clicked_add),
57
- $del_btn = new_button(options.labelDel).click(clicked_del).hide()
58
- ;
59
-
60
- // Append a row to table instance
61
- function add_row()
62
- {
63
- var $dup = $cpy.clone(options.copyHandlers);
64
- $dup.appendTo(obj);
65
- update_buttons(1);
66
- if (typeof(options.onAdd) == "function") options.onAdd($dup);
67
- if (!!options.focusFirst) $dup.find('input:first').focus();
68
- };
69
-
70
- // Remove last row from table instance
71
- function del_row()
72
- {
73
- var $row = jQuery(obj).find(options.subSelect);
74
- if ((typeof(options.onDel) != "function") || options.onDel($row))
75
- {
76
- $row.remove();
77
- update_buttons(-1);
78
- }
79
- };
80
-
81
- // Updates the button states after rows change
82
- function update_buttons(rowdelta)
83
- {
84
- // Update rows if a delta is provided
85
- rows = rows + (rowdelta || 0);
86
- // Disable the add button if maxRows is set and we have that many rows
87
- // $add_btn.attr('disabled',(!options.maxRows || (rows < options.maxRows))?false:true);
88
- // Show remove button if we've added rows and allowDelete is set
89
- (options.allowDelete && (rows > 1))? $del_btn.show(): $del_btn.hide();
90
- };
91
-
92
- // Returns (jQuery) button objects with label
93
- function new_button(label)
94
- {
95
- return jQuery('<button />')
96
- .css(options.buttonStyle)
97
- .html(label);
98
- };
99
-
100
- // This function can be returned to kill a received event
101
- function nothing(e)
102
- {
103
- e.stopPropagation();
104
- e.preventDefault();
105
- return false;
106
- };
107
-
108
- // Handles a click on the add button
109
- function clicked_add(e)
110
- {
111
- if (!options.maxRows || (rows < options.maxRows)) add_row();
112
- return nothing(e);
113
- };
114
-
115
- // Handles a click event on the remove button
116
- function clicked_del(e)
117
- {
118
- if (rows > 1) del_row();
119
- return nothing(e);
120
- };
121
-
122
- // Add the buttons after the table instance
123
- /*
124
- jQuery('<div />')
125
- .addClass(options.wrapClass)
126
- .css(options.wrapStyle)
127
- .append( $add_btn, $del_btn )
128
- .insertAfter(obj);
129
- */
130
-
131
- // Update the buttons
132
- update_buttons();
133
-
134
- };
135
- return this;
136
- }();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/js/jquery.livequery.js DELETED
@@ -1,226 +0,0 @@
1
- /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
2
- * Dual licensed under the MIT (MIT_LICENSE.txt)
3
- * and GPL Version 2 (GPL_LICENSE.txt) licenses.
4
- *
5
- * Version: 1.1.1
6
- * Requires jQuery 1.3+
7
- * Docs: http://docs.jquery.com/Plugins/livequery
8
- */
9
-
10
- (function($) {
11
-
12
- $.extend($.fn, {
13
- livequery: function(type, fn, fn2) {
14
- var self = this, q;
15
-
16
- // Handle different call patterns
17
- if ($.isFunction(type))
18
- fn2 = fn, fn = type, type = undefined;
19
-
20
- // See if Live Query already exists
21
- $.each( $.livequery.queries, function(i, query) {
22
- if ( self.selector == query.selector && self.context == query.context &&
23
- type == query.type && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) )
24
- // Found the query, exit the each loop
25
- return (q = query) && false;
26
- });
27
-
28
- // Create new Live Query if it wasn't found
29
- q = q || new $.livequery(this.selector, this.context, type, fn, fn2);
30
-
31
- // Make sure it is running
32
- q.stopped = false;
33
-
34
- // Run it immediately for the first time
35
- q.run();
36
-
37
- // Contnue the chain
38
- return this;
39
- },
40
-
41
- expire: function(type, fn, fn2) {
42
- var self = this;
43
-
44
- // Handle different call patterns
45
- if ($.isFunction(type))
46
- fn2 = fn, fn = type, type = undefined;
47
-
48
- // Find the Live Query based on arguments and stop it
49
- $.each( $.livequery.queries, function(i, query) {
50
- if ( self.selector == query.selector && self.context == query.context &&
51
- (!type || type == query.type) && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) && !this.stopped )
52
- $.livequery.stop(query.id);
53
- });
54
-
55
- // Continue the chain
56
- return this;
57
- }
58
- });
59
-
60
- $.livequery = function(selector, context, type, fn, fn2) {
61
- this.selector = selector;
62
- this.context = context;
63
- this.type = type;
64
- this.fn = fn;
65
- this.fn2 = fn2;
66
- this.elements = [];
67
- this.stopped = false;
68
-
69
- // The id is the index of the Live Query in $.livequery.queries
70
- this.id = $.livequery.queries.push(this)-1;
71
-
72
- // Mark the functions for matching later on
73
- fn.$lqguid = fn.$lqguid || $.livequery.guid++;
74
- if (fn2) fn2.$lqguid = fn2.$lqguid || $.livequery.guid++;
75
-
76
- // Return the Live Query
77
- return this;
78
- };
79
-
80
- $.livequery.prototype = {
81
- stop: function() {
82
- var query = this;
83
-
84
- if ( this.type )
85
- // Unbind all bound events
86
- this.elements.unbind(this.type, this.fn);
87
- else if (this.fn2)
88
- // Call the second function for all matched elements
89
- this.elements.each(function(i, el) {
90
- query.fn2.apply(el);
91
- });
92
-
93
- // Clear out matched elements
94
- this.elements = [];
95
-
96
- // Stop the Live Query from running until restarted
97
- this.stopped = true;
98
- },
99
-
100
- run: function() {
101
- // Short-circuit if stopped
102
- if ( this.stopped ) return;
103
- var query = this;
104
-
105
- var oEls = this.elements,
106
- els = $(this.selector, this.context),
107
- nEls = els.not(oEls);
108
-
109
- // Set elements to the latest set of matched elements
110
- this.elements = els;
111
-
112
- if (this.type) {
113
- // Bind events to newly matched elements
114
- nEls.bind(this.type, this.fn);
115
-
116
- // Unbind events to elements no longer matched
117
- if (oEls.length > 0)
118
- $.each(oEls, function(i, el) {
119
- if ( $.inArray(el, els) < 0 )
120
- $.event.remove(el, query.type, query.fn);
121
- });
122
- }
123
- else {
124
- // Call the first function for newly matched elements
125
- nEls.each(function() {
126
- query.fn.apply(this);
127
- });
128
-
129
- // Call the second function for elements no longer matched
130
- if ( this.fn2 && oEls.length > 0 )
131
- $.each(oEls, function(i, el) {
132
- if ( $.inArray(el, els) < 0 )
133
- query.fn2.apply(el);
134
- });
135
- }
136
- }
137
- };
138
-
139
- $.extend($.livequery, {
140
- guid: 0,
141
- queries: [],
142
- queue: [],
143
- running: false,
144
- timeout: null,
145
-
146
- checkQueue: function() {
147
- if ( $.livequery.running && $.livequery.queue.length ) {
148
- var length = $.livequery.queue.length;
149
- // Run each Live Query currently in the queue
150
- while ( length-- )
151
- $.livequery.queries[ $.livequery.queue.shift() ].run();
152
- }
153
- },
154
-
155
- pause: function() {
156
- // Don't run anymore Live Queries until restarted
157
- $.livequery.running = false;
158
- },
159
-
160
- play: function() {
161
- // Restart Live Queries
162
- $.livequery.running = true;
163
- // Request a run of the Live Queries
164
- $.livequery.run();
165
- },
166
-
167
- registerPlugin: function() {
168
- $.each( arguments, function(i,n) {
169
- // Short-circuit if the method doesn't exist
170
- if (!$.fn[n]) return;
171
-
172
- // Save a reference to the original method
173
- var old = $.fn[n];
174
-
175
- // Create a new method
176
- $.fn[n] = function() {
177
- // Call the original method
178
- var r = old.apply(this, arguments);
179
-
180
- // Request a run of the Live Queries
181
- $.livequery.run();
182
-
183
- // Return the original methods result
184
- return r;
185
- }
186
- });
187
- },
188
-
189
- run: function(id) {
190
- if (id != undefined) {
191
- // Put the particular Live Query in the queue if it doesn't already exist
192
- if ( $.inArray(id, $.livequery.queue) < 0 )
193
- $.livequery.queue.push( id );
194
- }
195
- else
196
- // Put each Live Query in the queue if it doesn't already exist
197
- $.each( $.livequery.queries, function(id) {
198
- if ( $.inArray(id, $.livequery.queue) < 0 )
199
- $.livequery.queue.push( id );
200
- });
201
-
202
- // Clear timeout if it already exists
203
- if ($.livequery.timeout) clearTimeout($.livequery.timeout);
204
- // Create a timeout to check the queue and actually run the Live Queries
205
- $.livequery.timeout = setTimeout($.livequery.checkQueue, 20);
206
- },
207
-
208
- stop: function(id) {
209
- if (id != undefined)
210
- // Stop are particular Live Query
211
- $.livequery.queries[ id ].stop();
212
- else
213
- // Stop all Live Queries
214
- $.each( $.livequery.queries, function(id) {
215
- $.livequery.queries[ id ].stop();
216
- });
217
- }
218
- });
219
-
220
- // Register core DOM manipulation methods
221
- $.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'html');
222
-
223
- // Run Live Queries when the Document is ready
224
- $(function() { $.livequery.play(); });
225
-
226
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/js/popup.js DELETED
@@ -1,192 +0,0 @@
1
- // start the popup specefic scripts
2
- // safe to use $
3
- jQuery(document).ready(function($) {
4
- var ujics = {
5
- loadVals: function()
6
- {
7
- var shortcode = $('#_ujic_shortcode').text(),
8
- uShortcode = shortcode;
9
-
10
- // fill in the gaps eg {{param}}
11
- $('.ujic-input').each(function() {
12
- var input = $(this),
13
- id = input.attr('id'),
14
- id = id.replace('ujic_', ''), // gets rid of the ujic_ prefix
15
- re = new RegExp("{{"+id+"}}","g");
16
- if ( !$(this).is(':checkbox') || ( $(this).is(':checkbox') && $(this).is(':checked') ) )
17
- uShortcode = uShortcode.replace(re, input.val());
18
- else uShortcode = uShortcode.replace(re, '');
19
- });
20
-
21
- // adds the filled-in shortcode as hidden input
22
- $('#_ujic_ushortcode').remove();
23
- $('#ujic-sc-form-table').prepend('<div id="_ujic_ushortcode" class="hidden">' + uShortcode + '</div>');
24
- },
25
- cLoadVals: function()
26
- {
27
- var shortcode = $('#_ujic_cshortcode').text(),
28
- pShortcode = '';
29
- shortcodes = '';
30
-
31
- // fill in the gaps eg {{param}}
32
- $('.child-clone-row').each(function() {
33
- var row = $(this),
34
- rShortcode = shortcode;
35
-
36
- $('.ujic-cinput', this).each(function() {
37
- var input = $(this),
38
- id = input.attr('id'),
39
- id = id.replace('ujic_', '') // gets rid of the ujic_ prefix
40
- re = new RegExp("{{"+id+"}}","g");
41
- if ( !$(this).is(':checkbox') || ( $(this).is(':checkbox') && $(this).is(':checked') ) )
42
- rShortcode = rShortcode.replace(re, input.val());
43
- else rShortcode = rShortcode.replace(re, '');
44
- });
45
-
46
- shortcodes = shortcodes + rShortcode + "\n";
47
- });
48
-
49
- // adds the filled-in shortcode as hidden input
50
- $('#_ujic_cshortcodes').remove();
51
- $('.child-clone-rows').prepend('<div id="_ujic_cshortcodes" class="hidden">' + shortcodes + '</div>');
52
-
53
- // add to parent shortcode
54
- this.loadVals();
55
- pShortcode = $('#_ujic_ushortcode').text().replace('{{child_shortcode}}', shortcodes);
56
-
57
- // add updated parent shortcode
58
- $('#_ujic_ushortcode').remove();
59
- $('#ujic-sc-form-table').prepend('<div id="_ujic_ushortcode" class="hidden">' + pShortcode + '</div>');
60
- },
61
- children: function()
62
- {
63
- // assign the cloning plugin
64
- $('.child-clone-rows').appendo({
65
- subSelect: '> div.child-clone-row:last-child',
66
- allowDelete: false,
67
- focusFirst: false
68
- });
69
-
70
- // remove button
71
- $('.child-clone-row-remove').live('click', function() {
72
- var btn = $(this),
73
- row = btn.parent();
74
-
75
- if( $('.child-clone-row').size() > 1 )
76
- {
77
- row.remove();
78
- }
79
- else
80
- {
81
- alert('You need a minimum of one row');
82
- }
83
-
84
- return false;
85
- });
86
-
87
- // assign jUI sortable
88
- $( ".child-clone-rows" ).sortable({
89
- placeholder: "sortable-placeholder",
90
- items: '.child-clone-row'
91
-
92
- });
93
- },
94
- resizeTB: function()
95
- {
96
- var ajaxCont = $('#TB_ajaxContent'),
97
- tbWindow = $('#TB_window'),
98
- ujicPopup = $('#ujic-popup');
99
-
100
- tbWindow.css({
101
- height: ujicPopup.outerHeight() + 50,
102
- width: ujicPopup.outerWidth(),
103
- marginLeft: -(ujicPopup.outerWidth()/2)
104
- });
105
-
106
- ajaxCont.css({
107
- paddingTop: 0,
108
- paddingLeft: 0,
109
- paddingRight: 0,
110
- height: (tbWindow.outerHeight()-47),
111
- overflow: 'auto', // IMPORTANT
112
- width: ujicPopup.outerWidth()
113
- });
114
-
115
- $('#ujic-popup').addClass('no_preview');
116
- },
117
- load: function()
118
- {
119
- var ujics = this,
120
- popup = $('#ujic-popup'),
121
- form = $('#ujic-sc-form', popup),
122
- shortcode = $('#_ujic_shortcode', form).text(),
123
- popupType = $('#_ujic_popup', form).text(),
124
- uShortcode = '';
125
-
126
- // resize TB
127
- ujics.resizeTB();
128
- $(window).resize(function() { ujics.resizeTB() });
129
-
130
- // initialise
131
- ujics.loadVals();
132
- ujics.children();
133
- ujics.cLoadVals();
134
-
135
- // update on children value change
136
- $('.ujic-cinput', form).live('change', function() {
137
- ujics.cLoadVals();
138
- });
139
-
140
- // update on value change
141
- $('.ujic-input', form).change(function() {
142
- ujics.loadVals();
143
- });
144
-
145
- $('.ujic-datapick').datepicker({
146
- dateFormat: 'yy/mm/dd'
147
- });
148
-
149
- // when insert is clicked
150
- $('.ujic-insert', form).click(function() {
151
- var errors = false;
152
- var style_id = jQuery("#ujic_style").val();
153
- var date_id = jQuery("#ujic_thedate").val();
154
- var url_id = jQuery('#ujic_thexpi_').val();
155
- if(style_id == ""){
156
- alert("Please select a style");
157
- errors = true;
158
- return;
159
- }
160
- if(date_id == ""){
161
- alert("Please select countdown date");
162
- errors = true;
163
- return;
164
- }
165
- if(url_id != "" && !isUrl(url_id)){
166
- alert("Please insert valid link");
167
- errors = true;
168
- return;
169
- }
170
-
171
- if(parent.tinymce && !errors)
172
- {
173
- parent.tinymce.activeEditor.execCommand('mceInsertContent',false,$('#_ujic_ushortcode', form).html());
174
- tb_remove();
175
- }
176
-
177
- });
178
- }
179
- }
180
-
181
- // run
182
- $('#ujic-popup').livequery( function() { ujics.load(); } );
183
- });
184
-
185
- function isUrl(url) {
186
- var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
187
- if(RegExp.test(url)){
188
- return true;
189
- }else{
190
- return false;
191
- }
192
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/js/popup.old.js DELETED
@@ -1,191 +0,0 @@
1
- // start the popup specefic scripts
2
- // safe to use $
3
- jQuery(document).ready(function($) {
4
- var ujics = {
5
- loadVals: function()
6
- {
7
- var shortcode = $('#_ujic_shortcode').text(),
8
- uShortcode = shortcode;
9
-
10
- // fill in the gaps eg {{param}}
11
- $('.ujic-input').each(function() {
12
- var input = $(this),
13
- id = input.attr('id'),
14
- id = id.replace('ujic_', ''), // gets rid of the ujic_ prefix
15
- re = new RegExp("{{"+id+"}}","g");
16
- if ( !$(this).is(':checkbox') || ( $(this).is(':checkbox') && $(this).is(':checked') ) )
17
- uShortcode = uShortcode.replace(re, input.val());
18
- else uShortcode = uShortcode.replace(re, '');
19
- });
20
-
21
- // adds the filled-in shortcode as hidden input
22
- $('#_ujic_ushortcode').remove();
23
- $('#ujic-sc-form-table').prepend('<div id="_ujic_ushortcode" class="hidden">' + uShortcode + '</div>');
24
- },
25
- cLoadVals: function()
26
- {
27
- var shortcode = $('#_ujic_cshortcode').text(),
28
- pShortcode = '';
29
- shortcodes = '';
30
-
31
- // fill in the gaps eg {{param}}
32
- $('.child-clone-row').each(function() {
33
- var row = $(this),
34
- rShortcode = shortcode;
35
-
36
- $('.ujic-cinput', this).each(function() {
37
- var input = $(this),
38
- id = input.attr('id'),
39
- id = id.replace('ujic_', '') // gets rid of the ujic_ prefix
40
- re = new RegExp("{{"+id+"}}","g");
41
- if ( !$(this).is(':checkbox') || ( $(this).is(':checkbox') && $(this).is(':checked') ) )
42
- rShortcode = rShortcode.replace(re, input.val());
43
- else rShortcode = rShortcode.replace(re, '');
44
- });
45
-
46
- shortcodes = shortcodes + rShortcode + "\n";
47
- });
48
-
49
- // adds the filled-in shortcode as hidden input
50
- $('#_ujic_cshortcodes').remove();
51
- $('.child-clone-rows').prepend('<div id="_ujic_cshortcodes" class="hidden">' + shortcodes + '</div>');
52
-
53
- // add to parent shortcode
54
- this.loadVals();
55
- pShortcode = $('#_ujic_ushortcode').text().replace('{{child_shortcode}}', shortcodes);
56
-
57
- // add updated parent shortcode
58
- $('#_ujic_ushortcode').remove();
59
- $('#ujic-sc-form-table').prepend('<div id="_ujic_ushortcode" class="hidden">' + pShortcode + '</div>');
60
- },
61
- children: function()
62
- {
63
- // assign the cloning plugin
64
- $('.child-clone-rows').appendo({
65
- subSelect: '> div.child-clone-row:last-child',
66
- allowDelete: false,
67
- focusFirst: false
68
- });
69
-
70
- // remove button
71
- $('.child-clone-row-remove').live('click', function() {
72
- var btn = $(this),
73
- row = btn.parent();
74
-
75
- if( $('.child-clone-row').size() > 1 )
76
- {
77
- row.remove();
78
- }
79
- else
80
- {
81
- alert('You need a minimum of one row');
82
- }
83
-
84
- return false;
85
- });
86
-
87
- // assign jUI sortable
88
- $( ".child-clone-rows" ).sortable({
89
- placeholder: "sortable-placeholder",
90
- items: '.child-clone-row'
91
-
92
- });
93
- },
94
- resizeTB: function()
95
- {
96
- var ajaxCont = $('#TB_ajaxContent'),
97
- tbWindow = $('#TB_window'),
98
- ujicPopup = $('#ujic-popup');
99
-
100
- tbWindow.css({
101
- height: ujicPopup.outerHeight() + 50,
102
- width: ujicPopup.outerWidth(),
103
- marginLeft: -(ujicPopup.outerWidth()/2)
104
- });
105
-
106
- ajaxCont.css({
107
- paddingTop: 0,
108
- paddingLeft: 0,
109
- paddingRight: 0,
110
- height: (tbWindow.outerHeight()-47),
111
- overflow: 'auto', // IMPORTANT
112
- width: ujicPopup.outerWidth()
113
- });
114
-
115
- $('#ujic-popup').addClass('no_preview');
116
- },
117
- load: function()
118
- {
119
- var ujics = this,
120
- popup = $('#ujic-popup'),
121
- form = $('#ujic-sc-form', popup),
122
- shortcode = $('#_ujic_shortcode', form).text(),
123
- popupType = $('#_ujic_popup', form).text(),
124
- uShortcode = '';
125
-
126
- // resize TB
127
- ujics.resizeTB();
128
- $(window).resize(function() { ujics.resizeTB() });
129
-
130
- // initialise
131
- ujics.loadVals();
132
- ujics.children();
133
- ujics.cLoadVals();
134
-
135
- // update on children value change
136
- $('.ujic-cinput', form).live('change', function() {
137
- ujics.cLoadVals();
138
- });
139
-
140
- // update on value change
141
- $('.ujic-input', form).change(function() {
142
- ujics.loadVals();
143
- });
144
-
145
- $('.ujic-datapick').datepicker({
146
- dateFormat: 'yy/mm/dd'
147
- });
148
-
149
- // when insert is clicked
150
- $('.ujic-insert', form).click(function() {
151
- var errors = false;
152
- var style_id = jQuery("#ujic_style").val();
153
- var date_id = jQuery("#ujic_thedate").val();
154
- var url_id = jQuery('#ujic_thexpi_').val();
155
- if(style_id == ""){
156
- alert("Please select a style");
157
- errors = true;
158
- return;
159
- }
160
- if(date_id == ""){
161
- alert("Please select countdown date");
162
- errors = true;
163
- return;
164
- }
165
- if(url_id != "" && !isUrl(url_id)){
166
- alert("Please insert valid link");
167
- errors = true;
168
- return;
169
- }
170
-
171
- if(window.tinyMCE && !errors)
172
- {
173
- window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, $('#_ujic_ushortcode', form).html());
174
- tb_remove();
175
- }
176
- });
177
- }
178
- }
179
-
180
- // run
181
- $('#ujic-popup').livequery( function() { ujics.load(); } );
182
- });
183
-
184
- function isUrl(url) {
185
- var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
186
- if(RegExp.test(url)){
187
- return true;
188
- }else{
189
- return false;
190
- }
191
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/plugin.js DELETED
@@ -1,32 +0,0 @@
1
- (function($) {
2
- "use strict";
3
-
4
-
5
-
6
- //Shortcodes
7
- tinymce.PluginManager.add( 'ujicShortcodes', function( editor, url ) {
8
-
9
- editor.addCommand("ujicPopup", function ( a, params )
10
- {
11
- var popup = params.identifier;
12
- tb_show("Insert Uji Countdown", url + "/popup.php?popup=" + popup + "&width=" + 800);
13
- });
14
-
15
- editor.addButton( 'ujic_button', {
16
- type: 'button',
17
- text: false,
18
- icon: 'icon dashicons-clock',
19
- onclick : function(e) {
20
- editor.execCommand("ujicPopup", false, {title: 'Uji Countdown',identifier: 'countdown'})
21
- }
22
-
23
-
24
-
25
-
26
- });
27
-
28
- });
29
-
30
-
31
-
32
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/plugin.old.js DELETED
@@ -1,51 +0,0 @@
1
- (function ()
2
- {
3
- // create ujicShortcodes plugin
4
- tinymce.create("tinymce.plugins.ujicShortcodes",
5
- {
6
- init: function ( ed, url )
7
- {
8
- ed.addCommand("ujicPopup", function ( a, params )
9
- {
10
- var popup = params.identifier;
11
-
12
- // load thickbox
13
- tb_show("Insert Countdown Shortcode", url + "/popup.php?popup=" + popup + "&width=" + 800);
14
- });
15
- },
16
- createControl: function ( btn, e )
17
- {
18
- if ( btn == "ujic_button" )
19
- {
20
- var a = this;
21
-
22
- var btn = e.createButton('ujic_button', {
23
- title: "Insert Ujic Shortcode",
24
- image: UjicShortcodes.plugin_folder +"assets/tinymce/images/icon.png",
25
- icons: false,
26
- onclick : function() {
27
- tinyMCE.activeEditor.execCommand("ujicPopup", false, {
28
- title: 'Uji Countdown',
29
- identifier: 'countdown'
30
- })
31
- }
32
- });
33
-
34
- return btn;
35
- }
36
-
37
- return null;
38
- },
39
- addImmediate: function ( ed, title, sc) {
40
- ed.add({
41
- title: title,
42
- onclick: function () {
43
- tinyMCE.activeEditor.execCommand( "mceInsertContent", false, sc )
44
- }
45
- })
46
- }
47
- });
48
-
49
- // add ujicShortcodes plugin
50
- tinymce.PluginManager.add("ujicShortcodes", tinymce.plugins.ujicShortcodes);
51
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/popup.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
-
3
- // loads the shortcodes class, wordpress is loaded with it
4
- require_once( 'shortcodes.class.php' );
5
-
6
- // get popup type
7
- $popup = trim( $_GET['popup'] );
8
- $shortcode = new Ujic_shortcodes( $popup );
9
-
10
- ?>
11
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
12
- <html xmlns="http://www.w3.org/1999/xhtml">
13
- <head></head>
14
- <body>
15
- <div id="ujic-popup">
16
-
17
- <div id="ujic-shortcode-wrap">
18
-
19
- <div id="ujic-sc-form-wrap">
20
-
21
- <div id="ujic-sc-form-head">
22
-
23
- <?php echo $shortcode->popup_title; ?>
24
-
25
- </div>
26
- <!-- /#ujic-sc-form-head -->
27
-
28
- <form method="post" id="ujic-sc-form">
29
-
30
- <p style="font-size:11px">
31
- Only one timer on page is allowed. <br>Check the <a href="http://wpmanage.com/uji-countdown" target="_blank">Premium version</a> for multiple countdown timers on the same page.
32
- </p>
33
-
34
- <table id="ujic-sc-form-table">
35
-
36
- <?php echo $shortcode->output; ?>
37
-
38
- <tbody>
39
- <tr class="form-row">
40
- <?php if( ! $shortcode->has_child ) : ?><td class="label">&nbsp;</td><?php endif; ?>
41
- <td class="field"><a href="#" class="button-primary ujic-insert">Insert Shortcode</a></td>
42
- </tr>
43
- </tbody>
44
-
45
- </table>
46
- <!-- /#ujic-sc-form-table -->
47
-
48
- </form>
49
- <!-- /#ujic-sc-form -->
50
-
51
- </div>
52
- <!-- /#ujic-sc-form-wrap -->
53
-
54
- <div class="clear"></div>
55
-
56
- </div>
57
- <!-- /#ujic-shortcode-wrap -->
58
-
59
- </div>
60
- <!-- /#ujic-popup -->
61
-
62
- </body>
63
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/tinymce/shortcodes.class.php DELETED
@@ -1,344 +0,0 @@
1
- <?php
2
-
3
- // load wordpress
4
- require_once('get_wp.php');
5
-
6
- class Ujic_shortcodes
7
- {
8
- var $conf;
9
- var $popup;
10
- var $params;
11
- var $shortcode;
12
- var $cparams;
13
- var $cshortcode;
14
- var $popup_title;
15
- var $no_preview;
16
- var $has_child;
17
- var $output;
18
- var $errors;
19
-
20
- // --------------------------------------------------------------------------
21
-
22
- function __construct( $popup )
23
- {
24
- if( file_exists( dirname(__FILE__) . '/config.php' ) )
25
- {
26
- $this->conf = dirname(__FILE__) . '/config.php';
27
- $this->popup = $popup;
28
-
29
- $this->formate_shortcode();
30
- }
31
- else
32
- {
33
- $this->append_error('Config file does not exist');
34
- }
35
- }
36
-
37
- // --------------------------------------------------------------------------
38
-
39
- function formate_shortcode()
40
- {
41
- // get config file
42
- require_once( $this->conf );
43
-
44
- if( isset( $ujic_shortcodes[$this->popup]['child_shortcode'] ) )
45
- $this->has_child = true;
46
-
47
- if( isset( $ujic_shortcodes ) && is_array( $ujic_shortcodes ) )
48
- {
49
- // get shortcode config stuff
50
- $this->params = $ujic_shortcodes[$this->popup]['params'];
51
- $this->shortcode = $ujic_shortcodes[$this->popup]['shortcode'];
52
- $this->popup_title = $ujic_shortcodes[$this->popup]['popup_title'];
53
-
54
-
55
- // adds stuff for js use
56
- $this->append_output( "\n" . '<div id="_ujic_shortcode" class="hidden">' . $this->shortcode . '</div>' );
57
- $this->append_output( "\n" . '<div id="_ujic_popup" class="hidden">' . $this->popup . '</div>' );
58
-
59
- if( isset( $ujic_shortcodes[$this->popup]['no_preview'] ) && $ujic_shortcodes[$this->popup]['no_preview'] )
60
- {
61
- //$this->append_output( "\n" . '<div id="_ujic_preview" class="hidden">false</div>' );
62
- $this->no_preview = true;
63
- }
64
-
65
- // filters and excutes params
66
- foreach( $this->params as $pkey => $param )
67
- {
68
- // prefix the fields names and ids with ujic_
69
- $pkey = 'ujic_' . $pkey;
70
-
71
- // popup form row start
72
- $row_start = '<tbody>' . "\n";
73
- $row_start .= '<tr class="form-row">' . "\n";
74
- $row_start .= '<td class="label">' . $param['label'] . '</td>' . "\n";
75
- $row_start .= '<td class="field">' . "\n";
76
-
77
- // popup form row end
78
- $row_end = '<span class="ujic-form-desc">' . $param['desc'] . '</span>' . "\n";
79
- $row_end .= '</td>' . "\n";
80
- $row_end .= '</tr>' . "\n";
81
- $row_end .= '</tbody>' . "\n";
82
-
83
- switch( $param['type'] )
84
- {
85
- case 'text' :
86
-
87
- // prepare
88
- $output = $row_start;
89
- $output .= '<input type="text" class="ujic-form-text ujic-input" name="' . $pkey . '" id="' . $pkey . '" value="' . $param['std'] . '" />' . "\n";
90
- $output .= $row_end;
91
-
92
- // append
93
- $this->append_output( $output );
94
-
95
- break;
96
-
97
- case 'textarea' :
98
-
99
- // prepare
100
- $output = $row_start;
101
- $output .= '<textarea rows="10" cols="30" name="' . $pkey . '" id="' . $pkey . '" class="ujic-form-textarea ujic-input">' . $param['std'] . '</textarea>' . "\n";
102
- $output .= $row_end;
103
-
104
- // append
105
- $this->append_output( $output );
106
-
107
- break;
108
-
109
- case 'select' :
110
-
111
- // prepare
112
- $output = $row_start;
113
- $output .= '<select name="' . $pkey . '" id="' . $pkey . '" class="ujic-form-select ujic-input">' . "\n";
114
-
115
- foreach( $param['options'] as $value => $option )
116
- {
117
- $output .= '<option value="' . $value . '">' . $option . '</option>' . "\n";
118
- }
119
-
120
- $output .= '</select>' . "\n";
121
- $output .= $row_end;
122
-
123
- // append
124
- $this->append_output( $output );
125
-
126
- break;
127
-
128
- case 'checkbox' :
129
-
130
- // prepare
131
- $output = $row_start;
132
- $output .= '<label for="' . $pkey . '" class="ujic-form-checkbox">' . "\n";
133
- $output .= '<input type="checkbox" class="ujic-input" name="' . $pkey . '" id="' . $pkey . '" ' . ( $param['std'] ? 'checked' : '' ) . ' />' . "\n";
134
- $output .= ' ' . $param['checkbox_text'] . '</label>' . "\n";
135
- $output .= $row_end;
136
-
137
- // append
138
- $this->append_output( $output );
139
-
140
- break;
141
-
142
- case 'datapick' :
143
-
144
- // prepare
145
-
146
- $output = $row_start;
147
- $output .= '<input type="text" class="ujic-input ujic-form-datapick ujic-datapick" name="' . $pkey . '" id="' . $pkey . '" value="' . $param['std'] . '" />' . "\n";
148
- $output .= $row_end;
149
-
150
- // append
151
- $this->append_output( $output );
152
-
153
- break;
154
-
155
- case 'timepick' :
156
-
157
- // prepare
158
- $output = $row_start;
159
- $output .= '<select name="' . $pkey . '" id="' . $pkey . '" class="ujic-form-select ujic-input">' . "\n";
160
-
161
- foreach( $param['options_h'] as $value => $option )
162
- {
163
- $output .= '<option value="' . $value . '">' . $option . '</option>' . "\n";
164
- }
165
-
166
- $output .= '</select> : ' . "\n";
167
-
168
- $output .= '<select name="' . $pkey . '_" id="' . $pkey . '_" class="ujic-form-select ujic-input">' . "\n";
169
-
170
- foreach( $param['options_m'] as $value => $option )
171
- {
172
- $output .= '<option value="' . $value . '">' . $option . '</option>' . "\n";
173
- }
174
-
175
- $output .= '</select>' . "\n";
176
-
177
- $output .= $row_end;
178
-
179
- // append
180
- $this->append_output( $output );
181
-
182
- break;
183
-
184
- case 'expiry' :
185
-
186
- // prepare
187
-
188
- $output = $row_start;
189
- $output .= '<label for="' . $pkey . '" class="ujic-form-checkbox">' . $param['fname'] . "\n";
190
- $output .= '<input type="checkbox" class="ujic-input" name="' . $pkey . '" value="true" id="' . $pkey . '" ' . ( !empty($param['std']) ? 'checked' : '' ) . ' />' . "\n";
191
- $output .= '</label>' . "\n";
192
- $output .= '<div id="ujic-form-expiry-url">' . $param['fname2'] .' <input type="text" class="ujic-input ujic-form-expiry" name="' . $pkey . '_" id="' . $pkey . '_" placeholder="' . $param['std2'] . '" value="" /></div>' . "\n";
193
- $output .= $row_end;
194
-
195
- // append
196
- $this->append_output( $output );
197
-
198
- break;
199
-
200
- }
201
- }
202
-
203
- // checks if has a child shortcode
204
- if( isset( $ujic_shortcodes[$this->popup]['child_shortcode'] ) )
205
- {
206
- // set child shortcode
207
- $this->cparams = $ujic_shortcodes[$this->popup]['child_shortcode']['params'];
208
- $this->cshortcode = $ujic_shortcodes[$this->popup]['child_shortcode']['shortcode'];
209
-
210
- // popup parent form row start
211
- $prow_start = '<tbody>' . "\n";
212
- $prow_start .= '<tr class="form-row has-child">' . "\n";
213
- $prow_start .= '<td><a href="#" id="form-child-add" class="button-secondary">' . $ujic_shortcodes[$this->popup]['child_shortcode']['clone_button'] . '</a>' . "\n";
214
- $prow_start .= '<div class="child-clone-rows">' . "\n";
215
-
216
- // for js use
217
- $prow_start .= '<div id="_ujic_cshortcode" class="hidden">' . $this->cshortcode . '</div>' . "\n";
218
-
219
- // start the default row
220
- $prow_start .= '<div class="child-clone-row">' . "\n";
221
- $prow_start .= '<ul class="child-clone-row-form">' . "\n";
222
-
223
- // add $prow_start to output
224
- $this->append_output( $prow_start );
225
-
226
- foreach( $this->cparams as $cpkey => $cparam )
227
- {
228
-
229
- // prefix the fields names and ids with ujic_
230
- $cpkey = 'ujic_' . $cpkey;
231
-
232
- // popup form row start
233
- $crow_start = '<li class="child-clone-row-form-row">' . "\n";
234
- $crow_start .= '<div class="child-clone-row-label">' . "\n";
235
- $crow_start .= '<label>' . $cparam['label'] . '</label>' . "\n";
236
- $crow_start .= '</div>' . "\n";
237
- $crow_start .= '<div class="child-clone-row-field">' . "\n";
238
-
239
- // popup form row end
240
- $crow_end = '<span class="child-clone-row-desc">' . $cparam['desc'] . '</span>' . "\n";
241
- $crow_end .= '</div>' . "\n";
242
- $crow_end .= '</li>' . "\n";
243
-
244
- switch( $cparam['type'] )
245
- {
246
- case 'text' :
247
-
248
- // prepare
249
- $coutput = $crow_start;
250
- $coutput .= '<input type="text" class="ujic-form-text ujic-cinput" name="' . $cpkey . '" id="' . $cpkey . '" value="' . $cparam['std'] . '" />' . "\n";
251
- $coutput .= $crow_end;
252
-
253
- // append
254
- $this->append_output( $coutput );
255
-
256
- break;
257
-
258
- case 'textarea' :
259
-
260
- // prepare
261
- $coutput = $crow_start;
262
- $coutput .= '<textarea rows="10" cols="30" name="' . $cpkey . '" id="' . $cpkey . '" class="ujic-form-textarea ujic-cinput">' . $cparam['std'] . '</textarea>' . "\n";
263
- $coutput .= $crow_end;
264
-
265
- // append
266
- $this->append_output( $coutput );
267
-
268
- break;
269
-
270
- case 'select' :
271
-
272
- // prepare
273
- $coutput = $crow_start;
274
- $coutput .= '<select name="' . $cpkey . '" id="' . $cpkey . '" class="ujic-form-select ujic-cinput">' . "\n";
275
-
276
- foreach( $cparam['options'] as $value => $option )
277
- {
278
- $coutput .= '<option value="' . $value . '">' . $option . '</option>' . "\n";
279
- }
280
-
281
- $coutput .= '</select>' . "\n";
282
- $coutput .= $crow_end;
283
-
284
- // append
285
- $this->append_output( $coutput );
286
-
287
- break;
288
-
289
- case 'checkbox' :
290
-
291
- // prepare
292
- $coutput = $crow_start;
293
- $coutput .= '<label for="' . $cpkey . '" class="ujic-form-checkbox">' . "\n";
294
- $coutput .= '<input type="checkbox" class="ujic-cinput" name="' . $cpkey . '" id="' . $cpkey . '" ' . ( $cparam['std'] ? 'checked' : '' ) . ' />' . "\n";
295
- $coutput .= ' ' . $cparam['checkbox_text'] . '</label>' . "\n";
296
- $coutput .= $crow_end;
297
-
298
- // append
299
- $this->append_output( $coutput );
300
-
301
- break;
302
- }
303
- }
304
-
305
- // popup parent form row end
306
- $prow_end = '</ul>' . "\n"; // end .child-clone-row-form
307
- $prow_end .= '<a href="#" class="child-clone-row-remove">Remove</a>' . "\n";
308
- $prow_end .= '</div>' . "\n"; // end .child-clone-row
309
-
310
-
311
- $prow_end .= '</div>' . "\n"; // end .child-clone-rows
312
- $prow_end .= '</td>' . "\n";
313
- $prow_end .= '</tr>' . "\n";
314
- $prow_end .= '</tbody>' . "\n";
315
-
316
- // add $prow_end to output
317
- $this->append_output( $prow_end );
318
- }
319
- }
320
- }
321
-
322
- // --------------------------------------------------------------------------
323
-
324
- function append_output( $output )
325
- {
326
- $this->output = $this->output . "\n" . $output;
327
- }
328
-
329
- // --------------------------------------------------------------------------
330
-
331
- function reset_output( $output )
332
- {
333
- $this->output = '';
334
- }
335
-
336
- // --------------------------------------------------------------------------
337
-
338
- function append_error( $error )
339
- {
340
- $this->errors = $this->errors . "\n" . $error;
341
- }
342
- }
343
-
344
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/class-uji-countdown-admin.php CHANGED
@@ -1,7 +1,5 @@
1
  <?php
2
 
3
- defined( 'WPINC' ) || exit;
4
-
5
  require_once 'UjiSubscriptionsTable.php';
6
 
7
  class Uji_Countdown_Admin {
@@ -92,42 +90,53 @@ class Uji_Countdown_Admin {
92
 
93
  } else {
94
  //echo '<div class="ujic-create"><a href="?page=uji-countdown&tab=tab_ujic_new" class="button button-primary" id="ujic_table_new">' . __( 'Create a new timer style', $this->plugin_slug ) . '</a></div>';
95
- echo '<div id="ujic_new"><h1>Uji Countdown 2.0.3</h1><h4>The most customizable countdown plugin for Wordpress</h4>';
96
  echo '<a href="?page=uji-countdown&tab=tab_ujic_new" class="ujic_butnew" id="ujic_table_new">' . __( 'Add New Style', $this->plugin_slug ) . '</a>';
97
  echo '<div class="ujic_new_cnt"><h2>WHAT\'S NEW</h2>';
98
  echo '<ul>
 
 
 
 
 
 
99
  <li>
100
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-email.png">
101
  <h3>Email Subscription</h3>
102
  <p>Visitors have now the option to subscribe using the email subscription form</p>
103
- <p>You can create unlimited Campaigns</p>
 
 
 
 
 
104
  </li>
105
  <li>
106
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-custom.png">
107
  <h3>More Customization</h3>
108
  <p>Option to enable/disable the units of the time</p>
109
  <p>Option to change the label color and size</p>
110
  </li>
111
  <li>
112
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-glob.png">
113
- <h3>Multilanguage</h3>
114
  <p>This plugins come with translation capability. That means can be translated (aka localized) to other languages </p>
115
  <p>Quick translation for the units of time </p>
116
  </li>
117
  <li>
118
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-font.png">
119
  <h3>Google Fonts</h3>
120
  <p>Now support google fonts inclusion</p>
121
  </li>
122
  <li>
123
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-rtl.png">
124
  <h3>Right-To-Left (RTL)</h3>
125
- <p>Support Left to Right to Arabic Right to Left </p>
126
  </li>
127
  <li>
128
- <img alt="security shield" src="'.UJICOUNTDOWN_URL.'assets/images/icon-wp.png">
129
- <h3>WordPress 4.0</h3>
130
- <p>Fully supports WordPress 4.1, while maintaining compatibility through version 3.5+</p>
131
  </li>
132
  </ul>';
133
  echo '</div></div>';
1
  <?php
2
 
 
 
3
  require_once 'UjiSubscriptionsTable.php';
4
 
5
  class Uji_Countdown_Admin {
90
 
91
  } else {
92
  //echo '<div class="ujic-create"><a href="?page=uji-countdown&tab=tab_ujic_new" class="button button-primary" id="ujic_table_new">' . __( 'Create a new timer style', $this->plugin_slug ) . '</a></div>';
93
+ echo '<div id="ujic_new"><h1>Uji Countdown '.UJIC_VERS.'</h1><h4>The most customizable countdown plugin for Wordpress</h4>';
94
  echo '<a href="?page=uji-countdown&tab=tab_ujic_new" class="ujic_butnew" id="ujic_table_new">' . __( 'Add New Style', $this->plugin_slug ) . '</a>';
95
  echo '<div class="ujic_new_cnt"><h2>WHAT\'S NEW</h2>';
96
  echo '<ul>
97
+ <li>
98
+ <img alt="recurring time" src="'.UJICOUNTDOWN_URL.'assets/images/icon-rec.png">
99
+ <h3>Recurring Timer</h3>
100
+ <p>Introducing the recurring time option</p>
101
+ <p>Reschedule the countdown timer after the event has ended</p>
102
+ </li>
103
  <li>
104
+ <img alt="email subscription" src="'.UJICOUNTDOWN_URL.'assets/images/icon-email.png">
105
  <h3>Email Subscription</h3>
106
  <p>Visitors have now the option to subscribe using the email subscription form</p>
107
+ <p>Create unlimited Campaigns</p>
108
+ </li>
109
+ <li>
110
+ <img alt="responsive" src="'.UJICOUNTDOWN_URL.'assets/images/icon-mob.png">
111
+ <h3>Responsive (Premium Version)</h3>
112
+ <p>Responsive to all formats. You can use it on your PC, Laptop, Mobile and Tablet</p>
113
  </li>
114
  <li>
115
+ <img alt="more customization" src="'.UJICOUNTDOWN_URL.'assets/images/icon-custom.png">
116
  <h3>More Customization</h3>
117
  <p>Option to enable/disable the units of the time</p>
118
  <p>Option to change the label color and size</p>
119
  </li>
120
  <li>
121
+ <img alt="Multilanguage support" src="'.UJICOUNTDOWN_URL.'assets/images/icon-glob.png">
122
+ <h3>Multilanguage Support</h3>
123
  <p>This plugins come with translation capability. That means can be translated (aka localized) to other languages </p>
124
  <p>Quick translation for the units of time </p>
125
  </li>
126
  <li>
127
+ <img alt="google fonts" src="'.UJICOUNTDOWN_URL.'assets/images/icon-font.png">
128
  <h3>Google Fonts</h3>
129
  <p>Now support google fonts inclusion</p>
130
  </li>
131
  <li>
132
+ <img alt="rtl support" src="'.UJICOUNTDOWN_URL.'assets/images/icon-rtl.png">
133
  <h3>Right-To-Left (RTL)</h3>
134
+ <p>Support Left to Right to Arabic Right to Left </p>
135
  </li>
136
  <li>
137
+ <img alt="wordpress" src="'.UJICOUNTDOWN_URL.'assets/images/icon-wp.png">
138
+ <h3>WordPress 4.1.1</h3>
139
+ <p>Fully supports WordPress 4.1.1, while maintaining compatibility through version 3.5+</p>
140
  </li>
141
  </ul>';
142
  echo '</div></div>';
classes/class-uji-countdown-front.php CHANGED
@@ -8,8 +8,6 @@
8
  * Author: WPmanage <info@wpmanage.com>
9
  * Author URI: http://www.wpmanage.com
10
  */
11
- defined( 'ABSPATH' ) || exit;
12
-
13
 
14
  class UjiCountdown extends Uji_Countdown {
15
 
@@ -65,17 +63,61 @@ class UjiCountdown extends Uji_Countdown {
65
  'expire' => "",
66
  'hide' => "",
67
  'url' => "",
68
- 'subscr' => ""
 
 
 
69
  ), $atts ) );
70
  //Increment counters
71
  static $ujic_count = 0;
72
 
 
 
 
73
  $unx_time = strtotime( $expire . ":00" );
74
  $now_time = (int) current_time( 'timestamp' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
- if ( ($hide == "true" && $now_time > $unx_time) || $ujic_count > 0 ) {
 
77
  return $content;
 
78
  } else {
 
 
 
 
79
 
80
  //get all vars
81
  $get_vars = self::uji_vars();
@@ -84,9 +126,6 @@ class UjiCountdown extends Uji_Countdown {
84
  ${$nm} = $this->sel_ujic_db( $id, $var );
85
  }
86
 
87
-
88
-
89
-
90
  $ujic_id = 'ujiCountdown';
91
  $classh = !empty( $ujic_style ) ? ' ujic-' . $ujic_style : '';
92
  $hclass =!empty( $class ) ? ' ujic_' . $class . '' : '';
8
  * Author: WPmanage <info@wpmanage.com>
9
  * Author URI: http://www.wpmanage.com
10
  */
 
 
11
 
12
  class UjiCountdown extends Uji_Countdown {
13
 
63
  'expire' => "",
64
  'hide' => "",
65
  'url' => "",
66
+ 'subscr' => "",
67
+ 'recurring' => "",
68
+ 'rectype' => "",
69
+ 'repeats' => ""
70
  ), $atts ) );
71
  //Increment counters
72
  static $ujic_count = 0;
73
 
74
+ $rectime = false;
75
+
76
+ //2015/03/24 05:05
77
  $unx_time = strtotime( $expire . ":00" );
78
  $now_time = (int) current_time( 'timestamp' );
79
+
80
+ //Reccuring time
81
+ if( $rectype && $recurring && is_numeric( $recurring ) ){
82
+ //add multiple hour -> hours
83
+ $rectype = intval($recurring) > 1 ? $rectype.'s' : $rectype;
84
+
85
+ //Repeats
86
+ if( $repeats && intval($repeats) > 0 ){
87
+
88
+ //add time
89
+ for( $t=1; $t<=intval($repeats); $t++){
90
+ $ujictime = strtotime( '+' . ($recurring*$t) . ' ' . $rectype, $unx_time );
91
+ if( $now_time < $ujictime){
92
+ $rectime = true;
93
+ break;
94
+ }
95
+ }
96
+
97
+ }else{
98
+ //init time
99
+ $ujictime = strtotime( '+' . $recurring . ' ' . $rectype, $unx_time );
100
+ $t = 1;
101
+ //repeat unlimited times
102
+ while( $now_time > $ujictime){
103
+ $ujictime = strtotime( '+' . ($recurring*$t) . ' ' . $rectype, $unx_time );
104
+ $t++;
105
+ }
106
+ $rectime = true;
107
+ }
108
+
109
+ }
110
+ //End Reccuring
111
 
112
+ if ( ($hide == "true" && $now_time > $unx_time && !$rectime) || $ujic_count > 0 ) {
113
+
114
  return $content;
115
+
116
  } else {
117
+
118
+ //reccuring time
119
+ if($rectime)
120
+ $expire = date('Y/m/d H:i', $ujictime); //2015/03/24 05:05
121
 
122
  //get all vars
123
  $get_vars = self::uji_vars();
126
  ${$nm} = $this->sel_ujic_db( $id, $var );
127
  }
128
 
 
 
 
129
  $ujic_id = 'ujiCountdown';
130
  $classh = !empty( $ujic_style ) ? ' ujic-' . $ujic_style : '';
131
  $hclass =!empty( $class ) ? ' ujic_' . $class . '' : '';
classes/class-uji-countdown.php CHANGED
@@ -9,8 +9,6 @@
9
  * Author URI: http://www.wpmanage.com
10
  */
11
 
12
- defined( 'ABSPATH' ) || exit; // Exit if accessed directly
13
-
14
  class Uji_Countdown extends Uji_Countdown_Admin
15
  {
16
 
@@ -375,7 +373,7 @@ class Uji_Countdown extends Uji_Countdown_Admin
375
  unset( $options['ujic_name'], $options['ujic_style'], $options['submit_ujic'] );
376
  //insert to DB
377
  $wpdb->query( $wpdb->prepare( "INSERT INTO " . self::ujic_tab_name() . "(time, title, style, options )
378
- VALUES (utc_timestamp(), %s, %s, %s)", trim( $title ), trim( $style ), maybe_serialize( $options )
379
  ) );
380
  }
381
 
@@ -396,7 +394,7 @@ class Uji_Countdown extends Uji_Countdown_Admin
396
  $style = $options['ujic_style'];
397
  unset( $options['ujic_name'], $options['ujic_style'], $options['submit_ujic'], $options['cancel_ujic'] );
398
  //update DB
399
- $wpdb->query( $wpdb->prepare( "UPDATE " . self::ujic_tab_name() . " SET title=%s, style=%s, options=%s WHERE id=%d", trim( $title ), trim( $style ), maybe_serialize( $options ), $id
400
  ) );
401
  }
402
 
@@ -587,10 +585,11 @@ class Uji_Countdown extends Uji_Countdown_Admin
587
  if($screen->id != $this->plugin_screen_hook_suffix)
588
  return;
589
 
590
- if(empty($_GET['tab']) || ($_GET['tab'] !== 'tab_ujic_new' && $_GET['tab'] !== 'tab_ujic_news'))
591
  return;
592
-
593
- echo '<div class="error"><p>' . _('In order to avoid fake subscriptions we suggest to install <a target="_blank" href = "https://wordpress.org/plugins/goodbye-captcha/">GoodBye Captcha Plugin</a>') . '</p></div>';
 
594
  }
595
 
596
  /**
@@ -654,32 +653,21 @@ class Uji_Countdown extends Uji_Countdown_Admin
654
  include_once( UJICOUNTDOWN . 'views/admin.php' );
655
  }
656
 
657
- // ---------------------------------------------------------------------------------------------------
658
-
659
  /**
660
  * Shortcode Admin Init
661
  *
662
- * @since 2.0
663
  */
664
  public function ujic_shortcode_scripts() {
665
  $screen = get_current_screen();
666
  if ( $screen->base == 'post' ):
667
  // css
668
- wp_enqueue_style( 'ujic-jui', UJICOUNTDOWN_URL . 'assets/tinymce/css/jquery-ui.min.css' );
669
- wp_enqueue_style( 'ujic-popup', UJICOUNTDOWN_URL . 'assets/tinymce/css/popup.css', false, '1.0', 'all' );
670
 
671
  // js
672
  wp_enqueue_script( 'jquery-ui-sortable' );
673
  wp_enqueue_script( 'jquery-ui-datepicker' );
674
- wp_enqueue_script( 'jquery-livequery', UJICOUNTDOWN_URL . 'assets/tinymce/js/jquery.livequery.js', false, '1.1.1', false );
675
- wp_enqueue_script( 'jquery-appendo', UJICOUNTDOWN_URL . 'assets/tinymce/js/jquery.appendo.js', false, '1.0', false );
676
- wp_enqueue_script( 'base64', UJICOUNTDOWN_URL . 'assets/tinymce/js/base64.js', false, '1.0', false );
677
- if ( floatval( get_bloginfo( 'version' ) ) >= 3.9 ) {
678
- wp_enqueue_script( 'ujic-popup', UJICOUNTDOWN_URL . 'assets/tinymce/js/popup.js', false, '1.0', false );
679
- } else {
680
- wp_enqueue_script( 'ujic-popup', UJICOUNTDOWN_URL . 'assets/tinymce/js/popup.old.js', false, '1.0', false );
681
- //For older versions of WP
682
- }
683
 
684
  wp_localize_script( 'jquery', 'UjicShortcodes', array( 'plugin_folder' => UJICOUNTDOWN_URL ) );
685
 
@@ -687,33 +675,89 @@ class Uji_Countdown extends Uji_Countdown_Admin
687
  return;
688
 
689
  if ( get_user_option( 'rich_editing' ) == 'true' ) {
690
- add_filter( 'mce_external_plugins', array( &$this, 'add_rich_plugins' ) );
691
- add_filter( 'mce_buttons', array( &$this, 'register_rich_buttons' ) );
 
 
 
 
 
 
 
692
  }
693
  endif;
694
  }
695
 
696
- /**
697
- * Defins TinyMCE rich editor js plugin
698
- *
699
- * @return void
700
- */
701
- public function add_rich_plugins( $plugin_array ) {
702
- if ( floatval( get_bloginfo( 'version' ) ) >= 3.9 ) {
703
- $plugin_array['ujicShortcodes'] = UJICOUNTDOWN_URL . 'assets/tinymce/plugin.js';
704
- } else {
705
- $plugin_array['ujicShortcodes'] = UJICOUNTDOWN_URL . 'assets/tinymce/plugin.old.js'; // For old versions of WP
 
 
 
 
 
 
 
 
706
  }
707
- return $plugin_array;
708
  }
709
 
710
- /**
711
- * Adds TinyMCE rich editor buttons
712
- *
713
- * @return void
714
- */
715
- public function register_rich_buttons( $buttons ) {
716
- array_push( $buttons, "|", 'ujic_button' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
717
  return $buttons;
718
  }
719
 
@@ -736,11 +780,9 @@ class Uji_Countdown extends Uji_Countdown_Admin
736
  * @since 2.0
737
  */
738
  public function ujic_get_option( $name, $opt = 'ujic_set' ) {
739
-
740
  $vars = get_option($opt);
741
- if($name && isset($vars[$name]) && !empty($vars[$name]) ) {
742
- return $vars[$name];
743
- }
744
  else
745
  return false;
746
  }
9
  * Author URI: http://www.wpmanage.com
10
  */
11
 
 
 
12
  class Uji_Countdown extends Uji_Countdown_Admin
13
  {
14
 
373
  unset( $options['ujic_name'], $options['ujic_style'], $options['submit_ujic'] );
374
  //insert to DB
375
  $wpdb->query( $wpdb->prepare( "INSERT INTO " . self::ujic_tab_name() . "(time, title, style, options )
376
+ VALUES (utc_timestamp(), %s, %s, %s)",$title, trim( $style ), maybe_serialize( $options )
377
  ) );
378
  }
379
 
394
  $style = $options['ujic_style'];
395
  unset( $options['ujic_name'], $options['ujic_style'], $options['submit_ujic'], $options['cancel_ujic'] );
396
  //update DB
397
+ $wpdb->query( $wpdb->prepare( "UPDATE " . self::ujic_tab_name() . " SET title=%s, style=%s, options=%s WHERE id=%d", $title, trim( $style ), maybe_serialize( $options ), $id
398
  ) );
399
  }
400
 
585
  if($screen->id != $this->plugin_screen_hook_suffix)
586
  return;
587
 
588
+ if(empty($_GET['tab']) || $_GET['tab'] !== 'tab_ujic_news')
589
  return;
590
+
591
+ if(!isset($_GET['edit']))
592
+ echo '<div class="error"><p>' . _('In order to avoid fake subscriptions we suggest to install <a target="_blank" href = "https://wordpress.org/plugins/goodbye-captcha/">GoodBye Captcha Plugin</a>') . '</p></div>';
593
  }
594
 
595
  /**
653
  include_once( UJICOUNTDOWN . 'views/admin.php' );
654
  }
655
 
 
 
656
  /**
657
  * Shortcode Admin Init
658
  *
659
+ * @since 2.0.4
660
  */
661
  public function ujic_shortcode_scripts() {
662
  $screen = get_current_screen();
663
  if ( $screen->base == 'post' ):
664
  // css
665
+ wp_enqueue_style( 'ujic-popup-ui', UJICOUNTDOWN_URL . 'assets/css/jquery-ui.min.css', false, '1.0', 'all' );
666
+ wp_enqueue_style( 'ujic-popup', UJICOUNTDOWN_URL . 'assets/css/ujic-style.css', false, '1.0', 'all' );
667
 
668
  // js
669
  wp_enqueue_script( 'jquery-ui-sortable' );
670
  wp_enqueue_script( 'jquery-ui-datepicker' );
 
 
 
 
 
 
 
 
 
671
 
672
  wp_localize_script( 'jquery', 'UjicShortcodes', array( 'plugin_folder' => UJICOUNTDOWN_URL ) );
673
 
675
  return;
676
 
677
  if ( get_user_option( 'rich_editing' ) == 'true' ) {
678
+ wp_localize_script('editor', 'ujic_short_vars', array(
679
+ 'ujic_style' => $this->ujic_styles_get(),
680
+ 'ujic_hou' => $this->ujic_datetime_get(23),
681
+ 'ujic_min' => $this->ujic_datetime_get(59),
682
+ 'ujic_reclab' => $this->ujic_reclab_get()
683
+ ));
684
+
685
+ add_filter( 'mce_external_plugins', array( &$this, 'ujic_add_tinymce_plugin' ) );
686
+ add_filter( 'mce_buttons', array( &$this, 'ujic_register_my_tc_button' ) );
687
  }
688
  endif;
689
  }
690
 
691
+ /**
692
+ * get All Styles
693
+ *
694
+ * @since 2.0.4
695
+ */
696
+ public function ujic_styles_get() {
697
+ global $wpdb;
698
+ $ujic_styles = $wpdb->get_results("SELECT style, title FROM " . $wpdb->prefix . "uji_counter ORDER BY `time` DESC");
699
+ $ujic_sel = array();
700
+ if ( !empty($ujic_styles) ) {
701
+ $i = 0;
702
+ foreach ( $ujic_styles as $ujic ) {
703
+ $ujic_sel[$i]['text'] = $ujic->title . ' - ' . $ujic->style;
704
+ $ujic_sel[$i]['value'] = $ujic->title;
705
+ $i++;
706
+ }
707
+
708
+ return $ujic_sel;
709
  }
 
710
  }
711
 
712
+ /**
713
+ * TinyMCE get Data/Time
714
+ *
715
+ * @since 2.0.4
716
+ */
717
+ public function ujic_datetime_get($nr) {
718
+ $ujic_sel = array();
719
+ for ( $i = 0; $i <= $nr; $i++ ) {
720
+ $ujic_sel[$i]['text'] = $num[sprintf("%02s", $i)] = sprintf("%02s", $i);
721
+ $ujic_sel[$i]['value'] = $num[sprintf("%02s", $i)] = sprintf("%02s", $i);
722
+ }
723
+
724
+ return $ujic_sel;
725
+ }
726
+
727
+ /**
728
+ * TinyMCE get Unit Time labels
729
+ *
730
+ * @since 2.0.4
731
+ */
732
+ public function ujic_reclab_get() {
733
+ $tlab = array('second'=> 'Second(s)', 'minute'=> 'Minute(s)', 'hour'=> 'Hour(s)', 'day'=> 'Day(s)', 'week'=> 'Week(s)', 'month'=> 'Month(s)');
734
+ $i=0;
735
+ foreach ( $tlab as $v => $n ) {
736
+ $ujic_sel[$i]['text'] = $n;
737
+ $ujic_sel[$i]['value'] = $v;
738
+ $i++;
739
+ }
740
+
741
+ return $ujic_sel;
742
+ }
743
+
744
+ /**
745
+ * TinyMCE Plugin JS
746
+ *
747
+ * @since 2.0.4
748
+ */
749
+ public function ujic_add_tinymce_plugin( $plugin_array ) {
750
+ $plugin_array['ujic_tc_button'] = UJICOUNTDOWN_URL . 'assets/js/ujic-popup-button.js';
751
+ return $plugin_array;
752
+ }
753
+
754
+ /**
755
+ * Add TyniMCE Button
756
+ *
757
+ * @since 2.0.4
758
+ */
759
+ public function ujic_register_my_tc_button( $buttons ) {
760
+ array_push( $buttons, "ujic_tc_button" );
761
  return $buttons;
762
  }
763
 
780
  * @since 2.0
781
  */
782
  public function ujic_get_option( $name, $opt = 'ujic_set' ) {
 
783
  $vars = get_option($opt);
784
+ if($name && isset($vars[$name]) && !empty($vars[$name]) )
785
+ return $vars[$name];
 
786
  else
787
  return false;
788
  }
classes/class-uji-widget.php CHANGED
@@ -1,260 +1,302 @@
1
- <?php
2
- /**
3
- *
4
- * Plugin Name: Uji Countdown
5
- * Plugin URI: http://www.wpmanage.com/uji-countdown/
6
- * Description: HTML5 Countdown.
7
- * Version: 2.0
8
- * Author: WPmanage <info@wpmanage.com>
9
- * Author URI: http://www.wpmanage.com
10
- */
11
- if ( !defined( 'ABSPATH' ) )
12
- exit; // Exit if accessed directly
13
-
14
- class ujic_Widget extends WP_Widget {
15
-
16
- protected $plugin_slug = 'uji-countdown';
17
-
18
- /**
19
- * Uji Countdown Init
20
- *
21
- * @since 2.0
22
- *
23
- * @var string
24
- */
25
- public function ujic_Widget() {
26
- $widget_ops = array(
27
- 'classname' => 'uji_Widget',
28
- 'description' => 'Uji Countdown widget.'
29
- );
30
- $this->WP_Widget( 'uji_Widget', 'Uji Countdown', $widget_ops );
31
-
32
- //actions
33
- add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
34
- add_action( 'admin_enqueue_scripts', array( &$this, 'admin_widgets_scripts_styles' ) );
35
- }
36
-
37
- /**
38
- * Uji Countdown Admin Scripts
39
- *
40
- * @since 2.0
41
- *
42
- * @var string
43
- */
44
- public function admin_widgets_scripts_styles( $page ) {
45
- if ( $page !== 'widgets.php' )
46
- return;
47
-
48
- wp_enqueue_script( 'jquery-ui-datepicker' );
49
- wp_enqueue_style( 'jquery-ui', UJICOUNTDOWN_URL . 'assets/tinymce/css/jquery-ui.min.css' );
50
- wp_enqueue_script( 'jquery-widget', UJICOUNTDOWN_URL . 'assets/js/widget.js' );
51
- }
52
-
53
- /**
54
- * Uji Countdown Form
55
- *
56
- * @since 2.0
57
- *
58
- * @var string
59
- */
60
- public function ujic_forms( $sel = NULL ) {
61
- global $wpdb;
62
- $table_name = $wpdb->prefix . "uji_counter";
63
- $ujic_datas = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY `time` DESC" );
64
- if ( !empty( $ujic_datas ) ) {
65
- $ujictab = false;
66
- foreach ( $ujic_datas as $ujic ) {
67
- $type = !empty( $ujic->style ) ? $ujic->style : "classic";
68
- $select = (isset( $sel ) && !empty( $sel ) && $sel == $ujic->title ) ? ' selected="selected"' : '';
69
- $ujictab .='<option value="' . $ujic->title . '" data-type=' . $type . ' ' . $select . '> ' . $ujic->title . ' - ' . $type . ' </option>';
70
- }
71
- return $ujictab;
72
- } else {
73
- return false;
74
- }
75
- }
76
-
77
- /**
78
- * Uji Countdown Get Time/Date
79
- *
80
- * @since 2.0
81
- *
82
- * @var string
83
- */
84
- public function ujic_sel_datetime( $nr, $sel = null ) {
85
- for ( $i = 0; $i <= $nr; $i++ ) {
86
- $num[sprintf( "%02s", $i )] = sprintf( "%02s", $i );
87
- }
88
- $numbers = false;
89
- foreach ( $num as $n ) {
90
- $select = (isset( $sel ) && !empty( $sel ) && $sel == $n) ? ' selected="selected"' : '';
91
- $numbers .='<option value="' . $n . '"' . $select . '> ' . $n . ' </option>';
92
- }
93
-
94
- return $numbers;
95
- }
96
-
97
- /**
98
- * Uji Countdown Widget
99
- *
100
- * @since 2.0
101
- *
102
- * @var string
103
- */
104
- public function widget( $args, $instance ) {
105
- extract( $args, EXTR_SKIP );
106
-
107
- /* Our variables from the widget settings. */
108
- $title = apply_filters( 'widget_UJI_title', $instance['UJI_title'], $instance, $this->id_base );
109
- $name = isset( $instance['UJI_style'] ) ? $instance['UJI_style'] : false;
110
- $date = isset( $instance['UJI_date'] ) ? $instance['UJI_date'] : false;
111
- $hour = isset( $instance['UJI_hours'] ) ? $instance['UJI_hours'] : false;
112
- $minut = isset( $instance['UJI_minutes'] ) ? $instance['UJI_minutes'] : false;
113
- $hide = isset( $instance['UJI_hide'] ) ? $instance['UJI_hide'] : false;
114
- $url = isset( $instance['UJI_url'] ) ? $instance['UJI_url'] : false;
115
- $subscr = isset( $instance['UJI_subscr'] ) ? $instance['UJI_subscr'] : false;
116
-
117
- $shtval = '';
118
- $shtval .= (!empty( $name ) ) ? ' id="' . $name . '"' : $shtval;
119
- $shtval .= (!empty( $date ) ) ? ' expire="' . $date . ' ' . $hour . ':' . $minut . '"' : $shtval;
120
- $shtval .= (!empty( $hide ) ) ? ' hide = "true"' : $shtval;
121
- $shtval .= ( empty( $hide ) && !empty( $url ) ) ? ' url = "' . $url . '"' : $shtval;
122
- $shtval .= ( empty( $subscr ) ) ? ' subscr = "' . trim($subscr) . '"' : $shtval;
123
-
124
- $shortcode = (!empty( $shtval ) ) ? '[ujicountdown' . $shtval . ']' : '';
125
-
126
- if ( !empty( $shortcode ) ) {
127
- echo $before_widget;
128
- if ( $title )
129
- echo $before_title . $title . $after_title;
130
- echo do_shortcode( $shortcode );
131
- echo $after_widget;
132
- }
133
- }
134
-
135
- /**
136
- * Uji Countdown Update
137
- *
138
- * @since 2.0
139
- *
140
- * @var string
141
- */
142
- public function update( $new_instance, $old_instance ) {
143
- $instance = $old_instance;
144
- $instance['UJI_title'] = strip_tags( $new_instance['UJI_title'] );
145
- $instance['UJI_style'] = strip_tags( $new_instance['UJI_style'] );
146
- $instance['UJI_date'] = strip_tags( $new_instance['UJI_date'] );
147
- $instance['UJI_hours'] = strip_tags( $new_instance['UJI_hours'] );
148
- $instance['UJI_minutes'] = strip_tags( $new_instance['UJI_minutes'] );
149
- $instance['UJI_hide'] = strip_tags( $new_instance['UJI_hide'] );
150
- $instance['UJI_url'] = strip_tags( $new_instance['UJI_url'] );
151
- $instance['UJI_subscr'] = strip_tags( $new_instance['UJI_subscr'] );
152
-
153
- return $instance;
154
- }
155
-
156
- /**
157
- * Uji Countdown Form
158
- *
159
- * @since 2.0
160
- *
161
- * @var string
162
- */
163
- public function form( $instance ) {
164
-
165
- $defaults = array(
166
- 'UJI_title' => '',
167
- 'UJI_style' => false,
168
- 'UJI_date' => '',
169
- 'UJI_hours' => 23,
170
- 'UJI_minutes' => 59,
171
- 'UJI_hide' => '',
172
- 'UJI_url' => '',
173
- 'UJI_subscr' => ''
174
- );
175
-
176
- $instance = wp_parse_args( (array) $instance, $defaults );
177
- ?>
178
- <p style="font-size:11px">
179
- Only one timer on page is allowed. <br>Check the <a href="http://wpmanage.com/uji-countdown" target="_blank">Premium version</a> for multiple countdown timers on the same page.
180
- <p>
181
- <!-- Widget Title: Text Input -->
182
- <p>
183
- <label for="<?php echo $this->get_field_id( 'UJI_title' ); ?>"><?php _e( 'Title (optional):', $this->plugin_slug ); ?></label>
184
- <input type="text" name="<?php echo $this->get_field_name( 'UJI_title' ); ?>" value="<?php echo $instance['UJI_title']; ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_title' ); ?>" />
185
- </p>
186
-
187
- <!-- Widget Select Style: Select Input -->
188
- <p>
189
-
190
- <?php if ( $this->ujic_forms() ): ?>
191
-
192
- <label for="<?php echo $this->get_field_id( 'UJI_style' ); ?>"><?php _e( 'Select a Style:', $this->plugin_slug ); ?></label>
193
- <select name="<?php echo $this->get_field_name( 'UJI_style' ); ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_style' ); ?>">
194
- <?php
195
- echo $this->ujic_forms( $instance['UJI_style'] );
196
- ?>
197
- </select>
198
-
199
- <?php else: ?>
200
-
201
- <h4 style="color: firebrick"><?php _e( 'Please create new timer style first.', $this->plugin_slug ); ?></h4>
202
-
203
- <?php endif; ?>
204
-
205
- </p>
206
-
207
- <!-- Widget Date: Text Input -->
208
- <p>
209
- <label for="<?php echo $this->get_field_id( 'UJI_date' ); ?>"><?php _e( 'Expire Date:', $this->plugin_slug ); ?></label>
210
- <input type="text" name="<?php echo $this->get_field_name( 'UJI_date' ); ?>" value="<?php echo $instance['UJI_date']; ?>" style="background: url('<?php echo UJICOUNTDOWN_URL ?>/assets/tinymce/images/data-picker.png') no-repeat scroll right top; display:block; height: 26px; width: 180px;" class="widefat ujic_date" id="<?php echo $this->get_field_id( 'UJI_date' ); ?>" />
211
- </p>
212
-
213
- <!-- Widget Select Time: Select Input -->
214
- <p>
215
- <label><?php _e( 'Select the Time:', $this->plugin_slug ); ?></label>
216
- <div style="display: block;">
217
- <div style="display: inline-block; margin: 0 5px 0 5px">
218
- <h4 style="margin:0"><?php _e( 'Hour:', $this->plugin_slug ); ?> </h4>
219
- <select name="<?php echo $this->get_field_name( 'UJI_hours' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_hours' ); ?>">
220
- <?php
221
- echo $this->ujic_sel_datetime( 23, $instance['UJI_hours'] );
222
- ?>
223
- </select>
224
- </div>
225
- :
226
- <div style="display: inline-block; margin: 0 5px 0 5px">
227
- <h4 style="margin:0"><?php _e( 'Minute:', $this->plugin_slug ); ?> </h4>
228
- <select name="<?php echo $this->get_field_name( 'UJI_minutes' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_minutes' ); ?>">
229
- <?php
230
- echo $this->ujic_sel_datetime( 59, $instance['UJI_minutes'] );
231
- ?>
232
- </select>
233
- </div>
234
- </div>
235
- </p>
236
- <h4><?php _e( 'After Expiry:', $this->plugin_slug ); ?> </h4>
237
- <!-- Widget Hide: Checkbox Input -->
238
- <p>
239
- <label for="<?php echo $this->get_field_id( 'UJI_hide' ); ?>"><?php _e( 'Hide Countdown:', $this->plugin_slug ); ?></label>
240
- <input class="ujic_exp" id="<?php echo $this->get_field_id( 'UJI_hide' ); ?>" name="<?php echo $this->get_field_name( 'UJI_hide' ); ?>" type="checkbox" value="hide" <?php checked( $instance['UJI_hide'], 'hide' ) ?> />
241
- </p>
242
-
243
- <!-- Widget Go to Link: Select Input -->
244
- <p>
245
- <label for="<?php echo $this->get_field_id( 'UJI_url' ); ?>"><?php _e( 'Or go to this link:', $this->plugin_slug ); ?></label><br />
246
- <small><?php _e( 'Select URL to send after expire', $this->plugin_slug ); ?></small>
247
- <input class="widefat ujic_link" id="<?php echo $this->get_field_id( 'UJI_url' ); ?>" name="<?php echo $this->get_field_name( 'UJI_url' ); ?>" type="text" value="<?php echo $instance['UJI_url']; ?>" />
248
- </p>
249
-
250
- <!-- Widget Campaign name -->
251
- <p>
252
- <label for="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>"><?php _e( 'Campaign Name:', $this->plugin_slug ); ?></label><br />
253
- <input class="widefat ujic_subscr" id="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>" name="<?php echo $this->get_field_name( 'UJI_subscr' ); ?>" type="text" value="<?php echo $instance['UJI_subscr']; ?>" />
254
- </p>
255
-
256
- <?php
257
- }
258
-
259
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  ?>
1
+ <?php
2
+ /**
3
+ *
4
+ * Plugin Name: Uji Countdown Premium 2.0
5
+ * Plugin URI: http://www.wpmanage.com/uji-countdown/
6
+ * Description: HTML5 Countdown.
7
+ * Version: 2.0
8
+ * Author: WPmanage <info@wpmanage.com>
9
+ * Author URI: http://www.wpmanage.com
10
+ */
11
+
12
+ class ujic_Widget extends WP_Widget {
13
+
14
+ protected $plugin_slug = 'uji-countdown';
15
+
16
+ /**
17
+ * Uji Countdown Init
18
+ *
19
+ * @since 2.0
20
+ *
21
+ * @var string
22
+ */
23
+ public function ujic_Widget() {
24
+ $widget_ops = array(
25
+ 'classname' => 'uji_Widget',
26
+ 'description' => 'Uji Countdown widget.'
27
+ );
28
+ $this->WP_Widget( 'uji_Widget', 'Uji Countdown', $widget_ops );
29
+
30
+ //actions
31
+ add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
32
+ add_action( 'admin_enqueue_scripts', array( &$this, 'admin_widgets_scripts_styles' ) );
33
+ }
34
+
35
+ /**
36
+ * Uji Countdown Admin Scripts
37
+ *
38
+ * @since 2.0
39
+ *
40
+ * @var string
41
+ */
42
+ public function admin_widgets_scripts_styles( $page ) {
43
+ if ( $page !== 'widgets.php' )
44
+ return;
45
+
46
+ wp_enqueue_script( 'jquery-ui-datepicker' );
47
+ wp_enqueue_style( 'jquery-ui', UJICOUNTDOWN_URL . 'assets/css/jquery-ui.min.css' );
48
+ wp_enqueue_script( 'jquery-widget', UJICOUNTDOWN_URL . 'assets/js/widget.js' );
49
+ }
50
+
51
+ /**
52
+ * Uji Countdown Form
53
+ *
54
+ * @since 2.0
55
+ *
56
+ * @var string
57
+ */
58
+ public function ujic_forms( $sel = NULL ) {
59
+ global $wpdb;
60
+ $table_name = $wpdb->prefix . "uji_counter";
61
+ $ujic_datas = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY `time` DESC" );
62
+ if ( !empty( $ujic_datas ) ) {
63
+ $ujictab = false;
64
+ foreach ( $ujic_datas as $ujic ) {
65
+ $type = !empty( $ujic->style ) ? $ujic->style : "classic";
66
+ $select = (isset( $sel ) && !empty( $sel ) && $sel == $ujic->title ) ? ' selected="selected"' : '';
67
+ $ujictab .='<option value="' . $ujic->title . '" data-type=' . $type . ' ' . $select . '> ' . $ujic->title . ' - ' . $type . ' </option>';
68
+ }
69
+ return $ujictab;
70
+ } else {
71
+ return false;
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Uji Countdown Time select
77
+ *
78
+ * @since 2.0.4
79
+ *
80
+ * @var string
81
+ */
82
+ public function ujic_times( $sel = NULL ) {
83
+ $times = array('second'=> 'Second(s)', 'minute'=> 'Minute(s)', 'hour'=> 'Hour(s)', 'day'=> 'Day(s)', 'week'=> 'Week(s)', 'month'=> 'Month(s)');
84
+
85
+ foreach ( $times as $value => $option ) {
86
+ $select = (isset( $sel ) && !empty( $sel ) && $sel == $value ) ? ' selected="selected"' : '';
87
+ $output .= '<option value="' . $value . '" ' . $select . '>' . $option . '</option>' . "\n";
88
+ }
89
+
90
+ return $output;
91
+ }
92
+ /**
93
+ * Uji Countdown Get Time/Date
94
+ *
95
+ * @since 2.0
96
+ *
97
+ * @var string
98
+ */
99
+ public function ujic_sel_datetime( $nr, $sel = null ) {
100
+ for ( $i = 0; $i <= $nr; $i++ ) {
101
+ $num[sprintf( "%02s", $i )] = sprintf( "%02s", $i );
102
+ }
103
+ $numbers = false;
104
+ foreach ( $num as $n ) {
105
+ $select = (isset( $sel ) && !empty( $sel ) && $sel == $n) ? ' selected="selected"' : '';
106
+ $numbers .='<option value="' . $n . '"' . $select . '> ' . $n . ' </option>';
107
+ }
108
+
109
+ return $numbers;
110
+ }
111
+
112
+ /**
113
+ * Uji Countdown Widget
114
+ *
115
+ * @since 2.0
116
+ *
117
+ * @var string
118
+ */
119
+ public function widget( $args, $instance ) {
120
+ extract( $args, EXTR_SKIP );
121
+
122
+ /* Our variables from the widget settings. */
123
+ $title = apply_filters( 'widget_UJI_title', $instance['UJI_title'], $instance, $this->id_base );
124
+ $name = isset( $instance['UJI_style'] ) ? $instance['UJI_style'] : false;
125
+ $date = isset( $instance['UJI_date'] ) ? $instance['UJI_date'] : false;
126
+ $hour = isset( $instance['UJI_hours'] ) ? $instance['UJI_hours'] : false;
127
+ $minut = isset( $instance['UJI_minutes'] ) ? $instance['UJI_minutes'] : false;
128
+ $hide = isset( $instance['UJI_hide'] ) ? $instance['UJI_hide'] : false;
129
+ $url = isset( $instance['UJI_url'] ) ? $instance['UJI_url'] : false;
130
+ $subscr = isset( $instance['UJI_subscr'] ) ? $instance['UJI_subscr'] : false;
131
+ $recurr = isset( $instance['UJI_recurring'] ) ? $instance['UJI_recurring'] : false;
132
+ $rectyp = isset( $instance['UJI_rectype'] ) ? $instance['UJI_rectype'] : false;
133
+ $repeat = isset( $instance['UJI_repeats'] ) ? $instance['UJI_repeats'] : false;
134
+
135
+ $shtval = '';
136
+ $shtval .= (!empty( $name ) ) ? ' id="' . $name . '"' : '';
137
+ $shtval .= (!empty( $date ) ) ? ' expire="' . $date . ' ' . $hour . ':' . $minut . '"' : '';
138
+ $shtval .= (!empty( $hide ) ) ? ' hide = "true"' : '';
139
+ $shtval .= (!empty( $url ) ) ? ' url = "' . $url . '"' : '';
140
+ $shtval .= (!empty( $subscr ) ) ? ' subscr = "' . trim($subscr) . '"' : '';
141
+ $shtval .= (!empty( $recurr ) ) ? ' recurring = "' . trim($recurr) . '"' : '';
142
+ $shtval .= (!empty( $rectyp ) ) ? ' rectype = "' . trim($rectyp) . '"' : '';
143
+ $shtval .= (!empty( $repeat ) ) ? ' repeats = "' . trim($repeat) . '"' : '';
144
+
145
+ $shortcode = (!empty( $shtval ) ) ? '[ujicountdown' . $shtval . ']' : '';
146
+
147
+
148
+ if ( !empty( $shortcode ) ) {
149
+ echo $before_widget;
150
+ if ( $title )
151
+ echo $before_title . $title . $after_title;
152
+ echo do_shortcode( $shortcode );
153
+ echo $after_widget;
154
+ }
155
+ }
156
+
157
+ /**
158
+ * Uji Countdown Update
159
+ *
160
+ * @since 2.0
161
+ *
162
+ * @var string
163
+ */
164
+ public function update( $new_instance, $old_instance ) {
165
+ $instance = $old_instance;
166
+ $instance['UJI_title'] = strip_tags( $new_instance['UJI_title'] );
167
+ $instance['UJI_style'] = strip_tags( $new_instance['UJI_style'] );
168
+ $instance['UJI_date'] = strip_tags( $new_instance['UJI_date'] );
169
+ $instance['UJI_hours'] = strip_tags( $new_instance['UJI_hours'] );
170
+ $instance['UJI_minutes'] = strip_tags( $new_instance['UJI_minutes'] );
171
+ $instance['UJI_hide'] = strip_tags( $new_instance['UJI_hide'] );
172
+ $instance['UJI_url'] = strip_tags( $new_instance['UJI_url'] );
173
+ $instance['UJI_subscr'] = strip_tags( $new_instance['UJI_subscr'] );
174
+ $instance['UJI_recurring'] = strip_tags( $new_instance['UJI_recurring'] );
175
+ $instance['UJI_rectype'] = strip_tags( $new_instance['UJI_rectype'] );
176
+ $instance['UJI_repeats'] = strip_tags( $new_instance['UJI_repeats'] );
177
+
178
+ return $instance;
179
+ }
180
+
181
+ /**
182
+ * Uji Countdown Form
183
+ *
184
+ * @since 2.0
185
+ *
186
+ * @var string
187
+ */
188
+ public function form( $instance ) {
189
+
190
+ $defaults = array(
191
+ 'UJI_title' => '',
192
+ 'UJI_style' => false,
193
+ 'UJI_date' => '',
194
+ 'UJI_hours' => 23,
195
+ 'UJI_minutes' => 59,
196
+ 'UJI_hide' => '',
197
+ 'UJI_url' => '',
198
+ 'UJI_subscr' => '',
199
+ 'UJI_recurring' => '',
200
+ 'UJI_rectype' => '',
201
+ 'UJI_repeats' => ''
202
+ );
203
+
204
+ $instance = wp_parse_args( (array) $instance, $defaults );
205
+ ?>
206
+ <!-- Widget Title: Text Input -->
207
+ <p>
208
+ <label for="<?php echo $this->get_field_id( 'UJI_title' ); ?>"><?php _e( 'Title (optional):', $this->plugin_slug ); ?></label>
209
+ <input type="text" name="<?php echo $this->get_field_name( 'UJI_title' ); ?>" value="<?php echo $instance['UJI_title']; ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_title' ); ?>" />
210
+ </p>
211
+
212
+ <!-- Widget Select Style: Select Input -->
213
+ <p>
214
+
215
+ <?php if ( $this->ujic_forms() ): ?>
216
+
217
+ <label for="<?php echo $this->get_field_id( 'UJI_style' ); ?>"><?php _e( 'Select a Style:', $this->plugin_slug ); ?></label>
218
+ <select name="<?php echo $this->get_field_name( 'UJI_style' ); ?>" class="widefat" id="<?php echo $this->get_field_id( 'UJI_style' ); ?>">
219
+ <?php
220
+ echo $this->ujic_forms( $instance['UJI_style'] );
221
+ ?>
222
+ </select>
223
+
224
+ <?php else: ?>
225
+
226
+ <h4 style="color: firebrick"><?php _e( 'Please create new timer style first.', $this->plugin_slug ); ?></h4>
227
+
228
+ <?php endif; ?>
229
+
230
+ </p>
231
+
232
+ <!-- Widget Date: Text Input -->
233
+ <p>
234
+ <label for="<?php echo $this->get_field_id( 'UJI_date' ); ?>"><?php _e( 'Expire Date:', $this->plugin_slug ); ?></label>
235
+ <input type="text" name="<?php echo $this->get_field_name( 'UJI_date' ); ?>" value="<?php echo $instance['UJI_date']; ?>" style="background: url('<?php echo UJICOUNTDOWN_URL ?>/assets/tinymce/images/data-picker.png') no-repeat scroll right top; display:block; height: 26px; width: 180px;" class="widefat ujic_date" id="<?php echo $this->get_field_id( 'UJI_date' ); ?>" />
236
+ </p>
237
+
238
+ <!-- Widget Select Time: Select Input -->
239
+ <p>
240
+ <label><?php _e( 'Select the Time:', $this->plugin_slug ); ?></label>
241
+ <div style="display: block;">
242
+ <div style="display: inline-block; margin: 0 5px 0 5px">
243
+ <h4 style="margin:0"><?php _e( 'Hour:', $this->plugin_slug ); ?> </h4>
244
+ <select name="<?php echo $this->get_field_name( 'UJI_hours' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_hours' ); ?>">
245
+ <?php
246
+ echo $this->ujic_sel_datetime( 23, $instance['UJI_hours'] );
247
+ ?>
248
+ </select>
249
+ </div>
250
+ :
251
+ <div style="display: inline-block; margin: 0 5px 0 5px">
252
+ <h4 style="margin:0"><?php _e( 'Minute:', $this->plugin_slug ); ?> </h4>
253
+ <select name="<?php echo $this->get_field_name( 'UJI_minutes' ); ?>" style="width:50px;" id="<?php echo $this->get_field_id( 'UJI_minutes' ); ?>">
254
+ <?php
255
+ echo $this->ujic_sel_datetime( 59, $instance['UJI_minutes'] );
256
+ ?>
257
+ </select>
258
+ </div>
259
+ </div>
260
+ </p>
261
+ <h4><?php _e( 'After Expiry:', $this->plugin_slug ); ?> </h4>
262
+ <!-- Widget Hide: Checkbox Input -->
263
+ <p>
264
+ <label for="<?php echo $this->get_field_id( 'UJI_hide' ); ?>"><?php _e( 'Hide Countdown:', $this->plugin_slug ); ?></label>
265
+ <input class="ujic_exp" id="<?php echo $this->get_field_id( 'UJI_hide' ); ?>" name="<?php echo $this->get_field_name( 'UJI_hide' ); ?>" type="checkbox" value="hide" <?php checked( $instance['UJI_hide'], 'hide' ) ?> />
266
+ </p>
267
+
268
+ <!-- Widget Go to Link: Select Input -->
269
+ <p>
270
+ <label for="<?php echo $this->get_field_id( 'UJI_url' ); ?>"><?php _e( 'Or go to this link:', $this->plugin_slug ); ?></label><br />
271
+ <small><?php _e( 'Select URL to send after expire', $this->plugin_slug ); ?></small>
272
+ <input class="widefat ujic_link" id="<?php echo $this->get_field_id( 'UJI_url' ); ?>" name="<?php echo $this->get_field_name( 'UJI_url' ); ?>" type="text" value="<?php echo $instance['UJI_url']; ?>" />
273
+ </p>
274
+
275
+ <!-- Widget Select Reccuring Time -->
276
+ <h4><?php _e( 'Reccuring Time:', $this->plugin_slug ); ?> </h4>
277
+
278
+ <p style="display:block; float: none;">
279
+ <span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;">Every: </span><input class="small-text" style="float:left; padding: 3px 5px;" id="<?php echo $this->get_field_id( 'UJI_recurring' ); ?>" name="<?php echo $this->get_field_name( 'UJI_recurring' ); ?>" type="text" value="<?php echo $instance['UJI_recurring']; ?>" />
280
+ <select name="<?php echo $this->get_field_name( 'UJI_rectype' ); ?>" id="<?php echo $this->get_field_id( 'UJI_rectype' ); ?>">
281
+ <?php
282
+ echo $this->ujic_times($instance['UJI_rectype']);
283
+ ?>
284
+ </select>
285
+ <div style="display:block; float: none;">
286
+ <span style="float:left; display: block; line-height: 28px; min-width: 55px; margin-right: 4px;">Repeats: </span><input class="small-text" style="float:left; padding: 3px 5px;" id="<?php echo $this->get_field_id( 'UJI_repeats' ); ?>" name="<?php echo $this->get_field_name( 'UJI_repeats' ); ?>" type="text" value="<?php echo $instance['UJI_repeats']; ?>" />
287
+ <span style="display: inline-block; line-height: 28px; margin-left: 4px;"> leave it empty for unlimited </span>
288
+ </div>
289
+ </p>
290
+
291
+ <!-- Widget Campaign name -->
292
+ <h4><?php _e( 'Subscription:', $this->plugin_slug ); ?> </h4>
293
+ <p>
294
+ <label for="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>"><?php _e( 'Campaign Name:', $this->plugin_slug ); ?></label><br />
295
+ <input class="widefat ujic_subscr" id="<?php echo $this->get_field_id( 'UJI_subscr' ); ?>" name="<?php echo $this->get_field_name( 'UJI_subscr' ); ?>" type="text" value="<?php echo $instance['UJI_subscr']; ?>" />
296
+ </p>
297
+
298
+ <?php
299
+ }
300
+
301
+ }
302
  ?>
css/uji-countdown.css CHANGED
@@ -16,7 +16,7 @@
16
  .ujic-classic span.countdown_amount {
17
  display: inline-block;
18
  color: #fff;
19
- padding: 5px;
20
  margin-right: 2px;
21
 
22
  font: 35px/1.5 'Open Sans Condensed',sans-serif;
16
  .ujic-classic span.countdown_amount {
17
  display: inline-block;
18
  color: #fff;
19
+ padding: 5px 8px;
20
  margin-right: 2px;
21
 
22
  font: 35px/1.5 'Open Sans Condensed',sans-serif;
js/uji-countdown.js CHANGED
@@ -1 +1 @@
1
- (function(e){"use strict";e(function(){function Y(){var e=null;if(V){return false}else{e=new Date(z);var t=new Date(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds());e=t;return e}}var t="ujiCount";var n=window[t];var r=n.uji_style;var i=n.uji_plugin;var s=n.ujic_id;var o=n.expire;var u=n.exp_days;var a=n.Years;var f=n.Months;var l=n.Weeks;var c=n.Days;var h=n.Hours;var p=n.Minutes;var d=n.Seconds;var v=n.Year;var m=n.Month;var g=n.Week;var y=n.Day;var b=n.Hour;var w=n.Minute;var E=n.Second;var S=n.ujic_txt_size;var x=n.ujic_col_dw;var T=n.ujic_col_up;var N=n.ujic_col_txt;var C=n.ujic_col_sw;var k=n.ujic_col_lab;var L=n.ujic_lab_sz;var A=n.ujic_y;var O=n.ujic_o;var M=n.ujic_w;var _=n.ujic_d;var D=n.ujic_h;var P=n.ujic_m;var H=n.ujic_s;var B=n.ujic_thick;var j=n.ujic_txt=="true"?true:false;var F=n.ujic_ani=="true"?true:false;var I="http://";var q=n.ujic_url?n.ujic_url.substr(0,I.length)!==I?I+n.ujic_url:n.ujic_url:"";var R=n.ujic_goof;var U=n.uji_center;var z=n.uji_time;var W=n.uji_hide;var X=n.ujic_rtl=="true"?true:false;var V=n.uji_utime=="true"?true:false;var J=new Date(""+o+"");var K="";K+=A=="true"?"Y":"";K+=O=="true"?"O":"";K+=M=="true"?"W":"";K+=_=="true"?"D":"";K+=D=="true"?"H":"";K+=P=="true"?"M":"";K+=H=="true"?"S":"";var Q=[];if(A=="true")Q.push("uji_year");if(O=="true")Q.push("uji_mont");if(M=="true")Q.push("uji_week");if(_=="true")Q.push("uji_days");if(D=="true")Q.push("uji_hour");if(P=="true")Q.push("uji_minu");if(H=="true")Q.push("uji_secu");e.countdown.regionalOptions["uji"]={labels:[""+a+"",""+f+"",""+l+"",""+c+"",""+h+"",""+p+"",""+d+""],labels1:[""+v+"",""+m+"",""+g+"",""+y+"",""+b+"",""+w+"",""+E+""],compactLabels:["A","L","S","Z"],format:K,whichLabels:null,timeSeparator:":",isRTL:false};e.countdown.setDefaults(e.countdown.regionalOptions["uji"]);if(R){var G=R.replace(/\s+/g,"+");e("head").append('<link href="http://fonts.googleapis.com/css?family='+G+'" rel="stylesheet" type="text/css">')}e("#ujiCountdown").countdown({until:J,ujic_id:""+s+"",serverSync:Y,isRTL:X,text_size:""+S+"",color_down:""+x+"",color_up:""+T+"",color_txt:""+N+"",color_sw:""+C+"",color_lab:""+k+"",lab_sz:""+L+"",ujic_txt:j,animate_sec:F,ujic_hide:W,expiryUrl:q,ujic_goof:""+R+""})})})(jQuery)
1
+ !function(u){"use strict";u(function(){function e(){var u=null;u=new Date(E);var e=new Date(u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate(),u.getUTCHours(),u.getUTCMinutes(),u.getUTCSeconds());return u=e}var t=window.ujiCount,i=(t.uji_style,t.uji_plugin,"ujiCountdown"),c=t.expire,r=(t.exp_days,t.Years),o=t.Months,_=t.Weeks,s=t.Days,n=t.Hours,l=t.Minutes,j=t.Seconds,a=t.Year,p=t.Month,h=t.Week,d=t.Day,w=t.Hour,g=t.Minute,y=t.Second,f=t.ujic_txt_size,x=t.ujic_col_dw,m=t.ujic_col_up,b=t.ujic_col_txt,C=t.ujic_col_sw,D=t.ujic_col_lab,T=t.ujic_lab_sz,M=t.ujic_y,S=t.ujic_o,U=t.ujic_w,v=t.ujic_d,k=t.ujic_h,L=t.ujic_m,z=t.ujic_s,H=(t.ujic_thick,"true"==t.ujic_txt?!0:!1),Y="true"==t.ujic_ani?!0:!1,O="http://",W=t.ujic_url?t.ujic_url.substr(0,O.length)!==O?O+t.ujic_url:t.ujic_url:"",R=""!=W?!0:!1,A=t.ujic_goof,E=(t.uji_center,t.uji_time),F=t.uji_hide,Q="true"==t.ujic_rtl?!0:!1,Z=new Date(""+c),q="";q+="true"==M?"Y":"",q+="true"==S?"O":"",q+="true"==U?"W":"",q+="true"==v?"D":"",q+="true"==k?"H":"",q+="true"==L?"M":"",q+="true"==z?"S":"";var B=[];if("true"==M&&B.push("uji_year"),"true"==S&&B.push("uji_mont"),"true"==U&&B.push("uji_week"),"true"==v&&B.push("uji_days"),"true"==k&&B.push("uji_hour"),"true"==L&&B.push("uji_minu"),"true"==z&&B.push("uji_secu"),u.countdown.regionalOptions.uji={labels:[""+r,""+o,""+_,""+s,""+n,""+l,""+j],labels1:[""+a,""+p,""+h,""+d,""+w,""+g,""+y],compactLabels:["A","L","S","Z"],format:q,whichLabels:null,timeSeparator:":",isRTL:!1},u.countdown.setDefaults(u.countdown.regionalOptions.uji),A){var G=A.replace(/\s+/g,"+");u("head").append('<link href="http://fonts.googleapis.com/css?family='+G+'" rel="stylesheet" type="text/css">')}u("#"+i).countdown({until:Z,ujic_id:""+i,serverSync:e,isRTL:Q,text_size:""+f,color_down:""+x,color_up:""+m,color_txt:""+b,color_sw:""+C,color_lab:""+D,lab_sz:""+T,ujic_txt:H,animate_sec:Y,ujic_hide:F,alwaysExpire:R,expiryUrl:W,ujic_goof:""+A})})}(jQuery);
ujicountdown.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
  /*
3
- Plugin Name: Uji Countdown
4
  Plugin URI: http://www.wpmanage.com/uji-countdown
5
  Description: HTML5 Customizable Countdown.
6
- Version: 2.0.3
7
  Text Domain: uji-countdown
8
  Domain Path: /lang
9
  Author: Wpmanage.com
@@ -17,7 +17,7 @@ Copyright 2015 WPmanage (email : info@wpmanage.com)
17
  defined( 'WPINC' ) || exit;
18
 
19
  define( 'UJIC_NAME', 'Uji Countdown' );
20
- define( 'UJIC_VERS', '2.0.3' );
21
  define( 'UJIC_FOLD', 'uji-countdown' );
22
  define( 'UJICOUNTDOWN', trailingslashit( dirname(__FILE__) ) );
23
  define( 'UJICOUNTDOWN_URL', plugin_dir_url( __FILE__ ) );
1
  <?php
2
  /*
3
+ Plugin Name: Uji&#32;Countdown
4
  Plugin URI: http://www.wpmanage.com/uji-countdown
5
  Description: HTML5 Customizable Countdown.
6
+ Version: 2.0.4
7
  Text Domain: uji-countdown
8
  Domain Path: /lang
9
  Author: Wpmanage.com
17
  defined( 'WPINC' ) || exit;
18
 
19
  define( 'UJIC_NAME', 'Uji Countdown' );
20
+ define( 'UJIC_VERS', '2.0.4' );
21
  define( 'UJIC_FOLD', 'uji-countdown' );
22
  define( 'UJICOUNTDOWN', trailingslashit( dirname(__FILE__) ) );
23
  define( 'UJICOUNTDOWN_URL', plugin_dir_url( __FILE__ ) );