Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram - Version 2.0.0

Version Description

2.0.0

  • Update: UI improvements

1.11.0

  • Update: Performance improvements
  • Update: UI/UX improvements

1.10.47

  • Update: WordPress 5.7 compatibility check
  • Update: UI improvements

1.10.46

  • Update: WordPress 5.6 compatibility check
  • Update: UI improvements

1.10.45

  • Update: WordPress 5.5.3 compatibility check
  • Update: UI improvements

1.10.44

  • Update: UI improvements

1.10.43

  • Fix: Jquery issue with WordPress 5.5

1.10.42

  • Fix: Compatibility issue with WordPress 5.5

1.10.41

  • Fix: Icegram campaign not working issue.

1.10.40

  • Update: Improve performance by loading JS/ CSS whenever required
  • Fix: Rainmaker Shortcode issue

1.10.39

  • Fix: Campaigns were not showing if display rules are set to role specific
  • Update: WordPress 5.4 compatibility test

1.10.38

  • UI enhancements

1.10.37

  • Bugfix release

1.10.36

  • Added Christmas Gallery Items

1.10.35

  • Security Fixes

1.10.34

  • Added Black Friday Cyber Monday Gallery Items

1.10.33

  • Revised Gallery Templates for Halloween

1.10.32

  • Added new featured gallery items

1.10.31

  • Revised Gallery Templates

10.30.1

  • Bug Fix release

1.10.28.2

  • Bug Fix release

1.10.28.1

  • Bug Fix release

1.10.28

  • Revised Gallery Templates

1.10.27

  • Bug Fix release

1.10.26

  • Bug Fix release

1.10.25

  • Revised Gallery Templates for Black Friday and Cyber Monday

1.10.24

  • Revised Gallery Templates for Halloween

1.10.23

  • Revised Gallery Templates

1.10.22

  • Fixed popup blocker issue while previewing campaign

1.10.21

  • Compatibility with latest Email Subscribers

1.10.20

  • Compatibility with latest GDPR

1.10.19

  • Compatibility with Rainmaker

1.10.18

  • Improved the UI/UX of the Icegram Gallery

1.10.17

  • Revised Gallery Templates

1.10.16

  • Fixed "The plugin does not have a valid header" issue

1.10.15

  • Added Christmas Gallery templates

1.10.14

  • Compatibility with WordPress 4.9

1.10.13

  • Added Black Friday and Cyber Monday Gallery templates

1.10.12

  • Compatibility with MailPoet 3

1.10.11

  • Added Halloween Gallery templates

1.10.10

  • Revised Gallery Templates

1.10.9.1

  • Bug Fix release

1.10.9

  • Revised Gallery Templates

1.10.8

  • compatibility with Contact Form 7(v4.8)

1.10.7

  • Added more templates in Gallery

1.10.6

  • Search bar, filters added to Icegram's Gallery

1.10.5

  • Improvements in Call To Actions

1.10.4

  • Directly choose Gallery Template while creating a New Campaign

1.10.3

  • Email Subscribers compatibility

1.10.2

  • Update mobile Detect library

1.10.1

  • Bug Fix release

1.10

  • Merge all addons in one

1.9.24

  • Small improvements in responsiveness of Popups and Action bars

1.9.23

  • Bug Fix release

1.9.22

  • No Google penalty for mobile popups, an automatic solution

1.9.21

  • Revamp admin UI

1.9.20.1

  • Bug Fix release

1.9.20

  • Rainmaker compatibility

1.9.19

  • Secured Icegram from XSS vulnerability

1.9.18

  • Compatibility with Icegram's CTA add-on and Rainmaker

1.9.17

  • Performance enhancements

1.9.16

  • Custom forms imported in Rainmaker

1.9.15

  • Added the Gallery of ready to use Icegram Campaigns

1.9.14

  • Added quick action for campaign preview.

1.9.13

  • revamp of popup themes - Airmail, Convert, Inspire, Persuade.

1.9.12

  • Add new custom CSS and JS code block.

1.9.11.1

  • Remove warning in the admin panel.

1.9.11

  • Compatibility with Gravity Forms.

1.9.10

  • Fix for schedule campaign option

1.9.9

  • Compatibility with Contact Form 7.

1.9.8.1

  • Added sprite image for close buttons and other fixes.

1.9.8

  • Enhanced the top Action bar position

1.9.7.1

  • Incorrect plugin name

1.9.7

  • Messengers are now responsive. Many small improvements.

1.9.6

  • Many small changes and other fixes.

1.9.5

  • Added animations for few more message types. Action bars are now responsive.

1.9.4

  • Bugfix release for forms.

1.9.3

  • Bugfix release for "Target link" not working.

1.9.2

  • Shortcode problems solved. New anti-spam mechanism for forms.

1.9.1

  • Few improvements in form functionality.

1.9

  • Form embed functionality improvements, Added forms styles.

1.8.10

  • Fixes for minified js and CSS. Changes for WP themes compatibility.

1.8.9

  • Many small changes. Plus major changes for caching compatibility.

1.8.8

  • Improved shortcode handling, WishList member compatibility, and other fixes.

1.8.7

  • Popups now support custom background and text colors. And a handful of fixes!

1.8.6

  • Fix for "white screen" errors, updated device detection, more readable call to action button colors

1.8.5

  • Bugfix release for device targeting, preview before publishing not working.

1.8.4

  • Popups are now responsive! Plus Visual Composer compatibility and other fixes.

1.8.3

  • Campaign and message duplicate feature added. Plus some other improvements.

1.8.2

  • Bugfix release for preview not working.

1.8.1

  • Recommended upgrade. Many improvements.

1.8

  • Target campaigns to any page with wildcard URL support in "Where" conditions and CTA Click based retargeting.

1.7.1

  • Dismiss admin notice provision, retargeting compatibility with caches and bug fixes.

1.7

  • Improvements in styling, form embeds and retargeting.

1.6

  • Improvements in optin form embedding, bug fixes and more. Required update.

1.5

  • Easy opt-in / subscription form parser and many other enhancements. Required update.

1.4

  • Many small improvements. Support for analytics added. WordPress 4.0 compatible.

1.3

  • 7 premium addons available now. Plus a lot of improvements. Recommended upgrade.

1.2

  • Lots of enhancements... WPML support, pluggable architecture, many internal changes. Do upgrade.

1.1.1

  • Compatibility with W3TC and Localization

1.1

  • First release on WordPress.org

1.0

  • Initial Release
Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Popups, Welcome Bar, Optins and Lead Generation Plugin – Icegram
Version 2.0.0
Comparing to
See all releases

Code changes from version 1.10.47 to 2.0.0

Files changed (183) hide show
  1. assets/css/frontend.min.css +0 -1
  2. assets/js/gallery.min.js +0 -1
  3. assets/js/icegram.min.js +0 -1
  4. assets/js/main.min.js +0 -1
  5. classes/class-icegram-cache.php +0 -106
  6. classes/ig-mobile-detect.php +0 -1458
  7. icegram.php +183 -1980
  8. about-icegram.php → lite/about-icegram.php +2 -2
  9. {assets → lite/assets}/css/admin.css +1 -1
  10. {assets → lite/assets}/css/admin.min.css +1 -1
  11. {assets → lite/assets}/css/chosen-sprite@2x.png +0 -0
  12. {assets → lite/assets}/css/chosen.min.css +0 -0
  13. {assets → lite/assets}/css/frontend.css +0 -0
  14. lite/assets/css/frontend.min.css +1 -0
  15. {assets → lite/assets}/css/jquery-ui.min.css +0 -0
  16. {assets → lite/assets}/css/magnific-popup.css +0 -0
  17. {assets → lite/assets}/images/analytics.png +0 -0
  18. {assets → lite/assets}/images/animated-overlay.gif +0 -0
  19. {assets → lite/assets}/images/arrows-sprite.png +0 -0
  20. {assets → lite/assets}/images/bfcm_2020.jpg +0 -0
  21. {assets → lite/assets}/images/chosen-sprite.png +0 -0
  22. {assets → lite/assets}/images/clear-footer.png +0 -0
  23. {assets → lite/assets}/images/clear-header.png +0 -0
  24. {assets → lite/assets}/images/clear-option.png +0 -0
  25. {assets → lite/assets}/images/covid-19.png +0 -0
  26. {assets → lite/assets}/images/cta-new-tab.png +0 -0
  27. {assets → lite/assets}/images/desktop.png +0 -0
  28. {assets → lite/assets}/images/exit-intent-feild.png +0 -0
  29. {assets → lite/assets}/images/exit-intent-label.png +0 -0
  30. {assets → lite/assets}/images/from_layouts.png +0 -0
  31. {assets → lite/assets}/images/halloween2020.png +0 -0
  32. {assets → lite/assets}/images/icegram-logo-16bit-gray-30.png +0 -0
  33. {assets → lite/assets}/images/icegram-logo-branding-18-white.png +0 -0
  34. {assets → lite/assets}/images/icegram-logo-branding-64-grey.png +0 -0
  35. {assets → lite/assets}/images/icegram-logo-branding-64-white.png +0 -0
  36. {assets → lite/assets}/images/icegram-logo-branding-64.png +0 -0
  37. {assets → lite/assets}/images/icon-64.png +0 -0
  38. {assets → lite/assets}/images/popup-amaze-bg.jpg +0 -0
  39. {assets → lite/assets}/images/popup-close.png +0 -0
  40. {assets → lite/assets}/images/sketch-action-bar.png +0 -0
  41. {assets → lite/assets}/images/sketch-messenger.png +0 -0
  42. {assets → lite/assets}/images/sketch-multiple-sequence.png +0 -0
  43. {assets → lite/assets}/images/sketch-popup.png +0 -0
  44. {assets → lite/assets}/images/sketch-rules.png +0 -0
  45. {assets → lite/assets}/images/sketch-toast-notification.png +0 -0
  46. {assets → lite/assets}/images/social-img.png +0 -0
  47. {assets → lite/assets}/images/spinner-2x.gif +0 -0
  48. {assets → lite/assets}/images/sprite_1.png +0 -0
  49. {assets → lite/assets}/images/stand-out.png +0 -0
  50. {assets → lite/assets}/images/style_0.png +0 -0
  51. {assets → lite/assets}/images/style_1.png +0 -0
  52. {assets → lite/assets}/images/style_2.png +0 -0
  53. {assets → lite/assets}/images/style_3.png +0 -0
  54. {assets → lite/assets}/images/style_4.png +0 -0
  55. {assets → lite/assets}/images/talk-close.png +0 -0
  56. {assets → lite/assets}/images/talk-footer-1.png +0 -0
  57. {assets → lite/assets}/images/talk-header-1.png +0 -0
  58. {assets → lite/assets}/images/talk-header-2.png +0 -0
  59. {assets → lite/assets}/images/toast-glow.png +0 -0
  60. {assets → lite/assets}/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  61. {assets → lite/assets}/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  62. {assets → lite/assets}/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  63. {assets → lite/assets}/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  64. {assets → lite/assets}/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  65. {assets → lite/assets}/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  66. {assets → lite/assets}/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  67. {assets → lite/assets}/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  68. {assets → lite/assets}/images/ui-icons_222222_256x240.png +0 -0
  69. {assets → lite/assets}/images/ui-icons_2e83ff_256x240.png +0 -0
  70. {assets → lite/assets}/images/ui-icons_454545_256x240.png +0 -0
  71. {assets → lite/assets}/images/ui-icons_888888_256x240.png +0 -0
  72. {assets → lite/assets}/images/ui-icons_cd0a0a_256x240.png +0 -0
  73. {assets → lite/assets}/js/admin.js +0 -0
  74. {assets → lite/assets}/js/admin.min.js +1 -1
  75. {assets → lite/assets}/js/ajax-chosen.jquery.min.js +0 -0
  76. {assets → lite/assets}/js/chosen.jquery.min.js +0 -0
  77. {assets → lite/assets}/js/gallery.js +0 -0
  78. lite/assets/js/gallery.min.js +1 -0
  79. {assets → lite/assets}/js/icegram.js +0 -0
  80. lite/assets/js/icegram.min.js +1 -0
  81. {assets → lite/assets}/js/jquery.tipTip.min.js +0 -0
  82. {assets → lite/assets}/js/magnific-popup.js +0 -0
  83. {assets → lite/assets}/js/main.js +0 -0
  84. lite/assets/js/main.min.js +1 -0
  85. lite/class-icegram-loader.php +59 -0
  86. lite/class-icegram.php +2080 -0
  87. lite/classes/class-icegram-activator.php +35 -0
  88. lite/classes/class-icegram-cache.php +106 -0
  89. {classes → lite/classes}/class-icegram-campaign-admin.php +8 -8
  90. {classes → lite/classes}/class-icegram-campaign.php +0 -0
  91. {classes → lite/classes}/class-icegram-compat.php +2 -2
  92. lite/classes/class-icegram-deactivator.php +33 -0
  93. {classes → lite/classes}/class-icegram-message-admin.php +0 -0
  94. {classes → lite/classes}/class-icegram-message-type.php +1 -1
  95. {classes → lite/classes}/class-icegram-message.php +2 -2
  96. {classes → lite/classes}/compat/class-icegram-compat-contact-form-7.php +2 -2
  97. {classes → lite/classes}/compat/class-icegram-compat-gravityforms.php +2 -2
  98. {classes → lite/classes}/feedback.php +2 -1
  99. {classes → lite/classes}/feedback/assets/css/animate.min.css +0 -0
  100. {classes → lite/classes}/feedback/assets/css/emoji.min.css +0 -0
  101. {classes → lite/classes}/feedback/assets/css/feedback.min.css +0 -0
  102. {classes → lite/classes}/feedback/assets/css/star-rating.min.css +0 -0
  103. {classes → lite/classes}/feedback/assets/css/sweetalert2.min.css +0 -0
  104. {classes → lite/classes}/feedback/assets/images/loading.gif +0 -0
  105. {classes → lite/classes}/feedback/assets/js/sweetalert2.min.js +0 -0
  106. {classes → lite/classes}/feedback/class-ig-feedback.php +0 -0
  107. {classes → lite/classes}/feedback/class-ig-tracker.php +0 -0
  108. lite/classes/ig-mobile-detect.php +1459 -0
  109. {classes → lite/classes}/ig-upsale-admin.php +2 -2
  110. gallery.php → lite/gallery.php +0 -0
  111. ig-offer.php → lite/ig-offer.php +2 -2
  112. {lang → lite/lang}/icegram-de_DE.mo +0 -0
  113. {lang → lite/lang}/icegram-de_DE.po +1125 -1125
  114. {lang → lite/lang}/icegram-it_IT.mo +0 -0
  115. {lang → lite/lang}/icegram-it_IT.po +0 -0
  116. {lang → lite/lang}/src/icegram.pot +1248 -1248
  117. {message-types → lite/message-types}/action-bar/default.css +0 -0
  118. {message-types → lite/message-types}/action-bar/main.js +0 -0
  119. {message-types → lite/message-types}/action-bar/main.php +1 -1
  120. lite/message-types/action-bar/themes/action-bar.min.css +1 -0
  121. {message-types → lite/message-types}/action-bar/themes/air-mail.css +14 -10
  122. {message-types → lite/message-types}/action-bar/themes/air-mail.png +0 -0
  123. {message-types → lite/message-types}/action-bar/themes/bold.css +0 -0
  124. {message-types → lite/message-types}/action-bar/themes/bold.png +0 -0
  125. {message-types → lite/message-types}/action-bar/themes/default.css +0 -0
  126. {message-types → lite/message-types}/action-bar/themes/hello.css +0 -0
  127. {message-types → lite/message-types}/action-bar/themes/hello.png +0 -0
  128. {message-types → lite/message-types}/action-bar/themes/solid.css +0 -0
  129. {message-types → lite/message-types}/action-bar/themes/solid.png +0 -0
  130. {message-types → lite/message-types}/messenger/default.css +0 -0
  131. {message-types → lite/message-types}/messenger/main.js +0 -0
  132. {message-types → lite/message-types}/messenger/main.php +1 -1
  133. {message-types → lite/message-types}/messenger/themes/canvas.css +0 -0
  134. {message-types → lite/message-types}/messenger/themes/canvas.png +0 -0
  135. {message-types → lite/message-types}/messenger/themes/clear.css +0 -0
  136. {message-types → lite/message-types}/messenger/themes/clear.png +0 -0
  137. {message-types → lite/message-types}/messenger/themes/default.css +0 -0
  138. lite/message-types/messenger/themes/messenger.min.css +1 -0
  139. {message-types → lite/message-types}/messenger/themes/social.css +0 -0
  140. {message-types → lite/message-types}/messenger/themes/social.png +0 -0
  141. {message-types → lite/message-types}/messenger/themes/talk.css +0 -0
  142. {message-types → lite/message-types}/messenger/themes/talk.png +0 -0
  143. {message-types → lite/message-types}/popup/default.css +0 -0
  144. {message-types → lite/message-types}/popup/main.js +0 -0
  145. {message-types → lite/message-types}/popup/main.php +1 -1
  146. {message-types → lite/message-types}/popup/themes/air-mail.css +0 -0
  147. {message-types → lite/message-types}/popup/themes/air-mail.png +0 -0
  148. {message-types → lite/message-types}/popup/themes/amaze.css +0 -0
  149. {message-types → lite/message-types}/popup/themes/amaze.png +0 -0
  150. {message-types → lite/message-types}/popup/themes/compel.css +0 -0
  151. {message-types → lite/message-types}/popup/themes/compel.png +0 -0
  152. {message-types → lite/message-types}/popup/themes/convert.css +0 -0
  153. {message-types → lite/message-types}/popup/themes/convert.png +0 -0
  154. {message-types → lite/message-types}/popup/themes/default.css +0 -0
  155. {message-types → lite/message-types}/popup/themes/inspire.css +0 -0
  156. {message-types → lite/message-types}/popup/themes/inspire.png +0 -0
  157. {message-types → lite/message-types}/popup/themes/persuade.css +0 -0
  158. {message-types → lite/message-types}/popup/themes/persuade.png +0 -0
  159. lite/message-types/popup/themes/popup.min.css +1 -0
  160. {message-types → lite/message-types}/toast/default.css +0 -0
  161. {message-types → lite/message-types}/toast/main.js +0 -0
  162. {message-types → lite/message-types}/toast/main.php +1 -1
  163. {message-types → lite/message-types}/toast/themes/announce.css +0 -0
  164. {message-types → lite/message-types}/toast/themes/announce.png +0 -0
  165. {message-types → lite/message-types}/toast/themes/balance.css +0 -0
  166. {message-types → lite/message-types}/toast/themes/balance.png +0 -0
  167. {message-types → lite/message-types}/toast/themes/burnt.css +0 -0
  168. {message-types → lite/message-types}/toast/themes/burnt.png +0 -0
  169. {message-types → lite/message-types}/toast/themes/clear.css +0 -0
  170. {message-types → lite/message-types}/toast/themes/clear.png +0 -0
  171. {message-types → lite/message-types}/toast/themes/default.css +0 -0
  172. {message-types → lite/message-types}/toast/themes/night-glow.css +0 -0
  173. {message-types → lite/message-types}/toast/themes/night-glow.png +0 -0
  174. {message-types → lite/message-types}/toast/themes/stand-out.css +0 -0
  175. {message-types → lite/message-types}/toast/themes/stand-out.png +0 -0
  176. lite/message-types/toast/themes/toast.min.css +1 -0
  177. settings.php → lite/settings.php +1 -1
  178. {updates → lite/updates}/icegram-update-1.2.php +0 -0
  179. message-types/action-bar/themes/action-bar.min.css +0 -1
  180. message-types/messenger/themes/messenger.min.css +0 -1
  181. message-types/popup/themes/popup.min.css +0 -1
  182. message-types/toast/themes/toast.min.css +0 -1
  183. readme.txt +20 -2
assets/css/frontend.min.css DELETED
@@ -1 +0,0 @@
1
- .ig_powered_by,.ig_powered_by a,a.ig_powered_by{color:#a8a8a8!important;text-decoration:none}.ig_cta_overlay{width:100%;height:100%;top:0;left:0;background:#e6e6e6;z-index:1000000;position:fixed;opacity:.5}.ig_cta_spinner{background:url(../images/spinner-2x.gif) no-repeat no-repeat center;height:100%}.icegram .ig_button,.icegram input[type=button],.icegram input[type=submit]{border:none;box-sizing:border-box;box-shadow:none}.ig_message p{margin:0;padding:0;line-height:inherit;font-size:inherit}.ig_clear_fix:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.ig_form_response_text{margin:.5em auto;padding:.5em;text-align:center}.ig_form_container{display:none;position:relative;height:100%;z-index:10;padding:.7em 1em;text-align:left;line-height:1;box-sizing:border-box}.ig_form_container form{margin:0;padding:0;font-size:100%}.ig_form_container select,.ig_form_container textarea{height:2.25em}.ig_form_container input[type=checkbox]{height:1.25em!important}.ig_form_container .ig_form_header{width:98%;text-align:left}.ig_form_container .ig_form_footer{font-size:.8em;width:98%;clear:both;text-align:left}.ig_form_container .ig_form_els{margin:.3em 1% .3em 0}.ig_form_left .ig_form_container.layout_left{display:block;padding:1em .7em}.ig_form_right .ig_form_container.layout_right{display:block;padding:1em .7em;float:left}.ig_form_bottom .ig_form_container.layout_bottom{display:block;width:100%;height:auto}.ig_form_inline .ig_form_container.layout_inline{display:block;width:100%;padding:.5em;background-color:transparent!important;color:inherit!important}.ig_form_left .ig_form_container.layout_left .ig_form_els,.ig_form_right .ig_form_container.layout_right .ig_form_els{margin:.5em auto}.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els{display:inline-block;float:left}.ig_form_inline .ig_form_container.layout_inline .ig_form_els{display:inline-block;float:left}.ig_form_bottom .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_full .ig_form_els{width:99%}.ig_form_bottom .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_half .ig_form_els{width:49%}.ig_form_bottom .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_third .ig_form_els{width:32%}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els{width:24%}.ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em}.ig_form_container .ig_form_els button,.ig_form_container .ig_form_els input,.ig_form_container .ig_form_els label,.ig_form_container .ig_form_els select,.ig_form_container .ig_form_els textarea{width:99%;font-size:1em;text-align:left;display:block;margin:0 auto;box-sizing:border-box}.ig_form_container .ig_form_els .ig_button{text-align:center}.ig_form_container .ig_form_els select,.ig_form_container .ig_form_els textarea{padding-left:.5em}.ig_form_container .ig_form_els textarea{padding-top:.5em}.ig_form_container .ig_form_els.ig_form_el_radio{height:2.25em!important;line-height:2.2em}.ig_form_container .ig_form_els.ig_form_el_radio input{width:auto!important;display:inline;margin:0 .3em;height:1em!important}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio{display:inline}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio label,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio label{width:auto;display:inline}.ig_form_left .ig_form_container.layout_left .ig_button_label,.ig_form_right .ig_form_container.layout_right .ig_button_label{display:none}.ig_form_bottom .ig_form_container.layout_bottom .ig_button_label,.ig_form_inline .ig_form_container.layout_inline .ig_button_label{display:block;visibility:hidden;opacity:0}.ig_form_bottom .ig_form_container.layout_bottom .ig_button,.ig_form_bottom .ig_form_container.layout_bottom input[type=button],.ig_form_bottom .ig_form_container.layout_bottom input[type=submit],.ig_form_inline .ig_form_container.layout_inline .ig_button,.ig_form_inline .ig_form_container.layout_inline input[type=button],.ig_form_inline .ig_form_container.layout_inline input[type=submit],.ig_form_left .ig_form_container.layout_left .ig_button,.ig_form_left .ig_form_container.layout_left input[type=button],.ig_form_left .ig_form_container.layout_left input[type=submit],.ig_form_right .ig_form_container.layout_right .ig_button,.ig_form_right .ig_form_container.layout_right input[type=button],.ig_form_right .ig_form_container.layout_right input[type=submit]{width:99%;font-size:1em;float:none;margin:0 auto!important;text-align:center;display:block;-ms-transform:inherit;-webkit-transform:inherit;transform:inherit;opacity:1}.ig_form_container:before{content:'';padding:0;margin:0;position:absolute;box-sizing:content-box}.ig_form_style_0 .ig_form_container:before{display:none}.ig_form_style_0 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_0 .ig_form_container .ig_form_els .ig_button,.ig_form_style_0 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_0 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_style_1 .ig_form_container:before{border-width:0;border-style:solid;border-color:#000!important;opacity:.3;top:0}.ig_form_left.ig_form_style_1 .ig_form_container:before{right:0;height:inherit;border-left-width:.22em}.ig_form_right.ig_form_style_1 .ig_form_container:before{left:0;height:inherit;border-left-width:.22em}.ig_form_bottom.ig_form_style_1 .ig_form_container:before{left:0;width:100%;border-top-width:.22em}.ig_form_inline.ig_form_style_1 .ig_form_container:before{display:none}.ig_form_style_1 .ig_form_container .ig_form_els input:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:not(.ig_button){border:1px solid #ccc}.ig_form_style_1 .ig_form_container .ig_form_els input,.ig_form_style_5 .ig_form_container .ig_form_els input,.ig_form_style_6 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;border-radius:.2em;box-shadow:none;padding:inherit;padding-left:.5em}.ig_form_style_1 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_1 .ig_form_container .ig_form_els input:hover:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:hover:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:hover:not(.ig_button){border-color:#999}.ig_form_style_1 .ig_form_container .ig_form_els input:focus,.ig_form_style_1 .ig_form_container .ig_form_els input:hover,.ig_form_style_5 .ig_form_container .ig_form_els input:focus,.ig_form_style_5 .ig_form_container .ig_form_els input:hover,.ig_form_style_6 .ig_form_container .ig_form_els input:focus,.ig_form_style_6 .ig_form_container .ig_form_els input:hover{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_1 .ig_form_container .ig_form_els .ig_button,.ig_form_style_1 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_1 .ig_form_container .ig_form_els .ig_button:hover,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button:hover,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els .ig_button,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els .ig_button,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els .ig_button,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els .ig_button{padding:inherit}.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els input,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els input{padding-left:1em}.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els .ig_button,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els input,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els .ig_button,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els input{height:2.25em;line-height:2.2em;border-radius:2em}.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els label,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els label{padding-left:1em}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els .ig_button,.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els .ig_button,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input{height:2.25em;line-height:2.2em;width:100%;border-width:2px;border-right-width:0}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input{border-radius:2em 0 0 2em;padding-left:1em}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label{padding-left:1em}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:0 2em 2em 0}.ig_form_style_3 .ig_form_container .ig_form_els input:not(.ig_button){border:1px solid rgba(255,255,255,.3)}.ig_form_style_3 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;box-shadow:none;padding:inherit;padding-left:.5em;background-color:rgba(0,0,0,.3)}.ig_form_style_3 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_3 .ig_form_container .ig_form_els input:hover:not(.ig_button){border-color:rgba(255,255,255,.6)}.ig_form_style_3 .ig_form_container .ig_form_els input:focus,.ig_form_style_3 .ig_form_container .ig_form_els input:hover{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_3 .ig_form_container .ig_form_els .ig_button,.ig_form_style_3 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_3 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_style_3 .ig_form_container .ig_form_els ::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.ig_form_style_3 .ig_form_container .ig_form_els :-moz-placeholder{color:rgba(255,255,255,.5);opacity:1}.ig_form_style_3 .ig_form_container .ig_form_els ::-moz-placeholder{color:rgba(255,255,255,.5);opacity:1}.ig_form_style_3 .ig_form_container .ig_form_els :-ms-input-placeholder{color:rgba(255,255,255,.5)}.ig_form_bottom.ig_form_style_4 .ig_content{margin-bottom:1.3em}.ig_form_style_4 .ig_form_container:before{border-style:solid;top:-1em;left:-1em;width:100%;height:100%;border-width:1em;z-index:-1;box-shadow:0 0 15px rgba(0,0,0,.7)}.ig_form_right.ig_form_style_4 .ig_form_container:before{left:inherit;right:-1em}.ig_form_inline.ig_form_style_4 .ig_form_container:before{display:none}.ig_form_style_4 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_4 .ig_form_container .ig_form_els .ig_button,.ig_form_style_4 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_4 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_bottom.ig_form_style_5 .ig_form_container.layout_bottom .ig_form_els_first,.ig_form_inline.ig_form_style_5 .ig_form_container.layout_inline .ig_form_els_first{width:68%}.ig_form_bottom.ig_form_style_5 .ig_form_container.layout_bottom .ig_form_els_last,.ig_form_inline.ig_form_style_5 .ig_form_container.layout_inline .ig_form_els_last{width:30%}.ig_form_style_6 .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.5em auto 0 auto}.ig_anim_appear_in{-webkit-animation:IgFadeIn .9s;animation:IgFadeIn .9s;visibility:visible}@-webkit-keyframes IgFadeIn{0%{opacity:0}50%{opacity:.5}100%{opacity:1}}@keyframes IgFadeIn{0%{opacity:0}50%{opacity:.5}100%{opacity:1}}.ig_anim_appear_out{-webkit-animation:IgFadeOut .9s;animation:IgFadeOut .9s}@-webkit-keyframes IgFadeOut{0%{opacity:1}99.5%{opacity:.5}100%{opacity:1}}@keyframes IgFadeOut{0%{opacity:1}99.5%{opacity:.5}100%{opacity:1}}.ig_left.ig_anim_slide_in{animation-name:IgSlideInLeft;-moz-animation-name:IgSlideInLeft;-webkit-animation-name:IgSlideInLeft;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInLeft{0%{-webkit-transform:translate3d(-100%,0,0)}100%{-webkit-transform:none}}@keyframes IgSlideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{-webkit-transform:none;transform:none}}.ig_left.ig_anim_slide_out{animation-name:IgFadeOutLeft;-moz-animation-name:IgFadeOutLeft;-webkit-animation-name:IgFadeOutLeft;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(-100%,0,0)}}@keyframes IgFadeOutLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.ig_right.ig_anim_slide_in{animation-name:IgSlideInRight;-moz-animation-name:IgSlideInRight;-webkit-animation-name:IgSlideInRight;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInRight{0%{-webkit-transform:translate3d(100%,0,0)}100%{-webkit-transform:none}}@keyframes IgSlideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{-webkit-transform:none;transform:none}}.ig_right.ig_anim_slide_out{animation-name:IgFadeOutRight;-moz-animation-name:IgFadeOutRight;-webkit-animation-name:IgFadeOutRight;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(100%,0,0)}}@keyframes IgFadeOutRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.ig_bottom .ig_anim_slide_in,.ig_bottom.ig_anim_slide_in{animation-name:IgSlideInUp;-moz-animation-name:IgSlideInUp;-webkit-animation-name:IgSlideInUp;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInUp{0%{-webkit-transform:translate3d(0,100%,0)}100%{-webkit-transform:none}}@keyframes IgSlideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{-webkit-transform:none;transform:none}}.ig_bottom .ig_anim_slide_out,.ig_bottom.ig_anim_slide_out{animation-name:IgFadeOutDown;-moz-animation-name:IgFadeOutDown;-webkit-animation-name:IgFadeOutDown;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutDown{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,100%,0)}}@keyframes IgFadeOutDown{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.ig_anim_slide_in,.ig_top .ig_anim_slide_in,.ig_top.ig_anim_slide_in{animation-name:IgSlideInDown;-moz-animation-name:IgSlideInDown;-webkit-animation-name:IgSlideInDown;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInDown{0%{-webkit-transform:translate3d(0,-100%,0)}100%{-webkit-transform:none}}@keyframes IgSlideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{-webkit-transform:none;transform:none}}.ig_anim_slide_out,.ig_top .ig_anim_slide_out,.ig_top.ig_anim_slide_out{animation-name:IgFadeOutUp;-moz-animation-name:IgFadeOutUp;-webkit-animation-name:IgFadeOutUp;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutUp{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,-100%,0)}}@keyframes IgFadeOutUp{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}
 
assets/js/gallery.min.js DELETED
@@ -1 +0,0 @@
1
- var tb_position;window.wp=window.wp||{},function(l){var c,i;(c=wp.themes=wp.themes||{}).data=_wpThemeSettings,i=c.data.l10n,c.isInstall=c.data.settings.isInstall,_.extend(c,{model:{},view:{},routes:{},router:{},template:wp.template}),c.Model=Backbone.Model.extend({initialize:function(){var e;-1!==_.indexOf(c.data.installedThemes,this.get("slug"))&&this.set({installed:!0}),this.set({id:this.get("id")}),this.has("sections")&&(e=this.get("sections").description,this.set({description:e})),this.has("plan")&&this.set({plan_name:t(this.get("plan"))})}}),c.view.Appearance=wp.Backbone.View.extend({el:".wrap .theme-browser",events:{"click .filter-links li > a":"onSort"},window:l(window),page:0,activeClass:"current",initialize:function(e){_.bindAll(this,"scroller"),this.SearchView=e.SearchView?e.SearchView:c.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new c.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.append(this.view.el).addClass("rendered"),this.$el.append('<br class="clear"/>')},browse:function(t){var e;if(this.collection.length<=0&&this.collection.query({browse:t}),"featured"==t||"all"==t)this.collection.query({browse:t});else if(e=this.collection.filter(function(e){if(_.invert(e.attributes.tags).hasOwnProperty(t))return!0})){this.collection.reset(e);var i=this.collection.length}this.collection.trigger("update"),this.collection.trigger("query:success",i)},onSort:function(e){var t=l(e.target),i=t.data("sort");e.preventDefault(),l("body").removeClass("filters-applied show-filters"),t.hasClass(this.activeClass)||(this.collection.reset(c.data.themes,{silent:!0}),this.sort(i),c.router.navigate(c.router.baseUrl(c.router.browsePath+i)))},sort:function(e){this.clearSearch(),l(".filter-links li > a, .theme-filter").removeClass(this.activeClass),l('[data-sort="'+e+'"]').addClass(this.activeClass),"favorites"===e?l("body").addClass("show-favorites-form"):l("body").removeClass("show-favorites-form"),this.browse(e)},clearSearch:function(){l("#wp-filter-search-input").val("")},searchContainer:l(".search-form"),search:function(){var e;1!==c.data.themes.length&&((e=new this.SearchView({collection:this.collection,parent:this})).render(),this.searchContainer.append(l.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+i.search+"</label>")).append(e.el))},scroller:function(){var e,t,i=this;e=this.window.scrollTop()+i.window.height(),t=i.$el.offset().top+i.$el.outerHeight(!1)-i.window.height(),(t=Math.round(.9*t))<e&&this.trigger("theme:scroll")}}),c.Collection=Backbone.Collection.extend({model:c.Model,terms:"",doSearch:function(e){this.terms!==e&&(this.terms=e,0<this.terms.length&&this.search(this.terms),""===this.terms&&(this.reset(c.data.themes),l("body").removeClass("no-results")),this.trigger("update"))},search:function(t){var i,e,s,r,n,a;this.reset(c.data.themes,{silent:!0}),t=(t=t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")).replace(/ /g,")(?=.*"),i=new RegExp("^(?=.*"+t+").+","i"),0===(e=this.filter(function(e){return r=e.get("name").replace(/(<([^>]+)>)/gi,""),n=e.get("description").replace(/(<([^>]+)>)/gi,""),a=e.get("author").replace(/(<([^>]+)>)/gi,""),s=_.union(r,e.get("id"),n,a,e.get("tags")),i.test(e.get("author"))&&2<t.length&&e.set("displayAuthor",!0),i.test(s)})).length?this.trigger("query:empty"):l("body").removeClass("no-results"),this.reset(e)},paginate:function(e){var t=this;return e=e||0,t=_(t.rest(20*e)),t=_(t.first(20))},count:!1,query:function(t){var e,i,s,r=this.queries,n=this;if(this.currentQuery.request=t,e=_.find(r,function(e){return _.isEqual(e.request,t)}),(i=_.has(t,"page"))||(this.currentQuery.page=1),e||i){if(i)return this.apiCall(t,i).then(function(e){n.add(e.themes),n.trigger("query:success"),n.loadingThemes=!1}).fail(function(){n.trigger("query:fail")});0===e.themes.length?n.trigger("query:empty"):l("body").removeClass("no-results"),_.isNumber(e.total)&&(this.count=e.total),this.reset(e.themes),e.total||(this.count=this.length),this.trigger("update"),this.trigger("query:success",this.count)}else{if(c.data.themes){data=c.data.themes,n.add(data),void 0!==t.id&&(data=n.get(t.id),n.set(data));var a=_.sortBy(n.models,function(e){return e.attributes.modified});n.reset(a.reverse()),s=data.length,r.push({themes:data,request:t,total:s})}n.trigger("update"),n.trigger("query:success",s),data.themes&&0===data.themes.length&&n.trigger("query:empty")}},queries:[],currentQuery:{page:1,request:{}},loadingThemes:!1}),c.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:c.template("theme"),events:{click:"preview",keydown:"preview",touchend:"preview",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var e=this.model.toJSON();this.$el.html(this.html(e)).attr({tabindex:0,"data-rating":e.rating,"data-plan":e.plan,"plan-name":e.plan_name}),e.custom_category&&0<e.custom_category.length&&this.$el.html(this.html(e)).attr({"data-categories":e.custom_category.join(" ")}),this.$el.addClass("igg-card"),this.$el.addClass(e.plan_name),this.model.get("displayAuthor")&&this.$el.addClass("display-author"),this.model.get("installed")&&this.$el.addClass("is-installed")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var e=l(":focus").hasClass("theme")?l(":focus"):l(":focus").parents(".theme");l(".theme.focus").removeClass("focus"),e.addClass("focus")},expand:function(e){if("keydown"!==(e=e||window.event).type||13===e.which||32===e.which)return!0===this.touchDrag?this.touchDrag=!1:void(l(e.target).is(".theme-actions a")||(c.focusedTheme=this.$el,this.trigger("theme:expand",this.model.cid)))},preventExpand:function(){this.touchDrag=!0},preview:function(e){var t,i,s=this;if(e=e||window.event,!0===this.touchDrag)return this.touchDrag=!1;l(e.target).hasClass("button-primary")||"keydown"===e.type&&13!==e.which&&32!==e.which||"keydown"===e.type&&13!==e.which&&l(":focus").hasClass("button")||(e.preventDefault(),e=e||window.event,c.focusedTheme=this.$el,(i=new c.view.Preview({model:this.model})).render(),this.setNavButtonsState(),1===this.model.collection.length?i.$el.addClass("no-navigation"):i.$el.removeClass("no-navigation"),this.listenTo(i,"theme:next",function(){if(t=s.model,_.isUndefined(s.current)||(t=s.current),s.current=s.model.collection.at(s.model.collection.indexOf(t)+1),_.isUndefined(s.current))return s.options.parent.parent.trigger("theme:end"),s.current=t;i.model=s.current,i.render(),this.setNavButtonsState(),l(".next-theme").focus()}).listenTo(i,"theme:previous",function(){t=s.model,0!==s.model.collection.indexOf(s.current)&&(_.isUndefined(s.current)||(t=s.current),s.current=s.model.collection.at(s.model.collection.indexOf(t)-1),_.isUndefined(s.current)||(i.model=s.current,i.render(),this.setNavButtonsState(),l(".previous-theme").focus()))}),this.listenTo(i,"preview:close",function(){s.current=s.model}))},setNavButtonsState:function(){var e=l(".theme-install-overlay"),t=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(t)&&e.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(t)+1))&&e.find(".next-theme").addClass("disabled")}}),c.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme"},html:c.template("theme-single"),render:function(){var e=this.model.toJSON();this.$el.html(this.html(e)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(t){var i;_.delay(function(){l(".theme-wrap a.button-primary:visible").focus()},500),t.on("keydown.wp-themes",function(e){9===e.which&&((i=l(e.target)).is("button.left")&&e.shiftKey?(t.find(".theme-actions a:last-child").focus(),e.preventDefault()):i.is(".theme-actions a:last-child")&&(t.find("button.left").focus(),e.preventDefault()))})},collapse:function(e){var t,i=this;e=e||window.event,1!==c.data.themes.length&&(l(e.target).is(".theme-backdrop")||l(e.target).is(".close")||27===e.keyCode)&&(l("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){l("body").removeClass("closing-overlay"),i.closeOverlay(),t=document.body.scrollTop,c.router.navigate(c.router.baseUrl("")),document.body.scrollTop=t,c.focusedTheme&&c.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){l("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},deleteTheme:function(){return confirm(c.data.settings.confirmDelete)},nextTheme:function(){return this.trigger("theme:next",this.model.cid),!1},previousTheme:function(){return this.trigger("theme:previous",this.model.cid),!1},screenshotCheck:function(e){var t,i;t=e.find(".screenshot img"),(i=new Image).src=t.attr("src"),i.width&&i.width<=300&&e.addClass("small-screenshot")}}),c.view.Preview=c.view.Details.extend({className:"wp-full-overlay expanded",el:".ig-gallery-wrap .theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:c.template("theme-preview"),render:function(){var e=this,t=this.model.toJSON();this.$el.removeClass("iframe-ready").html(this.html(t)),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){l("body").addClass("theme-installer-active full-overlay-active"),l(".close-full-overlay").focus()}),this.$el.find("iframe").one("load",function(){e.iframeLoaded()}),t.plan<=c.data.settings.ig_plan?this.$el.find(".theme-install").show():this.$el.find(".ig-get-pro").show()},iframeLoaded:function(){this.$el.addClass("iframe-ready")},close:function(){return this.$el.hide(200,function(){l("body").removeClass("theme-installer-active full-overlay-active"),c.focusedTheme&&c.focusedTheme.focus()}).removeClass("iframe-ready"),c.router.navigate(c.router.baseUrl("")),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),!1},collapse:function(e){var t=l(e.currentTarget);return"true"===t.attr("aria-expanded")?t.attr({"aria-expanded":"false","aria-label":i.expandSidebar}):t.attr({"aria-expanded":"true","aria-label":i.collapseSidebar}),this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(e){27===e.keyCode&&(this.undelegateEvents(),this.close()),39===e.keyCode&&_.once(this.nextTheme()),37===e.keyCode&&this.previousTheme()}}),c.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:l("div.theme-overlay"),index:0,count:l(".wp-core-ui .theme-count"),liveThemeCount:0,initialize:function(e){var t=this;this.parent=e.parent,this.setView("grid"),t.currentTheme(),this.listenTo(t.collection,"update",function(){t.parent.page=0,t.currentTheme(),t.render(this)}),this.listenTo(t.collection,"query:success",function(e){_.isNumber(e)?(t.count.text(e),t.announceSearchResults(e)):(t.count.text(t.collection.length),t.announceSearchResults(t.collection.length))}),this.listenTo(t.collection,"query:empty",function(){l("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){t.renderThemes(t.parent.page)}),this.listenTo(this.parent,"theme:close",function(){t.overlay&&t.overlay.closeOverlay()}),l("body").on("keyup",function(e){t.overlay&&(39===e.keyCode&&t.overlay.nextTheme(),37===e.keyCode&&t.overlay.previousTheme(),27===e.keyCode&&t.overlay.collapse(e))})},render:function(){this.$el.empty(),1===c.data.themes.length&&(this.singleTheme=new c.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),0<this.options.collection.size()&&this.renderThemes(this.parent.page),this.liveThemeCount=this.collection.count?this.collection.count:this.collection.length,this.count.text(this.liveThemeCount),this.announceSearchResults(this.liveThemeCount)},renderThemes:function(e){var t=this;t.instance=t.collection.paginate(e),0!==t.instance.size()?(!c.isInstall&&1<=e&&l(".add-new-theme").remove(),t.instance.each(function(e){t.theme=new c.view.Theme({model:e,parent:t}),t.theme.render(),t.$el.append(t.theme.el),t.listenTo(t.theme,"theme:expand",t.expand,t)}),!c.isInstall&&c.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+c.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h2 class="theme-name">'+i.addNew+"</h2></a></div>"),this.parent.page++):this.parent.trigger("theme:end")},currentTheme:function(){var e;(e=this.collection.findWhere({active:!0}))&&(this.collection.remove(e),this.collection.add(e,{at:0}))},setView:function(e){return e},expand:function(e){var t=this;this.model=t.collection.get(e),c.router.navigate(c.router.baseUrl(c.router.themePath+this.model.id)),this.setView("detail"),l("body").addClass("modal-open"),this.overlay=new c.view.Details({model:t.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){t.next([t.model.cid])}).listenTo(this.overlay,"theme:previous",function(){t.previous([t.model.cid])})},next:function(e){var t,i;t=this.collection.get(e[0]),void 0!==(i=this.collection.at(this.collection.indexOf(t)+1))&&(this.overlay.closeOverlay(),this.theme.trigger("theme:expand",i.cid))},previous:function(e){var t,i;t=this.collection.get(e[0]),void 0!==(i=this.collection.at(this.collection.indexOf(t)-1))&&(this.overlay.closeOverlay(),this.theme.trigger("theme:expand",i.cid))},announceSearchResults:function(e){0===e?wp.a11y.speak(i.noThemesFound):wp.a11y.speak(i.themesFound.replace("%d",e))}}),c.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:i.searchPlaceholder,type:"search","aria-describedby":"live-search-desc"},events:{input:"search",keyup:"search",blur:"pushState"},initialize:function(e){this.parent=e.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(e){"keyup"===e.type&&27===e.which&&(e.target.value=""),this.doSearch(e)},doSearch:_.debounce(function(e){var t={};this.collection.doSearch(e.target.value),this.searching&&13!==e.which?t.replace=!0:this.searching=!0,e.target.value?c.router.navigate(c.router.baseUrl(c.router.searchPath+e.target.value),t):c.router.navigate(c.router.baseUrl(""))},500),pushState:function(e){var t=c.router.baseUrl("");e.target.value&&(t=c.router.baseUrl(c.router.searchPath+e.target.value)),this.searching=!1,c.router.navigate(t)}}),c.Router=Backbone.Router.extend({routes:{"demos/?item=:id":"preview","demos/?browse=:sort":"sort",demos:"sort","&search=:query":"search"},baseUrl:function(e){return"demos"+e},themePath:"?item=",browsePath:"?browse=",searchPath:"?search=",search:function(e){l(".wp-filter-search").val(e)},themes:function(){l(".wp-filter-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),c.Run={init:function(){this.themes=new c.Collection(c.data.themes);var e=_.sortBy(this.themes.models,function(e){return e.attributes.modified});this.themes.reset(e.reverse()),this.view=new c.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({pushState:!0,hashChange:!1})},routes:function(){var t=this;request={},c.router=new c.Router,c.router.on("route:preview",function(e){request.id=e,t.view.collection.query(request),t.view.collection.once("update",function(){t.view.view.theme.preview()})}),c.router.on("route:themes",function(){t.themes.doSearch(""),t.view.trigger("theme:close")}),c.router.on("route:search",function(){l(".wp-filter-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},c.view.InstallerSearch=c.view.Search.extend({events:{input:"search",keyup:"search"},search:function(e){("keyup"!==e.type||9!==e.which&&16!==e.which)&&(this.collection=this.options.parent.view.collection,"keyup"===e.type&&27===e.which&&(e.target.value=""),this.doSearch(e.target.value))},doSearch:_.debounce(function(e){var t,i,s,r,n,a;if(l(".filter-links li > a.current").removeClass("current"),l("body").removeClass("show-filters filters-applied show-favorites-form"),this.collection.filtered||this.collection.reset(c.data.themes,{silent:!0}),term=e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),""!==term&&(term=term.replace(/ /g,")(?=.*"),t=new RegExp("^(?=.*"+term+").+","i"),i=this.collection.filter(function(e){return r=e.get("description"),n=(n=e.get("content").rendered.replace(/(<([^>]+)>)/gi,"")).replace(/\n/g,""),a=e.get("message_type"),s=a+n+r,t.test(s)}))){this.collection.reset(i);var o=this.collection.length}""===term&&this.collection.reset(c.data.themes,{silent:!0}),this.collection.trigger("update"),this.collection.trigger("query:success",o),c.router.navigate(c.router.baseUrl(c.router.searchPath+e),{replace:!0})},500)}),c.view.Installer=c.view.Appearance.extend({el:".wrap",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters","click .favorites-form-submit":"saveUsername","keyup #wporg-username-input":"saveUsername","click .igg-sidebar .category-type":"filter","click .category.not_have_sub_cat":"filter"},render:function(){var e=this;this.search(),this.uploader(),this.collection=new c.Collection,this.listenTo(this,"theme:end",function(){e.collection.loadingThemes||(e.collection.loadingThemes=!0,e.collection.currentQuery.page++,_.extend(e.collection.currentQuery.request,{page:e.collection.currentQuery.page}),e.collection.query(e.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){l("body").removeClass("loading-content"),l(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){l("body").removeClass("loading-content"),l(".theme-browser").find("div.error").remove(),l(".theme-browser").find("div.themes").before('<div class="error"><p>'+i.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new c.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(t){var e;if("featured"==t||"all"==t)this.collection.query({browse:t});else if(e=this.collection.filter(function(e){if(_.invert(e.attributes.tags).hasOwnProperty(t))return!0})){this.collection.reset(e);var i=this.collection.length}this.collection.trigger("update"),this.collection.trigger("query:success",i)},onSort:function(e){var t=l(e.target),i=t.data("sort");e.preventDefault(),l("body").removeClass("filters-applied show-filters"),t.hasClass(this.activeClass)||(this.collection.reset(c.data.themes,{silent:!0}),this.sort(i),c.router.navigate(c.router.baseUrl(c.router.browsePath+i)))},sort:function(e){this.clearSearch(),l(".filter-links li > a, .theme-filter").removeClass(this.activeClass),l('[data-sort="'+e+'"]').addClass(this.activeClass),"favorites"===e?l("body").addClass("show-favorites-form"):l("body").removeClass("show-favorites-form"),this.browse(e)},onFilter:function(e){var t,i=l(e.target),s=i.data("filter");i.hasClass(this.activeClass)||(l(".filter-links li > a, .theme-section").removeClass(this.activeClass),i.addClass(this.activeClass),s&&(t={tag:[s=_.union(s,this.filtersChecked())]},this.collection.query(t)))},addFilter:function(){this.filtersChecked()},applyFilters:function(e){var t,i=this.filtersChecked(),s={tag:i},r=l(".filtered-by .tags");e&&e.preventDefault(),l("body").addClass("filters-applied"),l(".filter-links li > a.current").removeClass("current"),r.empty(),_.each(i,function(e){t=l('label[for="filter-id-'+e+'"]').text(),r.append('<span class="tag">'+t+"</span>")}),this.collection.query(s)},filter:function(e){var t,i=l(e.currentTarget),s=i.attr("category"),r=i.attr(s),n=0;if(this.collection.reset(c.data.themes,{silent:!0}),"reset"!=s&&(t=this.collection.filter(function(e){var t=Number(r);if(-1<e.get("custom_category").indexOf(Number(t)))return n++,e})),0<n);void 0!==t&&(this.collection.reset(t),this.collection.filtered=!0,delete t),this.collection.trigger("update"),this.collection.trigger("query:success",n)},customFilter:function(e){var t,i=0;if(this.collection.reset(c.data.themes,{silent:!0}),t=this.collection.filter(function(e){var t=Number(51);if(-1<e.get("custom_category").indexOf(Number(t)))return i++,e}),0<i);void 0!==t&&(this.collection.reset(t),this.collection.filtered=!0,delete t),this.collection.trigger("update"),this.collection.trigger("query:success",i)},saveUsername:function(e){var t=l("#wporg-username-input").val(),i={browse:"favorites",user:t},s=this;if(e&&e.preventDefault(),"keyup"!==e.type||13===e.which)return wp.ajax.send("save-wporg-username",{data:{username:t},success:function(){s.collection.query(i)}})},filtersChecked:function(){var e=l(".filter-group").find(":checkbox"),t=[];return _.each(e.filter(":checked"),function(e){t.push(l(e).prop("value"))}),0===t.length?(l(".filter-drawer .apply-filters").find("span").text(""),l(".filter-drawer .clear-filters").hide(),l("body").removeClass("filters-applied"),!1):(l(".filter-drawer .apply-filters").find("span").text(t.length),l(".filter-drawer .clear-filters").css("display","inline-block"),t)},activeClass:"current",searchContainer:l(".search-form"),uploader:function(){l("a.upload").on("click",function(e){e.preventDefault(),l("body").addClass("show-upload-theme"),c.router.navigate(c.router.baseUrl("?upload"),{replace:!0})}),l("a.browse-themes").on("click",function(e){e.preventDefault(),l("body").removeClass("show-upload-theme"),c.router.navigate(c.router.baseUrl(""),{replace:!0})})},moreFilters:function(e){return e.preventDefault(),l("body").hasClass("filters-applied")?this.backToFilters():l("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(this.clearSearch(),c.router.navigate(c.router.baseUrl("")),void l("body").toggleClass("show-filters"))},clearFilters:function(e){var t=l(".filter-group").find(":checkbox"),i=this;e.preventDefault(),_.each(t.filter(":checked"),function(e){return l(e).prop("checked",!1),i.filtersChecked()})},backToFilters:function(e){e&&e.preventDefault(),l("body").removeClass("filters-applied")},clearSearch:function(){l("#wp-filter-search-input").val("")}}),c.InstallerRouter=Backbone.Router.extend({routes:{"edit.php?post_type=ig_campaign&page=icegram-gallery&item=:id":"preview","edit.php?post_type=ig_campaign&page=icegram-gallery&browse=:sort":"sort","edit.php?post_type=ig_campaign&page=icegram-gallery":"sort","post-new.php?post_type=ig_campaign":"sort","edit.php?post_type=ig_campaign&page=icegram-gallery&search=:query":"search"},baseUrl:function(e){return"edit.php?post_type=ig_campaign&page=icegram-gallery"+e},themePath:"&item=",browsePath:"&browse=",searchPath:"&search=",search:function(e){l(".wp-filter-search").val(e)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),c.RunInstaller={init:function(){this.view=new c.view.Installer({section:"featured",SearchView:c.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:c.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var t=this,i={};c.router=new c.InstallerRouter,c.router.on("route:preview",function(e){i.id=e,t.view.collection.query(i),t.view.collection.once("update",function(){t.view.view.theme.preview()})}),c.router.on("route:sort",function(e){e=e||"featured",t.view.sort(e),t.view.trigger("theme:close")}),c.router.on("route:upload",function(){l("a.upload").trigger("click")}),c.router.on("route:search",function(){l(".wp-filter-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}};var t=function(e){var t="";switch(e){case"0":t="free";break;case"1":t="plus";break;case"2":t="pro";break;case"3":t="max"}return t};l(document).ready(function(){c.isInstall?c.RunInstaller.init():c.Run.init(),l(".broken-themes .delete-theme").on("click",function(){return confirm(_wpThemeSettings.settings.confirmDelete)})})}(jQuery),jQuery(document).ready(function(n){tb_position=function(){var e=n("#TB_window"),t=n(window).width(),i=n(window).height(),s=1040<t?1040:t,r=0;n("#wpadminbar").length&&(r=parseInt(n("#wpadminbar").css("height"),10)),e.size()&&(e.width(s-50).height(i-45-r),n("#TB_iframeContent").width(s-50).height(i-75-r),e.css({"margin-left":"-"+parseInt((s-50)/2,10)+"px"}),void 0!==document.body.style.maxWidth&&e.css({top:20+r+"px","margin-top":"0"}))},n(window).resize(function(){tb_position()})});
 
assets/js/icegram.min.js DELETED
@@ -1 +0,0 @@
1
- function Icegram(){}function Icegram_Message_Type(e){this.root_container="#icegram_messages_container",this.data=e,this.type=e.type,this.data.delay_time=parseInt(this.data.delay_time),"string"!=typeof this.data.link||""==this.data.link||/^tel:/i.test(this.data.link)||/^https?:\/\//i.test(this.data.link)||(this.data.link="http://"+this.data.link),this.set_template(this.get_template_default()),jQuery(window).trigger("msg_preinit.icegram",[this]),this.init()}Icegram.prototype.init=function(e){if(null!=e){jQuery(window).trigger("preinit.icegram",[e]),this.data=e,this.defaults=jQuery.extend({},e.defaults),this.message_data=e.messages,this.messages,this.tracking_data=[],this.message_template_cache={},this.map_id_to_index={},this.map_type_to_index={},this.mode=null==window.ig_mode?"local":window.ig_mode,this.powered_by={link:"https://www.icegram.com/?utm_source=inapp&utm_campaign=poweredby&utm_medium="},this.powered_by.text=this.defaults.powered_by_text,this.powered_by.logo=this.defaults.powered_by_logo,jQuery("body").append('<div id="icegram_messages_container"></div>');this.messages=[];var s=this;0<this.message_data.length&&jQuery.each(this.message_data,function(e,t){try{if(-1==window.location.href.indexOf("campaign_preview_id")){if("yes"==t.retargeting&&1==jQuery.cookie("icegram_campaign_shown_"+t.campaign_id))return;if("yes"==t.retargeting_clicked&&1==jQuery.cookie("icegram_campaign_clicked_"+t.campaign_id))return}"undefined"!==t.ig_mobile_popup&&1==t.ig_mobile_popup&&(t.delay_time=-1);var i=null,a=t.type.split("-").join(" ").ucwords().split(" ").join("_");i="function"==typeof window["Icegram_Message_Type_"+a]?new window["Icegram_Message_Type_"+a](t):new Icegram_Message_Type(t),s.messages.push(i),s.map_id_to_index["_"+t.id]=e,s.map_type_to_index[t.type]=jQuery.isArray(s.map_type_to_index[t.type])?s.map_type_to_index[t.type]:new Array,s.map_type_to_index[t.type].push(e)}catch(e){console.log(e)}}),jQuery(window).on("unload",function(){"function"==typeof window.icegram.submit_tracking_data&&window.icegram.submit_tracking_data(!1)}),setInterval(function(){"function"==typeof window.icegram.submit_tracking_data&&window.icegram.submit_tracking_data(!0)},5e3),jQuery(window).trigger("init.icegram",[this])}},Icegram.prototype.timer_tick=function(){},Icegram.prototype.get_template_fn=function(e){return this.message_template_cache[e]},Icegram.prototype.set_template_fn=function(e,t){this.message_template_cache[e]=t},Icegram.prototype.get_message=function(e){if(this.messages.length>e)return this.messages[e]},Icegram.prototype.get_message_by_id=function(e){if(this.map_id_to_index.hasOwnProperty("_"+e)){var t=this.map_id_to_index["_"+e];return this.get_message(t)}},Icegram.prototype.get_message_by_campaign_id=function(e){e=String(e);var a=[],t=this.messages;return e.indexOf(" ")&&(e=e.split(" ")),jQuery.each(e,function(e,i){jQuery.each(t,function(e,t){i==t.data.campaign_id&&a.push(t)})}),a},Icegram.prototype.get_messages_by_type=function(e){if(this.map_type_to_index.hasOwnProperty(e)){var t=this.map_type_to_index[e],i=[];if(jQuery.isArray(t)){var a=this;jQuery.each(t,function(e,t){i.push(a.get_message(t))})}return i}},Icegram.prototype.get_powered_by=function(e){var t=jQuery.extend({},this.powered_by);return t.link=t.link+(e||""),t},Icegram.prototype.track=function(e,t){"object"==typeof t&&t.hasOwnProperty("message_id")&&t.hasOwnProperty("campaign_id")&&-1==t.message_id.indexOf("_00")&&(jQuery(window).trigger("track.icegram",[e,t]),this.tracking_data.push({type:e,params:t}))},Icegram.prototype.submit_tracking_data=function(e){var t=window.location.protocol.split(":")[0],i=this.data.ajax_url.split("://")[0];if(0<this.tracking_data.length&&-1==window.location.href.indexOf("campaign_preview_id")&&!this.is_bot()){var a={type:"POST",url:this.data.ajax_url,async:e||!1,data:{action:"icegram_event_track",event_data:JSON.parse(JSON.stringify(this.tracking_data)),ig_remote_url:"remote"==this.mode?window.location.href:void 0},success:function(e,t,i){},error:function(e,t,i){}};"remote"==this.mode?(a.xhrFields={withCredentials:!0},a.crossDomain=!0,a.async=!0):t!=i&&(a.xhrFields={withCredentials:!0},jQuery.extend(a.data,{ig_local_url_cs:window.location.href})),jQuery.ajax(a),this.tracking_data=[]}},Icegram.prototype.is_bot=function(){return!!/bot|spider|crawl|sucker|ia_archiver|alexa|spade|slurp|webbug|ZyBorg|Feedfetcher-Google|Mediapartners-Google|aolserver|seamonkey|binlar|casper|comodo|feedfinder|jakarta|java|larbin|libwww|pycurl|linkwalker|steeler|nutch|turnit|zmeu/i.test(navigator.userAgent)},Icegram.prototype.hide_all_messages=function(){0<this.messages.length&&jQuery.each(this.messages,function(e,t){t.hide()})},Icegram_Message_Type.prototype.init=function(){this.render(),this.add_event_handlers()},Icegram_Message_Type.prototype.add_event_handlers=function(){this.el.on("click",{self:this},this.on_click),jQuery(window).on("resize",{self:this},this.on_resize)},Icegram_Message_Type.prototype.animations={},Icegram_Message_Type.prototype.embed_form=function(){if(-1===jQuery.inArray(this.data.type,["toast","badge","ribbon","exit-redirect"])){var e=null,t=this.data.form_layout,i=this.data.form_has_label,a=this.data.form_style||"none",s=this.data.label||void 0;if(a=a.toLowerCase().replace(" ","_"),null!=this.data.use_form&&"yes"==this.data.use_form&&(e=this.data.form_html),0<this.el.find("form.ig_embed_form").length){var r=this.el.find("form.ig_embed_form");t="inline",-1===jQuery.inArray(this.data.type,["messenger","tab","sidebar","interstitial","sticky"])&&(r.hasClass("ig_left")?t="left":r.hasClass("ig_right")&&(t="right")),"inline"==t&&this.el.find("form.ig_embed_form").replaceWith('<div class="ig_form_container layout_inline"></div>'),i=0<r.find(".ig_form_el_group label").length?"yes":void 0,0==r.find(".ig_button").length&&0==r.find("button[type=submit]").length&&(s=s||"Submit",r.append('<input class="ig_button" type="submit" value="'+s+'">')),e=jQuery("<div/>").append(r).html()}if(null==e)this.el.find(".ig_form_container").remove();else{var o=window.icegram.formProcess(this,e);if(o&&0==this.el.find(".ig_form_container form").length){var n=null!=this.data.form_header&&""!=this.data.form_header?'<div class="ig_form_header">'+this.data.form_header+"</div>":"",_=null!=this.data.form_footer&&""!=this.data.form_footer?'<div class="ig_form_footer">'+this.data.form_footer+"</div>":"",d=jQuery("<div/>").html(e);if(this.el.find(".ig_form_container").append(n).append(o).append(_),this.data.rainmaker_form_code&&""!=this.data.rainmaker_form_code){this.data.cta&&"form"!==this.data.cta&&this.data.show_response&&this.data.response_text&&(!this.data.response_text||""!=this.data.response_text)||(this.data.response_text=d.find(".rm_form_message").html()||""),this.el.find(".ig_form_container").addClass(d.find(".rm_form_container").data("type")).data("form-id",d.find(".rm_form_container").data("form-id")).addClass("rainmaker_form");var l=d.find("#rm_script"),c=d.find("#rm_style");this.el.find(".ig_form_container").prepend(c).append(l);var p=d.find(".rm_captcha"),g=d.find(".rm_form_error_message");this.el.find(".ig_form_container form").prepend(g).append(p)}if(0<this.el.find('[data-es_form_id = "es_shortcode_form" ]').length){this.el.find('[data-es_form_id = "es_shortcode_form" ]').addClass("es_shortcode_form");var m=jQuery(e).find(".es_captcha");this.el.find(".es_shortcode_form").parent().append(m),this.el.find(".es_shortcode_form").parent().addClass("es_form_container")}if(0<this.el.find('form[data-source="ig-es"]').length){m=jQuery(e).find(".es_captcha");this.el.find('form[data-source="ig-es"] .ig_button').parent().before(m),this.el.find('form[data-source="ig-es"] .es_captcha').addClass("ig_form_els"),this.el.find('form[data-source="ig-es"]').addClass("es_form_container")}null==i?this.el.find(".ig_el_label").not("span.ig_el_label").remove():(this.el.find("input, textarea").removeAttr("placeholder"),this.el.find("select option.ig_el_placeholder").remove()),0<this.el.find(".ig_form_container .ig_button").length&&(this.el.find(".ig_button").not(".ig_form_container .ig_button").hide(),s=s||this.el.find(".ig_button").val()||"Submit",this.el.find(".ig_button").val(s)),this.el.addClass("ig_form_"+t);var f="";null!=this.data.form_bg_color&&""!=this.data.form_bg_color?(this.el.find(".ig_form_container").css("background-color",this.data.form_bg_color),f+=".ig_form_"+t+".ig_form_"+a+" .ig_form_container:before{ background-color:"+this.data.form_bg_color+"; border-color:"+this.data.form_bg_color+";}"):f+=".ig_form_"+t+".ig_form_"+a+" .ig_form_container:before{ display:none;}",null!=this.data.form_text_color&&""!=this.data.form_text_color&&this.el.find(".ig_form_container").css("color",this.data.form_text_color),this.el.addClass("ig_form_"+a).find(".ig_form_container").prepend('<style type="text/css">'+f+"</style>"),jQuery.each(this.el.find(".ig_form_container")||[],function(e,t){jQuery(t).find(".ig_form_els").first().addClass("ig_form_els_first").end().last().addClass("ig_form_els_last")})}}}},Icegram_Message_Type.prototype.render=function(){this.pre_render();var e=this.render_template();try{jQuery(this.root_container).append(e)}catch(e){}this.dom_id="icegram_message_"+this.data.id,this.el=jQuery("#"+this.dom_id),this.set_position();var t=window.icegram.get_powered_by(this.type);if(t.hasOwnProperty("link")&&t.hasOwnProperty("text")&&""!=t.text&&this.add_powered_by(t),null!=this.data.headline&&""!=this.data.headline||this.el.find(".ig_headline").hide(),null!=this.data.icon&&""!=this.data.icon||this.el.addClass("ig_no_icon").find(".ig_icon").remove(),null!=this.data.message&&""!=this.data.message||this.el.find(".ig_message").hide(),null!=this.data.label&&""!=this.data.label||this.el.find(".ig_button").hide(),this.embed_form(),null==this.data.use_theme_defaults||"yes"!=this.data.use_theme_defaults){if(null!=this.data.text_color&&""!=this.data.text_color&&(this.el.css("color",this.data.text_color),this.el.find(".ig_container").css("color",this.data.text_color)),null!=this.data.bg_color&&""!=this.data.bg_color&&(this.el.css("background-color",this.data.bg_color),this.el.find(".ig_container").css("background-color",this.data.bg_color)),null!=this.data.cta_bg_color&&""!=this.data.cta_bg_color){this.el.find('.ig_button, form input[type="submit"]').css("background-color",this.data.cta_bg_color);var i=window.icegram.hexToHsl(this.data.cta_bg_color);this.el.find('.ig_button, form input[type="submit"]').css("border-color","hsl("+i.h+","+(i.s-5)+"%,"+(i.l-8)+"%)")}null!=this.data.cta_text_color&&""!=this.data.cta_text_color&&this.el.find('.ig_button, form input[type="submit"]').css("color",this.data.cta_text_color)}this.data.use_custom_code&&this.data.custom_css&&this.el.prepend('<style id="ig_custom_css_'+this.data.id+'" type="text/css">'+this.data.custom_css.replace(/#ig_this_message/g,"#"+this.dom_id)+"</style>"),"string"==typeof this.data.link&&""!=this.data.link&&this.el.parent().find(".ig_cta, .ig_button").css("cursor","pointer"),this.post_render(),this.hide({},!0),this.set_up_show_trigger()},Icegram.prototype.formProcess=function(e,t){var i=jQuery("<div/>").html(t).find('input[name="fake_text"]').data("required_field",!0).end().find("input.rm_required_feild").data("required_field",!0).end().find(".gform_validation_container input").data("required_field",!0).end().find(".rm_captcha_input").data("keep_class",!0).end().find(".es_captcha_input").data("keep_class",!0).end().find(".gdpr-label").data("keep_class",!0).end().find(".required_field").data("required_field",!0).end().find("input, label, select, textarea, button").not(".rm_captcha_input, .rm_captcha_verify").not(".es_captcha_input, .es_captcha_verify ").not("br");if(0<i.length){var r=jQuery('<div class="ig_embed_form_container ig_clear_fix"></div>'),a=jQuery("<div/>").html(t).find("form").removeAttr("class").removeAttr("style").addClass("ig_clear_fix").empty(),o=".",n=0;jQuery.each(i,function(e,t){var i=jQuery(t),a=jQuery('<div class="ig_form_els"></div>');if(i.removeAttr("style"),i.data("keep_class")||i.removeAttr("class"),(-1==i.attr("tabindex")||i.is('*[name*="[abs]"]')||i.data("required_field")||"data[email]"==i.attr("name")||"_mc4wp_required_but_not_really"==i.attr("name"))&&(i.addClass("ig_form_required_field").removeData("required_field"),n--),"hidden"!=i.attr("type")&&!0!==i.prop("disabled")||(i.addClass("ig_form_hidden_field"),n--),i.is("label"))o="gdpr-label"==i.attr("class")?(i.find("input[type=checkbox]").remove(),i.not("input, select, textarea, button, span, br").html().replace(/\s+/g," ")||"."):i.not("input, select, textarea, button, span, br").text().replace(/\s+/g," ")||".";else if(!(i.is("input")||i.is("button")||i.is("textarea")||i.is("select"))||i.is("input[type=radio]")||i.is("input[type=checkbox]"))(i.is("input[type=radio]")||i.is("input[type=checkbox]"))&&(label_class="ig_el_label ig_button_label","."!=o&&(label_class="ig_el_label"),jQuery('<label><span class="'+label_class+'">'+o+"</span></label>").prepend(i).appendTo(a),o=".",a.addClass("ig_form_el_radio"),r.append(a),n++);else{if(i.removeAttr("id"),i.is("button")){var s=i.not("br, span, div").text().trim()||"";i.remove(),i=jQuery('<input type="submit" value="'+s+'">')}!i.is("input[type=submit]")&&!i.is("input[type=button]")||i.is(".ig_form_hidden_field, .ig_form_required_field")||i.addClass("ig_button"),(i.is("input[type=text]")||i.is("input[type=email]"))&&i.attr("size",25),label_class="ig_el_label ig_button_label","."!=o&&(label_class="ig_el_label",i.is("select")?jQuery('<option class="ig_el_placeholder">'+o+"</option>").prependTo(i):i.attr("placeholder",o)),jQuery('<label class="'+label_class+'">'+o+"</label>").appendTo(a),o=".",a.append(i),r.append(a),n++}});return n=n<4?n:4,r.find(".ig_form_required_field").length<=0&&r.append('<div class="ig_form_els"><input class="ig_form_required_field" type="text" tabindex="-1" value="" /></div>'),r.addClass(["","ig_full","ig_half","ig_third","ig_quater"][n]).find(".ig_form_required_field").parent().removeClass("ig_form_els").css({position:"absolute",left:"-5000px"}).end().end().find(".ig_form_hidden_field").parent().removeClass("ig_form_els").css({display:"none"}),a.append(r),jQuery("<div/>").append(a).html()}return null},Icegram_Message_Type.prototype.render_template=function(){return"function"!=typeof window.icegram.get_template_fn(this.type)&&window.icegram.set_template_fn(this.type,new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+this.template.replace(/[\r\t\n]/g," ").split("{{").join("\t").replace(/((^|\}\})[^\t]*)'/g,"$1\r").replace(/\t=(.*?)\}\}/g,"',$1,'").split("\t").join("');").split("}}").join("p.push('").split("\r").join("\\'")+"');}return p.join('');")),window.icegram.get_template_fn(this.type)(this.data)},Icegram_Message_Type.prototype.pre_render=function(){},Icegram_Message_Type.prototype.post_render=function(){},Icegram_Message_Type.prototype.set_up_show_trigger=function(){if(isNaN(this.data.delay_time))this.show();else if(0<=this.data.delay_time){var e=this;this.timer=setTimeout(function(){e.show()},1e3*this.data.delay_time)}},Icegram_Message_Type.prototype.set_template=function(e){this.template=e},Icegram_Message_Type.prototype.get_template_default=function(){return'<div id="icegram_message_{{=id}}" class="icegram"><div class="ig_headline">{{=headline}}</div></div>'},Icegram_Message_Type.prototype.show=function(e,t){this.is_visible()||(this.animate("in"),this.pre_show(),this.el.show(e),this.el.addClass("ig_show").removeClass("ig_hide"),!0!==t&&this.track("shown"),this.post_show());window.icegram.adjustFormContainerHeight(this)},Icegram_Message_Type.prototype.hide=function(e,t){if(this.is_visible()){var i=this;this.animate("out"),this.pre_hide(),setTimeout(function(){i.el.hasClass("ig_no_hide")||i.el.hide(e),i.el.addClass("ig_hide").removeClass("ig_show")},500),!0!==t&&this.track("closed"),this.post_hide()}},Icegram_Message_Type.prototype.set_position=function(){},Icegram_Message_Type.prototype.add_powered_by=function(e){},Icegram_Message_Type.prototype.pre_show=function(){},Icegram_Message_Type.prototype.post_show=function(){},Icegram_Message_Type.prototype.pre_hide=function(){},Icegram_Message_Type.prototype.post_hide=function(){},Icegram_Message_Type.prototype.track=function(e,t){"function"==typeof window.icegram.track&&(t=t||{},jQuery.extend(t,{message_id:this.data.id,campaign_id:this.data.campaign_id,expiry_time:this.data.expiry_time,expiry_time_clicked:this.data.expiry_time_clicked}),window.icegram.track(e,t))},Icegram_Message_Type.prototype.is_visible=function(){return this.el.hasClass("ig_show")},Icegram_Message_Type.prototype.toggle=function(e){this.is_visible()?this.hide(e):this.show(e)},Icegram_Message_Type.prototype.on_click=function(e){if(e.data=e.data||{self:this},jQuery(e.target).filter(".ig_close").length||jQuery(e.target).parents(".ig_close").length)e.data.self.hide();else{var t=jQuery(e.target).closest(".icegram").find("form:visible").first();(jQuery(e.target).filter(".ig_button, .ig_cta, :submit").length||jQuery(e.target).parents("button[type=submit]").length||jQuery(e.target).filter(".es_submit_button").length||jQuery(e.target).parents(".ig_button, .ig_cta").length&&!(0<t.find(".ig_button, input[type=button], input[type=submit], button[type=submit]").length))&&jQuery(e.target).not(".donot-track").length&&e.data.self.on_cta_click(e)}},Icegram_Message_Type.prototype.on_resize=function(e){},Icegram_Message_Type.prototype.on_cta_click=function(e){e.data=e.data||{self:this};var t=jQuery(e.target).closest(".icegram").find("form:visible").first();if(jQuery(t).length&&jQuery(t).find(".ig_form_required_field").length&&""!==jQuery(t).find(".ig_form_required_field").val())return e.preventDefault(),void e.data.self.hide();e.data.self.track("clicked"),jQuery(t).length?jQuery(t).submit(function(e){jQuery(t).hasClass("ig_form_init_done")&&e.preventDefault()}):"string"==typeof e.data.self.data.link&&""!=e.data.self.data.link?(window.location.href=e.data.self.data.link,e.data.self.hide()):!1!==e.data.self.data.hide&&e.data.self.hide()},Icegram_Message_Type.prototype.animate=function(e){if(void 0!==this.data.animation){var t=this.data.animation,i=this;"in"==e?"function"==typeof this.animations[t+"_in"]?this.animations[t+"_in"](i):this.el.hasClass("ig_anim_"+t+"_in")||(this.el.removeClass("ig_anim_"+t+"_out"),setTimeout(function(){i.el.addClass("ig_anim_"+t+"_in")},1)):"out"==e&&("function"==typeof this.animations[t+"_out"]?this.animations[t+"_out"](i):(this.el.removeClass("ig_anim_"+t+"_in"),setTimeout(function(){i.el.addClass("ig_anim_"+t+"_out")},1)))}},String.prototype.ucwords=function(){return this.toLowerCase().replace(/\b[a-z]/g,function(e){return e.toUpperCase()})},Icegram.prototype.adjustFormContainerHeight=function(e){var t="";if(e.el.hasClass("ig_form_left")||e.el.hasClass("ig_form_right")){t=e.el.hasClass("ig_form_left")?"left":"right";var i=e.el.find(".ig_data").outerHeight()>e.el.find(".ig_form_container.layout_"+t).outerHeight()?e.el.find(".ig_data").outerHeight():e.el.find(".ig_form_container.layout_"+t).outerHeight();e.el.find(".ig_form_container").outerHeight(i)}},Icegram.prototype.hexToRgb=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},Icegram.prototype.rgbToHsl=function(e,t,i){e/=255,t/=255,i/=255;var a,s,r=Math.max(e,t,i),o=Math.min(e,t,i),n=(r+o)/2;if(r==o)a=s=0;else{var _=r-o;switch(s=.5<n?_/(2-r-o):_/(r+o),r){case e:a=(t-i)/_;break;case t:a=(i-e)/_+2;break;case i:a=(e-t)/_+4}n=Math.floor(100*n),s=Math.floor(100*s),(a=Math.floor(60*a))<0&&(a+=360)}return{h:a,s:s,l:n}},Icegram.prototype.hexToHsl=function(e){var t=window.icegram.hexToRgb(e);return window.icegram.rgbToHsl(t.r,t.g,t.b)},"function"!=typeof Object.create&&function(){function t(){}Object.create=function(e){if(1<arguments.length)throw Error("Second argument not supported");if(null===e)throw Error("Cannot set a null [[Prototype]]");if("object"!=typeof e)throw TypeError("Argument must be an object");return t.prototype=e,new t}}();var es_responseHandler=function(e,t){if("undefined"!=typeof icegram){var i=((jQuery(e.target).closest("[id^=icegram_message_]")||{}).attr("id")||"").split("_").pop()||0,a=icegram.get_message_by_id(i)||void 0;void 0!==a&&(jQuery(e.target).find(".es_msg_ig").remove(),"form_via_ajax"===a.data.cta&&"success"===t.detail.es_response?(""===a.data.response_text&&(a.data.response_text=t.detail.msg),a.el.trigger("form_success.ig_cta",[a])):void 0!==a.data.use_form&&jQuery(e.target).append('<div class="es_msg es_msg_ig es_subscription_message '+t.detail.es_response+'">'+t.detail.msg+"</div>"))}};jQuery(document).on("es_response",es_responseHandler),jQuery.cookie,function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(jQuery)}(function(g){function m(e){return h.raw?e:encodeURIComponent(e)}function f(e,t){var i=h.raw?e:function(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return e=decodeURIComponent(e.replace(a," ")),h.json?JSON.parse(e):e}catch(e){}}(e);return g.isFunction(t)?t(i):i}var a=/\+/g,h=g.cookie=function(e,t,i){if(void 0!==t&&!g.isFunction(t)){if("number"==typeof(i=g.extend({},h.defaults,i)).expires){var a=i.expires,s=i.expires=new Date;s.setTime(+s+864e5*a)}return document.cookie=[m(e),"=",function(e){return m(h.json?JSON.stringify(e):String(e))}(t),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var r,o=e?void 0:{},n=document.cookie?document.cookie.split("; "):[],_=0,d=n.length;_<d;_++){var l=n[_].split("="),c=(r=l.shift(),h.raw?r:decodeURIComponent(r)),p=l.join("=");if(e&&e===c){o=f(p,t);break}e||void 0===(p=f(p))||(o[c]=p)}return o};h.defaults={},g.removeCookie=function(e,t){return void 0!==g.cookie(e)&&(g.cookie(e,"",g.extend({},t,{expires:-1})),!g.cookie(e))}});;function Icegram_Message_Type_Action_Bar(e){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Action_Bar.prototype=Object.create(Icegram_Message_Type.prototype),(Icegram_Message_Type_Action_Bar.prototype.constructor=Icegram_Message_Type_Action_Bar).prototype.get_template_default=function(){return'<div class="icegram action_bar_{{=id}}" ><div class="ig_action_bar ig_container ig_{{=theme}} ig_no_hide" id="icegram_message_{{=id}}"><div class="ig_content ig_clear_fix"><div class="ig_close" id="ig_close_{{=id}}"><span></span></div><div class="ig_form_container layout_left"></div><div class="ig_data ig_clear_fix"><div class="ig_headline">{{=headline}}</div><div class="ig_message">{{=message}}</div></div><div class="ig_button">{{=label}}</div><div class="ig_form_container layout_right layout_bottom"></div></div></div></div>'},Icegram_Message_Type_Action_Bar.prototype.post_render=function(){Icegram_Message_Type.prototype.post_render.apply(this,arguments),null!=this.data.use_theme_defaults&&"yes"==this.data.use_theme_defaults||null!=this.data.bg_color&&""!=this.data.bg_color&&this.el.find(".ig_close").css("background-color",this.data.bg_color),"21"!==this.data.position&&0==jQuery("#ig_body_pushdown").length&&jQuery("body").prepend('<div id="ig_body_pushdown"></div>')},Icegram_Message_Type_Action_Bar.prototype.set_position=function(){switch(this.data.position){case"21":this.el.addClass("ig_bottom");break;case"01":default:this.el.addClass("ig_top")}},Icegram_Message_Type_Action_Bar.prototype.add_powered_by=function(e){this.el.addClass("ig_has_pwby").find(".ig_content").before('<div class="ig_powered_by" ><a href="'+e.link+'" target="_blank"><img src="'+e.logo+'" title="'+e.text+'"/></a></div>')},Icegram_Message_Type_Action_Bar.prototype.on_click=function(e){e.data=e.data||{self:this},jQuery(e.target).filter(".ig_show .ig_close, .ig_show .ig_close span").length?e.data.self.hide():jQuery(e.target).filter(".ig_hide .ig_close, .ig_hide .ig_close span").length?e.data.self.show():Icegram_Message_Type.prototype.on_click.apply(this,arguments)},Icegram_Message_Type_Action_Bar.prototype.post_show=function(){if("21"!==this.data.position){var i=this.el.outerHeight()||0;jQuery("#ig_body_pushdown").css("display","block").animate({height:i},500),jQuery("*",document.body).not(".ig_action_bar, .ig_popup, .ig_messenger, .ig_inline, .ig_overlay, .ig_sidebar, .ig_tab, .ig_interstitial ,#ig_body_pushdown ").each(function(){var e=window.getComputedStyle(this,null);("fixed"===e.position||"absolute"===e.position&&("BODY"===this.parentNode.nodeName||"HEADER"===this.nodeName))&&!isNaN(parseInt(e.top,10))&&this.getBoundingClientRect().top<=i&&jQuery(this).data("ig_fx_top",e.top).animate({top:parseInt(e.top,10)+i+"px"},300)})}},Icegram_Message_Type_Action_Bar.prototype.pre_hide=function(){"21"!==this.data.position&&(jQuery("#ig_body_pushdown").animate({height:0},300).css("display","none"),jQuery("*",document.body).not(".ig_action_bar, .ig_popup, .ig_messenger, .ig_inline, .ig_overlay, .ig_sidebar, .ig_tab, .ig_interstitial ,#ig_body_pushdown ").each(function(){void 0!==jQuery(this).data("ig_fx_top")&&jQuery(this).animate({top:jQuery(this).data("ig_fx_top")},200)}))};;function Icegram_Message_Type_Messenger(e){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Messenger.prototype=Object.create(Icegram_Message_Type.prototype),(Icegram_Message_Type_Messenger.prototype.constructor=Icegram_Message_Type_Messenger).prototype.get_template_default=function(){return'<div class="icegram ig_messenger ig_{{=theme}} ig_container ig_cta" id="icegram_message_{{=id}}"><div class="ig_content"><div class="ig_close" id="ig_close_{{=id}}"></div><div class="ig_data"><div class="ig_headline">{{=headline}}</div><div class="ig_body"><img class="ig_icon" src="{{=icon}}"/><div class="ig_message">{{=message}}</div></div><div class="ig_footer"></div></div></div></div>'},Icegram_Message_Type_Messenger.prototype.set_position=function(){switch(this.data.position){case"20":this.el.addClass("ig_left ig_bottom");break;case"22":default:this.el.addClass("ig_right ig_bottom")}},Icegram_Message_Type_Messenger.prototype.add_powered_by=function(e){this.el.addClass("ig_has_pwby").find(".ig_content").after('<div class="ig_powered_by"><a href="'+e.link+'" target="_blank">'+e.text+"</a></div>")};;function Icegram_Message_Type_Popup(e){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Popup.prototype=Object.create(Icegram_Message_Type.prototype),(Icegram_Message_Type_Popup.prototype.constructor=Icegram_Message_Type_Popup).prototype.get_template_default=function(){return'<div id="icegram_message_{{=id}}" class="icegram ig_popup ig_{{=theme}} ig_container mfp-hide"><div class="ig_close" id="popup_box_close_{{=id}}"></div><div class="ig_clear_fix" data={{=id}}><div class="ig_bg_overlay"></div><div class="ig_form_container layout_left"></div><div class="ig_data ig_clear_fix"><div class="ig_headline">{{=headline}}</div><div class="ig_content"><div class="ig_message ig_clear_fix">{{=message}}</div></div><div class="ig_button" >{{=label}}</div></div><div class="ig_form_container layout_right layout_bottom"></div></div></div>'},Icegram_Message_Type_Popup.prototype.post_render=function(){Icegram_Message_Type.prototype.post_render.apply(this,arguments),null!=this.data.use_theme_defaults&&"yes"==this.data.use_theme_defaults||null!=this.data.bg_color&&""!=this.data.bg_color&&this.el.find(".ig_bg_overlay").css("border-color",this.data.bg_color)},Icegram_Message_Type_Popup.prototype.show=function(e,t){if(!this.is_visible()){var i=this,o="#icegram_message_"+this.data.id;this.animate("in"),window.ig_popup=jQuery.magnificPopup,window.ig_popup.open({items:{src:o,type:"inline"},showCloseBtn:!1,callbacks:{close:function(){!0!==t&&i.track("closed"),i.el.removeClass("ig_show")},open:function(){window.icegram.adjustFormContainerHeight(i)}}}),i.el.addClass("ig_show").removeClass("ig_hide"),!0!==t&&this.track("shown")}},Icegram_Message_Type_Popup.prototype.add_powered_by=function(e){setTimeout(function(){jQuery(".mfp-wrap").append('<div class="ig_powered_by"><a href="'+e.link+'" target="_blank">'+e.text+"</a></div>")},1e3+1e3*this.data.delay_time)},Icegram_Message_Type_Popup.prototype.hide=function(e,t){if(this.is_visible()){var i="#icegram_message_"+this.data.id,o=this;this.animate("out"),setTimeout(function(){o.el.addClass("ig_hide").removeClass("ig_show"),jQuery.magnificPopup.close({items:{src:i,type:"inline"}})},500)}},void 0===window.ig_popup&&function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(p){function e(){}function d(e,t){g.ev.on(i+e+C,t)}function u(e,t,i,o){var n=document.createElement("div");return n.className="mfp-"+e,i&&(n.innerHTML=i),o?t&&t.appendChild(n):(n=p(n),t&&n.appendTo(t)),n}function m(e,t){g.ev.triggerHandler(i+e,t),g.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),g.st.callbacks[e]&&g.st.callbacks[e].apply(g,p.isArray(t)?t:[t]))}function f(e){return e===t&&g.currTemplate.closeBtn||(g.currTemplate.closeBtn=p(g.st.closeMarkup.replace("%title%",g.st.tClose)),t=e),g.currTemplate.closeBtn}function a(){p.magnificPopup.instance||((g=new e).init(),p.magnificPopup.instance=g)}var g,o,v,n,h,t,l="Close",c="BeforeClose",_="MarkupParse",y="Open",i="mfp",C="."+i,w="mfp-ready",s="mfp-removing",r=!!window.jQuery,b=p(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;g.isIE7=-1!==e.indexOf("MSIE 7."),g.isIE8=-1!==e.indexOf("MSIE 8."),g.isLowIE=g.isIE7||g.isIE8,g.isAndroid=/android/gi.test(e),g.isIOS=/iphone|ipad|ipod/gi.test(e),g.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),g.probablyMobile=g.isAndroid||g.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),v=p(document),g.popupsCache={}},open:function(e){var t;if(!1===e.isObj){g.items=e.items.toArray(),g.index=0;var i,o=e.items;for(t=0;t<o.length;t++)if((i=o[t]).parsed&&(i=i.el[0]),i===e.el[0]){g.index=t;break}}else g.items=p.isArray(e.items)?e.items:[e.items],g.index=e.index||0;if(!g.isOpen){g.types=[],h="",e.mainEl&&e.mainEl.length?g.ev=e.mainEl.eq(0):g.ev=v,e.key?(g.popupsCache[e.key]||(g.popupsCache[e.key]={}),g.currTemplate=g.popupsCache[e.key]):g.currTemplate={},g.st=p.extend(!0,{},p.magnificPopup.defaults,e),g.fixedContentPos="auto"===g.st.fixedContentPos?!g.probablyMobile:g.st.fixedContentPos,g.st.modal&&(g.st.closeOnContentClick=!1,g.st.closeOnBgClick=!1,g.st.showCloseBtn=!1,g.st.enableEscapeKey=!1),g.bgOverlay||(g.bgOverlay=u("bg").on("click"+C,function(){g.close()}),g.wrap=u("wrap").attr("tabindex",-1).on("click"+C,function(e){g._checkIfClose(e.target)&&g.close()}),g.container=u("container",g.wrap)),g.contentContainer=u("content"),g.st.preloader&&(g.preloader=u("preloader",g.container,g.st.tLoading));var n=p.magnificPopup.modules;for(t=0;t<n.length;t++){var a=n[t];a=a.charAt(0).toUpperCase()+a.slice(1),g["init"+a].call(g)}m("BeforeOpen"),g.st.showCloseBtn&&(g.st.closeBtnInside?(d(_,function(e,t,i,o){i.close_replaceWith=f(o.type)}),h+=" mfp-close-btn-in"):g.wrap.append(f())),g.st.alignTop&&(h+=" mfp-align-top"),g.fixedContentPos?g.wrap.css({overflow:g.st.overflowY,overflowX:"hidden",overflowY:g.st.overflowY}):g.wrap.css({top:b.scrollTop(),position:"absolute"}),!1!==g.st.fixedBgPos&&("auto"!==g.st.fixedBgPos||g.fixedContentPos)||g.bgOverlay.css({height:v.height(),position:"absolute"}),g.st.enableEscapeKey&&v.on("keyup"+C,function(e){27===e.keyCode&&g.close()}),b.on("resize"+C,function(){g.updateSize()}),g.st.closeOnContentClick||(h+=" mfp-auto-cursor"),h&&g.wrap.addClass(h);var s=g.wH=b.height(),r={};if(g.fixedContentPos&&g._hasScrollBar(s)){var l=g._getScrollbarSize();l&&(r.marginRight=l)}g.fixedContentPos&&(g.isIE7?p("body, html").css("overflow","hidden"):r.overflow="hidden");var c=g.st.mainClass;return g.isIE7&&(c+=" mfp-ie7"),c&&g._addClassToMFP(c),g.updateItemHTML(),m("BuildControls"),p("html").css(r),g.bgOverlay.add(g.wrap).prependTo(g.st.prependTo||p(document.body)),g._lastFocusedEl=document.activeElement,setTimeout(function(){g.content?(g._addClassToMFP(w),g._setFocus()):g.bgOverlay.addClass(w),v.on("focusin"+C,g._onFocusIn)},16),g.isOpen=!0,g.updateSize(s),m(y),e}g.updateItemHTML()},close:function(){g.isOpen&&(m(c),g.isOpen=!1,g.st.removalDelay&&!g.isLowIE&&g.supportsTransition?(g._addClassToMFP(s),setTimeout(function(){g._close()},g.st.removalDelay)):g._close())},_close:function(){m(l);var e=s+" "+w+" ";if(g.bgOverlay.detach(),g.wrap.detach(),g.container.empty(),g.st.mainClass&&(e+=g.st.mainClass+" "),g._removeClassFromMFP(e),g.fixedContentPos){var t={marginRight:""};g.isIE7?p("body, html").css("overflow",""):t.overflow="",p("html").css(t)}v.off("keyup.mfp focusin"+C),g.ev.off(C),g.wrap.attr("class","mfp-wrap").removeAttr("style"),g.bgOverlay.attr("class","mfp-bg"),g.container.attr("class","mfp-container"),!g.st.showCloseBtn||g.st.closeBtnInside&&!0!==g.currTemplate[g.currItem.type]||!g.currTemplate.closeBtn||g.currTemplate.closeBtn.detach(),g._lastFocusedEl&&p(g._lastFocusedEl).focus(),g.currItem=null,g.content=null,g.currTemplate=null,g.prevHeight=0,m("AfterClose")},updateSize:function(e){if(g.isIOS){var t=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*t;g.wrap.css("height",i),g.wH=i}else g.wH=e||b.height();g.fixedContentPos||g.wrap.css("height",g.wH),m("Resize")},updateItemHTML:function(){var e=g.items[g.index];g.contentContainer.detach(),g.content&&g.content.detach(),e.parsed||(e=g.parseEl(g.index));var t=e.type;if(m("BeforeChange",[g.currItem?g.currItem.type:"",t]),g.currItem=e,!g.currTemplate[t]){var i=!!g.st[t]&&g.st[t].markup;m("FirstMarkupParse",i),g.currTemplate[t]=!i||p(i)}n&&n!==e.type&&g.container.removeClass("mfp-"+n+"-holder");var o=g["get"+t.charAt(0).toUpperCase()+t.slice(1)](e,g.currTemplate[t]);g.appendContent(o,t),e.preloaded=!0,m("Change",e),n=e.type,g.container.prepend(g.contentContainer),m("AfterChange")},appendContent:function(e,t){(g.content=e)?g.st.showCloseBtn&&g.st.closeBtnInside&&!0===g.currTemplate[t]?g.content.find(".mfp-close").length||g.content.append(f()):g.content=e:g.content="",m("BeforeAppend"),g.container.addClass("mfp-"+t+"-holder"),g.contentContainer.append(g.content)},parseEl:function(e){var t,i=g.items[e];if((i=i.tagName?{el:p(i)}:(t=i.type,{data:i,src:i.src})).el){for(var o=g.types,n=0;n<o.length;n++)if(i.el.hasClass("mfp-"+o[n])){t=o[n];break}i.src=i.el.attr("data-mfp-src"),i.src||(i.src=i.el.attr("href"))}return i.type=t||g.st.type||"inline",i.index=e,i.parsed=!0,g.items[e]=i,m("ElementParse",i),g.items[e]},addGroup:function(t,i){function e(e){e.mfpEl=this,g._openClick(e,t,i)}var o="click.magnificPopup";(i=i||{}).mainEl=t,i.items?(i.isObj=!0,t.off(o).on(o,e)):(i.isObj=!1,i.delegate?t.off(o).on(o,i.delegate,e):(i.items=t).off(o).on(o,e))},_openClick:function(e,t,i){if((void 0!==i.midClick?i.midClick:p.magnificPopup.defaults.midClick)||2!==e.which&&!e.ctrlKey&&!e.metaKey){var o=void 0!==i.disableOn?i.disableOn:p.magnificPopup.defaults.disableOn;if(o)if(p.isFunction(o)){if(!o.call(g))return!0}else if(b.width()<o)return!0;e.type&&(e.preventDefault(),g.isOpen&&e.stopPropagation()),i.el=p(e.mfpEl),i.delegate&&(i.items=t.find(i.delegate)),g.open(i)}},updateStatus:function(e,t){if(g.preloader){o!==e&&g.container.removeClass("mfp-s-"+o),t||"loading"!==e||(t=g.st.tLoading);var i={status:e,text:t};m("UpdateStatus",i),e=i.status,t=i.text,g.preloader.html(t),g.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),g.container.addClass("mfp-s-"+e),o=e}},_checkIfClose:function(e){if(!p(e).hasClass("mfp-prevent-close")){var t=g.st.closeOnContentClick,i=g.st.closeOnBgClick;if(t&&i)return!0;if(!g.content||p(e).hasClass("mfp-close")||g.preloader&&e===g.preloader[0])return!0;if(e===g.content[0]||p.contains(g.content[0],e)){if(t)return!0}else if(i&&p.contains(document,e))return!0;return!1}},_addClassToMFP:function(e){g.bgOverlay.addClass(e),g.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),g.wrap.removeClass(e)},_hasScrollBar:function(e){return(g.isIE7?v.height():document.body.scrollHeight)>(e||b.height())},_setFocus:function(){(g.st.focus?g.content.find(g.st.focus).eq(0):g.wrap).focus()},_onFocusIn:function(e){if(e.target!==g.wrap[0]&&!p.contains(g.wrap[0],e.target))return g._setFocus(),!1},_parseMarkup:function(n,e,t){var a;t.data&&(e=p.extend(t.data,e)),m(_,[n,e,t]),p.each(e,function(e,t){if(void 0===t||!1===t)return!0;if(1<(a=e.split("_")).length){var i=n.find(C+"-"+a[0]);if(0<i.length){var o=a[1];"replaceWith"===o?i[0]!==t[0]&&i.replaceWith(t):"img"===o?i.is("img")?i.attr("src",t):i.replaceWith('<img src="'+t+'" class="'+i.attr("class")+'" />'):i.attr(a[1],t)}}else n.find(C+"-"+e).html(t)})},_getScrollbarSize:function(){if(void 0===g.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),g.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return g.scrollbarSize}},p.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return a(),(e=e?p.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return p.magnificPopup.instance&&p.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(p.magnificPopup.defaults[e]=t.options),p.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},p.fn.magnificPopup=function(e){a();var t=p(this);if("string"==typeof e)if("open"===e){var i,o=r?t.data("magnificPopup"):t[0].magnificPopup,n=parseInt(arguments[1],10)||0;i=o.items?o.items[n]:(i=t,o.delegate&&(i=i.find(o.delegate)),i.eq(n)),g._openClick({mfpEl:i},t,o)}else g.isOpen&&g[e].apply(g,Array.prototype.slice.call(arguments,1));else e=p.extend(!0,{},e),r?t.data("magnificPopup",e):t[0].magnificPopup=e,g.addGroup(t,e);return t};function I(){k&&(P.after(k.addClass(T)).detach(),k=null)}var T,P,k,x="inline";p.magnificPopup.registerModule(x,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){g.types.push(x),d(l+"."+x,function(){I()})},getInline:function(e,t){if(I(),e.src){var i=g.st.inline,o=p(e.src);if(o.length){var n=o[0].parentNode;n&&n.tagName&&(P||(T=i.hiddenClass,P=u(T),T="mfp-"+T),k=o.after(P).detach().removeClass(T)),g.updateStatus("ready")}else g.updateStatus("error",i.tNotFound),o=p("<div>");return e.inlineElement=o}return g.updateStatus("ready"),g._parseMarkup(t,{},e),t}}});var S;p.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var e=g.st.image,t=".image";g.types.push("image"),d(y+t,function(){"image"===g.currItem.type&&e.cursor&&p(document.body).addClass(e.cursor)}),d(l+t,function(){e.cursor&&p(document.body).removeClass(e.cursor),b.off("resize"+C)}),d("Resize"+t,g.resizeImage),g.isLowIE&&d("AfterChange",g.resizeImage)},resizeImage:function(){var e=g.currItem;if(e&&e.img&&g.st.image.verticalFit){var t=0;g.isLowIE&&(t=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",g.wH-t)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,S&&clearInterval(S),e.isCheckingImgSize=!1,m("ImageHasSize",e),e.imgHidden&&(g.content&&g.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var i=0,o=t.img[0],n=function(e){S&&clearInterval(S),S=setInterval(function(){0<o.naturalWidth?g._onImageHasSize(t):(200<i&&clearInterval(S),3===++i?n(10):40===i?n(50):100===i&&n(500))},e)};n(1)},getImage:function(e,t){var i=0,o=function(){e&&(e.img[0].complete?(e.img.off(".mfploader"),e===g.currItem&&(g._onImageHasSize(e),g.updateStatus("ready")),e.hasSize=!0,e.loaded=!0,m("ImageLoadComplete")):++i<200?setTimeout(o,100):n())},n=function(){e&&(e.img.off(".mfploader"),e===g.currItem&&(g._onImageHasSize(e),g.updateStatus("error",a.tError.replace("%url%",e.src))),e.hasSize=!0,e.loaded=!0,e.loadError=!0)},a=g.st.image,s=t.find(".mfp-img");if(s.length){var r=document.createElement("img");r.className="mfp-img",e.el&&e.el.find("img").length&&(r.alt=e.el.find("img").attr("alt")),e.img=p(r).on("load.mfploader",o).on("error.mfploader",n),r.src=e.src,s.is("img")&&(e.img=e.img.clone()),0<(r=e.img[0]).naturalWidth?e.hasSize=!0:r.width||(e.hasSize=!1)}return g._parseMarkup(t,{title:function(e){if(e.data&&void 0!==e.data.title)return e.data.title;var t=g.st.image.titleSrc;if(t){if(p.isFunction(t))return t.call(g,e);if(e.el)return e.el.attr(t)||""}return""}(e),img_replaceWith:e.img},e),g.resizeImage(),e.hasSize?(S&&clearInterval(S),e.loadError?(t.addClass("mfp-loading"),g.updateStatus("error",a.tError.replace("%url%",e.src))):(t.removeClass("mfp-loading"),g.updateStatus("ready"))):(g.updateStatus("loading"),e.loading=!0,e.hasSize||(e.imgHidden=!0,t.addClass("mfp-loading"),g.findImageSize(e))),t}}});var E;p.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,a=g.st.zoom,t=".zoom";if(a.enabled&&g.supportsTransition){function i(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all "+a.duration/1e3+"s "+a.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},n="transition";return o["-webkit-"+n]=o["-moz-"+n]=o["-o-"+n]=o[n]=i,t.css(o),t}function o(){g.content.css("visibility","visible")}var n,s,r=a.duration;d("BuildControls"+t,function(){if(g._allowZoom()){if(clearTimeout(n),g.content.css("visibility","hidden"),!(e=g._getItemToZoom()))return void o();(s=i(e)).css(g._getOffset()),g.wrap.append(s),n=setTimeout(function(){s.css(g._getOffset(!0)),n=setTimeout(function(){o(),setTimeout(function(){s.remove(),e=s=null,m("ZoomAnimationEnded")},16)},r)},16)}}),d(c+t,function(){if(g._allowZoom()){if(clearTimeout(n),g.st.removalDelay=r,!e){if(!(e=g._getItemToZoom()))return;s=i(e)}s.css(g._getOffset(!0)),g.wrap.append(s),g.content.css("visibility","hidden"),setTimeout(function(){s.css(g._getOffset())},16)}}),d(l+t,function(){g._allowZoom()&&(o(),s&&s.remove(),e=null)})}},_allowZoom:function(){return"image"===g.currItem.type},_getItemToZoom:function(){return!!g.currItem.hasSize&&g.currItem.img},_getOffset:function(e){var t,i=(t=e?g.currItem.img:g.st.zoom.opener(g.currItem.el||g.currItem)).offset(),o=parseInt(t.css("padding-top"),10),n=parseInt(t.css("padding-bottom"),10);i.top-=p(window).scrollTop()-o;var a={width:t.width(),height:(r?t.innerHeight():t[0].offsetHeight)-n-o};return void 0===E&&(E=void 0!==document.createElement("p").style.MozTransform),E?a["-moz-transform"]=a.transform="translate("+i.left+"px,"+i.top+"px)":(a.left=i.left,a.top=i.top),a}}});var O="retina";p.magnificPopup.registerModule(O,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(1<window.devicePixelRatio){var i=g.st.retina,o=i.ratio;1<(o=isNaN(o)?o():o)&&(d("ImageHasSize."+O,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/o,width:"100%"})}),d("ElementParse."+O,function(e,t){t.src=i.replaceSrc(t,o)}))}}}}),a()});;function Icegram_Message_Type_Toast(t){this.width=300,this.sticky=!1,this.duration=1e4,Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Toast.prototype=Object.create(Icegram_Message_Type.prototype),(Icegram_Message_Type_Toast.prototype.constructor=Icegram_Message_Type_Toast).prototype.get_template_default=function(){return'<li class="icegram ig_toast ig_container ig_{{=theme}} ig_cta" data="{{=id}}" id="icegram_message_{{=id}}"><div class="ig_wrapper"><div class="ig_content"><div class="ig_base"></div><div class="ig_line"></div><img class="ig_icon" src="{{=icon}}"/><div class="ig_headline">{{=headline}}</div><div class="ig_message">{{=message}}</div></div></div></li>'},Icegram_Message_Type_Toast.prototype.pre_render=function(){if("10"!=this.data.position&&"12"!=this.data.position||(this.data.position="20"),jQuery("ul#"+this.data.position).length)var t=jQuery("ul#"+this.data.position);else(t=jQuery('<ul id="'+this.data.position+'"></ul>').addClass("ig_toast_block").appendTo(this.root_container).hide()).width(this.width),"00"==this.data.position?t.css({top:"0",left:"0"}).addClass("ig_left").addClass("ig_top"):"01"==this.data.position?t.css({top:"0",left:"50%",margin:"5px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_top"):"02"==this.data.position?t.css({top:"0",right:"0"}).addClass("ig_right").addClass("ig_top"):"20"==this.data.position?t.css({bottom:"0",left:"0"}).addClass("ig_left").addClass("ig_bottom"):"21"==this.data.position?t.css({bottom:"0",left:"50%",margin:"5px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_bottom"):"22"==this.data.position?t.css({bottom:"0",right:"0"}).addClass("ig_right").addClass("ig_bottom"):"11"==this.data.position&&t.css({top:"50%",left:"50%",margin:"-"+this.width/2+"px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_top");this.root_container=t},Icegram_Message_Type_Toast.prototype.pre_show=function(){this.root_container.hasClass("active")||this.root_container.addClass("active").show()},Icegram_Message_Type_Toast.prototype.post_show=function(){var t=this;!this.sticky&&0<this.duration&&setTimeout(function(){t.hide(),t.root_container.children().length||t.root_container.removeClass("active").hide()},this.duration)};
 
assets/js/main.min.js DELETED
@@ -1 +0,0 @@
1
- try{function load_scripts_and_css(t){var r={};jQuery.each(t.css,function(e,a){r["ig_css_"+e]=1}),jQuery.each(t.scripts,function(e,a){r["ig_script_"+e]=1});function i(e){var a=e.target.id||"";""!=a&&r.hasOwnProperty(a)&&delete r[a],jQuery.isEmptyObject(r)&&(jQuery(window).trigger("scripts_loaded.icegram"),jQuery(function(){window.icegram=new Icegram,window.icegram.init(t),jQuery("body").addClass("ig_"+icegram_pre_data.post_obj.device),icegram_timing.end=Date.now()}))}jQuery.each(t.css,function(e,a){jQuery("<link>").attr("type","text/css").attr("rel","stylesheet").attr("id","ig_css_"+e).attr("media","all").appendTo("head").on("load",i).attr("href",a)});var e=t.scripts.shift();jQuery("<script>").attr("type","text/javascript").attr("id","ig_script_0").appendTo("body").on("load",function(e){i(e),jQuery.each(t.scripts,function(e,a){jQuery("<script>").attr("type","text/javascript").attr("id","ig_script_"+(e+1)).appendTo("body").on("load",i).attr("src",a)})}).attr("src",e)}var icegram_data,icegram_timing={};icegram_pre_data.post_obj.referral_url=window.location.href,icegram_timing.start=Date.now(),"yes"===icegram_pre_data.post_obj.cache_compatibility?(jQuery.ajax({url:icegram_pre_data.ajax_url,type:"POST",async:!0,cache:!1,data:icegram_pre_data.post_obj,dataType:"json",success:function(e){e?load_scripts_and_css(icegram_data=e):jQuery(".ig_inline_container:empty").remove()},error:function(e){}}),jQuery(window).on("init.icegram",function(e,a){void 0!==a&&void 0!==a.messages&&jQuery.each(a.messages,function(e,a){a.data.assets&&(jQuery.each(a.data.assets.styles||[],function(e,a){var t=jQuery("<div/>").html(a).find("link").attr("href");t&&0==jQuery('link[href="'+t+'"]').length&&jQuery("body").append(a)}),jQuery.each(a.data.assets.scripts||[],function(e,a){var t=jQuery("<div/>").html("<script "+a).find("script").attr("src");t&&0==jQuery('script[src="'+t+'"]').length&&jQuery("body").append("<script "+a)}))})})):void 0!==icegram_data&&load_scripts_and_css(icegram_data),jQuery(window).on("init.icegram",function(e,c){void 0!==c&&void 0!==c.messages&&jQuery.each(c.messages,function(e,a){"yes"==a.data.use_custom_code&&void 0!==a.data.custom_js&&jQuery("body").append(a.data.custom_js)}),jQuery("body").find(".trigger_onclick").length&&jQuery.each(jQuery("body").find(".trigger_onclick"),function(e,a){var r="",t=jQuery(a).data("campaigns"),i=c.get_message_by_campaign_id(t);jQuery.each(i,function(e,a){var t=parseInt(a.data.id);r+="icegram.get_message_by_id("+t+").show();"}),jQuery(a).children().length?jQuery(a).children().attr("onclick",r):jQuery(a).attr("onclick",r)})})}catch(e){console.log(e)}
 
classes/class-icegram-cache.php DELETED
@@ -1,106 +0,0 @@
1
- <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
-
4
- if ( !class_exists( 'Icegram_Cache' ) ) {
5
-
6
- /*
7
- // Example usage
8
- $cache = new Icegram_Cache('category', 14 * 86400);
9
- $val = $cache->get( $key );
10
- if ( $val === null ) {
11
- // Not in cache, compute
12
- $val = doyourprocess();
13
- $cache->set( $key, $val );
14
- }
15
- // Now use the $val
16
-
17
- function cleanup() {
18
- $cache = new Icegram_Cache('category', 14 * 86400);
19
- $cache->cleanup();
20
- }
21
-
22
- // For cleanup
23
- wp_schedule_event( time(), 'daily', array($this, 'cleanup') );
24
- */
25
-
26
- class Icegram_Cache {
27
-
28
- var $base_dir;
29
- var $expire_after;
30
- var $enabled;
31
- var $_group;
32
- var $_hashes;
33
-
34
- public function set( $key, $data ) {
35
- if (!$this->enabled) return false;
36
- $res = file_put_contents($this->_file( $key ), serialize($data));
37
- return ( $res === false ) ? false : true;
38
- }
39
-
40
- public function get( $key ) {
41
- if (!$this->enabled) return null;
42
- if ($this->_exists( $key )) {
43
- return unserialize( file_get_contents( $this->_file( $key )));
44
- }
45
- return null;
46
- }
47
-
48
- public function delete( $key ) {
49
- if (!$this->enabled) return true;
50
- if ($this->_exists( $key )) {
51
- return unlink( $this->_file( $key ) );
52
- }
53
- return true;
54
- }
55
-
56
- public function cleanup( ) {
57
- if (!$this->enabled) return true;
58
- foreach (glob($this->base_dir . $this->_group . "*") as $filename) {
59
- if (filemtime($filename) < time() - $this->expire_after) {
60
- @unlink($filename);
61
- }
62
- }
63
- return true;
64
- }
65
-
66
- private function _exists( $key ) {
67
- return (is_file( $this->_file( $key ) ) );
68
- }
69
-
70
- private function _file( $key ) {
71
- return $this->base_dir . $this->_group . '_' . $this->_hash( $key );
72
- }
73
-
74
- private function _hash( $key ) {
75
- if (!array_key_exists($key, $this->_hashes)) {
76
- $this->_hashes[ $key ] = md5($key);
77
- }
78
- return $this->_hashes[ $key ];
79
- }
80
-
81
-
82
- public function __construct( $group = '', $expire_after = 86400, $base_dir = '' ) {
83
-
84
- $this->_group = sanitize_key($group);
85
- $this->base_dir = $base_dir;
86
- $this->expire_after = $expire_after;
87
- $this->_hashes = array();
88
-
89
- if (empty($this->base_dir)) {
90
- $uploads = wp_upload_dir();
91
- $uploads_base_dir = trailingslashit( $uploads['basedir'] );
92
- $this->base_dir = $uploads_base_dir . 'igcache/';
93
- }
94
-
95
- if (!is_dir( $this->base_dir )) {
96
- if ( false === mkdir( $this->base_dir ) ) {
97
- $this->enabled = false;
98
- return;
99
- }
100
- }
101
- $this->base_dir = trailingslashit( $this->base_dir );
102
- $this->enabled = true;
103
- }
104
- }
105
-
106
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/ig-mobile-detect.php DELETED
@@ -1,1458 +0,0 @@
1
- <?php
2
- /**
3
- * Mobile Detect Library
4
- * =====================
5
- *
6
- * Motto: "Every business should have a mobile detection script to detect mobile readers"
7
- *
8
- * Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
9
- * It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
10
- *
11
- * @author Current authors: Serban Ghita <serbanghita@gmail.com>
12
- * Nick Ilyin <nick.ilyin@gmail.com>
13
- *
14
- * Original author: Victor Stanciu <vic.stanciu@gmail.com>
15
- *
16
- * @license Code and contributions have 'MIT License'
17
- * More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
18
- *
19
- * @link Homepage: http://mobiledetect.net
20
- * GitHub Repo: https://github.com/serbanghita/Mobile-Detect
21
- * Google Code: http://code.google.com/p/php-mobile-detect/
22
- * README: https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
23
- * HOWTO: https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
24
- *
25
- * @version 2.8.24
26
- */
27
-
28
- class Ig_Mobile_Detect
29
- {
30
- /**
31
- * Mobile detection type.
32
- *
33
- * @deprecated since version 2.6.9
34
- */
35
- const DETECTION_TYPE_MOBILE = 'mobile';
36
-
37
- /**
38
- * Extended detection type.
39
- *
40
- * @deprecated since version 2.6.9
41
- */
42
- const DETECTION_TYPE_EXTENDED = 'extended';
43
-
44
- /**
45
- * A frequently used regular expression to extract version #s.
46
- *
47
- * @deprecated since version 2.6.9
48
- */
49
- const VER = '([\w._\+]+)';
50
-
51
- /**
52
- * Top-level device.
53
- */
54
- const MOBILE_GRADE_A = 'A';
55
-
56
- /**
57
- * Mid-level device.
58
- */
59
- const MOBILE_GRADE_B = 'B';
60
-
61
- /**
62
- * Low-level device.
63
- */
64
- const MOBILE_GRADE_C = 'C';
65
-
66
- /**
67
- * Stores the version number of the current release.
68
- */
69
- const VERSION = '2.8.24';
70
-
71
- /**
72
- * A type for the version() method indicating a string return value.
73
- */
74
- const VERSION_TYPE_STRING = 'text';
75
-
76
- /**
77
- * A type for the version() method indicating a float return value.
78
- */
79
- const VERSION_TYPE_FLOAT = 'float';
80
-
81
- /**
82
- * A cache for resolved matches
83
- * @var array
84
- */
85
- protected $cache = array();
86
-
87
- /**
88
- * The User-Agent HTTP header is stored in here.
89
- * @var string
90
- */
91
- protected $userAgent = null;
92
-
93
- /**
94
- * HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
95
- * @var array
96
- */
97
- protected $httpHeaders = array();
98
-
99
- /**
100
- * CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
101
- * @var array
102
- */
103
- protected $cloudfrontHeaders = array();
104
-
105
- /**
106
- * The matching Regex.
107
- * This is good for debug.
108
- * @var string
109
- */
110
- protected $matchingRegex = null;
111
-
112
- /**
113
- * The matches extracted from the regex expression.
114
- * This is good for debug.
115
- * @var string
116
- */
117
- protected $matchesArray = null;
118
-
119
- /**
120
- * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
121
- *
122
- * @deprecated since version 2.6.9
123
- *
124
- * @var string
125
- */
126
- protected $detectionType = self::DETECTION_TYPE_MOBILE;
127
-
128
- /**
129
- * HTTP headers that trigger the 'isMobile' detection
130
- * to be true.
131
- *
132
- * @var array
133
- */
134
- protected static $mobileHeaders = array(
135
-
136
- 'HTTP_ACCEPT' => array('matches' => array(
137
- // Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
138
- 'application/x-obml2d',
139
- // BlackBerry devices.
140
- 'application/vnd.rim.html',
141
- 'text/vnd.wap.wml',
142
- 'application/vnd.wap.xhtml+xml'
143
- )),
144
- 'HTTP_X_WAP_PROFILE' => null,
145
- 'HTTP_X_WAP_CLIENTID' => null,
146
- 'HTTP_WAP_CONNECTION' => null,
147
- 'HTTP_PROFILE' => null,
148
- // Reported by Opera on Nokia devices (eg. C3).
149
- 'HTTP_X_OPERAMINI_PHONE_UA' => null,
150
- 'HTTP_X_NOKIA_GATEWAY_ID' => null,
151
- 'HTTP_X_ORANGE_ID' => null,
152
- 'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
153
- 'HTTP_X_HUAWEI_USERID' => null,
154
- // Reported by Windows Smartphones.
155
- 'HTTP_UA_OS' => null,
156
- // Reported by Verizon, Vodafone proxy system.
157
- 'HTTP_X_MOBILE_GATEWAY' => null,
158
- // Seen this on HTC Sensation. SensationXE_Beats_Z715e.
159
- 'HTTP_X_ATT_DEVICEID' => null,
160
- // Seen this on a HTC.
161
- 'HTTP_UA_CPU' => array('matches' => array('ARM')),
162
- );
163
-
164
- /**
165
- * List of mobile devices (phones).
166
- *
167
- * @var array
168
- */
169
- protected static $phoneDevices = array(
170
- 'iPhone' => '\biPhone\b|\biPod\b', // |\biTunes
171
- 'BlackBerry' => 'BlackBerry|\bBB10\b|rim[0-9]+',
172
- 'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
173
- 'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
174
- // @todo: Is 'Dell Streak' a tablet or a phone? ;)
175
- 'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
176
- 'Motorola' => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
177
- 'Samsung' => '\bSamsung\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F',
178
- 'LG' => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)',
179
- 'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
180
- 'Asus' => 'Asus.*Galaxy|PadFone.*Mobile',
181
- 'NokiaLumia' => 'Lumia [0-9]{3,4}',
182
- // http://www.micromaxinfo.com/mobiles/smartphones
183
- // Added because the codes might conflict with Acer Tablets.
184
- 'Micromax' => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
185
- // @todo Complete the regex.
186
- 'Palm' => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ;
187
- 'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
188
- // http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
189
- // Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
190
- 'Pantech' => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
191
- // http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
192
- 'Fly' => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
193
- // http://fr.wikomobile.com
194
- 'Wiko' => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
195
- 'iMobile' => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
196
- // Added simvalley mobile just for fun. They have some interesting devices.
197
- // http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
198
- 'SimValley' => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
199
- // Wolfgang - a brand that is sold by Aldi supermarkets.
200
- // http://www.wolfgangmobile.com/
201
- 'Wolfgang' => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
202
- 'Alcatel' => 'Alcatel',
203
- 'Nintendo' => 'Nintendo 3DS',
204
- // http://en.wikipedia.org/wiki/Amoi
205
- 'Amoi' => 'Amoi',
206
- // http://en.wikipedia.org/wiki/INQ
207
- 'INQ' => 'INQ',
208
- // @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
209
- 'GenericPhone' => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
210
- );
211
-
212
- /**
213
- * List of tablet devices.
214
- *
215
- * @var array
216
- */
217
- protected static $tabletDevices = array(
218
- // @todo: check for mobile friendly emails topic.
219
- 'iPad' => 'iPad|iPad.*Mobile',
220
- // Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
221
- // @see #442
222
- 'NexusTablet' => 'Android.*Nexus[\s]+(7|9|10)',
223
- 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
224
- // http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
225
- 'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI)\b',
226
- // Only the Surface tablets with Windows RT are considered mobile.
227
- // http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
228
- 'SurfaceTablet' => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
229
- // http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
230
- 'HPTablet' => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
231
- // Watch out for PadFone, see #132.
232
- // http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
233
- 'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z',
234
- 'BlackBerryTablet' => 'PlayBook|RIM Tablet',
235
- 'HTCtablet' => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
236
- 'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
237
- 'NookTablet' => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
238
- // http://www.acer.ro/ac/ro/RO/content/drivers
239
- // http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
240
- // http://us.acer.com/ac/en/US/content/group/tablets
241
- // http://www.acer.de/ac/de/DE/content/models/tablets/
242
- // Can conflict with Micromax and Motorola phones codes.
243
- 'AcerTablet' => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\b|W3-810|\bA3-A10\b|\bA3-A11\b|\bA3-A20\b|\bA3-A30',
244
- // http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
245
- // http://us.toshiba.com/tablets/tablet-finder
246
- // http://www.toshiba.co.jp/regza/tablet/
247
- 'ToshibaTablet' => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
248
- // http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
249
- // http://www.lg.com/us/tablets
250
- 'LGTablet' => '\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\b',
251
- 'FujitsuTablet' => 'Android.*\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\b',
252
- // Prestigio Tablets http://www.prestigio.com/support
253
- 'PrestigioTablet' => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
254
- // http://support.lenovo.com/en_GB/downloads/default.page?#
255
- 'LenovoTablet' => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
256
- // http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
257
- 'DellTablet' => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
258
- // http://www.yarvik.com/en/matrix/tablets/
259
- 'YarvikTablet' => 'Android.*\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\b',
260
- 'MedionTablet' => 'Android.*\bOYO\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
261
- 'ArnovaTablet' => '97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
262
- // http://www.intenso.de/kategorie_en.php?kategorie=33
263
- // @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
264
- 'IntensoTablet' => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
265
- // IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
266
- 'IRUTablet' => 'M702pro',
267
- 'MegafonTablet' => 'MegaFon V9|\bZTE V9\b|Android.*\bMT7A\b',
268
- // http://www.e-boda.ro/tablete-pc.html
269
- 'EbodaTablet' => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
270
- // http://www.allview.ro/produse/droseries/lista-tablete-pc/
271
- 'AllViewTablet' => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
272
- // http://wiki.archosfans.com/index.php?title=Main_Page
273
- 'ArchosTablet' => '\b(101G9|80G9|A101IT)\b|Qilive 97R|Archos5|\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\b',
274
- // http://www.ainol.com/plugin.php?identifier=ainol&module=product
275
- 'AinolTablet' => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
276
- 'NokiaLumiaTablet' => 'Lumia 2520',
277
- // @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
278
- // Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
279
- // http://www.sony.jp/support/tablet/
280
- 'SonyTablet' => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31',
281
- // http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
282
- 'PhilipsTablet' => '\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\b',
283
- // db + http://www.cube-tablet.com/buy-products.html
284
- 'CubeTablet' => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
285
- // http://www.cobyusa.com/?p=pcat&pcat_id=3001
286
- 'CobyTablet' => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
287
- // http://www.match.net.cn/products.asp
288
- 'MIDTablet' => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10',
289
- // http://www.msi.com/support
290
- // @todo Research the Windows Tablets.
291
- 'MSITablet' => 'MSI \b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\b',
292
- // @todo http://www.kyoceramobile.com/support/drivers/
293
- // 'KyoceraTablet' => null,
294
- // @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
295
- // 'IntextTablet' => null,
296
- // http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
297
- // http://www.imp3.net/14/show.php?itemid=20454
298
- 'SMiTTablet' => 'Android.*(\bMID\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
299
- // http://www.rock-chips.com/index.php?do=prod&pid=2
300
- 'RockChipTablet' => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
301
- // http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
302
- 'FlyTablet' => 'IQ310|Fly Vision',
303
- // http://www.bqreaders.com/gb/tablets-prices-sale.html
304
- 'bqTablet' => 'Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus',
305
- // http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
306
- // http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
307
- 'HuaweiTablet' => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
308
- // Nec or Medias Tab
309
- 'NecTablet' => '\bN-06D|\bN-08D',
310
- // Pantech Tablets: http://www.pantechusa.com/phones/
311
- 'PantechTablet' => 'Pantech.*P4100',
312
- // Broncho Tablets: http://www.broncho.cn/ (hard to find)
313
- 'BronchoTablet' => 'Broncho.*(N701|N708|N802|a710)',
314
- // http://versusuk.com/support.html
315
- 'VersusTablet' => 'TOUCHPAD.*[78910]|\bTOUCHTAB\b',
316
- // http://www.zync.in/index.php/our-products/tablet-phablets
317
- 'ZyncTablet' => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
318
- // http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
319
- 'PositivoTablet' => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
320
- // https://www.nabitablet.com/
321
- 'NabiTablet' => 'Android.*\bNabi',
322
- 'KoboTablet' => 'Kobo Touch|\bK080\b|\bVox\b Build|\bArc\b Build',
323
- // French Danew Tablets http://www.danew.com/produits-tablette.php
324
- 'DanewTablet' => 'DSlide.*\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\b',
325
- // Texet Tablets and Readers http://www.texet.ru/tablet/
326
- 'TexetTablet' => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
327
- // Avoid detecting 'PLAYSTATION 3' as mobile.
328
- 'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
329
- // http://www.trekstor.de/surftabs.html
330
- 'TrekstorTablet' => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
331
- // http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
332
- 'PyleAudioTablet' => '\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\b',
333
- // http://www.advandigital.com/index.php?link=content-product&jns=JP001
334
- // because of the short codenames we have to include whitespaces to reduce the possible conflicts.
335
- 'AdvanTablet' => 'Android.* \b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\b ',
336
- // http://www.danytech.com/category/tablet-pc
337
- 'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
338
- // http://www.galapad.net/product.html
339
- 'GalapadTablet' => 'Android.*\bG1\b',
340
- // http://www.micromaxinfo.com/tablet/funbook
341
- 'MicromaxTablet' => 'Funbook|Micromax.*\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\b',
342
- // http://www.karbonnmobiles.com/products_tablet.php
343
- 'KarbonnTablet' => 'Android.*\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\b',
344
- // http://www.myallfine.com/Products.asp
345
- 'AllFineTablet' => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
346
- // http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
347
- 'PROSCANTablet' => '\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\b',
348
- // http://www.yonesnav.com/products/products.php
349
- 'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
350
- // http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
351
- // China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
352
- 'ChangJiaTablet' => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
353
- // http://www.gloryunion.cn/products.asp
354
- // http://www.allwinnertech.com/en/apply/mobile.html
355
- // http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
356
- // @todo: Softwiner tablets?
357
- // aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
358
- 'GUTablet' => 'TX-A1301|TX-M9002|Q702|kf026', // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
359
- // http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
360
- 'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
361
- // http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
362
- // @todo: add more tests.
363
- 'OvermaxTablet' => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
364
- // http://hclmetablet.com/India/index.php
365
- 'HCLTablet' => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
366
- // http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
367
- 'DPSTablet' => 'DPS Dream 9|DPS Dual 7',
368
- // http://www.visture.com/index.asp
369
- 'VistureTablet' => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
370
- // http://www.mijncresta.nl/tablet
371
- 'CrestaTablet' => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
372
- // MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
373
- 'MediatekTablet' => '\bMT8125|MT8389|MT8135|MT8377\b',
374
- // Concorde tab
375
- 'ConcordeTablet' => 'Concorde([ ]+)?Tab|ConCorde ReadMan',
376
- // GoClever Tablets - http://www.goclever.com/uk/products,c1/tablet,c5/
377
- 'GoCleverTablet' => 'GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042',
378
- // Modecom Tablets - http://www.modecom.eu/tablets/portal/
379
- 'ModecomTablet' => 'FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003',
380
- // Vonino Tablets - http://www.vonino.eu/tablets
381
- 'VoninoTablet' => '\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\bQ8\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\b',
382
- // ECS Tablets - http://www.ecs.com.tw/ECSWebSite/Product/Product_Tablet_List.aspx?CategoryID=14&MenuID=107&childid=M_107&LanID=0
383
- 'ECSTablet' => 'V07OT2|TM105A|S10OT1|TR10CS1',
384
- // Storex Tablets - http://storex.fr/espace_client/support.html
385
- // @note: no need to add all the tablet codes since they are guided by the first regex.
386
- 'StorexTablet' => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
387
- // Generic Vodafone tablets.
388
- 'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497',
389
- // French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
390
- // Aka: http://www.essentielb.fr/
391
- 'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
392
- // Ross & Moor - http://ross-moor.ru/
393
- 'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
394
- // i-mobile http://product.i-mobilephone.com/Mobile_Device
395
- 'iMobileTablet' => 'i-mobile i-note',
396
- // http://www.tolino.de/de/vergleichen/
397
- 'TolinoTablet' => 'tolino tab [0-9.]+|tolino shine',
398
- // AudioSonic - a Kmart brand
399
- // http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72&currentPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
400
- 'AudioSonicTablet' => '\bC-22Q|T7-QC|T-17B|T-17P\b',
401
- // AMPE Tablets - http://www.ampe.com.my/product-category/tablets/
402
- // @todo: add them gradually to avoid conflicts.
403
- 'AMPETablet' => 'Android.* A78 ',
404
- // Skk Mobile - http://skkmobile.com.ph/product_tablets.php
405
- 'SkkTablet' => 'Android.* (SKYPAD|PHOENIX|CYCLOPS)',
406
- // Tecno Mobile (only tablet) - http://www.tecno-mobile.com/index.php/product?filterby=smart&list_order=all&page=1
407
- 'TecnoTablet' => 'TECNO P9',
408
- // JXD (consoles & tablets) - http://jxd.hk/products.asp?selectclassid=009008&clsid=3
409
- 'JXDTablet' => 'Android.* \b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\b',
410
- // i-Joy tablets - http://www.i-joy.es/en/cat/products/tablets/
411
- 'iJoyTablet' => 'Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)',
412
- // http://www.intracon.eu/tablet
413
- 'FX2Tablet' => 'FX2 PAD7|FX2 PAD10',
414
- // http://www.xoro.de/produkte/
415
- // @note: Might be the same brand with 'Simply tablets'
416
- 'XoroTablet' => 'KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151',
417
- // http://www1.viewsonic.com/products/computing/tablets/
418
- 'ViewsonicTablet' => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
419
- // http://www.odys.de/web/internet-tablet_en.html
420
- 'OdysTablet' => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\bXELIO\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
421
- // http://www.captiva-power.de/products.html#tablets-en
422
- 'CaptivaTablet' => 'CAPTIVA PAD',
423
- // IconBIT - http://www.iconbit.com/products/tablets/
424
- 'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
425
- // http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
426
- 'TeclastTablet' => 'T98 4G|\bP80\b|\bX90HD\b|X98 Air|X98 Air 3G|\bX89\b|P80 3G|\bX80h\b|P98 Air|\bX89HD\b|P98 3G|\bP90HD\b|P89 3G|X98 3G|\bP70h\b|P79HD 3G|G18d 3G|\bP79HD\b|\bP89s\b|\bA88\b|\bP10HD\b|\bP19HD\b|G18 3G|\bP78HD\b|\bA78\b|\bP75\b|G17s 3G|G17h 3G|\bP85t\b|\bP90\b|\bP11\b|\bP98t\b|\bP98HD\b|\bG18d\b|\bP85s\b|\bP11HD\b|\bP88s\b|\bA80HD\b|\bA80se\b|\bA10h\b|\bP89\b|\bP78s\b|\bG18\b|\bP85\b|\bA70h\b|\bA70\b|\bG17\b|\bP18\b|\bA80s\b|\bA11s\b|\bP88HD\b|\bA80h\b|\bP76s\b|\bP76h\b|\bP98\b|\bA10HD\b|\bP78\b|\bP88\b|\bA11\b|\bA10t\b|\bP76a\b|\bP76t\b|\bP76e\b|\bP85HD\b|\bP85a\b|\bP86\b|\bP75HD\b|\bP76v\b|\bA12\b|\bP75a\b|\bA15\b|\bP76Ti\b|\bP81HD\b|\bA10\b|\bT760VE\b|\bT720HD\b|\bP76\b|\bP73\b|\bP71\b|\bP72\b|\bT720SE\b|\bC520Ti\b|\bT760\b|\bT720VE\b|T720-3GE|T720-WiFi',
427
- // Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
428
- 'OndaTablet' => '\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\b[\s]+',
429
- 'JaytechTablet' => 'TPC-PA762',
430
- 'BlaupunktTablet' => 'Endeavour 800NG|Endeavour 1010',
431
- // http://www.digma.ru/support/download/
432
- // @todo: Ebooks also (if requested)
433
- 'DigmaTablet' => '\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\b',
434
- // http://www.evolioshop.com/ro/tablete-pc.html
435
- // http://www.evolio.ro/support/downloads_static.html?cat=2
436
- // @todo: Research some more
437
- 'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\bEvotab\b|\bNeura\b',
438
- // @todo http://www.lavamobiles.com/tablets-data-cards
439
- 'LavaTablet' => 'QPAD E704|\bIvoryS\b|E-TAB IVORY|\bE-TAB\b',
440
- // http://www.breezetablet.com/
441
- 'AocTablet' => 'MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712',
442
- // http://www.mpmaneurope.com/en/products/internet-tablets-14/android-tablets-14/
443
- 'MpmanTablet' => 'MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\bMPG7\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010',
444
- // https://www.celkonmobiles.com/?_a=categoryphones&sid=2
445
- 'CelkonTablet' => 'CT695|CT888|CT[\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\bCT-1\b',
446
- // http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
447
- 'WolderTablet' => 'miTab \b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\b',
448
- // http://www.mi.com/en
449
- 'MiTablet' => '\bMI PAD\b|\bHM NOTE 1W\b',
450
- // http://www.nbru.cn/index.html
451
- 'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
452
- // http://navroad.com/products/produkty/tablety/
453
- 'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
454
- // http://leader-online.com/new_site/product-category/tablets/
455
- // http://www.leader-online.net.au/List/Tablet
456
- 'LeaderTablet' => 'TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100',
457
- // http://www.datawind.com/ubislate/
458
- 'UbislateTablet' => 'UbiSlate[\s]?7C',
459
- // http://www.pocketbook-int.com/ru/support
460
- 'PocketBookTablet' => 'Pocketbook',
461
- // http://www.kocaso.com/product_tablet.html
462
- 'KocasoTablet' => '\b(TB-1207)\b',
463
- // http://global.hisense.com/product/asia/tablet/Sero7/201412/t20141215_91832.htm
464
- 'HisenseTablet' => '\b(F5281|E2371)\b',
465
- // http://www.tesco.com/direct/hudl/
466
- 'Hudl' => 'Hudl HT7S3|Hudl 2',
467
- // http://www.telstra.com.au/home-phone/thub-2/
468
- 'TelstraTablet' => 'T-Hub2',
469
- 'GenericTablet' => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b'
470
- );
471
-
472
- /**
473
- * List of mobile Operating Systems.
474
- *
475
- * @var array
476
- */
477
- protected static $operatingSystems = array(
478
- 'AndroidOS' => 'Android',
479
- 'BlackBerryOS' => 'blackberry|\bBB10\b|rim tablet os',
480
- 'PalmOS' => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
481
- 'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
482
- // @reference: http://en.wikipedia.org/wiki/Windows_Mobile
483
- 'WindowsMobileOS' => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
484
- // @reference: http://en.wikipedia.org/wiki/Windows_Phone
485
- // http://wifeng.cn/?r=blog&a=view&id=106
486
- // http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
487
- // http://msdn.microsoft.com/library/ms537503.aspx
488
- // https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
489
- 'WindowsPhoneOS' => 'Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
490
- 'iOS' => '\biPhone.*Mobile|\biPod|\biPad',
491
- // http://en.wikipedia.org/wiki/MeeGo
492
- // @todo: research MeeGo in UAs
493
- 'MeeGoOS' => 'MeeGo',
494
- // http://en.wikipedia.org/wiki/Maemo
495
- // @todo: research Maemo in UAs
496
- 'MaemoOS' => 'Maemo',
497
- 'JavaOS' => 'J2ME/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
498
- 'webOS' => 'webOS|hpwOS',
499
- 'badaOS' => '\bBada\b',
500
- 'BREWOS' => 'BREW',
501
- );
502
-
503
- /**
504
- * List of mobile User Agents.
505
- *
506
- * IMPORTANT: This is a list of only mobile browsers.
507
- * Mobile Detect 2.x supports only mobile browsers,
508
- * it was never designed to detect all browsers.
509
- * The change will come in 2017 in the 3.x release for PHP7.
510
- *
511
- * @var array
512
- */
513
- protected static $browsers = array(
514
- //'Vivaldi' => 'Vivaldi',
515
- // @reference: https://developers.google.com/chrome/mobile/docs/user-agent
516
- 'Chrome' => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
517
- 'Dolfin' => '\bDolfin\b',
518
- 'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
519
- 'Skyfire' => 'Skyfire',
520
- 'Edge' => 'Mobile Safari/[.0-9]* Edge',
521
- 'IE' => 'IEMobile|MSIEMobile', // |Trident/[.0-9]+
522
- 'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
523
- 'Bolt' => 'bolt',
524
- 'TeaShark' => 'teashark',
525
- 'Blazer' => 'Blazer',
526
- // @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
527
- 'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
528
- // http://en.wikipedia.org/wiki/Midori_(web_browser)
529
- //'Midori' => 'midori',
530
- //'Tizen' => 'Tizen',
531
- 'UCBrowser' => 'UC.*Browser|UCWEB',
532
- 'baiduboxapp' => 'baiduboxapp',
533
- 'baidubrowser' => 'baidubrowser',
534
- // https://github.com/serbanghita/Mobile-Detect/issues/7
535
- 'DiigoBrowser' => 'DiigoBrowser',
536
- // http://www.puffinbrowser.com/index.php
537
- 'Puffin' => 'Puffin',
538
- // http://mercury-browser.com/index.html
539
- 'Mercury' => '\bMercury\b',
540
- // http://en.wikipedia.org/wiki/Obigo_Browser
541
- 'ObigoBrowser' => 'Obigo',
542
- // http://en.wikipedia.org/wiki/NetFront
543
- 'NetFront' => 'NF-Browser',
544
- // @reference: http://en.wikipedia.org/wiki/Minimo
545
- // http://en.wikipedia.org/wiki/Vision_Mobile_Browser
546
- 'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
547
- // @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
548
- 'PaleMoon' => 'Android.*PaleMoon|Mobile.*PaleMoon',
549
- );
550
-
551
- /**
552
- * Utilities.
553
- *
554
- * @var array
555
- */
556
- protected static $utilities = array(
557
- // Experimental. When a mobile device wants to switch to 'Desktop Mode'.
558
- // http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
559
- // https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
560
- // https://developers.facebook.com/docs/sharing/best-practices
561
- 'Bot' => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
562
- 'MobileBot' => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
563
- 'DesktopMode' => 'WPDesktop',
564
- 'TV' => 'SonyDTV|HbbTV', // experimental
565
- 'WebKit' => '(webkit)[ /]([\w.]+)',
566
- // @todo: Include JXD consoles.
567
- 'Console' => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
568
- 'Watch' => 'SM-V700',
569
- );
570
-
571
- /**
572
- * All possible HTTP headers that represent the
573
- * User-Agent string.
574
- *
575
- * @var array
576
- */
577
- protected static $uaHttpHeaders = array(
578
- // The default User-Agent string.
579
- 'HTTP_USER_AGENT',
580
- // Header can occur on devices using Opera Mini.
581
- 'HTTP_X_OPERAMINI_PHONE_UA',
582
- // Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
583
- 'HTTP_X_DEVICE_USER_AGENT',
584
- 'HTTP_X_ORIGINAL_USER_AGENT',
585
- 'HTTP_X_SKYFIRE_PHONE',
586
- 'HTTP_X_BOLT_PHONE_UA',
587
- 'HTTP_DEVICE_STOCK_UA',
588
- 'HTTP_X_UCBROWSER_DEVICE_UA'
589
- );
590
-
591
- /**
592
- * The individual segments that could exist in a User-Agent string. VER refers to the regular
593
- * expression defined in the constant self::VER.
594
- *
595
- * @var array
596
- */
597
- protected static $properties = array(
598
-
599
- // Build
600
- 'Mobile' => 'Mobile/[VER]',
601
- 'Build' => 'Build/[VER]',
602
- 'Version' => 'Version/[VER]',
603
- 'VendorID' => 'VendorID/[VER]',
604
-
605
- // Devices
606
- 'iPad' => 'iPad.*CPU[a-z ]+[VER]',
607
- 'iPhone' => 'iPhone.*CPU[a-z ]+[VER]',
608
- 'iPod' => 'iPod.*CPU[a-z ]+[VER]',
609
- //'BlackBerry' => array('BlackBerry[VER]', 'BlackBerry [VER];'),
610
- 'Kindle' => 'Kindle/[VER]',
611
-
612
- // Browser
613
- 'Chrome' => array('Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]'),
614
- 'Coast' => array('Coast/[VER]'),
615
- 'Dolfin' => 'Dolfin/[VER]',
616
- // @reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
617
- 'Firefox' => array('Firefox/[VER]', 'FxiOS/[VER]'),
618
- 'Fennec' => 'Fennec/[VER]',
619
- // http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
620
- // https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
621
- 'Edge' => 'Edge/[VER]',
622
- 'IE' => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
623
- // http://en.wikipedia.org/wiki/NetFront
624
- 'NetFront' => 'NetFront/[VER]',
625
- 'NokiaBrowser' => 'NokiaBrowser/[VER]',
626
- 'Opera' => array( ' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]' ),
627
- 'Opera Mini' => 'Opera Mini/[VER]',
628
- 'Opera Mobi' => 'Version/[VER]',
629
- 'UC Browser' => 'UC Browser[VER]',
630
- 'MQQBrowser' => 'MQQBrowser/[VER]',
631
- 'MicroMessenger' => 'MicroMessenger/[VER]',
632
- 'baiduboxapp' => 'baiduboxapp/[VER]',
633
- 'baidubrowser' => 'baidubrowser/[VER]',
634
- 'SamsungBrowser' => 'SamsungBrowser/[VER]',
635
- 'Iron' => 'Iron/[VER]',
636
- // @note: Safari 7534.48.3 is actually Version 5.1.
637
- // @note: On BlackBerry the Version is overwriten by the OS.
638
- 'Safari' => array( 'Version/[VER]', 'Safari/[VER]' ),
639
- 'Skyfire' => 'Skyfire/[VER]',
640
- 'Tizen' => 'Tizen/[VER]',
641
- 'Webkit' => 'webkit[ /][VER]',
642
- 'PaleMoon' => 'PaleMoon/[VER]',
643
-
644
- // Engine
645
- 'Gecko' => 'Gecko/[VER]',
646
- 'Trident' => 'Trident/[VER]',
647
- 'Presto' => 'Presto/[VER]',
648
- 'Goanna' => 'Goanna/[VER]',
649
-
650
- // OS
651
- 'iOS' => ' \bi?OS\b [VER][ ;]{1}',
652
- 'Android' => 'Android [VER]',
653
- 'BlackBerry' => array('BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
654
- 'BREW' => 'BREW [VER]',
655
- 'Java' => 'Java/[VER]',
656
- // @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
657
- // @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
658
- 'Windows Phone OS' => array( 'Windows Phone OS [VER]', 'Windows Phone [VER]'),
659
- 'Windows Phone' => 'Windows Phone [VER]',
660
- 'Windows CE' => 'Windows CE/[VER]',
661
- // http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
662
- 'Windows NT' => 'Windows NT [VER]',
663
- 'Symbian' => array('SymbianOS/[VER]', 'Symbian/[VER]'),
664
- 'webOS' => array('webOS/[VER]', 'hpwOS/[VER];'),
665
- );
666
-
667
- /**
668
- * Construct an instance of this class.
669
- *
670
- * @param array $headers Specify the headers as injection. Should be PHP _SERVER flavored.
671
- * If left empty, will use the global _SERVER['HTTP_*'] vars instead.
672
- * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
673
- * from the $headers array instead.
674
- */
675
- public function __construct(
676
- array $headers = null,
677
- $userAgent = null
678
- ) {
679
- $this->setHttpHeaders($headers);
680
- $this->setUserAgent($userAgent);
681
- }
682
-
683
- /**
684
- * Get the current script version.
685
- * This is useful for the demo.php file,
686
- * so people can check on what version they are testing
687
- * for mobile devices.
688
- *
689
- * @return string The version number in semantic version format.
690
- */
691
- public static function getScriptVersion()
692
- {
693
- return self::VERSION;
694
- }
695
-
696
- /**
697
- * Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
698
- *
699
- * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
700
- * the headers. The default null is left for backwards compatibility.
701
- */
702
- public function setHttpHeaders($httpHeaders = null)
703
- {
704
- // use global _SERVER if $httpHeaders aren't defined
705
- if (!is_array($httpHeaders) || !count($httpHeaders)) {
706
- $httpHeaders = $_SERVER;
707
- }
708
-
709
- // clear existing headers
710
- $this->httpHeaders = array();
711
-
712
- // Only save HTTP headers. In PHP land, that means only _SERVER vars that
713
- // start with HTTP_.
714
- foreach ($httpHeaders as $key => $value) {
715
- if (substr($key, 0, 5) === 'HTTP_') {
716
- $this->httpHeaders[$key] = $value;
717
- }
718
- }
719
-
720
- // In case we're dealing with CloudFront, we need to know.
721
- $this->setCfHeaders($httpHeaders);
722
- }
723
-
724
- /**
725
- * Retrieves the HTTP headers.
726
- *
727
- * @return array
728
- */
729
- public function getHttpHeaders()
730
- {
731
- return $this->httpHeaders;
732
- }
733
-
734
- /**
735
- * Retrieves a particular header. If it doesn't exist, no exception/error is caused.
736
- * Simply null is returned.
737
- *
738
- * @param string $header The name of the header to retrieve. Can be HTTP compliant such as
739
- * "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
740
- * all-caps, HTTP_ prefixed, underscore seperated awesomeness.
741
- *
742
- * @return string|null The value of the header.
743
- */
744
- public function getHttpHeader($header)
745
- {
746
- // are we using PHP-flavored headers?
747
- if (strpos($header, '_') === false) {
748
- $header = str_replace('-', '_', $header);
749
- $header = strtoupper($header);
750
- }
751
-
752
- // test the alternate, too
753
- $altHeader = 'HTTP_' . $header;
754
-
755
- //Test both the regular and the HTTP_ prefix
756
- if (isset($this->httpHeaders[$header])) {
757
- return $this->httpHeaders[$header];
758
- } elseif (isset($this->httpHeaders[$altHeader])) {
759
- return $this->httpHeaders[$altHeader];
760
- }
761
-
762
- return null;
763
- }
764
-
765
- public function getMobileHeaders()
766
- {
767
- return self::$mobileHeaders;
768
- }
769
-
770
- /**
771
- * Get all possible HTTP headers that
772
- * can contain the User-Agent string.
773
- *
774
- * @return array List of HTTP headers.
775
- */
776
- public function getUaHttpHeaders()
777
- {
778
- return self::$uaHttpHeaders;
779
- }
780
-
781
-
782
- /**
783
- * Set CloudFront headers
784
- * http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
785
- *
786
- * @param array $cfHeaders List of HTTP headers
787
- *
788
- * @return boolean If there were CloudFront headers to be set
789
- */
790
- public function setCfHeaders($cfHeaders = null) {
791
- // use global _SERVER if $cfHeaders aren't defined
792
- if (!is_array($cfHeaders) || !count($cfHeaders)) {
793
- $cfHeaders = $_SERVER;
794
- }
795
-
796
- // clear existing headers
797
- $this->cloudfrontHeaders = array();
798
-
799
- // Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
800
- // start with cloudfront-.
801
- $response = false;
802
- foreach ($cfHeaders as $key => $value) {
803
- if (substr(strtolower($key), 0, 16) === 'http_cloudfront_') {
804
- $this->cloudfrontHeaders[strtoupper($key)] = $value;
805
- $response = true;
806
- }
807
- }
808
-
809
- return $response;
810
- }
811
-
812
- /**
813
- * Retrieves the cloudfront headers.
814
- *
815
- * @return array
816
- */
817
- public function getCfHeaders()
818
- {
819
- return $this->cloudfrontHeaders;
820
- }
821
-
822
- /**
823
- * Set the User-Agent to be used.
824
- *
825
- * @param string $userAgent The user agent string to set.
826
- *
827
- * @return string|null
828
- */
829
- public function setUserAgent($userAgent = null)
830
- {
831
- // Invalidate cache due to #375
832
- $this->cache = array();
833
-
834
- if (false === empty($userAgent)) {
835
- return $this->userAgent = $userAgent;
836
- } else {
837
- $this->userAgent = null;
838
- foreach ($this->getUaHttpHeaders() as $altHeader) {
839
- if (false === empty($this->httpHeaders[$altHeader])) { // @todo: should use getHttpHeader(), but it would be slow. (Serban)
840
- $this->userAgent .= $this->httpHeaders[$altHeader] . " ";
841
- }
842
- }
843
-
844
- if (!empty($this->userAgent)) {
845
- return $this->userAgent = trim($this->userAgent);
846
- }
847
- }
848
-
849
- if (count($this->getCfHeaders()) > 0) {
850
- return $this->userAgent = 'Amazon CloudFront';
851
- }
852
- return $this->userAgent = null;
853
- }
854
-
855
- /**
856
- * Retrieve the User-Agent.
857
- *
858
- * @return string|null The user agent if it's set.
859
- */
860
- public function getUserAgent()
861
- {
862
- return $this->userAgent;
863
- }
864
-
865
- /**
866
- * Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
867
- * self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
868
- *
869
- * @deprecated since version 2.6.9
870
- *
871
- * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
872
- * parameter is null which will default to self::DETECTION_TYPE_MOBILE.
873
- */
874
- public function setDetectionType($type = null)
875
- {
876
- if ($type === null) {
877
- $type = self::DETECTION_TYPE_MOBILE;
878
- }
879
-
880
- if ($type !== self::DETECTION_TYPE_MOBILE && $type !== self::DETECTION_TYPE_EXTENDED) {
881
- return;
882
- }
883
-
884
- $this->detectionType = $type;
885
- }
886
-
887
- public function getMatchingRegex()
888
- {
889
- return $this->matchingRegex;
890
- }
891
-
892
- public function getMatchesArray()
893
- {
894
- return $this->matchesArray;
895
- }
896
-
897
- /**
898
- * Retrieve the list of known phone devices.
899
- *
900
- * @return array List of phone devices.
901
- */
902
- public static function getPhoneDevices()
903
- {
904
- return self::$phoneDevices;
905
- }
906
-
907
- /**
908
- * Retrieve the list of known tablet devices.
909
- *
910
- * @return array List of tablet devices.
911
- */
912
- public static function getTabletDevices()
913
- {
914
- return self::$tabletDevices;
915
- }
916
-
917
- /**
918
- * Alias for getBrowsers() method.
919
- *
920
- * @return array List of user agents.
921
- */
922
- public static function getUserAgents()
923
- {
924
- return self::getBrowsers();
925
- }
926
-
927
- /**
928
- * Retrieve the list of known browsers. Specifically, the user agents.
929
- *
930
- * @return array List of browsers / user agents.
931
- */
932
- public static function getBrowsers()
933
- {
934
- return self::$browsers;
935
- }
936
-
937
- /**
938
- * Retrieve the list of known utilities.
939
- *
940
- * @return array List of utilities.
941
- */
942
- public static function getUtilities()
943
- {
944
- return self::$utilities;
945
- }
946
-
947
- /**
948
- * Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
949
- *
950
- * @deprecated since version 2.6.9
951
- *
952
- * @return array All the rules (but not extended).
953
- */
954
- public static function getMobileDetectionRules()
955
- {
956
- static $rules;
957
-
958
- if (!$rules) {
959
- $rules = array_merge(
960
- self::$phoneDevices,
961
- self::$tabletDevices,
962
- self::$operatingSystems,
963
- self::$browsers
964
- );
965
- }
966
-
967
- return $rules;
968
-
969
- }
970
-
971
- /**
972
- * Method gets the mobile detection rules + utilities.
973
- * The reason this is separate is because utilities rules
974
- * don't necessary imply mobile. This method is used inside
975
- * the new $detect->is('stuff') method.
976
- *
977
- * @deprecated since version 2.6.9
978
- *
979
- * @return array All the rules + extended.
980
- */
981
- public function getMobileDetectionRulesExtended()
982
- {
983
- static $rules;
984
-
985
- if (!$rules) {
986
- // Merge all rules together.
987
- $rules = array_merge(
988
- self::$phoneDevices,
989
- self::$tabletDevices,
990
- self::$operatingSystems,
991
- self::$browsers,
992
- self::$utilities
993
- );
994
- }
995
-
996
- return $rules;
997
- }
998
-
999
- /**
1000
- * Retrieve the current set of rules.
1001
- *
1002
- * @deprecated since version 2.6.9
1003
- *
1004
- * @return array
1005
- */
1006
- public function getRules()
1007
- {
1008
- if ($this->detectionType == self::DETECTION_TYPE_EXTENDED) {
1009
- return self::getMobileDetectionRulesExtended();
1010
- } else {
1011
- return self::getMobileDetectionRules();
1012
- }
1013
- }
1014
-
1015
- /**
1016
- * Retrieve the list of mobile operating systems.
1017
- *
1018
- * @return array The list of mobile operating systems.
1019
- */
1020
- public static function getOperatingSystems()
1021
- {
1022
- return self::$operatingSystems;
1023
- }
1024
-
1025
- /**
1026
- * Check the HTTP headers for signs of mobile.
1027
- * This is the fastest mobile check possible; it's used
1028
- * inside isMobile() method.
1029
- *
1030
- * @return bool
1031
- */
1032
- public function checkHttpHeadersForMobile()
1033
- {
1034
-
1035
- foreach ($this->getMobileHeaders() as $mobileHeader => $matchType) {
1036
- if (isset($this->httpHeaders[$mobileHeader])) {
1037
- if (is_array($matchType['matches'])) {
1038
- foreach ($matchType['matches'] as $_match) {
1039
- if (strpos($this->httpHeaders[$mobileHeader], $_match) !== false) {
1040
- return true;
1041
- }
1042
- }
1043
-
1044
- return false;
1045
- } else {
1046
- return true;
1047
- }
1048
- }
1049
- }
1050
-
1051
- return false;
1052
-
1053
- }
1054
-
1055
- /**
1056
- * Magic overloading method.
1057
- *
1058
- * @method boolean is[...]()
1059
- * @param string $name
1060
- * @param array $arguments
1061
- * @return mixed
1062
- * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
1063
- */
1064
- public function __call($name, $arguments)
1065
- {
1066
- // make sure the name starts with 'is', otherwise
1067
- if (substr($name, 0, 2) !== 'is') {
1068
- throw new BadMethodCallException("No such method exists: $name");
1069
- }
1070
-
1071
- $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1072
-
1073
- $key = substr($name, 2);
1074
-
1075
- return $this->matchUAAgainstKey($key);
1076
- }
1077
-
1078
- /**
1079
- * Find a detection rule that matches the current User-agent.
1080
- *
1081
- * @param null $userAgent deprecated
1082
- * @return boolean
1083
- */
1084
- protected function matchDetectionRulesAgainstUA($userAgent = null)
1085
- {
1086
- // Begin general search.
1087
- foreach ($this->getRules() as $_regex) {
1088
- if (empty($_regex)) {
1089
- continue;
1090
- }
1091
-
1092
- if ($this->match($_regex, $userAgent)) {
1093
- return true;
1094
- }
1095
- }
1096
-
1097
- return false;
1098
- }
1099
-
1100
- /**
1101
- * Search for a certain key in the rules array.
1102
- * If the key is found then try to match the corresponding
1103
- * regex against the User-Agent.
1104
- *
1105
- * @param string $key
1106
- *
1107
- * @return boolean
1108
- */
1109
- protected function matchUAAgainstKey($key)
1110
- {
1111
- // Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
1112
- $key = strtolower($key);
1113
- if (false === isset($this->cache[$key])) {
1114
-
1115
- // change the keys to lower case
1116
- $_rules = array_change_key_case($this->getRules());
1117
-
1118
- if (false === empty($_rules[$key])) {
1119
- $this->cache[$key] = $this->match($_rules[$key]);
1120
- }
1121
-
1122
- if (false === isset($this->cache[$key])) {
1123
- $this->cache[$key] = false;
1124
- }
1125
- }
1126
-
1127
- return $this->cache[$key];
1128
- }
1129
-
1130
- /**
1131
- * Check if the device is mobile.
1132
- * Returns true if any type of mobile device detected, including special ones
1133
- * @param null $userAgent deprecated
1134
- * @param null $httpHeaders deprecated
1135
- * @return bool
1136
- */
1137
- public function isMobile($userAgent = null, $httpHeaders = null)
1138
- {
1139
-
1140
- if ($httpHeaders) {
1141
- $this->setHttpHeaders($httpHeaders);
1142
- }
1143
-
1144
- if ($userAgent) {
1145
- $this->setUserAgent($userAgent);
1146
- }
1147
-
1148
- // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
1149
- if ($this->getUserAgent() === 'Amazon CloudFront') {
1150
- $cfHeaders = $this->getCfHeaders();
1151
- if(array_key_exists('HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] === 'true') {
1152
- return true;
1153
- }
1154
- }
1155
-
1156
- $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1157
-
1158
- if ($this->checkHttpHeadersForMobile()) {
1159
- return true;
1160
- } else {
1161
- return $this->matchDetectionRulesAgainstUA();
1162
- }
1163
-
1164
- }
1165
-
1166
- /**
1167
- * Check if the device is a tablet.
1168
- * Return true if any type of tablet device is detected.
1169
- *
1170
- * @param string $userAgent deprecated
1171
- * @param array $httpHeaders deprecated
1172
- * @return bool
1173
- */
1174
- public function isTablet($userAgent = null, $httpHeaders = null)
1175
- {
1176
- // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
1177
- if ($this->getUserAgent() === 'Amazon CloudFront') {
1178
- $cfHeaders = $this->getCfHeaders();
1179
- if(array_key_exists('HTTP_CLOUDFRONT_IS_TABLET_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] === 'true') {
1180
- return true;
1181
- }
1182
- }
1183
-
1184
- $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1185
-
1186
- foreach (self::$tabletDevices as $_regex) {
1187
- if ($this->match($_regex, $userAgent)) {
1188
- return true;
1189
- }
1190
- }
1191
-
1192
- return false;
1193
- }
1194
-
1195
- /**
1196
- * This method checks for a certain property in the
1197
- * userAgent.
1198
- * @todo: The httpHeaders part is not yet used.
1199
- *
1200
- * @param string $key
1201
- * @param string $userAgent deprecated
1202
- * @param string $httpHeaders deprecated
1203
- * @return bool|int|null
1204
- */
1205
- public function is($key, $userAgent = null, $httpHeaders = null)
1206
- {
1207
- // Set the UA and HTTP headers only if needed (eg. batch mode).
1208
- if ($httpHeaders) {
1209
- $this->setHttpHeaders($httpHeaders);
1210
- }
1211
-
1212
- if ($userAgent) {
1213
- $this->setUserAgent($userAgent);
1214
- }
1215
-
1216
- $this->setDetectionType(self::DETECTION_TYPE_EXTENDED);
1217
-
1218
- return $this->matchUAAgainstKey($key);
1219
- }
1220
-
1221
- /**
1222
- * Some detection rules are relative (not standard),
1223
- * because of the diversity of devices, vendors and
1224
- * their conventions in representing the User-Agent or
1225
- * the HTTP headers.
1226
- *
1227
- * This method will be used to check custom regexes against
1228
- * the User-Agent string.
1229
- *
1230
- * @param $regex
1231
- * @param string $userAgent
1232
- * @return bool
1233
- *
1234
- * @todo: search in the HTTP headers too.
1235
- */
1236
- public function match($regex, $userAgent = null)
1237
- {
1238
- $match = (bool) preg_match(sprintf('#%s#is', $regex), (false === empty($userAgent) ? $userAgent : $this->userAgent), $matches);
1239
- // If positive match is found, store the results for debug.
1240
- if ($match) {
1241
- $this->matchingRegex = $regex;
1242
- $this->matchesArray = $matches;
1243
- }
1244
-
1245
- return $match;
1246
- }
1247
-
1248
- /**
1249
- * Get the properties array.
1250
- *
1251
- * @return array
1252
- */
1253
- public static function getProperties()
1254
- {
1255
- return self::$properties;
1256
- }
1257
-
1258
- /**
1259
- * Prepare the version number.
1260
- *
1261
- * @todo Remove the error supression from str_replace() call.
1262
- *
1263
- * @param string $ver The string version, like "2.6.21.2152";
1264
- *
1265
- * @return float
1266
- */
1267
- public function prepareVersionNo($ver)
1268
- {
1269
- $ver = str_replace(array('_', ' ', '/'), '.', $ver);
1270
- $arrVer = explode('.', $ver, 2);
1271
-
1272
- if (isset($arrVer[1])) {
1273
- $arrVer[1] = @str_replace('.', '', $arrVer[1]); // @todo: treat strings versions.
1274
- }
1275
-
1276
- return (float) implode('.', $arrVer);
1277
- }
1278
-
1279
- /**
1280
- * Check the version of the given property in the User-Agent.
1281
- * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
1282
- *
1283
- * @param string $propertyName The name of the property. See self::getProperties() array
1284
- * keys for all possible properties.
1285
- * @param string $type Either self::VERSION_TYPE_STRING to get a string value or
1286
- * self::VERSION_TYPE_FLOAT indicating a float value. This parameter
1287
- * is optional and defaults to self::VERSION_TYPE_STRING. Passing an
1288
- * invalid parameter will default to the this type as well.
1289
- *
1290
- * @return string|float The version of the property we are trying to extract.
1291
- */
1292
- public function version($propertyName, $type = self::VERSION_TYPE_STRING)
1293
- {
1294
- if (empty($propertyName)) {
1295
- return false;
1296
- }
1297
-
1298
- // set the $type to the default if we don't recognize the type
1299
- if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
1300
- $type = self::VERSION_TYPE_STRING;
1301
- }
1302
-
1303
- $properties = self::getProperties();
1304
-
1305
- // Check if the property exists in the properties array.
1306
- if (true === isset($properties[$propertyName])) {
1307
-
1308
- // Prepare the pattern to be matched.
1309
- // Make sure we always deal with an array (string is converted).
1310
- $properties[$propertyName] = (array) $properties[$propertyName];
1311
-
1312
- foreach ($properties[$propertyName] as $propertyMatchString) {
1313
-
1314
- $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);
1315
-
1316
- // Identify and extract the version.
1317
- preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);
1318
-
1319
- if (false === empty($match[1])) {
1320
- $version = ($type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);
1321
-
1322
- return $version;
1323
- }
1324
-
1325
- }
1326
-
1327
- }
1328
-
1329
- return false;
1330
- }
1331
-
1332
- /**
1333
- * Retrieve the mobile grading, using self::MOBILE_GRADE_* constants.
1334
- *
1335
- * @return string One of the self::MOBILE_GRADE_* constants.
1336
- */
1337
- public function mobileGrade()
1338
- {
1339
- $isMobile = $this->isMobile();
1340
-
1341
- if (
1342
- // Apple iOS 4-7.0 – Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3 / 5.1 / 6.1), iPad 3 (5.1 / 6.0), iPad Mini (6.1), iPad Retina (7.0), iPhone 3GS (4.3), iPhone 4 (4.3 / 5.1), iPhone 4S (5.1 / 6.0), iPhone 5 (6.0), and iPhone 5S (7.0)
1343
- $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1344
- $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1345
- $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1346
-
1347
- // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)
1348
- // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM
1349
- // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices
1350
- // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7
1351
- ( $this->version('Android', self::VERSION_TYPE_FLOAT)>2.1 && $this->is('Webkit') ) ||
1352
-
1353
- // Windows Phone 7.5-8 - Tested on the HTC Surround (7.5), HTC Trophy (7.5), LG-E900 (7.5), Nokia 800 (7.8), HTC Mazaa (7.8), Nokia Lumia 520 (8), Nokia Lumia 920 (8), HTC 8x (8)
1354
- $this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT) >= 7.5 ||
1355
-
1356
- // Tested on the Torch 9800 (6) and Style 9670 (6), BlackBerry® Torch 9810 (7), BlackBerry Z10 (10)
1357
- $this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 6.0 ||
1358
- // Blackberry Playbook (1.0-2.0) - Tested on PlayBook
1359
- $this->match('Playbook.*Tablet') ||
1360
-
1361
- // Palm WebOS (1.4-3.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0), HP TouchPad (3.0)
1362
- ( $this->version('webOS', self::VERSION_TYPE_FLOAT) >= 1.4 && $this->match('Palm|Pre|Pixi') ) ||
1363
- // Palm WebOS 3.0 - Tested on HP TouchPad
1364
- $this->match('hp.*TouchPad') ||
1365
-
1366
- // Firefox Mobile 18 - Tested on Android 2.3 and 4.1 devices
1367
- ( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 18 ) ||
1368
-
1369
- // Chrome for Android - Tested on Android 4.0, 4.1 device
1370
- ( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 4.0 ) ||
1371
-
1372
- // Skyfire 4.1 - Tested on Android 2.3 device
1373
- ( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT) >= 4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
1374
-
1375
- // Opera Mobile 11.5-12: Tested on Android 2.3
1376
- ( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11.5 && $this->is('AndroidOS') ) ||
1377
-
1378
- // Meego 1.2 - Tested on Nokia 950 and N9
1379
- $this->is('MeeGoOS') ||
1380
-
1381
- // Tizen (pre-release) - Tested on early hardware
1382
- $this->is('Tizen') ||
1383
-
1384
- // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser
1385
- // @todo: more tests here!
1386
- $this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT) >= 2.0 ||
1387
-
1388
- // UC Browser - Tested on Android 2.3 device
1389
- ( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
1390
-
1391
- // Kindle 3 and Fire - Tested on the built-in WebKit browser for each
1392
- ( $this->match('Kindle Fire') ||
1393
- $this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT) >= 3.0 ) ||
1394
-
1395
- // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet
1396
- $this->is('AndroidOS') && $this->is('NookTablet') ||
1397
-
1398
- // Chrome Desktop 16-24 - Tested on OS X 10.7 and Windows 7
1399
- $this->version('Chrome', self::VERSION_TYPE_FLOAT) >= 16 && !$isMobile ||
1400
-
1401
- // Safari Desktop 5-6 - Tested on OS X 10.7 and Windows 7
1402
- $this->version('Safari', self::VERSION_TYPE_FLOAT) >= 5.0 && !$isMobile ||
1403
-
1404
- // Firefox Desktop 10-18 - Tested on OS X 10.7 and Windows 7
1405
- $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 10.0 && !$isMobile ||
1406
-
1407
- // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7
1408
- $this->version('IE', self::VERSION_TYPE_FLOAT) >= 7.0 && !$isMobile ||
1409
-
1410
- // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7
1411
- $this->version('Opera', self::VERSION_TYPE_FLOAT) >= 10 && !$isMobile
1412
- ){
1413
- return self::MOBILE_GRADE_A;
1414
- }
1415
-
1416
- if (
1417
- $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
1418
- $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<4.3 ||
1419
- $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT)<4.3 ||
1420
-
1421
- // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770
1422
- $this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||
1423
-
1424
- //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3
1425
- ($this->version('Opera Mini', self::VERSION_TYPE_FLOAT) >= 5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT) <= 7.0 &&
1426
- ($this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 || $this->is('iOS')) ) ||
1427
-
1428
- // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)
1429
- $this->match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||
1430
-
1431
- // @todo: report this (tested on Nokia N71)
1432
- $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11 && $this->is('SymbianOS')
1433
- ){
1434
- return self::MOBILE_GRADE_B;
1435
- }
1436
-
1437
- if (
1438
- // Blackberry 4.x - Tested on the Curve 8330
1439
- $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) <= 5.0 ||
1440
- // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)
1441
- $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT) <= 5.2 ||
1442
-
1443
- // Tested on original iPhone (3.1), iPhone 3 (3.2)
1444
- $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1445
- $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1446
- $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1447
-
1448
- // Internet Explorer 7 and older - Tested on Windows XP
1449
- $this->version('IE', self::VERSION_TYPE_FLOAT) <= 7.0 && !$isMobile
1450
- ){
1451
- return self::MOBILE_GRADE_C;
1452
- }
1453
-
1454
- // All older smartphone platforms and featurephones - Any device that doesn't support media queries
1455
- // will receive the basic, C grade experience.
1456
- return self::MOBILE_GRADE_C;
1457
- }
1458
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
icegram.php CHANGED
@@ -3,11 +3,11 @@
3
  * Plugin Name: Icegram - Popups, Optins, CTAs & lot more...
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
- * Version: 1.10.47
7
- * Tested up to: 5.7
8
  * Author: icegram
9
  * Author URI: https://www.icegram.com/
10
- * Copyright (c) 2014-19 Icegram
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  *
@@ -15,2059 +15,262 @@
15
  * Domain Path: /lang/
16
  */
17
 
18
- /**
19
- * Main class Icegram
20
- */
21
- class Icegram {
22
-
23
- var $plugin_url;
24
- var $plugin_path;
25
- var $version;
26
- var $_wpautop_tags;
27
- var $message_types;
28
- var $message_type_objs;
29
- var $shortcode_instances;
30
- var $available_headlines;
31
- var $mode;
32
- var $cache_compatibility;
33
-
34
- public static $current_page_id;
35
-
36
- function __construct() {
37
- global $ig_feedback, $ig_tracker;
38
-
39
- $feedback_version = '1.2.2';
40
- $ig_tracker = 'IG_Tracker_V_' . str_replace( '.', '_', $feedback_version );
41
-
42
- $this->version = "1.10.47";
43
- $this->shortcode_instances = array();
44
- $this->mode = 'local';
45
- $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
46
- $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
47
- $this->define_constants();
48
- $this->include_classes( $feedback_version );
49
- $this->cache_compatibility = get_option( 'icegram_cache_compatibility', 'no' );
50
-
51
- if ( is_admin() ) {
52
- $ig_feedback->render_deactivate_feedback();
53
- }
54
-
55
- if ( is_admin() && current_user_can( 'edit_posts' ) ) {
56
- $ig_campaign_admin = Icegram_Campaign_Admin::getInstance();
57
- $ig_message_admin = Icegram_Message_Admin::getInstance();
58
- add_action( 'admin_enqueue_scripts', array( &$this, 'enqueue_admin_styles_and_scripts' ) );
59
- add_action( 'admin_print_styles', array( &$this, 'remove_preview_button' ) );
60
- add_filter( 'post_row_actions', array( &$this, 'remove_row_actions' ), 10, 2 );
61
-
62
- add_action( 'admin_menu', array( &$this, 'admin_menus' ) );
63
- add_action( 'admin_init', array( &$this, 'welcome' ) );
64
- add_action( 'admin_init', array( &$this, 'dismiss_admin_notice' ) );
65
-
66
- add_action( 'admin_init', array( &$this, 'import_gallery_item' ) );
67
-
68
- add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
69
- add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
70
- add_action( 'icegram_settings_after', array( &$this, 'icegram_houskeeping' ) );
71
- add_action( 'admin_notices', array( &$this, 'add_admin_notices' ) );
72
- add_filter( 'plugin_action_links', array( $this, 'ig_plugin_settings_link' ), 10, 2 );
73
- } else {
74
- add_action( 'wp_footer', array( &$this, 'icegram_load_data' ) );
75
- }
76
- if ( $this->cache_compatibility === 'no' ) {
77
- add_action( 'wp_footer', array( &$this, 'display_messages' ) );
78
- }
79
- add_shortcode( 'icegram', array( &$this, 'execute_shortcode' ) );
80
- add_shortcode( 'ig_form', array( &$this, 'execute_form_shortcode' ) );
81
- // WPML compatibility
82
- add_filter( 'icegram_identify_current_page', array( &$this, 'wpml_get_parent_id' ), 10 );
83
-
84
- add_filter( 'icegram_branding_data', array( &$this, 'branding_data_remove' ), 10 );
85
- add_action( 'wp_enqueue_scripts', array( &$this, 'identify_current_page' ) );
86
- add_filter( 'icegram_get_valid_campaigns_sql', array( &$this, 'append_to_valid_campaigns_sql' ), 10, 2 );
87
- add_action( 'icegram_print_js_css_data', array( &$this, 'print_js_css_data' ), 10, 1 );
88
- // common
89
- add_action( 'init', array( &$this, 'register_campaign_post_type' ) );
90
- add_action( 'init', array( &$this, 'register_message_post_type' ) );
91
-
92
- add_action( 'icegram_loaded', array( &$this, 'load_compat_classes' ) );
93
-
94
- // execute shortcode in sidebar
95
- add_filter( 'widget_text', array( &$this, 'ig_widget_text_filter' ) );
96
-
97
- add_filter( 'rainmaker_validate_request', array( &$this, 'form_submission_validate_request' ), 10, 2 );
98
- add_filter( 'icegram_data', array( $this, 'two_step_mobile_popup' ), 100, 1 );
99
-
100
-
101
- if ( defined( 'DOING_AJAX' ) ) {
102
- if ( $this->cache_compatibility === 'yes' ) {
103
- add_action( 'wp_ajax_display_messages', array( &$this, 'display_messages' ) );
104
- add_action( 'wp_ajax_nopriv_display_messages', array( &$this, 'display_messages' ) );
105
- }
106
- add_action( 'wp_ajax_icegram_event_track', array( &$this, 'icegram_event_track' ) );
107
- add_action( 'wp_ajax_nopriv_icegram_event_track', array( &$this, 'icegram_event_track' ) );
108
- add_action( 'wp_ajax_klawoo_subscribe', array( &$this, 'klawoo_subscribe' ) );
109
- add_action( 'wp_ajax_icegram_run_housekeeping', array( &$this, 'run_housekeeping' ) );
110
- add_action( 'wp_ajax_save_gallery_data', array( &$this, 'save_gallery_data' ) );
111
-
112
- }
113
-
114
- }
115
-
116
- function ig_plugin_settings_link( $links, $file ) {
117
- if ( $file == plugin_basename( __FILE__ ) ) {
118
- $settings_link = '<a href="edit.php?post_type=ig_campaign&page=icegram-settings">' . __( 'Settings', 'icegram' ) . '</a>';
119
- $support_link = '<a href="edit.php?post_type=ig_campaign&page=icegram-support">' . __( 'Support', 'icegram' ) . '</a>';
120
- array_unshift( $links, $support_link );
121
- array_unshift( $links, $settings_link );
122
- }
123
-
124
- return $links;
125
 
126
- }
 
 
127
 
128
- public function define_constants() {
129
- if ( ! defined( 'IG_PLUGIN_URL' ) ) {
130
- define( 'IG_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
131
- }
132
- }
133
 
134
- public function load_compat_classes() {
135
 
136
- $compat_classes = (array) glob( $this->plugin_path . '/classes/compat/class-icegram-compat-*.php' );
137
- if ( empty( $compat_classes ) ) {
138
- return;
139
- }
 
140
 
141
- $active_plugins = (array) get_option( 'active_plugins', array() );
142
- if ( is_multisite() ) {
143
- $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
144
- }
145
- $active_plugins = array_unique( array_merge( array_values( $active_plugins ), array_keys( $active_plugins ) ) );
146
- $active_plugins_with_slugs = array();
147
- foreach ( $active_plugins as $key => $value ) {
148
- $slug = dirname( $value );
149
- if ( $slug == '.' ) {
150
- unset( $active_plugins[ $key ] );
151
- } else {
152
- $active_plugins[ $key ] = $slug;
153
- }
154
- }
155
 
156
- foreach ( $compat_classes as $file ) {
157
- if ( is_file( $file ) ) {
158
- $slug = str_replace( 'class-icegram-compat-', '', str_replace( ".php", "", basename( $file ) ) );
159
- if ( in_array( $slug, $active_plugins ) ) {
160
- include_once( $file );
161
- $class_name = 'Icegram_Compat_' . str_replace( '-', '_', $slug );
162
- if ( class_exists( $class_name ) ) {
163
- new $class_name();
164
- }
165
- }
166
- }
167
- }
168
- }
169
 
 
170
  /**
171
- * Show promotion
 
 
172
  */
173
- public function add_admin_notices() {
174
- global $icegram;
175
-
176
- $screen = get_current_screen();
177
- if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_message', 'edit-ig_campaign' ), true ) ) {
178
- return;
179
- }
180
-
181
- if ( ! $icegram->is_premium_installed() ) {
182
- include_once( 'ig-offer.php' );
183
- }
184
-
185
- }
186
-
187
- public function dismiss_admin_notice() {
188
- if ( isset( $_GET['ig_dismiss_admin_notice'] ) && $_GET['ig_dismiss_admin_notice'] == '1' && isset( $_GET['ig_option_name'] ) ) {
189
- $option_name = sanitize_text_field( $_GET['ig_option_name'] );
190
- update_option( $option_name . '_icegram', 'yes', false );
191
-
192
- //BFCM 2020 offer
193
- if ( 'ig_offer_bfcm_2020' === $option_name ) {
194
- $url = "https://www.icegram.com/pricing/?utm_source=in_app&utm_medium=ig_banner&utm_campaign=offer_bfcm_2020";
195
- header( "Location: {$url}" );
196
- exit();
197
- } else {
198
- $referer = wp_get_referer();
199
- wp_safe_redirect( $referer );
200
- exit();
201
- }
202
- }
203
- }
204
-
205
- public function klawoo_subscribe_form() {
206
  ?>
207
- <div class="wrap">
208
- <?php
209
- if ( stripos( get_current_screen()->base, 'settings' ) !== false ) {
210
- echo "<h2>" . __( 'Free Add-ons, Proven Marketing Tricks and Updates', 'icegram' ) . "</h2>";
211
- }
212
- $current_user = wp_get_current_user();
213
- $customer_email = $current_user->user_email;
214
- ?>
215
- <table class="form-table">
216
- <tr>
217
- <th scope="row"><?php _e( 'Get add-ons and tips...', 'icegram' ) ?></th>
218
- <td>
219
- <form name="klawoo_subscribe" action="#" method="POST" accept-charset="utf-8">
220
- <input class="ltr" type="text" name="name" id="name" placeholder="Name"/>
221
- <input class="regular-text ltr" type="text" name="email" id="email" placeholder="Email" value="<?php echo $customer_email ?>"/>
222
- <input type="hidden" name="list" value="7I763v6Ldrs3YhJeee5EOgFA"/>
223
- <input type="submit" name="submit" id="submit" class="button button-primary" value="Subscribe">
224
- <br><br>
225
- <input type="checkbox" name="es-gdpr-agree" id="es-gdpr-agree" value="1" required="required">
226
- <label for="es-gdpr-agree"><?php echo sprintf( __( 'I have read and agreed to our %s.', 'icegram' ), '<a href="https://www.icegram.com/privacy-policy/" target="_blank">' . __( 'Privacy Policy', 'icegram' ) . '</a>' ); ?></label>
227
- <br>
228
- </form>
229
- <div id="klawoo_response"></div>
230
- </td>
231
- </tr>
232
- </table>
233
- </div>
234
- <script type="text/javascript">
235
- jQuery(function () {
236
- jQuery("form[name=klawoo_subscribe]").submit(function (e) {
237
- e.preventDefault();
238
-
239
- jQuery('#klawoo_response').html('');
240
- params = jQuery("form[name=klawoo_subscribe]").serializeArray();
241
- params.push({name: 'action', value: 'klawoo_subscribe'});
242
-
243
- jQuery.ajax({
244
- method: 'POST',
245
- type: 'text',
246
- url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
247
- data: params,
248
- success: function (response) {
249
- if (response != '') {
250
- jQuery('#klawoo_response').html(response);
251
- } else {
252
- jQuery('#klawoo_response').html('error!');
253
- }
254
- }
255
- });
256
- });
257
- });
258
- </script>
259
- <?php
260
- }
261
-
262
-
263
- public function klawoo_subscribe() {
264
- $url = 'http://app.klawoo.com/subscribe';
265
-
266
- if ( ! empty( $_POST ) ) {
267
- $params = $_POST;
268
- } else {
269
- exit();
270
- }
271
- $method = 'POST';
272
- $qs = http_build_query( $params );
273
-
274
- $options = array(
275
- 'timeout' => 15,
276
- 'method' => $method
277
- );
278
-
279
- if ( $method == 'POST' ) {
280
- $options['body'] = $qs;
281
- } else {
282
- if ( strpos( $url, '?' ) !== false ) {
283
- $url .= '&' . $qs;
284
- } else {
285
- $url .= '?' . $qs;
286
- }
287
- }
288
-
289
- $response = wp_remote_request( $url, $options );
290
- if ( wp_remote_retrieve_response_code( $response ) == 200 ) {
291
- $data = $response['body'];
292
- if ( $data != 'error' ) {
293
-
294
- $message_start = substr( $data, strpos( $data, '<body>' ) + 6 );
295
- $remove = substr( $message_start, strpos( $message_start, '</body>' ) );
296
- $message = trim( str_replace( $remove, '', $message_start ) );
297
- echo( $message );
298
- exit();
299
- }
300
- }
301
- exit();
302
- }
303
-
304
- public function icegram_houskeeping() {
305
- ?>
306
- <div class="wrap">
307
- <?php
308
- if ( stripos( get_current_screen()->base, 'settings' ) !== false ) {
309
  ?>
310
- <form name="icegram_housekeeping" action="#" method="POST" accept-charset="utf-8">
311
- <h2><?php _e( 'Housekeeping', 'icegram' ) ?></h2>
312
- <p class="ig_housekeeping">
313
- <label for="icegram_remove_shortcodes">
314
- <input type="checkbox" name="icegram_remove_shortcodes" value="yes"/>
315
- <?php _e( 'Remove all Icegram shortcodes', 'icegram' ); ?>
316
- </label>
317
- <br/><br/>
318
- <label for="icegram_remove_all_data">
319
- <input type="checkbox" name="icegram_remove_all_data" value="yes"/>
320
- <?php _e( 'Remove all Icegram campaigns and messages', 'icegram' ); ?>
321
- </label>
322
- <br/><br/>
323
- <img alt="" src="<?php echo admin_url( 'images/wpspin_light.gif' ) ?>" class="ig_loader" style="vertical-align:middle;display:none"/>
324
- <input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Clean Up', 'icegram' ); ?>">
325
- <div id="icegram_housekeeping_response"></div>
326
- </p>
327
- </form>
328
-
329
- </div>
330
- <script type="text/javascript">
331
- jQuery(function () {
332
- jQuery("form[name=icegram_housekeeping]").submit(function (e) {
333
- if (confirm("<?php _e( 'You won\'t be able to recover this data once you proceed. Do you really want to perform this action?', 'icegram' ); ?>") == true) {
334
- e.preventDefault();
335
- jQuery('.ig_loader').show();
336
- jQuery('#icegram_housekeeping_response').text("");
337
- params = jQuery("form[name=icegram_housekeeping]").serializeArray();
338
- params.push({name: 'action', value: 'icegram_run_housekeeping'});
339
- params.push({name: 'security', value: '<?php echo wp_create_nonce( 'ig_run_housekeeping' ); ?> '});
340
-
341
- jQuery.ajax({
342
- method: 'POST',
343
- type: 'text',
344
- url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
345
- data: params,
346
- success: function (response) {
347
- jQuery('.ig_loader').hide();
348
- jQuery('#icegram_housekeeping_response').text("<?php _e( 'Done!', 'icegram' ); ?>");
349
- }
350
- });
351
- }
352
- });
353
- });
354
- </script>
355
  <?php
356
  }
357
- }
358
-
359
- public function run_housekeeping() {
360
- check_ajax_referer( 'ig_run_housekeeping', 'security' );
361
- global $wpdb, $current_user;
362
- $params = $_POST;
363
- $_POST = array();
364
- if ( current_user_can( 'manage_options' ) && ! empty( $params['icegram_remove_shortcodes'] ) && $params['icegram_remove_shortcodes'] == 'yes' ) {
365
- // first get all posts with [icegram] shortcode in them
366
- $sql = "SELECT * FROM `$wpdb->posts` WHERE `post_content` LIKE '%[icegram %]%' and `post_type` != 'revision' ";
367
- $posts = $wpdb->get_results( $sql, OBJECT );
368
- if ( ! empty( $posts ) && is_array( $posts ) ) {
369
- foreach ( $posts as $post ) {
370
- $post_content = $post->post_content;
371
- // remove shortcode with regexp now
372
- $re = "/\\[icegram(.)*\\]/i";
373
- $post_content = preg_replace( $re, '', $post_content );
374
- // save post content back
375
- if ( $post_content && $post_content != $post->post_content ) {
376
- wp_update_post( array(
377
- 'ID' => $post->ID,
378
- 'post_content' => $post_content
379
- ) );
380
- }
381
- }
382
- }
383
- }
384
-
385
- if ( ! empty( $params['icegram_remove_all_data'] ) && $params['icegram_remove_all_data'] == 'yes' ) {
386
- $posts = get_posts( array( 'post_type' => array( 'ig_campaign', 'ig_message' ) ) );
387
- if ( ! empty( $posts ) && is_array( $posts ) ) {
388
- foreach ( $posts as $post ) {
389
- wp_delete_post( $post->ID, true );
390
- }
391
- }
392
- do_action( 'icegram_remove_all_data' );
393
- }
394
- $_POST = $params;
395
- }
396
-
397
- public function icegram_event_track() {
398
- if ( ! empty( $_POST['ig_local_url_cs'] ) && isset( $_SERVER['HTTP_ORIGIN'] ) ) {
399
- $parts = parse_url( $_POST['ig_local_url_cs'] );
400
- $base_url = $parts["scheme"] . "://" . $parts["host"];
401
- header( 'Access-Control-Allow-Origin: ' . $base_url );
402
- header( 'Access-Control-Allow-Credentials: true' );
403
- }
404
-
405
- if ( ! empty( $_POST['event_data'] ) ) {
406
- foreach ( $_POST['event_data'] as $event ) {
407
- switch ( $event['type'] ) {
408
- case 'shown':
409
- if ( is_array( $event['params'] ) && ! empty( $event['params']['message_id'] ) ) {
410
- $messages_shown[] = $event['params']['message_id'];
411
- if ( ! empty( $event['params']['expiry_time'] ) ) {
412
- if ( $event['params']['expiry_time'] == 'today' ) {
413
- $event['params']['expiry_time'] = strtotime( '+1 day', mktime( 0, 0, 0 ) );
414
- } elseif ( $event['params']['expiry_time'] == 'current_session' ) {
415
- $event['params']['expiry_time'] = 0;
416
- } else {
417
- $event['params']['expiry_time'] = strtotime( $event['params']['expiry_time'] );
418
- }
419
-
420
- $event['default'] = true;
421
- $event = apply_filters( 'icegram_check_event_track', $event );
422
- if ( $event['default'] ) {
423
- setcookie( 'icegram_campaign_shown_' . floor( $event['params']['campaign_id'] ), true, $event['params']['expiry_time'], '/' );
424
- }
425
- }
426
- }
427
- break;
428
- case 'clicked':
429
- if ( is_array( $event['params'] ) && ! empty( $event['params']['message_id'] ) ) {
430
- $messages_clicked[] = $event['params']['message_id'];
431
- if ( ! empty( $event['params']['expiry_time_clicked'] ) ) {
432
- if ( $event['params']['expiry_time_clicked'] == 'today' ) {
433
- $event['params']['expiry_time_clicked'] = strtotime( '+1 day', mktime( 0, 0, 0 ) );
434
- } elseif ( $event['params']['expiry_time_clicked'] == 'current_session' ) {
435
- $event['params']['expiry_time_clicked'] = 0;
436
- } else {
437
- $event['params']['expiry_time_clicked'] = strtotime( $event['params']['expiry_time_clicked'] );
438
- }
439
- //setcookie('icegram_messages_clicked_'.$event['params']['message_id'],true , $event['params']['expiry_time_clicked'] , '/' );
440
- setcookie( 'icegram_campaign_clicked_' . floor( $event['params']['campaign_id'] ), true, $event['params']['expiry_time_clicked'], '/' );
441
- }
442
- }
443
- break;
444
-
445
- default:
446
- break;
447
- }
448
-
449
- // Emit event for other plugins to handle it
450
- do_action( 'icegram_event_track', $event );
451
- do_action( 'icegram_event_track_' . $event['type'], $event['params'] );
452
- }
453
- }
454
- exit();
455
- }
456
-
457
- static function install() {
458
- // Redirect to welcome screen
459
- delete_option( '_icegram_activation_redirect' );
460
- add_option( '_icegram_activation_redirect', 'pending' );
461
- }
462
-
463
- public function welcome() {
464
-
465
- $this->db_update();
466
- // Bail if no activation redirect transient is set
467
- if ( false === get_option( '_icegram_activation_redirect' ) ) {
468
- return;
469
- }
470
-
471
- // Delete the redirect transient
472
- delete_option( '_icegram_activation_redirect' );
473
-
474
- wp_redirect( admin_url( 'edit.php?post_type=ig_campaign&page=icegram-support' ) );
475
- exit;
476
- }
477
-
478
- function db_update() {
479
- $current_db_version = get_option( 'icegram_db_version' );
480
- if ( ! $current_db_version || version_compare( $current_db_version, '1.2', '<' ) ) {
481
- include( 'updates/icegram-update-1.2.php' );
482
- }
483
- }
484
-
485
- public function admin_menus() {
486
-
487
- $welcome_page_title = __( 'Welcome to Icegram', 'icegram' );
488
- $gallery_page_title = '<span style="color:#f18500;font-weight:bolder;">' . __( 'Gallery', 'icegram' ) . '<span>';
489
- $gallery = add_submenu_page( 'edit.php?post_type=ig_campaign', $gallery_page_title, $gallery_page_title, 'manage_options', 'icegram-gallery', array( $this, 'gallery_screen' ) );
490
- $settings_page_title = __( 'Settings', 'icegram' );
491
- $upgrade_page_title = '<span style="color:#f18500;font-weight:bolder;">' . __( 'Upgrade', 'icegram' ) . '</span>';
492
-
493
- $menu_title = __( 'Docs & Support', 'icegram' );
494
- $about = add_submenu_page( 'edit.php?post_type=ig_campaign', $welcome_page_title, $menu_title, 'manage_options', 'icegram-support', array( $this, 'about_screen' ) );
495
- $settings = add_submenu_page( 'edit.php?post_type=ig_campaign', $settings_page_title, $settings_page_title, 'manage_options', 'icegram-settings', array( $this, 'settings_screen' ) );
496
- $upgrade = add_submenu_page( 'edit.php?post_type=ig_campaign', $upgrade_page_title, $upgrade_page_title, 'manage_options', 'icegram-upgrade', array( $this, 'upgrade_screen' ) );
497
-
498
-
499
- add_action( 'admin_print_styles-' . $about, array( $this, 'admin_css' ) );
500
- add_action( 'admin_print_styles-' . $settings, array( $this, 'admin_css' ) );
501
- add_action( 'admin_print_styles-' . $upgrade, array( $this, 'admin_css' ) );
502
-
503
- }
504
-
505
- public function admin_css() {
506
- wp_enqueue_style( 'icegram-activation', $this->plugin_url . '/assets/css/admin.min.css' );
507
- }
508
-
509
- public function about_screen() {
510
-
511
- // Import data if not done already
512
- if ( false === get_option( 'icegram_sample_data_imported' ) ) {
513
- $this->import_sample_data( $this->get_sample_data() );
514
- }
515
-
516
- include( 'about-icegram.php' );
517
- }
518
-
519
- public function settings_screen() {
520
- include( 'settings.php' );
521
- }
522
-
523
- public function upgrade_screen() {
524
- // include ( 'addons.php' );
525
- }
526
-
527
- public function check_for_gallery_items( $force_update = false ) {
528
- global $icegram;
529
- if ( $force_update === true || false === ( $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' ) ) ) {
530
- // $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?per_page=200&page=1';
531
- $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?filter[posts_per_page]=200';
532
- $ig_gallery_json = wp_remote_get( $url_for_gallery_item );
533
- if ( ! is_wp_error( $ig_gallery_json ) ) {
534
- $ig_gallery_json = ( wp_remote_retrieve_body( $ig_gallery_json ) );
535
- if ( ! empty( $ig_gallery_json ) ) {
536
- update_option( 'ig_last_gallery_items', $ig_gallery_json );
537
- }
538
- } else {
539
- update_option( 'requested_gallery_item_with_ajax', 'yes' );
540
- ?>
541
- <script type="text/javascript">
542
- jQuery(document).ready(function () {
543
- jQuery.ajax({
544
- url: '<?php echo esc_url( $url_for_gallery_item ); ?>',
545
- method: 'GET',
546
- dataType: 'json',
547
- success: function (response) {
548
- if (response != undefined && response != '') {
549
- //ajax to save data
550
- jQuery.ajax({
551
- url: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>',
552
- method: 'POST',
553
- dataType: 'json',
554
- data: {
555
- action: 'save_gallery_data',
556
- galleryitems: JSON.stringify(response),
557
- security: '<?php echo wp_create_nonce( 'gallery-save-data' ); // WPCS: XSS ok. ?>'
558
- },
559
- success: function (res) {
560
- if (res != undefined && res != '' && res.success != undefined && res.success == 'yes') {
561
- // All done.
562
- }
563
- }
564
- });
565
- }
566
- },
567
- error: function (response) {
568
- console.log(response, 'res');
569
-
570
- }
571
- });
572
- });
573
- </script>
574
- <?php }
575
- $url_for_categories = 'https://www.icegram.com/gallery/wp-json/wp/v2/custom_cat?filter[orderby]=parent&order=desc';
576
- $options = array(
577
- 'timeout' => 15,
578
- 'method' => 'GET',
579
- 'body' => ''
580
- );
581
- $response = wp_remote_request( $url_for_categories, $options );
582
- $response_code = wp_remote_retrieve_response_code( $response );
583
- // $body = json_decode($response['body'] ,true);
584
- if ( $response_code == 200 ) {
585
- $categories = json_decode( $response['body'], true );
586
- $cat_list = array();
587
- foreach ( $categories as $category ) {
588
- if ( $category['parent'] == 0 ) {
589
- $cat_list[ $category['term_id'] ]['name'] = $category['name'];
590
- $cat_list[ $category['term_id'] ]['slug'] = $category['slug'];
591
- $cat_list[ $category['term_id'] ]['term_id'] = $category['term_id'];
592
- } else {
593
- $cat_list[ $category['parent'] ]['list'][] = $category;
594
- }
595
- }
596
- $featured_cat = $cat_list[53];
597
- unset( $cat_list[53] );
598
- array_unshift( $cat_list, $featured_cat );
599
- update_option( 'ig_cat_list', $cat_list );
600
- } else {
601
- ?>
602
- <script type="text/javascript">
603
- jQuery(document).ready(function () {
604
- jQuery.ajax({
605
- url: '<?php echo esc_url( $url_for_categories ); ?>',
606
- method: 'GET',
607
- dataType: 'json',
608
- success: function (response) {
609
-
610
- if (response != undefined && response != '') {
611
- //ajax to save data
612
- jQuery.ajax({
613
- url: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>',
614
- method: 'POST',
615
- dataType: 'json',
616
- data: {
617
- action: 'save_gallery_data',
618
- categories: response,
619
- security: '<?php echo wp_create_nonce( 'gallery-save-data' ); // WPCS: XSS ok. ?>'
620
- },
621
- success: function (res) {
622
- if (res != undefined && res != '' && res.success != undefined && res.success == 'yes') {
623
- // All done.
624
- }
625
- }
626
- });
627
- }
628
- },
629
- error: function (response) {
630
- console.log(response, 'res');
631
-
632
- }
633
- });
634
- });
635
- </script>
636
- <?php
637
- }
638
- set_transient( 'ig_last_gallery_item_update', current_time( 'timestamp' ), 24 * HOUR_IN_SECONDS ); // 1 day
639
- }
640
- }
641
-
642
- public function save_gallery_data() {
643
- check_ajax_referer( 'gallery-save-data', 'security' );
644
- if ( current_user_can( 'manage_options' ) ) {
645
- if ( ! empty( $_REQUEST ) && ! empty( $_REQUEST['galleryitems'] ) ) {
646
- $ig_gallery_json = stripslashes( $_REQUEST['galleryitems'] );
647
- update_option( 'ig_last_gallery_items', $ig_gallery_json );
648
- }
649
- if ( ! empty( $_REQUEST ) && ! empty( $_REQUEST['categories'] ) ) {
650
- $categories = $_REQUEST['categories'];
651
- $cat_list = array();
652
- foreach ( $categories as $category ) {
653
- if ( $category['parent'] == 0 ) {
654
- $cat_list[ $category['term_id'] ]['name'] = $category['name'];
655
- $cat_list[ $category['term_id'] ]['slug'] = $category['slug'];
656
- } else {
657
- $cat_list[ $category['parent'] ]['list'][] = $category;
658
- }
659
- }
660
- update_option( 'ig_cat_list', $cat_list );
661
- }
662
- }
663
-
664
- }
665
-
666
- public static function gallery_screen() {
667
- global $icegram;
668
- //check for new gallery item
669
- $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' );
670
-
671
- if ( empty( $ig_last_gallery_item_update ) ) {
672
- $icegram->check_for_gallery_items( true );
673
- }
674
- $ig_gallery_items = get_option( 'ig_last_gallery_items', true );
675
- $cat_list = get_option( 'ig_cat_list', true );
676
- include( 'gallery.php' );
677
- wp_register_script( 'ig_gallery_js', $icegram->plugin_url . '/assets/js/gallery.min.js', array( 'jquery', 'backbone', 'wp-backbone', 'wp-a11y', 'wp-util' ), $icegram->version, true );
678
- if ( ! wp_script_is( 'ig_gallery_js' ) ) {
679
- wp_enqueue_script( 'ig_gallery_js' );
680
- $imported_gallery_items = get_option( 'ig_imported_gallery_items', true );
681
- $ig_plan = get_option( 'ig_engage_plan' );
682
- $ig_plan = ( ! empty( $ig_plan ) ) ? ( ( $ig_plan == 'plus' ) ? 1 : ( ( $ig_plan == 'pro' ) ? 2 : ( ( $ig_plan == 'max' ) ? 3 : 0 ) ) ) : 0;
683
- $ig_gallery_json =
684
- wp_localize_script( 'ig_gallery_js', '_wpThemeSettings', array(
685
- 'themes' => json_decode( $ig_gallery_items, true ),
686
- 'settings' => array(
687
- 'canInstall' => ( ! is_multisite() && ( 'install_themes' ) ),
688
- 'isInstall' => true,
689
- 'installURI' => ( ! is_multisite() && ( 'install_themes' ) ) ? admin_url( 'theme-install.php' ) : null,
690
- 'confirmDelete' => __( "Are you sure you want to delete this theme?\n\nClick 'Cancel' to go back, 'OK' to confirm the delete.", 'icegram' ),
691
- 'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ),
692
- 'ig_plan' => $ig_plan,
693
- 'cat_list' => $cat_list
694
- ),
695
- 'l10n' => array(
696
- 'addNew' => __( 'Add New Gallery Templates', 'icegram' ),
697
- 'search' => __( 'Search Gallery Templates', 'icegram' ),
698
- 'searchPlaceholder' => __( 'Search Design Templates', 'icegram' ), // placeholder (no ellipsis)
699
- 'themesFound' => __( 'Number of Gallery Templates found: %d', 'icegram' ),
700
- 'noThemesFound' => __( 'No Gallery Templates found. Try a different search.', 'icegram' ),
701
- ),
702
- 'installedThemes' => $imported_gallery_items
703
- ) );
704
- }
705
- }
706
-
707
- public function branding_data_remove( $icegram_branding_data ) {
708
- if ( ! empty( $icegram_branding_data ) && 'yes' != get_option( 'icegram_share_love', 'no' ) ) {
709
- $icegram_branding_data['powered_by_logo'] = '';
710
- $icegram_branding_data['powered_by_text'] = '';
711
- }
712
-
713
- return $icegram_branding_data;
714
- }
715
-
716
- //Execute Form shortcode
717
- function execute_form_shortcode( $atts = array() ) {
718
- return '<div class="ig_form_container layout_inline"></div>';
719
- }
720
-
721
- function execute_shortcode( $atts = array(), $content = null ) {
722
- // When shortcode is called, it will only prepare an array with conditions
723
- // And add a placeholder div
724
- // Display will happen in footer via display_messages()
725
- $i = count( $this->shortcode_instances );
726
- $this->shortcode_instances[ $i ] = shortcode_atts( array(
727
- 'campaigns' => '',
728
- 'messages' => '',
729
- 'skip_others' => 'no'
730
- ), $atts );
731
-
732
- $class[] = "ig_shortcode_container";
733
- $html[] = "<div id='icegram_shortcode_{$i}'";
734
- if ( ! empty( $atts['campaigns'] ) && ! empty( $content ) ) {
735
- $this->shortcode_instances[ $i ]['with_content'] = true;
736
- $class[] = "trigger_onclick";
737
- }
738
- foreach ( $atts as $key => $value ) {
739
- $value = str_replace( ",", " ", $value );
740
- $html[] = " data-{$key}=\"" . htmlentities( $value ) . "\" ";
741
- }
742
- $class = implode( " ", $class );
743
- $html[] = "class='" . $class . "' >" . $content . "</div>";
744
 
745
- return implode( " ", $html );
746
- }
 
747
 
748
- // Do not index Icegram campaigns / messages...
749
- // Not using currently - made custom post types non public...
750
- function icegram_load_data() {
751
- global $post;
752
- $icegram_pre_data['ajax_url'] = admin_url( 'admin-ajax.php' );
753
- $icegram_pre_data['post_obj'] = $_GET;
754
- $icegram_pre_data['post_obj']['is_home'] = ( is_home() || is_front_page() ) ? true : false;
755
- $icegram_pre_data['post_obj']['page_id'] = is_object( $post ) && isset( $post->ID ) ? $post->ID : 0;
756
- $icegram_pre_data['post_obj']['action'] = 'display_messages';
757
- $icegram_pre_data['post_obj']['shortcodes'] = $this->shortcode_instances;
758
- $icegram_pre_data['post_obj']['cache_compatibility'] = $this->cache_compatibility;
759
- $icegram_pre_data['post_obj']['device'] = $this->get_platform();
760
 
761
- wp_register_script( 'icegram_main_js', $this->plugin_url . '/assets/js/main.min.js', array( 'jquery' ), $this->version, true );
762
- if ( 'yes' === $this->cache_compatibility ) {
763
- if ( ! wp_script_is( 'icegram_main_js' ) ) {
764
- wp_enqueue_script( 'icegram_main_js' );
765
- }
766
- }
767
- wp_localize_script( 'icegram_main_js', 'icegram_pre_data', $icegram_pre_data );
768
  }
 
 
 
 
 
 
 
769
 
770
- function display_messages() {
771
-
772
- $skip_others = $preview_mode = false;
773
- $campaign_ids = $message_ids = array();
774
- $this->shortcode_instances = ( $this->cache_compatibility == 'yes' && ! empty( $_REQUEST['shortcodes'] ) ) ? $_REQUEST['shortcodes'] : $this->shortcode_instances;
775
- // Pull in message and campaign IDs from shortcodes - if set
776
- if ( ! empty( $this->shortcode_instances ) ) {
777
- foreach ( $this->shortcode_instances as $i => $value ) {
778
- $cids = array_map( 'trim', (array) explode( ',', intval( $value['campaigns'] ) ) );
779
- $mids = array_map( 'trim', (array) explode( ',', intval( $value['messages'] ) ) );
780
- if ( ! empty( $value['skip_others'] ) && $value['skip_others'] == 'yes' && ( ! empty( $cids ) || ! empty( $mids ) ) ) {
781
- $skip_others = true;
782
- }
783
- $campaign_ids = array_merge( $campaign_ids, $cids );
784
- $message_ids = array_merge( $message_ids, $mids );
785
- }
786
- }
787
- if ( ! empty( $_REQUEST['campaign_preview_id'] ) && intval( $_REQUEST['campaign_preview_id'] ) && ( 'edit_posts' ) ) {
788
- $campaign_ids = array( intval( $_REQUEST['campaign_preview_id'] ) );
789
- $preview_mode = true;
790
- }
791
-
792
- $messages = $this->get_valid_messages( $message_ids, $campaign_ids, $preview_mode, $skip_others );
793
 
794
- if ( empty( $messages ) ) {
795
- //wp_die(0);
796
- return;
797
- }
798
 
799
- $messages_to_show_ids = array();
800
- foreach ( $messages as $key => $message_data ) {
801
 
802
- if ( ! is_array( $message_data ) || empty( $message_data ) ) {
803
- continue;
804
- }
805
 
806
- // Don't show a seen message again - if needed
807
- // change to campaign targetting in v1.9.1
808
- if ( ! empty( $message_data['id'] ) &&
809
- empty( $_GET['campaign_preview_id'] ) &&
810
- ! empty( $message_data['retargeting'] ) &&
811
- $message_data['retargeting'] == 'yes'
812
- ) {
813
- if ( ! empty( $_COOKIE[ 'icegram_messages_shown_' . $message_data['id'] ] ) || ! empty( $_COOKIE[ 'icegram_campaign_shown_' . floor( $message_data['campaign_id'] ) ] ) ) {
814
- unset( $messages[ $key ] );
815
- continue;
816
- }
817
- }
818
- if ( ! empty( $message_data['id'] ) &&
819
- empty( $_GET['campaign_preview_id'] ) &&
820
- ! empty( $message_data['retargeting_clicked'] ) &&
821
- $message_data['retargeting_clicked'] == 'yes'
822
- ) {
823
- if ( ! empty( $_COOKIE[ 'icegram_messages_clicked_' . $message_data['id'] ] ) || ! empty( $_COOKIE[ 'icegram_campaign_clicked_' . floor( $message_data['campaign_id'] ) ] ) ) {
824
- unset( $messages[ $key ] );
825
- continue;
826
- }
827
- }
828
 
829
- // Avoid showing the same message twice
830
- if ( in_array( $message_data['id'], $messages_to_show_ids ) ) {
831
- unset ( $messages[ $key ] );
832
- continue;
833
- } else {
834
- $messages_to_show_ids[] = $message_data['id'];
835
  }
836
 
837
- $this->process_message_body( $messages[ $key ] );
838
- }
839
- if ( empty( $messages ) ) {
840
  return;
841
  }
842
-
843
- // Load icegram_main_js only when the $messages are still
844
- // not empty at this stage.
845
- if ( ! wp_script_is( 'icegram_main_js' ) ) {
846
- wp_enqueue_script( 'icegram_main_js' );
847
- }
848
-
849
- $icegram_default = apply_filters( 'icegram_branding_data',
850
- array(
851
- 'icon' => $this->plugin_url . '/assets/images/icegram-logo-branding-64-grey.png',
852
- 'powered_by_logo' => $this->plugin_url . '/assets/images/icegram-logo-branding-64-grey.png',
853
- 'powered_by_text' => __( 'Powered by Icegram', 'icegram' )
854
- ) );
855
- $messages = apply_filters( 'icegram_messages_to_show', $messages );
856
- $icegram_data = apply_filters( 'icegram_data', array(
857
- 'messages' => array_values( $messages ),
858
- 'ajax_url' => admin_url( 'admin-ajax.php' ),
859
- 'preview_id' => ! empty( $_GET['campaign_preview_id'] ) ? $_GET['campaign_preview_id'] : '',
860
- 'defaults' => $icegram_default
861
- ) );
862
- if ( empty( $icegram_data['preview_id'] ) ) {
863
- unset( $icegram_data['preview_id'] );
864
- }
865
-
866
- do_action( 'icegram_print_js_css_data', $icegram_data );
867
-
868
-
869
- // Load CF7 & Garvity Forms CSS & JS only if form loaded
870
- $compat_form_types = array( 'contact-form-7', 'gravityform' );
871
-
872
- foreach ( $icegram_data['messages'] as $message_id ) {
873
- foreach ( $compat_form_types as $type ) {
874
- if ( strpos( $message_id['form_html_original'], $type ) ) {
875
- do_action( 'icegram_data_printed', $type );
876
- }
877
- }
878
- }
879
- }
880
-
881
- function two_step_mobile_popup( $icegram_data ) {
882
-
883
- $temp = array();
884
- foreach ( $icegram_data['messages'] as $message_id => $message ) {
885
-
886
- if ( ! empty( $message['ig_mobile_popup'] ) && $message['ig_mobile_popup'] == true ) {
887
- $action_bar = $message;
888
- $action_bar['type'] = 'action-bar';
889
- $action_bar['theme'] = 'hello';
890
- $action_bar['position'] = '21';
891
- $action_bar['message'] = '';
892
- $action_bar['label'] = __( 'Show More', 'icegram' );
893
- $action_bar['id'] = $action_bar['id'] . '_00';
894
- $action_bar['use_custom_code'] = 'yes';
895
- $action_bar['form_html'] = '';
896
- $action_bar['form_html_original'] = '';
897
- $action_bar['rainmaker_form_code'] = '';
898
- $action_bar['link'] = '';
899
- $action_bar['redirect_to_link'] = '';
900
- $action_bar['cta'] = '';
901
- $action_bar['alt_cta'] = '';
902
- $action_bar['add_alt_cta'] = '';
903
- $action_bar['custom_css'] = '#ig_this_message .ig_close{display:none;}';
904
- $action_bar['custom_js'] = "<script type='text/javascript'>jQuery('#icegram_message_" . $action_bar['id'] . "').on('click', '.ig_button', function(){icegram.get_message_by_id('" . $action_bar['id'] . "').hide(); icegram.get_message_by_id('" . $message['id'] . "').show(); });</script>";
905
- unset( $action_bar['ig_mobile_popup'] );
906
- $temp[] = $action_bar;
907
- }
908
- }
909
- $icegram_data['messages'] = array_merge( $icegram_data['messages'], $temp );
910
- unset( $temp );
911
-
912
- return $icegram_data;
913
- }
914
-
915
-
916
- function print_js_css_data( $icegram_data ) {
917
-
918
- $this->collect_js_and_css( $icegram_data );
919
- if ( $this->cache_compatibility === 'yes' ) {
920
- echo json_encode( $icegram_data );
921
- wp_die();
922
- } else {
923
- wp_localize_script( 'icegram_main_js', 'icegram_data', $icegram_data );
924
- }
925
- }
926
-
927
- function collect_js_and_css( &$icegram_data ) {
928
-
929
- $types_shown = array();
930
- $scripts = array();
931
- $css = array();
932
- foreach ( $icegram_data['messages'] as $key => $message_data ) {
933
- $types_shown[] = $message_data['type'];
934
- }
935
-
936
- $types_shown = array_unique( $types_shown );
937
- $ver_prefix = '?var=' . $this->version;
938
-
939
- $scripts[] = $this->plugin_url . "/assets/js/icegram.min.js" . $ver_prefix;
940
- $css[] = $this->plugin_url . "/assets/css/frontend.min.css" . $ver_prefix;
941
- //minify and combine only for default msg type
942
- $ig_core_message_types = array( 'popup', 'action-bar', 'toast', 'messenger' );
943
- // Load JS and default CSS
944
- foreach ( $types_shown as $message_type ) {
945
- if ( ! in_array( $message_type, $ig_core_message_types ) ) {
946
- $scripts[] = $this->message_types[ $message_type ]['baseurl'] . "main.js" . $ver_prefix;
947
- $css[] = $this->message_types[ $message_type ]['baseurl'] . "default.css" . $ver_prefix;
948
- } else {
949
- $css[] = $this->message_types[ $message_type ]['baseurl'] . 'themes/' . $message_type . ".min.css" . $ver_prefix;
950
- }
951
- }
952
-
953
- //TODO :: add theme pack theme css files too.
954
- // Load theme CSS
955
- foreach ( $icegram_data['messages'] as $key => $message ) {
956
- if ( ! empty( $this->message_types[ $message['type'] ]['themes'][ $message['theme'] ] ) ) {
957
- $theme = $this->message_types[ $message['type'] ]['themes'][ $message['theme'] ]['baseurl'] . $message['theme'] . '.css' . $ver_prefix;
958
- } else {
959
- $theme_default = $this->message_types[ $message['type'] ] ['settings']['theme']['default'];
960
- $theme = $this->message_types[ $message['type'] ]['themes'][ $theme_default ]['baseurl'] . $theme_default . '.css' . $ver_prefix;
961
- $icegram_data['messages'][ $key ]['theme'] = $theme_default;
962
- }
963
- if ( ! preg_match( '/icegram\/message-types/i', $theme ) ) {
964
- $css [] = $theme;
965
- }
966
- }
967
- $css = array_unique( $css );
968
- $icegram_data['scripts'] = apply_filters( 'add_icegram_script', $scripts );
969
- $icegram_data['css'] = apply_filters( 'add_icegram_css', $css );
970
-
971
- return $icegram_data;
972
- }
973
-
974
- // Process
975
- function process_message_body( &$message_data ) {
976
- global $wp_scripts;
977
- global $wp_styles;
978
-
979
- if ( $this->cache_compatibility == 'yes' ) {
980
- $q_script = ! empty( $wp_scripts->queue ) ? $wp_scripts->queue : array();
981
- $q_style = ! empty( $wp_styles->queue ) ? $wp_styles->queue : array();
982
- }
983
- $content = $message_data['message'];
984
- $content = convert_chars( convert_smilies( wptexturize( $content ) ) );
985
- if ( isset( $GLOBALS['wp_embed'] ) ) {
986
- $content = $GLOBALS['wp_embed']->autoembed( $content );
987
- }
988
- $content = $this->after_wpautop( wpautop( $this->before_wpautop( $content ) ) );
989
- $content = do_shortcode( shortcode_unautop( $content ) );
990
- $message_data['message'] = $content;
991
-
992
- //do_shortcode in headline
993
- $message_data['headline'] = do_shortcode( shortcode_unautop( $message_data['headline'] ) );
994
- //shortcode support for Third party forms and Rainmaker
995
- $form_html_original = ! empty( $message_data["rainmaker_form_code"] )
996
- ? ( '[rainmaker_form id="' . $message_data["rainmaker_form_code"] . '"]' )
997
- : ( ! empty( $message_data['form_html_original'] ) ? $message_data['form_html_original'] : '' );
998
- $form_html_original = ! empty( $message_data["es_form_code"] )
999
- ? ( '[email-subscribers-form id="' . $message_data["es_form_code"] . '"]' )
1000
- : $form_html_original;
1001
-
1002
- if ( ! empty( $form_html_original ) ) {
1003
- $message_data['form_html'] = do_shortcode( shortcode_unautop( $form_html_original ) );
1004
- }
1005
- //TODO :: Handle case for inline style and script
1006
- if ( $this->cache_compatibility == 'yes' ) {
1007
- $handles = ! empty( $wp_scripts->queue ) ? array_diff( $wp_scripts->queue, $q_script ) : array();
1008
- unset( $q_script );
1009
- if ( ! empty( $handles ) ) {
1010
- if ( empty( $message_data['assets'] ) ) {
1011
- $message_data['assets'] = array();
1012
- }
1013
-
1014
- ob_start();
1015
- $wp_scripts->do_items( $handles );
1016
- $message_data['assets']['scripts'] = array_filter( explode( '<script', ob_get_clean() ) );
1017
- }
1018
-
1019
- //TODO :: do_items if required
1020
- $handles = ! empty( $wp_styles->queue ) ? array_diff( $wp_styles->queue, $q_style ) : array();
1021
- unset( $q_style );
1022
- if ( ! empty( $handles ) ) {
1023
- if ( empty( $message_data['assets'] ) ) {
1024
- $message_data['assets'] = array();
1025
- }
1026
-
1027
- foreach ( $handles as $handle ) {
1028
- ob_start();
1029
- $wp_styles->do_item( $handle );
1030
- $message_data['assets']['styles'][ $handle ] = ob_get_clean();
1031
- }
1032
- }
1033
- }
1034
  }
 
1035
 
1036
- function enqueue_admin_styles_and_scripts() {
1037
-
1038
- $screen = get_current_screen();
1039
- if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_campaign' ), true ) ) {
1040
- return;
1041
- }
1042
-
1043
- // Register scripts
1044
- wp_register_script( 'icegram_writepanel', $this->plugin_url . '/assets/js/admin.min.js', array( 'jquery', 'wp-color-picker' ), $this->version );
1045
-
1046
- wp_enqueue_script( 'icegram_writepanel' );
1047
-
1048
- $icegram_writepanel_params = array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'search_message_nonce' => wp_create_nonce( "search-messages" ), 'home_url' => home_url( '/' ) );
1049
- $this->available_headlines = apply_filters( 'icegram_available_headlines', array() );
1050
- $icegram_writepanel_params = array_merge( $icegram_writepanel_params, array( 'available_headlines' => $this->available_headlines ) );
1051
-
1052
- wp_localize_script( 'icegram_writepanel', 'icegram_writepanel_params', $icegram_writepanel_params );
1053
-
1054
- wp_enqueue_style( 'dashicons' );
1055
- wp_enqueue_style( 'wp-color-picker' );
1056
- wp_enqueue_style( 'icegram_admin_styles', $this->plugin_url . '/assets/css/admin.min.css', array(), $this->version );
1057
-
1058
- if ( ! wp_script_is( 'jquery-ui-datepicker' ) ) {
1059
- wp_enqueue_script( 'jquery-ui-datepicker' );
1060
- }
1061
-
1062
- }
1063
-
1064
- //execute shortcode in text widget
1065
- function ig_widget_text_filter( $content ) {
1066
- if ( ! preg_match( '/\[[\r\n\t ]*icegram?[\r\n\t ].*?\]/', $content ) ) {
1067
- return $content;
1068
- }
1069
-
1070
- $content = do_shortcode( $content );
1071
-
1072
- return $content;
1073
- }
1074
-
1075
- public static function get_platform() {
1076
- $mobile_detect = new Ig_Mobile_Detect();
1077
- $mobile_detect->setUserAgent();
1078
- if ( $mobile_detect->isMobile() ) {
1079
- return ( $mobile_detect->isTablet() ) ? 'tablet' : 'mobile';
1080
- } elseif ( $mobile_detect->isTablet() ) {
1081
- return 'tablet';
1082
- }
1083
-
1084
- return 'laptop';
1085
- }
1086
-
1087
- function get_message_data( $message_ids = array(), $preview = false ) {
1088
- global $wpdb;
1089
- $message_data = array();
1090
- $original_message_id_map = array();
1091
- $meta_key = $preview ? 'icegram_message_preview_data' : 'icegram_message_data';
1092
- $message_data_query = "SELECT post_id, meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key LIKE '$meta_key'";
1093
- if ( ! empty( $message_ids ) && is_array( $message_ids ) ) {
1094
- // For WPML compatibility
1095
- if ( function_exists( 'icl_object_id' ) ) {
1096
- $wpml_settings = get_option( 'icl_sitepress_settings' );
1097
- $original_if_missing = ( is_array( $wpml_settings ) && array_key_exists( 'show_untranslated_blog_posts', $wpml_settings ) && ! empty( $wpml_settings['show_untranslated_blog_posts'] ) ) ? true : false;
1098
-
1099
- foreach ( $message_ids as $i => $id ) {
1100
- $translated = icl_object_id( $id, 'ig_message', $original_if_missing );
1101
- $message_ids[ $i ] = $translated;
1102
- $original_message_id_map[ $translated ] = $id;
1103
- }
1104
- }
1105
- $message_ids = array_filter( array_unique( $message_ids ) );
1106
- if ( ! empty( $message_ids ) ) {
1107
- $message_data_query .= " AND post_id IN ( " . implode( ',', $message_ids ) . " )";
1108
- $message_data_results = $wpdb->get_results( $message_data_query, 'ARRAY_A' );
1109
- foreach ( $message_data_results as $message_data_result ) {
1110
- $data = maybe_unserialize( $message_data_result['meta_value'] );
1111
- if ( ! empty( $data ) ) {
1112
- $message_data[ $message_data_result['post_id'] ] = $data;
1113
- // For WPML compatibility
1114
- if ( ! empty( $original_message_id_map[ $message_data_result['post_id'] ] ) ) {
1115
- $message_data[ $message_data_result['post_id'] ]['original_message_id'] = $original_message_id_map[ $message_data_result['post_id'] ];
1116
- }
1117
- }
1118
- }
1119
- }
1120
- }
1121
-
1122
- return $message_data;
1123
- }
1124
-
1125
- function get_valid_messages( $message_ids = array(), $campaign_ids = array(), $preview_mode = false, $skip_others = false ) {
1126
- list( $message_ids, $campaign_ids, $preview_mode, $skip_others ) = apply_filters( 'icegram_get_valid_messages_params', array( $message_ids, $campaign_ids, $preview_mode, $skip_others ) );
1127
-
1128
- $valid_messages = $valid_campaigns = $message_campaign_map = array();
1129
-
1130
- $campaign_ids = array_filter( array_unique( (array) $campaign_ids ) );
1131
- $message_ids = array_filter( array_unique( (array) $message_ids ) );
1132
- if ( ! empty( $campaign_ids ) ) {
1133
- $valid_campaigns = $this->get_valid_campaigns( $campaign_ids, true, $preview_mode );
1134
- }
1135
-
1136
- // When skip_others is true, we won't load campaigns / messages from db
1137
- if ( ! $skip_others && ! $preview_mode ) {
1138
- $campaigns = $this->get_valid_campaigns();
1139
- if ( ! empty( $campaigns ) ) {
1140
- foreach ( $campaigns as $id => $campaign ) {
1141
- if ( ! array_key_exists( $id, $valid_campaigns ) ) {
1142
- $valid_campaigns[ $id ] = $campaign;
1143
- }
1144
- }
1145
- }
1146
- }
1147
-
1148
- // Create a map to look up campaign id for a given message
1149
- if ( ! empty( $valid_campaigns ) ) {
1150
- foreach ( $valid_campaigns as $id => $campaign ) {
1151
- if ( $preview_mode ) {
1152
- $campaign->messages = get_post_meta( $id, 'campaign_preview', true );
1153
- }
1154
- if ( ! empty( $campaign->messages ) ) {
1155
- foreach ( $campaign->messages as $msg ) {
1156
- $message_ids[] = $msg['id'];
1157
- if ( ! array_key_exists( $msg['id'], $message_campaign_map ) ) {
1158
- $message_campaign_map[ $msg['id'] ] = $id;
1159
- }
1160
- }
1161
- }
1162
- }
1163
- }
1164
 
1165
- // We don't display same message twice...
1166
- $message_ids = array_unique( $message_ids );
 
1167
 
1168
- if ( empty( $message_ids ) ) {
1169
- return array();
1170
- }
1171
- $valid_messages = $this->get_message_data( $message_ids, $preview_mode );
1172
 
1173
- foreach ( $valid_messages as $id => $message_data ) {
1174
- // Remove message if required fields are missing
1175
- if ( empty( $message_data ) || empty( $message_data['type'] ) ) {
1176
- unset( $valid_messages[ $id ] );
1177
- continue;
1178
- }
1179
- // Remove message if message type is uninstalled
1180
- $class_name = 'Icegram_Message_Type_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $message_data['type'] ) ) );
1181
- if ( ! class_exists( $class_name ) ) {
1182
- unset( $valid_messages[ $id ] );
1183
- continue;
1184
- }
1185
- $message_data['delay_time'] = 0;
1186
- $message_data['retargeting'] = '';
1187
- $message_data['campaign_id'] = ( $preview_mode ) ? $_REQUEST['campaign_preview_id'] : '';
1188
 
1189
- // Pull display time and retargeting rule from campaign if possible
1190
- $message_id = ( ! empty( $message_data['original_message_id'] ) ) ? $message_data['original_message_id'] : $id;
1191
- if ( ! empty( $message_campaign_map[ $message_id ] ) ) {
1192
- //modify campaign id
1193
- $message_data['campaign_id'] = apply_filters( 'modify_campaing_id', $message_campaign_map[ $message_id ], $message_id );
1194
- $campaign = $valid_campaigns[ floor( $message_data['campaign_id'] ) ];
1195
- if ( ! empty( $campaign ) && $campaign instanceof Icegram_Campaign ) {
1196
- $message_meta_from_campaign = $campaign->get_message_meta_by_id( $message_id );
1197
- if ( ! empty( $message_meta_from_campaign['time'] ) ) {
1198
- $message_data['delay_time'] = $message_meta_from_campaign['time'];
1199
- }
1200
 
1201
- //check if campaign is targeted to mobile at zero
1202
- $device_rule = $campaign->get_rule_value( 'device' );
1203
- if ( $this->get_platform() !== 'laptop' && ! empty( $device_rule['mobile'] ) && $device_rule['mobile'] == 'yes' && $message_data['delay_time'] == 0 && $message_data['type'] == 'popup' ) {
1204
- $message_data['ig_mobile_popup'] = true;
1205
- if ( ! empty( $message_data['triggers'] ) && ! empty( $message_data['triggers']['when_to_show'] ) ) {
1206
- $message_data['ig_mobile_popup'] = ( $message_data['triggers']['when_to_show'] == 'duration_on_page' && $message_data['triggers']['duration_on_page'] == 0 ) ? true : false;
1207
- }
1208
- }
1209
- //set delay time -1 if shortcode with content
1210
- foreach ( $this->shortcode_instances as $i => $value ) {
1211
- $campaign_ids = explode( ',', $value['campaigns'] );
1212
- if ( ! empty( $value['with_content'] ) && in_array( $message_data['campaign_id'], $campaign_ids ) ) {
1213
- $message_data['delay_time'] = - 1;
1214
- }
1215
- }
1216
- $rule_value = $campaign->get_rule_value( 'retargeting' );
1217
- $message_data['retargeting'] = ! empty( $rule_value['retargeting'] ) ? $rule_value['retargeting'] : '';
1218
- $message_data['expiry_time'] = ! empty( $rule_value['retargeting'] ) ? $rule_value['expiry_time'] : '';
1219
- $rule_value_retargeting_clicked = $campaign->get_rule_value( 'retargeting_clicked' );
1220
- $message_data['retargeting_clicked'] = ! empty( $rule_value_retargeting_clicked['retargeting_clicked'] ) ? $rule_value_retargeting_clicked['retargeting_clicked'] : '';
1221
- $message_data['expiry_time_clicked'] = ! empty( $rule_value_retargeting_clicked['retargeting_clicked'] ) ? $rule_value_retargeting_clicked['expiry_time_clicked'] : '';
1222
 
1223
- }
1224
- }
1225
- $valid_messages[ $id ] = $message_data;
1226
- }
1227
- $valid_messages = apply_filters( 'icegram_valid_messages', $valid_messages );
1228
 
1229
- return $valid_messages;
1230
- }
 
 
 
 
 
1231
 
1232
- function get_valid_campaigns( $campaign_ids = array(), $skip_page_check = false, $preview_mode = false ) {
1233
  global $wpdb;
1234
- if ( empty( $campaign_ids ) ) {
1235
- $sql = "SELECT pm.post_id
1236
- FROM {$wpdb->prefix}posts AS p
1237
- LEFT JOIN {$wpdb->prefix}postmeta AS pm ON ( pm.post_id = p.ID )
1238
- WHERE p.post_status = 'publish' ";
1239
- // Filter handler within this file (and possibly others) will append to this SQL
1240
- // and provide arguments for wpdb->prepare if needed.
1241
- // First element in the array is SQL, remaining are values for placeholders in SQL
1242
- $sql_params = apply_filters( 'icegram_get_valid_campaigns_sql', array( $sql ), array() );
1243
 
1244
- $campaign_ids = $wpdb->get_col( $wpdb->prepare( array_shift( $sql_params ), $sql_params ) );
1245
- }
1246
- $valid_campaigns = array();
1247
- foreach ( (array) $campaign_ids as $campaign_id ) {
1248
- $campaign = new Icegram_Campaign( $campaign_id );
1249
- if ( $preview_mode || $campaign->is_valid( array( 'skip_page_check' => $skip_page_check ) ) ) {
1250
- $valid_campaigns[ $campaign_id ] = $campaign;
1251
- } else {
1252
- // Campgain is invalid!
1253
  }
1254
-
1255
- }
1256
-
1257
- $valid_campaigns = apply_filters( 'icegram_valid_campaigns', $valid_campaigns );
1258
-
1259
- return $valid_campaigns;
1260
- }
1261
-
1262
- function append_to_valid_campaigns_sql( $sql_params = array(), $options = array() ) {
1263
- // Page check conditions
1264
- //$pid = $_GET['page_id'];
1265
- $pid = Icegram::get_current_page_id();
1266
- $sql = " AND (
1267
- pm.meta_key = 'icegram_campaign_target_rules' AND (
1268
- ( pm.meta_value LIKE '%%%s%%' )
1269
- OR ( pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' )
1270
- ";
1271
- $sql_params[] = 's:8:"sitewide";s:3:"yes";';
1272
- $sql_params[] = 's:10:"other_page";s:3:"yes";';
1273
- $sql_params[] = 's:7:"page_id";a:';
1274
- $sql_params[] = serialize( (string) $pid );
1275
- //local url
1276
- $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
1277
- $sql_params[] = 's:9:"local_url";s:3:"yes";';
1278
- if ( ! empty( $_REQUEST['cache_compatibility'] ) && $_REQUEST['cache_compatibility'] == 'yes' ) {
1279
- $is_home = ( ! empty( $_REQUEST['is_home'] ) && $_REQUEST['is_home'] === 'true' ) ? true : false;
1280
  } else {
1281
- $is_home = ( is_home() || is_front_page() ) ? true : false;
1282
- }
1283
- if ( $is_home === true ) {
1284
- $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
1285
- $sql_params[] = 's:8:"homepage";s:3:"yes";';
1286
- }
1287
- $sql .= " ) )";
1288
-
1289
- $sql_params[0] .= $sql;
1290
-
1291
- //s:9:"logged_in";s:3:"all";
1292
-
1293
- return $sql_params;
1294
- }
1295
-
1296
- // Include all classes required for Icegram plugin
1297
- function include_classes( $feedback_version ) {
1298
- global $ig_tracker, $ig_feedback;
1299
-
1300
- $feedback_version_for_file = str_replace( '.', '-', $feedback_version );
1301
- $t = 'classes/feedback/class-ig-tracker.php';
1302
- $f = 'classes/feedback/class-ig-feedback.php';
1303
- require_once( $t );
1304
- require_once( $f );
1305
-
1306
- $ig_feedback_class = 'IG_Feedback_V_' . str_replace( '.', '_', $feedback_version );
1307
- $ig_feedback = new $ig_feedback_class( 'Icegram', 'icegram', 'ig', 'igfree.', false );
1308
-
1309
- require_once( 'classes/feedback.php' );
1310
-
1311
- $classes = glob( $this->plugin_path . '/classes/*.php' );
1312
- foreach ( $classes as $file ) {
1313
- // Files with 'admin' in their name are included only for admin section
1314
- if ( is_file( $file ) && ( ( strpos( $file, '-admin' ) >= 0 && is_admin() ) ) ) {
1315
- $all_active_plugins = $ig_tracker::get_plugins();
1316
- if ( ( strpos( $file, 'ig-upsale-admin.php' ) !== false ) && in_array( 'icegram-engage/icegram-engage.php', $all_active_plugins ) ) {
1317
- continue;
1318
- }
1319
- include_once $file;
1320
- } elseif ( ! is_admin() ) {
1321
- include_once $file;
1322
- }
1323
- }
1324
-
1325
- // Load built in message types
1326
- $icegram_message_type_basedirs = glob( $this->plugin_path . '/message-types/*' );
1327
- // Allow other plugins to add new message types
1328
- $icegram_message_type_basedirs = apply_filters( 'icegram_message_type_basedirs', $icegram_message_type_basedirs );
1329
- // Set up different message type classes
1330
- foreach ( $icegram_message_type_basedirs as $dir ) {
1331
- $type = basename( $dir );
1332
- $class_file = $dir . "/main.php";
1333
- if ( is_file( $class_file ) ) {
1334
- include_once( $class_file );
1335
- }
1336
- $class_name = 'Icegram_Message_Type_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $type ) ) );
1337
- if ( class_exists( $class_name ) ) {
1338
- $this->message_type_objs[ $type ] = new $class_name();
1339
- }
1340
  }
1341
- do_action( 'ig_file_include' );
1342
- $this->message_types = apply_filters( 'icegram_message_types', array() );
1343
-
1344
- }
1345
-
1346
- // Register Campaign post type
1347
- function register_campaign_post_type() {
1348
- $labels = array(
1349
- 'name' => __( 'Campaigns', 'icegram' ),
1350
- 'singular_name' => __( 'Campaign', 'icegram' ),
1351
- 'add_new' => __( 'Add New Campaign', 'icegram' ),
1352
- 'add_new_item' => __( 'Add New Campaign', 'icegram' ),
1353
- 'edit_item' => __( 'Edit Campaign', 'icegram' ),
1354
- 'new_item' => __( 'New Campaign', 'icegram' ),
1355
- 'all_items' => __( 'Campaigns', 'icegram' ),
1356
- 'view_item' => __( 'View Campaign', 'icegram' ),
1357
- 'search_items' => __( 'Search Campaigns', 'icegram' ),
1358
- 'not_found' => __( 'No campaigns found', 'icegram' ),
1359
- 'not_found_in_trash' => __( 'No campaigns found in Trash', 'icegram' ),
1360
- 'parent_item_colon' => __( '', 'icegram' ),
1361
- 'menu_name' => __( 'Icegram', 'icegram' )
1362
- );
1363
-
1364
- $args = array(
1365
- 'labels' => $labels,
1366
- // 'menu_icon' => 'dashicons-info',
1367
- 'public' => false,
1368
- 'publicly_queryable' => false,
1369
- 'show_ui' => true,
1370
- 'show_in_menu' => true,
1371
- 'query_var' => true,
1372
- 'rewrite' => array( 'slug' => 'ig_campaign' ),
1373
- 'capability_type' => 'post',
1374
- 'has_archive' => false,
1375
- 'hierarchical' => false,
1376
- 'menu_position' => null,
1377
- 'menu_icon' => $this->plugin_url . '/assets/images/icegram-logo-branding-18-white.png',
1378
- 'supports' => array( 'title', 'editor' )
1379
- );
1380
-
1381
- register_post_type( 'ig_campaign', $args );
1382
- }
1383
-
1384
- // Register Message post type
1385
- function register_message_post_type() {
1386
- $labels = array(
1387
- 'name' => __( 'Messages', 'icegram' ),
1388
- 'singular_name' => __( 'Message', 'icegram' ),
1389
- 'add_new' => __( 'Create New', 'icegram' ),
1390
- 'add_new_item' => __( 'Create New Message', 'icegram' ),
1391
- 'edit_item' => __( 'Edit Message', 'icegram' ),
1392
- 'new_item' => __( 'New Message', 'icegram' ),
1393
- 'all_items' => __( 'Messages', 'icegram' ),
1394
- 'view_item' => __( 'View Message', 'icegram' ),
1395
- 'search_items' => __( 'Search Messages', 'icegram' ),
1396
- 'not_found' => __( 'No messages found', 'icegram' ),
1397
- 'not_found_in_trash' => __( 'No messages found in Trash', 'icegram' ),
1398
- 'parent_item_colon' => __( '', 'icegram' ),
1399
- 'menu_name' => __( 'Messages', 'icegram' )
1400
- );
1401
-
1402
- $args = array(
1403
- 'labels' => $labels,
1404
- 'public' => false,
1405
- 'publicly_queryable' => false,
1406
- 'show_ui' => true,
1407
- 'show_in_menu' => 'edit.php?post_type=ig_campaign',
1408
- 'query_var' => true,
1409
- 'rewrite' => array( 'slug' => 'ig_message' ),
1410
- 'capability_type' => 'post',
1411
- 'has_archive' => false,
1412
- 'hierarchical' => false,
1413
- 'menu_position' => null,
1414
- 'supports' => array( 'title' )
1415
- );
1416
-
1417
- register_post_type( 'ig_message', $args );
1418
  }
 
1419
 
 
 
 
 
 
 
 
 
1420
 
1421
- function import( $data = array() ) {
1422
- if ( empty( $data['campaigns'] ) && empty( $data['messages'] ) ) {
1423
- return;
1424
- }
1425
-
1426
- $default_theme = $default_type = '';
1427
- $first_message_type = current( $this->message_types );
1428
-
1429
- if ( is_array( $first_message_type ) ) {
1430
- $default_type = $first_message_type['type'];
1431
- if ( ! empty( $first_message_type['themes'] ) ) {
1432
- $default_theme = key( $first_message_type['themes'] );
1433
- }
1434
- }
1435
-
1436
- $new_campaign_ids = array();
1437
- foreach ( (array) $data['campaigns'] as $campaign ) {
1438
-
1439
- $args = array(
1440
- 'post_content' => ( ! empty( $campaign['post_content'] ) ) ? esc_attr( $campaign['post_content'] ) : '',
1441
- 'post_name' => ( ! empty( $campaign['post_title'] ) ) ? sanitize_title( $campaign['post_title'] ) : '',
1442
- 'post_title' => ( ! empty( $campaign['post_title'] ) ) ? $campaign['post_title'] : '',
1443
- // 'post_status' => ( !empty( $campaign['post_status'] ) ) ? $campaign['post_status'] : 'draft',
1444
- 'post_status' => 'draft',
1445
- 'post_type' => 'ig_campaign'
1446
- );
1447
-
1448
- $new_campaign_id = wp_insert_post( $args );
1449
- $new_campaign_ids[] = $new_campaign_id;
1450
-
1451
- if ( ! empty( $campaign['target_rules'] ) ) {
1452
-
1453
- $defaults = array(
1454
- 'homepage' => 'yes',
1455
- 'when' => 'always',
1456
- 'from' => '',
1457
- 'to' => '',
1458
- 'mobile' => 'yes',
1459
- 'tablet' => 'yes',
1460
- 'laptop' => 'yes',
1461
- 'logged_in' => 'all'
1462
- );
1463
-
1464
- $target_rules = wp_parse_args( $campaign['target_rules'], $defaults );
1465
- update_post_meta( $new_campaign_id, 'icegram_campaign_target_rules', $target_rules );
1466
- }
1467
-
1468
- if ( ! empty( $campaign['messages'] ) ) {
1469
-
1470
- $messages = array();
1471
-
1472
- foreach ( $campaign['messages'] as $message ) {
1473
-
1474
- if ( ! is_array( $message ) ) {
1475
- continue;
1476
- }
1477
-
1478
- $args = array(
1479
- 'post_content' => ( ! empty( $message['message'] ) ) ? esc_attr( $message['message'] ) : '',
1480
- 'post_name' => ( ! empty( $message['post_title'] ) ) ? sanitize_title( $message['post_title'] ) : '',
1481
- 'post_title' => ( ! empty( $message['post_title'] ) ) ? $message['post_title'] : '',
1482
- 'post_status' => ( ! empty( $message['post_status'] ) ) ? $message['post_status'] : 'publish',
1483
- 'post_type' => 'ig_message'
1484
- );
1485
-
1486
- $new_message_id = wp_insert_post( $args );
1487
- $new_message = array(
1488
- 'id' => $new_message_id,
1489
- 'time' => ( ! empty( $message['time'] ) ) ? $message['time'] : 0
1490
- );
1491
- //for gallery + CTA another message
1492
- if ( ! empty( $message['cta'] ) && $message['cta'] == 'cta_another_message' && ! empty( $message['cta_linked_message_id'] ) && $message['cta_linked_message_id'] == 'auto' ) {
1493
- $prev_message = end( $messages );
1494
- $message['cta_linked_message_id'] = $prev_message['id'];
1495
- array_pop( $messages );
1496
- }
1497
- $messages[] = $new_message;
1498
-
1499
- unset( $message['post_content'] );
1500
- unset( $message['time'] );
1501
-
1502
- $message['id'] = $new_message_id;
1503
-
1504
- $defaults = array(
1505
- 'post_title' => '',
1506
- 'type' => $default_type,
1507
- 'theme' => $default_theme,
1508
- 'animation' => '',
1509
- 'headline' => '',
1510
- 'label' => '',
1511
- 'link' => '',
1512
- 'icon' => '',
1513
- 'message' => '',
1514
- 'position' => '',
1515
- 'text_color' => '#000000',
1516
- 'bg_color' => '#ffffff',
1517
- 'custom_code' => '',
1518
- 'id' => ''
1519
- );
1520
- $icegram_message_data = wp_parse_args( $message, $defaults );
1521
- if ( ! empty( $icegram_message_data ) ) {
1522
- update_post_meta( $new_message_id, 'icegram_message_data', $icegram_message_data );
1523
- update_post_meta( $new_message_id, 'icegram_message_preview_data', $icegram_message_data );
1524
- }
1525
- }//foreach
1526
-
1527
- if ( ! empty( $campaign['messages'] ) ) {
1528
- update_post_meta( $new_campaign_id, 'messages', $messages );
1529
- update_post_meta( $new_campaign_id, 'campaign_preview', $messages );
1530
- }
1531
- }//if
1532
- }
1533
-
1534
- return $new_campaign_ids;
1535
-
1536
- }
1537
 
1538
- function import_gallery_item() {
1539
- if ( ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'fetch_messages' && ! empty( $_REQUEST['campaign_id'] ) && ! empty( $_REQUEST['gallery_item'] ) ) {
1540
- $url = 'https://www.icegram.com/gallery/wp-admin/admin-ajax.php?utm_source=ig_inapp&utm_campaign=ig_gallery&utm_medium=' . $_REQUEST['campaign_id'];
1541
- $params = $_REQUEST;
1542
- $imported_gallery_items = array();
1543
- $options = array(
1544
- 'timeout' => 15,
1545
- 'method' => 'POST',
1546
- 'body' => http_build_query( $params )
1547
- );
1548
- $response = wp_remote_request( $url, $options );
1549
- $response_code = wp_remote_retrieve_response_code( $response );
1550
- if ( $response_code == 200 ) {
1551
- $new_campaign_ids = $this->import( json_decode( $response['body'], true ) );
1552
- if ( ! empty( $new_campaign_ids ) ) {
1553
- $imported_gallery_items = get_option( 'ig_imported_gallery_items' );
1554
- $imported_gallery_items[] = $_REQUEST['campaign_id'];
1555
- update_option( 'ig_imported_gallery_items', $imported_gallery_items );
1556
- $location = admin_url( 'post.php?post=' . $new_campaign_ids[0] . '&action=edit' );
1557
- header( 'Location:' . $location );
1558
- exit;
1559
- } else {
1560
- wp_safe_redirect( $_SERVER['HTTP_REFERER'] );
1561
- }
1562
  }
1563
- }
1564
- }
1565
-
1566
- function import_sample_data( $data = array() ) {
1567
- $new_campaign_ids = $this->import( $data );
1568
- if ( ! empty( $new_campaign_ids ) ) {
1569
- update_option( 'icegram_sample_data_imported', $new_campaign_ids );
1570
- }
1571
- }
1572
-
1573
-
1574
- function get_sample_data() {
1575
-
1576
- return array(
1577
- 'campaigns' => array(
1578
- array(
1579
- 'post_name' => '',
1580
- 'post_title' => 'My First Icegram Campaign',
1581
- 'target_rules' => array(
1582
- 'homepage' => 'yes',
1583
- 'when' => 'always',
1584
- 'from' => '',
1585
- 'to' => '',
1586
- 'mobile' => 'yes',
1587
- 'tablet' => 'yes',
1588
- 'laptop' => 'yes',
1589
- 'logged_in' => 'all'
1590
- ),
1591
- 'messages' => array(
1592
- array(
1593
- 'post_title' => 'Get 2x more Contacts with Your Website',
1594
- 'post_status' => 'publish',
1595
- 'time' => '0',
1596
- 'type' => 'action-bar',
1597
- 'theme' => 'hello',
1598
- 'headline' => 'Get 2x more Contacts with Your Website',
1599
- 'label' => 'Show Me How',
1600
- 'link' => '',
1601
- 'icon' => '',
1602
- 'message' => 'Instant Results Guaranteed',
1603
- 'position' => '01',
1604
- 'text_color' => '#000000',
1605
- 'bg_color' => '#eb593c'
1606
- ),
1607
- array(
1608
- 'post_title' => '20% Off Coupon',
1609
- 'post_status' => 'publish',
1610
- 'time' => '4',
1611
- 'type' => 'messenger',
1612
- 'theme' => 'social',
1613
- 'animation' => 'slide',
1614
- 'headline' => '20% Off - for you',
1615
- 'label' => '',
1616
- 'link' => '',
1617
- 'icon' => '',
1618
- 'message' => "Hey there! We are running a <strong>special 20% off this week</strong> for registered users - like you.
1619
-
1620
- Use coupon <code>LOYALTY20</code> during checkout.",
1621
- 'position' => '22',
1622
- 'text_color' => '#000000',
1623
- 'bg_color' => '#ffffff'
1624
- ),
1625
- array(
1626
- 'post_title' => 'How this blog makes over $34,800 / month for FREE.',
1627
- 'post_status' => 'publish',
1628
- 'time' => '10',
1629
- 'type' => 'popup',
1630
- 'theme' => 'air-mail',
1631
- 'headline' => 'How this blog makes over $34,800 / month for FREE.',
1632
- 'label' => 'FREE INSTANT ACCESS',
1633
- 'link' => '',
1634
- 'icon' => '',
1635
- 'message' => "This website earns over $30,000 every month, every single month, almost on autopilot. I have 4 other sites with similar results. All I do is publish new regular content every week.
1636
-
1637
- <strong>Download my free kit to learn how I do this.</strong>
1638
-
1639
- <ul>
1640
- <li>How to choose blog topics that create long term value</li>
1641
- <li>The type of blog post that will make your site go viral</li>
1642
- <li>How to free yourself from the routine tasks</li>
1643
- <li>Resources and tips to get started quickly</li>
1644
- <li>Private members club to connect with fellow owners</li>
1645
- </ul>",
1646
- 'text_color' => '#000000',
1647
- 'bg_color' => '#ffffff'
1648
-
1649
- ),
1650
- array(
1651
- 'post_title' => 'Exclusive Marketing Report',
1652
- 'post_status' => 'publish',
1653
- 'time' => '6',
1654
- 'type' => 'toast',
1655
- 'theme' => 'stand-out',
1656
- 'animation' => 'pop',
1657
- 'headline' => 'Exclusive Marketing Report',
1658
- 'label' => '',
1659
- 'link' => '',
1660
- 'icon' => '',
1661
- 'message' => 'FREE for every subscriber. Click here to download it.',
1662
- 'position' => '02',
1663
- 'text_color' => '#000000',
1664
- 'bg_color' => '#ffffff'
1665
- )
1666
-
1667
- )
1668
- )
1669
- )
1670
- );
1671
- }
1672
-
1673
- function remove_preview_button() {
1674
- global $post_type;
1675
- if ( $post_type == 'ig_message' || $post_type == 'ig_campaign' ) {
1676
- ?>
1677
- <style type="text/css">
1678
- #message.updated.below-h2 {
1679
- display: none;
1680
- }
1681
-
1682
- #preview-action {
1683
- display: none;
1684
- }
1685
-
1686
- /*Remove add new campaign and message*/
1687
- .page-title-action {
1688
- display: none;
1689
- }
1690
- </style>
1691
- <?php
1692
- }
1693
- }
1694
-
1695
-
1696
- function remove_row_actions( $actions, $post ) {
1697
-
1698
- if ( empty( $post->post_type ) || ( $post->post_type != 'ig_campaign' && $post->post_type != 'ig_message' ) ) {
1699
- return $actions;
1700
- }
1701
-
1702
- unset( $actions['inline hide-if-no-js'] );
1703
- unset( $actions['view'] );
1704
-
1705
- return $actions;
1706
-
1707
- }
1708
-
1709
- function identify_current_page() {
1710
- global $post, $wpdb;
1711
-
1712
- $obj = get_queried_object();
1713
- $id = 0;
1714
- if ( ! empty( $obj->has_archive ) ) {
1715
- $sql = $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s ", array( $obj->has_archive, 'page' ) );
1716
- $id = $wpdb->get_var( $sql );
1717
- } elseif ( is_object( $post ) && isset( $post->ID ) ) {
1718
- $id = $post->ID;
1719
- }
1720
- $id = apply_filters( 'icegram_identify_current_page', $id );
1721
- self::$current_page_id = $id;
1722
- }
1723
-
1724
- static function get_current_page_id() {
1725
- global $post;
1726
- if ( ! empty( $_REQUEST['page_id'] ) && is_numeric( $_REQUEST['page_id'] ) ) {
1727
- $post = get_post( $_REQUEST['page_id'] );
1728
- setup_postdata( $post );
1729
- // WPML check
1730
- $id = apply_filters( 'icegram_identify_current_page', $post->ID );
1731
- self::$current_page_id = $id;
1732
- }
1733
-
1734
- return self::$current_page_id;
1735
- }
1736
-
1737
- static function get_current_page_url() {
1738
- if ( ! empty( $_REQUEST['cache_compatibility'] ) && $_REQUEST['cache_compatibility'] == 'yes' ) {
1739
- $pageURL = ( ! empty( $_REQUEST['referral_url'] ) ) ? $_REQUEST['referral_url'] : '';
1740
  } else {
1741
- $pageURL = 'http';
1742
- if ( isset( $_SERVER["HTTPS"] ) ) {
1743
- if ( $_SERVER["HTTPS"] == "on" ) {
1744
- $pageURL .= "s";
1745
- }
1746
- }
1747
- $pageURL .= "://";
1748
- if ( $_SERVER["SERVER_PORT"] != "80" ) {
1749
- $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
1750
- } else {
1751
- $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
1752
- }
1753
  }
1754
-
1755
- return $pageURL;
1756
- }
1757
-
1758
- function wpml_get_parent_id( $id ) {
1759
- global $post;
1760
- if ( function_exists( 'icl_object_id' ) && function_exists( 'icl_get_default_language' ) ) {
1761
- $id = icl_object_id( $id, $post->post_type, true, icl_get_default_language() );
1762
- }
1763
-
1764
- return $id;
1765
  }
 
1766
 
 
1767
 
1768
  /**
1769
- * Our implementation of wpautop to preserve script and style tags
 
 
 
 
1770
  */
1771
- function before_wpautop( $pee ) {
1772
- if ( trim( $pee ) === '' ) {
1773
- $this->_wpautop_tags = array();
1774
-
1775
- return '';
1776
- }
1777
-
1778
- $tags = array();
1779
- // Pull out tags and add placeholders
1780
- list( $pee, $tags['pre'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'pre' );
1781
- list( $pee, $tags['script'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'script' );
1782
- list( $pee, $tags['style'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'style' );
1783
- $this->_wpautop_tags = $tags;
1784
-
1785
- if ( ! empty( $pre_tags ) ) {
1786
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $pre_tags );
1787
- }
1788
- if ( ! empty( $script_tags ) ) {
1789
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $script_tags );
1790
- }
1791
- if ( ! empty( $style_tags ) ) {
1792
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $style_tags );
1793
- }
1794
-
1795
- return $pee;
1796
- }
1797
-
1798
- function after_wpautop( $pee ) {
1799
- if ( trim( $pee ) === '' || empty( $this->_wpautop_tags ) ) {
1800
- return '';
1801
- }
1802
-
1803
- // Replace placeholders with original content
1804
- if ( ! empty( $this->_wpautop_tags['pre'] ) ) {
1805
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['pre'] );
1806
- }
1807
- if ( ! empty( $this->_wpautop_tags['script'] ) ) {
1808
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['script'] );
1809
- }
1810
- if ( ! empty( $this->_wpautop_tags['style'] ) ) {
1811
- $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['style'] );
1812
- }
1813
-
1814
- $this->_wpautop_tags = array();
1815
-
1816
- return $pee;
1817
- }
1818
-
1819
- function _wpautop_add_tag_placeholders( $pee, $tag ) {
1820
- $tags = array();
1821
-
1822
- if ( false !== strpos( $pee, "<{$tag}" ) ) {
1823
- $pee_parts = explode( "</{$tag}>", $pee );
1824
- $last_pee = array_pop( $pee_parts );
1825
- $pee = '';
1826
- $i = 0;
1827
-
1828
- foreach ( $pee_parts as $pee_part ) {
1829
- $start = strpos( $pee_part, "<{$tag}" );
1830
-
1831
- // Malformed html?
1832
- if ( false === $start ) {
1833
- $pee .= $pee_part;
1834
- continue;
1835
- }
1836
-
1837
- $name = "<{$tag} wp-{$tag}-tag-$i></{$tag}>";
1838
- $tags[ $name ] = substr( $pee_part, $start ) . "</{$tag}>";
1839
-
1840
- $pee .= substr( $pee_part, 0, $start ) . $name;
1841
- $i ++;
1842
- }
1843
-
1844
- $pee .= $last_pee;
1845
- }
1846
-
1847
- return array( $pee, $tags );
1848
  }
 
1849
 
1850
- function _wpautop_replace_tag_placeholders( $pee, $tags ) {
1851
- if ( ! empty( $tags ) ) {
1852
- $pee = str_replace( array_keys( $tags ), array_values( $tags ), $pee );
1853
- }
1854
 
1855
- return $pee;
 
 
 
 
 
 
 
 
 
 
1856
  }
 
1857
 
1858
- static function duplicate_in_db( $original_id ) {
1859
- // Get access to the database
1860
- global $wpdb;
1861
- // Get the post as an array
1862
- $duplicate = get_post( $original_id, 'ARRAY_A' );
1863
- // Modify some of the elements
1864
- $duplicate['post_title'] = $duplicate['post_title'] . ' ' . __( 'Copy', 'icegram' );
1865
- $duplicate['post_status'] = 'draft';
1866
- // Set the post date
1867
- $timestamp = current_time( 'timestamp', 0 );
1868
-
1869
- $duplicate['post_date'] = date( 'Y-m-d H:i:s', $timestamp );
1870
-
1871
- // Remove some of the keys
1872
- unset( $duplicate['ID'] );
1873
- unset( $duplicate['guid'] );
1874
- unset( $duplicate['comment_count'] );
1875
-
1876
- // Insert the post into the database
1877
- $duplicate_id = wp_insert_post( $duplicate );
1878
-
1879
- // Duplicate all taxonomies/terms
1880
- $taxonomies = get_object_taxonomies( $duplicate['post_type'] );
1881
 
1882
- foreach ( $taxonomies as $taxonomy ) {
1883
- $terms = wp_get_post_terms( $original_id, $taxonomy, array( 'fields' => 'names' ) );
1884
- wp_set_object_terms( $duplicate_id, $terms, $taxonomy );
1885
- }
1886
 
1887
- // Duplicate all custom fields
1888
- $custom_fields = get_post_custom( $original_id );
1889
- foreach ( $custom_fields as $key => $value ) {
1890
- if ( $key === 'messages' ) {
1891
- $messages = unserialize( $value[0] );
1892
- foreach ( $messages as &$message ) {
1893
- $clone_msg_id = Icegram::duplicate_in_db( $message['id'] );
1894
- $message['id'] = $clone_msg_id;
1895
- }
1896
- $value[0] = serialize( $messages );
1897
- }
1898
- add_post_meta( $duplicate_id, $key, maybe_unserialize( $value[0] ) );
1899
- }
1900
 
1901
- return $duplicate_id;
1902
- }
1903
 
1904
- static function duplicate( $original_id ) {
1905
- $duplicate_id = Icegram::duplicate_in_db( $original_id );
1906
- $location = admin_url( 'post.php?post=' . $duplicate_id . '&action=edit' );
1907
- header( 'Location:' . $location );
1908
- exit;
1909
  }
 
1910
 
1911
- public static function form_submission_validate_request( $request_data ) {
1912
- if ( ! empty( $request_data ) ) {
1913
- // Check for Remote Rainmaker form submission request
1914
- $request_data['ig_is_remote'] = false;
1915
- $request_data['is_remote'] = false;
1916
- if ( ! empty( $request_data['ig_mode'] ) && $request_data['ig_mode'] === 'remote' ) {
1917
- $ig_remote_url = $request_data['ig_remote_url'];
1918
- if ( ! empty( $request_data['ig_campaign_id'] ) ) {
1919
- $rules = get_post_meta( $request_data['ig_campaign_id'], 'icegram_campaign_target_rules', true );
1920
- if ( ! empty( $rules['remote_urls'] ) && is_array( $rules['remote_urls'] ) ) {
1921
- foreach ( $rules['remote_urls'] as $remote_url_pattern ) {
1922
- $valid = Icegram_Campaign::is_valid_url( $remote_url_pattern, $ig_remote_url );
1923
- if ( $valid ) {
1924
- $request_data['ig_is_remote'] = true;
1925
- $request_data['is_remote'] = true;
1926
- break;
1927
- }
1928
- }
1929
- //TODO :: discard the the remote request and data
1930
- // if($request_data['ig_is_remote'] == false){
1931
- // return array();
1932
- // }
1933
- }
1934
-
1935
- }
1936
- }
1937
- }
1938
-
1939
- return $request_data;
1940
- }
1941
 
1942
- public static function get_ig_meta_info() {
1943
- $total_campaigns = wp_count_posts( 'ig_campaign' );
1944
- $total_campaigns_publish = $total_campaigns->publish;
1945
- $total_campaigns_draft = $total_campaigns->draft;
1946
 
1947
- $meta_info = array(
1948
- 'total_campaigns_publish' => $total_campaigns_publish,
1949
- 'total_campaigns_draft' => $total_campaigns_draft,
1950
- );
1951
 
1952
- return $meta_info;
 
 
 
 
 
1953
  }
 
1954
 
 
 
1955
  /**
1956
- * Render Quick Feedback Widget
1957
  *
1958
- * @param $params
 
 
1959
  *
1960
- * @since 1.10.38
1961
  */
1962
- public function render_feedback_widget( $params ) {
1963
- global $ig_feedback;
1964
-
1965
- $feedback = $ig_feedback;
1966
-
1967
- if ( ! $feedback->can_show_feedback_widget() ) {
1968
- return;
1969
  }
1970
-
1971
- $default_params = array(
1972
- 'set_transient' => true,
1973
- 'force' => false,
1974
- 'show_once' => false
1975
- );
1976
-
1977
- $params = wp_parse_args( $params, $default_params );
1978
-
1979
- if ( ! empty( $params['event'] ) ) {
1980
-
1981
- $event = $feedback->event_prefix . $params['event'];
1982
- $force = ! empty( $params['force'] ) ? $params['force'] : false;
1983
-
1984
- $can_show = false;
1985
-
1986
- if ( $force ) {
1987
- $can_show = true;
1988
- } else {
1989
- if ( ! $feedback->is_event_transient_set( $event ) ) {
1990
- $can_show = true;
1991
-
1992
- $feedback_data = $feedback->get_event_feedback_data( $feedback->plugin_abbr, $event );
1993
- if ( count( $feedback_data ) > 0 ) {
1994
- $show_once = $params['show_once'];
1995
- $feedback_data = array_reverse( $feedback_data );
1996
- $last_feedback_given_on = $feedback_data[0]['created_on'];
1997
-
1998
- // If event feedback given within 45 days or show event only once?
1999
- // Don't show now
2000
- if ( $show_once || ( strtotime( $last_feedback_given_on ) > strtotime( '-45 days' ) ) ) {
2001
- $can_show = false;
2002
- }
2003
- }
2004
- }
2005
- }
2006
-
2007
- if ( $can_show ) {
2008
- if ( 'star' === $params['type'] ) {
2009
- $feedback->render_stars( $params );
2010
- } elseif ( 'emoji' === $params['type'] ) {
2011
- $feedback->render_emoji( $params );
2012
- } elseif ( 'feedback' === $params['type'] ) {
2013
- $feedback->render_general_feedback( $params );
2014
- } elseif ( 'fb' === $params['type'] ) {
2015
- /**
2016
- * We are not calling home for this event and we want to show
2017
- * this Widget only once. So, we are storing feedback data now.
2018
- */
2019
- $feedback->set_feedback_data( 'ig', $event );
2020
- $feedback->render_fb_widget( $params );
2021
- } elseif ( 'poll' === $params['type'] ) {
2022
- $feedback->set_feedback_data( 'ig', $event );
2023
- $feedback->render_poll_widget( $params );
2024
- }
2025
- }
2026
- }
2027
- }
2028
-
2029
- /**
2030
- * Check if premium plugin installed
2031
- *
2032
- * @return boolean
2033
- *
2034
- * @since 1.10.39
2035
- */
2036
- public function is_premium_installed() {
2037
- global $ig_tracker;
2038
-
2039
- $icegram_premium = 'icegram-engage/icegram-engage.php';
2040
-
2041
- return $ig_tracker::is_plugin_installed( $icegram_premium );
2042
  }
2043
-
2044
- /**
2045
- * Check if premium plugin active
2046
- *
2047
- * @return boolean
2048
- *
2049
- * @since 1.10.39
2050
- */
2051
- public function is_premium_activated() {
2052
- global $ig_tracker;
2053
-
2054
- $icegram_premium = 'icegram-engage/icegram-engage.php';
2055
-
2056
- return $ig_tracker::is_plugin_activated( $icegram_premium );
2057
- }
2058
-
2059
  }
2060
 
2061
- function initialize_icegram() {
2062
- /* @var Icegram Object */
2063
- global $icegram;
2064
- // i18n / l10n - load translations
2065
- load_plugin_textdomain( 'icegram', false, dirname( plugin_basename( __FILE__ ) ) . '/lang/' );
2066
 
2067
- $icegram = new Icegram();
2068
-
2069
- do_action( 'icegram_loaded' );
2070
- }
2071
-
2072
- add_action( 'plugins_loaded', 'initialize_icegram' );
2073
- register_activation_hook( __FILE__, array( 'Icegram', 'install' ) );
3
  * Plugin Name: Icegram - Popups, Optins, CTAs & lot more...
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: All in one solution to inspire, convert and engage your audiences. Action bars, Popup windows, Messengers, Toast notifications and more. Awesome themes and powerful rules.
6
+ * Version: 2.0.0
7
+ * Tested up to: 5.7.2
8
  * Author: icegram
9
  * Author URI: https://www.icegram.com/
10
+ * Copyright (c) 2014-21 Icegram
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  *
15
  * Domain Path: /lang/
16
  */
17
 
18
+ if ( ! defined( 'ABSPATH' ) ) {
19
+ exit;
20
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ if ( ! defined( 'IG_FEEDBACK_TRACKER_VERSION' ) ) {
23
+ define( 'IG_FEEDBACK_TRACKER_VERSION', '1.2.2' );
24
+ }
25
 
26
+ /* ***************************** Initial Compatibility Work (Start) ******************* */
 
 
 
 
27
 
28
+ /* =========== Do not edit this code unless you know what you are doing ========= */
29
 
30
+ /*
31
+ * Note: We are not using IG_PLUGIN_DIR constant at this moment because there are chances
32
+ * It might be defined from older version of IG
33
+ */
34
+ require plugin_dir_path( __FILE__ ) . 'lite/classes/feedback/class-ig-tracker.php';
35
 
36
+ global $ig_tracker;
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
+ $ig_tracker = 'IG_Tracker_V_' . str_replace( '.', '_', IG_FEEDBACK_TRACKER_VERSION );
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
+ if ( ! function_exists( 'ig_show_upgrade_pro_notice' ) ) {
41
  /**
42
+ * Show IG Premium Upgrade Notice
43
+ *
44
+ * @since 1.11.0
45
  */
46
+ function ig_show_upgrade_pro_notice() {
47
+ $url = admin_url( 'plugins.php?plugin_status=upgrade' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  ?>
49
+ <div class="notice notice-error">
50
+ <p>
51
+ <?php
52
+ /* translators: %s: Link to Icegram Engage upgrade */
53
+ echo wp_kses_post( sprintf( __( 'You are using older version of <strong>Icegram Engage</strong> plugin. It won\'t work because it needs plugin to be updated. Please update %s plugin.', 'icegram' ),
54
+ '<a href="' . esc_url( $url ) . '" target="_blank">' . __( 'Icegram Engage', 'icegram' ) . '</a>' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  ?>
56
+ </p>
57
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  <?php
59
  }
60
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
+ if ( ! function_exists( 'deactivate_plugins' ) ) {
63
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
64
+ }
65
 
66
+ $ig_plan = 'lite';
67
+ if ( 'icegram-engage.php' === basename( __FILE__ ) ) {
68
+ $ig_plan = 'premium';
69
+ }
70
+ $current_active_plugins = $ig_tracker::get_active_plugins();
 
 
 
 
 
 
 
71
 
72
+ if ( 'premium' === $ig_plan ) {
73
+ if ( in_array( 'icegram/icegram.php', $current_active_plugins, true ) ) {
74
+ deactivate_plugins( 'icegram/icegram.php', true );
 
 
 
 
75
  }
76
+ } else {
77
+ /**
78
+ * Steps:
79
+ * - Check Whether Icegram Engage Installed
80
+ * - If It's installed & It's < 2.0.0 => Show Upgrade Notice
81
+ * - If It's installed & It's >= 2.0.0 => return
82
+ */
83
 
84
+ //- If It's installed & It's < 2.0.0 => Show Upgrade Notice
85
+ $all_plugins = $ig_tracker::get_plugins( 'all', true );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
+ $ig_prem_plugin = 'icegram-engage/icegram-engage.php';
88
+ $ig_prem_plugin_version = ! empty( $all_plugins[ $ig_prem_plugin ] ) ? $all_plugins[ $ig_prem_plugin ]['version'] : '';
 
 
89
 
90
+ if ( ! empty( $ig_prem_plugin_version ) ) {
 
91
 
92
+ // Is Premium active?
93
+ $is_premium_active = $all_plugins[ $ig_prem_plugin ]['is_active'];
 
94
 
95
+ // Free >= 2.0.0 && Premium < 2.0.0
96
+ if ( version_compare( $ig_prem_plugin_version, '2.0.0', '<' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
 
98
+ // Show Upgrade Notice if It's Admin Screen.
99
+ if ( is_admin() ) {
100
+ add_action( 'admin_head', 'ig_show_upgrade_pro_notice', PHP_INT_MAX );
 
 
 
101
  }
102
 
103
+ } elseif ( $is_premium_active && version_compare( $ig_prem_plugin_version, '2.0.0', '>=' ) ) {
 
 
104
  return;
105
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  }
107
+ }
108
 
109
+ /* ***************************** Initial Compatibility Work (End) ******************* */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
111
+ if ( ! defined( 'IG_PLUGIN_DIR' ) ) {
112
+ define( 'IG_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
113
+ }
114
 
115
+ if ( ! defined( 'IG_PLUGIN_URL' ) ) {
116
+ define( 'IG_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
117
+ }
 
118
 
119
+ if ( ! defined( 'IG_PLUGIN_FILE' ) ) {
120
+ define( 'IG_PLUGIN_FILE', __FILE__ );
121
+ }
 
 
 
 
 
 
 
 
 
 
 
 
122
 
123
+ if ( ! defined( 'IG_PLUGIN_VERSION' ) ) {
124
+ define( 'IG_PLUGIN_VERSION', '2.0.0' );
125
+ }
 
 
 
 
 
 
 
 
126
 
127
+ require plugin_dir_path( __FILE__ ) . 'lite/class-icegram.php';
128
+ require plugin_dir_path( __FILE__ ) . 'lite/class-icegram-loader.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
 
 
 
 
 
130
 
131
+ if ( ! function_exists( 'activate_icegram' ) ) {
132
+ /**
133
+ * The code that runs during plugin activation.
134
+ *
135
+ * @param bool $network_wide Is plugin being activated on a network.
136
+ */
137
+ function activate_icegram( $network_wide ) {
138
 
 
139
  global $wpdb;
140
+
141
+ require_once plugin_dir_path( __FILE__ ) . 'lite/classes/class-icegram-activator.php';
 
 
 
 
 
 
 
142
 
143
+ if ( is_multisite() && $network_wide ) {
144
+
145
+ // Get all active blogs in the network and activate plugin on each one
146
+ $blog_ids = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE deleted = %d", 0 ) );
147
+ foreach ( $blog_ids as $blog_id ) {
148
+ ig_activate_on_blog( $blog_id );
 
 
 
149
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  } else {
151
+ Icegram_Activator::activate();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  }
154
+ }
155
 
156
+ if ( ! function_exists( 'deactivate_icegram' ) ) {
157
+ /**
158
+ * The code that runs during plugin deactivation.
159
+ *
160
+ * @param bool $network_wide Is plugin being activated on a network.
161
+ *
162
+ */
163
+ function deactivate_icegram( $network_wide ) {
164
 
165
+ require_once plugin_dir_path( __FILE__ ) . 'lite/classes/class-icegram-deactivator.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
 
167
+ if ( is_multisite() && $network_wide ) {
168
+
169
+ global $wpdb;
170
+
171
+ // Get all active blogs in the network.
172
+ $blog_ids = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE deleted = %d", 0 ) );
173
+ foreach ( $blog_ids as $blog_id ) {
174
+ // Run deactivation code on each one
175
+ ig_trigger_deactivation_in_multisite( $blog_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  } else {
178
+ Icegram_Deactivator::deactivate();
 
 
 
 
 
 
 
 
 
 
 
179
  }
 
 
 
 
 
 
 
 
 
 
 
180
  }
181
+ }
182
 
183
+ if ( ! function_exists( 'ig_activate_on_blog' ) ) {
184
 
185
  /**
186
+ * Function to trigger Icegram's activation code for individual site/blog in a network.
187
+ *
188
+ * @param int $blog_id Blog ID of newly created site/blog.
189
+ *
190
+ * @since 1.11.0
191
  */
192
+ function ig_activate_on_blog( $blog_id ) {
193
+ switch_to_blog( $blog_id );
194
+ Icegram_Activator::activate();
195
+ restore_current_blog();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
+ }
198
 
199
+ if ( ! function_exists( 'ig_trigger_deactivation_in_multisite' ) ) {
 
 
 
200
 
201
+ /**
202
+ * Function to trigger Icegram deactivation code for individual site in a network.
203
+ *
204
+ * @param int $blog_id Blog ID of newly created site/blog.
205
+ *
206
+ * @since 1.11.0
207
+ */
208
+ function ig_trigger_deactivation_in_multisite( $blog_id ) {
209
+ switch_to_blog( $blog_id );
210
+ Icegram_Deactivator::deactivate();
211
+ restore_current_blog();
212
  }
213
+ }
214
 
215
+ register_activation_hook( __FILE__, 'activate_icegram' );
216
+ register_deactivation_hook( __FILE__, 'deactivate_icegram' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
 
218
+ if ( ! function_exists( 'initialize_icegram' ) ) {
219
+ function initialize_icegram() {
220
+ /* @var Icegram Object */
221
+ global $icegram;
222
 
223
+ // i18n / l10n - load translations
224
+ load_plugin_textdomain( 'icegram', false, IG_PLUGIN_DIR . 'lite/lang/' );
 
 
 
 
 
 
 
 
 
 
 
225
 
226
+ $icegram = new Icegram();
 
227
 
228
+ do_action( 'icegram_loaded' );
 
 
 
 
229
  }
230
+ }
231
 
232
+ add_action( 'plugins_loaded', 'initialize_icegram' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
 
234
+ add_filter( 'ig_is_page_for_notifications', 'ig_show_notification');
 
 
 
235
 
236
+ if ( ! function_exists( 'ig_show_notification' ) ) {
237
+ function ig_show_notification(){
 
 
238
 
239
+ $screen = get_current_screen();
240
+ if ( in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_campaign', 'edit-ig_message', 'ig_campaign_page_icegram-reports', 'ig_campaign_page_icegram-support', 'ig_campaign_page_icegram-settings', 'ig_campaign_page_icegram-upgrade' ) ) ){
241
+ return true;
242
+ }
243
+ return false;
244
+
245
  }
246
+ }
247
 
248
+ if ( ! function_exists( 'IG' ) ) {
249
+
250
  /**
251
+ * Icegram instance
252
  *
253
+ * @param string $plugin_path Plugin path from which files to load.
254
+ *
255
+ * @return Icegram
256
  *
257
+ * @since 1.11.0
258
  */
259
+ function IG( $plugin_path = '' ) {
260
+ $icegram_loader = Icegram_Loader::instance();
261
+ // Load files if plugin path given.
262
+ if ( ! empty( $plugin_path ) ) {
263
+ $icegram_loader->load_dependencies( $plugin_path );
 
 
264
  }
265
+ return $icegram_loader;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  }
268
 
269
+ $current_plugin_path = plugin_dir_path( __FILE__ );
 
 
 
 
270
 
271
+ /**
272
+ * We need to pass the plugin path explicitly using $current_plugin_path variable.
273
+ * We are not using IG_PLUGIN_DIR constant here, since using IG_PLUGIN_DIR constant causes premium version files not getting loaded when lite version is active and user is activating premium versions.
274
+ * In that case, value of IG_PLUGIN_DIR constant is the path of Icegram lite plugin(since it is loaded first before premium version) which does not have premium version's file thus these files are not loaded.
275
+ */
276
+ IG( $current_plugin_path );
 
about-icegram.php → lite/about-icegram.php RENAMED
@@ -3,7 +3,7 @@
3
  * About Icegram
4
  */
5
 
6
- if ( !defined( 'ABSPATH' ) ) exit;
7
 
8
  // Actions for support
9
  add_action( 'admin_footer', 'icegram_support_ticket_content' );
@@ -62,7 +62,7 @@ function icegram_support_ticket_content() {
62
  } else {
63
  jQuery('input#client_name').css('border-color', '');
64
  }
65
-
66
  var client_email = jQuery('input#client_email').val();
67
  if ( client_email == '' ) {
68
  jQuery('input#client_email').css('border-color', 'red');
3
  * About Icegram
4
  */
5
 
6
+ if ( ! defined( 'ABSPATH' ) ) exit;
7
 
8
  // Actions for support
9
  add_action( 'admin_footer', 'icegram_support_ticket_content' );
62
  } else {
63
  jQuery('input#client_name').css('border-color', '');
64
  }
65
+
66
  var client_email = jQuery('input#client_email').val();
67
  if ( client_email == '' ) {
68
  jQuery('input#client_email').css('border-color', 'red');
{assets → lite/assets}/css/admin.css RENAMED
@@ -1252,4 +1252,4 @@ input[type="submit"].alt:hover,
1252
  border-style: dotted;
1253
  border-color: rgba(165, 180, 252, 1);
1254
  user-select: all;
1255
- }
1252
  border-style: dotted;
1253
  border-color: rgba(165, 180, 252, 1);
1254
  user-select: all;
1255
+ }
{assets → lite/assets}/css/admin.min.css RENAMED
@@ -1,4 +1,4 @@
1
- #postdivrich{display:none}#ig-admin-tabs .wp-picker-container{display:inline-block}.ig_preview_button{display:none;padding:10px 10px 0}.campaign_target_rules_panel .options_group{border-bottom:1px dashed #d3d3d3}.campaign_target_rules_panel .options_group:last-child{border-bottom-style:none}.campaign_target_rules_panel .options_group .form-field .options_header{display:inline-block;width:30%;vertical-align:top}.campaign_target_rules_panel .options_group p label input[type=checkbox],.campaign_target_rules_panel .options_group p label input[type=radio]{width:0}.campaign_target_rules_panel .options_group p label input[type=date]{width:auto;margin-left:10px}.user_roles p label input[type=checkbox],.user_roles p label input[type=radio]{margin-left:3px}.campaign_target_rules_panel .options_group .form-field #icegram_messages{width:300px;text-align:center}.empty_campaign{margin:1em;font-style:italic}.handle em{font-weight:400;font-size:85%;margin-left:1em;color:#777}h3 .chosen-container{font-weight:500}.thickbox_edit_message{padding:0 1em;border-bottom:1px solid #d3d3d3}.messages-list-sortable{margin-top:30px}.messages_list_table{font-size:1em;width:100%;border-collapse:separate;border-spacing:3px}th.message_header{text-align:center!important}.message_title{text-align:left}.message_headline{text-align:left;padding-left:1.2em}.action_links,.message_seconds{width:75px!important;text-align:center}.message_seconds input{text-align:right}.message-row .seconds-text{width:40px!important;text-align:center}.message-sort-placeholder{background-color:#d3d3d3}.device{width:auto;line-height:5em;vertical-align:baseline}.device:after{font-family:dashicons;font-size:3em}.device input{position:relative;left:2.5em;top:1.5em}.admin_field_icon{display:inline-block;-webkit-font-smoothing:antialiased;width:18px;height:18px;font:400 18px/1 dashicons;color:#888;vertical-align:text-top;margin:0 2px}.shortcode_description:before{content:"\f348"}.shortcode_description.light{content:"\f348";color:#777}.campaign_shortcode{display:inline-block;width:45%;color:#777}.campaign_shortcode.light{border:1px dashed #ccc;padding-left:.6%;padding-right:.2%}.campaign_shortcode.light code{color:#777}label[for=device_mobile]{margin-left:-2em}label[for=device_mobile]:after{content:"\f470"}label[for=device_tablet]:after{content:"\f471"}label[for=device_laptop]:after{content:"\f472"}.date_picker:after{font-family:dashicons;content:"\f145";position:relative;top:5px;font:normal 20px/1 dashicons;vertical-align:top}.date_picker{margin-left:1em}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.date-picker{max-width:15%}.campaign_target_rules_panel .options_group .messages-list .form-field .message_header{width:75px!important;text-align:right}.disable{opacity:.3}.enable{opacity:1}.message_edit:after{content:"\f464"}.message_delete:after{content:"\f158"}.actions:after{font-family:dashicons;font-size:1.4em}.actions{text-decoration:none;color:#444;padding-right:3px;cursor:pointer}.actions:hover{opacity:.7}.action_links{vertical-align:middle}.message_header_label{color:#fff;text-align:center;font-size:.7em!important;margin:0!important;padding:3px 5px;cursor:auto;text-transform:uppercase}.message_header_label.ig_unknown{color:#343232;border:1px solid #000}.message_label{float:left;width:25%;padding:0}.message_field{width:65%;display:inline-block}.message_field.message_custom_css,.message_field.message_custom_js{font-family:Consolas,Monaco,monospace;font-size:12px}.message_image_button .image-buttons-icon{margin:0 2px}.message_image_button .image-buttons-icon:before{content:"\f128"}.message_headline_button,.message_image_button{vertical-align:top!important}.message_headline_button .headline-buttons-icon{margin:2px}.message_headline_button .headline-buttons-icon:before{content:"\f130"}.help_tip:after{content:"\f223"}.help_tip{float:right;margin:4px 0;cursor:help;text-decoration:none}.chosen-container{width:65%!important}.message_row.position{height:110px}.location-selector input[type=radio]:checked+label span{background-color:#2ea2cc}.location-selector{width:128px;height:115px;position:absolute;display:block;margin-left:24.3%;background-image:url(../images/desktop.png);background-position:0 -19px}.location-selector .location{background-color:#ddd;cursor:pointer;position:absolute}.location-selector .location:hover{background-color:#ccc}.location-selector .location.bottom,.location-selector .location.middle,.location-selector .location.top{height:14%;width:14%;right:42%}.location-selector .location.top{top:13px}.location-selector .location.middle{top:30%}.location-selector .location.bottom{bottom:43px}.location-selector .location.left,.location-selector .location.right{height:14%;width:14%;margin-left:0;margin-right:0}.location-selector .location.right{right:15px}.location-selector .location.left{left:15px}.wp-editor-container{margin-left:25%}.message-setting-fields #message_title,.message-setting-fields #upload_image{width:58%}.wp-editor-container span .mceLayout{width:50%}#edit-slug-box,#ui-datepicker-div,#wp-admin-bar-view,.empty_campaign,.location-selector input[type=radio]{display:none}#the-list .message_thumbnail img{max-width:200px;max-height:100px}#icegram_messages+.chosen-container-single .chosen-search input[type=text]{width:100%!important}.message_theme+.chosen-container.chosen-container .chosen-results{max-height:30em!important}.message_theme+.chosen-container-single .chosen-single span{background-repeat:no-repeat!important;background-position:100% 50%!important}.message_theme+.chosen-container .chosen-results li{margin:0 0 2% 2%;background-position:.5em 2em!important;-webkit-background-size:95%!important;background-size:95%!important;border:2px solid #eee!important;font-weight:700!important;display:inline-block!important;text-align:center!important;background-repeat:no-repeat!important}.message_theme+.chosen-container .chosen-results li.highlighted{color:#000!important;border:2px solid #2ea2cc!important;background-color:#eaefff!important}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}#tiptip_content,.chart-tooltip{font-size:11px;color:#fff;padding:.5em;background:#464646;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:1px 1px 3px rgba(0,0,0,.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,.1);box-shadow:1px 1px 3px rgba(0,0,0,.1);text-align:center;max-width:150px}#tiptip_content code,.chart-tooltip code{background:#888;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}table#icegram_post_query_table{padding:5px}table#icegram_post_query_table tr td{padding:5px}input.sm_text_field{padding:5px}#icegram_post_query_table label{font-weight:700}.icegram-dashicons:before{font-family:dashicons;position:relative;font-family:dashicons;font-style:normal;vertical-align:middle;font-size:2em}.about-wrap.icegram h2{color:#3754a8}.about-wrap.icegram h2{padding-top:19px;font-weight:600}.icegram-dashicons-testimonial h4{font-size:1.5em}.icegram-badge{background:#3754a8 url(../images/icegram-logo-branding-64-white.png) no-repeat;background-position:center 24px;color:#fff;font-size:12px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:24px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-moz-box-shadow:0 1px 3px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.about-wrap .icegram-badge{position:absolute;top:0;right:0}.icegram-support{font-size:14px;color:#000;margin:15px 0 0;height:10px;width:180px;text-align:center;text-rendering:optimizeLegibility;position:absolute;top:0;right:0;margin-top:178px;text-align:right}.icegram-contact-us{font-size:20px;line-height:1.5em;font-weight:800;margin-right:20px}.feature-section.col>div{position:relative;width:29.95%;margin-right:4.999999999%;float:left}.about-wrap.icegram .feature-section{display:block!important}.about-wrap [class$=col] .last-feature{margin-right:0}form[name=klawoo_subscribe]{margin-right:150px}form[name=klawoo_subscribe] input[name=email]{width:20em}.icegram-contact-us a{color:#3754a8}.upgrade_page{text-align:center}.upgrade_page h1{font-size:2.3em;color:#333;text-align:center;padding:1em;font-weight:700}.upgrade_page table{border-collapse:collapse;border:1px solid #d3d3d3;font-size:1.3em;margin:0 auto}.upgrade_page tr{padding:0}.upgrade_page td,.upgrade_page th{border-right:1px solid #d3d3d3;line-height:1.5;vertical-align:top;padding:.5em}.upgrade_page th{font-size:1.2em;padding-bottom:0}.upgrade_page td{padding:.5em 1em .5em}.feat_list{text-align:left;font-size:1em}.td_data{padding-top:1em}.plan_title{font-size:1.4em;display:block;width:100%;margin-bottom:-.2em}.plan_price{color:#0e74b2;font-size:1.8em;font-weight:400}.sm_hr{position:relative}.sm_hr:before{position:absolute;content:'';width:80%;left:10%;border-bottom:1px dashed #d3d3d3}.td_list_icon{font-size:1.2em;color:#11772d;margin-right:.3em}.upgrade_page .button-primary{text-shadow:none;font-size:1.15em!important;line-height:1em!important;height:2.5em!important;padding:.75em 1.5em!important}#popup_container{width:550px;background-color:#fff;margin:0 auto;padding:.5em 1em 1em 1em}#popup_container input[value=ig_vertical]{margin-left:3%}#popup_container select{width:30%}#popup_container #embed_howto_link{float:right;font-size:.8em;font-weight:400}.campaign_target_rules_panel .messages_list_table p.inline{display:block;margin:1em 0}.campaign_target_rules_panel .form-field .delete-url:before{font-family:dashicons;content:"\f182";cursor:pointer}.campaign_target_rules_panel .form-field .url_input_field{width:65%!important}.campaign_target_rules_panel #valid-field{margin-left:92%}.campaign_target_rules_panel #valid-field.error{font-family:dashicons;font-size:1.5em;color:red;vertical-align:middle;display:inline-block;-webkit-font-smoothing:antialiased;cursor:help}.campaign_target_rules_panel #valid-field.error:after{content:"\f223"}.campaign_target_rules_panel #add-url-icon:after{font-family:dashicons;content:"\f132";vertical-align:middle}.message_colors_options_container p{margin-top:.3em!important;margin-bottom:.3em!important}.message_colors_options_container p span.message_label{font-size:12px;margin-top:2px}.message-setting-fields .chosen-container-single .chosen-single{z-index:initial!important}.message-setting-fields .chosen-container-single.chosen-single div b{background:url(../images/chosen-sprite.png) no-repeat 0 2px!important}.ig_get_more,.message_animation+.chosen-container .chosen-results li.ig_get_more,.message_theme+.chosen-container .chosen-results li.ig_get_more{height:1.5em!important;background:rgba(255,231,180,.47)!important;border:1px dashed #b40000!important;line-height:1.5em;color:maroon!important;border-radius:.5em;width:92%!important}.message_animation+.chosen-container .chosen-results li.ig_get_more{height:1em!important;line-height:1em;margin-bottom:.1em;text-align:center}.message_animation+.chosen-container .chosen-results li.ig_get_more:after,.message_theme+.chosen-container .chosen-results li.ig_get_more:after{content:" \2192"}.message_animation+.chosen-container .chosen-results li.ig_get_more:focus,.message_animation+.chosen-container .chosen-results li.ig_get_more:hover,.message_theme+.chosen-container .chosen-results li.ig_get_more:focus,.message_theme+.chosen-container .chosen-results li.ig_get_more:hover{box-shadow:inset 0 0 1.5em rgba(253,214,131,.62)}.message_form_options{width:75%;margin-left:25%}.message_form_options label.message_label{display:none}.message_form_options textarea{resize:none;width:86%}.message_form_options p>div.form_radio_group{width:86%}.message_form_options span.message_label{width:100%}.message_form_options .form_inline_shortcode{margin-left:0;margin-top:1em;position:relative;width:inherit}.message_form_html_original{font-family:Consolas,Monaco,monospace;font-size:.8em}.form_radio_group .location{display:inline-block;width:97px;height:94px;padding:3px;padding-bottom:0;margin-right:.8em;border:1px solid transparent}.form_radio_group .location label{background:url(../images/from_layouts.png) no-repeat;display:block;width:95px;height:100px;border:1px solid transparent}.form_radio_group .location:hover{border:1px solid #2ea2cc}#message_form_style+.chosen-container-single .chosen-single{height:6em!important}#message_form_style+.chosen-container-single .chosen-single span{background-size:9em!important;line-height:6em!important;background-repeat:no-repeat;background-position:100% 50%!important}#message_form_style+.chosen-container .chosen-results li{width:43%!important;height:10em!important;margin:0 0 2% 2%;-webkit-background-size:95%!important;background-size:100%!important;border:2px solid #eee!important;font-weight:700!important;display:inline-block!important;text-align:center!important;background-repeat:no-repeat!important;background-position:0 100%!important;color:transparent}#message_form_style+.chosen-container .chosen-results li.highlighted{color:transparent!important;border:2px solid #2ea2cc!important;background-color:#eaefff!important}.message_form_options .chosen-container{width:86%!important}.feature-section.col.two-col>div{width:45.95%}.feature-section.col img{width:150px;border:none}.feature-section.col p{margin-bottom:1.5em}.about-wrap.icegram{max-width:100%}.about-wrap.icegram h2{margin-bottom:.5em}.about-wrap .feature-section h4{margin-top:.4em}.about-header .about-text{margin-top:0;margin-bottom:1.5em}.changelog .about-text{margin-bottom:0;margin-top:1.5em}.about-wrap .icegram-badge{right:1.3em;color:#3754a8;background-color:transparent;padding-top:100px;box-shadow:none;-webkit-box-shadow:none;background-image:url(../images/icegram-logo-branding-64.png)}.about-header .wrap{background-color:#fff;border-top:1px dotted #ddd}.about-header .wrap table{margin-top:.5em}.about-header th{font-size:1.1em;color:inherit;width:170px}.about-header{background-color:#fff;padding:1em 1em .5em 1em;-webkit-box-shadow:0 0 7px 0 rgba(0,0,0,.2);box-shadow:0 0 7px 0 rgba(0,0,0,.2)}.icegram-support{padding-right:1em;margin-top:140px}.icegram-actions a,.icegram-actions a:active{vertical-align:middle!important;font-size:1.15em;color:#3754a8}.icegram-actions .button-primary{text-shadow:none;font-size:1.15em!important;line-height:1em!important;height:2.5em!important;padding:.75em 1.5em!important;background:#038703!important;border-color:#038703!important}.icegram-actions .button-primary:active,.icegram-actions .button-primary:focus,.icegram-actions .button-primary:hover,.icegram-actions .button-primary:visited{color:#fff;background:#038703!important;-webkit-box-shadow:inset 0 2px 0 #038703!important;box-shadow:inset 0 2px 0 #038703!important}.icegram-dashicons:before{margin-right:.1em}#ig-admin-tabs{padding-top:0}#ig-admin-tabs a:focus{box-shadow:none}.ig-admin-tabs-nav{padding:0 15px 0 10px;margin:0}.ig-admin-tabs-nav li{display:inline-block;list-style:none;border:1px solid #aaa;padding:0;margin:0 4px -1px;background-color:#eee}#ig-admin-tabs .ig-admin-nav-last{background-color:#d6e3ef}#ig-admin-tabs .ig-admin-nav-last:hover{background-color:#c5daef}#ig-admin-tabs .ig-admin-nav-last.current,.ig-admin-tabs-nav li.current,.ig-admin-tabs-nav li.current:hover,.ig-admin-tabs-nav li:hover{background-color:#fff;border:1px solid #aaa;border-bottom:1px solid #fff;color:#444}.ig-admin-tabs-nav li.current{border-bottom:1px solid #fff;z-index:5;color:#444}.ig-admin-tabs-nav li a{padding:6px 10px;font-size:14px;font-weight:400;line-height:30px;color:#333;text-decoration:none}.ig-admin-tabs-nav li.current a{text-decoration:none!important;font-weight:700}.ig-admin-tabs-nav li a:hover{color:#333}#ig-admin-tabs .ig-admin-tab{background-color:#fff;border:1px solid #aaa;padding:16px;display:none}.message_label.sub_option_label{width:10%;padding-top:.3em}.message_label.sub_option_label+.message_field{width:62%}.message_alt_cta_container{margin-bottom:2em}.message_row .ig_admin_hr{border-top:1px dashed rgba(0,0,0,.2);width:75%;display:block;margin:.5em 0;margin-left:25%}.message_row .option_title{text-decoration:underline}#campaign_stats_upsale .handlediv,#campaign_stats_upsale .ui-sortable-handle{display:none}#campaign_stats_upsale{background:0 0;border:none;box-shadow:none}#campaign_stats_upsale .inside{padding-left:0}#campaign_stats_upsale .inside img{width:100%}.ig_bt_upsale{margin-left:-1em}.ig_cta_upsale img{margin-left:23.5%}.ig_message_upsale{display:inline-block;line-height:1.25rem;letter-spacing:.025em;font-weight:400;color:#4b5563}.ig_upsale_premium_code{padding:.25rem .375rem;background-color:#fdf6b2;border-radius:.375rem;border-width:2px;border-style:dotted;border-color:#a5b4fc;user-select:all}/*! jQuery UI - v1.11.0 - 2014-07-18
2
  * http://jqueryui.com
3
  * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
  * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
1
+ .shortcode_description.light,.shortcode_description:before{content:"\f348"}.actions,.help_tip{text-decoration:none}#postdivrich{display:none}#ig-admin-tabs .wp-picker-container{display:inline-block}.ig_preview_button{display:none;padding:10px 10px 0}.campaign_target_rules_panel .options_group{border-bottom:1px dashed #D3D3D3}.campaign_target_rules_panel .options_group:last-child{border-bottom-style:none}.campaign_target_rules_panel .options_group .form-field .options_header{display:inline-block;width:30%;vertical-align:top}.campaign_target_rules_panel .options_group p label input[type=checkbox],.campaign_target_rules_panel .options_group p label input[type=radio]{width:0}.campaign_target_rules_panel .options_group p label input[type=date]{width:auto;margin-left:10px}.user_roles p label input[type=checkbox],.user_roles p label input[type=radio]{margin-left:3px}.campaign_target_rules_panel .options_group .form-field #icegram_messages{width:300px;text-align:center}.empty_campaign{margin:1em;font-style:italic}.handle em{font-weight:400;font-size:85%;margin-left:1em;color:#777}h3 .chosen-container{font-weight:500}.thickbox_edit_message{padding:0 1em;border-bottom:1px solid #D3D3D3}.messages-list-sortable{margin-top:30px}.messages_list_table{font-size:1em;width:100%;border-collapse:separate;border-spacing:3px}th.message_header{text-align:center!important}.message_title{text-align:left}.message_headline{text-align:left;padding-left:1.2em}.action_links,.message_seconds{width:75px!important;text-align:center}.message_seconds input{text-align:right}.message-row .seconds-text{width:40px!important;text-align:center}.message-sort-placeholder{background-color:#D3D3D3}.device{width:auto;line-height:5em;vertical-align:baseline}.device:after{font-family:dashicons;font-size:3em}.device input{position:relative;left:2.5em;top:1.5em}.admin_field_icon{display:inline-block;-webkit-font-smoothing:antialiased;width:18px;height:18px;font:400 18px/1 dashicons;color:#888;vertical-align:text-top;margin:0 2px}.shortcode_description.light{color:#777}.campaign_shortcode{display:inline-block;width:45%;color:#777}.campaign_shortcode.light{border:1px dashed #CCC;padding-left:.6%;padding-right:.2%}.campaign_shortcode.light code{color:#777}label[for=device_mobile]{margin-left:-2em}label[for=device_mobile]:after{content:"\f470"}label[for=device_tablet]:after{content:"\f471"}label[for=device_laptop]:after{content:"\f472"}.date_picker:after{content:"\f145";position:relative;top:5px;font:400 20px/1 dashicons;vertical-align:top}.date_picker{margin-left:1em}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.date-picker{max-width:15%}.campaign_target_rules_panel .options_group .messages-list .form-field .message_header{width:75px!important;text-align:right}.disable{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";filter:alpha(opacity=30);opacity:.3}.enable{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1}.message_edit:after{content:"\f464"}.message_delete:after{content:"\f158"}.actions:after{font-family:dashicons;font-size:1.4em}.actions{color:#444;padding-right:3px;cursor:pointer}.actions:hover{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);opacity:.7}.action_links{vertical-align:middle}.message_header_label{color:#fff;text-align:center;font-size:.7em!important;margin:0!important;padding:3px 5px;cursor:auto;text-transform:uppercase}.message_header_label.ig_unknown{color:#343232;border:1px solid #000}.message_label{float:left;width:25%;padding:0}.message_field{width:65%;display:inline-block}.message_field.message_custom_css,.message_field.message_custom_js{font-family:Consolas,Monaco,monospace;font-size:12px}.message_image_button .image-buttons-icon{margin:0 2px}.message_image_button .image-buttons-icon:before{content:"\f128"}.message_headline_button,.message_image_button{vertical-align:top!important}.message_headline_button .headline-buttons-icon{margin:2px}.message_headline_button .headline-buttons-icon:before{content:"\f130"}.help_tip:after{content:"\f223"}.help_tip{float:right;margin:4px 0;cursor:help}.chosen-container{width:65%!important}.message_row.position{height:110px}.location-selector input[type=radio]:checked+label span{background-color:#2ea2cc}.location-selector{width:128px;height:115px;position:absolute;display:block;margin-left:24.3%;background-image:url(../images/desktop.png);background-position:0 -19px}.location-selector .location{background-color:#ddd;cursor:pointer;position:absolute}.location-selector .location:hover{background-color:#ccc}.location-selector .location.bottom,.location-selector .location.middle,.location-selector .location.top{height:14%;width:14%;right:42%}.location-selector .location.top{top:13px}.location-selector .location.middle{top:30%}.location-selector .location.bottom{bottom:43px}.location-selector .location.left,.location-selector .location.right{height:14%;width:14%;margin-left:0;margin-right:0}.location-selector .location.right{right:15px}.location-selector .location.left{left:15px}.wp-editor-container{margin-left:25%}.message-setting-fields #message_title,.message-setting-fields #upload_image{width:58%}.wp-editor-container span .mceLayout{width:50%}#edit-slug-box,#ui-datepicker-div,#wp-admin-bar-view,.empty_campaign,.location-selector input[type=radio]{display:none}#the-list .message_thumbnail img{max-width:200px;max-height:100px}#icegram_messages+.chosen-container-single .chosen-search input[type=text]{width:100%!important}.message_theme+.chosen-container.chosen-container .chosen-results{max-height:30em!important}.message_theme+.chosen-container-single .chosen-single span{background-repeat:no-repeat!important;background-position:100% 50%!important}.message_theme+.chosen-container .chosen-results li{margin:0 0 2% 2%;background-position:.5em 2em!important;-webkit-background-size:95%!important;background-size:95%!important;border:2px solid #EEE!important;font-weight:700!important;display:inline-block!important;text-align:center!important;background-repeat:no-repeat!important}.message_theme+.chosen-container .chosen-results li.highlighted{color:#000!important;border:2px solid #2ea2cc!important;background-color:#EAEFFF!important}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:99999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#464646}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#464646}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#464646}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#464646}#tiptip_content,.chart-tooltip{font-size:11px;color:#fff;padding:.5em;background:#464646;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:1px 1px 3px rgba(0,0,0,.1);-moz-box-shadow:1px 1px 3px rgba(0,0,0,.1);box-shadow:1px 1px 3px rgba(0,0,0,.1);text-align:center;max-width:150px}#tiptip_content code,.chart-tooltip code{background:#888;padding:1px}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}input.sm_text_field,table#icegram_post_query_table,table#icegram_post_query_table tr td{padding:5px}#icegram_post_query_table label{font-weight:700}.icegram-dashicons:before{position:relative;font-family:dashicons;font-style:normal;vertical-align:middle;font-size:2em}.about-wrap .icegram-badge,.icegram-support{position:absolute;top:0}.about-wrap.icegram h2{color:#3754a8;padding-top:19px;font-weight:600}.icegram-dashicons-testimonial h4{font-size:1.5em}.icegram-badge{background:url(../images/icegram-logo-branding-64-white.png) center 24px no-repeat #3754a8;color:#FFF;font-size:12px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:24px;display:inline-block;width:150px;text-rendering:optimizeLegibility;-moz-box-shadow:0 1px 3px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.icegram-support{font-size:14px;color:#000;margin:178px 0 0;height:10px;width:180px;text-rendering:optimizeLegibility;right:0;text-align:right}.upgrade_page,.upgrade_page h1{text-align:center}.icegram-contact-us{font-size:20px;line-height:1.5em;font-weight:800;margin-right:20px}.feature-section.col>div{position:relative;width:29.95%;margin-right:4.999999999%;float:left}.about-wrap.icegram .feature-section{display:block!important}.about-wrap [class$=col] .last-feature{margin-right:0}form[name=klawoo_subscribe]{margin-right:150px}form[name=klawoo_subscribe] input[name=email]{width:20em}.icegram-contact-us a{color:#3754a8}.upgrade_page h1{font-size:2.3em;color:#333;padding:1em;font-weight:700}.upgrade_page table{border-collapse:collapse;border:1px solid #d3d3d3;font-size:1.3em;margin:0 auto}.upgrade_page tr{padding:0}.upgrade_page td,.upgrade_page th{border-right:1px solid #d3d3d3;line-height:1.5;vertical-align:top;padding:.5em}.upgrade_page th{font-size:1.2em;padding-bottom:0}.upgrade_page td{padding:.5em 1em}.feat_list{text-align:left;font-size:1em}.td_data{padding-top:1em}.plan_title{font-size:1.4em;display:block;width:100%;margin-bottom:-.2em}.plan_price{color:#0e74b2;font-size:1.8em;font-weight:400}.sm_hr{position:relative}.sm_hr:before{position:absolute;content:'';width:80%;left:10%;border-bottom:1px dashed #d3d3d3}.td_list_icon{font-size:1.2em;color:#11772d;margin-right:.3em}.upgrade_page .button-primary{text-shadow:none;font-size:1.15em!important;line-height:1em!important;height:2.5em!important;padding:.75em 1.5em!important}#popup_container{width:550px;background-color:#FFF;margin:0 auto;padding:.5em 1em 1em}#popup_container input[value=ig_vertical]{margin-left:3%}#popup_container select{width:30%}#popup_container #embed_howto_link{float:right;font-size:.8em;font-weight:400}.campaign_target_rules_panel .messages_list_table p.inline{display:block;margin:1em 0}.campaign_target_rules_panel .form-field .delete-url:before{font-family:dashicons;content:"\f182";cursor:pointer}.campaign_target_rules_panel .form-field .url_input_field{width:65%!important}.campaign_target_rules_panel #valid-field{margin-left:92%}.campaign_target_rules_panel #valid-field.error{font-family:dashicons;font-size:1.5em;color:red;vertical-align:middle;display:inline-block;-webkit-font-smoothing:antialiased;cursor:help}.campaign_target_rules_panel #valid-field.error:after{content:"\f223"}.campaign_target_rules_panel #add-url-icon:after{font-family:dashicons;content:"\f132";vertical-align:middle}.message_colors_options_container p{margin-top:.3em!important;margin-bottom:.3em!important}.message_colors_options_container p span.message_label{font-size:12px;margin-top:2px}.message-setting-fields .chosen-container-single .chosen-single{z-index:initial!important}.message-setting-fields .chosen-container-single.chosen-single div b{background:url(../images/chosen-sprite.png) 0 2px no-repeat!important}.ig_get_more,.message_animation+.chosen-container .chosen-results li.ig_get_more,.message_theme+.chosen-container .chosen-results li.ig_get_more{height:1.5em!important;background:rgba(255,231,180,.47)!important;border:1px dashed #b40000!important;line-height:1.5em;color:maroon!important;border-radius:.5em;width:92%!important}.message_animation+.chosen-container .chosen-results li.ig_get_more{height:1em!important;line-height:1em;margin-bottom:.1em;text-align:center}.message_animation+.chosen-container .chosen-results li.ig_get_more:after,.message_theme+.chosen-container .chosen-results li.ig_get_more:after{content:" \2192"}.message_animation+.chosen-container .chosen-results li.ig_get_more:focus,.message_animation+.chosen-container .chosen-results li.ig_get_more:hover,.message_theme+.chosen-container .chosen-results li.ig_get_more:focus,.message_theme+.chosen-container .chosen-results li.ig_get_more:hover{box-shadow:inset 0 0 1.5em rgba(253,214,131,.62)}.message_form_options{width:75%;margin-left:25%}.message_form_options label.message_label{display:none}.message_form_options textarea{resize:none;width:86%}.message_form_options p>div.form_radio_group{width:86%}.message_form_options span.message_label{width:100%}.message_form_options .form_inline_shortcode{margin-left:0;margin-top:1em;position:relative;width:inherit}.message_form_html_original{font-family:Consolas,Monaco,monospace;font-size:.8em}.form_radio_group .location{display:inline-block;width:97px;height:94px;padding:3px 3px 0;margin-right:.8em;border:1px solid transparent}.form_radio_group .location label{background:url(../images/from_layouts.png) no-repeat;display:block;width:95px;height:100px;border:1px solid transparent}.form_radio_group .location:hover{border:1px solid #2EA2CC}#message_form_style+.chosen-container-single .chosen-single{height:6em!important}#message_form_style+.chosen-container-single .chosen-single span{background-size:9em!important;line-height:6em!important;background-repeat:no-repeat;background-position:100% 50%!important}#message_form_style+.chosen-container .chosen-results li{width:43%!important;height:10em!important;margin:0 0 2% 2%;-webkit-background-size:95%!important;background-size:100%!important;border:2px solid #EEE!important;font-weight:700!important;display:inline-block!important;text-align:center!important;background-repeat:no-repeat!important;background-position:0 100%!important;color:transparent}#message_form_style+.chosen-container .chosen-results li.highlighted{color:transparent!important;border:2px solid #2ea2cc!important;background-color:#EAEFFF!important}.message_form_options .chosen-container{width:86%!important}.feature-section.col.two-col>div{width:45.95%}.feature-section.col img{width:150px;border:none}.feature-section.col p{margin-bottom:1.5em}.about-wrap.icegram{max-width:100%}.about-wrap.icegram h2{margin-bottom:.5em}.about-wrap .feature-section h4{margin-top:.4em}.about-header .about-text{margin-top:0;margin-bottom:1.5em}.changelog .about-text{margin-bottom:0;margin-top:1.5em}.about-wrap .icegram-badge{right:1.3em;color:#3754a8;background-color:transparent;padding-top:100px;box-shadow:none;-webkit-box-shadow:none;background-image:url(../images/icegram-logo-branding-64.png)}.about-header .wrap{background-color:#fff;border-top:1px dotted #ddd}.about-header .wrap table{margin-top:.5em}.about-header th{font-size:1.1em;color:inherit;width:170px}.about-header{background-color:#FFF;padding:1em 1em .5em;-webkit-box-shadow:0 0 7px 0 rgba(0,0,0,.2);box-shadow:0 0 7px 0 rgba(0,0,0,.2)}.icegram-support{padding-right:1em;margin-top:140px}.icegram-actions a,.icegram-actions a:active{vertical-align:middle!important;font-size:1.15em;color:#3754a8}.icegram-actions .button-primary{text-shadow:none;font-size:1.15em!important;line-height:1em!important;height:2.5em!important;padding:.75em 1.5em!important;background:#038703!important;border-color:#038703!important}.icegram-actions .button-primary:active,.icegram-actions .button-primary:focus,.icegram-actions .button-primary:hover,.icegram-actions .button-primary:visited{color:#fff;background:#038703!important;-webkit-box-shadow:inset 0 2px 0 #038703!important;box-shadow:inset 0 2px 0 #038703!important}.icegram-dashicons:before{margin-right:.1em}#ig-admin-tabs{padding-top:0}#ig-admin-tabs a:focus{box-shadow:none}.ig-admin-tabs-nav{padding:0 15px 0 10px;margin:0}.ig-admin-tabs-nav li{display:inline-block;list-style:none;border:1px solid #aaa;padding:0;margin:0 4px -1px;background-color:#eee}#ig-admin-tabs .ig-admin-nav-last{background-color:#d6e3ef}#ig-admin-tabs .ig-admin-nav-last:hover{background-color:#c5daef}#ig-admin-tabs .ig-admin-nav-last.current,.ig-admin-tabs-nav li.current,.ig-admin-tabs-nav li.current:hover,.ig-admin-tabs-nav li:hover{background-color:#FFF;border:1px solid #aaa;border-bottom:1px solid #fff;color:#444}.ig-admin-tabs-nav li.current{border-bottom:1px solid #fff;z-index:5;color:#444}.ig-admin-tabs-nav li a{padding:6px 10px;font-size:14px;font-weight:400;line-height:30px;color:#333;text-decoration:none}.ig-admin-tabs-nav li.current a{text-decoration:none!important;font-weight:700}.ig-admin-tabs-nav li a:hover{color:#333}#ig-admin-tabs .ig-admin-tab{background-color:#FFF;border:1px solid #aaa;padding:16px;display:none}.message_label.sub_option_label{width:10%;padding-top:.3em}.message_label.sub_option_label+.message_field{width:62%}.message_alt_cta_container{margin-bottom:2em}.message_row .ig_admin_hr{border-top:1px dashed rgba(0,0,0,.2);width:75%;display:block;margin:.5em 0 .5em 25%}.message_row .option_title{text-decoration:underline}#campaign_stats_upsale .handlediv,#campaign_stats_upsale .ui-sortable-handle{display:none}#campaign_stats_upsale{background:0 0;border:none;box-shadow:none}#campaign_stats_upsale .inside{padding-left:0}#campaign_stats_upsale .inside img{width:100%}.ig_bt_upsale{margin-left:-1em}.ig_cta_upsale img{margin-left:23.5%}.ig_message_upsale{display:inline-block;line-height:1.25rem;letter-spacing:.025em;font-weight:400;color:rgba(75,85,99,1)}.ig_upsale_premium_code{padding:.25rem .375rem;background-color:rgba(253,246,178,1);border-radius:.375rem;border-width:2px;border-style:dotted;border-color:rgba(165,180,252,1);user-select:all}/*! jQuery UI - v1.11.0 - 2014-07-18
2
  * http://jqueryui.com
3
  * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
  * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
{assets → lite/assets}/css/chosen-sprite@2x.png RENAMED
File without changes
{assets → lite/assets}/css/chosen.min.css RENAMED
File without changes
{assets → lite/assets}/css/frontend.css RENAMED
File without changes
lite/assets/css/frontend.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .ig_powered_by,.ig_powered_by a,a.ig_powered_by{color:#A8A8A8!important;text-decoration:none}.ig_cta_overlay{width:100%;height:100%;top:0;left:0;background:#E6E6E6;z-index:1000000;position:fixed;opacity:.5}.ig_cta_spinner{background:url(../images/spinner-2x.gif) center no-repeat no-repeat;height:100%}.icegram .ig_button,.icegram input[type=submit],.icegram input[type=button]{border:none;box-sizing:border-box;box-shadow:none}.ig_message p{margin:0;padding:0;line-height:inherit;font-size:inherit}.ig_clear_fix:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.ig_form_response_text{margin:.5em auto;padding:.5em;text-align:center}.ig_form_container{display:none;position:relative;height:100%;z-index:10;padding:.7em 1em;text-align:left;line-height:1;box-sizing:border-box}.ig_form_container form{margin:0;padding:0;font-size:100%}.ig_form_container select,.ig_form_container textarea{height:2.25em}.ig_form_container input[type=checkbox]{height:1.25em!important}.ig_form_container .ig_form_header{width:98%;text-align:left}.ig_form_container .ig_form_footer{font-size:.8em;width:98%;clear:both;text-align:left}.ig_form_container .ig_form_els{margin:.3em 1% .3em 0}.ig_form_left .ig_form_container.layout_left{display:block;padding:1em .7em}.ig_form_right .ig_form_container.layout_right{display:block;padding:1em .7em;float:left}.ig_form_bottom .ig_form_container.layout_bottom{display:block;width:100%;height:auto}.ig_form_inline .ig_form_container.layout_inline{display:block;width:100%;padding:.5em;background-color:transparent!important;color:inherit!important}.ig_form_left .ig_form_container.layout_left .ig_form_els,.ig_form_right .ig_form_container.layout_right .ig_form_els{margin:.5em auto}.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_form_els{display:inline-block;float:left}.ig_form_bottom .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_full .ig_form_els{width:99%}.ig_form_bottom .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_half .ig_form_els{width:49%}.ig_form_bottom .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_third .ig_form_els{width:32%}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els{width:24%}.ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em}.ig_form_container .ig_form_els button,.ig_form_container .ig_form_els input,.ig_form_container .ig_form_els label,.ig_form_container .ig_form_els select,.ig_form_container .ig_form_els textarea{width:99%;font-size:1em;text-align:left;display:block;margin:0 auto;box-sizing:border-box}.ig_form_container .ig_form_els .ig_button{text-align:center}.ig_form_container .ig_form_els select,.ig_form_container .ig_form_els textarea{padding-left:.5em}.ig_form_container .ig_form_els textarea{padding-top:.5em}.ig_form_container .ig_form_els.ig_form_el_radio{height:2.25em!important;line-height:2.2em}.ig_form_container .ig_form_els.ig_form_el_radio input{width:auto!important;display:inline;margin:0 .3em;height:1em!important}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio{display:inline}.ig_form_bottom .ig_form_container.layout_bottom .ig_quater .ig_form_els.ig_form_el_radio label,.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els.ig_form_el_radio label{width:auto;display:inline}.ig_form_left .ig_form_container.layout_left .ig_button_label,.ig_form_right .ig_form_container.layout_right .ig_button_label{display:none}.ig_form_bottom .ig_form_container.layout_bottom .ig_button_label,.ig_form_inline .ig_form_container.layout_inline .ig_button_label{display:block;visibility:hidden;opacity:0}.ig_form_bottom .ig_form_container.layout_bottom .ig_button,.ig_form_bottom .ig_form_container.layout_bottom input[type=submit],.ig_form_bottom .ig_form_container.layout_bottom input[type=button],.ig_form_inline .ig_form_container.layout_inline .ig_button,.ig_form_inline .ig_form_container.layout_inline input[type=submit],.ig_form_inline .ig_form_container.layout_inline input[type=button],.ig_form_left .ig_form_container.layout_left .ig_button,.ig_form_left .ig_form_container.layout_left input[type=submit],.ig_form_left .ig_form_container.layout_left input[type=button],.ig_form_right .ig_form_container.layout_right .ig_button,.ig_form_right .ig_form_container.layout_right input[type=submit],.ig_form_right .ig_form_container.layout_right input[type=button]{width:99%;font-size:1em;float:none;margin:0 auto!important;text-align:center;display:block;-ms-transform:inherit;-webkit-transform:inherit;transform:inherit;opacity:1}.ig_form_inline.ig_form_style_1 .ig_form_container:before,.ig_form_inline.ig_form_style_4 .ig_form_container:before,.ig_form_style_0 .ig_form_container:before{display:none}.ig_form_container:before{content:'';padding:0;margin:0;position:absolute;box-sizing:content-box}.ig_form_style_0 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_0 .ig_form_container .ig_form_els .ig_button,.ig_form_style_0 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_0 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_style_1 .ig_form_container:before{border-width:0;border-style:solid;border-color:#000!important;opacity:.3;top:0}.ig_form_left.ig_form_style_1 .ig_form_container:before{right:0;height:inherit;border-left-width:.22em}.ig_form_right.ig_form_style_1 .ig_form_container:before{left:0;height:inherit;border-left-width:.22em}.ig_form_bottom.ig_form_style_1 .ig_form_container:before{left:0;width:100%;border-top-width:.22em}.ig_form_style_1 .ig_form_container .ig_form_els input:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:not(.ig_button){border:1px solid #ccc}.ig_form_style_1 .ig_form_container .ig_form_els input,.ig_form_style_5 .ig_form_container .ig_form_els input,.ig_form_style_6 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;border-radius:.2em;box-shadow:none;padding:inherit;padding-left:.5em}.ig_form_style_1 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_1 .ig_form_container .ig_form_els input:hover:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_5 .ig_form_container .ig_form_els input:hover:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_6 .ig_form_container .ig_form_els input:hover:not(.ig_button){border-color:#999}.ig_form_style_1 .ig_form_container .ig_form_els input:focus,.ig_form_style_1 .ig_form_container .ig_form_els input:hover,.ig_form_style_5 .ig_form_container .ig_form_els input:focus,.ig_form_style_5 .ig_form_container .ig_form_els input:hover,.ig_form_style_6 .ig_form_container .ig_form_els input:focus,.ig_form_style_6 .ig_form_container .ig_form_els input:hover{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_1 .ig_form_container .ig_form_els .ig_button,.ig_form_style_1 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_1 .ig_form_container .ig_form_els .ig_button:hover,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_5 .ig_form_container .ig_form_els .ig_button:hover,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_6 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els .ig_button,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els .ig_button,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els .ig_button,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els .ig_button{padding:inherit}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els input,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els label,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els input,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els label{padding-left:1em}.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els .ig_button,.ig_form_left.ig_form_style_2 .ig_form_container.layout_left .ig_form_els input,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els .ig_button,.ig_form_right.ig_form_style_2 .ig_form_container.layout_right .ig_form_els input{height:2.25em;line-height:2.2em;border-radius:2em}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els .ig_button,.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els .ig_button,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input{height:2.25em;line-height:2.2em;width:100%;border-width:2px 0 2px 2px}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input{border-radius:2em 0 0 2em;padding-left:1em}.ig_form_bottom.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_form_inline.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:0 2em 2em 0}.ig_form_style_3 .ig_form_container .ig_form_els input:not(.ig_button){border:1px solid rgba(255,255,255,.3)}.ig_form_style_3 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;box-shadow:none;padding:inherit;padding-left:.5em;background-color:rgba(0,0,0,.3)}.ig_form_style_3 .ig_form_container .ig_form_els input:focus:not(.ig_button),.ig_form_style_3 .ig_form_container .ig_form_els input:hover:not(.ig_button){border-color:rgba(255,255,255,.6)}.ig_form_style_3 .ig_form_container .ig_form_els input:focus,.ig_form_style_3 .ig_form_container .ig_form_els input:hover{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_3 .ig_form_container .ig_form_els .ig_button,.ig_form_style_3 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_3 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_style_3 .ig_form_container .ig_form_els ::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.ig_form_style_3 .ig_form_container .ig_form_els :-moz-placeholder{color:rgba(255,255,255,.5);opacity:1}.ig_form_style_3 .ig_form_container .ig_form_els ::-moz-placeholder{color:rgba(255,255,255,.5);opacity:1}.ig_form_style_3 .ig_form_container .ig_form_els :-ms-input-placeholder{color:rgba(255,255,255,.5)}.ig_form_bottom.ig_form_style_4 .ig_content{margin-bottom:1.3em}.ig_form_style_4 .ig_form_container:before{border-style:solid;top:-1em;left:-1em;width:100%;height:100%;border-width:1em;z-index:-1;box-shadow:0 0 15px rgba(0,0,0,.7)}.ig_form_right.ig_form_style_4 .ig_form_container:before{left:inherit;right:-1em}.ig_form_style_4 .ig_form_container .ig_form_els input{height:2.25em;line-height:2.2em;padding:inherit;padding-left:.5em}.ig_form_style_4 .ig_form_container .ig_form_els .ig_button,.ig_form_style_4 .ig_form_container .ig_form_els .ig_button:focus,.ig_form_style_4 .ig_form_container .ig_form_els .ig_button:hover{height:2.25em;line-height:2.2em;padding:inherit}.ig_form_bottom.ig_form_style_5 .ig_form_container.layout_bottom .ig_form_els_first,.ig_form_inline.ig_form_style_5 .ig_form_container.layout_inline .ig_form_els_first{width:68%}.ig_form_bottom.ig_form_style_5 .ig_form_container.layout_bottom .ig_form_els_last,.ig_form_inline.ig_form_style_5 .ig_form_container.layout_inline .ig_form_els_last{width:30%}.ig_form_style_6 .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_form_style_6 .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_form_style_6 .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.5em auto 0}.ig_anim_appear_in{-webkit-animation:IgFadeIn .9s;animation:IgFadeIn .9s;visibility:visible}@-webkit-keyframes IgFadeIn{0%{opacity:0}50%{opacity:.5}100%{opacity:1}}@keyframes IgFadeIn{0%{opacity:0}50%{opacity:.5}100%{opacity:1}}.ig_anim_appear_out{-webkit-animation:IgFadeOut .9s;animation:IgFadeOut .9s}@-webkit-keyframes IgFadeOut{0%{opacity:1}99.5%{opacity:.5}100%{opacity:1}}@keyframes IgFadeOut{0%{opacity:1}99.5%{opacity:.5}100%{opacity:1}}.ig_left.ig_anim_slide_in{animation-name:IgSlideInLeft;-moz-animation-name:IgSlideInLeft;-webkit-animation-name:IgSlideInLeft;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInLeft{0%{-webkit-transform:translate3d(-100%,0,0)}100%{-webkit-transform:none}}@keyframes IgSlideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{-webkit-transform:none;transform:none}}.ig_left.ig_anim_slide_out{animation-name:IgFadeOutLeft;-moz-animation-name:IgFadeOutLeft;-webkit-animation-name:IgFadeOutLeft;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(-100%,0,0)}}@keyframes IgFadeOutLeft{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.ig_right.ig_anim_slide_in{animation-name:IgSlideInRight;-moz-animation-name:IgSlideInRight;-webkit-animation-name:IgSlideInRight;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInRight{0%{-webkit-transform:translate3d(100%,0,0)}100%{-webkit-transform:none}}@keyframes IgSlideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{-webkit-transform:none;transform:none}}.ig_right.ig_anim_slide_out{animation-name:IgFadeOutRight;-moz-animation-name:IgFadeOutRight;-webkit-animation-name:IgFadeOutRight;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(100%,0,0)}}@keyframes IgFadeOutRight{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.ig_bottom .ig_anim_slide_in,.ig_bottom.ig_anim_slide_in{animation-name:IgSlideInUp;-moz-animation-name:IgSlideInUp;-webkit-animation-name:IgSlideInUp;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInUp{0%{-webkit-transform:translate3d(0,100%,0)}100%{-webkit-transform:none}}@keyframes IgSlideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{-webkit-transform:none;transform:none}}.ig_bottom .ig_anim_slide_out,.ig_bottom.ig_anim_slide_out{animation-name:IgFadeOutDown;-moz-animation-name:IgFadeOutDown;-webkit-animation-name:IgFadeOutDown;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutDown{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,100%,0)}}@keyframes IgFadeOutDown{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.ig_anim_slide_in,.ig_top .ig_anim_slide_in,.ig_top.ig_anim_slide_in{animation-name:IgSlideInDown;-moz-animation-name:IgSlideInDown;-webkit-animation-name:IgSlideInDown;animation-duration:.5s;-moz-animation-duration:.5s;-webkit-animation-duration:.5s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease}@-webkit-keyframes IgSlideInDown{0%{-webkit-transform:translate3d(0,-100%,0)}100%{-webkit-transform:none}}@keyframes IgSlideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{-webkit-transform:none;transform:none}}.ig_anim_slide_out,.ig_top .ig_anim_slide_out,.ig_top.ig_anim_slide_out{animation-name:IgFadeOutUp;-moz-animation-name:IgFadeOutUp;-webkit-animation-name:IgFadeOutUp;animation-duration:.9s;-moz-animation-duration:.9s;-webkit-animation-duration:.9s;animation-timing-function:ease;-moz-animation-timing-function:ease;-webkit-animation-timing-function:ease;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes IgFadeOutUp{0%{opacity:1;-webkit-transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,-100%,0)}}@keyframes IgFadeOutUp{0%{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}99.5%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}
{assets → lite/assets}/css/jquery-ui.min.css RENAMED
File without changes
{assets → lite/assets}/css/magnific-popup.css RENAMED
File without changes
{assets → lite/assets}/images/analytics.png RENAMED
File without changes
{assets → lite/assets}/images/animated-overlay.gif RENAMED
File without changes
{assets → lite/assets}/images/arrows-sprite.png RENAMED
File without changes
{assets → lite/assets}/images/bfcm_2020.jpg RENAMED
File without changes
{assets → lite/assets}/images/chosen-sprite.png RENAMED
File without changes
{assets → lite/assets}/images/clear-footer.png RENAMED
File without changes
{assets → lite/assets}/images/clear-header.png RENAMED
File without changes
{assets → lite/assets}/images/clear-option.png RENAMED
File without changes
{assets → lite/assets}/images/covid-19.png RENAMED
File without changes
{assets → lite/assets}/images/cta-new-tab.png RENAMED
File without changes
{assets → lite/assets}/images/desktop.png RENAMED
File without changes
{assets → lite/assets}/images/exit-intent-feild.png RENAMED
File without changes
{assets → lite/assets}/images/exit-intent-label.png RENAMED
File without changes
{assets → lite/assets}/images/from_layouts.png RENAMED
File without changes
{assets → lite/assets}/images/halloween2020.png RENAMED
File without changes
{assets → lite/assets}/images/icegram-logo-16bit-gray-30.png RENAMED
File without changes
{assets → lite/assets}/images/icegram-logo-branding-18-white.png RENAMED
File without changes
{assets → lite/assets}/images/icegram-logo-branding-64-grey.png RENAMED
File without changes
{assets → lite/assets}/images/icegram-logo-branding-64-white.png RENAMED
File without changes
{assets → lite/assets}/images/icegram-logo-branding-64.png RENAMED
File without changes
{assets → lite/assets}/images/icon-64.png RENAMED
File without changes
{assets → lite/assets}/images/popup-amaze-bg.jpg RENAMED
File without changes
{assets → lite/assets}/images/popup-close.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-action-bar.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-messenger.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-multiple-sequence.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-popup.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-rules.png RENAMED
File without changes
{assets → lite/assets}/images/sketch-toast-notification.png RENAMED
File without changes
{assets → lite/assets}/images/social-img.png RENAMED
File without changes
{assets → lite/assets}/images/spinner-2x.gif RENAMED
File without changes
{assets → lite/assets}/images/sprite_1.png RENAMED
File without changes
{assets → lite/assets}/images/stand-out.png RENAMED
File without changes
{assets → lite/assets}/images/style_0.png RENAMED
File without changes
{assets → lite/assets}/images/style_1.png RENAMED
File without changes
{assets → lite/assets}/images/style_2.png RENAMED
File without changes
{assets → lite/assets}/images/style_3.png RENAMED
File without changes
{assets → lite/assets}/images/style_4.png RENAMED
File without changes
{assets → lite/assets}/images/talk-close.png RENAMED
File without changes
{assets → lite/assets}/images/talk-footer-1.png RENAMED
File without changes
{assets → lite/assets}/images/talk-header-1.png RENAMED
File without changes
{assets → lite/assets}/images/talk-header-2.png RENAMED
File without changes
{assets → lite/assets}/images/toast-glow.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_flat_0_aaaaaa_40x100.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_flat_75_ffffff_40x100.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_glass_55_fbf9ee_1x400.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_glass_65_ffffff_1x400.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_glass_75_dadada_1x400.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_glass_75_e6e6e6_1x400.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_glass_95_fef1ec_1x400.png RENAMED
File without changes
{assets → lite/assets}/images/ui-bg_highlight-soft_75_cccccc_1x100.png RENAMED
File without changes
{assets → lite/assets}/images/ui-icons_222222_256x240.png RENAMED
File without changes
{assets → lite/assets}/images/ui-icons_2e83ff_256x240.png RENAMED
File without changes
{assets → lite/assets}/images/ui-icons_454545_256x240.png RENAMED
File without changes
{assets → lite/assets}/images/ui-icons_888888_256x240.png RENAMED
File without changes
{assets → lite/assets}/images/ui-icons_cd0a0a_256x240.png RENAMED
File without changes
{assets → lite/assets}/js/admin.js RENAMED
File without changes
{assets → lite/assets}/js/admin.min.js RENAMED
@@ -1,6 +1,6 @@
1
  /* Chosen v1.1.0 | (c) 2011-2013 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
  !function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),children:0,disabled:a.disabled}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0},AbstractChosen.prototype.set_default_text=function(){return this.default_text=this.form_field.getAttribute("data-placeholder")?this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(){var a=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return a.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(){var a=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return a.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f;for(b="",f=this.results_data,d=0,e=f.length;e>d;d++)c=f[d],b+=c.group?this.result_add_group(c):this.result_add_option(c),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(c.text));return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match?this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.result_add_group=function(a){var b;return a.search_match||a.group_match?a.active_options>0?(b=document.createElement("li"),b.className="group-result",b.innerHTML=a.search_text,this.outerHTML(b)):"":""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(this.no_results_clear(),e=0,g=this.get_search_text(),a=g.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),d=this.search_contains?"":"^",c=new RegExp(d+a,"i"),j=new RegExp(a,"i"),m=this.results_data,k=0,l=m.length;l>k;k++)b=m[k],b.search_match=!1,f=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(f=this.results_data[b.group_array_index],0===f.active_options&&f.search_match&&(e+=1),f.active_options+=1),(!b.group||this.group_search)&&(b.search_text=b.group?b.label:b.html,b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(e+=1),b.search_match?(g.length&&(h=b.search_text.search(j),i=b.search_text.substr(0,h+g.length)+"</em>"+b.search_text.substr(h+g.length),b.search_text=i.substr(0,h)+"<em>"+i.substr(h)),null!=f&&(f.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>e&&g.length?(this.update_results_content(""),this.no_results(g)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(){var a=this;return setTimeout(function(){return a.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(){var c,d;c=a(this),d=c.data("chosen"),"destroy"===b&&d?d.destroy():d||c.data("chosen",new Chosen(this,b))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior(),this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(){var a;return this.form_field.tabIndex?(a=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=a):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+b.html+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(c.text),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").text(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}.call(this);;// Generated by CoffeeScript 1.3.1
3
- (function(e){return e.fn.ajaxChosen=function(t,n){var r,i,s,o;t==null&&(t={});n==null&&(n=function(){});i={minTermLength:3,afterTypeDelay:500,jsonTermKey:"term"};o=this;r=null;s=e.extend({},i,t);this.chosen();return this.each(function(){return e(this).next(".chosen-container").find(".search-field > input, .chosen-search > input").bind("keyup",function(){var t,i,u,a;a=e.trim(e(this).val() );i=a.length<s.minTermLength?"Keep typing...":"Looking for '"+a+"'";o.next(".chosen-container").find(".no-results").text(i);if(a===e(this).data("prevVal"))return!1;e(this).data("prevVal",a);this.timer&&clearTimeout(this.timer);if(a.length<s.minTermLength)return!1;t=e(this);s.data==null&&(s.data={});s.data[s.jsonTermKey]=a;s.dataCallback!=null&&(s.data=s.dataCallback(s.data));u=s.success;s.success=function(r){var i,s;if(r==null)return;s=[];o.find("option").each(function(){return e(this).is(":selected")?s.push(e(this).val()+"-"+e(this).text()):e(this).remove()});i=n(r);e.each(i,function(t,n){if(e.inArray(t+"-"+n,s)===-1)return e("<option />").attr("value",t).html(n).appendTo(o)});o.trigger("chosen:updated");u!=null&&u(r);t.attr("value",a);return t.css("width","auto")};return this.timer=setTimeout(function(){r&&r.abort();return r=e.ajax(s)},s.afterTypeDelay)})})}})(jQuery);;jQuery(function(){var a=icegram_writepanel_params.home_url;function o(e){var t=jQuery(e).find(".message_type").val();jQuery(e).closest(".message-edit-row").prev().find(".message_header_label").text(t).removeClass().addClass("message_header_label ig_"+t);var a=jQuery(e).find(".message_row.ig_"+t).find(".message_theme").val(),i=jQuery(e).find(".message_row.ig_"+t).find("#message_form_style").val(),s=jQuery(e).find("#message_theme_ig_"+t).find("."+a).attr("style"),n=jQuery(e).find("#message_form_style").find("."+i).attr("style");jQuery(e).find(".message_row, .location").hide(),jQuery(e).find(".ig_"+t).show(),jQuery(e).find(".message_row.ig_"+t).find(".message_theme").next().find(".chosen-single span").attr("style",s),jQuery(e).find(".message_row.ig_"+t).find("#message_form_style").next().find(".chosen-single span").attr("style",n).text(function(){return jQuery(this).text().substr(0,jQuery(this).text().indexOf(" "))||jQuery(this).text()}),"block"!==jQuery(e).find(".message_body").parent().css("display")?jQuery(e).find(".message_body").parent().next(".wp-editor-wrap").hide():jQuery(e).find(".message_body").parent().next(".wp-editor-wrap").show(),jQuery(e).find(".message_form_layout:checked").is(":visible")||jQuery(e).find(".message_form_layout:visible").first().prop("checked",!0),1==jQuery(e).find(".show_form_options").prop("checked")&&jQuery(e).find(".message_link").parent().hide(),jQuery(".message_form_layout").change()}function g(){0==jQuery(".message-row").length?jQuery(".empty_campaign").show():jQuery(".empty_campaign").hide()}jQuery(document).ready(function(){jQuery('a[href="edit.php?post_type=ig_campaign&page=icegram-upgrade"]').attr("target","_blank").attr("href","https://www.icegram.com/pricing/?utm_source=in_app&utm_medium=ig_upgrade&utm_campaign=get_upgrade");var t=jQuery("#ig-admin-tabs");t.find(".ig-admin-nav-main").addClass("current"),t.find("#ig-admin-tab-main").show(),"post-new-php"===adminpage&&jQuery("#wpbody").on("click","#ig-add-new-campaign",function(){jQuery("#poststuff").css("position","static"),jQuery("#postbox-container-1 #side-sortables").removeClass("empty-container").addClass("gal-toggled"),jQuery(".gallery-heading, .ig-gallery-wrap").hide(),jQuery(".postbox-container").show(),jQuery(".wrap h1.wp-heading-inline").not(".gallery-heading").show(),jQuery(".ig-gallery-wrap").siblings().not(".gallery-heading").show(),jQuery(".postbox-container").siblings().show()}),jQuery("#ig-admin-tabs").on("click",'.ig-admin-tabs-nav li:not(".ig-admin-nav-upsale")',function(e){e.preventDefault(),jQuery(this).hasClass("ig-admin-nav-notab")||(t.find(".ig-admin-tabs-nav li").not(this).removeClass("current"),jQuery(".ig-admin-tab").fadeOut("fast"),jQuery(jQuery(this).addClass("current").find("a").attr("href")).fadeIn("fast"),jQuery(this).hasClass("new-variation")&&(jQuery(this).removeClass("current"),jQuery(".ig-admin-nav-variations").addClass("current")))});var a=window.send_to_editor,e=jQuery(".ig_preview_button");jQuery("#submitdiv .submitbox #minor-publishing-actions").after(e),e.fadeIn("fast"),jQuery(".color-field").wpColorPicker().each(function(e){var t=jQuery(this).data("color-label")||"";""!==t&&jQuery(this).closest(".wp-picker-container").find("a.wp-color-result").attr("title",t)}),jQuery(".campaign_data, #message-settings").on("change",".show_color_options",function(){jQuery(this).closest("p").next(".message_colors_options_container").toggle(!this.checked)}).change(),g(),jQuery(".message_edit:first").trigger("click"),this_data=jQuery(".message_type").closest(".message-setting-fields");for(var i=0;i<this_data.length;i++)o(this_data[i]);jQuery(".campaign_data, #message-settings").on("change",".message_theme",function(e){var t=jQuery(e.target).parents(".message-setting-fields"),a=jQuery(t).find(".message_type").val(),i=jQuery(t).find(".message_row.ig_"+a).find(".message_theme").val(),s=jQuery(t).find("#message_theme_ig_"+a).find("."+i).attr("style");jQuery(t).find(".message_row.ig_"+a).find(".message_theme").next().find(".chosen-single span").attr("style",s)}),jQuery(".campaign_data, #message-settings").on("change",".rainmaker_form_list",function(e){"null"!==(jQuery(e.target).val()||"null")&&jQuery(e.target).parent().siblings(".message_form_html_original").hide()}),jQuery(".campaign_data, #message-settings").on("click",".message_image_button",function(e){var t=this;return!(window.send_to_editor=function(e){imgurl=jQuery("img",e).attr("src"),jQuery(t).parent().find("#upload_image").val(imgurl),tb_remove(),window.send_to_editor=a})}),jQuery(".campaign_data, #message-settings").on("click",".message_headline_button",function(){var e=function e(t,a,i){var s=Math.floor(Math.random()*(i-a+1))+a;return s==t?e(s,a,i):s}(jQuery(this).prev().attr("data-headline"),0,icegram_writepanel_params.available_headlines.length),t=icegram_writepanel_params.available_headlines[e];jQuery(this).prev().val(t)}),jQuery(".tips, .help_tip").tipTip({attribute:"data-tip"}),jQuery("span.test_class").hover(function(){jQuery(this).next().show()},function(){jQuery(this).next().hide()}),jQuery(".campaign_data .handle, .campaign_data .handlediv").unbind("click"),jQuery(".campaign_data .handlediv").hide(),jQuery("#poststuff").on("click","#publish",function(e){jQuery(".campaign_data").find(".message_header_label.ig_unknown").length&&(alert("Please select Message type"),e.preventDefault())})}),jQuery(".campaign_data, #message-settings").on("click",".message_delete",function(){jQuery(this).parent().parent().next().remove(),jQuery(this).parent().parent().remove(),g()}),jQuery(".campaign_data, #message-settings").on("click",".message_edit",function(){jQuery(this).parent().parent().next().toggle(),jQuery(this).parent().parent().find(".message-title-text, .message-title-input").toggle()}),jQuery(".campaign_data, #message-settings").on("click",".embed_form_code_toggle",function(){jQuery(this).parent().parent().siblings(".message_form_html_original").toggle()}),jQuery(".campaign_data, #message-settings").on("change",".message-title-input",function(){jQuery(this).prev().text(jQuery(this).val())}),jQuery("select.ajax_chosen_select_messages").ajaxChosen({type:"GET",url:icegram_writepanel_params.ajax_url,dataType:"json",afterTypeDelay:100,data:{action:"icegram_json_search_messages",security:icegram_writepanel_params.search_message_nonce}},function(e){var a={};return jQuery.each(e,function(e,t){a[e]=t}),a}),jQuery(".campaign_data, #message-settings").on("change",".show_form_options",function(e){var t=jQuery(this).closest("p");if(jQuery(t).siblings(".message_form_options").slideToggle(this.checked),this.checked)jQuery(t).closest(".thickbox_edit_message").find(".message_link").parent().hide(),jQuery(t).siblings("p.cta-actions").find("select option").removeAttr("disabled"),jQuery(t).siblings("p.cta-actions").find("select").find('option[value="url"], option[value="hide"], option[value="cta_another_message"]').attr("disabled",!0).attr("selected",!1).end().find('option[value="form"]').attr("selected",!0).trigger("change"),jQuery(t).siblings(".message_form_options").find(".message_form_layout").change();else{jQuery(t).siblings("p.cta-actions").find("select option").removeAttr("disabled");var a=jQuery(t).siblings(".message_form_options").siblings(".wp-editor-wrap").find(".wp-editor-area"),i=jQuery(a).val().trim().replace("[ig_form]","");jQuery(a).val(i),jQuery(t).closest(".thickbox_edit_message").find(".message_link").parent().show()}}).change(),jQuery(".campaign_data, #message-settings").on("change",".message_form_style",function(e){var t=jQuery(e.target).parents(".message-setting-fields"),a=jQuery(t).find("#message_form_style").val(),i=jQuery(t).find("#message_form_style").find("."+a).attr("style");jQuery(t).find(".message_form_style").next().find(".chosen-single span").attr("style",i).text(function(){return jQuery(this).text().substr(0,jQuery(this).text().indexOf(" "))||jQuery(this).text()})}),jQuery(".campaign_data, #message-settings").on("change",".message_form_layout ",function(){if(jQuery(this).is(":visible")){var e=this,t=jQuery(this).closest(".message_form_options").siblings(".wp-editor-wrap").find(".wp-editor-area"),a=jQuery(t).val().trim();jQuery(e).closest(".form_radio_group").siblings(".form_inline_shortcode").hide(),jQuery(e).closest(".form_radio_group").siblings(".message_form_color").show(),jQuery(e).is(":checked")&&jQuery(e).closest(".message_form_options").prev("p.message_form_options_check").find(".show_form_options").is(":checked")&&("inline"==jQuery(e).val()?(-1==a.indexOf("[ig_form]")&&(a+="[ig_form]"),jQuery(e).closest(".form_radio_group").siblings(".message_form_color, .form_inline_shortcode").toggle()):"inline"!=jQuery(e).val()&&(a=a.replace("[ig_form]",""))),jQuery(t).val(a)}}),jQuery(".campaign_data, #message-settings").on("blur",".message_form_html_original",function(e){var t=jQuery("<div/>").html(jQuery(this).val()).find("input[type=submit], button, input[type=button]").not("*:disabled");if(0<t.length){var a=jQuery(t[t.length-1]),i=a.is("button")?a.not("br, span, div").text():a.val();jQuery(this).closest(".message_form_options").siblings("p").find("#message_label").val(i.trim())}}),jQuery(".campaign_data, #message-settings").on("change",".show_custom_code_options",function(e){var t=jQuery(this).closest("p");jQuery(t).siblings(".message_custom_code_options").slideToggle(this.checked)}),jQuery(".ajax_chosen_select_messages").chosen(),jQuery(".campaign_data, #message-settings").on("change",".ajax_chosen_select_messages",function(){var t={},e=jQuery("#ig-admin-tabs li.current").attr("variation_id");void 0!==e&&jQuery.extend(t,{selected_tab:e});var a=jQuery.extend({},tinyMCEPreInit.mceInit.content),i=jQuery.extend({},tinyMCEPreInit.qtInit.content),s=jQuery(this).parent().siblings(".campaign_target_rules_panel");void 0!==s&&(t.parent_campaign_box=s);var n=jQuery(s).find(".message-row").length,r=jQuery(this).val();""!=r?(jQuery(".message-edit-row").hide(),jQuery(".message-title-text").show(),jQuery(".message-title-input").hide(),jQuery.ajax({type:"POST",url:icegram_writepanel_params.ajax_url,dataType:"json",data:{action:"get_message_action_row",message_id:r,row:n},success:function(e){if(n++,jQuery(s).find(".messages-list .messages_list_table tbody").append(e.main),jQuery(".color-field").wpColorPicker().each(function(e){var t=jQuery(this).data("color-label")||"";""!==t&&jQuery(this).closest(".wp-picker-container").find("a.wp-color-result").attr("title",t)}),jQuery(".campaign_data, #message-settings").on("change",".show_color_options",function(){jQuery(this).closest("p").next(".message_colors_options_container").toggle(!this.checked)}).change(),o(jQuery("#"+e.id)),jQuery(".ajax_chosen_select_messages").val("").trigger("chosen:updated"),jQuery(".campaign_data, #message-settings").find(".message_theme").append('<option value="ig_get_more_theme" class="ig_get_more">Get more Themes</option>'),jQuery(".campaign_data, #message-settings").find(".message_animation").append('<option value="ig_get_more_animation" class="ig_get_more">Get more Animations</option>'),jQuery("select.icegram_chosen_page").chosen({disable_search_threshold:10}),g(),jQuery(".message-setting-fields").trigger("change"),jQuery(".tips, .help_tip").tipTip({attribute:"data-tip"}),void 0===tinyMCEPreInit.mceInit["edit"+e.id]){for(_prop in a)"string"==typeof a[_prop]&&"content_css"!==_prop&&(a[_prop]=a[_prop].replace(new RegExp("content","g"),"edit"+e.id));tinyMCEPreInit.mceInit["edit"+e.id]=a}if(void 0===tinyMCEPreInit.qtInit["edit"+e.id]){for(_prop in i)"string"==typeof i[_prop]&&"content_css"!==_prop&&(i[_prop]=i[_prop].replace(new RegExp("content","g"),"edit"+e.id));tinyMCEPreInit.qtInit["edit"+e.id]=i}tinyMCE.init({id:tinyMCEPreInit.mceInit["edit"+e.id]}),quicktags({id:"edit"+e.id}),QTags._buttonsInit(),jQuery("#wp-edit"+e.id+"-wrap").hasClass("tmce-active")?jQuery("#edit"+e.id+"-tmce").click():jQuery("#edit"+e.id+"-html").click(),jQuery(window).trigger("icegram_message_added_ajax",[t])}})):jQuery(".ajax_chosen_select_messages").val("").trigger("chosen:updated")}),jQuery(".campaign_target_rules").on("click","#add_local_url_row",function(e){e.preventDefault();var t='<span><label class="options_header"><span id="valid-field"> </span></label> <input type="text" class="url_input_field" data-option="local_url" name="campaign_target_rules[local_urls][]" value="'+a+'*"/><span class="delete-url"></span></span>';jQuery(".local_url").find(".url_input_field").length?jQuery(t).insertAfter(jQuery(".local_url").find(".url_input_field").last().parent("span")):jQuery(t).insertBefore(jQuery(".local_url").find("#add_local_url_row_label"))}),jQuery(".campaign_target_rules").on("click",".delete-url",function(e){jQuery(this).parent().remove()}),jQuery(document).on("click",".campaign_preview",function(e){e.preventDefault(),tinyMCE.triggerSave(),params=jQuery("#post").serializeArray(),params.push({name:"action",value:"save_campaign_preview"}),jQuery.ajax({type:"POST",async:!1,url:icegram_writepanel_params.ajax_url,data:params,success:function(e){""!=e&&window.open(e,"preview_window")}})}),jQuery(".campaign_data, #message-settings").find(".message_theme").append('<option value="ig_get_more_theme" class="ig_get_more">Get more themes</option>'),jQuery(".campaign_data, #message-settings").find(".message_animation").append('<option value="ig_get_more_animation" class="ig_get_more">Get more Animations</option>'),jQuery(".campaign_data, #message-settings").on("change",".message_theme, .message_animation",function(){"ig_get_more_theme"==jQuery(this).val()&&window.open("https://www.icegram.com/product-category/themes-addons/?utm_source=icegram&utm_medium=admin&utm_campaign=theme_packs"),"ig_get_more_animation"==jQuery(this).val()&&window.open("https://www.icegram.com/animation-effects/?utm_source=icegram&utm_medium=admin&utm_campaign=animation_pack")}),jQuery("select.icegram_chosen_page").chosen({disable_search_threshold:10}),jQuery("input#users_logged_in, input#users_all ,input#users_not_logged_in").on("change",function(){"logged_in"==jQuery(this).val()?(jQuery("select#users_roles").parent("p").show(),jQuery("#users_roles_chosen").find("input").trigger("click")):jQuery("select#users_roles").parent("p").hide()}),jQuery(".schedule_rule").on("change",function(){"when_schedule"==jQuery(this).attr("id")?jQuery("#date_picker").show():jQuery("#date_picker").hide()}),jQuery("input#where_other_page").on("change",function(){jQuery("select#where_page_id").parent("p").slideToggle(),jQuery(this).is(":checked")&&jQuery("#where_page_id_chosen").find("input").trigger("click")}),jQuery("input#where_sitewide").on("change",function(){jQuery("select#exclude_page_id").parent("p").slideToggle()}),jQuery("input#where_local_url").on("change",function(){jQuery(".local_url").slideToggle()}),jQuery(".date-picker").datepicker({dateFormat:"yy-mm-dd",defaultDate:0,showOtherMonths:!0,selectOtherMonths:!0,changeMonth:!0,changeYear:!0,showButtonPanel:!1,beforeShow:function(e,t){jQuery("#ui-datepicker-div").addClass("ig-date-picker")}}),jQuery(".campaign_target_rules").on("focusout","input.url_input_field",function(){var e=this;if(jQuery(e).parent().find("span#valid-field").removeClass("error"),"undefine"!==jQuery(e).data("option")&&"local_url"==jQuery(e).data("option")&&"*"!=jQuery(e).val()){var t=e.value;if(t.indexOf(a)<0)return void jQuery(e).val(a+t)}})});;/*
4
  * TipTip
5
  * Copyright 2010 Drew Wilson
6
  * www.drewwilson.com
1
  /* Chosen v1.1.0 | (c) 2011-2013 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
2
  !function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),children:0,disabled:a.disabled}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0},AbstractChosen.prototype.set_default_text=function(){return this.default_text=this.form_field.getAttribute("data-placeholder")?this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(){var a=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return a.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(){var a=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return a.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f;for(b="",f=this.results_data,d=0,e=f.length;e>d;d++)c=f[d],b+=c.group?this.result_add_group(c):this.result_add_option(c),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(c.text));return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match?this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.result_add_group=function(a){var b;return a.search_match||a.group_match?a.active_options>0?(b=document.createElement("li"),b.className="group-result",b.innerHTML=a.search_text,this.outerHTML(b)):"":""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m;for(this.no_results_clear(),e=0,g=this.get_search_text(),a=g.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),d=this.search_contains?"":"^",c=new RegExp(d+a,"i"),j=new RegExp(a,"i"),m=this.results_data,k=0,l=m.length;l>k;k++)b=m[k],b.search_match=!1,f=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(f=this.results_data[b.group_array_index],0===f.active_options&&f.search_match&&(e+=1),f.active_options+=1),(!b.group||this.group_search)&&(b.search_text=b.group?b.label:b.html,b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(e+=1),b.search_match?(g.length&&(h=b.search_text.search(j),i=b.search_text.substr(0,h+g.length)+"</em>"+b.search_text.substr(h+g.length),b.search_text=i.substr(0,h)+"<em>"+i.substr(h)),null!=f&&(f.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>e&&g.length?(this.update_results_content(""),this.no_results(g)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(){var a=this;return setTimeout(function(){return a.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(){var c,d;c=a(this),d=c.data("chosen"),"destroy"===b&&d?d.destroy():d||c.data("chosen",new Chosen(this,b))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior(),this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(){var a;return this.form_field.tabIndex?(a=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=a):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+b.html+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(c.text),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").text(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}.call(this);;// Generated by CoffeeScript 1.3.1
3
+ (function(e){return e.fn.ajaxChosen=function(t,n){var r,i,s,o;t==null&&(t={});n==null&&(n=function(){});i={minTermLength:3,afterTypeDelay:500,jsonTermKey:"term"};o=this;r=null;s=e.extend({},i,t);this.chosen();return this.each(function(){return e(this).next(".chosen-container").find(".search-field > input, .chosen-search > input").bind("keyup",function(){var t,i,u,a;a=e.trim(e(this).val() );i=a.length<s.minTermLength?"Keep typing...":"Looking for '"+a+"'";o.next(".chosen-container").find(".no-results").text(i);if(a===e(this).data("prevVal"))return!1;e(this).data("prevVal",a);this.timer&&clearTimeout(this.timer);if(a.length<s.minTermLength)return!1;t=e(this);s.data==null&&(s.data={});s.data[s.jsonTermKey]=a;s.dataCallback!=null&&(s.data=s.dataCallback(s.data));u=s.success;s.success=function(r){var i,s;if(r==null)return;s=[];o.find("option").each(function(){return e(this).is(":selected")?s.push(e(this).val()+"-"+e(this).text()):e(this).remove()});i=n(r);e.each(i,function(t,n){if(e.inArray(t+"-"+n,s)===-1)return e("<option />").attr("value",t).html(n).appendTo(o)});o.trigger("chosen:updated");u!=null&&u(r);t.attr("value",a);return t.css("width","auto")};return this.timer=setTimeout(function(){r&&r.abort();return r=e.ajax(s)},s.afterTypeDelay)})})}})(jQuery);;jQuery(function(){function a(a){var b=jQuery(a).find(".message_type").val();jQuery(a).closest(".message-edit-row").prev().find(".message_header_label").text(b).removeClass().addClass("message_header_label ig_"+b);var c=jQuery(a).find(".message_row.ig_"+b).find(".message_theme").val(),d=jQuery(a).find(".message_row.ig_"+b).find("#message_form_style").val(),e=jQuery(a).find("#message_theme_ig_"+b).find("."+c).attr("style"),f=jQuery(a).find("#message_form_style").find("."+d).attr("style");jQuery(a).find(".message_row, .location").hide(),jQuery(a).find(".ig_"+b).show(),jQuery(a).find(".message_row.ig_"+b).find(".message_theme").next().find(".chosen-single span").attr("style",e),jQuery(a).find(".message_row.ig_"+b).find("#message_form_style").next().find(".chosen-single span").attr("style",f).text(function(){return jQuery(this).text().substr(0,jQuery(this).text().indexOf(" "))||jQuery(this).text()}),"block"!==jQuery(a).find(".message_body").parent().css("display")?jQuery(a).find(".message_body").parent().next(".wp-editor-wrap").hide():jQuery(a).find(".message_body").parent().next(".wp-editor-wrap").show(),jQuery(a).find(".message_form_layout:checked").is(":visible")||jQuery(a).find(".message_form_layout:visible").first().prop("checked",!0),1==jQuery(a).find(".show_form_options").prop("checked")&&jQuery(a).find(".message_link").parent().hide(),jQuery(".message_form_layout").change()}function b(a,c,d){var e=Math.floor(Math.random()*(d-c+1))+c;return e==a?b(e,c,d):e}function c(){var a='<span><label class="options_header"><span id="valid-field"> </span></label> <input type="text" class="url_input_field" data-option="local_url" name="campaign_target_rules[local_urls][]" value="'+e+'*"/><span class="delete-url"></span></span>';return a}function d(){0==jQuery(".message-row").length?jQuery(".empty_campaign").show():jQuery(".empty_campaign").hide()}var e=icegram_writepanel_params.home_url;jQuery(document).ready(function(){jQuery('a[href="edit.php?post_type=ig_campaign&page=icegram-upgrade"]').attr("target","_blank").attr("href","https://www.icegram.com/pricing/?utm_source=in_app&utm_medium=ig_upgrade&utm_campaign=get_upgrade");var c=jQuery("#ig-admin-tabs");c.find(".ig-admin-nav-main").addClass("current"),c.find("#ig-admin-tab-main").show(),"post-new-php"===adminpage&&jQuery("#wpbody").on("click","#ig-add-new-campaign",function(){jQuery("#poststuff").css("position","static"),jQuery("#postbox-container-1 #side-sortables").removeClass("empty-container").addClass("gal-toggled"),jQuery(".gallery-heading, .ig-gallery-wrap").hide(),jQuery(".postbox-container").show(),jQuery(".wrap h1.wp-heading-inline").not(".gallery-heading").show(),jQuery(".ig-gallery-wrap").siblings().not(".gallery-heading").show(),jQuery(".postbox-container").siblings().show()}),jQuery("#ig-admin-tabs").on("click",'.ig-admin-tabs-nav li:not(".ig-admin-nav-upsale")',function(a){a.preventDefault(),jQuery(this).hasClass("ig-admin-nav-notab")||(c.find(".ig-admin-tabs-nav li").not(this).removeClass("current"),jQuery(".ig-admin-tab").fadeOut("fast"),jQuery(jQuery(this).addClass("current").find("a").attr("href")).fadeIn("fast"),jQuery(this).hasClass("new-variation")&&(jQuery(this).removeClass("current"),jQuery(".ig-admin-nav-variations").addClass("current")))});var e=window.send_to_editor,f=jQuery(".ig_preview_button");jQuery("#submitdiv .submitbox #minor-publishing-actions").after(f),f.fadeIn("fast"),jQuery(".color-field").wpColorPicker().each(function(a){var b=jQuery(this).data("color-label")||"";""!==b&&jQuery(this).closest(".wp-picker-container").find("a.wp-color-result").attr("title",b)}),jQuery(".campaign_data, #message-settings").on("change",".show_color_options",function(){jQuery(this).closest("p").next(".message_colors_options_container").toggle(!this.checked)}).change(),d(),jQuery(".message_edit:first").trigger("click"),this_data=jQuery(".message_type").closest(".message-setting-fields");for(var g=0;g<this_data.length;g++)a(this_data[g]);jQuery(".campaign_data, #message-settings").on("change",".message_theme",function(a){var b=jQuery(a.target).parents(".message-setting-fields"),c=jQuery(b).find(".message_type").val(),d=jQuery(b).find(".message_row.ig_"+c).find(".message_theme").val(),e=jQuery(b).find("#message_theme_ig_"+c).find("."+d).attr("style");jQuery(b).find(".message_row.ig_"+c).find(".message_theme").next().find(".chosen-single span").attr("style",e)}),jQuery(".campaign_data, #message-settings").on("change",".rainmaker_form_list",function(a){"null"!==(jQuery(a.target).val()||"null")&&jQuery(a.target).parent().siblings(".message_form_html_original").hide()}),jQuery(".campaign_data, #message-settings").on("click",".message_image_button",function(a){var b=this;return window.send_to_editor=function(a){imgurl=jQuery("img",a).attr("src"),jQuery(b).parent().find("#upload_image").val(imgurl),tb_remove(),window.send_to_editor=e},!1}),jQuery(".campaign_data, #message-settings").on("click",".message_headline_button",function(){var a=jQuery(this).prev().attr("data-headline"),c=icegram_writepanel_params.available_headlines.length,d=b(a,0,c),e=icegram_writepanel_params.available_headlines[d];jQuery(this).prev().val(e)}),jQuery(".tips, .help_tip").tipTip({attribute:"data-tip"}),jQuery("span.test_class").hover(function(){jQuery(this).next().show()},function(){jQuery(this).next().hide()}),jQuery(".campaign_data .handle, .campaign_data .handlediv").unbind("click"),jQuery(".campaign_data .handlediv").hide(),jQuery("#poststuff").on("click","#publish",function(a){jQuery(".campaign_data").find(".message_header_label.ig_unknown").length&&(alert("Please select Message type"),a.preventDefault())})}),jQuery(".campaign_data, #message-settings").on("click",".message_delete",function(){jQuery(this).parent().parent().next().remove(),jQuery(this).parent().parent().remove(),d()}),jQuery(".campaign_data, #message-settings").on("click",".message_edit",function(){jQuery(this).parent().parent().next().toggle(),jQuery(this).parent().parent().find(".message-title-text, .message-title-input").toggle()}),jQuery(".campaign_data, #message-settings").on("click",".embed_form_code_toggle",function(){jQuery(this).parent().parent().siblings(".message_form_html_original").toggle()}),jQuery(".campaign_data, #message-settings").on("change",".message-title-input",function(){jQuery(this).prev().text(jQuery(this).val())}),jQuery("select.ajax_chosen_select_messages").ajaxChosen({type:"GET",url:icegram_writepanel_params.ajax_url,dataType:"json",afterTypeDelay:100,data:{action:"icegram_json_search_messages",security:icegram_writepanel_params.search_message_nonce}},function(a){var b={};return jQuery.each(a,function(a,c){b[a]=c}),b}),jQuery(".campaign_data, #message-settings").on("change",".show_form_options",function(a){var b=jQuery(this).closest("p");if(jQuery(b).siblings(".message_form_options").slideToggle(this.checked),this.checked)jQuery(b).closest(".thickbox_edit_message").find(".message_link").parent().hide(),jQuery(b).siblings("p.cta-actions").find("select option").removeAttr("disabled"),jQuery(b).siblings("p.cta-actions").find("select").find('option[value="url"], option[value="hide"], option[value="cta_another_message"]').attr("disabled",!0).attr("selected",!1).end().find('option[value="form"]').attr("selected",!0).trigger("change"),jQuery(b).siblings(".message_form_options").find(".message_form_layout").change();else{jQuery(b).siblings("p.cta-actions").find("select option").removeAttr("disabled");var c=jQuery(b).siblings(".message_form_options").siblings(".wp-editor-wrap").find(".wp-editor-area"),d=jQuery(c).val().trim().replace("[ig_form]","");jQuery(c).val(d),jQuery(b).closest(".thickbox_edit_message").find(".message_link").parent().show()}}).change(),jQuery(".campaign_data, #message-settings").on("change",".message_form_style",function(a){var b=jQuery(a.target).parents(".message-setting-fields"),c=jQuery(b).find("#message_form_style").val(),d=jQuery(b).find("#message_form_style").find("."+c).attr("style");jQuery(b).find(".message_form_style").next().find(".chosen-single span").attr("style",d).text(function(){return jQuery(this).text().substr(0,jQuery(this).text().indexOf(" "))||jQuery(this).text()})}),jQuery(".campaign_data, #message-settings").on("change",".message_form_layout ",function(){if(jQuery(this).is(":visible")){var a=this,b=jQuery(this).closest(".message_form_options").siblings(".wp-editor-wrap").find(".wp-editor-area"),c=jQuery(b).val().trim();jQuery(a).closest(".form_radio_group").siblings(".form_inline_shortcode").hide(),jQuery(a).closest(".form_radio_group").siblings(".message_form_color").show(),jQuery(a).is(":checked")&&jQuery(a).closest(".message_form_options").prev("p.message_form_options_check").find(".show_form_options").is(":checked")&&("inline"==jQuery(a).val()?(-1==c.indexOf("[ig_form]")&&(c+="[ig_form]"),jQuery(a).closest(".form_radio_group").siblings(".message_form_color, .form_inline_shortcode").toggle()):"inline"!=jQuery(a).val()&&(c=c.replace("[ig_form]",""))),jQuery(b).val(c)}}),jQuery(".campaign_data, #message-settings").on("blur",".message_form_html_original",function(a){var b=this,c=jQuery("<div/>").html(jQuery(b).val()).find("input[type=submit], button, input[type=button]").not("*:disabled");if(c.length>0){var d=jQuery(c[c.length-1]),e=d.is("button")?d.not("br, span, div").text():d.val();jQuery(b).closest(".message_form_options").siblings("p").find("#message_label").val(e.trim())}}),jQuery(".campaign_data, #message-settings").on("change",".show_custom_code_options",function(a){var b=jQuery(this).closest("p");jQuery(b).siblings(".message_custom_code_options").slideToggle(this.checked)}),jQuery(".ajax_chosen_select_messages").chosen(),jQuery(".campaign_data, #message-settings").on("change",".ajax_chosen_select_messages",function(){var b={},c=jQuery("#ig-admin-tabs li.current").attr("variation_id");"undefined"!=typeof c&&jQuery.extend(b,{selected_tab:c});var e=jQuery.extend({},tinyMCEPreInit.mceInit.content),f=jQuery.extend({},tinyMCEPreInit.qtInit.content),g=jQuery(this).parent().siblings(".campaign_target_rules_panel");"undefined"!=typeof g&&(b.parent_campaign_box=g);var h=jQuery(g).find(".message-row").length,i=jQuery(this).val();return""==i?void jQuery(".ajax_chosen_select_messages").val("").trigger("chosen:updated"):(jQuery(".message-edit-row").hide(),jQuery(".message-title-text").show(),jQuery(".message-title-input").hide(),void jQuery.ajax({type:"POST",url:icegram_writepanel_params.ajax_url,dataType:"json",data:{action:"get_message_action_row",message_id:i,row:h},success:function(c){if(h++,jQuery(g).find(".messages-list .messages_list_table tbody").append(c.main),jQuery(".color-field").wpColorPicker().each(function(a){var b=jQuery(this).data("color-label")||"";""!==b&&jQuery(this).closest(".wp-picker-container").find("a.wp-color-result").attr("title",b)}),jQuery(".campaign_data, #message-settings").on("change",".show_color_options",function(){jQuery(this).closest("p").next(".message_colors_options_container").toggle(!this.checked)}).change(),a(jQuery("#"+c.id)),jQuery(".ajax_chosen_select_messages").val("").trigger("chosen:updated"),jQuery(".campaign_data, #message-settings").find(".message_theme").append('<option value="ig_get_more_theme" class="ig_get_more">Get more Themes</option>'),jQuery(".campaign_data, #message-settings").find(".message_animation").append('<option value="ig_get_more_animation" class="ig_get_more">Get more Animations</option>'),jQuery("select.icegram_chosen_page").chosen({disable_search_threshold:10}),d(),jQuery(".message-setting-fields").trigger("change"),jQuery(".tips, .help_tip").tipTip({attribute:"data-tip"}),"undefined"==typeof tinyMCEPreInit.mceInit["edit"+c.id]){for(_prop in e)"string"==typeof e[_prop]&&"content_css"!==_prop&&(e[_prop]=e[_prop].replace(new RegExp("content","g"),"edit"+c.id));tinyMCEPreInit.mceInit["edit"+c.id]=e}if("undefined"==typeof tinyMCEPreInit.qtInit["edit"+c.id]){for(_prop in f)"string"==typeof f[_prop]&&"content_css"!==_prop&&(f[_prop]=f[_prop].replace(new RegExp("content","g"),"edit"+c.id));tinyMCEPreInit.qtInit["edit"+c.id]=f}tinyMCE.init({id:tinyMCEPreInit.mceInit["edit"+c.id]}),quicktags({id:"edit"+c.id}),QTags._buttonsInit(),jQuery("#wp-edit"+c.id+"-wrap").hasClass("tmce-active")?jQuery("#edit"+c.id+"-tmce").click():jQuery("#edit"+c.id+"-html").click(),jQuery(window).trigger("icegram_message_added_ajax",[b])}}))}),jQuery(".campaign_target_rules").on("click","#add_local_url_row",function(a){a.preventDefault();var b=c();jQuery(".local_url").find(".url_input_field").length?jQuery(b).insertAfter(jQuery(".local_url").find(".url_input_field").last().parent("span")):jQuery(b).insertBefore(jQuery(".local_url").find("#add_local_url_row_label"))}),jQuery(".campaign_target_rules").on("click",".delete-url",function(a){jQuery(this).parent().remove()}),jQuery(document).on("click",".campaign_preview",function(a){a.preventDefault(),tinyMCE.triggerSave(),params=jQuery("#post").serializeArray(),params.push({name:"action",value:"save_campaign_preview"}),jQuery.ajax({type:"POST",async:!1,url:icegram_writepanel_params.ajax_url,data:params,success:function(a){""!=a&&window.open(a,"preview_window")}})}),jQuery(".campaign_data, #message-settings").find(".message_theme").append('<option value="ig_get_more_theme" class="ig_get_more">Get more themes</option>'),jQuery(".campaign_data, #message-settings").find(".message_animation").append('<option value="ig_get_more_animation" class="ig_get_more">Get more Animations</option>'),jQuery(".campaign_data, #message-settings").on("change",".message_theme, .message_animation",function(){"ig_get_more_theme"==jQuery(this).val()&&window.open("https://www.icegram.com/product-category/themes-addons/?utm_source=icegram&utm_medium=admin&utm_campaign=theme_packs"),"ig_get_more_animation"==jQuery(this).val()&&window.open("https://www.icegram.com/animation-effects/?utm_source=icegram&utm_medium=admin&utm_campaign=animation_pack")}),jQuery("select.icegram_chosen_page").chosen({disable_search_threshold:10}),jQuery("input#users_logged_in, input#users_all ,input#users_not_logged_in").on("change",function(){"logged_in"==jQuery(this).val()?(jQuery("select#users_roles").parent("p").show(),jQuery("#users_roles_chosen").find("input").trigger("click")):jQuery("select#users_roles").parent("p").hide()}),jQuery(".schedule_rule").on("change",function(){"when_schedule"==jQuery(this).attr("id")?jQuery("#date_picker").show():jQuery("#date_picker").hide()}),jQuery("input#where_other_page").on("change",function(){jQuery("select#where_page_id").parent("p").slideToggle(),jQuery(this).is(":checked")&&jQuery("#where_page_id_chosen").find("input").trigger("click")}),jQuery("input#where_sitewide").on("change",function(){jQuery("select#exclude_page_id").parent("p").slideToggle()}),jQuery("input#where_local_url").on("change",function(){jQuery(".local_url").slideToggle()}),jQuery(".date-picker").datepicker({dateFormat:"yy-mm-dd",defaultDate:0,showOtherMonths:!0,selectOtherMonths:!0,changeMonth:!0,changeYear:!0,showButtonPanel:!1,beforeShow:function(a,b){jQuery("#ui-datepicker-div").addClass("ig-date-picker")}}),jQuery(".campaign_target_rules").on("focusout","input.url_input_field",function(){var a=this;if(jQuery(a).parent().find("span#valid-field").removeClass("error"),"undefine"!==jQuery(a).data("option")&&"local_url"==jQuery(a).data("option")&&"*"!=jQuery(a).val()){var b=a.value;if(b.indexOf(e)<0)return void jQuery(a).val(e+b)}})});;/*
4
  * TipTip
5
  * Copyright 2010 Drew Wilson
6
  * www.drewwilson.com
{assets → lite/assets}/js/ajax-chosen.jquery.min.js RENAMED
File without changes
{assets → lite/assets}/js/chosen.jquery.min.js RENAMED
File without changes
{assets → lite/assets}/js/gallery.js RENAMED
File without changes
lite/assets/js/gallery.min.js ADDED
@@ -0,0 +1 @@
 
1
+ window.wp=window.wp||{},function(a){var b,c;b=wp.themes=wp.themes||{},b.data=_wpThemeSettings,c=b.data.l10n,b.isInstall=b.data.settings.isInstall,_.extend(b,{model:{},view:{},routes:{},router:{},template:wp.template}),b.Model=Backbone.Model.extend({initialize:function(){var a;-1!==_.indexOf(b.data.installedThemes,this.get("slug"))&&this.set({installed:!0}),this.set({id:this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a})),this.has("plan")&&this.set({plan_name:d(this.get("plan"))})}}),b.view.Appearance=wp.Backbone.View.extend({el:".wrap .theme-browser",events:{"click .filter-links li > a":"onSort"},window:a(window),page:0,activeClass:"current",initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:b.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new b.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.append(this.view.el).addClass("rendered"),this.$el.append('<br class="clear"/>')},browse:function(a){if(this.collection.length<=0&&this.collection.query({browse:a}),"featured"==a||"all"==a)this.collection.query({browse:a});else{var b;if(b=this.collection.filter(function(b){var c=_.invert(b.attributes.tags);return c.hasOwnProperty(a)?!0:void 0})){this.collection.reset(b);var c=this.collection.length}}this.collection.trigger("update"),this.collection.trigger("query:success",c)},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.collection.reset(b.data.themes,{silent:!0}),this.sort(e),b.router.navigate(b.router.baseUrl(b.router.browsePath+e)))},sort:function(b){this.clearSearch(),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),"favorites"===b?a("body").addClass("show-favorites-form"):a("body").removeClass("show-favorites-form"),this.browse(b)},clearSearch:function(){a("#wp-filter-search-input").val("")},searchContainer:a(".search-form"),search:function(){var d,e=this;1!==b.data.themes.length&&(d=new this.SearchView({collection:e.collection,parent:this}),d.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+c.search+"</label>")).append(d.el))},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),b.Collection=Backbone.Collection.extend({model:b.Model,terms:"",doSearch:function(c){this.terms!==c&&(this.terms=c,this.terms.length>0&&this.search(this.terms),""===this.terms&&(this.reset(b.data.themes),a("body").removeClass("no-results")),this.trigger("update"))},search:function(c){var d,e,f,g,h,i;this.reset(b.data.themes,{silent:!0}),c=c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),c=c.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+c+").+","i"),e=this.filter(function(a){return g=a.get("name").replace(/(<([^>]+)>)/gi,""),h=a.get("description").replace(/(<([^>]+)>)/gi,""),i=a.get("author").replace(/(<([^>]+)>)/gi,""),f=_.union(g,a.get("id"),h,i,a.get("tags")),d.test(a.get("author"))&&c.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(20*a)),b=_(b.first(20))},count:!1,query:function(c){var d,e,f,g=this.queries,h=this;if(this.currentQuery.request=c,d=_.find(g,function(a){return _.isEqual(a.request,c)}),e=_.has(c,"page"),e||(this.currentQuery.page=1),d||e){if(e)return this.apiCall(c,e).then(function(a){h.add(a.themes),h.trigger("query:success"),h.loadingThemes=!1}).fail(function(){h.trigger("query:fail")});0===d.themes.length?h.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(d.total)&&(this.count=d.total),this.reset(d.themes),d.total||(this.count=this.length),this.trigger("update"),this.trigger("query:success",this.count)}else{if(b.data.themes){data=b.data.themes,h.add(data),"undefined"!=typeof c.id&&(data=h.get(c.id),h.set(data));var i=_.sortBy(h.models,function(a){return a.attributes.modified});h.reset(i.reverse()),f=data.length,g.push({themes:data,request:c,total:f})}h.trigger("update"),h.trigger("query:success",f),data.themes&&0===data.themes.length&&h.trigger("query:empty")}},queries:[],currentQuery:{page:1,request:{}},loadingThemes:!1}),b.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:b.template("theme"),events:{click:"preview",keydown:"preview",touchend:"preview",keyup:"addFocus",touchmove:"preventExpand"},touchDrag:!1,render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)).attr({tabindex:0,"data-rating":a.rating,"data-plan":a.plan,"plan-name":a.plan_name}),a.custom_category&&a.custom_category.length>0&&this.$el.html(this.html(a)).attr({"data-categories":a.custom_category.join(" ")}),this.$el.addClass("igg-card"),this.$el.addClass(a.plan_name),this.model.get("displayAuthor")&&this.$el.addClass("display-author"),this.model.get("installed")&&this.$el.addClass("is-installed")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(c){var d=this;return c=c||window.event,"keydown"!==c.type||13===c.which||32===c.which?this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).is(".theme-actions a")||(b.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid))):void 0},preventExpand:function(){this.touchDrag=!0},preview:function(c){var d,e,f=this;return c=c||window.event,this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).hasClass("button-primary")||"keydown"===c.type&&13!==c.which&&32!==c.which||"keydown"===c.type&&13!==c.which&&a(":focus").hasClass("button")||(c.preventDefault(),c=c||window.event,b.focusedTheme=this.$el,e=new b.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),1===this.model.collection.length?e.$el.addClass("no-navigation"):e.$el.removeClass("no-navigation"),this.listenTo(e,"theme:next",function(){return d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model})))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")}}),b.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme"},html:b.template("theme-single"),render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(b){var c;_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},500),b.on("keydown.wp-themes",function(d){9===d.which&&(c=a(d.target),c.is("button.left")&&d.shiftKey?(b.find(".theme-actions a:last-child").focus(),d.preventDefault()):c.is(".theme-actions a:last-child")&&(b.find("button.left").focus(),d.preventDefault()))})},collapse:function(c){var d,e=this;c=c||window.event,1!==b.data.themes.length&&(a(c.target).is(".theme-backdrop")||a(c.target).is(".close")||27===c.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){a("body").removeClass("closing-overlay"),e.closeOverlay(),d=document.body.scrollTop,b.router.navigate(b.router.baseUrl("")),document.body.scrollTop=d,b.focusedTheme&&b.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled"),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled")},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},deleteTheme:function(){return confirm(b.data.settings.confirmDelete)},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b,c;b=a.find(".screenshot img"),c=new Image,c.src=b.attr("src"),c.width&&c.width<=300&&a.addClass("small-screenshot")}}),b.view.Preview=b.view.Details.extend({className:"wp-full-overlay expanded",el:".ig-gallery-wrap .theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent"},html:b.template("theme-preview"),render:function(){var c=this,d=this.model.toJSON();this.$el.removeClass("iframe-ready").html(this.html(d)),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()}),this.$el.find("iframe").one("load",function(){c.iframeLoaded()}),d.plan<=b.data.settings.ig_plan?this.$el.find(".theme-install").show():this.$el.find(".ig-get-pro").show()},iframeLoaded:function(){this.$el.addClass("iframe-ready")},close:function(){return this.$el.hide(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),b.focusedTheme&&b.focusedTheme.focus()}).removeClass("iframe-ready"),b.router.navigate(b.router.baseUrl("")),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),!1},collapse:function(b){var d=a(b.currentTarget);return"true"===d.attr("aria-expanded")?d.attr({"aria-expanded":"false","aria-label":c.expandSidebar}):d.attr({"aria-expanded":"true","aria-label":c.collapseSidebar}),this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},keyEvent:function(a){27===a.keyCode&&(this.undelegateEvents(),this.close()),39===a.keyCode&&_.once(this.nextTheme()),37===a.keyCode&&this.previousTheme()}}),b.view.Themes=wp.Backbone.View.extend({className:"themes",$overlay:a("div.theme-overlay"),index:0,count:a(".wp-core-ui .theme-count"),liveThemeCount:0,initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),c.currentTheme(),this.listenTo(c.collection,"update",function(){c.parent.page=0,c.currentTheme(),c.render(this)}),this.listenTo(c.collection,"query:success",function(a){_.isNumber(a)?(c.count.text(a),c.announceSearchResults(a)):(c.count.text(c.collection.length),c.announceSearchResults(c.collection.length))}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(a){c.overlay&&(39===a.keyCode&&c.overlay.nextTheme(),37===a.keyCode&&c.overlay.previousTheme(),27===a.keyCode&&c.overlay.collapse(a))})},render:function(){this.$el.empty(),1===b.data.themes.length&&(this.singleTheme=new b.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.liveThemeCount=this.collection.count?this.collection.count:this.collection.length,this.count.text(this.liveThemeCount),this.announceSearchResults(this.liveThemeCount)},renderThemes:function(d){var e=this;return e.instance=e.collection.paginate(d),0===e.instance.size()?void this.parent.trigger("theme:end"):(!b.isInstall&&d>=1&&a(".add-new-theme").remove(),e.instance.each(function(a){e.theme=new b.view.Theme({model:a,parent:e}),e.theme.render(),e.$el.append(e.theme.el),e.listenTo(e.theme,"theme:expand",e.expand,e)}),!b.isInstall&&b.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+b.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h2 class="theme-name">'+c.addNew+"</h2></a></div>"),void this.parent.page++)},currentTheme:function(){var a,b=this;a=b.collection.findWhere({active:!0}),a&&(b.collection.remove(a),b.collection.add(a,{at:0}))},setView:function(a){return a},expand:function(c){var d=this;this.model=d.collection.get(c),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.id)),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new b.view.Details({model:d.model}),this.overlay.render(),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){d.next([d.model.cid])}).listenTo(this.overlay,"theme:previous",function(){d.previous([d.model.cid])})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},announceSearchResults:function(a){0===a?wp.a11y.speak(c.noThemesFound):wp.a11y.speak(c.themesFound.replace("%d",a))}}),b.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:c.searchPlaceholder,type:"search","aria-describedby":"live-search-desc"},events:{input:"search",keyup:"search",blur:"pushState"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a)},doSearch:_.debounce(function(a){var c={};this.collection.doSearch(a.target.value),this.searching&&13!==a.which?c.replace=!0:this.searching=!0,a.target.value?b.router.navigate(b.router.baseUrl(b.router.searchPath+a.target.value),c):b.router.navigate(b.router.baseUrl(""))},500),pushState:function(a){var c=b.router.baseUrl("");a.target.value&&(c=b.router.baseUrl(b.router.searchPath+a.target.value)),this.searching=!1,b.router.navigate(c)}}),b.Router=Backbone.Router.extend({routes:{"demos/?item=:id":"preview","demos/?browse=:sort":"sort",demos:"sort","&search=:query":"search"},baseUrl:function(a){return"demos"+a},themePath:"?item=",browsePath:"?browse=",searchPath:"?search=",search:function(b){a(".wp-filter-search").val(b)},themes:function(){a(".wp-filter-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.Run={init:function(){this.themes=new b.Collection(b.data.themes);var a=_.sortBy(this.themes.models,function(a){return a.attributes.modified});this.themes.reset(a.reverse()),this.view=new b.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({pushState:!0,hashChange:!1})},routes:function(){var c=this;request={},b.router=new b.Router,b.router.on("route:preview",function(a){request.id=a,c.view.collection.query(request),c.view.collection.once("update",function(){c.view.view.theme.preview()})}),b.router.on("route:themes",function(){c.themes.doSearch(""),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},b.view.InstallerSearch=b.view.Search.extend({events:{input:"search",keyup:"search"},search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a.target.value))},doSearch:_.debounce(function(c){var d,e,f,g,h,i;if(a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied show-favorites-form"),this.collection.filtered||this.collection.reset(b.data.themes,{silent:!0}),term=c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),""!==term&&(term=term.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+term+").+","i"),e=this.collection.filter(function(a){return g=a.get("description"),h=a.get("content").rendered.replace(/(<([^>]+)>)/gi,""),h=h.replace(/\n/g,""),i=a.get("message_type"),f=i+h+g,d.test(f)}))){this.collection.reset(e);var j=this.collection.length}""===term&&this.collection.reset(b.data.themes,{silent:!0}),this.collection.trigger("update"),this.collection.trigger("query:success",j),b.router.navigate(b.router.baseUrl(b.router.searchPath+c),{replace:!0})},500)}),b.view.Installer=b.view.Appearance.extend({el:".wrap",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters","click .favorites-form-submit":"saveUsername","keyup #wporg-username-input":"saveUsername","click .igg-sidebar .category-type":"filter","click .category.not_have_sub_cat":"filter"},render:function(){var d=this;this.search(),this.uploader(),this.collection=new b.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+c.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new b.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){if("featured"==a||"all"==a)this.collection.query({browse:a});else{var b;if(b=this.collection.filter(function(b){var c=_.invert(b.attributes.tags);return c.hasOwnProperty(a)?!0:void 0})){this.collection.reset(b);var c=this.collection.length}}this.collection.trigger("update"),this.collection.trigger("query:success",c)},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.collection.reset(b.data.themes,{silent:!0}),this.sort(e),b.router.navigate(b.router.baseUrl(b.router.browsePath+e)))},sort:function(b){this.clearSearch(),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),"favorites"===b?a("body").addClass("show-favorites-form"):a("body").removeClass("show-favorites-form"),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union(e,this.filtersChecked()),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var c,d=this.filtersChecked(),e={tag:d},f=a(".filtered-by .tags");b&&b.preventDefault(),a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),f.empty(),_.each(d,function(b){c=a('label[for="filter-id-'+b+'"]').text(),f.append('<span class="tag">'+c+"</span>")}),this.collection.query(e)},filter:function(c){var d,e=a(c.currentTarget),f=e.attr("category"),g=e.attr(f),h=0;if(this.collection.reset(b.data.themes,{silent:!0}),"reset"!=f&&(d=this.collection.filter(function(a){var b=Number(g);return a.get("custom_category").indexOf(Number(b))>-1?(h++,a):void 0})),h>0);void 0!==d&&(this.collection.reset(d),this.collection.filtered=!0,delete d),this.collection.trigger("update"),this.collection.trigger("query:success",h)},customFilter:function(a){var c,d=0;if(this.collection.reset(b.data.themes,{silent:!0}),c=this.collection.filter(function(a){var b=Number(51);return a.get("custom_category").indexOf(Number(b))>-1?(d++,a):void 0}),d>0);void 0!==c&&(this.collection.reset(c),this.collection.filtered=!0,delete c),this.collection.trigger("update"),this.collection.trigger("query:success",d)},saveUsername:function(b){var c=a("#wporg-username-input").val(),d={browse:"favorites",user:c},e=this;return b&&b.preventDefault(),"keyup"!==b.type||13===b.which?wp.ajax.send("save-wporg-username",{data:{username:c},success:function(){e.collection.query(d)}}):void 0},filtersChecked:function(){var b=a(".filter-group").find(":checkbox"),c=[];return _.each(b.filter(":checked"),function(b){c.push(a(b).prop("value"))}),0===c.length?(a(".filter-drawer .apply-filters").find("span").text(""),a(".filter-drawer .clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(a(".filter-drawer .apply-filters").find("span").text(c.length),a(".filter-drawer .clear-filters").css("display","inline-block"),c)},activeClass:"current",searchContainer:a(".search-form"),uploader:function(){a("a.upload").on("click",function(c){c.preventDefault(),a("body").addClass("show-upload-theme"),b.router.navigate(b.router.baseUrl("?upload"),{replace:!0})}),a("a.browse-themes").on("click",function(c){c.preventDefault(),a("body").removeClass("show-upload-theme"),b.router.navigate(b.router.baseUrl(""),{replace:!0})})},moreFilters:function(c){return c.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(this.clearSearch(),b.router.navigate(b.router.baseUrl("")),void a("body").toggleClass("show-filters"))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),b.InstallerRouter=Backbone.Router.extend({routes:{"edit.php?post_type=ig_campaign&page=icegram-gallery&item=:id":"preview","edit.php?post_type=ig_campaign&page=icegram-gallery&browse=:sort":"sort","edit.php?post_type=ig_campaign&page=icegram-gallery":"sort","post-new.php?post_type=ig_campaign":"sort","edit.php?post_type=ig_campaign&page=icegram-gallery&search=:query":"search"},baseUrl:function(a){return"edit.php?post_type=ig_campaign&page=icegram-gallery"+a},themePath:"&item=",browsePath:"&browse=",searchPath:"&search=",search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.RunInstaller={init:function(){this.view=new b.view.Installer({section:"featured",SearchView:b.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this,d={};b.router=new b.InstallerRouter,b.router.on("route:preview",function(a){d.id=a,c.view.collection.query(d),c.view.collection.once("update",function(){c.view.view.theme.preview()})}),b.router.on("route:sort",function(a){a||(a="featured"),c.view.sort(a),c.view.trigger("theme:close")}),b.router.on("route:upload",function(){a("a.upload").trigger("click")}),b.router.on("route:search",function(){a(".wp-filter-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}};var d=function(a){var b="";switch(a){case"0":b="free";break;case"1":b="plus";break;case"2":b="pro";break;case"3":b="max"}return b};a(document).ready(function(){b.isInstall?b.RunInstaller.init():b.Run.init(),a(".broken-themes .delete-theme").on("click",function(){return confirm(_wpThemeSettings.settings.confirmDelete)})})}(jQuery);var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=c>1040?1040:c,f=0;a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"}))},a(window).resize(function(){tb_position()})});
{assets → lite/assets}/js/icegram.js RENAMED
File without changes
lite/assets/js/icegram.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function Icegram(){}function Icegram_Message_Type(a){var a;this.root_container="#icegram_messages_container",this.data=a,this.type=a.type,this.data.delay_time=parseInt(this.data.delay_time),"string"!=typeof this.data.link||""==this.data.link||/^tel:/i.test(this.data.link)||/^https?:\/\//i.test(this.data.link)||(this.data.link="http://"+this.data.link),this.set_template(this.get_template_default()),jQuery(window).trigger("msg_preinit.icegram",[this]),this.init()}Icegram.prototype.init=function(a){if(void 0!=a){jQuery(window).trigger("preinit.icegram",[a]),this.data=a,this.defaults=jQuery.extend({},a.defaults),this.message_data=a.messages,this.messages,this.tracking_data=[],this.message_template_cache={},this.map_id_to_index={},this.map_type_to_index={},this.mode=void 0==window.ig_mode?"local":window.ig_mode,this.powered_by={link:"https://www.icegram.com/?utm_source=inapp&utm_campaign=poweredby&utm_medium="},this.powered_by.text=this.defaults.powered_by_text,this.powered_by.logo=this.defaults.powered_by_logo,jQuery("body").append('<div id="icegram_messages_container"></div>');this.messages=[];var b=this;this.message_data.length>0&&jQuery.each(this.message_data,function(a,c){try{if(-1==window.location.href.indexOf("campaign_preview_id")){if("yes"==c.retargeting&&1==jQuery.cookie("icegram_campaign_shown_"+c.campaign_id))return;if("yes"==c.retargeting_clicked&&1==jQuery.cookie("icegram_campaign_clicked_"+c.campaign_id))return}"undefined"!==c.ig_mobile_popup&&1==c.ig_mobile_popup&&(c.delay_time=-1);var d=null,e=c.type.split("-").join(" ").ucwords().split(" ").join("_");d="function"==typeof window["Icegram_Message_Type_"+e]?new window["Icegram_Message_Type_"+e](c):new Icegram_Message_Type(c),b.messages.push(d),b.map_id_to_index["_"+c.id]=a,b.map_type_to_index[c.type]=jQuery.isArray(b.map_type_to_index[c.type])?b.map_type_to_index[c.type]:new Array,b.map_type_to_index[c.type].push(a)}catch(f){console.log(f)}}),jQuery(window).on("unload",function(){"function"==typeof window.icegram.submit_tracking_data&&window.icegram.submit_tracking_data(!1)}),setInterval(function(){"function"==typeof window.icegram.submit_tracking_data&&window.icegram.submit_tracking_data(!0)},5e3),jQuery(window).trigger("init.icegram",[this])}},Icegram.prototype.timer_tick=function(){},Icegram.prototype.get_template_fn=function(a){return this.message_template_cache[a]},Icegram.prototype.set_template_fn=function(a,b){this.message_template_cache[a]=b},Icegram.prototype.get_message=function(a){return this.messages.length>a?this.messages[a]:void 0},Icegram.prototype.get_message_by_id=function(a){if(this.map_id_to_index.hasOwnProperty("_"+a)){var b=this.map_id_to_index["_"+a];return this.get_message(b)}},Icegram.prototype.get_message_by_campaign_id=function(a){a=String(a);var b=[],c=this.messages;return a.indexOf(" ")&&(a=a.split(" ")),jQuery.each(a,function(a,d){jQuery.each(c,function(a,c){d==c.data.campaign_id&&b.push(c)})}),b},Icegram.prototype.get_messages_by_type=function(a){if(this.map_type_to_index.hasOwnProperty(a)){var b=this.map_type_to_index[a],c=[];if(jQuery.isArray(b)){var d=this;jQuery.each(b,function(a,b){c.push(d.get_message(b))})}return c}},Icegram.prototype.get_powered_by=function(a){var b=jQuery.extend({},this.powered_by);return b.link=b.link+(a||""),b},Icegram.prototype.track=function(a,b){"object"==typeof b&&b.hasOwnProperty("message_id")&&b.hasOwnProperty("campaign_id")&&-1==b.message_id.indexOf("_00")&&(jQuery(window).trigger("track.icegram",[a,b]),this.tracking_data.push({type:a,params:b}))},Icegram.prototype.submit_tracking_data=function(a){var b=window.location.protocol.split(":"),c=b[0],d=this.data.ajax_url.split("://"),e=d[0];if(this.tracking_data.length>0&&-1==window.location.href.indexOf("campaign_preview_id")&&!this.is_bot()){var f={type:"POST",url:this.data.ajax_url,async:a||!1,data:{action:"icegram_event_track",event_data:JSON.parse(JSON.stringify(this.tracking_data)),ig_remote_url:"remote"==this.mode?window.location.href:void 0},success:function(a,b,c){},error:function(a,b,c){}};"remote"==this.mode?(f.xhrFields={withCredentials:!0},f.crossDomain=!0,f.async=!0):c!=e&&(f.xhrFields={withCredentials:!0},jQuery.extend(f.data,{ig_local_url_cs:window.location.href})),jQuery.ajax(f),this.tracking_data=[]}},Icegram.prototype.is_bot=function(){var a=/bot|spider|crawl|sucker|ia_archiver|alexa|spade|slurp|webbug|ZyBorg|Feedfetcher-Google|Mediapartners-Google|aolserver|seamonkey|binlar|casper|comodo|feedfinder|jakarta|java|larbin|libwww|pycurl|linkwalker|steeler|nutch|turnit|zmeu/i;return!!a.test(navigator.userAgent)},Icegram.prototype.hide_all_messages=function(){this.messages.length>0&&jQuery.each(this.messages,function(a,b){b.hide()})},Icegram_Message_Type.prototype.init=function(){this.render(),this.add_event_handlers()},Icegram_Message_Type.prototype.add_event_handlers=function(){this.el.on("click",{self:this},this.on_click),jQuery(window).on("resize",{self:this},this.on_resize)},Icegram_Message_Type.prototype.animations={},Icegram_Message_Type.prototype.embed_form=function(){if(-1===jQuery.inArray(this.data.type,["toast","badge","ribbon","exit-redirect"])){var a=null,b=this.data.form_layout,c=this.data.form_has_label,d=this.data.form_style||"none",e=this.data.label||void 0;if(d=d.toLowerCase().replace(" ","_"),void 0!=this.data.use_form&&"yes"==this.data.use_form&&(a=this.data.form_html),this.el.find("form.ig_embed_form").length>0){var f=this.el.find("form.ig_embed_form");b="inline",-1===jQuery.inArray(this.data.type,["messenger","tab","sidebar","interstitial","sticky"])&&(f.hasClass("ig_left")?b="left":f.hasClass("ig_right")&&(b="right")),"inline"==b&&this.el.find("form.ig_embed_form").replaceWith('<div class="ig_form_container layout_inline"></div>'),c=f.find(".ig_form_el_group label").length>0?"yes":void 0,0==f.find(".ig_button").length&&0==f.find("button[type=submit]").length&&(e=e||"Submit",f.append('<input class="ig_button" type="submit" value="'+e+'">')),a=jQuery("<div/>").append(f).html()}if(null==a)this.el.find(".ig_form_container").remove();else{var g=window.icegram.formProcess(this,a);if(g&&0==this.el.find(".ig_form_container form").length){var h=void 0!=this.data.form_header&&""!=this.data.form_header?'<div class="ig_form_header">'+this.data.form_header+"</div>":"",i=void 0!=this.data.form_footer&&""!=this.data.form_footer?'<div class="ig_form_footer">'+this.data.form_footer+"</div>":"",j=jQuery("<div/>").html(a);if(this.el.find(".ig_form_container").append(h).append(g).append(i),this.data.rainmaker_form_code&&""!=this.data.rainmaker_form_code){this.data.cta&&"form"!==this.data.cta&&this.data.show_response&&this.data.response_text&&(!this.data.response_text||""!=this.data.response_text)||(this.data.response_text=j.find(".rm_form_message").html()||""),this.el.find(".ig_form_container").addClass(j.find(".rm_form_container").data("type")).data("form-id",j.find(".rm_form_container").data("form-id")).addClass("rainmaker_form");var k=j.find("#rm_script"),l=j.find("#rm_style");this.el.find(".ig_form_container").prepend(l).append(k);var m=j.find(".rm_captcha"),n=j.find(".rm_form_error_message");this.el.find(".ig_form_container form").prepend(n).append(m)}if(this.el.find('[data-es_form_id = "es_shortcode_form" ]').length>0){this.el.find('[data-es_form_id = "es_shortcode_form" ]').addClass("es_shortcode_form");var o=jQuery(a).find(".es_captcha");this.el.find(".es_shortcode_form").parent().append(o),this.el.find(".es_shortcode_form").parent().addClass("es_form_container")}if(this.el.find('form[data-source="ig-es"]').length>0){var o=jQuery(a).find(".es_captcha");this.el.find('form[data-source="ig-es"] .ig_button').parent().before(o),this.el.find('form[data-source="ig-es"] .es_captcha').addClass("ig_form_els"),this.el.find('form[data-source="ig-es"]').addClass("es_form_container")}void 0==c?this.el.find(".ig_el_label").not("span.ig_el_label").remove():(this.el.find("input, textarea").removeAttr("placeholder"),this.el.find("select option.ig_el_placeholder").remove()),this.el.find(".ig_form_container .ig_button").length>0&&(this.el.find(".ig_button").not(".ig_form_container .ig_button").hide(),e=e||this.el.find(".ig_button").val()||"Submit",this.el.find(".ig_button").val(e)),this.el.addClass("ig_form_"+b);var p="";void 0!=this.data.form_bg_color&&""!=this.data.form_bg_color?(this.el.find(".ig_form_container").css("background-color",this.data.form_bg_color),p+=".ig_form_"+b+".ig_form_"+d+" .ig_form_container:before{ background-color:"+this.data.form_bg_color+"; border-color:"+this.data.form_bg_color+";}"):p+=".ig_form_"+b+".ig_form_"+d+" .ig_form_container:before{ display:none;}",void 0!=this.data.form_text_color&&""!=this.data.form_text_color&&this.el.find(".ig_form_container").css("color",this.data.form_text_color),this.el.addClass("ig_form_"+d).find(".ig_form_container").prepend('<style type="text/css">'+p+"</style>"),jQuery.each(this.el.find(".ig_form_container")||[],function(a,b){jQuery(b).find(".ig_form_els").first().addClass("ig_form_els_first").end().last().addClass("ig_form_els_last")})}}}},Icegram_Message_Type.prototype.render=function(){this.pre_render();var a=this.render_template();try{jQuery(this.root_container).append(a)}catch(b){}this.dom_id="icegram_message_"+this.data.id,this.el=jQuery("#"+this.dom_id),this.set_position();var c=window.icegram.get_powered_by(this.type);if(c.hasOwnProperty("link")&&c.hasOwnProperty("text")&&""!=c.text&&this.add_powered_by(c),void 0!=this.data.headline&&""!=this.data.headline||this.el.find(".ig_headline").hide(),void 0!=this.data.icon&&""!=this.data.icon||this.el.addClass("ig_no_icon").find(".ig_icon").remove(),void 0!=this.data.message&&""!=this.data.message||this.el.find(".ig_message").hide(),void 0!=this.data.label&&""!=this.data.label||this.el.find(".ig_button").hide(),this.embed_form(),void 0==this.data.use_theme_defaults||"yes"!=this.data.use_theme_defaults){if(void 0!=this.data.text_color&&""!=this.data.text_color&&(this.el.css("color",this.data.text_color),this.el.find(".ig_container").css("color",this.data.text_color)),void 0!=this.data.bg_color&&""!=this.data.bg_color&&(this.el.css("background-color",this.data.bg_color),this.el.find(".ig_container").css("background-color",this.data.bg_color)),void 0!=this.data.cta_bg_color&&""!=this.data.cta_bg_color){this.el.find('.ig_button, form input[type="submit"]').css("background-color",this.data.cta_bg_color);var d=window.icegram.hexToHsl(this.data.cta_bg_color);this.el.find('.ig_button, form input[type="submit"]').css("border-color","hsl("+d.h+","+(d.s-5)+"%,"+(d.l-8)+"%)")}void 0!=this.data.cta_text_color&&""!=this.data.cta_text_color&&this.el.find('.ig_button, form input[type="submit"]').css("color",this.data.cta_text_color)}this.data.use_custom_code&&this.data.custom_css&&this.el.prepend('<style id="ig_custom_css_'+this.data.id+'" type="text/css">'+this.data.custom_css.replace(/#ig_this_message/g,"#"+this.dom_id)+"</style>"),"string"==typeof this.data.link&&""!=this.data.link&&this.el.parent().find(".ig_cta, .ig_button").css("cursor","pointer"),this.post_render(),this.hide({},!0),this.set_up_show_trigger()},Icegram.prototype.formProcess=function(a,b){var c=jQuery("<div/>").html(b).find('input[name="fake_text"]').data("required_field",!0).end().find("input.rm_required_feild").data("required_field",!0).end().find(".gform_validation_container input").data("required_field",!0).end().find(".rm_captcha_input").data("keep_class",!0).end().find(".es_captcha_input").data("keep_class",!0).end().find(".gdpr-label").data("keep_class",!0).end().find(".required_field").data("required_field",!0).end().find("input, label, select, textarea, button").not(".rm_captcha_input, .rm_captcha_verify").not(".es_captcha_input, .es_captcha_verify ").not("br");if(c.length>0){var d=jQuery('<div class="ig_embed_form_container ig_clear_fix"></div>'),e=jQuery("<div/>").html(b).find("form").removeAttr("class").removeAttr("style").addClass("ig_clear_fix").empty(),f=".",g=0;jQuery.each(c,function(a,b){var c=jQuery(b),e=jQuery('<div class="ig_form_els"></div>');if(c.removeAttr("style"),c.data("keep_class")||c.removeAttr("class"),(-1==c.attr("tabindex")||c.is('*[name*="[abs]"]')||c.data("required_field")||"data[email]"==c.attr("name")||"_mc4wp_required_but_not_really"==c.attr("name"))&&(c.addClass("ig_form_required_field").removeData("required_field"),g--),"hidden"!=c.attr("type")&&c.prop("disabled")!==!0||(c.addClass("ig_form_hidden_field"),g--),c.is("label"))"gdpr-label"==c.attr("class")?(c.find("input[type=checkbox]").remove(),f=c.not("input, select, textarea, button, span, br").html().replace(/\s+/g," ")||"."):f=c.not("input, select, textarea, button, span, br").text().replace(/\s+/g," ")||".";else if(!(c.is("input")||c.is("button")||c.is("textarea")||c.is("select"))||c.is("input[type=radio]")||c.is("input[type=checkbox]"))(c.is("input[type=radio]")||c.is("input[type=checkbox]"))&&(label_class="ig_el_label ig_button_label","."!=f&&(label_class="ig_el_label"),jQuery('<label><span class="'+label_class+'">'+f+"</span></label>").prepend(c).appendTo(e),f=".",e.addClass("ig_form_el_radio"),d.append(e),g++);else{if(c.removeAttr("id"),c.is("button")){var h=c.not("br, span, div").text().trim()||"";c.remove(),c=jQuery('<input type="submit" value="'+h+'">')}!c.is("input[type=submit]")&&!c.is("input[type=button]")||c.is(".ig_form_hidden_field, .ig_form_required_field")||c.addClass("ig_button"),(c.is("input[type=text]")||c.is("input[type=email]"))&&c.attr("size",25),label_class="ig_el_label ig_button_label","."!=f&&(label_class="ig_el_label",c.is("select")?jQuery('<option class="ig_el_placeholder">'+f+"</option>").prependTo(c):c.attr("placeholder",f)),jQuery('<label class="'+label_class+'">'+f+"</label>").appendTo(e),f=".",e.append(c),d.append(e),g++}});var h=["","ig_full","ig_half","ig_third","ig_quater"];return g=4>g?g:4,d.find(".ig_form_required_field").length<=0&&d.append('<div class="ig_form_els"><input class="ig_form_required_field" type="text" tabindex="-1" value="" /></div>'),d.addClass(h[g]).find(".ig_form_required_field").parent().removeClass("ig_form_els").css({position:"absolute",left:"-5000px"}).end().end().find(".ig_form_hidden_field").parent().removeClass("ig_form_els").css({display:"none"}),e.append(d),jQuery("<div/>").append(e).html()}return null},Icegram_Message_Type.prototype.render_template=function(){return"function"!=typeof window.icegram.get_template_fn(this.type)&&window.icegram.set_template_fn(this.type,new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+this.template.replace(/[\r\t\n]/g," ").split("{{").join(" ").replace(/((^|\}\})[^\t]*)'/g,"$1\r").replace(/\t=(.*?)\}\}/g,"',$1,'").split(" ").join("');").split("}}").join("p.push('").split("\r").join("\\'")+"');}return p.join('');")),window.icegram.get_template_fn(this.type)(this.data)},Icegram_Message_Type.prototype.pre_render=function(){},Icegram_Message_Type.prototype.post_render=function(){},Icegram_Message_Type.prototype.set_up_show_trigger=function(){if(isNaN(this.data.delay_time))this.show();else if(this.data.delay_time>=0){var a=this;this.timer=setTimeout(function(){a.show()},1e3*this.data.delay_time)}},Icegram_Message_Type.prototype.set_template=function(a){this.template=a},Icegram_Message_Type.prototype.get_template_default=function(){return'<div id="icegram_message_{{=id}}" class="icegram"><div class="ig_headline">{{=headline}}</div></div>'},Icegram_Message_Type.prototype.show=function(a,b){this.is_visible()||(this.animate("in"),this.pre_show(),this.el.show(a),this.el.addClass("ig_show").removeClass("ig_hide"),b!==!0&&this.track("shown"),this.post_show());var c=this;window.icegram.adjustFormContainerHeight(c)},Icegram_Message_Type.prototype.hide=function(a,b){if(this.is_visible()){var c=this;this.animate("out"),this.pre_hide(),setTimeout(function(){c.el.hasClass("ig_no_hide")||c.el.hide(a),c.el.addClass("ig_hide").removeClass("ig_show")},500),b!==!0&&this.track("closed"),this.post_hide()}},Icegram_Message_Type.prototype.set_position=function(){},Icegram_Message_Type.prototype.add_powered_by=function(a){},Icegram_Message_Type.prototype.pre_show=function(){},Icegram_Message_Type.prototype.post_show=function(){},Icegram_Message_Type.prototype.pre_hide=function(){},Icegram_Message_Type.prototype.post_hide=function(){},Icegram_Message_Type.prototype.track=function(a,b){"function"==typeof window.icegram.track&&(b=b||{},jQuery.extend(b,{message_id:this.data.id,campaign_id:this.data.campaign_id,expiry_time:this.data.expiry_time,expiry_time_clicked:this.data.expiry_time_clicked}),window.icegram.track(a,b))},Icegram_Message_Type.prototype.is_visible=function(){return this.el.hasClass("ig_show")},Icegram_Message_Type.prototype.toggle=function(a){this.is_visible()?this.hide(a):this.show(a)},Icegram_Message_Type.prototype.on_click=function(a){if(a.data=a.data||{self:this},jQuery(a.target).filter(".ig_close").length||jQuery(a.target).parents(".ig_close").length)return void a.data.self.hide();var b=jQuery(a.target).closest(".icegram").find("form:visible").first();(jQuery(a.target).filter(".ig_button, .ig_cta, :submit").length||jQuery(a.target).parents("button[type=submit]").length||jQuery(a.target).filter(".es_submit_button").length||jQuery(a.target).parents(".ig_button, .ig_cta").length&&!(b.find(".ig_button, input[type=button], input[type=submit], button[type=submit]").length>0))&&jQuery(a.target).not(".donot-track").length&&a.data.self.on_cta_click(a)},Icegram_Message_Type.prototype.on_resize=function(a){},Icegram_Message_Type.prototype.on_cta_click=function(a){a.data=a.data||{self:this};var b=jQuery(a.target).closest(".icegram").find("form:visible").first();return jQuery(b).length&&jQuery(b).find(".ig_form_required_field").length&&""!==jQuery(b).find(".ig_form_required_field").val()?(a.preventDefault(),void a.data.self.hide()):(a.data.self.track("clicked"),void(jQuery(b).length?jQuery(b).submit(function(a){jQuery(b).hasClass("ig_form_init_done")&&a.preventDefault()}):"string"==typeof a.data.self.data.link&&""!=a.data.self.data.link?(window.location.href=a.data.self.data.link,a.data.self.hide()):a.data.self.data.hide!==!1&&a.data.self.hide()))},Icegram_Message_Type.prototype.animate=function(a){if("undefined"!=typeof this.data.animation){var b=this.data.animation,c=this;"in"==a?"function"==typeof this.animations[b+"_in"]?this.animations[b+"_in"](c):this.el.hasClass("ig_anim_"+b+"_in")||(this.el.removeClass("ig_anim_"+b+"_out"),setTimeout(function(){c.el.addClass("ig_anim_"+b+"_in")},1)):"out"==a&&("function"==typeof this.animations[b+"_out"]?this.animations[b+"_out"](c):(this.el.removeClass("ig_anim_"+b+"_in"),setTimeout(function(){c.el.addClass("ig_anim_"+b+"_out")},1)))}},String.prototype.ucwords=function(){return this.toLowerCase().replace(/\b[a-z]/g,function(a){return a.toUpperCase()})},Icegram.prototype.adjustFormContainerHeight=function(a){var b="";if(a.el.hasClass("ig_form_left")||a.el.hasClass("ig_form_right")){b=a.el.hasClass("ig_form_left")?"left":"right";var c=a.el.find(".ig_data").outerHeight()>a.el.find(".ig_form_container.layout_"+b).outerHeight()?a.el.find(".ig_data").outerHeight():a.el.find(".ig_form_container.layout_"+b).outerHeight();a.el.find(".ig_form_container").outerHeight(c)}},Icegram.prototype.hexToRgb=function(a){var b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null},Icegram.prototype.rgbToHsl=function(a,b,c){a/=255,b/=255,c/=255;var d,e,f=Math.max(a,b,c),g=Math.min(a,b,c),h=(f+g)/2;if(f==g)d=e=0;else{var i=f-g;switch(e=h>.5?i/(2-f-g):i/(f+g),f){case a:d=(b-c)/i;break;case b:d=(c-a)/i+2;break;case c:d=(a-b)/i+4}h=Math.floor(100*h),e=Math.floor(100*e),d=Math.floor(60*d),0>d&&(d+=360)}return{h:d,s:e,l:h}},Icegram.prototype.hexToHsl=function(a){var b=window.icegram.hexToRgb(a);return window.icegram.rgbToHsl(b.r,b.g,b.b)},"function"!=typeof Object.create&&!function(){var a=function(){};Object.create=function(b){if(arguments.length>1)throw Error("Second argument not supported");if(null===b)throw Error("Cannot set a null [[Prototype]]");if("object"!=typeof b)throw TypeError("Argument must be an object");return a.prototype=b,new a}}();var es_responseHandler=function(a,b){if("undefined"!=typeof icegram){var c=((jQuery(a.target).closest("[id^=icegram_message_]")||{}).attr("id")||"").split("_").pop()||0,d=icegram.get_message_by_id(c)||void 0;"undefined"!=typeof d&&(jQuery(a.target).find(".es_msg_ig").remove(),"form_via_ajax"===d.data.cta&&"success"===b.detail.es_response?(""===d.data.response_text&&(d.data.response_text=b.detail.msg),d.el.trigger("form_success.ig_cta",[d])):"undefined"!=typeof d.data.use_form&&jQuery(a.target).append('<div class="es_msg es_msg_ig es_subscription_message '+b.detail.es_response+'">'+b.detail.msg+"</div>"))}};jQuery(document).on("es_response",es_responseHandler),void 0!==typeof jQuery.cookie&&!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});;function Icegram_Message_Type_Action_Bar(a){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Action_Bar.prototype=Object.create(Icegram_Message_Type.prototype),Icegram_Message_Type_Action_Bar.prototype.constructor=Icegram_Message_Type_Action_Bar,Icegram_Message_Type_Action_Bar.prototype.get_template_default=function(){return'<div class="icegram action_bar_{{=id}}" ><div class="ig_action_bar ig_container ig_{{=theme}} ig_no_hide" id="icegram_message_{{=id}}"><div class="ig_content ig_clear_fix"><div class="ig_close" id="ig_close_{{=id}}"><span></span></div><div class="ig_form_container layout_left"></div><div class="ig_data ig_clear_fix"><div class="ig_headline">{{=headline}}</div><div class="ig_message">{{=message}}</div></div><div class="ig_button">{{=label}}</div><div class="ig_form_container layout_right layout_bottom"></div></div></div></div>'},Icegram_Message_Type_Action_Bar.prototype.post_render=function(){Icegram_Message_Type.prototype.post_render.apply(this,arguments),void 0!=this.data.use_theme_defaults&&"yes"==this.data.use_theme_defaults||void 0!=this.data.bg_color&&""!=this.data.bg_color&&this.el.find(".ig_close").css("background-color",this.data.bg_color),"21"!==this.data.position&&0==jQuery("#ig_body_pushdown").length&&jQuery("body").prepend('<div id="ig_body_pushdown"></div>')},Icegram_Message_Type_Action_Bar.prototype.set_position=function(){switch(this.data.position){case"21":this.el.addClass("ig_bottom");break;case"01":default:this.el.addClass("ig_top")}},Icegram_Message_Type_Action_Bar.prototype.add_powered_by=function(a){this.el.addClass("ig_has_pwby").find(".ig_content").before('<div class="ig_powered_by" ><a href="'+a.link+'" target="_blank"><img src="'+a.logo+'" title="'+a.text+'"/></a></div>')},Icegram_Message_Type_Action_Bar.prototype.on_click=function(a){return a.data=a.data||{self:this},jQuery(a.target).filter(".ig_show .ig_close, .ig_show .ig_close span").length?void a.data.self.hide():jQuery(a.target).filter(".ig_hide .ig_close, .ig_hide .ig_close span").length?void a.data.self.show():void Icegram_Message_Type.prototype.on_click.apply(this,arguments)},Icegram_Message_Type_Action_Bar.prototype.post_show=function(){if("21"!==this.data.position){var a=this.el.outerHeight()||0;jQuery("#ig_body_pushdown").css("display","block").animate({height:a},500),jQuery("*",document.body).not(".ig_action_bar, .ig_popup, .ig_messenger, .ig_inline, .ig_overlay, .ig_sidebar, .ig_tab, .ig_interstitial ,#ig_body_pushdown ").each(function(){var b=window.getComputedStyle(this,null);("fixed"===b.position||"absolute"===b.position&&("BODY"===this.parentNode.nodeName||"HEADER"===this.nodeName))&&!isNaN(parseInt(b.top,10))&&this.getBoundingClientRect().top<=a&&jQuery(this).data("ig_fx_top",b.top).animate({top:parseInt(b.top,10)+a+"px"},300)})}},Icegram_Message_Type_Action_Bar.prototype.pre_hide=function(){"21"!==this.data.position&&(jQuery("#ig_body_pushdown").animate({height:0},300).css("display","none"),jQuery("*",document.body).not(".ig_action_bar, .ig_popup, .ig_messenger, .ig_inline, .ig_overlay, .ig_sidebar, .ig_tab, .ig_interstitial ,#ig_body_pushdown ").each(function(){"undefined"!=typeof jQuery(this).data("ig_fx_top")&&jQuery(this).animate({top:jQuery(this).data("ig_fx_top")},200)}))};;function Icegram_Message_Type_Messenger(a){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Messenger.prototype=Object.create(Icegram_Message_Type.prototype),Icegram_Message_Type_Messenger.prototype.constructor=Icegram_Message_Type_Messenger,Icegram_Message_Type_Messenger.prototype.get_template_default=function(){return'<div class="icegram ig_messenger ig_{{=theme}} ig_container ig_cta" id="icegram_message_{{=id}}"><div class="ig_content"><div class="ig_close" id="ig_close_{{=id}}"></div><div class="ig_data"><div class="ig_headline">{{=headline}}</div><div class="ig_body"><img class="ig_icon" src="{{=icon}}"/><div class="ig_message">{{=message}}</div></div><div class="ig_footer"></div></div></div></div>'},Icegram_Message_Type_Messenger.prototype.set_position=function(){switch(this.data.position){case"20":this.el.addClass("ig_left ig_bottom");break;case"22":default:this.el.addClass("ig_right ig_bottom")}},Icegram_Message_Type_Messenger.prototype.add_powered_by=function(a){this.el.addClass("ig_has_pwby").find(".ig_content").after('<div class="ig_powered_by"><a href="'+a.link+'" target="_blank">'+a.text+"</a></div>")};;function Icegram_Message_Type_Popup(a){Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Popup.prototype=Object.create(Icegram_Message_Type.prototype),Icegram_Message_Type_Popup.prototype.constructor=Icegram_Message_Type_Popup,Icegram_Message_Type_Popup.prototype.get_template_default=function(){return'<div id="icegram_message_{{=id}}" class="icegram ig_popup ig_{{=theme}} ig_container mfp-hide"><div class="ig_close" id="popup_box_close_{{=id}}"></div><div class="ig_clear_fix" data={{=id}}><div class="ig_bg_overlay"></div><div class="ig_form_container layout_left"></div><div class="ig_data ig_clear_fix"><div class="ig_headline">{{=headline}}</div><div class="ig_content"><div class="ig_message ig_clear_fix">{{=message}}</div></div><div class="ig_button" >{{=label}}</div></div><div class="ig_form_container layout_right layout_bottom"></div></div></div>'},Icegram_Message_Type_Popup.prototype.post_render=function(){Icegram_Message_Type.prototype.post_render.apply(this,arguments),void 0!=this.data.use_theme_defaults&&"yes"==this.data.use_theme_defaults||void 0!=this.data.bg_color&&""!=this.data.bg_color&&this.el.find(".ig_bg_overlay").css("border-color",this.data.bg_color)},Icegram_Message_Type_Popup.prototype.show=function(a,b){if(!this.is_visible()){var c=this,d="#icegram_message_"+this.data.id;this.animate("in"),window.ig_popup=jQuery.magnificPopup,window.ig_popup.open({items:{src:d,type:"inline"},showCloseBtn:!1,callbacks:{close:function(){b!==!0&&c.track("closed"),c.el.removeClass("ig_show")},open:function(){window.icegram.adjustFormContainerHeight(c)}}}),c.el.addClass("ig_show").removeClass("ig_hide"),b!==!0&&this.track("shown")}},Icegram_Message_Type_Popup.prototype.add_powered_by=function(a){setTimeout(function(){jQuery(".mfp-wrap").append('<div class="ig_powered_by"><a href="'+a.link+'" target="_blank">'+a.text+"</a></div>")},1e3+1e3*this.data.delay_time)},Icegram_Message_Type_Popup.prototype.hide=function(a,b){if(this.is_visible()){var c="#icegram_message_"+this.data.id,d=this;this.animate("out"),setTimeout(function(){d.el.addClass("ig_hide").removeClass("ig_show"),jQuery.magnificPopup.close({items:{src:c,type:"inline"}})},500)}},"undefined"==typeof window.ig_popup&&!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isIE7=-1!==c.indexOf("MSIE 7."),b.isIE8=-1!==c.indexOf("MSIE 8."),b.isLowIE=b.isIE7||b.isIE8,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),b.st.showCloseBtn&&(!b.st.closeBtnInside||b.currTemplate[b.currItem.type]===!0)&&b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||2!==c.which&&!c.ctrlKey&&!c.metaKey){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),!d&&"loading"===a&&(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(a,c){if(void 0===c||c===!1)return!0;if(e=a.split("_"),e.length>1){var d=b.find(p+"-"+e[0]);if(d.length>0){var f=e[1];"replaceWith"===f?d[0]!==c[0]&&d.replaceWith(c):"img"===f?d.is("img")?d.attr("src",c):d.replaceWith('<img src="'+c+'" class="'+d.attr("class")+'" />'):d.attr(e[1],c)}}else b.find(p+"-"+a).html(c)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&times;</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,H&&clearInterval(H),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){H&&clearInterval(H),H=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(H),c++,3===c?e(10):40===c?e(50):100===c&&e(500),void 0)},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:I(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(H&&clearInterval(H),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var J,K=function(){return void 0===J&&(J=void 0!==document.createElement("p").style.MozTransform),J};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return K()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var L="retina";a.magnificPopup.registerModule(L,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+L,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+L,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});;function Icegram_Message_Type_Toast(a){this.width=300,this.sticky=!1,this.duration=1e4,Icegram_Message_Type.apply(this,arguments)}Icegram_Message_Type_Toast.prototype=Object.create(Icegram_Message_Type.prototype),Icegram_Message_Type_Toast.prototype.constructor=Icegram_Message_Type_Toast,Icegram_Message_Type_Toast.prototype.get_template_default=function(){return'<li class="icegram ig_toast ig_container ig_{{=theme}} ig_cta" data="{{=id}}" id="icegram_message_{{=id}}"><div class="ig_wrapper"><div class="ig_content"><div class="ig_base"></div><div class="ig_line"></div><img class="ig_icon" src="{{=icon}}"/><div class="ig_headline">{{=headline}}</div><div class="ig_message">{{=message}}</div></div></div></li>'},Icegram_Message_Type_Toast.prototype.pre_render=function(){if("10"!=this.data.position&&"12"!=this.data.position||(this.data.position="20"),jQuery("ul#"+this.data.position).length)var a=jQuery("ul#"+this.data.position);else{var a=jQuery('<ul id="'+this.data.position+'"></ul>').addClass("ig_toast_block").appendTo(this.root_container).hide();a.width(this.width),"00"==this.data.position?a.css({top:"0",left:"0"}).addClass("ig_left").addClass("ig_top"):"01"==this.data.position?a.css({top:"0",left:"50%",margin:"5px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_top"):"02"==this.data.position?a.css({top:"0",right:"0"}).addClass("ig_right").addClass("ig_top"):"20"==this.data.position?a.css({bottom:"0",left:"0"}).addClass("ig_left").addClass("ig_bottom"):"21"==this.data.position?a.css({bottom:"0",left:"50%",margin:"5px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_bottom"):"22"==this.data.position?a.css({bottom:"0",right:"0"}).addClass("ig_right").addClass("ig_bottom"):"11"==this.data.position&&a.css({top:"50%",left:"50%",margin:"-"+this.width/2+"px 0 0 -"+this.width/2+"px"}).addClass("ig_center").addClass("ig_top")}this.root_container=a},Icegram_Message_Type_Toast.prototype.pre_show=function(){!this.root_container.hasClass("active")&&this.root_container.addClass("active").show()},Icegram_Message_Type_Toast.prototype.post_show=function(){var a=this;!this.sticky&&this.duration>0&&setTimeout(function(){a.hide(),a.root_container.children().length||a.root_container.removeClass("active").hide()},this.duration)};
{assets → lite/assets}/js/jquery.tipTip.min.js RENAMED
File without changes
{assets → lite/assets}/js/magnific-popup.js RENAMED
File without changes
{assets → lite/assets}/js/main.js RENAMED
File without changes
lite/assets/js/main.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function load_scripts_and_css(a){var b={};jQuery.each(a.css,function(a,c){b["ig_css_"+a]=1}),jQuery.each(a.scripts,function(a,c){b["ig_script_"+a]=1});var c=function(c){var d=c.target.id||"";""!=d&&b.hasOwnProperty(d)&&delete b[d],jQuery.isEmptyObject(b)&&(jQuery(window).trigger("scripts_loaded.icegram"),jQuery(function(){window.icegram=new Icegram,window.icegram.init(a),jQuery("body").addClass("ig_"+icegram_pre_data.post_obj.device),icegram_timing.end=Date.now()}))};jQuery.each(a.css,function(a,b){jQuery("<link>").attr("type","text/css").attr("rel","stylesheet").attr("id","ig_css_"+a).attr("media","all").appendTo("head").on("load",c).attr("href",b)});var d=a.scripts.shift();jQuery("<script>").attr("type","text/javascript").attr("id","ig_script_0").appendTo("body").on("load",function(b){c(b),jQuery.each(a.scripts,function(a,b){jQuery("<script>").attr("type","text/javascript").attr("id","ig_script_"+(a+1)).appendTo("body").on("load",c).attr("src",b)})}).attr("src",d)}try{var icegram_data,icegram_timing={};icegram_pre_data.post_obj.referral_url=window.location.href,icegram_timing.start=Date.now(),"yes"===icegram_pre_data.post_obj.cache_compatibility?(jQuery.ajax({url:icegram_pre_data.ajax_url,type:"POST",async:!0,cache:!1,data:icegram_pre_data.post_obj,dataType:"json",success:function(a){a?(icegram_data=a,load_scripts_and_css(icegram_data)):jQuery(".ig_inline_container:empty").remove()},error:function(a){}}),jQuery(window).on("init.icegram",function(a,b){"undefined"!=typeof b&&"undefined"!=typeof b.messages&&jQuery.each(b.messages,function(a,b){b.data.assets&&(jQuery.each(b.data.assets.styles||[],function(a,b){var c=jQuery("<div/>").html(b).find("link").attr("href");c&&0==jQuery('link[href="'+c+'"]').length&&jQuery("body").append(b)}),jQuery.each(b.data.assets.scripts||[],function(a,b){var c=jQuery("<div/>").html("<script "+b).find("script").attr("src");c&&0==jQuery('script[src="'+c+'"]').length&&jQuery("body").append("<script "+b)}))})})):"undefined"!=typeof icegram_data&&load_scripts_and_css(icegram_data),jQuery(window).on("init.icegram",function(a,b){"undefined"!=typeof b&&"undefined"!=typeof b.messages&&jQuery.each(b.messages,function(a,b){"yes"==b.data.use_custom_code&&"undefined"!=typeof b.data.custom_js&&jQuery("body").append(b.data.custom_js)}),jQuery("body").find(".trigger_onclick").length&&jQuery.each(jQuery("body").find(".trigger_onclick"),function(a,c){var d="",e=jQuery(c).data("campaigns"),f=b.get_message_by_campaign_id(e);jQuery.each(f,function(a,b){var c=parseInt(b.data.id);d+="icegram.get_message_by_id("+c+").show();"}),jQuery(c).children().length?jQuery(c).children().attr("onclick",d):jQuery(c).attr("onclick",d)})})}catch(err){console.log(err)}
lite/class-icegram-loader.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ if ( ! class_exists( 'Icegram_Loader' ) ) {
8
+
9
+ class Icegram_Loader {
10
+ /**
11
+ * IG instance
12
+ *
13
+ *
14
+ * @var Icegram_Loader The one true Icegram_Loader
15
+ *
16
+ */
17
+ private static $instance;
18
+
19
+ /**
20
+ * Return a true instance of a class
21
+ *
22
+ * @return Icegram_Loader
23
+ *
24
+ * @since 1.11.0
25
+ */
26
+ public static function instance() {
27
+
28
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Icegram_Loader ) ) {
29
+ self::$instance = new Icegram_Loader();
30
+ }
31
+
32
+ return self::$instance;
33
+ }
34
+
35
+ /**
36
+ * Load required files
37
+ *
38
+ * @param string $plugin_path Plugin path from which files to load.
39
+ *
40
+ * @since 1.11.0
41
+ */
42
+ public function load_dependencies( $plugin_path = '' ) {
43
+
44
+ if ( ! empty( $plugin_path ) ) {
45
+
46
+ $files_to_load = array(
47
+ $plugin_path . 'plus/icegram-engage.php',
48
+ );
49
+
50
+ foreach ( $files_to_load as $file ) {
51
+ if ( is_file( $file ) ) {
52
+ require_once $file;
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ }
59
+ }
lite/class-icegram.php ADDED
@@ -0,0 +1,2080 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Main class Icegram
9
+ */
10
+ if ( ! class_exists( 'Icegram' ) ) {
11
+ class Icegram {
12
+
13
+ var $plugin_url;
14
+ var $plugin_path;
15
+ var $version;
16
+ var $_wpautop_tags;
17
+ var $message_types;
18
+ var $message_type_objs;
19
+ var $shortcode_instances;
20
+ var $available_headlines;
21
+ var $mode;
22
+ var $cache_compatibility;
23
+
24
+ public static $current_page_id;
25
+
26
+ public function __construct() {
27
+ global $ig_feedback, $ig_tracker;
28
+
29
+ $this->version = IG_PLUGIN_VERSION;
30
+ $this->shortcode_instances = array();
31
+ $this->mode = 'local';
32
+ $this->plugin_url = untrailingslashit( plugins_url( '/', __FILE__ ) );
33
+ $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) );
34
+ $this->include_classes( IG_FEEDBACK_TRACKER_VERSION );
35
+ $this->cache_compatibility = get_option( 'icegram_cache_compatibility', 'no' );
36
+
37
+ if ( is_admin() ) {
38
+ $ig_feedback->render_deactivate_feedback();
39
+ }
40
+
41
+ if ( is_admin() && current_user_can( 'edit_posts' ) ) {
42
+ $ig_campaign_admin = Icegram_Campaign_Admin::getInstance();
43
+ $ig_message_admin = Icegram_Message_Admin::getInstance();
44
+ add_action( 'admin_enqueue_scripts', array( &$this, 'enqueue_admin_styles_and_scripts' ) );
45
+ add_action( 'admin_print_styles', array( &$this, 'remove_preview_button' ) );
46
+ add_filter( 'post_row_actions', array( &$this, 'remove_row_actions' ), 10, 2 );
47
+
48
+ add_action( 'admin_menu', array( &$this, 'admin_menus' ) );
49
+ add_action( 'admin_init', array( &$this, 'welcome' ) );
50
+ add_action( 'admin_init', array( &$this, 'dismiss_admin_notice' ) );
51
+
52
+ add_action( 'admin_init', array( &$this, 'import_gallery_item' ) );
53
+
54
+ add_action( 'icegram_settings_after', array( &$this, 'klawoo_subscribe_form' ) );
55
+ add_action( 'icegram_about_changelog', array( &$this, 'klawoo_subscribe_form' ) );
56
+ add_action( 'icegram_settings_after', array( &$this, 'icegram_houskeeping' ) );
57
+ add_action( 'admin_notices', array( &$this, 'add_admin_notices' ) );
58
+ add_filter( 'plugin_action_links', array( $this, 'ig_plugin_settings_link' ), 10, 2 );
59
+ } else {
60
+ add_action( 'wp_footer', array( &$this, 'icegram_load_data' ) );
61
+ }
62
+ if ( $this->cache_compatibility === 'no' ) {
63
+ add_action( 'wp_footer', array( &$this, 'display_messages' ) );
64
+ }
65
+ add_shortcode( 'icegram', array( &$this, 'execute_shortcode' ) );
66
+ add_shortcode( 'ig_form', array( &$this, 'execute_form_shortcode' ) );
67
+ // WPML compatibility
68
+ add_filter( 'icegram_identify_current_page', array( &$this, 'wpml_get_parent_id' ), 10 );
69
+
70
+ add_filter( 'icegram_branding_data', array( &$this, 'branding_data_remove' ), 10 );
71
+ add_action( 'wp_enqueue_scripts', array( &$this, 'identify_current_page' ) );
72
+ add_filter( 'icegram_get_valid_campaigns_sql', array( &$this, 'append_to_valid_campaigns_sql' ), 10, 2 );
73
+ add_action( 'icegram_print_js_css_data', array( &$this, 'print_js_css_data' ), 10, 1 );
74
+ // common
75
+ add_action( 'init', array( &$this, 'register_campaign_post_type' ) );
76
+ add_action( 'init', array( &$this, 'register_message_post_type' ) );
77
+
78
+ add_action( 'icegram_loaded', array( &$this, 'load_compat_classes' ) );
79
+
80
+ // execute shortcode in sidebar
81
+ add_filter( 'widget_text', array( &$this, 'ig_widget_text_filter' ) );
82
+
83
+ add_filter( 'rainmaker_validate_request', array( &$this, 'form_submission_validate_request' ), 10, 2 );
84
+ add_filter( 'icegram_data', array( $this, 'two_step_mobile_popup' ), 100, 1 );
85
+
86
+
87
+ if ( defined( 'DOING_AJAX' ) ) {
88
+ if ( $this->cache_compatibility === 'yes' ) {
89
+ add_action( 'wp_ajax_display_messages', array( &$this, 'display_messages' ) );
90
+ add_action( 'wp_ajax_nopriv_display_messages', array( &$this, 'display_messages' ) );
91
+ }
92
+ add_action( 'wp_ajax_icegram_event_track', array( &$this, 'icegram_event_track' ) );
93
+ add_action( 'wp_ajax_nopriv_icegram_event_track', array( &$this, 'icegram_event_track' ) );
94
+ add_action( 'wp_ajax_klawoo_subscribe', array( &$this, 'klawoo_subscribe' ) );
95
+ add_action( 'wp_ajax_icegram_run_housekeeping', array( &$this, 'run_housekeeping' ) );
96
+ add_action( 'wp_ajax_save_gallery_data', array( &$this, 'save_gallery_data' ) );
97
+
98
+ }
99
+
100
+
101
+ }
102
+
103
+
104
+ function ig_plugin_settings_link( $links, $file ) {
105
+ if ( $file == plugin_basename( __FILE__ ) ) {
106
+ $settings_link = '<a href="edit.php?post_type=ig_campaign&page=icegram-settings">' . __( 'Settings', 'icegram' ) . '</a>';
107
+ $support_link = '<a href="edit.php?post_type=ig_campaign&page=icegram-support">' . __( 'Support', 'icegram' ) . '</a>';
108
+ array_unshift( $links, $support_link );
109
+ array_unshift( $links, $settings_link );
110
+ }
111
+
112
+ return $links;
113
+
114
+ }
115
+
116
+ public function load_compat_classes() {
117
+ $compat_classes = (array) glob( $this->plugin_path . '/classes/compat/class-icegram-compat-*.php' );
118
+ if ( empty( $compat_classes ) ) {
119
+ return;
120
+ }
121
+
122
+ $active_plugins = (array) get_option( 'active_plugins', array() );
123
+ if ( is_multisite() ) {
124
+ $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
125
+ }
126
+ $active_plugins = array_unique( array_merge( array_values( $active_plugins ), array_keys( $active_plugins ) ) );
127
+ $active_plugins_with_slugs = array();
128
+ foreach ( $active_plugins as $key => $value ) {
129
+ $slug = dirname( $value );
130
+ if ( $slug == '.' ) {
131
+ unset( $active_plugins[ $key ] );
132
+ } else {
133
+ $active_plugins[ $key ] = $slug;
134
+ }
135
+ }
136
+
137
+ foreach ( $compat_classes as $file ) {
138
+ if ( is_file( $file ) ) {
139
+ $slug = str_replace( 'class-icegram-compat-', '', str_replace( ".php", "", basename( $file ) ) );
140
+ if ( in_array( $slug, $active_plugins ) ) {
141
+ include_once( $file );
142
+ $class_name = 'Icegram_Compat_' . str_replace( '-', '_', $slug );
143
+ if ( class_exists( $class_name ) ) {
144
+ new $class_name();
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ /**
152
+ * Show promotion
153
+ */
154
+ public function add_admin_notices() {
155
+ global $icegram;
156
+
157
+ $screen = get_current_screen();
158
+ if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_message', 'edit-ig_campaign' ), true ) ) {
159
+ return;
160
+ }
161
+
162
+ if ( ! $icegram->is_premium_installed() ) {
163
+ include_once( 'ig-offer.php' );
164
+ }
165
+
166
+ }
167
+
168
+ public function dismiss_admin_notice() {
169
+ if ( isset( $_GET['ig_dismiss_admin_notice'] ) && $_GET['ig_dismiss_admin_notice'] == '1' && isset( $_GET['ig_option_name'] ) ) {
170
+ $option_name = sanitize_text_field( $_GET['ig_option_name'] );
171
+ update_option( $option_name . '_icegram', 'yes', false );
172
+
173
+ //BFCM 2020 offer
174
+ if ( 'ig_offer_bfcm_2020' === $option_name ) {
175
+ $url = "https://www.icegram.com/pricing/?utm_source=in_app&utm_medium=ig_banner&utm_campaign=offer_bfcm_2020";
176
+ header( "Location: {$url}" );
177
+ exit();
178
+ } else {
179
+ $referer = wp_get_referer();
180
+ wp_safe_redirect( $referer );
181
+ exit();
182
+ }
183
+ }
184
+ }
185
+
186
+ public function klawoo_subscribe_form() {
187
+ ?>
188
+ <div class="wrap">
189
+ <?php
190
+ if ( stripos( get_current_screen()->base, 'settings' ) !== false ) {
191
+ echo "<h2>" . __( 'Free Add-ons, Proven Marketing Tricks and Updates', 'icegram' ) . "</h2>";
192
+ }
193
+ $current_user = wp_get_current_user();
194
+ $customer_email = $current_user->user_email;
195
+ ?>
196
+ <table class="form-table">
197
+ <tr>
198
+ <th scope="row"><?php _e( 'Get add-ons and tips...', 'icegram' ) ?></th>
199
+ <td>
200
+ <form name="klawoo_subscribe" action="#" method="POST" accept-charset="utf-8">
201
+ <input class="ltr" type="text" name="name" id="name" placeholder="Name"/>
202
+ <input class="regular-text ltr" type="text" name="email" id="email" placeholder="Email" value="<?php echo $customer_email ?>"/>
203
+ <input type="hidden" name="list" value="7I763v6Ldrs3YhJeee5EOgFA"/>
204
+ <input type="submit" name="submit" id="submit" class="button button-primary" value="Subscribe">
205
+ <br><br>
206
+ <input type="checkbox" name="es-gdpr-agree" id="es-gdpr-agree" value="1" required="required">
207
+ <label for="es-gdpr-agree"><?php echo sprintf( __( 'I have read and agreed to our %s.', 'icegram' ), '<a href="https://www.icegram.com/privacy-policy/" target="_blank">' . __( 'Privacy Policy', 'icegram' ) . '</a>' ); ?></label>
208
+ <br>
209
+ </form>
210
+ <div id="klawoo_response"></div>
211
+ </td>
212
+ </tr>
213
+ </table>
214
+ </div>
215
+ <script type="text/javascript">
216
+ jQuery(function () {
217
+ jQuery("form[name=klawoo_subscribe]").submit(function (e) {
218
+ e.preventDefault();
219
+
220
+ jQuery('#klawoo_response').html('');
221
+ params = jQuery("form[name=klawoo_subscribe]").serializeArray();
222
+ params.push({name: 'action', value: 'klawoo_subscribe'});
223
+
224
+ jQuery.ajax({
225
+ method: 'POST',
226
+ type: 'text',
227
+ url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
228
+ data: params,
229
+ success: function (response) {
230
+ if (response != '') {
231
+ jQuery('#klawoo_response').html(response);
232
+ } else {
233
+ jQuery('#klawoo_response').html('error!');
234
+ }
235
+ }
236
+ });
237
+ });
238
+ });
239
+ </script>
240
+ <?php
241
+ }
242
+
243
+
244
+ public function klawoo_subscribe() {
245
+ $url = 'http://app.klawoo.com/subscribe';
246
+
247
+ if ( ! empty( $_POST ) ) {
248
+ $params = $_POST;
249
+ } else {
250
+ exit();
251
+ }
252
+ $method = 'POST';
253
+ $qs = http_build_query( $params );
254
+
255
+ $options = array(
256
+ 'timeout' => 15,
257
+ 'method' => $method
258
+ );
259
+
260
+ if ( $method == 'POST' ) {
261
+ $options['body'] = $qs;
262
+ } else {
263
+ if ( strpos( $url, '?' ) !== false ) {
264
+ $url .= '&' . $qs;
265
+ } else {
266
+ $url .= '?' . $qs;
267
+ }
268
+ }
269
+
270
+ $response = wp_remote_request( $url, $options );
271
+ if ( wp_remote_retrieve_response_code( $response ) == 200 ) {
272
+ $data = $response['body'];
273
+ if ( $data != 'error' ) {
274
+
275
+ $message_start = substr( $data, strpos( $data, '<body>' ) + 6 );
276
+ $remove = substr( $message_start, strpos( $message_start, '</body>' ) );
277
+ $message = trim( str_replace( $remove, '', $message_start ) );
278
+ echo( $message );
279
+ exit();
280
+ }
281
+ }
282
+ exit();
283
+ }
284
+
285
+ public function icegram_houskeeping() {
286
+ ?>
287
+ <div class="wrap">
288
+ <?php
289
+ if ( stripos( get_current_screen()->base, 'settings' ) !== false ) {
290
+ ?>
291
+ <form name="icegram_housekeeping" action="#" method="POST" accept-charset="utf-8">
292
+ <h2><?php _e( 'Housekeeping', 'icegram' ) ?></h2>
293
+ <p class="ig_housekeeping">
294
+ <label for="icegram_remove_shortcodes">
295
+ <input type="checkbox" name="icegram_remove_shortcodes" value="yes"/>
296
+ <?php _e( 'Remove all Icegram shortcodes', 'icegram' ); ?>
297
+ </label>
298
+ <br/><br/>
299
+ <label for="icegram_remove_all_data">
300
+ <input type="checkbox" name="icegram_remove_all_data" value="yes"/>
301
+ <?php _e( 'Remove all Icegram campaigns and messages', 'icegram' ); ?>
302
+ </label>
303
+ <br/><br/>
304
+ <img alt="" src="<?php echo admin_url( 'images/wpspin_light.gif' ) ?>" class="ig_loader" style="vertical-align:middle;display:none"/>
305
+ <input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e( 'Clean Up', 'icegram' ); ?>">
306
+ <div id="icegram_housekeeping_response"></div>
307
+ </p>
308
+ </form>
309
+
310
+ </div>
311
+ <script type="text/javascript">
312
+ jQuery(function () {
313
+ jQuery("form[name=icegram_housekeeping]").submit(function (e) {
314
+ if (confirm("<?php _e( 'You won\'t be able to recover this data once you proceed. Do you really want to perform this action?', 'icegram' ); ?>") == true) {
315
+ e.preventDefault();
316
+ jQuery('.ig_loader').show();
317
+ jQuery('#icegram_housekeeping_response').text("");
318
+ params = jQuery("form[name=icegram_housekeeping]").serializeArray();
319
+ params.push({name: 'action', value: 'icegram_run_housekeeping'});
320
+ params.push({name: 'security', value: '<?php echo wp_create_nonce( 'ig_run_housekeeping' ); ?>'});
321
+
322
+ jQuery.ajax({
323
+ method: 'POST',
324
+ type: 'text',
325
+ url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
326
+ data: params,
327
+ success: function (response) {
328
+ jQuery('.ig_loader').hide();
329
+ jQuery('#icegram_housekeeping_response').text("<?php _e( 'Done!', 'icegram' ); ?>");
330
+ }
331
+ });
332
+ }
333
+ });
334
+ });
335
+ </script>
336
+ <?php
337
+ }
338
+ }
339
+
340
+ public function run_housekeeping() {
341
+ check_ajax_referer( 'ig_run_housekeeping', 'security' );
342
+ global $wpdb, $current_user;
343
+ $params = $_POST;
344
+ $_POST = array();
345
+ if ( current_user_can( 'manage_options' ) && ! empty( $params['icegram_remove_shortcodes'] ) && $params['icegram_remove_shortcodes'] == 'yes' ) {
346
+ // first get all posts with [icegram] shortcode in them
347
+ $sql = "SELECT * FROM `$wpdb->posts` WHERE `post_content` LIKE '%[icegram %]%' and `post_type` != 'revision' ";
348
+ $posts = $wpdb->get_results( $sql, OBJECT );
349
+ if ( ! empty( $posts ) && is_array( $posts ) ) {
350
+ foreach ( $posts as $post ) {
351
+ $post_content = $post->post_content;
352
+ // remove shortcode with regexp now
353
+ $re = "/\\[icegram(.)*\\]/i";
354
+ $post_content = preg_replace( $re, '', $post_content );
355
+ // save post content back
356
+ if ( $post_content && $post_content != $post->post_content ) {
357
+ wp_update_post( array(
358
+ 'ID' => $post->ID,
359
+ 'post_content' => $post_content
360
+ ) );
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ if ( ! empty( $params['icegram_remove_all_data'] ) && $params['icegram_remove_all_data'] == 'yes' ) {
367
+ $posts = get_posts( array( 'post_type' => array( 'ig_campaign', 'ig_message' ) ) );
368
+ if ( ! empty( $posts ) && is_array( $posts ) ) {
369
+ foreach ( $posts as $post ) {
370
+ wp_delete_post( $post->ID, true );
371
+ }
372
+ }
373
+ do_action( 'icegram_remove_all_data' );
374
+ }
375
+ $_POST = $params;
376
+ }
377
+
378
+ public function icegram_event_track() {
379
+ if ( ! empty( $_POST['ig_local_url_cs'] ) && isset( $_SERVER['HTTP_ORIGIN'] ) ) {
380
+ $parts = parse_url( $_POST['ig_local_url_cs'] );
381
+ $base_url = $parts["scheme"] . "://" . $parts["host"];
382
+ header( 'Access-Control-Allow-Origin: ' . $base_url );
383
+ header( 'Access-Control-Allow-Credentials: true' );
384
+ }
385
+
386
+ if ( ! empty( $_POST['event_data'] ) ) {
387
+ foreach ( $_POST['event_data'] as $event ) {
388
+ switch ( $event['type'] ) {
389
+ case 'shown':
390
+ if ( is_array( $event['params'] ) && ! empty( $event['params']['message_id'] ) ) {
391
+ $messages_shown[] = $event['params']['message_id'];
392
+ if ( ! empty( $event['params']['expiry_time'] ) ) {
393
+ if ( $event['params']['expiry_time'] == 'today' ) {
394
+ $event['params']['expiry_time'] = strtotime( '+1 day', mktime( 0, 0, 0 ) );
395
+ } elseif ( $event['params']['expiry_time'] == 'current_session' ) {
396
+ $event['params']['expiry_time'] = 0;
397
+ } else {
398
+ $event['params']['expiry_time'] = strtotime( $event['params']['expiry_time'] );
399
+ }
400
+
401
+ $event['default'] = true;
402
+ $event = apply_filters( 'icegram_check_event_track', $event );
403
+ if ( $event['default'] ) {
404
+ setcookie( 'icegram_campaign_shown_' . floor( $event['params']['campaign_id'] ), true, $event['params']['expiry_time'], '/' );
405
+ }
406
+ }
407
+ }
408
+ break;
409
+ case 'clicked':
410
+ if ( is_array( $event['params'] ) && ! empty( $event['params']['message_id'] ) ) {
411
+ $messages_clicked[] = $event['params']['message_id'];
412
+ if ( ! empty( $event['params']['expiry_time_clicked'] ) ) {
413
+ if ( $event['params']['expiry_time_clicked'] == 'today' ) {
414
+ $event['params']['expiry_time_clicked'] = strtotime( '+1 day', mktime( 0, 0, 0 ) );
415
+ } elseif ( $event['params']['expiry_time_clicked'] == 'current_session' ) {
416
+ $event['params']['expiry_time_clicked'] = 0;
417
+ } else {
418
+ $event['params']['expiry_time_clicked'] = strtotime( $event['params']['expiry_time_clicked'] );
419
+ }
420
+ //setcookie('icegram_messages_clicked_'.$event['params']['message_id'],true , $event['params']['expiry_time_clicked'] , '/' );
421
+ setcookie( 'icegram_campaign_clicked_' . floor( $event['params']['campaign_id'] ), true, $event['params']['expiry_time_clicked'], '/' );
422
+ }
423
+ }
424
+ break;
425
+
426
+ default:
427
+ break;
428
+ }
429
+
430
+ // Emit event for other plugins to handle it
431
+ do_action( 'icegram_event_track', $event );
432
+ do_action( 'icegram_event_track_' . $event['type'], $event['params'] );
433
+ }
434
+ }
435
+ exit();
436
+ }
437
+
438
+ static function activate() {
439
+ // Redirect to welcome screen
440
+ delete_option( '_icegram_activation_redirect' );
441
+ add_option( '_icegram_activation_redirect', 'pending' );
442
+
443
+ do_action( 'ig_activated' );
444
+ }
445
+
446
+ static function deactivate() {
447
+
448
+ do_action( 'ig_deactivated' );
449
+ }
450
+
451
+ public function welcome() {
452
+
453
+ $this->db_update();
454
+ // Bail if no activation redirect transient is set
455
+ if ( false === get_option( '_icegram_activation_redirect' ) ) {
456
+ return;
457
+ }
458
+
459
+ // Delete the redirect transient
460
+ delete_option( '_icegram_activation_redirect' );
461
+
462
+ wp_redirect( admin_url( 'edit.php?post_type=ig_campaign&page=icegram-support' ) );
463
+ exit;
464
+ }
465
+
466
+ function db_update() {
467
+ $current_db_version = get_option( 'icegram_db_version' );
468
+ if ( ! $current_db_version || version_compare( $current_db_version, '1.2', '<' ) ) {
469
+ include( 'updates/icegram-update-1.2.php' );
470
+ }
471
+ }
472
+
473
+ public function admin_menus() {
474
+
475
+ $welcome_page_title = __( 'Welcome to Icegram', 'icegram' );
476
+ $gallery_page_title = '<span style="color:#f18500;font-weight:bolder;">' . __( 'Gallery', 'icegram' ) . '<span>';
477
+ $gallery = add_submenu_page( 'edit.php?post_type=ig_campaign', $gallery_page_title, $gallery_page_title, 'manage_options', 'icegram-gallery', array( $this, 'gallery_screen' ) );
478
+ $settings_page_title = __( 'Settings', 'icegram' );
479
+ $upgrade_page_title = '<span style="color:#f18500;font-weight:bolder;">' . __( 'Upgrade', 'icegram' ) . '</span>';
480
+
481
+ $menu_title = __( 'Docs & Support', 'icegram' );
482
+ $about = add_submenu_page( 'edit.php?post_type=ig_campaign', $welcome_page_title, $menu_title, 'manage_options', 'icegram-support', array( $this, 'about_screen' ) );
483
+ $settings = add_submenu_page( 'edit.php?post_type=ig_campaign', $settings_page_title, $settings_page_title, 'manage_options', 'icegram-settings', array( $this, 'settings_screen' ) );
484
+ $upgrade = add_submenu_page( 'edit.php?post_type=ig_campaign', $upgrade_page_title, $upgrade_page_title, 'manage_options', 'icegram-upgrade', array( $this, 'upgrade_screen' ) );
485
+
486
+
487
+ add_action( 'admin_print_styles-' . $about, array( $this, 'admin_css' ) );
488
+ add_action( 'admin_print_styles-' . $settings, array( $this, 'admin_css' ) );
489
+ add_action( 'admin_print_styles-' . $upgrade, array( $this, 'admin_css' ) );
490
+
491
+ }
492
+
493
+ public function admin_css() {
494
+ wp_enqueue_style( 'icegram-activation', $this->plugin_url . '/assets/css/admin.min.css' );
495
+ }
496
+
497
+ public function about_screen() {
498
+
499
+ // Import data if not done already
500
+ if ( false === get_option( 'icegram_sample_data_imported' ) ) {
501
+ $this->import_sample_data( $this->get_sample_data() );
502
+ }
503
+
504
+ include( 'about-icegram.php' );
505
+ }
506
+
507
+ public function settings_screen() {
508
+ include( 'settings.php' );
509
+ }
510
+
511
+ public function upgrade_screen() {
512
+ // include ( 'addons.php' );
513
+ }
514
+
515
+ public function check_for_gallery_items( $force_update = false ) {
516
+ global $icegram;
517
+ if ( $force_update === true || false === ( $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' ) ) ) {
518
+ // $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?per_page=200&page=1';
519
+ $url_for_gallery_item = 'https://www.icegram.com/gallery/wp-json/wp/v2/galleryitem?filter[posts_per_page]=200';
520
+ $ig_gallery_json = wp_remote_get( $url_for_gallery_item );
521
+ if ( ! is_wp_error( $ig_gallery_json ) ) {
522
+ $ig_gallery_json = ( wp_remote_retrieve_body( $ig_gallery_json ) );
523
+ if ( ! empty( $ig_gallery_json ) ) {
524
+ update_option( 'ig_last_gallery_items', $ig_gallery_json );
525
+ }
526
+ } else {
527
+ update_option( 'requested_gallery_item_with_ajax', 'yes' );
528
+ ?>
529
+ <script type="text/javascript">
530
+ jQuery(document).ready(function () {
531
+ jQuery.ajax({
532
+ url: '<?php echo esc_url( $url_for_gallery_item ); ?>',
533
+ method: 'GET',
534
+ dataType: 'json',
535
+ success: function (response) {
536
+ if (response != undefined && response != '') {
537
+ //ajax to save data
538
+ jQuery.ajax({
539
+ url: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>',
540
+ method: 'POST',
541
+ dataType: 'json',
542
+ data: {
543
+ action: 'save_gallery_data',
544
+ galleryitems: JSON.stringify(response),
545
+ security: '<?php echo wp_create_nonce( 'gallery-save-data' ); // WPCS: XSS ok. ?>'
546
+ },
547
+ success: function (res) {
548
+ if (res != undefined && res != '' && res.success != undefined && res.success == 'yes') {
549
+ // All done.
550
+ }
551
+ }
552
+ });
553
+ }
554
+ },
555
+ error: function (response) {
556
+ console.log(response, 'res');
557
+
558
+ }
559
+ });
560
+ });
561
+ </script>
562
+ <?php }
563
+ $url_for_categories = 'https://www.icegram.com/gallery/wp-json/wp/v2/custom_cat?filter[orderby]=parent&order=desc';
564
+ $options = array(
565
+ 'timeout' => 15,
566
+ 'method' => 'GET',
567
+ 'body' => ''
568
+ );
569
+ $response = wp_remote_request( $url_for_categories, $options );
570
+ $response_code = wp_remote_retrieve_response_code( $response );
571
+ // $body = json_decode($response['body'] ,true);
572
+ if ( $response_code == 200 ) {
573
+ $categories = json_decode( $response['body'], true );
574
+ $cat_list = array();
575
+ foreach ( $categories as $category ) {
576
+ if ( $category['parent'] == 0 ) {
577
+ $cat_list[ $category['term_id'] ]['name'] = $category['name'];
578
+ $cat_list[ $category['term_id'] ]['slug'] = $category['slug'];
579
+ $cat_list[ $category['term_id'] ]['term_id'] = $category['term_id'];
580
+ } else {
581
+ $cat_list[ $category['parent'] ]['list'][] = $category;
582
+ }
583
+ }
584
+ $featured_cat = $cat_list[53];
585
+ unset( $cat_list[53] );
586
+ array_unshift( $cat_list, $featured_cat );
587
+ update_option( 'ig_cat_list', $cat_list );
588
+ } else {
589
+ ?>
590
+ <script type="text/javascript">
591
+ jQuery(document).ready(function () {
592
+ jQuery.ajax({
593
+ url: '<?php echo esc_url( $url_for_categories ); ?>',
594
+ method: 'GET',
595
+ dataType: 'json',
596
+ success: function (response) {
597
+
598
+ if (response != undefined && response != '') {
599
+ //ajax to save data
600
+ jQuery.ajax({
601
+ url: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>',
602
+ method: 'POST',
603
+ dataType: 'json',
604
+ data: {
605
+ action: 'save_gallery_data',
606
+ categories: response,
607
+ security: '<?php echo wp_create_nonce( 'gallery-save-data' ); // WPCS: XSS ok. ?>'
608
+ },
609
+ success: function (res) {
610
+ if (res != undefined && res != '' && res.success != undefined && res.success == 'yes') {
611
+ // All done.
612
+ }
613
+ }
614
+ });
615
+ }
616
+ },
617
+ error: function (response) {
618
+ console.log(response, 'res');
619
+
620
+ }
621
+ });
622
+ });
623
+ </script>
624
+ <?php
625
+ }
626
+ set_transient( 'ig_last_gallery_item_update', current_time( 'timestamp' ), 24 * HOUR_IN_SECONDS ); // 1 day
627
+ }
628
+ }
629
+
630
+ public function save_gallery_data() {
631
+ check_ajax_referer( 'gallery-save-data', 'security' );
632
+ if ( current_user_can( 'manage_options' ) ) {
633
+ if ( ! empty( $_REQUEST ) && ! empty( $_REQUEST['galleryitems'] ) ) {
634
+ $ig_gallery_json = stripslashes( $_REQUEST['galleryitems'] );
635
+ update_option( 'ig_last_gallery_items', $ig_gallery_json );
636
+ }
637
+ if ( ! empty( $_REQUEST ) && ! empty( $_REQUEST['categories'] ) ) {
638
+ $categories = $_REQUEST['categories'];
639
+ $cat_list = array();
640
+ foreach ( $categories as $category ) {
641
+ if ( $category['parent'] == 0 ) {
642
+ $cat_list[ $category['term_id'] ]['name'] = $category['name'];
643
+ $cat_list[ $category['term_id'] ]['slug'] = $category['slug'];
644
+ } else {
645
+ $cat_list[ $category['parent'] ]['list'][] = $category;
646
+ }
647
+ }
648
+ update_option( 'ig_cat_list', $cat_list );
649
+ }
650
+ }
651
+
652
+ }
653
+
654
+ public static function gallery_screen() {
655
+ global $icegram;
656
+ //check for new gallery item
657
+ $ig_last_gallery_item_update = get_transient( 'ig_last_gallery_item_update' );
658
+
659
+ if ( empty( $ig_last_gallery_item_update ) ) {
660
+ $icegram->check_for_gallery_items( true );
661
+ }
662
+ $ig_gallery_items = get_option( 'ig_last_gallery_items', true );
663
+ $cat_list = get_option( 'ig_cat_list', true );
664
+ include( 'gallery.php' );
665
+ wp_register_script( 'ig_gallery_js', $icegram->plugin_url . '/assets/js/gallery.min.js', array( 'jquery', 'backbone', 'wp-backbone', 'wp-a11y', 'wp-util' ), $icegram->version, true );
666
+ if ( ! wp_script_is( 'ig_gallery_js' ) ) {
667
+ wp_enqueue_script( 'ig_gallery_js' );
668
+ $imported_gallery_items = get_option( 'ig_imported_gallery_items', true );
669
+ $ig_plan = get_option( 'ig_engage_plan' );
670
+ $ig_plan = ( ! empty( $ig_plan ) ) ? ( ( $ig_plan == 'plus' ) ? 1 : ( ( $ig_plan == 'pro' ) ? 2 : ( ( $ig_plan == 'max' ) ? 3 : 0 ) ) ) : 0;
671
+ $ig_gallery_json =
672
+ wp_localize_script( 'ig_gallery_js', '_wpThemeSettings', array(
673
+ 'themes' => json_decode( $ig_gallery_items, true ),
674
+ 'settings' => array(
675
+ 'canInstall' => ( ! is_multisite() && ( 'install_themes' ) ),
676
+ 'isInstall' => true,
677
+ 'installURI' => ( ! is_multisite() && ( 'install_themes' ) ) ? admin_url( 'theme-install.php' ) : null,
678
+ 'confirmDelete' => __( "Are you sure you want to delete this theme?\n\nClick 'Cancel' to go back, 'OK' to confirm the delete.", 'icegram' ),
679
+ 'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ),
680
+ 'ig_plan' => $ig_plan,
681
+ 'cat_list' => $cat_list
682
+ ),
683
+ 'l10n' => array(
684
+ 'addNew' => __( 'Add New Gallery Templates', 'icegram' ),
685
+ 'search' => __( 'Search Gallery Templates', 'icegram' ),
686
+ 'searchPlaceholder' => __( 'Search Design Templates', 'icegram' ), // placeholder (no ellipsis)
687
+ 'themesFound' => __( 'Number of Gallery Templates found: %d', 'icegram' ),
688
+ 'noThemesFound' => __( 'No Gallery Templates found. Try a different search.', 'icegram' ),
689
+ ),
690
+ 'installedThemes' => $imported_gallery_items
691
+ ) );
692
+ }
693
+ }
694
+
695
+ public function branding_data_remove( $icegram_branding_data ) {
696
+ if ( ! empty( $icegram_branding_data ) && 'yes' != get_option( 'icegram_share_love', 'no' ) ) {
697
+ $icegram_branding_data['powered_by_logo'] = '';
698
+ $icegram_branding_data['powered_by_text'] = '';
699
+ }
700
+
701
+ return $icegram_branding_data;
702
+ }
703
+
704
+ //Execute Form shortcode
705
+ function execute_form_shortcode( $atts = array() ) {
706
+ return '<div class="ig_form_container layout_inline"></div>';
707
+ }
708
+
709
+ function execute_shortcode( $atts = array(), $content = null ) {
710
+ // When shortcode is called, it will only prepare an array with conditions
711
+ // And add a placeholder div
712
+ // Display will happen in footer via display_messages()
713
+ $i = count( $this->shortcode_instances );
714
+ $this->shortcode_instances[ $i ] = shortcode_atts( array(
715
+ 'campaigns' => '',
716
+ 'messages' => '',
717
+ 'skip_others' => 'no'
718
+ ), $atts );
719
+
720
+ $class[] = "ig_shortcode_container";
721
+ $html[] = "<div id='icegram_shortcode_{$i}'";
722
+ if ( ! empty( $atts['campaigns'] ) && ! empty( $content ) ) {
723
+ $this->shortcode_instances[ $i ]['with_content'] = true;
724
+ $class[] = "trigger_onclick";
725
+ }
726
+ foreach ( $atts as $key => $value ) {
727
+ $value = str_replace( ",", " ", $value );
728
+ $html[] = " data-{$key}=\"" . htmlentities( $value ) . "\" ";
729
+ }
730
+ $class = implode( " ", $class );
731
+ $html[] = "class='" . $class . "' >" . $content . "</div>";
732
+
733
+ return implode( " ", $html );
734
+ }
735
+
736
+ // Do not index Icegram campaigns / messages...
737
+ // Not using currently - made custom post types non public...
738
+ function icegram_load_data() {
739
+ global $post;
740
+ $icegram_pre_data['ajax_url'] = admin_url( 'admin-ajax.php' );
741
+ $icegram_pre_data['post_obj'] = $_GET;
742
+ $icegram_pre_data['post_obj']['is_home'] = ( is_home() || is_front_page() ) ? true : false;
743
+ $icegram_pre_data['post_obj']['page_id'] = is_object( $post ) && isset( $post->ID ) ? $post->ID : 0;
744
+ $icegram_pre_data['post_obj']['action'] = 'display_messages';
745
+ $icegram_pre_data['post_obj']['shortcodes'] = $this->shortcode_instances;
746
+ $icegram_pre_data['post_obj']['cache_compatibility'] = $this->cache_compatibility;
747
+ $icegram_pre_data['post_obj']['device'] = $this->get_platform();
748
+
749
+ wp_register_script( 'icegram_main_js', $this->plugin_url . '/assets/js/main.min.js', array( 'jquery' ), $this->version, true );
750
+ if ( 'yes' === $this->cache_compatibility ) {
751
+ if ( ! wp_script_is( 'icegram_main_js' ) ) {
752
+ wp_enqueue_script( 'icegram_main_js' );
753
+ }
754
+ }
755
+ wp_localize_script( 'icegram_main_js', 'icegram_pre_data', $icegram_pre_data );
756
+ }
757
+
758
+ function display_messages() {
759
+
760
+ $skip_others = $preview_mode = false;
761
+ $campaign_ids = $message_ids = array();
762
+ $this->shortcode_instances = ( $this->cache_compatibility == 'yes' && ! empty( $_REQUEST['shortcodes'] ) ) ? $_REQUEST['shortcodes'] : $this->shortcode_instances;
763
+ // Pull in message and campaign IDs from shortcodes - if set
764
+ if ( ! empty( $this->shortcode_instances ) ) {
765
+ foreach ( $this->shortcode_instances as $i => $value ) {
766
+ $cids = array_map( 'trim', (array) explode( ',', intval( $value['campaigns'] ) ) );
767
+ $mids = array_map( 'trim', (array) explode( ',', intval( $value['messages'] ) ) );
768
+ if ( ! empty( $value['skip_others'] ) && $value['skip_others'] == 'yes' && ( ! empty( $cids ) || ! empty( $mids ) ) ) {
769
+ $skip_others = true;
770
+ }
771
+ $campaign_ids = array_merge( $campaign_ids, $cids );
772
+ $message_ids = array_merge( $message_ids, $mids );
773
+ }
774
+ }
775
+ if ( ! empty( $_REQUEST['campaign_preview_id'] ) && intval( $_REQUEST['campaign_preview_id'] ) && ( 'edit_posts' ) ) {
776
+ $campaign_ids = array( intval( $_REQUEST['campaign_preview_id'] ) );
777
+ $preview_mode = true;
778
+ }
779
+
780
+ $messages = $this->get_valid_messages( $message_ids, $campaign_ids, $preview_mode, $skip_others );
781
+
782
+ if ( empty( $messages ) ) {
783
+ //wp_die(0);
784
+ return;
785
+ }
786
+
787
+ $messages_to_show_ids = array();
788
+ foreach ( $messages as $key => $message_data ) {
789
+
790
+ if ( ! is_array( $message_data ) || empty( $message_data ) ) {
791
+ continue;
792
+ }
793
+
794
+ // Don't show a seen message again - if needed
795
+ // change to campaign targetting in v1.9.1
796
+ if ( ! empty( $message_data['id'] ) &&
797
+ empty( $_GET['campaign_preview_id'] ) &&
798
+ ! empty( $message_data['retargeting'] ) &&
799
+ $message_data['retargeting'] == 'yes'
800
+ ) {
801
+ if ( ! empty( $_COOKIE[ 'icegram_messages_shown_' . $message_data['id'] ] ) || ! empty( $_COOKIE[ 'icegram_campaign_shown_' . floor( $message_data['campaign_id'] ) ] ) ) {
802
+ unset( $messages[ $key ] );
803
+ continue;
804
+ }
805
+ }
806
+ if ( ! empty( $message_data['id'] ) &&
807
+ empty( $_GET['campaign_preview_id'] ) &&
808
+ ! empty( $message_data['retargeting_clicked'] ) &&
809
+ $message_data['retargeting_clicked'] == 'yes'
810
+ ) {
811
+ if ( ! empty( $_COOKIE[ 'icegram_messages_clicked_' . $message_data['id'] ] ) || ! empty( $_COOKIE[ 'icegram_campaign_clicked_' . floor( $message_data['campaign_id'] ) ] ) ) {
812
+ unset( $messages[ $key ] );
813
+ continue;
814
+ }
815
+ }
816
+
817
+ // Avoid showing the same message twice
818
+ if ( in_array( $message_data['id'], $messages_to_show_ids ) ) {
819
+ unset ( $messages[ $key ] );
820
+ continue;
821
+ } else {
822
+ $messages_to_show_ids[] = $message_data['id'];
823
+ }
824
+
825
+ $this->process_message_body( $messages[ $key ] );
826
+ }
827
+ if ( empty( $messages ) ) {
828
+ return;
829
+ }
830
+
831
+ // Load icegram_main_js only when the $messages are still
832
+ // not empty at this stage.
833
+ if ( ! wp_script_is( 'icegram_main_js' ) ) {
834
+ wp_enqueue_script( 'icegram_main_js' );
835
+ }
836
+
837
+ $icegram_default = apply_filters( 'icegram_branding_data',
838
+ array(
839
+ 'icon' => $this->plugin_url . '/assets/images/icegram-logo-branding-64-grey.png',
840
+ 'powered_by_logo' => $this->plugin_url . '/assets/images/icegram-logo-branding-64-grey.png',
841
+ 'powered_by_text' => __( 'Powered by Icegram', 'icegram' )
842
+ ) );
843
+ $messages = apply_filters( 'icegram_messages_to_show', $messages );
844
+ $icegram_data = apply_filters( 'icegram_data', array(
845
+ 'messages' => array_values( $messages ),
846
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
847
+ 'preview_id' => ! empty( $_GET['campaign_preview_id'] ) ? $_GET['campaign_preview_id'] : '',
848
+ 'defaults' => $icegram_default
849
+ ) );
850
+ if ( empty( $icegram_data['preview_id'] ) ) {
851
+ unset( $icegram_data['preview_id'] );
852
+ }
853
+
854
+ do_action( 'icegram_print_js_css_data', $icegram_data );
855
+
856
+
857
+ // Load CF7 & Garvity Forms CSS & JS only if form loaded
858
+ $compat_form_types = array( 'contact-form-7', 'gravityform' );
859
+
860
+ foreach ( $icegram_data['messages'] as $message_id ) {
861
+ foreach ( $compat_form_types as $type ) {
862
+ if ( strpos( $message_id['form_html_original'], $type ) ) {
863
+ do_action( 'icegram_data_printed', $type );
864
+ }
865
+ }
866
+ }
867
+ }
868
+
869
+ function two_step_mobile_popup( $icegram_data ) {
870
+
871
+ $temp = array();
872
+ foreach ( $icegram_data['messages'] as $message_id => $message ) {
873
+
874
+ if ( ! empty( $message['ig_mobile_popup'] ) && $message['ig_mobile_popup'] == true ) {
875
+ $action_bar = $message;
876
+ $action_bar['type'] = 'action-bar';
877
+ $action_bar['theme'] = 'hello';
878
+ $action_bar['position'] = '21';
879
+ $action_bar['message'] = '';
880
+ $action_bar['label'] = __( 'Show More', 'icegram' );
881
+ $action_bar['id'] = $action_bar['id'] . '_00';
882
+ $action_bar['use_custom_code'] = 'yes';
883
+ $action_bar['form_html'] = '';
884
+ $action_bar['form_html_original'] = '';
885
+ $action_bar['rainmaker_form_code'] = '';
886
+ $action_bar['link'] = '';
887
+ $action_bar['redirect_to_link'] = '';
888
+ $action_bar['cta'] = '';
889
+ $action_bar['alt_cta'] = '';
890
+ $action_bar['add_alt_cta'] = '';
891
+ $action_bar['custom_css'] = '#ig_this_message .ig_close{display:none;}';
892
+ $action_bar['custom_js'] = "<script type='text/javascript'>jQuery('#icegram_message_" . $action_bar['id'] . "').on('click', '.ig_button', function(){icegram.get_message_by_id('" . $action_bar['id'] . "').hide(); icegram.get_message_by_id('" . $message['id'] . "').show(); });</script>";
893
+ unset( $action_bar['ig_mobile_popup'] );
894
+ $temp[] = $action_bar;
895
+ }
896
+ }
897
+ $icegram_data['messages'] = array_merge( $icegram_data['messages'], $temp );
898
+ unset( $temp );
899
+
900
+ return $icegram_data;
901
+ }
902
+
903
+
904
+ function print_js_css_data( $icegram_data ) {
905
+
906
+ $this->collect_js_and_css( $icegram_data );
907
+ if ( $this->cache_compatibility === 'yes' ) {
908
+ echo json_encode( $icegram_data );
909
+ wp_die();
910
+ } else {
911
+ wp_localize_script( 'icegram_main_js', 'icegram_data', $icegram_data );
912
+ }
913
+ }
914
+
915
+ function collect_js_and_css( &$icegram_data ) {
916
+
917
+ $types_shown = array();
918
+ $scripts = array();
919
+ $css = array();
920
+ foreach ( $icegram_data['messages'] as $key => $message_data ) {
921
+ $types_shown[] = $message_data['type'];
922
+ }
923
+
924
+ $types_shown = array_unique( $types_shown );
925
+ $ver_prefix = '?var=' . $this->version;
926
+
927
+ $scripts[] = $this->plugin_url . "/assets/js/icegram.min.js" . $ver_prefix;
928
+ $css[] = $this->plugin_url . "/assets/css/frontend.min.css" . $ver_prefix;
929
+ //minify and combine only for default msg type
930
+ $ig_core_message_types = array( 'popup', 'action-bar', 'toast', 'messenger' );
931
+ // Load JS and default CSS
932
+ foreach ( $types_shown as $message_type ) {
933
+ if ( ! in_array( $message_type, $ig_core_message_types ) ) {
934
+ $scripts[] = $this->message_types[ $message_type ]['baseurl'] . "main.js" . $ver_prefix;
935
+ $css[] = $this->message_types[ $message_type ]['baseurl'] . "default.css" . $ver_prefix;
936
+ } else {
937
+ $css[] = $this->message_types[ $message_type ]['baseurl'] . 'themes/' . $message_type . ".min.css" . $ver_prefix;
938
+ }
939
+ }
940
+
941
+ //TODO :: add theme pack theme css files too.
942
+ // Load theme CSS
943
+ foreach ( $icegram_data['messages'] as $key => $message ) {
944
+ if ( ! empty( $this->message_types[ $message['type'] ]['themes'][ $message['theme'] ] ) ) {
945
+ $theme = $this->message_types[ $message['type'] ]['themes'][ $message['theme'] ]['baseurl'] . $message['theme'] . '.css' . $ver_prefix;
946
+ } else {
947
+ $theme_default = $this->message_types[ $message['type'] ] ['settings']['theme']['default'];
948
+ $theme = $this->message_types[ $message['type'] ]['themes'][ $theme_default ]['baseurl'] . $theme_default . '.css' . $ver_prefix;
949
+ $icegram_data['messages'][ $key ]['theme'] = $theme_default;
950
+ }
951
+ if ( ! preg_match( '/icegram\/message-types/i', $theme ) ) {
952
+ $css [] = $theme;
953
+ }
954
+ }
955
+ $css = array_unique( $css );
956
+ $icegram_data['scripts'] = apply_filters( 'add_icegram_script', $scripts );
957
+ $icegram_data['css'] = apply_filters( 'add_icegram_css', $css );
958
+
959
+ return $icegram_data;
960
+ }
961
+
962
+ // Process
963
+ function process_message_body( &$message_data ) {
964
+ global $wp_scripts;
965
+ global $wp_styles;
966
+
967
+ if ( $this->cache_compatibility == 'yes' ) {
968
+ $q_script = ! empty( $wp_scripts->queue ) ? $wp_scripts->queue : array();
969
+ $q_style = ! empty( $wp_styles->queue ) ? $wp_styles->queue : array();
970
+ }
971
+ $content = $message_data['message'];
972
+ $content = convert_chars( convert_smilies( wptexturize( $content ) ) );
973
+ if ( isset( $GLOBALS['wp_embed'] ) ) {
974
+ $content = $GLOBALS['wp_embed']->autoembed( $content );
975
+ }
976
+ $content = $this->after_wpautop( wpautop( $this->before_wpautop( $content ) ) );
977
+ $content = do_shortcode( shortcode_unautop( $content ) );
978
+ $message_data['message'] = $content;
979
+
980
+ //do_shortcode in headline
981
+ $message_data['headline'] = do_shortcode( shortcode_unautop( $message_data['headline'] ) );
982
+ //shortcode support for Third party forms and Rainmaker
983
+ $form_html_original = ! empty( $message_data["rainmaker_form_code"] )
984
+ ? ( '[rainmaker_form id="' . $message_data["rainmaker_form_code"] . '"]' )
985
+ : ( ! empty( $message_data['form_html_original'] ) ? $message_data['form_html_original'] : '' );
986
+ $form_html_original = ! empty( $message_data["es_form_code"] )
987
+ ? ( '[email-subscribers-form id="' . $message_data["es_form_code"] . '"]' )
988
+ : $form_html_original;
989
+
990
+ if ( ! empty( $form_html_original ) ) {
991
+ $message_data['form_html'] = do_shortcode( shortcode_unautop( $form_html_original ) );
992
+ }
993
+ //TODO :: Handle case for inline style and script
994
+ if ( $this->cache_compatibility == 'yes' ) {
995
+ $handles = ! empty( $wp_scripts->queue ) ? array_diff( $wp_scripts->queue, $q_script ) : array();
996
+ unset( $q_script );
997
+ if ( ! empty( $handles ) ) {
998
+ if ( empty( $message_data['assets'] ) ) {
999
+ $message_data['assets'] = array();
1000
+ }
1001
+
1002
+ ob_start();
1003
+ $wp_scripts->do_items( $handles );
1004
+ $message_data['assets']['scripts'] = array_filter( explode( '<script', ob_get_clean() ) );
1005
+ }
1006
+
1007
+ //TODO :: do_items if required
1008
+ $handles = ! empty( $wp_styles->queue ) ? array_diff( $wp_styles->queue, $q_style ) : array();
1009
+ unset( $q_style );
1010
+ if ( ! empty( $handles ) ) {
1011
+ if ( empty( $message_data['assets'] ) ) {
1012
+ $message_data['assets'] = array();
1013
+ }
1014
+
1015
+ foreach ( $handles as $handle ) {
1016
+ ob_start();
1017
+ $wp_styles->do_item( $handle );
1018
+ $message_data['assets']['styles'][ $handle ] = ob_get_clean();
1019
+ }
1020
+ }
1021
+ }
1022
+ }
1023
+
1024
+ function enqueue_admin_styles_and_scripts() {
1025
+
1026
+ $screen = get_current_screen();
1027
+ if ( ! in_array( $screen->id, array( 'ig_campaign', 'ig_message', 'edit-ig_campaign' ), true ) ) {
1028
+ return;
1029
+ }
1030
+
1031
+ // Register scripts
1032
+ wp_register_script( 'icegram_writepanel', $this->plugin_url . '/assets/js/admin.min.js', array( 'jquery', 'wp-color-picker' ), $this->version );
1033
+
1034
+ wp_enqueue_script( 'icegram_writepanel' );
1035
+
1036
+ $icegram_writepanel_params = array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'search_message_nonce' => wp_create_nonce( "search-messages" ), 'home_url' => home_url( '/' ) );
1037
+ $this->available_headlines = apply_filters( 'icegram_available_headlines', array() );
1038
+ $icegram_writepanel_params = array_merge( $icegram_writepanel_params, array( 'available_headlines' => $this->available_headlines ) );
1039
+
1040
+ wp_localize_script( 'icegram_writepanel', 'icegram_writepanel_params', $icegram_writepanel_params );
1041
+
1042
+ wp_enqueue_style( 'dashicons' );
1043
+ wp_enqueue_style( 'wp-color-picker' );
1044
+ wp_enqueue_style( 'icegram_admin_styles', $this->plugin_url . '/assets/css/admin.min.css', array(), $this->version );
1045
+
1046
+ if ( ! wp_script_is( 'jquery-ui-datepicker' ) ) {
1047
+ wp_enqueue_script( 'jquery-ui-datepicker' );
1048
+ }
1049
+
1050
+ }
1051
+
1052
+ //execute shortcode in text widget
1053
+ function ig_widget_text_filter( $content ) {
1054
+ if ( ! preg_match( '/\[[\r\n\t ]*icegram?[\r\n\t ].*?\]/', $content ) ) {
1055
+ return $content;
1056
+ }
1057
+
1058
+ $content = do_shortcode( $content );
1059
+
1060
+ return $content;
1061
+ }
1062
+
1063
+ public static function get_platform() {
1064
+ $mobile_detect = new Ig_Mobile_Detect();
1065
+ $mobile_detect->setUserAgent();
1066
+ if ( $mobile_detect->isMobile() ) {
1067
+ return ( $mobile_detect->isTablet() ) ? 'tablet' : 'mobile';
1068
+ } elseif ( $mobile_detect->isTablet() ) {
1069
+ return 'tablet';
1070
+ }
1071
+
1072
+ return 'laptop';
1073
+ }
1074
+
1075
+ function get_message_data( $message_ids = array(), $preview = false ) {
1076
+ global $wpdb;
1077
+ $message_data = array();
1078
+ $original_message_id_map = array();
1079
+ $meta_key = $preview ? 'icegram_message_preview_data' : 'icegram_message_data';
1080
+ $message_data_query = "SELECT post_id, meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key LIKE '$meta_key'";
1081
+ if ( ! empty( $message_ids ) && is_array( $message_ids ) ) {
1082
+ // For WPML compatibility
1083
+ if ( function_exists( 'icl_object_id' ) ) {
1084
+ $wpml_settings = get_option( 'icl_sitepress_settings' );
1085
+ $original_if_missing = ( is_array( $wpml_settings ) && array_key_exists( 'show_untranslated_blog_posts', $wpml_settings ) && ! empty( $wpml_settings['show_untranslated_blog_posts'] ) ) ? true : false;
1086
+
1087
+ foreach ( $message_ids as $i => $id ) {
1088
+ $translated = icl_object_id( $id, 'ig_message', $original_if_missing );
1089
+ $message_ids[ $i ] = $translated;
1090
+ $original_message_id_map[ $translated ] = $id;
1091
+ }
1092
+ }
1093
+ $message_ids = array_filter( array_unique( $message_ids ) );
1094
+ if ( ! empty( $message_ids ) ) {
1095
+ $message_data_query .= " AND post_id IN ( " . implode( ',', $message_ids ) . " )";
1096
+ $message_data_results = $wpdb->get_results( $message_data_query, 'ARRAY_A' );
1097
+ foreach ( $message_data_results as $message_data_result ) {
1098
+ $data = maybe_unserialize( $message_data_result['meta_value'] );
1099
+ if ( ! empty( $data ) ) {
1100
+ $message_data[ $message_data_result['post_id'] ] = $data;
1101
+ // For WPML compatibility
1102
+ if ( ! empty( $original_message_id_map[ $message_data_result['post_id'] ] ) ) {
1103
+ $message_data[ $message_data_result['post_id'] ]['original_message_id'] = $original_message_id_map[ $message_data_result['post_id'] ];
1104
+ }
1105
+ }
1106
+ }
1107
+ }
1108
+ }
1109
+
1110
+ return $message_data;
1111
+ }
1112
+
1113
+ function get_valid_messages( $message_ids = array(), $campaign_ids = array(), $preview_mode = false, $skip_others = false ) {
1114
+ list( $message_ids, $campaign_ids, $preview_mode, $skip_others ) = apply_filters( 'icegram_get_valid_messages_params', array( $message_ids, $campaign_ids, $preview_mode, $skip_others ) );
1115
+
1116
+ $valid_messages = $valid_campaigns = $message_campaign_map = array();
1117
+
1118
+ $campaign_ids = array_filter( array_unique( (array) $campaign_ids ) );
1119
+ $message_ids = array_filter( array_unique( (array) $message_ids ) );
1120
+ if ( ! empty( $campaign_ids ) ) {
1121
+ $valid_campaigns = $this->get_valid_campaigns( $campaign_ids, true, $preview_mode );
1122
+ }
1123
+
1124
+ // When skip_others is true, we won't load campaigns / messages from db
1125
+ if ( ! $skip_others && ! $preview_mode ) {
1126
+ $campaigns = $this->get_valid_campaigns();
1127
+ if ( ! empty( $campaigns ) ) {
1128
+ foreach ( $campaigns as $id => $campaign ) {
1129
+ if ( ! array_key_exists( $id, $valid_campaigns ) ) {
1130
+ $valid_campaigns[ $id ] = $campaign;
1131
+ }
1132
+ }
1133
+ }
1134
+ }
1135
+
1136
+ // Create a map to look up campaign id for a given message
1137
+ if ( ! empty( $valid_campaigns ) ) {
1138
+ foreach ( $valid_campaigns as $id => $campaign ) {
1139
+ if ( $preview_mode ) {
1140
+ $campaign->messages = get_post_meta( $id, 'campaign_preview', true );
1141
+ }
1142
+ if ( ! empty( $campaign->messages ) ) {
1143
+ foreach ( $campaign->messages as $msg ) {
1144
+ $message_ids[] = $msg['id'];
1145
+ if ( ! array_key_exists( $msg['id'], $message_campaign_map ) ) {
1146
+ $message_campaign_map[ $msg['id'] ] = $id;
1147
+ }
1148
+ }
1149
+ }
1150
+ }
1151
+ }
1152
+
1153
+ // We don't display same message twice...
1154
+ $message_ids = array_unique( $message_ids );
1155
+
1156
+ if ( empty( $message_ids ) ) {
1157
+ return array();
1158
+ }
1159
+ $valid_messages = $this->get_message_data( $message_ids, $preview_mode );
1160
+
1161
+ foreach ( $valid_messages as $id => $message_data ) {
1162
+ // Remove message if required fields are missing
1163
+ if ( empty( $message_data ) || empty( $message_data['type'] ) ) {
1164
+ unset( $valid_messages[ $id ] );
1165
+ continue;
1166
+ }
1167
+ // Remove message if message type is uninstalled
1168
+ $class_name = 'Icegram_Message_Type_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $message_data['type'] ) ) );
1169
+ if ( ! class_exists( $class_name ) ) {
1170
+ unset( $valid_messages[ $id ] );
1171
+ continue;
1172
+ }
1173
+ $message_data['delay_time'] = 0;
1174
+ $message_data['retargeting'] = '';
1175
+ $message_data['campaign_id'] = ( $preview_mode ) ? $_REQUEST['campaign_preview_id'] : '';
1176
+
1177
+ // Pull display time and retargeting rule from campaign if possible
1178
+ $message_id = ( ! empty( $message_data['original_message_id'] ) ) ? $message_data['original_message_id'] : $id;
1179
+ if ( ! empty( $message_campaign_map[ $message_id ] ) ) {
1180
+ //modify campaign id
1181
+ $message_data['campaign_id'] = apply_filters( 'modify_campaing_id', $message_campaign_map[ $message_id ], $message_id );
1182
+ $campaign = $valid_campaigns[ floor( $message_data['campaign_id'] ) ];
1183
+ if ( ! empty( $campaign ) && $campaign instanceof Icegram_Campaign ) {
1184
+ $message_meta_from_campaign = $campaign->get_message_meta_by_id( $message_id );
1185
+ if ( ! empty( $message_meta_from_campaign['time'] ) ) {
1186
+ $message_data['delay_time'] = $message_meta_from_campaign['time'];
1187
+ }
1188
+
1189
+ //check if campaign is targeted to mobile at zero
1190
+ $device_rule = $campaign->get_rule_value( 'device' );
1191
+ if ( $this->get_platform() !== 'laptop' && ! empty( $device_rule['mobile'] ) && $device_rule['mobile'] == 'yes' && $message_data['delay_time'] == 0 && $message_data['type'] == 'popup' ) {
1192
+ $message_data['ig_mobile_popup'] = true;
1193
+ if ( ! empty( $message_data['triggers'] ) && ! empty( $message_data['triggers']['when_to_show'] ) ) {
1194
+ $message_data['ig_mobile_popup'] = ( $message_data['triggers']['when_to_show'] == 'duration_on_page' && $message_data['triggers']['duration_on_page'] == 0 ) ? true : false;
1195
+ }
1196
+ }
1197
+ //set delay time -1 if shortcode with content
1198
+ foreach ( $this->shortcode_instances as $i => $value ) {
1199
+ $campaign_ids = explode( ',', $value['campaigns'] );
1200
+ if ( ! empty( $value['with_content'] ) && in_array( $message_data['campaign_id'], $campaign_ids ) ) {
1201
+ $message_data['delay_time'] = - 1;
1202
+ }
1203
+ }
1204
+ $rule_value = $campaign->get_rule_value( 'retargeting' );
1205
+ $message_data['retargeting'] = ! empty( $rule_value['retargeting'] ) ? $rule_value['retargeting'] : '';
1206
+ $message_data['expiry_time'] = ! empty( $rule_value['retargeting'] ) ? $rule_value['expiry_time'] : '';
1207
+ $rule_value_retargeting_clicked = $campaign->get_rule_value( 'retargeting_clicked' );
1208
+ $message_data['retargeting_clicked'] = ! empty( $rule_value_retargeting_clicked['retargeting_clicked'] ) ? $rule_value_retargeting_clicked['retargeting_clicked'] : '';
1209
+ $message_data['expiry_time_clicked'] = ! empty( $rule_value_retargeting_clicked['retargeting_clicked'] ) ? $rule_value_retargeting_clicked['expiry_time_clicked'] : '';
1210
+
1211
+ }
1212
+ }
1213
+ $valid_messages[ $id ] = $message_data;
1214
+ }
1215
+ $valid_messages = apply_filters( 'icegram_valid_messages', $valid_messages );
1216
+
1217
+ return $valid_messages;
1218
+ }
1219
+
1220
+ function get_valid_campaigns( $campaign_ids = array(), $skip_page_check = false, $preview_mode = false ) {
1221
+ global $wpdb;
1222
+ if ( empty( $campaign_ids ) ) {
1223
+ $sql = "SELECT pm.post_id
1224
+ FROM {$wpdb->prefix}posts AS p
1225
+ LEFT JOIN {$wpdb->prefix}postmeta AS pm ON ( pm.post_id = p.ID )
1226
+ WHERE p.post_status = 'publish' ";
1227
+ // Filter handler within this file (and possibly others) will append to this SQL
1228
+ // and provide arguments for wpdb->prepare if needed.
1229
+ // First element in the array is SQL, remaining are values for placeholders in SQL
1230
+ $sql_params = apply_filters( 'icegram_get_valid_campaigns_sql', array( $sql ), array() );
1231
+
1232
+ $campaign_ids = $wpdb->get_col( $wpdb->prepare( array_shift( $sql_params ), $sql_params ) );
1233
+ }
1234
+ $valid_campaigns = array();
1235
+ foreach ( (array) $campaign_ids as $campaign_id ) {
1236
+ $campaign = new Icegram_Campaign( $campaign_id );
1237
+ if ( $preview_mode || $campaign->is_valid( array( 'skip_page_check' => $skip_page_check ) ) ) {
1238
+ $valid_campaigns[ $campaign_id ] = $campaign;
1239
+ } else {
1240
+ // Campgain is invalid!
1241
+ }
1242
+
1243
+ }
1244
+
1245
+ $valid_campaigns = apply_filters( 'icegram_valid_campaigns', $valid_campaigns );
1246
+
1247
+ return $valid_campaigns;
1248
+ }
1249
+
1250
+ function append_to_valid_campaigns_sql( $sql_params = array(), $options = array() ) {
1251
+ // Page check conditions
1252
+ //$pid = $_GET['page_id'];
1253
+ $pid = Icegram::get_current_page_id();
1254
+ $sql = " AND (
1255
+ pm.meta_key = 'icegram_campaign_target_rules' AND (
1256
+ ( pm.meta_value LIKE '%%%s%%' )
1257
+ OR ( pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' AND pm.meta_value LIKE '%%%s%%' )
1258
+ ";
1259
+ $sql_params[] = 's:8:"sitewide";s:3:"yes";';
1260
+ $sql_params[] = 's:10:"other_page";s:3:"yes";';
1261
+ $sql_params[] = 's:7:"page_id";a:';
1262
+ $sql_params[] = serialize( (string) $pid );
1263
+ //local url
1264
+ $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
1265
+ $sql_params[] = 's:9:"local_url";s:3:"yes";';
1266
+ if ( ! empty( $_REQUEST['cache_compatibility'] ) && $_REQUEST['cache_compatibility'] == 'yes' ) {
1267
+ $is_home = ( ! empty( $_REQUEST['is_home'] ) && $_REQUEST['is_home'] === 'true' ) ? true : false;
1268
+ } else {
1269
+ $is_home = ( is_home() || is_front_page() ) ? true : false;
1270
+ }
1271
+ if ( $is_home === true ) {
1272
+ $sql .= " OR ( pm.meta_value LIKE '%%%s%%' )";
1273
+ $sql_params[] = 's:8:"homepage";s:3:"yes";';
1274
+ }
1275
+ $sql .= " ) )";
1276
+
1277
+ $sql_params[0] .= $sql;
1278
+
1279
+ //s:9:"logged_in";s:3:"all";
1280
+
1281
+ return $sql_params;
1282
+ }
1283
+
1284
+ // Include all classes required for Icegram plugin
1285
+ function include_classes( $feedback_version ) {
1286
+ global $ig_tracker, $ig_feedback;
1287
+
1288
+ $feedback_version_for_file = str_replace( '.', '-', $feedback_version );
1289
+ $f = 'classes/feedback/class-ig-feedback.php';
1290
+ require_once( $f );
1291
+
1292
+ $ig_feedback_class = 'IG_Feedback_V_' . str_replace( '.', '_', $feedback_version );
1293
+ $ig_feedback = new $ig_feedback_class( 'Icegram', 'icegram', 'ig', 'igfree.', false );
1294
+
1295
+ require_once( 'classes/feedback.php' );
1296
+
1297
+ $classes = glob( $this->plugin_path . '/classes/*.php' );
1298
+ $all_plugins = $ig_tracker::get_plugins();
1299
+
1300
+ foreach ( $classes as $file ) {
1301
+ // Files with 'admin' in their name are included only for admin section
1302
+ if ( is_file( $file ) && ( ( strpos( $file, '-admin' ) >= 0 && is_admin() ) ) ) {
1303
+ if ( ( strpos( $file, 'ig-upsale-admin.php' ) !== false ) && in_array( 'icegram-engage/icegram-engage.php', $all_plugins ) ) {
1304
+ continue;
1305
+ }
1306
+ include_once $file;
1307
+ } elseif ( ! is_admin() ) {
1308
+ include_once $file;
1309
+ }
1310
+ }
1311
+
1312
+ // Load built in message types
1313
+ $icegram_message_type_basedirs = glob( $this->plugin_path . '/message-types/*' );
1314
+ // Allow other plugins to add new message types
1315
+ $icegram_message_type_basedirs = apply_filters( 'icegram_message_type_basedirs', $icegram_message_type_basedirs );
1316
+ // Set up different message type classes
1317
+ foreach ( $icegram_message_type_basedirs as $dir ) {
1318
+ $type = basename( $dir );
1319
+ $class_file = $dir . "/main.php";
1320
+ if ( is_file( $class_file ) ) {
1321
+ include_once( $class_file );
1322
+ }
1323
+ $class_name = 'Icegram_Message_Type_' . str_replace( ' ', '_', ucwords( str_replace( '-', ' ', $type ) ) );
1324
+ if ( class_exists( $class_name ) ) {
1325
+ $this->message_type_objs[ $type ] = new $class_name();
1326
+ }
1327
+ }
1328
+ do_action( 'ig_file_include' );
1329
+ $this->message_types = apply_filters( 'icegram_message_types', array() );
1330
+
1331
+ }
1332
+
1333
+ // Register Campaign post type
1334
+ function register_campaign_post_type() {
1335
+ $labels = array(
1336
+ 'name' => __( 'Campaigns', 'icegram' ),
1337
+ 'singular_name' => __( 'Campaign', 'icegram' ),
1338
+ 'add_new' => __( 'Add New Campaign', 'icegram' ),
1339
+ 'add_new_item' => __( 'Add New Campaign', 'icegram' ),
1340
+ 'edit_item' => __( 'Edit Campaign', 'icegram' ),
1341
+ 'new_item' => __( 'New Campaign', 'icegram' ),
1342
+ 'all_items' => __( 'Campaigns', 'icegram' ),
1343
+ 'view_item' => __( 'View Campaign', 'icegram' ),
1344
+ 'search_items' => __( 'Search Campaigns', 'icegram' ),
1345
+ 'not_found' => __( 'No campaigns found', 'icegram' ),
1346
+ 'not_found_in_trash' => __( 'No campaigns found in Trash', 'icegram' ),
1347
+ 'parent_item_colon' => __( '', 'icegram' ),
1348
+ 'menu_name' => __( 'Icegram', 'icegram' )
1349
+ );
1350
+
1351
+ $args = array(
1352
+ 'labels' => $labels,
1353
+ // 'menu_icon' => 'dashicons-info',
1354
+ 'public' => false,
1355
+ 'publicly_queryable' => false,
1356
+ 'show_ui' => true,
1357
+ 'show_in_menu' => true,
1358
+ 'query_var' => true,
1359
+ 'rewrite' => array( 'slug' => 'ig_campaign' ),
1360
+ 'capability_type' => 'post',
1361
+ 'has_archive' => false,
1362
+ 'hierarchical' => false,
1363
+ 'menu_position' => null,
1364
+ 'menu_icon' => $this->plugin_url . '/assets/images/icegram-logo-branding-18-white.png',
1365
+ 'supports' => array( 'title', 'editor' )
1366
+ );
1367
+
1368
+ register_post_type( 'ig_campaign', $args );
1369
+ }
1370
+
1371
+ // Register Message post type
1372
+ function register_message_post_type() {
1373
+ $labels = array(
1374
+ 'name' => __( 'Messages', 'icegram' ),
1375
+ 'singular_name' => __( 'Message', 'icegram' ),
1376
+ 'add_new' => __( 'Create New', 'icegram' ),
1377
+ 'add_new_item' => __( 'Create New Message', 'icegram' ),
1378
+ 'edit_item' => __( 'Edit Message', 'icegram' ),
1379
+ 'new_item' => __( 'New Message', 'icegram' ),
1380
+ 'all_items' => __( 'Messages', 'icegram' ),
1381
+ 'view_item' => __( 'View Message', 'icegram' ),
1382
+ 'search_items' => __( 'Search Messages', 'icegram' ),
1383
+ 'not_found' => __( 'No messages found', 'icegram' ),
1384
+ 'not_found_in_trash' => __( 'No messages found in Trash', 'icegram' ),
1385
+ 'parent_item_colon' => __( '', 'icegram' ),
1386
+ 'menu_name' => __( 'Messages', 'icegram' )
1387
+ );
1388
+
1389
+ $args = array(
1390
+ 'labels' => $labels,
1391
+ 'public' => false,
1392
+ 'publicly_queryable' => false,
1393
+ 'show_ui' => true,
1394
+ 'show_in_menu' => 'edit.php?post_type=ig_campaign',
1395
+ 'query_var' => true,
1396
+ 'rewrite' => array( 'slug' => 'ig_message' ),
1397
+ 'capability_type' => 'post',
1398
+ 'has_archive' => false,
1399
+ 'hierarchical' => false,
1400
+ 'menu_position' => null,
1401
+ 'supports' => array( 'title' )
1402
+ );
1403
+
1404
+ register_post_type( 'ig_message', $args );
1405
+ }
1406
+
1407
+
1408
+ function import( $data = array() ) {
1409
+ if ( empty( $data['campaigns'] ) && empty( $data['messages'] ) ) {
1410
+ return;
1411
+ }
1412
+
1413
+ $default_theme = $default_type = '';
1414
+ $first_message_type = current( $this->message_types );
1415
+
1416
+ if ( is_array( $first_message_type ) ) {
1417
+ $default_type = $first_message_type['type'];
1418
+ if ( ! empty( $first_message_type['themes'] ) ) {
1419
+ $default_theme = key( $first_message_type['themes'] );
1420
+ }
1421
+ }
1422
+
1423
+ $new_campaign_ids = array();
1424
+ foreach ( (array) $data['campaigns'] as $campaign ) {
1425
+
1426
+ $args = array(
1427
+ 'post_content' => ( ! empty( $campaign['post_content'] ) ) ? esc_attr( $campaign['post_content'] ) : '',
1428
+ 'post_name' => ( ! empty( $campaign['post_title'] ) ) ? sanitize_title( $campaign['post_title'] ) : '',
1429
+ 'post_title' => ( ! empty( $campaign['post_title'] ) ) ? $campaign['post_title'] : '',
1430
+ // 'post_status' => ( !empty( $campaign['post_status'] ) ) ? $campaign['post_status'] : 'draft',
1431
+ 'post_status' => 'draft',
1432
+ 'post_type' => 'ig_campaign'
1433
+ );
1434
+
1435
+ $new_campaign_id = wp_insert_post( $args );
1436
+ $new_campaign_ids[] = $new_campaign_id;
1437
+
1438
+ if ( ! empty( $campaign['target_rules'] ) ) {
1439
+
1440
+ $defaults = array(
1441
+ 'homepage' => 'yes',
1442
+ 'when' => 'always',
1443
+ 'from' => '',
1444
+ 'to' => '',
1445
+ 'mobile' => 'yes',
1446
+ 'tablet' => 'yes',
1447
+ 'laptop' => 'yes',
1448
+ 'logged_in' => 'all'
1449
+ );
1450
+
1451
+ $target_rules = wp_parse_args( $campaign['target_rules'], $defaults );
1452
+ update_post_meta( $new_campaign_id, 'icegram_campaign_target_rules', $target_rules );
1453
+ }
1454
+
1455
+ if ( ! empty( $campaign['messages'] ) ) {
1456
+
1457
+ $messages = array();
1458
+
1459
+ foreach ( $campaign['messages'] as $message ) {
1460
+
1461
+ if ( ! is_array( $message ) ) {
1462
+ continue;
1463
+ }
1464
+
1465
+ $args = array(
1466
+ 'post_content' => ( ! empty( $message['message'] ) ) ? esc_attr( $message['message'] ) : '',
1467
+ 'post_name' => ( ! empty( $message['post_title'] ) ) ? sanitize_title( $message['post_title'] ) : '',
1468
+ 'post_title' => ( ! empty( $message['post_title'] ) ) ? $message['post_title'] : '',
1469
+ 'post_status' => ( ! empty( $message['post_status'] ) ) ? $message['post_status'] : 'publish',
1470
+ 'post_type' => 'ig_message'
1471
+ );
1472
+
1473
+ $new_message_id = wp_insert_post( $args );
1474
+ $new_message = array(
1475
+ 'id' => $new_message_id,
1476
+ 'time' => ( ! empty( $message['time'] ) ) ? $message['time'] : 0
1477
+ );
1478
+ //for gallery + CTA another message
1479
+ if ( ! empty( $message['cta'] ) && $message['cta'] == 'cta_another_message' && ! empty( $message['cta_linked_message_id'] ) && $message['cta_linked_message_id'] == 'auto' ) {
1480
+ $prev_message = end( $messages );
1481
+ $message['cta_linked_message_id'] = $prev_message['id'];
1482
+ array_pop( $messages );
1483
+ }
1484
+ $messages[] = $new_message;
1485
+
1486
+ unset( $message['post_content'] );
1487
+ unset( $message['time'] );
1488
+
1489
+ $message['id'] = $new_message_id;
1490
+
1491
+ $defaults = array(
1492
+ 'post_title' => '',
1493
+ 'type' => $default_type,
1494
+ 'theme' => $default_theme,
1495
+ 'animation' => '',
1496
+ 'headline' => '',
1497
+ 'label' => '',
1498
+ 'link' => '',
1499
+ 'icon' => '',
1500
+ 'message' => '',
1501
+ 'position' => '',
1502
+ 'text_color' => '#000000',
1503
+ 'bg_color' => '#ffffff',
1504
+ 'custom_code' => '',
1505
+ 'id' => ''
1506
+ );
1507
+ $icegram_message_data = wp_parse_args( $message, $defaults );
1508
+ if ( ! empty( $icegram_message_data ) ) {
1509
+ update_post_meta( $new_message_id, 'icegram_message_data', $icegram_message_data );
1510
+ update_post_meta( $new_message_id, 'icegram_message_preview_data', $icegram_message_data );
1511
+ }
1512
+ }//foreach
1513
+
1514
+ if ( ! empty( $campaign['messages'] ) ) {
1515
+ update_post_meta( $new_campaign_id, 'messages', $messages );
1516
+ update_post_meta( $new_campaign_id, 'campaign_preview', $messages );
1517
+ }
1518
+ }//if
1519
+ }
1520
+
1521
+ return $new_campaign_ids;
1522
+
1523
+ }
1524
+
1525
+ function import_gallery_item() {
1526
+ if ( ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] == 'fetch_messages' && ! empty( $_REQUEST['campaign_id'] ) && ! empty( $_REQUEST['gallery_item'] ) ) {
1527
+ $url = 'https://www.icegram.com/gallery/wp-admin/admin-ajax.php?utm_source=ig_inapp&utm_campaign=ig_gallery&utm_medium=' . $_REQUEST['campaign_id'];
1528
+ $params = $_REQUEST;
1529
+ $imported_gallery_items = array();
1530
+ $options = array(
1531
+ 'timeout' => 15,
1532
+ 'method' => 'POST',
1533
+ 'body' => http_build_query( $params )
1534
+ );
1535
+ $response = wp_remote_request( $url, $options );
1536
+ $response_code = wp_remote_retrieve_response_code( $response );
1537
+ if ( $response_code == 200 ) {
1538
+ $new_campaign_ids = $this->import( json_decode( $response['body'], true ) );
1539
+ if ( ! empty( $new_campaign_ids ) ) {
1540
+ $imported_gallery_items = get_option( 'ig_imported_gallery_items' );
1541
+ $imported_gallery_items[] = $_REQUEST['campaign_id'];
1542
+ update_option( 'ig_imported_gallery_items', $imported_gallery_items );
1543
+ $location = admin_url( 'post.php?post=' . $new_campaign_ids[0] . '&action=edit' );
1544
+ header( 'Location:' . $location );
1545
+ exit;
1546
+ } else {
1547
+ wp_safe_redirect( $_SERVER['HTTP_REFERER'] );
1548
+ }
1549
+ }
1550
+ }
1551
+ }
1552
+
1553
+ function import_sample_data( $data = array() ) {
1554
+ $new_campaign_ids = $this->import( $data );
1555
+ if ( ! empty( $new_campaign_ids ) ) {
1556
+ update_option( 'icegram_sample_data_imported', $new_campaign_ids );
1557
+ }
1558
+ }
1559
+
1560
+
1561
+ function get_sample_data() {
1562
+
1563
+ return array(
1564
+ 'campaigns' => array(
1565
+ array(
1566
+ 'post_name' => '',
1567
+ 'post_title' => 'My First Icegram Campaign',
1568
+ 'target_rules' => array(
1569
+ 'homepage' => 'yes',
1570
+ 'when' => 'always',
1571
+ 'from' => '',
1572
+ 'to' => '',
1573
+ 'mobile' => 'yes',
1574
+ 'tablet' => 'yes',
1575
+ 'laptop' => 'yes',
1576
+ 'logged_in' => 'all'
1577
+ ),
1578
+ 'messages' => array(
1579
+ array(
1580
+ 'post_title' => 'Get 2x more Contacts with Your Website',
1581
+ 'post_status' => 'publish',
1582
+ 'time' => '0',
1583
+ 'type' => 'action-bar',
1584
+ 'theme' => 'hello',
1585
+ 'headline' => 'Get 2x more Contacts with Your Website',
1586
+ 'label' => 'Show Me How',
1587
+ 'link' => '',
1588
+ 'icon' => '',
1589
+ 'message' => 'Instant Results Guaranteed',
1590
+ 'position' => '01',
1591
+ 'text_color' => '#000000',
1592
+ 'bg_color' => '#eb593c'
1593
+ ),
1594
+ array(
1595
+ 'post_title' => '20% Off Coupon',
1596
+ 'post_status' => 'publish',
1597
+ 'time' => '4',
1598
+ 'type' => 'messenger',
1599
+ 'theme' => 'social',
1600
+ 'animation' => 'slide',
1601
+ 'headline' => '20% Off - for you',
1602
+ 'label' => '',
1603
+ 'link' => '',
1604
+ 'icon' => '',
1605
+ 'message' => "Hey there! We are running a <strong>special 20% off this week</strong> for registered users - like you.
1606
+
1607
+ Use coupon <code>LOYALTY20</code> during checkout.",
1608
+ 'position' => '22',
1609
+ 'text_color' => '#000000',
1610
+ 'bg_color' => '#ffffff'
1611
+ ),
1612
+ array(
1613
+ 'post_title' => 'How this blog makes over $34,800 / month for FREE.',
1614
+ 'post_status' => 'publish',
1615
+ 'time' => '10',
1616
+ 'type' => 'popup',
1617
+ 'theme' => 'air-mail',
1618
+ 'headline' => 'How this blog makes over $34,800 / month for FREE.',
1619
+ 'label' => 'FREE INSTANT ACCESS',
1620
+ 'link' => '',
1621
+ 'icon' => '',
1622
+ 'message' => "This website earns over $30,000 every month, every single month, almost on autopilot. I have 4 other sites with similar results. All I do is publish new regular content every week.
1623
+
1624
+ <strong>Download my free kit to learn how I do this.</strong>
1625
+
1626
+ <ul>
1627
+ <li>How to choose blog topics that create long term value</li>
1628
+ <li>The type of blog post that will make your site go viral</li>
1629
+ <li>How to free yourself from the routine tasks</li>
1630
+ <li>Resources and tips to get started quickly</li>
1631
+ <li>Private members club to connect with fellow owners</li>
1632
+ </ul>",
1633
+ 'text_color' => '#000000',
1634
+ 'bg_color' => '#ffffff'
1635
+
1636
+ ),
1637
+ array(
1638
+ 'post_title' => 'Exclusive Marketing Report',
1639
+ 'post_status' => 'publish',
1640
+ 'time' => '6',
1641
+ 'type' => 'toast',
1642
+ 'theme' => 'stand-out',
1643
+ 'animation' => 'pop',
1644
+ 'headline' => 'Exclusive Marketing Report',
1645
+ 'label' => '',
1646
+ 'link' => '',
1647
+ 'icon' => '',
1648
+ 'message' => 'FREE for every subscriber. Click here to download it.',
1649
+ 'position' => '02',
1650
+ 'text_color' => '#000000',
1651
+ 'bg_color' => '#ffffff'
1652
+ )
1653
+
1654
+ )
1655
+ )
1656
+ )
1657
+ );
1658
+ }
1659
+
1660
+ function remove_preview_button() {
1661
+ global $post_type;
1662
+ if ( $post_type == 'ig_message' || $post_type == 'ig_campaign' ) {
1663
+ ?>
1664
+ <style type="text/css">
1665
+ #message.updated.below-h2 {
1666
+ display: none;
1667
+ }
1668
+
1669
+ #preview-action {
1670
+ display: none;
1671
+ }
1672
+
1673
+ /*Remove add new campaign and message*/
1674
+ .page-title-action {
1675
+ display: none;
1676
+ }
1677
+ </style>
1678
+ <?php
1679
+ }
1680
+ }
1681
+
1682
+
1683
+ function remove_row_actions( $actions, $post ) {
1684
+
1685
+ if ( empty( $post->post_type ) || ( $post->post_type != 'ig_campaign' && $post->post_type != 'ig_message' ) ) {
1686
+ return $actions;
1687
+ }
1688
+
1689
+ unset( $actions['inline hide-if-no-js'] );
1690
+ unset( $actions['view'] );
1691
+
1692
+ return $actions;
1693
+
1694
+ }
1695
+
1696
+ function identify_current_page() {
1697
+ global $post, $wpdb;
1698
+
1699
+ $obj = get_queried_object();
1700
+ $id = 0;
1701
+ if ( ! empty( $obj->has_archive ) ) {
1702
+ $sql = $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s ", array( $obj->has_archive, 'page' ) );
1703
+ $id = $wpdb->get_var( $sql );
1704
+ } elseif ( is_object( $post ) && isset( $post->ID ) ) {
1705
+ $id = $post->ID;
1706
+ }
1707
+ $id = apply_filters( 'icegram_identify_current_page', $id );
1708
+ self::$current_page_id = $id;
1709
+ }
1710
+
1711
+ static function get_current_page_id() {
1712
+ global $post;
1713
+ if ( ! empty( $_REQUEST['page_id'] ) && is_numeric( $_REQUEST['page_id'] ) ) {
1714
+ $post = get_post( $_REQUEST['page_id'] );
1715
+ setup_postdata( $post );
1716
+ // WPML check
1717
+ $id = apply_filters( 'icegram_identify_current_page', $post->ID );
1718
+ self::$current_page_id = $id;
1719
+ }
1720
+
1721
+ return self::$current_page_id;
1722
+ }
1723
+
1724
+ static function get_current_page_url() {
1725
+ if ( ! empty( $_REQUEST['cache_compatibility'] ) && $_REQUEST['cache_compatibility'] == 'yes' ) {
1726
+ $pageURL = ( ! empty( $_REQUEST['referral_url'] ) ) ? $_REQUEST['referral_url'] : '';
1727
+ } else {
1728
+ $pageURL = 'http';
1729
+ if ( isset( $_SERVER["HTTPS"] ) ) {
1730
+ if ( $_SERVER["HTTPS"] == "on" ) {
1731
+ $pageURL .= "s";
1732
+ }
1733
+ }
1734
+ $pageURL .= "://";
1735
+ if ( $_SERVER["SERVER_PORT"] != "80" ) {
1736
+ $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
1737
+ } else {
1738
+ $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
1739
+ }
1740
+ }
1741
+
1742
+ return $pageURL;
1743
+ }
1744
+
1745
+ function wpml_get_parent_id( $id ) {
1746
+ global $post;
1747
+ if ( function_exists( 'icl_object_id' ) && function_exists( 'icl_get_default_language' ) ) {
1748
+ $id = icl_object_id( $id, $post->post_type, true, icl_get_default_language() );
1749
+ }
1750
+
1751
+ return $id;
1752
+ }
1753
+
1754
+
1755
+ /**
1756
+ * Our implementation of wpautop to preserve script and style tags
1757
+ */
1758
+ function before_wpautop( $pee ) {
1759
+ if ( trim( $pee ) === '' ) {
1760
+ $this->_wpautop_tags = array();
1761
+
1762
+ return '';
1763
+ }
1764
+
1765
+ $tags = array();
1766
+ // Pull out tags and add placeholders
1767
+ list( $pee, $tags['pre'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'pre' );
1768
+ list( $pee, $tags['script'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'script' );
1769
+ list( $pee, $tags['style'] ) = $this->_wpautop_add_tag_placeholders( $pee, 'style' );
1770
+ $this->_wpautop_tags = $tags;
1771
+
1772
+ if ( ! empty( $pre_tags ) ) {
1773
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $pre_tags );
1774
+ }
1775
+ if ( ! empty( $script_tags ) ) {
1776
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $script_tags );
1777
+ }
1778
+ if ( ! empty( $style_tags ) ) {
1779
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $style_tags );
1780
+ }
1781
+
1782
+ return $pee;
1783
+ }
1784
+
1785
+ function after_wpautop( $pee ) {
1786
+ if ( trim( $pee ) === '' || empty( $this->_wpautop_tags ) ) {
1787
+ return '';
1788
+ }
1789
+
1790
+ // Replace placeholders with original content
1791
+ if ( ! empty( $this->_wpautop_tags['pre'] ) ) {
1792
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['pre'] );
1793
+ }
1794
+ if ( ! empty( $this->_wpautop_tags['script'] ) ) {
1795
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['script'] );
1796
+ }
1797
+ if ( ! empty( $this->_wpautop_tags['style'] ) ) {
1798
+ $pee = $this->_wpautop_replace_tag_placeholders( $pee, $this->_wpautop_tags['style'] );
1799
+ }
1800
+
1801
+ $this->_wpautop_tags = array();
1802
+
1803
+ return $pee;
1804
+ }
1805
+
1806
+ function _wpautop_add_tag_placeholders( $pee, $tag ) {
1807
+ $tags = array();
1808
+
1809
+ if ( false !== strpos( $pee, "<{$tag}" ) ) {
1810
+ $pee_parts = explode( "</{$tag}>", $pee );
1811
+ $last_pee = array_pop( $pee_parts );
1812
+ $pee = '';
1813
+ $i = 0;
1814
+
1815
+ foreach ( $pee_parts as $pee_part ) {
1816
+ $start = strpos( $pee_part, "<{$tag}" );
1817
+
1818
+ // Malformed html?
1819
+ if ( false === $start ) {
1820
+ $pee .= $pee_part;
1821
+ continue;
1822
+ }
1823
+
1824
+ $name = "<{$tag} wp-{$tag}-tag-$i></{$tag}>";
1825
+ $tags[ $name ] = substr( $pee_part, $start ) . "</{$tag}>";
1826
+
1827
+ $pee .= substr( $pee_part, 0, $start ) . $name;
1828
+ $i ++;
1829
+ }
1830
+
1831
+ $pee .= $last_pee;
1832
+ }
1833
+
1834
+ return array( $pee, $tags );
1835
+ }
1836
+
1837
+ function _wpautop_replace_tag_placeholders( $pee, $tags ) {
1838
+ if ( ! empty( $tags ) ) {
1839
+ $pee = str_replace( array_keys( $tags ), array_values( $tags ), $pee );
1840
+ }
1841
+
1842
+ return $pee;
1843
+ }
1844
+
1845
+ static function duplicate_in_db( $original_id ) {
1846
+ // Get access to the database
1847
+ global $wpdb;
1848
+ // Get the post as an array
1849
+ $duplicate = get_post( $original_id, 'ARRAY_A' );
1850
+ // Modify some of the elements
1851
+ $duplicate['post_title'] = $duplicate['post_title'] . ' ' . __( 'Copy', 'icegram' );
1852
+ $duplicate['post_status'] = 'draft';
1853
+ // Set the post date
1854
+ $timestamp = current_time( 'timestamp', 0 );
1855
+
1856
+ $duplicate['post_date'] = date( 'Y-m-d H:i:s', $timestamp );
1857
+
1858
+ // Remove some of the keys
1859
+ unset( $duplicate['ID'] );
1860
+ unset( $duplicate['guid'] );
1861
+ unset( $duplicate['comment_count'] );
1862
+
1863
+ // Insert the post into the database
1864
+ $duplicate_id = wp_insert_post( $duplicate );
1865
+
1866
+ // Duplicate all taxonomies/terms
1867
+ $taxonomies = get_object_taxonomies( $duplicate['post_type'] );
1868
+
1869
+ foreach ( $taxonomies as $taxonomy ) {
1870
+ $terms = wp_get_post_terms( $original_id, $taxonomy, array( 'fields' => 'names' ) );
1871
+ wp_set_object_terms( $duplicate_id, $terms, $taxonomy );
1872
+ }
1873
+
1874
+ // Duplicate all custom fields
1875
+ $custom_fields = get_post_custom( $original_id );
1876
+ foreach ( $custom_fields as $key => $value ) {
1877
+ if ( $key === 'messages' ) {
1878
+ $messages = unserialize( $value[0] );
1879
+ foreach ( $messages as &$message ) {
1880
+ $clone_msg_id = Icegram::duplicate_in_db( $message['id'] );
1881
+ $message['id'] = $clone_msg_id;
1882
+ }
1883
+ $value[0] = serialize( $messages );
1884
+ }
1885
+ add_post_meta( $duplicate_id, $key, maybe_unserialize( $value[0] ) );
1886
+ }
1887
+
1888
+ return $duplicate_id;
1889
+ }
1890
+
1891
+ static function duplicate( $original_id ) {
1892
+ $duplicate_id = Icegram::duplicate_in_db( $original_id );
1893
+ $location = admin_url( 'post.php?post=' . $duplicate_id . '&action=edit' );
1894
+ header( 'Location:' . $location );
1895
+ exit;
1896
+ }
1897
+
1898
+ public static function form_submission_validate_request( $request_data ) {
1899
+ if ( ! empty( $request_data ) ) {
1900
+ // Check for Remote Rainmaker form submission request
1901
+ $request_data['ig_is_remote'] = false;
1902
+ $request_data['is_remote'] = false;
1903
+ if ( ! empty( $request_data['ig_mode'] ) && $request_data['ig_mode'] === 'remote' ) {
1904
+ $ig_remote_url = $request_data['ig_remote_url'];
1905
+ if ( ! empty( $request_data['ig_campaign_id'] ) ) {
1906
+ $rules = get_post_meta( $request_data['ig_campaign_id'], 'icegram_campaign_target_rules', true );
1907
+ if ( ! empty( $rules['remote_urls'] ) && is_array( $rules['remote_urls'] ) ) {
1908
+ foreach ( $rules['remote_urls'] as $remote_url_pattern ) {
1909
+ $valid = Icegram_Campaign::is_valid_url( $remote_url_pattern, $ig_remote_url );
1910
+ if ( $valid ) {
1911
+ $request_data['ig_is_remote'] = true;
1912
+ $request_data['is_remote'] = true;
1913
+ break;
1914
+ }
1915
+ }
1916
+ //TODO :: discard the the remote request and data
1917
+ // if($request_data['ig_is_remote'] == false){
1918
+ // return array();
1919
+ // }
1920
+ }
1921
+
1922
+ }
1923
+ }
1924
+ }
1925
+
1926
+ return $request_data;
1927
+ }
1928
+
1929
+ public static function get_ig_meta_info() {
1930
+ $total_campaigns = wp_count_posts( 'ig_campaign' );
1931
+ $total_campaigns_publish = $total_campaigns->publish;
1932
+ $total_campaigns_draft = $total_campaigns->draft;
1933
+
1934
+ $meta_info = array(
1935
+ 'total_campaigns_publish' => $total_campaigns_publish,
1936
+ 'total_campaigns_draft' => $total_campaigns_draft,
1937
+ );
1938
+
1939
+ return $meta_info;
1940
+ }
1941
+
1942
+ /**
1943
+ * Render Quick Feedback Widget
1944
+ *
1945
+ * @param $params
1946
+ *
1947
+ * @since 1.10.38
1948
+ */
1949
+ public function render_feedback_widget( $params ) {
1950
+ global $ig_feedback;
1951
+
1952
+ $feedback = $ig_feedback;
1953
+
1954
+ if ( ! $feedback->can_show_feedback_widget() ) {
1955
+ return;
1956
+ }
1957
+
1958
+ $default_params = array(
1959
+ 'set_transient' => true,
1960
+ 'force' => false,
1961
+ 'show_once' => false
1962
+ );
1963
+
1964
+ $params = wp_parse_args( $params, $default_params );
1965
+
1966
+ if ( ! empty( $params['event'] ) ) {
1967
+
1968
+ $event = $feedback->event_prefix . $params['event'];
1969
+ $force = ! empty( $params['force'] ) ? $params['force'] : false;
1970
+
1971
+ $can_show = false;
1972
+
1973
+ if ( $force ) {
1974
+ $can_show = true;
1975
+ } else {
1976
+ if ( ! $feedback->is_event_transient_set( $event ) ) {
1977
+ $can_show = true;
1978
+
1979
+ $feedback_data = $feedback->get_event_feedback_data( $feedback->plugin_abbr, $event );
1980
+ if ( count( $feedback_data ) > 0 ) {
1981
+ $show_once = $params['show_once'];
1982
+ $feedback_data = array_reverse( $feedback_data );
1983
+ $last_feedback_given_on = $feedback_data[0]['created_on'];
1984
+
1985
+ // If event feedback given within 45 days or show event only once?
1986
+ // Don't show now
1987
+ if ( $show_once || ( strtotime( $last_feedback_given_on ) > strtotime( '-45 days' ) ) ) {
1988
+ $can_show = false;
1989
+ }
1990
+ }
1991
+ }
1992
+ }
1993
+
1994
+ if ( $can_show ) {
1995
+ if ( 'star' === $params['type'] ) {
1996
+ $feedback->render_stars( $params );
1997
+ } elseif ( 'emoji' === $params['type'] ) {
1998
+ $feedback->render_emoji( $params );
1999
+ } elseif ( 'feedback' === $params['type'] ) {
2000
+ $feedback->render_general_feedback( $params );
2001
+ } elseif ( 'fb' === $params['type'] ) {
2002
+ /**
2003
+ * We are not calling home for this event and we want to show
2004
+ * this Widget only once. So, we are storing feedback data now.
2005
+ */
2006
+ $feedback->set_feedback_data( 'ig', $event );
2007
+ $feedback->render_fb_widget( $params );
2008
+ } elseif ( 'poll' === $params['type'] ) {
2009
+ $feedback->set_feedback_data( 'ig', $event );
2010
+ $feedback->render_poll_widget( $params );
2011
+ }
2012
+ }
2013
+ }
2014
+ }
2015
+
2016
+ /**
2017
+ * Check if premium plugin installed
2018
+ *
2019
+ * @return boolean
2020
+ *
2021
+ * @since 1.10.39
2022
+ */
2023
+ public function is_premium_installed() {
2024
+ global $ig_tracker;
2025
+
2026
+ $icegram_premium = 'icegram-engage/icegram-engage.php';
2027
+
2028
+ return $ig_tracker::is_plugin_installed( $icegram_premium );
2029
+ }
2030
+
2031
+ /**
2032
+ * Check if premium plugin active
2033
+ *
2034
+ * @return boolean
2035
+ *
2036
+ * @since 1.10.39
2037
+ */
2038
+ public function is_premium_activated() {
2039
+ global $ig_tracker;
2040
+
2041
+ $icegram_premium = 'icegram-engage/icegram-engage.php';
2042
+
2043
+ return $ig_tracker::is_plugin_activated( $icegram_premium );
2044
+ }
2045
+
2046
+ /**
2047
+ * Is IG PRO?
2048
+ *
2049
+ * @return bool
2050
+ *
2051
+ * @since
2052
+ */
2053
+ public function is_pro() {
2054
+ return file_exists( IG_PLUGIN_DIR . 'pro/icegram-pro.php' );
2055
+ }
2056
+
2057
+ /**
2058
+ * Is IG MAX ?
2059
+ *
2060
+ * @return bool
2061
+ *
2062
+ * @since
2063
+ */
2064
+ public function is_max() {
2065
+ return file_exists( IG_PLUGIN_DIR . 'max/icegram-max.php' );
2066
+ }
2067
+
2068
+ /**
2069
+ * Is IG Premium?
2070
+ *
2071
+ * @return bool
2072
+ *
2073
+ * @since
2074
+ */
2075
+ public function is_premium() {
2076
+ return ES()->is_max() || ES()->is_pro();
2077
+ }
2078
+
2079
+ }
2080
+ }
lite/classes/class-icegram-activator.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Exit if accessed directly
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Fired during plugin activation
9
+ *
10
+ * @link http://example.com
11
+ * @since 1.11.0
12
+ */
13
+
14
+ /**
15
+ * Fired during plugin activation.
16
+ *
17
+ * This class defines all code necessary to run during the plugin's activation.
18
+ *
19
+ * @since 1.11.0
20
+ */
21
+ class Icegram_Activator {
22
+
23
+ /**
24
+ * Handles tasks to do on plugin activation
25
+ *
26
+ * @since 1.11.0
27
+ */
28
+ public static function activate() {
29
+ // Redirect to welcome screen
30
+ delete_option( '_icegram_activation_redirect' );
31
+ add_option( '_icegram_activation_redirect', 'pending' );
32
+
33
+ do_action( 'ig_activated' );
34
+ }
35
+ }
lite/classes/class-icegram-cache.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
+
4
+ if ( ! class_exists( 'Icegram_Cache' ) ) {
5
+
6
+ /*
7
+ // Example usage
8
+ $cache = new Icegram_Cache('category', 14 * 86400);
9
+ $val = $cache->get( $key );
10
+ if ( $val === null ) {
11
+ // Not in cache, compute
12
+ $val = doyourprocess();
13
+ $cache->set( $key, $val );
14
+ }
15
+ // Now use the $val
16
+
17
+ function cleanup() {
18
+ $cache = new Icegram_Cache('category', 14 * 86400);
19
+ $cache->cleanup();
20
+ }
21
+
22
+ // For cleanup
23
+ wp_schedule_event( time(), 'daily', array($this, 'cleanup') );
24
+ */
25
+
26
+ class Icegram_Cache {
27
+
28
+ var $base_dir;
29
+ var $expire_after;
30
+ var $enabled;
31
+ var $_group;
32
+ var $_hashes;
33
+
34
+ public function set( $key, $data ) {
35
+ if (!$this->enabled) return false;
36
+ $res = file_put_contents($this->_file( $key ), serialize($data));
37
+ return ( $res === false ) ? false : true;
38
+ }
39
+
40
+ public function get( $key ) {
41
+ if (!$this->enabled) return null;
42
+ if ($this->_exists( $key )) {
43
+ return unserialize( file_get_contents( $this->_file( $key )));
44
+ }
45
+ return null;
46
+ }
47
+
48
+ public function delete( $key ) {
49
+ if (!$this->enabled) return true;
50
+ if ($this->_exists( $key )) {
51
+ return unlink( $this->_file( $key ) );
52
+ }
53
+ return true;
54
+ }
55
+
56
+ public function cleanup( ) {
57
+ if (!$this->enabled) return true;
58
+ foreach (glob($this->base_dir . $this->_group . "*") as $filename) {
59
+ if (filemtime($filename) < time() - $this->expire_after) {
60
+ @unlink($filename);
61
+ }
62
+ }
63
+ return true;
64
+ }
65
+
66
+ private function _exists( $key ) {
67
+ return (is_file( $this->_file( $key ) ) );
68
+ }
69
+
70
+ private function _file( $key ) {
71
+ return $this->base_dir . $this->_group . '_' . $this->_hash( $key );
72
+ }
73
+
74
+ private function _hash( $key ) {
75
+ if (!array_key_exists($key, $this->_hashes)) {
76
+ $this->_hashes[ $key ] = md5($key);
77
+ }
78
+ return $this->_hashes[ $key ];
79
+ }
80
+
81
+
82
+ public function __construct( $group = '', $expire_after = 86400, $base_dir = '' ) {
83
+
84
+ $this->_group = sanitize_key($group);
85
+ $this->base_dir = $base_dir;
86
+ $this->expire_after = $expire_after;
87
+ $this->_hashes = array();
88
+
89
+ if (empty($this->base_dir)) {
90
+ $uploads = wp_upload_dir();
91
+ $uploads_base_dir = trailingslashit( $uploads['basedir'] );
92
+ $this->base_dir = $uploads_base_dir . 'igcache/';
93
+ }
94
+
95
+ if (!is_dir( $this->base_dir )) {
96
+ if ( false === mkdir( $this->base_dir ) ) {
97
+ $this->enabled = false;
98
+ return;
99
+ }
100
+ }
101
+ $this->base_dir = trailingslashit( $this->base_dir );
102
+ $this->enabled = true;
103
+ }
104
+ }
105
+
106
+ }
{classes → lite/classes}/class-icegram-campaign-admin.php RENAMED
@@ -1,14 +1,14 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
- if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
7
  class Icegram_Campaign_Admin {
8
 
9
  var $default_target_rules;
10
  var $site_url;
11
- function __construct() {
12
 
13
  // add_action( 'add_meta_boxes', array( &$this, 'add_campaigns_metaboxes' ), 0 );
14
  add_action( 'edit_form_advanced', array( &$this, 'add_campaigns_tabs' ) );
@@ -41,7 +41,7 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
41
  );
42
 
43
  }
44
- public static function getInstance(){
45
  static $ig_campaign_admin = null;
46
  if (null === $ig_campaign_admin) {
47
  $ig_campaign_admin = new Icegram_Campaign_Admin();
@@ -50,7 +50,7 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
50
  }
51
 
52
  // Initialize campaign Tabs
53
- function add_campaigns_tabs() {
54
  global $post, $pagenow;
55
  if ($post->post_type != 'ig_campaign') return;
56
 
@@ -105,7 +105,7 @@ if ( !class_exists( 'Icegram_Campaign_Admin' ) ) {
105
  }
106
 
107
  // Display list of messages of campaign tab
108
- function campaign_data_tab_content($tabs) {
109
 
110
  $tab_id = 'main';
111
  $tab_class = 'campaign_data'; // space seprated classes
@@ -121,7 +121,7 @@ function campaign_data_tab_content($tabs) {
121
  }
122
 
123
  // Campaign targeting rules tab
124
- function campaign_target_rules_tab_content($tabs) {
125
 
126
  $tab_id = 'last';
127
  $tab_class = 'campaign_target_rules'; // space seprated classes
@@ -139,7 +139,7 @@ function campaign_data_tab_content($tabs) {
139
  }
140
 
141
  // Display list of messages of campaign
142
- function campaign_data_content() {
143
  global $post, $icegram;
144
  $ig_message_admin = Icegram_Message_Admin::getInstance();
145
 
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
+ if ( ! class_exists( 'Icegram_Campaign_Admin' ) ) {
7
  class Icegram_Campaign_Admin {
8
 
9
  var $default_target_rules;
10
  var $site_url;
11
+ public function __construct() {
12
 
13
  // add_action( 'add_meta_boxes', array( &$this, 'add_campaigns_metaboxes' ), 0 );
14
  add_action( 'edit_form_advanced', array( &$this, 'add_campaigns_tabs' ) );
41
  );
42
 
43
  }
44
+ public static function getInstance(){
45
  static $ig_campaign_admin = null;
46
  if (null === $ig_campaign_admin) {
47
  $ig_campaign_admin = new Icegram_Campaign_Admin();
50
  }
51
 
52
  // Initialize campaign Tabs
53
+ public function add_campaigns_tabs() {
54
  global $post, $pagenow;
55
  if ($post->post_type != 'ig_campaign') return;
56
 
105
  }
106
 
107
  // Display list of messages of campaign tab
108
+ public function campaign_data_tab_content($tabs) {
109
 
110
  $tab_id = 'main';
111
  $tab_class = 'campaign_data'; // space seprated classes
121
  }
122
 
123
  // Campaign targeting rules tab
124
+ public function campaign_target_rules_tab_content($tabs) {
125
 
126
  $tab_id = 'last';
127
  $tab_class = 'campaign_target_rules'; // space seprated classes
139
  }
140
 
141
  // Display list of messages of campaign
142
+ public function campaign_data_content() {
143
  global $post, $icegram;
144
  $ig_message_admin = Icegram_Message_Admin::getInstance();
145
 
{classes → lite/classes}/class-icegram-campaign.php RENAMED
File without changes
{classes → lite/classes}/class-icegram-compat.php RENAMED
@@ -1,9 +1,9 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Compatibility class with other plugins
5
  */
6
- if ( !class_exists( 'Icegram_Compat_Base' ) ) {
7
  class Icegram_Compat_Base {
8
 
9
  // Sets up printing compatibility code
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Compatibility class with other plugins
5
  */
6
+ if ( ! class_exists( 'Icegram_Compat_Base' ) ) {
7
  class Icegram_Compat_Base {
8
 
9
  // Sets up printing compatibility code
lite/classes/class-icegram-deactivator.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ /**
9
+ * Fired during plugin deactivation
10
+ *
11
+ * @link http://example.com
12
+ * @since 1.11.0
13
+ */
14
+
15
+ /**
16
+ * Fired during plugin deactivation.
17
+ *
18
+ * This class defines all code necessary to run during the plugin's deactivation.
19
+ *
20
+ * @since 1.11.0
21
+ */
22
+ class Icegram_Deactivator {
23
+
24
+ /**
25
+ * Handles tasks to do on plugin deactivation
26
+ *
27
+ * @since 1.11.0
28
+ */
29
+ public static function deactivate() {
30
+ do_action( 'ig_deactivated' );
31
+ }
32
+
33
+ }
{classes → lite/classes}/class-icegram-message-admin.php RENAMED
File without changes
{classes → lite/classes}/class-icegram-message-type.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type' ) ) return;
4
 
5
  /**
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type' ) ) return;
4
 
5
  /**
{classes → lite/classes}/class-icegram-message.php RENAMED
@@ -1,9 +1,9 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Message class
5
  */
6
- if ( !class_exists( 'Icegram_Message' ) ) {
7
 
8
  class Icegram_Message {
9
 
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Message class
5
  */
6
+ if ( ! class_exists( 'Icegram_Message' ) ) {
7
 
8
  class Icegram_Message {
9
 
{classes → lite/classes}/compat/class-icegram-compat-contact-form-7.php RENAMED
@@ -1,9 +1,9 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
- if ( !class_exists( 'Icegram_Compat_contact_form_7' ) ) {
7
  class Icegram_Compat_contact_form_7 extends Icegram_Compat_Base {
8
 
9
  function __construct() {
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
+ if ( ! class_exists( 'Icegram_Compat_contact_form_7' ) ) {
7
  class Icegram_Compat_contact_form_7 extends Icegram_Compat_Base {
8
 
9
  function __construct() {
{classes → lite/classes}/compat/class-icegram-compat-gravityforms.php RENAMED
@@ -1,9 +1,9 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
- if ( !class_exists( 'Icegram_Compat_gravityforms' ) ) {
7
  class Icegram_Compat_gravityforms extends Icegram_Compat_Base {
8
 
9
  function __construct() {
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Campaign Admin class
5
  */
6
+ if ( ! class_exists( 'Icegram_Compat_gravityforms' ) ) {
7
  class Icegram_Compat_gravityforms extends Icegram_Compat_Base {
8
 
9
  function __construct() {
{classes → lite/classes}/feedback.php RENAMED
@@ -3,6 +3,7 @@
3
  /**
4
  * Get additional system & plugin specific information for feedback
5
  *
 
6
  */
7
  if ( ! function_exists( 'ig_get_additional_info' ) ) {
8
 
@@ -52,7 +53,7 @@ if ( ! function_exists( 'ig_review_message_data' ) ) {
52
  function ig_review_message_data( $review_data ) {
53
 
54
  $review_url = 'https://wordpress.org/support/plugin/icegram/reviews/';
55
- $icon_url = IG_PLUGIN_URL . 'assets/images/icon-64.png';
56
 
57
  $review_data['review_url'] = $review_url;
58
  $review_data['icon_url'] = $icon_url;
3
  /**
4
  * Get additional system & plugin specific information for feedback
5
  *
6
+ *
7
  */
8
  if ( ! function_exists( 'ig_get_additional_info' ) ) {
9
 
53
  function ig_review_message_data( $review_data ) {
54
 
55
  $review_url = 'https://wordpress.org/support/plugin/icegram/reviews/';
56
+ $icon_url = IG_PLUGIN_URL . 'lite/assets/images/icon-64.png';
57
 
58
  $review_data['review_url'] = $review_url;
59
  $review_data['icon_url'] = $icon_url;
{classes → lite/classes}/feedback/assets/css/animate.min.css RENAMED
File without changes
{classes → lite/classes}/feedback/assets/css/emoji.min.css RENAMED
File without changes
{classes → lite/classes}/feedback/assets/css/feedback.min.css RENAMED
File without changes
{classes → lite/classes}/feedback/assets/css/star-rating.min.css RENAMED
File without changes
{classes → lite/classes}/feedback/assets/css/sweetalert2.min.css RENAMED
File without changes
{classes → lite/classes}/feedback/assets/images/loading.gif RENAMED
File without changes
{classes → lite/classes}/feedback/assets/js/sweetalert2.min.js RENAMED
File without changes
{classes → lite/classes}/feedback/class-ig-feedback.php RENAMED
File without changes
{classes → lite/classes}/feedback/class-ig-tracker.php RENAMED
File without changes
lite/classes/ig-mobile-detect.php ADDED
@@ -0,0 +1,1459 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Mobile Detect Library
4
+ * =====================
5
+ *
6
+ * Motto: "Every business should have a mobile detection script to detect mobile readers"
7
+ *
8
+ * Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
9
+ * It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
10
+ *
11
+ * @author Current authors: Serban Ghita <serbanghita@gmail.com>
12
+ * Nick Ilyin <nick.ilyin@gmail.com>
13
+ *
14
+ * Original author: Victor Stanciu <vic.stanciu@gmail.com>
15
+ *
16
+ * @license Code and contributions have 'MIT License'
17
+ * More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
18
+ *
19
+ * @link Homepage: http://mobiledetect.net
20
+ * GitHub Repo: https://github.com/serbanghita/Mobile-Detect
21
+ * Google Code: http://code.google.com/p/php-mobile-detect/
22
+ * README: https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
23
+ * HOWTO: https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
24
+ *
25
+ * @version 2.8.24
26
+ */
27
+ if ( ! class_exists( 'Ig_Mobile_Detect' ) ) {
28
+ class Ig_Mobile_Detect
29
+ {
30
+ /**
31
+ * Mobile detection type.
32
+ *
33
+ * @deprecated since version 2.6.9
34
+ */
35
+ const DETECTION_TYPE_MOBILE = 'mobile';
36
+
37
+ /**
38
+ * Extended detection type.
39
+ *
40
+ * @deprecated since version 2.6.9
41
+ */
42
+ const DETECTION_TYPE_EXTENDED = 'extended';
43
+
44
+ /**
45
+ * A frequently used regular expression to extract version #s.
46
+ *
47
+ * @deprecated since version 2.6.9
48
+ */
49
+ const VER = '([\w._\+]+)';
50
+
51
+ /**
52
+ * Top-level device.
53
+ */
54
+ const MOBILE_GRADE_A = 'A';
55
+
56
+ /**
57
+ * Mid-level device.
58
+ */
59
+ const MOBILE_GRADE_B = 'B';
60
+
61
+ /**
62
+ * Low-level device.
63
+ */
64
+ const MOBILE_GRADE_C = 'C';
65
+
66
+ /**
67
+ * Stores the version number of the current release.
68
+ */
69
+ const VERSION = '2.8.24';
70
+
71
+ /**
72
+ * A type for the version() method indicating a string return value.
73
+ */
74
+ const VERSION_TYPE_STRING = 'text';
75
+
76
+ /**
77
+ * A type for the version() method indicating a float return value.
78
+ */
79
+ const VERSION_TYPE_FLOAT = 'float';
80
+
81
+ /**
82
+ * A cache for resolved matches
83
+ * @var array
84
+ */
85
+ protected $cache = array();
86
+
87
+ /**
88
+ * The User-Agent HTTP header is stored in here.
89
+ * @var string
90
+ */
91
+ protected $userAgent = null;
92
+
93
+ /**
94
+ * HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
95
+ * @var array
96
+ */
97
+ protected $httpHeaders = array();
98
+
99
+ /**
100
+ * CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
101
+ * @var array
102
+ */
103
+ protected $cloudfrontHeaders = array();
104
+
105
+ /**
106
+ * The matching Regex.
107
+ * This is good for debug.
108
+ * @var string
109
+ */
110
+ protected $matchingRegex = null;
111
+
112
+ /**
113
+ * The matches extracted from the regex expression.
114
+ * This is good for debug.
115
+ * @var string
116
+ */
117
+ protected $matchesArray = null;
118
+
119
+ /**
120
+ * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
121
+ *
122
+ * @deprecated since version 2.6.9
123
+ *
124
+ * @var string
125
+ */
126
+ protected $detectionType = self::DETECTION_TYPE_MOBILE;
127
+
128
+ /**
129
+ * HTTP headers that trigger the 'isMobile' detection
130
+ * to be true.
131
+ *
132
+ * @var array
133
+ */
134
+ protected static $mobileHeaders = array(
135
+
136
+ 'HTTP_ACCEPT' => array('matches' => array(
137
+ // Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
138
+ 'application/x-obml2d',
139
+ // BlackBerry devices.
140
+ 'application/vnd.rim.html',
141
+ 'text/vnd.wap.wml',
142
+ 'application/vnd.wap.xhtml+xml'
143
+ )),
144
+ 'HTTP_X_WAP_PROFILE' => null,
145
+ 'HTTP_X_WAP_CLIENTID' => null,
146
+ 'HTTP_WAP_CONNECTION' => null,
147
+ 'HTTP_PROFILE' => null,
148
+ // Reported by Opera on Nokia devices (eg. C3).
149
+ 'HTTP_X_OPERAMINI_PHONE_UA' => null,
150
+ 'HTTP_X_NOKIA_GATEWAY_ID' => null,
151
+ 'HTTP_X_ORANGE_ID' => null,
152
+ 'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
153
+ 'HTTP_X_HUAWEI_USERID' => null,
154
+ // Reported by Windows Smartphones.
155
+ 'HTTP_UA_OS' => null,
156
+ // Reported by Verizon, Vodafone proxy system.
157
+ 'HTTP_X_MOBILE_GATEWAY' => null,
158
+ // Seen this on HTC Sensation. SensationXE_Beats_Z715e.
159
+ 'HTTP_X_ATT_DEVICEID' => null,
160
+ // Seen this on a HTC.
161
+ 'HTTP_UA_CPU' => array('matches' => array('ARM')),
162
+ );
163
+
164
+ /**
165
+ * List of mobile devices (phones).
166
+ *
167
+ * @var array
168
+ */
169
+ protected static $phoneDevices = array(
170
+ 'iPhone' => '\biPhone\b|\biPod\b', // |\biTunes
171
+ 'BlackBerry' => 'BlackBerry|\bBB10\b|rim[0-9]+',
172
+ 'HTC' => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
173
+ 'Nexus' => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
174
+ // @todo: Is 'Dell Streak' a tablet or a phone? ;)
175
+ 'Dell' => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
176
+ 'Motorola' => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
177
+ 'Samsung' => '\bSamsung\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F',
178
+ 'LG' => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)',
179
+ 'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
180
+ 'Asus' => 'Asus.*Galaxy|PadFone.*Mobile',
181
+ 'NokiaLumia' => 'Lumia [0-9]{3,4}',
182
+ // http://www.micromaxinfo.com/mobiles/smartphones
183
+ // Added because the codes might conflict with Acer Tablets.
184
+ 'Micromax' => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
185
+ // @todo Complete the regex.
186
+ 'Palm' => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ;
187
+ 'Vertu' => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
188
+ // http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
189
+ // Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
190
+ 'Pantech' => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
191
+ // http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
192
+ 'Fly' => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
193
+ // http://fr.wikomobile.com
194
+ 'Wiko' => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
195
+ 'iMobile' => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
196
+ // Added simvalley mobile just for fun. They have some interesting devices.
197
+ // http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
198
+ 'SimValley' => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
199
+ // Wolfgang - a brand that is sold by Aldi supermarkets.
200
+ // http://www.wolfgangmobile.com/
201
+ 'Wolfgang' => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
202
+ 'Alcatel' => 'Alcatel',
203
+ 'Nintendo' => 'Nintendo 3DS',
204
+ // http://en.wikipedia.org/wiki/Amoi
205
+ 'Amoi' => 'Amoi',
206
+ // http://en.wikipedia.org/wiki/INQ
207
+ 'INQ' => 'INQ',
208
+ // @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
209
+ 'GenericPhone' => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
210
+ );
211
+
212
+ /**
213
+ * List of tablet devices.
214
+ *
215
+ * @var array
216
+ */
217
+ protected static $tabletDevices = array(
218
+ // @todo: check for mobile friendly emails topic.
219
+ 'iPad' => 'iPad|iPad.*Mobile',
220
+ // Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
221
+ // @see #442
222
+ 'NexusTablet' => 'Android.*Nexus[\s]+(7|9|10)',
223
+ 'SamsungTablet' => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
224
+ // http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
225
+ 'Kindle' => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI)\b',
226
+ // Only the Surface tablets with Windows RT are considered mobile.
227
+ // http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
228
+ 'SurfaceTablet' => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
229
+ // http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
230
+ 'HPTablet' => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
231
+ // Watch out for PadFone, see #132.
232
+ // http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
233
+ 'AsusTablet' => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z',
234
+ 'BlackBerryTablet' => 'PlayBook|RIM Tablet',
235
+ 'HTCtablet' => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
236
+ 'MotorolaTablet' => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
237
+ 'NookTablet' => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
238
+ // http://www.acer.ro/ac/ro/RO/content/drivers
239
+ // http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
240
+ // http://us.acer.com/ac/en/US/content/group/tablets
241
+ // http://www.acer.de/ac/de/DE/content/models/tablets/
242
+ // Can conflict with Micromax and Motorola phones codes.
243
+ 'AcerTablet' => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\b|W3-810|\bA3-A10\b|\bA3-A11\b|\bA3-A20\b|\bA3-A30',
244
+ // http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
245
+ // http://us.toshiba.com/tablets/tablet-finder
246
+ // http://www.toshiba.co.jp/regza/tablet/
247
+ 'ToshibaTablet' => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
248
+ // http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
249
+ // http://www.lg.com/us/tablets
250
+ 'LGTablet' => '\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\b',
251
+ 'FujitsuTablet' => 'Android.*\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\b',
252
+ // Prestigio Tablets http://www.prestigio.com/support
253
+ 'PrestigioTablet' => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
254
+ // http://support.lenovo.com/en_GB/downloads/default.page?#
255
+ 'LenovoTablet' => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
256
+ // http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
257
+ 'DellTablet' => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
258
+ // http://www.yarvik.com/en/matrix/tablets/
259
+ 'YarvikTablet' => 'Android.*\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\b',
260
+ 'MedionTablet' => 'Android.*\bOYO\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
261
+ 'ArnovaTablet' => '97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
262
+ // http://www.intenso.de/kategorie_en.php?kategorie=33
263
+ // @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
264
+ 'IntensoTablet' => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
265
+ // IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
266
+ 'IRUTablet' => 'M702pro',
267
+ 'MegafonTablet' => 'MegaFon V9|\bZTE V9\b|Android.*\bMT7A\b',
268
+ // http://www.e-boda.ro/tablete-pc.html
269
+ 'EbodaTablet' => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
270
+ // http://www.allview.ro/produse/droseries/lista-tablete-pc/
271
+ 'AllViewTablet' => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
272
+ // http://wiki.archosfans.com/index.php?title=Main_Page
273
+ 'ArchosTablet' => '\b(101G9|80G9|A101IT)\b|Qilive 97R|Archos5|\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\b',
274
+ // http://www.ainol.com/plugin.php?identifier=ainol&module=product
275
+ 'AinolTablet' => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
276
+ 'NokiaLumiaTablet' => 'Lumia 2520',
277
+ // @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
278
+ // Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
279
+ // http://www.sony.jp/support/tablet/
280
+ 'SonyTablet' => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31',
281
+ // http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
282
+ 'PhilipsTablet' => '\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\b',
283
+ // db + http://www.cube-tablet.com/buy-products.html
284
+ 'CubeTablet' => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
285
+ // http://www.cobyusa.com/?p=pcat&pcat_id=3001
286
+ 'CobyTablet' => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
287
+ // http://www.match.net.cn/products.asp
288
+ 'MIDTablet' => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10',
289
+ // http://www.msi.com/support
290
+ // @todo Research the Windows Tablets.
291
+ 'MSITablet' => 'MSI \b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\b',
292
+ // @todo http://www.kyoceramobile.com/support/drivers/
293
+ // 'KyoceraTablet' => null,
294
+ // @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
295
+ // 'IntextTablet' => null,
296
+ // http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
297
+ // http://www.imp3.net/14/show.php?itemid=20454
298
+ 'SMiTTablet' => 'Android.*(\bMID\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
299
+ // http://www.rock-chips.com/index.php?do=prod&pid=2
300
+ 'RockChipTablet' => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
301
+ // http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
302
+ 'FlyTablet' => 'IQ310|Fly Vision',
303
+ // http://www.bqreaders.com/gb/tablets-prices-sale.html
304
+ 'bqTablet' => 'Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus',
305
+ // http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
306
+ // http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
307
+ 'HuaweiTablet' => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
308
+ // Nec or Medias Tab
309
+ 'NecTablet' => '\bN-06D|\bN-08D',
310
+ // Pantech Tablets: http://www.pantechusa.com/phones/
311
+ 'PantechTablet' => 'Pantech.*P4100',
312
+ // Broncho Tablets: http://www.broncho.cn/ (hard to find)
313
+ 'BronchoTablet' => 'Broncho.*(N701|N708|N802|a710)',
314
+ // http://versusuk.com/support.html
315
+ 'VersusTablet' => 'TOUCHPAD.*[78910]|\bTOUCHTAB\b',
316
+ // http://www.zync.in/index.php/our-products/tablet-phablets
317
+ 'ZyncTablet' => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
318
+ // http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
319
+ 'PositivoTablet' => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
320
+ // https://www.nabitablet.com/
321
+ 'NabiTablet' => 'Android.*\bNabi',
322
+ 'KoboTablet' => 'Kobo Touch|\bK080\b|\bVox\b Build|\bArc\b Build',
323
+ // French Danew Tablets http://www.danew.com/produits-tablette.php
324
+ 'DanewTablet' => 'DSlide.*\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\b',
325
+ // Texet Tablets and Readers http://www.texet.ru/tablet/
326
+ 'TexetTablet' => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
327
+ // Avoid detecting 'PLAYSTATION 3' as mobile.
328
+ 'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
329
+ // http://www.trekstor.de/surftabs.html
330
+ 'TrekstorTablet' => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
331
+ // http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
332
+ 'PyleAudioTablet' => '\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\b',
333
+ // http://www.advandigital.com/index.php?link=content-product&jns=JP001
334
+ // because of the short codenames we have to include whitespaces to reduce the possible conflicts.
335
+ 'AdvanTablet' => 'Android.* \b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\b ',
336
+ // http://www.danytech.com/category/tablet-pc
337
+ 'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
338
+ // http://www.galapad.net/product.html
339
+ 'GalapadTablet' => 'Android.*\bG1\b',
340
+ // http://www.micromaxinfo.com/tablet/funbook
341
+ 'MicromaxTablet' => 'Funbook|Micromax.*\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\b',
342
+ // http://www.karbonnmobiles.com/products_tablet.php
343
+ 'KarbonnTablet' => 'Android.*\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\b',
344
+ // http://www.myallfine.com/Products.asp
345
+ 'AllFineTablet' => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
346
+ // http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
347
+ 'PROSCANTablet' => '\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\b',
348
+ // http://www.yonesnav.com/products/products.php
349
+ 'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
350
+ // http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
351
+ // China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
352
+ 'ChangJiaTablet' => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
353
+ // http://www.gloryunion.cn/products.asp
354
+ // http://www.allwinnertech.com/en/apply/mobile.html
355
+ // http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
356
+ // @todo: Softwiner tablets?
357
+ // aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
358
+ 'GUTablet' => 'TX-A1301|TX-M9002|Q702|kf026', // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
359
+ // http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
360
+ 'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
361
+ // http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
362
+ // @todo: add more tests.
363
+ 'OvermaxTablet' => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
364
+ // http://hclmetablet.com/India/index.php
365
+ 'HCLTablet' => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
366
+ // http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
367
+ 'DPSTablet' => 'DPS Dream 9|DPS Dual 7',
368
+ // http://www.visture.com/index.asp
369
+ 'VistureTablet' => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
370
+ // http://www.mijncresta.nl/tablet
371
+ 'CrestaTablet' => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
372
+ // MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
373
+ 'MediatekTablet' => '\bMT8125|MT8389|MT8135|MT8377\b',
374
+ // Concorde tab
375
+ 'ConcordeTablet' => 'Concorde([ ]+)?Tab|ConCorde ReadMan',
376
+ // GoClever Tablets - http://www.goclever.com/uk/products,c1/tablet,c5/
377
+ 'GoCleverTablet' => 'GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042',
378
+ // Modecom Tablets - http://www.modecom.eu/tablets/portal/
379
+ 'ModecomTablet' => 'FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003',
380
+ // Vonino Tablets - http://www.vonino.eu/tablets
381
+ 'VoninoTablet' => '\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\bQ8\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\b',
382
+ // ECS Tablets - http://www.ecs.com.tw/ECSWebSite/Product/Product_Tablet_List.aspx?CategoryID=14&MenuID=107&childid=M_107&LanID=0
383
+ 'ECSTablet' => 'V07OT2|TM105A|S10OT1|TR10CS1',
384
+ // Storex Tablets - http://storex.fr/espace_client/support.html
385
+ // @note: no need to add all the tablet codes since they are guided by the first regex.
386
+ 'StorexTablet' => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
387
+ // Generic Vodafone tablets.
388
+ 'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497',
389
+ // French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
390
+ // Aka: http://www.essentielb.fr/
391
+ 'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
392
+ // Ross & Moor - http://ross-moor.ru/
393
+ 'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
394
+ // i-mobile http://product.i-mobilephone.com/Mobile_Device
395
+ 'iMobileTablet' => 'i-mobile i-note',
396
+ // http://www.tolino.de/de/vergleichen/
397
+ 'TolinoTablet' => 'tolino tab [0-9.]+|tolino shine',
398
+ // AudioSonic - a Kmart brand
399
+ // http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72&currentPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
400
+ 'AudioSonicTablet' => '\bC-22Q|T7-QC|T-17B|T-17P\b',
401
+ // AMPE Tablets - http://www.ampe.com.my/product-category/tablets/
402
+ // @todo: add them gradually to avoid conflicts.
403
+ 'AMPETablet' => 'Android.* A78 ',
404
+ // Skk Mobile - http://skkmobile.com.ph/product_tablets.php
405
+ 'SkkTablet' => 'Android.* (SKYPAD|PHOENIX|CYCLOPS)',
406
+ // Tecno Mobile (only tablet) - http://www.tecno-mobile.com/index.php/product?filterby=smart&list_order=all&page=1
407
+ 'TecnoTablet' => 'TECNO P9',
408
+ // JXD (consoles & tablets) - http://jxd.hk/products.asp?selectclassid=009008&clsid=3
409
+ 'JXDTablet' => 'Android.* \b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\b',
410
+ // i-Joy tablets - http://www.i-joy.es/en/cat/products/tablets/
411
+ 'iJoyTablet' => 'Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)',
412
+ // http://www.intracon.eu/tablet
413
+ 'FX2Tablet' => 'FX2 PAD7|FX2 PAD10',
414
+ // http://www.xoro.de/produkte/
415
+ // @note: Might be the same brand with 'Simply tablets'
416
+ 'XoroTablet' => 'KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151',
417
+ // http://www1.viewsonic.com/products/computing/tablets/
418
+ 'ViewsonicTablet' => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
419
+ // http://www.odys.de/web/internet-tablet_en.html
420
+ 'OdysTablet' => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\bXELIO\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
421
+ // http://www.captiva-power.de/products.html#tablets-en
422
+ 'CaptivaTablet' => 'CAPTIVA PAD',
423
+ // IconBIT - http://www.iconbit.com/products/tablets/
424
+ 'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
425
+ // http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
426
+ 'TeclastTablet' => 'T98 4G|\bP80\b|\bX90HD\b|X98 Air|X98 Air 3G|\bX89\b|P80 3G|\bX80h\b|P98 Air|\bX89HD\b|P98 3G|\bP90HD\b|P89 3G|X98 3G|\bP70h\b|P79HD 3G|G18d 3G|\bP79HD\b|\bP89s\b|\bA88\b|\bP10HD\b|\bP19HD\b|G18 3G|\bP78HD\b|\bA78\b|\bP75\b|G17s 3G|G17h 3G|\bP85t\b|\bP90\b|\bP11\b|\bP98t\b|\bP98HD\b|\bG18d\b|\bP85s\b|\bP11HD\b|\bP88s\b|\bA80HD\b|\bA80se\b|\bA10h\b|\bP89\b|\bP78s\b|\bG18\b|\bP85\b|\bA70h\b|\bA70\b|\bG17\b|\bP18\b|\bA80s\b|\bA11s\b|\bP88HD\b|\bA80h\b|\bP76s\b|\bP76h\b|\bP98\b|\bA10HD\b|\bP78\b|\bP88\b|\bA11\b|\bA10t\b|\bP76a\b|\bP76t\b|\bP76e\b|\bP85HD\b|\bP85a\b|\bP86\b|\bP75HD\b|\bP76v\b|\bA12\b|\bP75a\b|\bA15\b|\bP76Ti\b|\bP81HD\b|\bA10\b|\bT760VE\b|\bT720HD\b|\bP76\b|\bP73\b|\bP71\b|\bP72\b|\bT720SE\b|\bC520Ti\b|\bT760\b|\bT720VE\b|T720-3GE|T720-WiFi',
427
+ // Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
428
+ 'OndaTablet' => '\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\b[\s]+',
429
+ 'JaytechTablet' => 'TPC-PA762',
430
+ 'BlaupunktTablet' => 'Endeavour 800NG|Endeavour 1010',
431
+ // http://www.digma.ru/support/download/
432
+ // @todo: Ebooks also (if requested)
433
+ 'DigmaTablet' => '\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\b',
434
+ // http://www.evolioshop.com/ro/tablete-pc.html
435
+ // http://www.evolio.ro/support/downloads_static.html?cat=2
436
+ // @todo: Research some more
437
+ 'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\bEvotab\b|\bNeura\b',
438
+ // @todo http://www.lavamobiles.com/tablets-data-cards
439
+ 'LavaTablet' => 'QPAD E704|\bIvoryS\b|E-TAB IVORY|\bE-TAB\b',
440
+ // http://www.breezetablet.com/
441
+ 'AocTablet' => 'MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712',
442
+ // http://www.mpmaneurope.com/en/products/internet-tablets-14/android-tablets-14/
443
+ 'MpmanTablet' => 'MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\bMPG7\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010',
444
+ // https://www.celkonmobiles.com/?_a=categoryphones&sid=2
445
+ 'CelkonTablet' => 'CT695|CT888|CT[\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\bCT-1\b',
446
+ // http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
447
+ 'WolderTablet' => 'miTab \b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\b',
448
+ // http://www.mi.com/en
449
+ 'MiTablet' => '\bMI PAD\b|\bHM NOTE 1W\b',
450
+ // http://www.nbru.cn/index.html
451
+ 'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
452
+ // http://navroad.com/products/produkty/tablety/
453
+ 'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
454
+ // http://leader-online.com/new_site/product-category/tablets/
455
+ // http://www.leader-online.net.au/List/Tablet
456
+ 'LeaderTablet' => 'TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100',
457
+ // http://www.datawind.com/ubislate/
458
+ 'UbislateTablet' => 'UbiSlate[\s]?7C',
459
+ // http://www.pocketbook-int.com/ru/support
460
+ 'PocketBookTablet' => 'Pocketbook',
461
+ // http://www.kocaso.com/product_tablet.html
462
+ 'KocasoTablet' => '\b(TB-1207)\b',
463
+ // http://global.hisense.com/product/asia/tablet/Sero7/201412/t20141215_91832.htm
464
+ 'HisenseTablet' => '\b(F5281|E2371)\b',
465
+ // http://www.tesco.com/direct/hudl/
466
+ 'Hudl' => 'Hudl HT7S3|Hudl 2',
467
+ // http://www.telstra.com.au/home-phone/thub-2/
468
+ 'TelstraTablet' => 'T-Hub2',
469
+ 'GenericTablet' => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b'
470
+ );
471
+
472
+ /**
473
+ * List of mobile Operating Systems.
474
+ *
475
+ * @var array
476
+ */
477
+ protected static $operatingSystems = array(
478
+ 'AndroidOS' => 'Android',
479
+ 'BlackBerryOS' => 'blackberry|\bBB10\b|rim tablet os',
480
+ 'PalmOS' => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
481
+ 'SymbianOS' => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
482
+ // @reference: http://en.wikipedia.org/wiki/Windows_Mobile
483
+ 'WindowsMobileOS' => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
484
+ // @reference: http://en.wikipedia.org/wiki/Windows_Phone
485
+ // http://wifeng.cn/?r=blog&a=view&id=106
486
+ // http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
487
+ // http://msdn.microsoft.com/library/ms537503.aspx
488
+ // https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
489
+ 'WindowsPhoneOS' => 'Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
490
+ 'iOS' => '\biPhone.*Mobile|\biPod|\biPad',
491
+ // http://en.wikipedia.org/wiki/MeeGo
492
+ // @todo: research MeeGo in UAs
493
+ 'MeeGoOS' => 'MeeGo',
494
+ // http://en.wikipedia.org/wiki/Maemo
495
+ // @todo: research Maemo in UAs
496
+ 'MaemoOS' => 'Maemo',
497
+ 'JavaOS' => 'J2ME/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
498
+ 'webOS' => 'webOS|hpwOS',
499
+ 'badaOS' => '\bBada\b',
500
+ 'BREWOS' => 'BREW',
501
+ );
502
+
503
+ /**
504
+ * List of mobile User Agents.
505
+ *
506
+ * IMPORTANT: This is a list of only mobile browsers.
507
+ * Mobile Detect 2.x supports only mobile browsers,
508
+ * it was never designed to detect all browsers.
509
+ * The change will come in 2017 in the 3.x release for PHP7.
510
+ *
511
+ * @var array
512
+ */
513
+ protected static $browsers = array(
514
+ //'Vivaldi' => 'Vivaldi',
515
+ // @reference: https://developers.google.com/chrome/mobile/docs/user-agent
516
+ 'Chrome' => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
517
+ 'Dolfin' => '\bDolfin\b',
518
+ 'Opera' => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
519
+ 'Skyfire' => 'Skyfire',
520
+ 'Edge' => 'Mobile Safari/[.0-9]* Edge',
521
+ 'IE' => 'IEMobile|MSIEMobile', // |Trident/[.0-9]+
522
+ 'Firefox' => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
523
+ 'Bolt' => 'bolt',
524
+ 'TeaShark' => 'teashark',
525
+ 'Blazer' => 'Blazer',
526
+ // @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
527
+ 'Safari' => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
528
+ // http://en.wikipedia.org/wiki/Midori_(web_browser)
529
+ //'Midori' => 'midori',
530
+ //'Tizen' => 'Tizen',
531
+ 'UCBrowser' => 'UC.*Browser|UCWEB',
532
+ 'baiduboxapp' => 'baiduboxapp',
533
+ 'baidubrowser' => 'baidubrowser',
534
+ // https://github.com/serbanghita/Mobile-Detect/issues/7
535
+ 'DiigoBrowser' => 'DiigoBrowser',
536
+ // http://www.puffinbrowser.com/index.php
537
+ 'Puffin' => 'Puffin',
538
+ // http://mercury-browser.com/index.html
539
+ 'Mercury' => '\bMercury\b',
540
+ // http://en.wikipedia.org/wiki/Obigo_Browser
541
+ 'ObigoBrowser' => 'Obigo',
542
+ // http://en.wikipedia.org/wiki/NetFront
543
+ 'NetFront' => 'NF-Browser',
544
+ // @reference: http://en.wikipedia.org/wiki/Minimo
545
+ // http://en.wikipedia.org/wiki/Vision_Mobile_Browser
546
+ 'GenericBrowser' => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
547
+ // @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
548
+ 'PaleMoon' => 'Android.*PaleMoon|Mobile.*PaleMoon',
549
+ );
550
+
551
+ /**
552
+ * Utilities.
553
+ *
554
+ * @var array
555
+ */
556
+ protected static $utilities = array(
557
+ // Experimental. When a mobile device wants to switch to 'Desktop Mode'.
558
+ // http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
559
+ // https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
560
+ // https://developers.facebook.com/docs/sharing/best-practices
561
+ 'Bot' => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
562
+ 'MobileBot' => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
563
+ 'DesktopMode' => 'WPDesktop',
564
+ 'TV' => 'SonyDTV|HbbTV', // experimental
565
+ 'WebKit' => '(webkit)[ /]([\w.]+)',
566
+ // @todo: Include JXD consoles.
567
+ 'Console' => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
568
+ 'Watch' => 'SM-V700',
569
+ );
570
+
571
+ /**
572
+ * All possible HTTP headers that represent the
573
+ * User-Agent string.
574
+ *
575
+ * @var array
576
+ */
577
+ protected static $uaHttpHeaders = array(
578
+ // The default User-Agent string.
579
+ 'HTTP_USER_AGENT',
580
+ // Header can occur on devices using Opera Mini.
581
+ 'HTTP_X_OPERAMINI_PHONE_UA',
582
+ // Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
583
+ 'HTTP_X_DEVICE_USER_AGENT',
584
+ 'HTTP_X_ORIGINAL_USER_AGENT',
585
+ 'HTTP_X_SKYFIRE_PHONE',
586
+ 'HTTP_X_BOLT_PHONE_UA',
587
+ 'HTTP_DEVICE_STOCK_UA',
588
+ 'HTTP_X_UCBROWSER_DEVICE_UA'
589
+ );
590
+
591
+ /**
592
+ * The individual segments that could exist in a User-Agent string. VER refers to the regular
593
+ * expression defined in the constant self::VER.
594
+ *
595
+ * @var array
596
+ */
597
+ protected static $properties = array(
598
+
599
+ // Build
600
+ 'Mobile' => 'Mobile/[VER]',
601
+ 'Build' => 'Build/[VER]',
602
+ 'Version' => 'Version/[VER]',
603
+ 'VendorID' => 'VendorID/[VER]',
604
+
605
+ // Devices
606
+ 'iPad' => 'iPad.*CPU[a-z ]+[VER]',
607
+ 'iPhone' => 'iPhone.*CPU[a-z ]+[VER]',
608
+ 'iPod' => 'iPod.*CPU[a-z ]+[VER]',
609
+ //'BlackBerry' => array('BlackBerry[VER]', 'BlackBerry [VER];'),
610
+ 'Kindle' => 'Kindle/[VER]',
611
+
612
+ // Browser
613
+ 'Chrome' => array('Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]'),
614
+ 'Coast' => array('Coast/[VER]'),
615
+ 'Dolfin' => 'Dolfin/[VER]',
616
+ // @reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
617
+ 'Firefox' => array('Firefox/[VER]', 'FxiOS/[VER]'),
618
+ 'Fennec' => 'Fennec/[VER]',
619
+ // http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
620
+ // https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
621
+ 'Edge' => 'Edge/[VER]',
622
+ 'IE' => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
623
+ // http://en.wikipedia.org/wiki/NetFront
624
+ 'NetFront' => 'NetFront/[VER]',
625
+ 'NokiaBrowser' => 'NokiaBrowser/[VER]',
626
+ 'Opera' => array( ' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]' ),
627
+ 'Opera Mini' => 'Opera Mini/[VER]',
628
+ 'Opera Mobi' => 'Version/[VER]',
629
+ 'UC Browser' => 'UC Browser[VER]',
630
+ 'MQQBrowser' => 'MQQBrowser/[VER]',
631
+ 'MicroMessenger' => 'MicroMessenger/[VER]',
632
+ 'baiduboxapp' => 'baiduboxapp/[VER]',
633
+ 'baidubrowser' => 'baidubrowser/[VER]',
634
+ 'SamsungBrowser' => 'SamsungBrowser/[VER]',
635
+ 'Iron' => 'Iron/[VER]',
636
+ // @note: Safari 7534.48.3 is actually Version 5.1.
637
+ // @note: On BlackBerry the Version is overwriten by the OS.
638
+ 'Safari' => array( 'Version/[VER]', 'Safari/[VER]' ),
639
+ 'Skyfire' => 'Skyfire/[VER]',
640
+ 'Tizen' => 'Tizen/[VER]',
641
+ 'Webkit' => 'webkit[ /][VER]',
642
+ 'PaleMoon' => 'PaleMoon/[VER]',
643
+
644
+ // Engine
645
+ 'Gecko' => 'Gecko/[VER]',
646
+ 'Trident' => 'Trident/[VER]',
647
+ 'Presto' => 'Presto/[VER]',
648
+ 'Goanna' => 'Goanna/[VER]',
649
+
650
+ // OS
651
+ 'iOS' => ' \bi?OS\b [VER][ ;]{1}',
652
+ 'Android' => 'Android [VER]',
653
+ 'BlackBerry' => array('BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
654
+ 'BREW' => 'BREW [VER]',
655
+ 'Java' => 'Java/[VER]',
656
+ // @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
657
+ // @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
658
+ 'Windows Phone OS' => array( 'Windows Phone OS [VER]', 'Windows Phone [VER]'),
659
+ 'Windows Phone' => 'Windows Phone [VER]',
660
+ 'Windows CE' => 'Windows CE/[VER]',
661
+ // http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
662
+ 'Windows NT' => 'Windows NT [VER]',
663
+ 'Symbian' => array('SymbianOS/[VER]', 'Symbian/[VER]'),
664
+ 'webOS' => array('webOS/[VER]', 'hpwOS/[VER];'),
665
+ );
666
+
667
+ /**
668
+ * Construct an instance of this class.
669
+ *
670
+ * @param array $headers Specify the headers as injection. Should be PHP _SERVER flavored.
671
+ * If left empty, will use the global _SERVER['HTTP_*'] vars instead.
672
+ * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
673
+ * from the $headers array instead.
674
+ */
675
+ public function __construct(
676
+ array $headers = null,
677
+ $userAgent = null
678
+ ) {
679
+ $this->setHttpHeaders($headers);
680
+ $this->setUserAgent($userAgent);
681
+ }
682
+
683
+ /**
684
+ * Get the current script version.
685
+ * This is useful for the demo.php file,
686
+ * so people can check on what version they are testing
687
+ * for mobile devices.
688
+ *
689
+ * @return string The version number in semantic version format.
690
+ */
691
+ public static function getScriptVersion()
692
+ {
693
+ return self::VERSION;
694
+ }
695
+
696
+ /**
697
+ * Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
698
+ *
699
+ * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
700
+ * the headers. The default null is left for backwards compatibility.
701
+ */
702
+ public function setHttpHeaders($httpHeaders = null)
703
+ {
704
+ // use global _SERVER if $httpHeaders aren't defined
705
+ if (!is_array($httpHeaders) || !count($httpHeaders)) {
706
+ $httpHeaders = $_SERVER;
707
+ }
708
+
709
+ // clear existing headers
710
+ $this->httpHeaders = array();
711
+
712
+ // Only save HTTP headers. In PHP land, that means only _SERVER vars that
713
+ // start with HTTP_.
714
+ foreach ($httpHeaders as $key => $value) {
715
+ if (substr($key, 0, 5) === 'HTTP_') {
716
+ $this->httpHeaders[$key] = $value;
717
+ }
718
+ }
719
+
720
+ // In case we're dealing with CloudFront, we need to know.
721
+ $this->setCfHeaders($httpHeaders);
722
+ }
723
+
724
+ /**
725
+ * Retrieves the HTTP headers.
726
+ *
727
+ * @return array
728
+ */
729
+ public function getHttpHeaders()
730
+ {
731
+ return $this->httpHeaders;
732
+ }
733
+
734
+ /**
735
+ * Retrieves a particular header. If it doesn't exist, no exception/error is caused.
736
+ * Simply null is returned.
737
+ *
738
+ * @param string $header The name of the header to retrieve. Can be HTTP compliant such as
739
+ * "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
740
+ * all-caps, HTTP_ prefixed, underscore seperated awesomeness.
741
+ *
742
+ * @return string|null The value of the header.
743
+ */
744
+ public function getHttpHeader($header)
745
+ {
746
+ // are we using PHP-flavored headers?
747
+ if (strpos($header, '_') === false) {
748
+ $header = str_replace('-', '_', $header);
749
+ $header = strtoupper($header);
750
+ }
751
+
752
+ // test the alternate, too
753
+ $altHeader = 'HTTP_' . $header;
754
+
755
+ //Test both the regular and the HTTP_ prefix
756
+ if (isset($this->httpHeaders[$header])) {
757
+ return $this->httpHeaders[$header];
758
+ } elseif (isset($this->httpHeaders[$altHeader])) {
759
+ return $this->httpHeaders[$altHeader];
760
+ }
761
+
762
+ return null;
763
+ }
764
+
765
+ public function getMobileHeaders()
766
+ {
767
+ return self::$mobileHeaders;
768
+ }
769
+
770
+ /**
771
+ * Get all possible HTTP headers that
772
+ * can contain the User-Agent string.
773
+ *
774
+ * @return array List of HTTP headers.
775
+ */
776
+ public function getUaHttpHeaders()
777
+ {
778
+ return self::$uaHttpHeaders;
779
+ }
780
+
781
+
782
+ /**
783
+ * Set CloudFront headers
784
+ * http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
785
+ *
786
+ * @param array $cfHeaders List of HTTP headers
787
+ *
788
+ * @return boolean If there were CloudFront headers to be set
789
+ */
790
+ public function setCfHeaders($cfHeaders = null) {
791
+ // use global _SERVER if $cfHeaders aren't defined
792
+ if (!is_array($cfHeaders) || !count($cfHeaders)) {
793
+ $cfHeaders = $_SERVER;
794
+ }
795
+
796
+ // clear existing headers
797
+ $this->cloudfrontHeaders = array();
798
+
799
+ // Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
800
+ // start with cloudfront-.
801
+ $response = false;
802
+ foreach ($cfHeaders as $key => $value) {
803
+ if (substr(strtolower($key), 0, 16) === 'http_cloudfront_') {
804
+ $this->cloudfrontHeaders[strtoupper($key)] = $value;
805
+ $response = true;
806
+ }
807
+ }
808
+
809
+ return $response;
810
+ }
811
+
812
+ /**
813
+ * Retrieves the cloudfront headers.
814
+ *
815
+ * @return array
816
+ */
817
+ public function getCfHeaders()
818
+ {
819
+ return $this->cloudfrontHeaders;
820
+ }
821
+
822
+ /**
823
+ * Set the User-Agent to be used.
824
+ *
825
+ * @param string $userAgent The user agent string to set.
826
+ *
827
+ * @return string|null
828
+ */
829
+ public function setUserAgent($userAgent = null)
830
+ {
831
+ // Invalidate cache due to #375
832
+ $this->cache = array();
833
+
834
+ if (false === empty($userAgent)) {
835
+ return $this->userAgent = $userAgent;
836
+ } else {
837
+ $this->userAgent = null;
838
+ foreach ($this->getUaHttpHeaders() as $altHeader) {
839
+ if (false === empty($this->httpHeaders[$altHeader])) { // @todo: should use getHttpHeader(), but it would be slow. (Serban)
840
+ $this->userAgent .= $this->httpHeaders[$altHeader] . " ";
841
+ }
842
+ }
843
+
844
+ if (!empty($this->userAgent)) {
845
+ return $this->userAgent = trim($this->userAgent);
846
+ }
847
+ }
848
+
849
+ if (count($this->getCfHeaders()) > 0) {
850
+ return $this->userAgent = 'Amazon CloudFront';
851
+ }
852
+ return $this->userAgent = null;
853
+ }
854
+
855
+ /**
856
+ * Retrieve the User-Agent.
857
+ *
858
+ * @return string|null The user agent if it's set.
859
+ */
860
+ public function getUserAgent()
861
+ {
862
+ return $this->userAgent;
863
+ }
864
+
865
+ /**
866
+ * Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
867
+ * self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
868
+ *
869
+ * @deprecated since version 2.6.9
870
+ *
871
+ * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
872
+ * parameter is null which will default to self::DETECTION_TYPE_MOBILE.
873
+ */
874
+ public function setDetectionType($type = null)
875
+ {
876
+ if ($type === null) {
877
+ $type = self::DETECTION_TYPE_MOBILE;
878
+ }
879
+
880
+ if ($type !== self::DETECTION_TYPE_MOBILE && $type !== self::DETECTION_TYPE_EXTENDED) {
881
+ return;
882
+ }
883
+
884
+ $this->detectionType = $type;
885
+ }
886
+
887
+ public function getMatchingRegex()
888
+ {
889
+ return $this->matchingRegex;
890
+ }
891
+
892
+ public function getMatchesArray()
893
+ {
894
+ return $this->matchesArray;
895
+ }
896
+
897
+ /**
898
+ * Retrieve the list of known phone devices.
899
+ *
900
+ * @return array List of phone devices.
901
+ */
902
+ public static function getPhoneDevices()
903
+ {
904
+ return self::$phoneDevices;
905
+ }
906
+
907
+ /**
908
+ * Retrieve the list of known tablet devices.
909
+ *
910
+ * @return array List of tablet devices.
911
+ */
912
+ public static function getTabletDevices()
913
+ {
914
+ return self::$tabletDevices;
915
+ }
916
+
917
+ /**
918
+ * Alias for getBrowsers() method.
919
+ *
920
+ * @return array List of user agents.
921
+ */
922
+ public static function getUserAgents()
923
+ {
924
+ return self::getBrowsers();
925
+ }
926
+
927
+ /**
928
+ * Retrieve the list of known browsers. Specifically, the user agents.
929
+ *
930
+ * @return array List of browsers / user agents.
931
+ */
932
+ public static function getBrowsers()
933
+ {
934
+ return self::$browsers;
935
+ }
936
+
937
+ /**
938
+ * Retrieve the list of known utilities.
939
+ *
940
+ * @return array List of utilities.
941
+ */
942
+ public static function getUtilities()
943
+ {
944
+ return self::$utilities;
945
+ }
946
+
947
+ /**
948
+ * Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
949
+ *
950
+ * @deprecated since version 2.6.9
951
+ *
952
+ * @return array All the rules (but not extended).
953
+ */
954
+ public static function getMobileDetectionRules()
955
+ {
956
+ static $rules;
957
+
958
+ if (!$rules) {
959
+ $rules = array_merge(
960
+ self::$phoneDevices,
961
+ self::$tabletDevices,
962
+ self::$operatingSystems,
963
+ self::$browsers
964
+ );
965
+ }
966
+
967
+ return $rules;
968
+
969
+ }
970
+
971
+ /**
972
+ * Method gets the mobile detection rules + utilities.
973
+ * The reason this is separate is because utilities rules
974
+ * don't necessary imply mobile. This method is used inside
975
+ * the new $detect->is('stuff') method.
976
+ *
977
+ * @deprecated since version 2.6.9
978
+ *
979
+ * @return array All the rules + extended.
980
+ */
981
+ public function getMobileDetectionRulesExtended()
982
+ {
983
+ static $rules;
984
+
985
+ if (!$rules) {
986
+ // Merge all rules together.
987
+ $rules = array_merge(
988
+ self::$phoneDevices,
989
+ self::$tabletDevices,
990
+ self::$operatingSystems,
991
+ self::$browsers,
992
+ self::$utilities
993
+ );
994
+ }
995
+
996
+ return $rules;
997
+ }
998
+
999
+ /**
1000
+ * Retrieve the current set of rules.
1001
+ *
1002
+ * @deprecated since version 2.6.9
1003
+ *
1004
+ * @return array
1005
+ */
1006
+ public function getRules()
1007
+ {
1008
+ if ($this->detectionType == self::DETECTION_TYPE_EXTENDED) {
1009
+ return self::getMobileDetectionRulesExtended();
1010
+ } else {
1011
+ return self::getMobileDetectionRules();
1012
+ }
1013
+ }
1014
+
1015
+ /**
1016
+ * Retrieve the list of mobile operating systems.
1017
+ *
1018
+ * @return array The list of mobile operating systems.
1019
+ */
1020
+ public static function getOperatingSystems()
1021
+ {
1022
+ return self::$operatingSystems;
1023
+ }
1024
+
1025
+ /**
1026
+ * Check the HTTP headers for signs of mobile.
1027
+ * This is the fastest mobile check possible; it's used
1028
+ * inside isMobile() method.
1029
+ *
1030
+ * @return bool
1031
+ */
1032
+ public function checkHttpHeadersForMobile()
1033
+ {
1034
+
1035
+ foreach ($this->getMobileHeaders() as $mobileHeader => $matchType) {
1036
+ if (isset($this->httpHeaders[$mobileHeader])) {
1037
+ if (is_array($matchType['matches'])) {
1038
+ foreach ($matchType['matches'] as $_match) {
1039
+ if (strpos($this->httpHeaders[$mobileHeader], $_match) !== false) {
1040
+ return true;
1041
+ }
1042
+ }
1043
+
1044
+ return false;
1045
+ } else {
1046
+ return true;
1047
+ }
1048
+ }
1049
+ }
1050
+
1051
+ return false;
1052
+
1053
+ }
1054
+
1055
+ /**
1056
+ * Magic overloading method.
1057
+ *
1058
+ * @method boolean is[...]()
1059
+ * @param string $name
1060
+ * @param array $arguments
1061
+ * @return mixed
1062
+ * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
1063
+ */
1064
+ public function __call($name, $arguments)
1065
+ {
1066
+ // make sure the name starts with 'is', otherwise
1067
+ if (substr($name, 0, 2) !== 'is') {
1068
+ throw new BadMethodCallException("No such method exists: $name");
1069
+ }
1070
+
1071
+ $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1072
+
1073
+ $key = substr($name, 2);
1074
+
1075
+ return $this->matchUAAgainstKey($key);
1076
+ }
1077
+
1078
+ /**
1079
+ * Find a detection rule that matches the current User-agent.
1080
+ *
1081
+ * @param null $userAgent deprecated
1082
+ * @return boolean
1083
+ */
1084
+ protected function matchDetectionRulesAgainstUA($userAgent = null)
1085
+ {
1086
+ // Begin general search.
1087
+ foreach ($this->getRules() as $_regex) {
1088
+ if (empty($_regex)) {
1089
+ continue;
1090
+ }
1091
+
1092
+ if ($this->match($_regex, $userAgent)) {
1093
+ return true;
1094
+ }
1095
+ }
1096
+
1097
+ return false;
1098
+ }
1099
+
1100
+ /**
1101
+ * Search for a certain key in the rules array.
1102
+ * If the key is found then try to match the corresponding
1103
+ * regex against the User-Agent.
1104
+ *
1105
+ * @param string $key
1106
+ *
1107
+ * @return boolean
1108
+ */
1109
+ protected function matchUAAgainstKey($key)
1110
+ {
1111
+ // Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
1112
+ $key = strtolower($key);
1113
+ if (false === isset($this->cache[$key])) {
1114
+
1115
+ // change the keys to lower case
1116
+ $_rules = array_change_key_case($this->getRules());
1117
+
1118
+ if (false === empty($_rules[$key])) {
1119
+ $this->cache[$key] = $this->match($_rules[$key]);
1120
+ }
1121
+
1122
+ if (false === isset($this->cache[$key])) {
1123
+ $this->cache[$key] = false;
1124
+ }
1125
+ }
1126
+
1127
+ return $this->cache[$key];
1128
+ }
1129
+
1130
+ /**
1131
+ * Check if the device is mobile.
1132
+ * Returns true if any type of mobile device detected, including special ones
1133
+ * @param null $userAgent deprecated
1134
+ * @param null $httpHeaders deprecated
1135
+ * @return bool
1136
+ */
1137
+ public function isMobile($userAgent = null, $httpHeaders = null)
1138
+ {
1139
+
1140
+ if ($httpHeaders) {
1141
+ $this->setHttpHeaders($httpHeaders);
1142
+ }
1143
+
1144
+ if ($userAgent) {
1145
+ $this->setUserAgent($userAgent);
1146
+ }
1147
+
1148
+ // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
1149
+ if ($this->getUserAgent() === 'Amazon CloudFront') {
1150
+ $cfHeaders = $this->getCfHeaders();
1151
+ if(array_key_exists('HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] === 'true') {
1152
+ return true;
1153
+ }
1154
+ }
1155
+
1156
+ $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1157
+
1158
+ if ($this->checkHttpHeadersForMobile()) {
1159
+ return true;
1160
+ } else {
1161
+ return $this->matchDetectionRulesAgainstUA();
1162
+ }
1163
+
1164
+ }
1165
+
1166
+ /**
1167
+ * Check if the device is a tablet.
1168
+ * Return true if any type of tablet device is detected.
1169
+ *
1170
+ * @param string $userAgent deprecated
1171
+ * @param array $httpHeaders deprecated
1172
+ * @return bool
1173
+ */
1174
+ public function isTablet($userAgent = null, $httpHeaders = null)
1175
+ {
1176
+ // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
1177
+ if ($this->getUserAgent() === 'Amazon CloudFront') {
1178
+ $cfHeaders = $this->getCfHeaders();
1179
+ if(array_key_exists('HTTP_CLOUDFRONT_IS_TABLET_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] === 'true') {
1180
+ return true;
1181
+ }
1182
+ }
1183
+
1184
+ $this->setDetectionType(self::DETECTION_TYPE_MOBILE);
1185
+
1186
+ foreach (self::$tabletDevices as $_regex) {
1187
+ if ($this->match($_regex, $userAgent)) {
1188
+ return true;
1189
+ }
1190
+ }
1191
+
1192
+ return false;
1193
+ }
1194
+
1195
+ /**
1196
+ * This method checks for a certain property in the
1197
+ * userAgent.
1198
+ * @todo: The httpHeaders part is not yet used.
1199
+ *
1200
+ * @param string $key
1201
+ * @param string $userAgent deprecated
1202
+ * @param string $httpHeaders deprecated
1203
+ * @return bool|int|null
1204
+ */
1205
+ public function is($key, $userAgent = null, $httpHeaders = null)
1206
+ {
1207
+ // Set the UA and HTTP headers only if needed (eg. batch mode).
1208
+ if ($httpHeaders) {
1209
+ $this->setHttpHeaders($httpHeaders);
1210
+ }
1211
+
1212
+ if ($userAgent) {
1213
+ $this->setUserAgent($userAgent);
1214
+ }
1215
+
1216
+ $this->setDetectionType(self::DETECTION_TYPE_EXTENDED);
1217
+
1218
+ return $this->matchUAAgainstKey($key);
1219
+ }
1220
+
1221
+ /**
1222
+ * Some detection rules are relative (not standard),
1223
+ * because of the diversity of devices, vendors and
1224
+ * their conventions in representing the User-Agent or
1225
+ * the HTTP headers.
1226
+ *
1227
+ * This method will be used to check custom regexes against
1228
+ * the User-Agent string.
1229
+ *
1230
+ * @param $regex
1231
+ * @param string $userAgent
1232
+ * @return bool
1233
+ *
1234
+ * @todo: search in the HTTP headers too.
1235
+ */
1236
+ public function match($regex, $userAgent = null)
1237
+ {
1238
+ $match = (bool) preg_match(sprintf('#%s#is', $regex), (false === empty($userAgent) ? $userAgent : $this->userAgent), $matches);
1239
+ // If positive match is found, store the results for debug.
1240
+ if ($match) {
1241
+ $this->matchingRegex = $regex;
1242
+ $this->matchesArray = $matches;
1243
+ }
1244
+
1245
+ return $match;
1246
+ }
1247
+
1248
+ /**
1249
+ * Get the properties array.
1250
+ *
1251
+ * @return array
1252
+ */
1253
+ public static function getProperties()
1254
+ {
1255
+ return self::$properties;
1256
+ }
1257
+
1258
+ /**
1259
+ * Prepare the version number.
1260
+ *
1261
+ * @todo Remove the error supression from str_replace() call.
1262
+ *
1263
+ * @param string $ver The string version, like "2.6.21.2152";
1264
+ *
1265
+ * @return float
1266
+ */
1267
+ public function prepareVersionNo($ver)
1268
+ {
1269
+ $ver = str_replace(array('_', ' ', '/'), '.', $ver);
1270
+ $arrVer = explode('.', $ver, 2);
1271
+
1272
+ if (isset($arrVer[1])) {
1273
+ $arrVer[1] = @str_replace('.', '', $arrVer[1]); // @todo: treat strings versions.
1274
+ }
1275
+
1276
+ return (float) implode('.', $arrVer);
1277
+ }
1278
+
1279
+ /**
1280
+ * Check the version of the given property in the User-Agent.
1281
+ * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
1282
+ *
1283
+ * @param string $propertyName The name of the property. See self::getProperties() array
1284
+ * keys for all possible properties.
1285
+ * @param string $type Either self::VERSION_TYPE_STRING to get a string value or
1286
+ * self::VERSION_TYPE_FLOAT indicating a float value. This parameter
1287
+ * is optional and defaults to self::VERSION_TYPE_STRING. Passing an
1288
+ * invalid parameter will default to the this type as well.
1289
+ *
1290
+ * @return string|float The version of the property we are trying to extract.
1291
+ */
1292
+ public function version($propertyName, $type = self::VERSION_TYPE_STRING)
1293
+ {
1294
+ if (empty($propertyName)) {
1295
+ return false;
1296
+ }
1297
+
1298
+ // set the $type to the default if we don't recognize the type
1299
+ if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
1300
+ $type = self::VERSION_TYPE_STRING;
1301
+ }
1302
+
1303
+ $properties = self::getProperties();
1304
+
1305
+ // Check if the property exists in the properties array.
1306
+ if (true === isset($properties[$propertyName])) {
1307
+
1308
+ // Prepare the pattern to be matched.
1309
+ // Make sure we always deal with an array (string is converted).
1310
+ $properties[$propertyName] = (array) $properties[$propertyName];
1311
+
1312
+ foreach ($properties[$propertyName] as $propertyMatchString) {
1313
+
1314
+ $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);
1315
+
1316
+ // Identify and extract the version.
1317
+ preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);
1318
+
1319
+ if (false === empty($match[1])) {
1320
+ $version = ($type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);
1321
+
1322
+ return $version;
1323
+ }
1324
+
1325
+ }
1326
+
1327
+ }
1328
+
1329
+ return false;
1330
+ }
1331
+
1332
+ /**
1333
+ * Retrieve the mobile grading, using self::MOBILE_GRADE_* constants.
1334
+ *
1335
+ * @return string One of the self::MOBILE_GRADE_* constants.
1336
+ */
1337
+ public function mobileGrade()
1338
+ {
1339
+ $isMobile = $this->isMobile();
1340
+
1341
+ if (
1342
+ // Apple iOS 4-7.0 – Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3 / 5.1 / 6.1), iPad 3 (5.1 / 6.0), iPad Mini (6.1), iPad Retina (7.0), iPhone 3GS (4.3), iPhone 4 (4.3 / 5.1), iPhone 4S (5.1 / 6.0), iPhone 5 (6.0), and iPhone 5S (7.0)
1343
+ $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1344
+ $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1345
+ $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) >= 4.3 ||
1346
+
1347
+ // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)
1348
+ // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM
1349
+ // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices
1350
+ // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7
1351
+ ( $this->version('Android', self::VERSION_TYPE_FLOAT)>2.1 && $this->is('Webkit') ) ||
1352
+
1353
+ // Windows Phone 7.5-8 - Tested on the HTC Surround (7.5), HTC Trophy (7.5), LG-E900 (7.5), Nokia 800 (7.8), HTC Mazaa (7.8), Nokia Lumia 520 (8), Nokia Lumia 920 (8), HTC 8x (8)
1354
+ $this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT) >= 7.5 ||
1355
+
1356
+ // Tested on the Torch 9800 (6) and Style 9670 (6), BlackBerry® Torch 9810 (7), BlackBerry Z10 (10)
1357
+ $this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 6.0 ||
1358
+ // Blackberry Playbook (1.0-2.0) - Tested on PlayBook
1359
+ $this->match('Playbook.*Tablet') ||
1360
+
1361
+ // Palm WebOS (1.4-3.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0), HP TouchPad (3.0)
1362
+ ( $this->version('webOS', self::VERSION_TYPE_FLOAT) >= 1.4 && $this->match('Palm|Pre|Pixi') ) ||
1363
+ // Palm WebOS 3.0 - Tested on HP TouchPad
1364
+ $this->match('hp.*TouchPad') ||
1365
+
1366
+ // Firefox Mobile 18 - Tested on Android 2.3 and 4.1 devices
1367
+ ( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 18 ) ||
1368
+
1369
+ // Chrome for Android - Tested on Android 4.0, 4.1 device
1370
+ ( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 4.0 ) ||
1371
+
1372
+ // Skyfire 4.1 - Tested on Android 2.3 device
1373
+ ( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT) >= 4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
1374
+
1375
+ // Opera Mobile 11.5-12: Tested on Android 2.3
1376
+ ( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11.5 && $this->is('AndroidOS') ) ||
1377
+
1378
+ // Meego 1.2 - Tested on Nokia 950 and N9
1379
+ $this->is('MeeGoOS') ||
1380
+
1381
+ // Tizen (pre-release) - Tested on early hardware
1382
+ $this->is('Tizen') ||
1383
+
1384
+ // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser
1385
+ // @todo: more tests here!
1386
+ $this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT) >= 2.0 ||
1387
+
1388
+ // UC Browser - Tested on Android 2.3 device
1389
+ ( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||
1390
+
1391
+ // Kindle 3 and Fire - Tested on the built-in WebKit browser for each
1392
+ ( $this->match('Kindle Fire') ||
1393
+ $this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT) >= 3.0 ) ||
1394
+
1395
+ // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet
1396
+ $this->is('AndroidOS') && $this->is('NookTablet') ||
1397
+
1398
+ // Chrome Desktop 16-24 - Tested on OS X 10.7 and Windows 7
1399
+ $this->version('Chrome', self::VERSION_TYPE_FLOAT) >= 16 && !$isMobile ||
1400
+
1401
+ // Safari Desktop 5-6 - Tested on OS X 10.7 and Windows 7
1402
+ $this->version('Safari', self::VERSION_TYPE_FLOAT) >= 5.0 && !$isMobile ||
1403
+
1404
+ // Firefox Desktop 10-18 - Tested on OS X 10.7 and Windows 7
1405
+ $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 10.0 && !$isMobile ||
1406
+
1407
+ // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7
1408
+ $this->version('IE', self::VERSION_TYPE_FLOAT) >= 7.0 && !$isMobile ||
1409
+
1410
+ // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7
1411
+ $this->version('Opera', self::VERSION_TYPE_FLOAT) >= 10 && !$isMobile
1412
+ ){
1413
+ return self::MOBILE_GRADE_A;
1414
+ }
1415
+
1416
+ if (
1417
+ $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
1418
+ $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<4.3 ||
1419
+ $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT)<4.3 ||
1420
+
1421
+ // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770
1422
+ $this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||
1423
+
1424
+ //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3
1425
+ ($this->version('Opera Mini', self::VERSION_TYPE_FLOAT) >= 5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT) <= 7.0 &&
1426
+ ($this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 || $this->is('iOS')) ) ||
1427
+
1428
+ // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)
1429
+ $this->match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||
1430
+
1431
+ // @todo: report this (tested on Nokia N71)
1432
+ $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11 && $this->is('SymbianOS')
1433
+ ){
1434
+ return self::MOBILE_GRADE_B;
1435
+ }
1436
+
1437
+ if (
1438
+ // Blackberry 4.x - Tested on the Curve 8330
1439
+ $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) <= 5.0 ||
1440
+ // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)
1441
+ $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT) <= 5.2 ||
1442
+
1443
+ // Tested on original iPhone (3.1), iPhone 3 (3.2)
1444
+ $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1445
+ $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1446
+ $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) <= 3.2 ||
1447
+
1448
+ // Internet Explorer 7 and older - Tested on Windows XP
1449
+ $this->version('IE', self::VERSION_TYPE_FLOAT) <= 7.0 && !$isMobile
1450
+ ){
1451
+ return self::MOBILE_GRADE_C;
1452
+ }
1453
+
1454
+ // All older smartphone platforms and featurephones - Any device that doesn't support media queries
1455
+ // will receive the basic, C grade experience.
1456
+ return self::MOBILE_GRADE_C;
1457
+ }
1458
+ }
1459
+ }
{classes → lite/classes}/ig-upsale-admin.php RENAMED
@@ -1,9 +1,9 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Compatibility class with other plugins
5
  */
6
- if ( !class_exists( 'Icegram_upsale' ) ) {
7
  class Icegram_upsale {
8
  function __construct() {
9
  add_action( 'add_meta_boxes', array( &$this, 'add_campaigns_analytics_metaboxes' ), 0 );
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  /**
4
  * Icegram Compatibility class with other plugins
5
  */
6
+ if ( ! class_exists( 'Icegram_upsale' ) ) {
7
  class Icegram_upsale {
8
  function __construct() {
9
  add_action( 'add_meta_boxes', array( &$this, 'add_campaigns_analytics_metaboxes' ), 0 );
gallery.php → lite/gallery.php RENAMED
File without changes
ig-offer.php → lite/ig-offer.php RENAMED
@@ -15,8 +15,8 @@ $ig_current_date = strtotime( date_i18n( $timezone_format ) );
15
  // BFCM 2020 Campaign
16
  if ( ( get_option( 'ig_offer_bfcm_2020_icegram' ) !== 'yes' ) && ( $ig_current_date >= strtotime( "2020-11-24" ) ) && ( $ig_current_date <= strtotime( "2020-12-02" ) ) ) { ?>
17
  <div class="wrap">
18
- <div class="ig_es_offer">
19
  <a target="_blank" href="?ig_dismiss_admin_notice=1&ig_option_name=ig_offer_bfcm_2020"><img style="margin:0 auto" src="<?php echo $this->plugin_url; ?>/assets/images/bfcm_2020.jpg"/></a>
20
  </div>
21
  </div>
22
- <?php } ?>
15
  // BFCM 2020 Campaign
16
  if ( ( get_option( 'ig_offer_bfcm_2020_icegram' ) !== 'yes' ) && ( $ig_current_date >= strtotime( "2020-11-24" ) ) && ( $ig_current_date <= strtotime( "2020-12-02" ) ) ) { ?>
17
  <div class="wrap">
18
+ <div class="ig_es_offer bg-indigo-800">
19
  <a target="_blank" href="?ig_dismiss_admin_notice=1&ig_option_name=ig_offer_bfcm_2020"><img style="margin:0 auto" src="<?php echo $this->plugin_url; ?>/assets/images/bfcm_2020.jpg"/></a>
20
  </div>
21
  </div>
22
+ <?php } ?>
{lang → lite/lang}/icegram-de_DE.mo RENAMED
File without changes
{lang → lite/lang}/icegram-de_DE.po RENAMED
@@ -1,1125 +1,1125 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Icegram 1.1.1\n"
4
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/icegram\n"
5
- "POT-Creation-Date: 2015-09-24 12:56+0100\n"
6
- "PO-Revision-Date: 2015-12-30 16:49+0100\n"
7
- "Last-Translator: Alessandro Massasso <alessandro.massasso@drivek.it>\n"
8
- "Language-Team: Icegram Team <hello@icegram.com>\n"
9
- "Language: de_DE\n"
10
- "MIME-Version: 1.0\n"
11
- "Content-Type: text/plain; charset=UTF-8\n"
12
- "Content-Transfer-Encoding: 8bit\n"
13
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
- "X-Poedit-SourceCharset: UTF-8\n"
15
- "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
16
- "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
17
- "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
18
- "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
19
- "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
20
- "X-Poedit-Basepath: .\n"
21
- "X-Generator: Poedit 1.8.6\n"
22
- "X-Loco-Target-Locale: it_IT\n"
23
- "X-Poedit-SearchPath-0: ../.\n"
24
-
25
- #: .././about-icegram.php:128 .././classes/class-icegram-campaign-admin.php:453
26
- msgid "Name"
27
- msgstr "Name"
28
-
29
- #: .././about-icegram.php:132
30
- msgid "E-mail"
31
- msgstr "Email"
32
-
33
- #: .././about-icegram.php:136
34
- msgid "Subject"
35
- msgstr "Betreff"
36
-
37
- #: .././about-icegram.php:140 .././icegram.php:1015
38
- #: .././classes/class-icegram-campaign-admin.php:47
39
- #: .././classes/class-icegram-campaign-admin.php:64
40
- msgid "Message"
41
- msgstr "Nachricht"
42
-
43
- #: .././about-icegram.php:167 .././icegram.php:417
44
- msgid "Welcome to Icegram"
45
- msgstr "Wilkommen zu Icegram"
46
-
47
- #: .././about-icegram.php:169
48
- msgid ""
49
- "Your sample campaign is ready. We've added a few messages for you to test."
50
- msgstr ""
51
- "Ihre Probe-Kampagne ist fertig. Wir haben ein paar Nachrichten für Sie zum "
52
- "testen hinzugefügt."
53
-
54
- #: .././about-icegram.php:177
55
- msgid "Edit & Publish it"
56
- msgstr "Editieren & Veröffentlichen"
57
-
58
- #: .././about-icegram.php:178
59
- msgid "OR"
60
- msgstr "oder"
61
-
62
- #: .././about-icegram.php:179
63
- msgid "Preview Campaign"
64
- msgstr "Vorschau Kampagne"
65
-
66
- #: .././about-icegram.php:184
67
- #, php-format
68
- msgid "Version: %s"
69
- msgstr "Version: %s"
70
-
71
- #: .././about-icegram.php:187
72
- msgid "Questions? Need Help?"
73
- msgstr "Fragen? Brauchen Sie Hilfe?"
74
-
75
- #: .././about-icegram.php:188 .././about-icegram.php:295
76
- msgid "Contact Us"
77
- msgstr "Kontaktieren Sie uns."
78
-
79
- #: .././about-icegram.php:198
80
- msgid ""
81
- "Do read Icegram's core concepts below to understand how you can use Icegram "
82
- "to inspire, convert and engage your audience."
83
- msgstr ""
84
- "Sie lesen unten die Kernkonzepte von Icegram, um zu verstehen, wie Sie "
85
- "Icegram verwenden, um zu inspirieren und um sich für ihre Zielgruppe "
86
- "engagieren."
87
-
88
- #: .././about-icegram.php:203 .././icegram.php:1014 .././icegram.php:1020
89
- #: .././icegram.php:1026
90
- msgid "Messages"
91
- msgstr "Nachrichten"
92
-
93
- #: .././about-icegram.php:204
94
- msgid "A 'Message' is a communication you want to deliver to your audience."
95
- msgstr ""
96
- "Eine 'Nachricht' ist ein Text den Sie brauchen, wenn Sie ihr Publikum "
97
- "beliefern möchten."
98
-
99
- #: .././about-icegram.php:205
100
- msgid "And Icegram comes with not one, but four message types."
101
- msgstr "Icegram kommt nicht mit einen Nachrichtentyp, sondern mit vier."
102
-
103
- #: .././about-icegram.php:206
104
- msgid ""
105
- "Different message types look and behave differently, but they all have many "
106
- "common characteristics. For instance, most message types will allow you to "
107
- "set a headline, a body text, label for the ‘call to action’ button, a link "
108
- "for that button, theme and styling options, animation effect and position on "
109
- "screen where that message should show."
110
- msgstr ""
111
- "Unterschiedliche Nachrichtentypen zu schauen und sich anders verhalten, aber "
112
- "sie alle haben viele gemeinsame Merkmale. Zum Beispiel werden die meisten "
113
- "Nachrichtentypen können Sie eine Überschrift, ein Textkörper, Bezeichnung "
114
- "für die Schaltfläche \"Aufruf zum Handeln\", einen Link für diese Taste, "
115
- "Thema und Styling-Optionen, Animationseffekt und die Position auf dem "
116
- "Bildschirm festgelegt, wo die Nachricht sollte zeigen ."
117
-
118
- #: .././about-icegram.php:210
119
- msgid "Action Bar"
120
- msgstr "Aktionsleiste"
121
-
122
- #: .././about-icegram.php:212
123
- msgid ""
124
- "An action bar is a proven attention grabber. It shows up as a solid bar "
125
- "either at top or bottom. Use it for your most important messages or time "
126
- "sensitive announcements. Put longer content in it and it acts like a "
127
- "collapsible panel!"
128
- msgstr ""
129
- "Eine Aktionsleiste erregt erwiesenen die Aufmerksamkeit. Sie zeigt sich als "
130
- "eine solide Leiste entweder oben oder unten. Verwenden Sie es für Ihre "
131
- "wichtigsten Nachrichten oder zeitkritische Ankündigungen. Setzen Sie mehr "
132
- "Inhalte und es wirkt wie ein zusammenklappbare Tafel!"
133
-
134
- #: .././about-icegram.php:213
135
- msgid "Messenger"
136
- msgstr "Messenger"
137
-
138
- #: .././about-icegram.php:215
139
- msgid ""
140
- "A messenger is best used to invoke interest while your visitor is reading "
141
- "your content. Users perceive it as something new, important and urgent and "
142
- "are highly likely to click on it."
143
- msgstr ""
144
- "Ein Messenger wird am besten verwendet um Interesse zu erzeugen, während die "
145
- "Besucher dabei sind den Inhalt der Seite zu lesen. Benutzer sehen es als "
146
- "etwas Neues, wichtiges und dringendes und mit hoher Wahrscheinlichkeit "
147
- "werden Sie darauf klicken."
148
-
149
- #: .././about-icegram.php:219
150
- msgid "Toast Notification"
151
- msgstr "Toast Benachrichtigung"
152
-
153
- #: .././about-icegram.php:221
154
- msgid ""
155
- "Want to alert your visitor about some news, an update from your blog, a "
156
- "social proof or an offer? Use Icegram’s unique toast notification, it will "
157
- "catch their attention, let them click on the message, and disappear after a "
158
- "while."
159
- msgstr ""
160
- "Möchten Sie Ihre Besucher benachrichtigen über neue News, ein Update von "
161
- "Ihrem Blog, einen sozialen Beweis oder ein Angebot aufmerksam machen? "
162
- "Verwenden Icegram einzigartige Toast Benachrichtigung sie wird ihre "
163
- "Aufmerksamkeit erregen, lassen Sie sie auf die Nachricht klicken, und nach "
164
- "einer Weile verschwinden."
165
-
166
- #: .././about-icegram.php:222
167
- msgid "Popup"
168
- msgstr "Popup"
169
-
170
- #: .././about-icegram.php:224
171
- msgid ""
172
- "Lightbox popup windows are most widely used for lead capture, promotions and "
173
- "additional content display. Ask visitors to sign up to your newsletter, or "
174
- "like you on social networks, or tell them about a special offer..."
175
- msgstr ""
176
- "Lightbox Popup-Fenster werden am häufigsten für die Lead-Erfassung, Aktionen "
177
- "und zusätzliche Inhalte verwendet. Forden Sie den Besucher auf Ihrem "
178
- "Newsletter zu unterzeichnen, oder wie Sie in sozialen Netzwerken reden, oder "
179
- "was Sie über ein spezielles Angebot zu ihnen sagen..."
180
-
181
- #: .././about-icegram.php:234 .././icegram.php:977 .././icegram.php:983
182
- msgid "Campaigns"
183
- msgstr "Kampagnen"
184
-
185
- #: .././about-icegram.php:235
186
- msgid "Campaign = Messages + Rules"
187
- msgstr "Kampagne = Nachricht + Regeln"
188
-
189
- #: .././about-icegram.php:236
190
- msgid ""
191
- "A campaign allows sequencing multiple messages and defining targeting rules. "
192
- "Create different campaigns for different marketing goals. Icegram supports "
193
- "showing multiple campaigns on any page."
194
- msgstr ""
195
- "Eine Kampagne ermöglicht die Sequenzierung mehrerer Nachrichten und "
196
- "Definieren Targeting-Regeln. Erstellen Sie verschiedene Kampagnen für "
197
- "verschiedene Marketingziele. Icegram unterstützt mehrere Kampagnen auf einer "
198
- "beliebigen Seite."
199
-
200
- #: .././about-icegram.php:237
201
- msgid ""
202
- "You can always preview your campaign to ensure campaign works the way you "
203
- "want, before making it live."
204
- msgstr ""
205
- "Sie können jederzeit eine Vorschau Ihrer Kampagne machen, damit Sie "
206
- "sicherstellen wie diese aussieht."
207
-
208
- #: .././about-icegram.php:241
209
- msgid "Multiple Messages & Sequencing"
210
- msgstr "Mehrere Nachrichten & Sequenzierung"
211
-
212
- #: .././about-icegram.php:243
213
- msgid ""
214
- "Add one or as many messages to a campaign as you want. Also choose the "
215
- "number of seconds after which each message should show up. Showing multiple "
216
- "messages for same goal, but with slightly different content / presentation, "
217
- "greatly improves conversions."
218
- msgstr ""
219
- "Fügen Sie eine oder mehrere Nachrichten zu einer Kampagne, ganz wie Sie "
220
- "wollen. Wählen Sie auch die Anzahl der Sekunden, nach der jede Nachricht "
221
- "erscheinen soll. Mehrere Nachrichten zum gleichen Ziel, aber mit etwas "
222
- "anderen Inhalt / Gestaltung verbessert die Conversions-Rate."
223
-
224
- #: .././about-icegram.php:247 .././classes/class-icegram-campaign-admin.php:49
225
- msgid "Targeting Rules"
226
- msgstr "Ziel Regeln"
227
-
228
- #: .././about-icegram.php:249
229
- msgid ""
230
- "You can control who sees a campaign – and on what device, which pages does "
231
- "it show on, and what time period will it stay active for. You can run "
232
- "different campaigns with different rules to maximize engagement."
233
- msgstr ""
234
- "Sie können steuern, wer eine Kampagne sieht, auf welchem Gerät, auf welchen "
235
- "Seiten sie zu zeigen ist, und für was für einen Zeitraum sie aktiv bleiben. "
236
- "Sie können verschiedene Kampagnen mit unterschiedlichen Regeln ausführen um "
237
- "das Engagement zu maximieren."
238
-
239
- #: .././about-icegram.php:259
240
- msgid "FAQ / Common Problems"
241
- msgstr "FAQ / Häufige Probleme"
242
-
243
- #: .././about-icegram.php:261
244
- msgid "Messages look broken / formatting is weird..."
245
- msgstr "Nachrichten sehen defekt aus / Formatierung ist seltsam ..."
246
-
247
- #: .././about-icegram.php:262
248
- msgid ""
249
- "This is most likely due to CSS conflicts with current theme. We suggest "
250
- "using simple formatting for messages. You can also write custom CSS in your "
251
- "theme to fix any problems."
252
- msgstr ""
253
- "Dies sind wahrscheinlich CSS Konflikte mit dem aktuellen Theme . Wir "
254
- "schlagen einfachen Formatierungen für Nachrichten vor. Sie können auch "
255
- "benutzerdefinierte CSS in Ihrem Theme schreiben um Probleme zu beheben."
256
-
257
- #: .././about-icegram.php:264
258
- msgid "Extra Line Breaks / Paragraphs in messages..."
259
- msgstr "Zusätzliche Zeilenumbrüche / Absätze in Nachrichten..."
260
-
261
- #: .././about-icegram.php:265
262
- msgid ""
263
- "Go to HTML mode in content editor and pull your custom HTML code all "
264
- "together in one line. Don't leave blank lines between two tags. That should "
265
- "fix it."
266
- msgstr ""
267
- "Gehen Sie zum HTML-Modus in Content-Editor, und ziehen Sie Ihre "
268
- "benutzerdefinierte HTML Code zusammen in eine Zeile. Keine Leerzeilen "
269
- "zwischen zwei Tag lassen. Das sollte es beheben."
270
-
271
- #: .././about-icegram.php:267
272
- msgid "How do I add custom CSS for messages?"
273
- msgstr "Wie kann ich benutzerdefinierte CSS für Nachrichten hinzufügen?"
274
-
275
- #: .././about-icegram.php:268
276
- msgid ""
277
- "You can use custom CSS/JS inline in your message HTML. You can also use your "
278
- "theme's custom JS / CSS feature to add your changes."
279
- msgstr ""
280
- "Sie können benutzerdefinierte CSS / JS inline in Ihrem Beitrag HTML "
281
- "verwenden. Sie können auch benutzerdefinierte JS / CSS-Funktion Ihres Theme "
282
- "verwenden um Änderungen hinzuzufügen."
283
-
284
- #: .././about-icegram.php:270
285
- msgid "Optin Forms / Mailing service integration..."
286
- msgstr "Optin Formulare / Mailing Service-Integration..."
287
-
288
- # ?
289
- #: .././about-icegram.php:271
290
- msgid ""
291
- "You can embed any optin / subscription form to your Icegram messages using "
292
- "'Embed Form' button above text editor. Paste in form HTML code and let "
293
- "Icegram clean it up! You may even use a shortcode if you are using a WP "
294
- "plugin from your newsletter / lead capture service."
295
- msgstr ""
296
- "Sie können beliebige optin / Anmeldeformulare, Icegram Nachrichten mit "
297
- "'Embed Formular \" mit dem Button oben im Texteditor einbetten. Einfügen in "
298
- "Form HTML Code und dann lassen Icegram aufräumen! Sie können sogar mit einem "
299
- "Shortcode, wenn Sie mit einer WP Plugin von Ihrem Newsletter / Lead Capture "
300
- "Service arbeiten verwenden."
301
-
302
- #: .././about-icegram.php:273
303
- msgid "How many messages should I show on a page?"
304
- msgstr "Wie viele Nachrichten sollte ich auf eine Seite zu zeigen?"
305
-
306
- #: .././about-icegram.php:274
307
- msgid ""
308
- "While Icegram provides you lots of different message types and ability to "
309
- "add multiple messages to a campaign, we discourage you to go overboard. "
310
- "We've observed two messages on a page work well, but YMMV!"
311
- msgstr ""
312
- "Icegram bietet Ihnen viele verschiedene Nachrichtentypen und die Fähigkeit, "
313
- "mehrere Nachrichten zu einer Kampagne hinzuzufügen, aber mit zu vielen "
314
- "werden über Sie Bord gehen. Wir haben zwei Nachrichten auf einer Seite "
315
- "beobachtet was sich als gut erwiesen hat."
316
-
317
- #: .././about-icegram.php:280
318
- msgid "Preview does not work / not refreshing..."
319
- msgstr "Vorschau funktioniert nicht / nicht aktualisiert..."
320
-
321
- #: .././about-icegram.php:281
322
- msgid ""
323
- "Doing a browser refresh while previewing will not show your most recent "
324
- "changes. Click 'Preview' button to see a preview with your latest changes."
325
- msgstr ""
326
- "Machen Sie eine Aktualisierung des Browsers wenn die Vorschau Ihre letzten "
327
- "Änderungen nicht zeigt. Klicken Sie auf 'Vorschau', um eine Vorschau mit der "
328
- "neuesten Änderungen zu sehen."
329
-
330
- #: .././about-icegram.php:283
331
- msgid "Can I use shortcodes in a message?"
332
- msgstr "Kann ich Shortcodes in einer Nachricht verwenden?"
333
-
334
- #: .././about-icegram.php:284
335
- msgid ""
336
- "Yes! Messages support shortcodes. You may need to adjust CSS so the "
337
- "shortcode output looks good in your message."
338
- msgstr ""
339
- "Ja! Mitteilungen unterstützen Shortcodes. Möglicherweise müssen Sie die CSS "
340
- "anpassen, so dass die Shortcode- Ausgabe gut in Ihrer Nachricht aussieht."
341
-
342
- #: .././about-icegram.php:286
343
- msgid "WPML / Multilingual usage..."
344
- msgstr "WPML / Mehrsprachige Nutzung..."
345
-
346
- #: .././about-icegram.php:287
347
- msgid ""
348
- "Go to <code>Messages</code> from Icegram menu. Edit a message and translate "
349
- "it like any other post. Icegram will show translated message where possible. "
350
- "Choose <code>All posts</code> under WPML Language setting - Blog Posts to "
351
- "display, to fall back to default language messages."
352
- msgstr ""
353
- "Gehen Sie zu <code>Nachrichten</code> aus Icegram Menü. Bearbeiten Sie eine "
354
- "Nachricht und übersetzen sie sie wie jede andere Nachricht. Icegram wird die "
355
- "Nachricht wenn möglich übersetzen. Wählen Sie <code>Alle Einträge </code> "
356
- "unter WPML Spracheinstellung - Blogeinträge damit diese angezeigt werden um "
357
- "auf die Standardsprach Meldungen zurückgreifen."
358
-
359
- #: .././about-icegram.php:291
360
- msgid "I can't find a way to do X..."
361
- msgstr "Ich kann keinen Weg zu X finden..."
362
-
363
- #: .././about-icegram.php:292
364
- msgid ""
365
- "Icegram is actively developed. If you can't find your favorite feature (or "
366
- "have a suggestion) contact us. We'd love to hear from you."
367
- msgstr ""
368
- "Icegram wird aktiv entwickelt. Wenn Sie Ihre Lieblings-Feature nicht finden "
369
- "können (oder einen Vorschlag haben) kontaktieren Sie uns. Wir würden uns "
370
- "freuen von Ihnen zu hören."
371
-
372
- #: .././about-icegram.php:294
373
- msgid "I'm facing a problem and can't find a way out..."
374
- msgstr "Ich bin vor einem Problem und kann keinen Ausweg finden .."
375
-
376
- #: .././about-icegram.php:295
377
- msgid ""
378
- ", provide as much detail of the problem as you can. We will try to solve the "
379
- "problem ASAP."
380
- msgstr ""
381
- ", beschreiben Sie so viele Details des Problems wie möglich. Wir werden "
382
- "versuchen, das Problem so schnell wie möglich zu lösen."
383
-
384
- #: .././icegram.php:157
385
- msgid "Free Add-ons, Proven Marketing Tricks and Updates"
386
- msgstr "Kostenlose Add-ons, bewährte Marketing-Tricks und Updates"
387
-
388
- #: .././icegram.php:162
389
- msgid "Get add-ons and tips..."
390
- msgstr "Holen Sie sich Add-ons und Tipps..."
391
-
392
- #: .././icegram.php:253
393
- msgid "Housekeeping"
394
- msgstr "Haushaltung"
395
-
396
- #: .././icegram.php:257
397
- msgid "Remove all Icegram shortcodes"
398
- msgstr "Entferne alle Icegram Shortcodes"
399
-
400
- #: .././icegram.php:262
401
- msgid "Remove all Icegram campaigns and messages"
402
- msgstr "Entferne alle Icegram Kampagnen und Nachrichten"
403
-
404
- #: .././icegram.php:266
405
- msgid "Clean Up"
406
- msgstr "Reinigen"
407
-
408
- #: .././icegram.php:275
409
- msgid ""
410
- "You won't be able to recover this data once you proceed. Do you really want "
411
- "to perform this action?"
412
- msgstr ""
413
- "Wenn Sie hier fortfahren werden Sie nicht in der Lage sein, diese Daten "
414
- "wiederherzustellen. Wollen Sie wirklich diese Aktion durchführen?"
415
-
416
- #: .././icegram.php:289
417
- msgid "Done!"
418
- msgstr "Fertig!"
419
-
420
- #: .././icegram.php:418
421
- msgid "Settings"
422
- msgstr "Einstellungen"
423
-
424
- #: .././icegram.php:419
425
- msgid "Add-ons"
426
- msgstr "Add-ons"
427
-
428
- #: .././icegram.php:432
429
- msgid "Docs & Support"
430
- msgstr "Dokumente & Support"
431
-
432
- #: .././icegram.php:621
433
- msgid "Powered by Icegram"
434
- msgstr "Powered by Icegram"
435
-
436
- #: .././icegram.php:978
437
- msgid "Campaign"
438
- msgstr "Kampagne"
439
-
440
- #: .././icegram.php:979 .././icegram.php:980
441
- msgid "Add New Campaign"
442
- msgstr "Kampagne hinzufügen"
443
-
444
- #: .././icegram.php:981
445
- msgid "Edit Campaign"
446
- msgstr "Kampagne ändern"
447
-
448
- #: .././icegram.php:982
449
- msgid "New Campaign"
450
- msgstr "Neue Kampagne"
451
-
452
- #: .././icegram.php:984
453
- msgid "View Campaign"
454
- msgstr "Kampagne anzeigen"
455
-
456
- #: .././icegram.php:985
457
- msgid "Search Campaigns"
458
- msgstr "Kampagne suchen"
459
-
460
- #: .././icegram.php:986
461
- msgid "No campaigns found"
462
- msgstr "Keine Kampagne gefunden"
463
-
464
- #: .././icegram.php:987
465
- msgid "No campaigns found in Trash"
466
- msgstr "Keine Kampagnen im Papierkorb gefunden"
467
-
468
- #: .././icegram.php:989
469
- msgid "Icegram"
470
- msgstr "Icegram"
471
-
472
- #: .././icegram.php:1016
473
- msgid "Create New"
474
- msgstr "Neue"
475
-
476
- #: .././icegram.php:1017
477
- msgid "Create New Message"
478
- msgstr "Neue Nachricht anlegen"
479
-
480
- #: .././icegram.php:1018 .././classes/class-icegram-campaign-admin.php:103
481
- #: .././classes/class-icegram-campaign-admin.php:502
482
- msgid "Edit Message"
483
- msgstr "Nachricht ändern"
484
-
485
- #: .././icegram.php:1019
486
- msgid "New Message"
487
- msgstr "Neue Nachricht"
488
-
489
- #: .././icegram.php:1021
490
- msgid "View Message"
491
- msgstr "Nachricht anzeigen"
492
-
493
- #: .././icegram.php:1022
494
- msgid "Search Messages"
495
- msgstr "Nachricht suchen"
496
-
497
- #: .././icegram.php:1023
498
- msgid "No messages found"
499
- msgstr "Keine Nachricht gefunden"
500
-
501
- #: .././icegram.php:1024
502
- msgid "No messages found in Trash"
503
- msgstr "Keine Nachricht im Papierkorp gefunden"
504
-
505
- #: .././icegram.php:1422
506
- msgid "Copy"
507
- msgstr "Kopieren"
508
-
509
- #: .././settings.php:19
510
- msgid "Icegram Settings"
511
- msgstr "Icegram Einstellungen"
512
-
513
- #: .././settings.php:23
514
- msgid "Share Icegram"
515
- msgstr "Teile Icegram"
516
-
517
- #: .././settings.php:27
518
- msgid "Show \"Powered by\" link"
519
- msgstr "Zeige \"Powered by\" Link"
520
-
521
- #: .././settings.php:32
522
- msgid "Cache Friendly?"
523
- msgstr "Cache freundlich?"
524
-
525
- #: .././settings.php:36
526
- msgid ""
527
- "Turn on \"Lazy Load\" - load Icegram scripts and messages after page load to "
528
- "avoid caching problems."
529
- msgstr ""
530
- "Schalten Sie \"Lazy Load\" - Icegram Skripte und Nachrichten nach dem Laden "
531
- "der Seite um Caching Probleme zu vermeiden."
532
-
533
- #: .././addons.php:13
534
- msgid "Icegram Add-ons"
535
- msgstr "Icegram Add-ons"
536
-
537
- #: .././addons.php:47
538
- msgid "Sorry! No Add-ons available currently."
539
- msgstr "Es tut uns leid! Derzeit keine verfügbaren Add-ons."
540
-
541
- #: .././classes/class-icegram-message-admin.php:41
542
- msgid "Message Settings"
543
- msgstr "Nachrichten Einstellungen"
544
-
545
- #: .././classes/class-icegram-message-admin.php:113
546
- #: .././classes/class-icegram-message-admin.php:520
547
- #: .././classes/class-icegram-campaign-admin.php:452
548
- msgid "Type"
549
- msgstr "Type"
550
-
551
- #: .././classes/class-icegram-message-admin.php:129
552
- #: .././classes/class-icegram-message-admin.php:521
553
- msgid "Theme"
554
- msgstr "Theme"
555
-
556
- #: .././classes/class-icegram-message-admin.php:146
557
- msgid "Animation"
558
- msgstr "Animation"
559
-
560
- #: .././classes/class-icegram-message-admin.php:161
561
- msgid "Headline"
562
- msgstr "Headline"
563
-
564
- #: .././classes/class-icegram-message-admin.php:162
565
- msgid ""
566
- "Shown with highest prominence. Click on idea button on right to get a new "
567
- "headline."
568
- msgstr ""
569
- "Dargestellt mit höchster Prominenz. Klicken Sie auf die Idee Taste auf "
570
- "Recht, eine neue Schlagzeile zu bekommen."
571
-
572
- #: .././classes/class-icegram-message-admin.php:168
573
- msgid "Give Me Another Headline"
574
- msgstr "Gib mir noch eine Überschrift"
575
-
576
- #: .././classes/class-icegram-message-admin.php:174
577
- msgid "Icon / Avatar Image"
578
- msgstr "Symbol / Profilbild"
579
-
580
- #: .././classes/class-icegram-message-admin.php:175
581
- msgid "This image will appear in message content."
582
- msgstr "Dieses Bild wird im Nachrichteninhalt angezeigt."
583
-
584
- #: .././classes/class-icegram-message-admin.php:178
585
- msgid "Upload / Select an image"
586
- msgstr "Upload / Wählen Sie ein Bild"
587
-
588
- #: .././classes/class-icegram-message-admin.php:178
589
- msgid "Upload / Select Image"
590
- msgstr "Upload / Bild auswählen"
591
-
592
- #: .././classes/class-icegram-message-admin.php:194
593
- msgid "Message Body"
594
- msgstr "Body Nachricht"
595
-
596
- #: .././classes/class-icegram-message-admin.php:225
597
- msgid "Form"
598
- msgstr "Form"
599
-
600
- #: .././classes/class-icegram-message-admin.php:226
601
- msgid "Use Opt-in / Subscription / Lead capture form"
602
- msgstr "Verwenden Sie Opt-in / Abonnement / Lead Capture-Form"
603
-
604
- #: .././classes/class-icegram-message-admin.php:251
605
- #: .././classes/class-icegram-message-admin.php:253
606
- msgid "Left"
607
- msgstr "Links"
608
-
609
- #: .././classes/class-icegram-message-admin.php:258
610
- #: .././classes/class-icegram-message-admin.php:260
611
- msgid "Right"
612
- msgstr "Rechts"
613
-
614
- #: .././classes/class-icegram-message-admin.php:265
615
- #: .././classes/class-icegram-message-admin.php:267
616
- msgid "Bottom"
617
- msgstr "Unten"
618
-
619
- #: .././classes/class-icegram-message-admin.php:282
620
- #: .././classes/class-icegram-message-admin.php:284
621
- msgid "Inline"
622
- msgstr "In Zeile"
623
-
624
- #: .././classes/class-icegram-message-admin.php:296
625
- msgid "Background Color"
626
- msgstr "Hintergrundfarbe"
627
-
628
- #: .././classes/class-icegram-message-admin.php:297
629
- msgid "Text Color"
630
- msgstr "Textfarbe"
631
-
632
- #: .././classes/class-icegram-message-admin.php:308
633
- msgid "Text / HTML to show before the form"
634
- msgstr "Text / HTML vor dem Formular zeigen"
635
-
636
- #: .././classes/class-icegram-message-admin.php:312
637
- msgid "Form Embed Code"
638
- msgstr "Form Embed Code"
639
-
640
- #: .././classes/class-icegram-message-admin.php:314
641
- msgid "Paste HTML / shortcode of your form here..."
642
- msgstr "Fügen Sie HTML / Shortcode in das Formular ein..."
643
-
644
- # ?
645
- #: .././classes/class-icegram-message-admin.php:318
646
- msgid "Show labels above fields"
647
- msgstr "Zeige die Beschriftung über den Feldern"
648
-
649
- #: .././classes/class-icegram-message-admin.php:325
650
- msgid "Text / HTML to show after the form"
651
- msgstr "Text / HTML nach dem Formular zeigen"
652
-
653
- #: .././classes/class-icegram-message-admin.php:329
654
- msgid ""
655
- "Insert <code>[ig_form]</code> where you want to show this form in message "
656
- "body."
657
- msgstr ""
658
- "Fügen Sie <code>[ig_form] </code> in das Formular in dem der "
659
- "Nachrichtentext angezeigt werden sollen ein."
660
-
661
- #: .././classes/class-icegram-message-admin.php:336
662
- msgid "Button Label"
663
- msgstr "Button Beschriftung"
664
-
665
- #: .././classes/class-icegram-message-admin.php:337
666
- msgid "Your call to action text. Something unusual will increase conversions."
667
- msgstr "Ihr CTA Text. Etwas ungewöhnliches wird Conversion steigern."
668
-
669
- #: .././classes/class-icegram-message-admin.php:347
670
- msgid "Target Link"
671
- msgstr "Ziel Link"
672
-
673
- #: .././classes/class-icegram-message-admin.php:348
674
- msgid "Enter destination URL here. Clicking will redirect to this link."
675
- msgstr ""
676
- "Geben Sie hier die Ziel-URL ein. Ein Klick leitet Sieauf diesen Link weiter."
677
-
678
- #: .././classes/class-icegram-message-admin.php:371
679
- msgid "Body"
680
- msgstr "Body"
681
-
682
- #: .././classes/class-icegram-message-admin.php:372
683
- #: .././classes/class-icegram-message-admin.php:378
684
- msgid "Background"
685
- msgstr "Hintergrund"
686
-
687
- #: .././classes/class-icegram-message-admin.php:373
688
- #: .././classes/class-icegram-message-admin.php:379
689
- msgid "Text"
690
- msgstr "Text"
691
-
692
- #: .././classes/class-icegram-message-admin.php:377
693
- msgid "Button"
694
- msgstr "Button"
695
-
696
- #: .././classes/class-icegram-message-admin.php:384
697
- msgid "Colors"
698
- msgstr "Farben"
699
-
700
- #: .././classes/class-icegram-message-admin.php:385
701
- msgid "Use theme's default colors"
702
- msgstr "Verwenden Sie die Standardfarben Theme"
703
-
704
- #: .././classes/class-icegram-message-admin.php:391
705
- msgid "Position"
706
- msgstr "Position"
707
-
708
- #: .././classes/class-icegram-message-admin.php:450
709
- #, php-format
710
- msgid "You may add <code>[%s]</code> where you want to show this message."
711
- msgstr ""
712
- "Sie können <code>[% s]</code> einfügen wo diese Nachricht angezeigt werden "
713
- "soll."
714
-
715
- #: .././classes/class-icegram-message-admin.php:522
716
- msgid "Thumbnail"
717
- msgstr "Thumbnail"
718
-
719
- #: .././classes/class-icegram-message-admin.php:664
720
- msgid "Here Is A Method That Is Helping ____ To ____"
721
- msgstr "Hier ist eine Methode die hilft ____ um ____"
722
-
723
- #: .././classes/class-icegram-message-admin.php:665
724
- msgid "__ Little Known Ways To ____"
725
- msgstr "__ wenig bekannte Wege um ____"
726
-
727
- #: .././classes/class-icegram-message-admin.php:666
728
- msgid "Get Rid Of ____ Once And For All"
729
- msgstr "Beseitige ____ ein für alle Mal"
730
-
731
- #: .././classes/class-icegram-message-admin.php:667
732
- msgid "How To ____ So You Can ____"
733
- msgstr "Wie man ____ Sie können ____"
734
-
735
- #: .././classes/class-icegram-message-admin.php:668
736
- msgid "They Didn't Think I Could ____, But I Did"
737
- msgstr "Sie wussten nicht, dass ich ____, aber ich habe"
738
-
739
- #: .././classes/class-icegram-message-admin.php:669
740
- msgid "How ____ Made Me ____"
741
- msgstr "Wie ____ machte ich mich ____"
742
-
743
- #: .././classes/class-icegram-message-admin.php:670
744
- msgid "Are You ____ ?"
745
- msgstr "Bist du ____ ?"
746
-
747
- #: .././classes/class-icegram-message-admin.php:671
748
- msgid "Warning: ____ !"
749
- msgstr "Warnung: ____ !"
750
-
751
- #: .././classes/class-icegram-message-admin.php:672
752
- msgid "Do You Make These Mistakes With ____ ?"
753
- msgstr "Machst du diese Fehler mit ____?"
754
-
755
- #: .././classes/class-icegram-message-admin.php:673
756
- msgid "7 Ways To ____"
757
- msgstr "7 Wege zum ____"
758
-
759
- #: .././classes/class-icegram-message-admin.php:674
760
- msgid "If You're ____, You Can ____"
761
- msgstr "Wenn Sie ____, können Sie ____"
762
-
763
- #: .././classes/class-icegram-message-admin.php:675
764
- msgid "Turn your ____ into a ____"
765
- msgstr "Verwandeln Sie Ihren ____ in ____ ein"
766
-
767
- #: .././classes/class-icegram-message-admin.php:676
768
- msgid "Want To Be A ____?"
769
- msgstr "Möchten Sie ein ____?"
770
-
771
- #: .././classes/class-icegram-message-admin.php:677
772
- msgid "The Ugly Truth About Your Beautiful ____"
773
- msgstr "Die nackte Wahrheit über Ihre Schöne ____"
774
-
775
- #: .././classes/class-icegram-message-admin.php:678
776
- msgid "The Secret to ____ Is Simply ____!"
777
- msgstr "Das Geheimnis für ____ ist einfach ____!"
778
-
779
- #: .././classes/class-icegram-message-admin.php:679
780
- msgid "The Quickest Way I Know To ____"
781
- msgstr "Der schnellste Weg den ixh weiß um ____"
782
-
783
- # La traduzione letterale non rendeva in italiano. Creato un titolo diverso.
784
- #: .././classes/class-icegram-message-admin.php:680
785
- msgid "The Lazy Man's Way To ____"
786
- msgstr "Die Faule Weg um ____"
787
-
788
- # La traduzione in italiano non rende. Suggerimenti?
789
- #: .././classes/class-icegram-message-admin.php:681
790
- msgid ""
791
- "The Amazing Story Of ____ That Requires So Little Of ____ You Could ____"
792
- msgstr ""
793
- "Die erstaunliche Geschichte ____ Das ist so wenig benötigen von ____ Sie "
794
- "könnten ____ "
795
-
796
- # La traduzione in italiano non rende. Suggerimenti?
797
- #: .././classes/class-icegram-message-admin.php:682
798
- msgid "The Amazing Secret Of The ____ Genius Who Is Afraid Of ____"
799
- msgstr "Das erstaunliche Geheimnis der ____ Genius Wer hat Angst vor ____"
800
-
801
- #: .././classes/class-icegram-message-admin.php:683
802
- msgid "The 10 Wackiest Ideas That ____... And How You Can Too!"
803
- msgstr "Die 10 verrücktesten Ideen Das ____... Und wie kannst du das auch!"
804
-
805
- # La traduzione in italiano non rende. Ho creato un altro titolo. Altri suggerimenti?
806
- #: .././classes/class-icegram-message-admin.php:684
807
- msgid "The Inside Secrets To ____ With Crazy, Outlandish And Outrageous ____"
808
- msgstr ""
809
- "Die innere Geheimnisse zu ____ Mit verrückt, ausgefallen und empörend ____"
810
-
811
- #: .././classes/class-icegram-message-admin.php:685
812
- msgid "____ Like A ____"
813
- msgstr "____ gleich wie ____"
814
-
815
- #: .././classes/class-icegram-message-admin.php:686
816
- msgid "Remember When You Could Have ____, And You Didn't?"
817
- msgstr "Denken Sie daran, wenn Sie hätten ____, Und ihr habt nicht?"
818
-
819
- # La trsduzione letterale non rendeva in italiano. Creata nuova frase.
820
- #: .././classes/class-icegram-message-admin.php:687
821
- msgid "Is The ____ Worth $x To You?"
822
- msgstr "Ist ____ im Wert von $x für Sie?"
823
-
824
- #: .././classes/class-icegram-message-admin.php:688
825
- msgid "Increase your ____, reduce ____, maintain ____ and ____ with ____"
826
- msgstr ""
827
- "Steigern Sie Ihren ____, ____ reduzieren Sie, halten ____ und ____ mit ____"
828
-
829
- #: .././classes/class-icegram-message-admin.php:689
830
- msgid "If You Can ____ You Can ____"
831
- msgstr "Wenn Sie können ____ Sie können ____"
832
-
833
- #: .././classes/class-icegram-message-admin.php:690
834
- msgid "I Discovered How To ____... Now I'm Revealing My Secret"
835
- msgstr "Ich entdeckte, wie man ____... Ich enthülle meine Geheimnisse"
836
-
837
- #: .././classes/class-icegram-message-admin.php:691
838
- msgid "How To Turn Your ____ Into The Most ____"
839
- msgstr "Wie man ____ wandelt ____ in die meist ____"
840
-
841
- # La traduzione letterale non rendeva in italiano. Creata nuova frase.
842
- #
843
- #
844
- #: .././classes/class-icegram-message-admin.php:692
845
- msgid "How To Take The Headache Out Of ____"
846
- msgstr "Wie man den Kopfschmerz aus ____"
847
-
848
- #: .././classes/class-icegram-message-admin.php:693
849
- msgid "How To ____ ... Legally"
850
- msgstr "Wie man ____ ... Rechtlich"
851
-
852
- #: .././classes/class-icegram-message-admin.php:694
853
- msgid "How To ____ That ____"
854
- msgstr "Wie man das ____"
855
-
856
- #: .././classes/class-icegram-message-admin.php:695
857
- msgid "How To Discover The ____ That Lies Hidden In Your ____"
858
- msgstr "Wie Sie entdecken ____ Das liegt versteckt in ihrer ____"
859
-
860
- #: .././classes/class-icegram-message-admin.php:696
861
- msgid "How To ____ Even When Your Not ____"
862
- msgstr "Wie man ____ auch wenn Sie nicht ____"
863
-
864
- #: .././classes/class-icegram-message-admin.php:697
865
- msgid "____ With No ____!"
866
- msgstr "____ Ohne ____!"
867
-
868
- #: .././classes/class-icegram-message-admin.php:698
869
- msgid "Greatest Goldmine of ____ Ever Jammed Into One Big ____"
870
- msgstr "Größten Goldminen von ____ Blockierte immer in eine große ____"
871
-
872
- #: .././classes/class-icegram-message-admin.php:699
873
- msgid "Free ____ Tells How To Get Better ____"
874
- msgstr "Kostenlose ____ erklärt, wie man besser ____"
875
-
876
- #: .././classes/class-icegram-message-admin.php:700
877
- msgid ""
878
- "FREE ____ Worth $____ for the first 100 People to take Advantage of this "
879
- "Offer"
880
- msgstr ""
881
- "Kostenlose ____ im Wert von $____ für die ersten 100 Leute, um von diesem "
882
- "Angebot Gebrauch zu nehmen"
883
-
884
- #: .././classes/class-icegram-message-admin.php:701
885
- msgid "Don't Try This With Any Other ____"
886
- msgstr "Versuchen nicht dieses mit jeder anderen ____"
887
-
888
- #: .././classes/class-icegram-message-admin.php:702
889
- msgid "Do You Honestly Want To ____?"
890
- msgstr "Wollen Sie ehrlich ____?"
891
-
892
- #: .././classes/class-icegram-message-admin.php:703
893
- msgid "Discover The Magic ____ That Will Bring You ____ & ____!"
894
- msgstr "Entdecken Sie den Zauber ____ Das bringt Sie ____ & ____!"
895
-
896
- #: .././classes/class-icegram-message-admin.php:704
897
- msgid "____ Man Reveals A Short-Cut To ____"
898
- msgstr "____ Man zeigt einen Short-Cut zu ____"
899
-
900
- #: .././classes/class-icegram-message-admin.php:705
901
- msgid "Confessions Of A ____"
902
- msgstr "Bekenntnis einer ____"
903
-
904
- #: .././classes/class-icegram-message-admin.php:706
905
- msgid "Are You Ready To ____?"
906
- msgstr "Bist du bereit für ____?"
907
-
908
- #: .././classes/class-icegram-message-admin.php:707
909
- msgid "An Open Letter To Everyone Who ____ More Than ____ Per ____"
910
- msgstr "Ein offener Brief an alle, die mehr als ____ per"
911
-
912
- #: .././classes/class-icegram-message-admin.php:708
913
- msgid "An Amazing ____ You Can Carry In Your ____"
914
- msgstr "Ein erstaunliches ____ können Sie ____ tragen"
915
-
916
- #: .././classes/class-icegram-message-admin.php:709
917
- msgid "21 Secret ____ that will ____... NOW!"
918
- msgstr "21 Geheimnise ____ die JETZT ____... werden!"
919
-
920
- #: .././classes/class-icegram-message-admin.php:716
921
- #: .././classes/class-icegram-campaign-admin.php:661
922
- msgid "Duplicate"
923
- msgstr "Duplikat"
924
-
925
- #: .././classes/class-icegram-campaign-admin.php:56
926
- msgid "Search to add / Create new&hellip;"
927
- msgstr "Suche hinzufügen / Neues&hellip;"
928
-
929
- #: .././classes/class-icegram-campaign-admin.php:59
930
- #: .././classes/class-icegram-campaign-admin.php:439
931
- msgid "Create new"
932
- msgstr "Neue"
933
-
934
- #: .././classes/class-icegram-campaign-admin.php:62
935
- msgid "Preview"
936
- msgstr "Vorschau"
937
-
938
- #: .././classes/class-icegram-campaign-admin.php:95
939
- #: .././classes/class-icegram-campaign-admin.php:495
940
- msgid "Give this message a name for your own reference"
941
- msgstr "Geben Sie diese Nachricht einen Namen für die eigene Referenz"
942
-
943
- #: .././classes/class-icegram-campaign-admin.php:100
944
- #: .././classes/class-icegram-campaign-admin.php:499
945
- msgid " sec"
946
- msgstr "sec"
947
-
948
- #: .././classes/class-icegram-campaign-admin.php:104
949
- #: .././classes/class-icegram-campaign-admin.php:503
950
- msgid "Remove from Campaign"
951
- msgstr "Von Kampagne entfernen"
952
-
953
- #: .././classes/class-icegram-campaign-admin.php:122
954
- msgid ""
955
- "No messages yet. Use search / create bar above to add messages to this "
956
- "campaign."
957
- msgstr ""
958
- "Noch keine Nachrichten. Verwenden Sie Suche / erstelle eine Leiste über die "
959
- "Nachrichten um diese Kampagne hinzuzufügen."
960
-
961
- #: .././classes/class-icegram-campaign-admin.php:160
962
- msgid "Where?"
963
- msgstr "Wo?"
964
-
965
- #: .././classes/class-icegram-campaign-admin.php:163
966
- msgid "Sitewide"
967
- msgstr "Seitenweit"
968
-
969
- #: .././classes/class-icegram-campaign-admin.php:165
970
- #, php-format
971
- msgid ""
972
- "Additionally you can insert <code>[%s]</code> wherever you want to run this "
973
- "campaign."
974
- msgstr ""
975
- "Zusätzlich können Sie den <code>[% s]</code> einfügen, wo immer Sie diese "
976
- "Kampagne ausgeführt werden soll."
977
-
978
- #: .././classes/class-icegram-campaign-admin.php:172
979
- msgid "Select pages to exclude&hellip;"
980
- msgstr "Wählen Sie Seiten um diese auszuschliessen&hellip;"
981
-
982
- #: .././classes/class-icegram-campaign-admin.php:187
983
- msgid "Homepage"
984
- msgstr "Homepage"
985
-
986
- #: .././classes/class-icegram-campaign-admin.php:194
987
- msgid "Selected pages"
988
- msgstr "Ausgewählte Seiten"
989
-
990
- #: .././classes/class-icegram-campaign-admin.php:200
991
- msgid "Select a page&hellip;"
992
- msgstr "Wählen Sie eine Seite&hellip;"
993
-
994
- #: .././classes/class-icegram-campaign-admin.php:215
995
- msgid "Specific URLs on this site"
996
- msgstr "Bestimmte URLs auf dieser Seite"
997
-
998
- #: .././classes/class-icegram-campaign-admin.php:231
999
- msgid " Add another"
1000
- msgstr "Neu hinzufügen"
1001
-
1002
- #: .././classes/class-icegram-campaign-admin.php:241
1003
- msgid "When?"
1004
- msgstr "Wann?"
1005
-
1006
- #: .././classes/class-icegram-campaign-admin.php:244
1007
- msgid "Always"
1008
- msgstr "Immer"
1009
-
1010
- #: .././classes/class-icegram-campaign-admin.php:251
1011
- msgid "Schedule"
1012
- msgstr "Zeitplan"
1013
-
1014
- #: .././classes/class-icegram-campaign-admin.php:254
1015
- msgid "From&hellip;"
1016
- msgstr "Von&hellip;"
1017
-
1018
- #: .././classes/class-icegram-campaign-admin.php:257
1019
- msgid "To&hellip;"
1020
- msgstr "Bis&hellip;"
1021
-
1022
- #: .././classes/class-icegram-campaign-admin.php:265
1023
- msgid "Device?"
1024
- msgstr "Gerät?"
1025
-
1026
- #: .././classes/class-icegram-campaign-admin.php:266
1027
- msgid "Mobile / Smartphones"
1028
- msgstr "Mobile / Smartphones"
1029
-
1030
- #: .././classes/class-icegram-campaign-admin.php:270
1031
- msgid "Tablet"
1032
- msgstr "Tablet"
1033
-
1034
- #: .././classes/class-icegram-campaign-admin.php:274
1035
- msgid "Desktop / Laptop"
1036
- msgstr "Desktop /Laptop"
1037
-
1038
- #: .././classes/class-icegram-campaign-admin.php:282
1039
- msgid "Who?"
1040
- msgstr "Wer?"
1041
-
1042
- #: .././classes/class-icegram-campaign-admin.php:285
1043
- msgid "All users"
1044
- msgstr "Alle Nutzer"
1045
-
1046
- #: .././classes/class-icegram-campaign-admin.php:292
1047
- msgid "Logged in users only"
1048
- msgstr "Nur angemeldete Benutzer"
1049
-
1050
- #: .././classes/class-icegram-campaign-admin.php:311
1051
- msgid "Select a user role&hellip;"
1052
- msgstr "Wählen Sie eine Benutzerrolle&hellip;"
1053
-
1054
- #: .././classes/class-icegram-campaign-admin.php:327
1055
- msgid "Not Logged in users"
1056
- msgstr "Nicht angemeldete Benutzer"
1057
-
1058
- #: .././classes/class-icegram-campaign-admin.php:331
1059
- #: .././classes/class-icegram-campaign-admin.php:341
1060
- msgid "Current Session"
1061
- msgstr "Akt. Sitzung"
1062
-
1063
- #: .././classes/class-icegram-campaign-admin.php:332
1064
- #: .././classes/class-icegram-campaign-admin.php:340
1065
- msgid "Never"
1066
- msgstr "Nie"
1067
-
1068
- #: .././classes/class-icegram-campaign-admin.php:333
1069
- #: .././classes/class-icegram-campaign-admin.php:342
1070
- msgid "Today"
1071
- msgstr "Heute"
1072
-
1073
- #: .././classes/class-icegram-campaign-admin.php:334
1074
- #: .././classes/class-icegram-campaign-admin.php:343
1075
- msgid "One week"
1076
- msgstr "1 Woche"
1077
-
1078
- #: .././classes/class-icegram-campaign-admin.php:335
1079
- #: .././classes/class-icegram-campaign-admin.php:344
1080
- msgid "Two weeks"
1081
- msgstr "2 Wochen"
1082
-
1083
- #: .././classes/class-icegram-campaign-admin.php:336
1084
- #: .././classes/class-icegram-campaign-admin.php:345
1085
- msgid "One Month "
1086
- msgstr "1 Monat"
1087
-
1088
- #: .././classes/class-icegram-campaign-admin.php:337
1089
- #: .././classes/class-icegram-campaign-admin.php:346
1090
- msgid "Three Months "
1091
- msgstr "3 Monate"
1092
-
1093
- #: .././classes/class-icegram-campaign-admin.php:338
1094
- #: .././classes/class-icegram-campaign-admin.php:347
1095
- msgid "One year"
1096
- msgstr "1 Jahr"
1097
-
1098
- #: .././classes/class-icegram-campaign-admin.php:339
1099
- #: .././classes/class-icegram-campaign-admin.php:348
1100
- msgid "Two Years"
1101
- msgstr "2 Jahre"
1102
-
1103
- #: .././classes/class-icegram-campaign-admin.php:353
1104
- msgid "Retargeting"
1105
- msgstr "Retargeting"
1106
-
1107
- #: .././classes/class-icegram-campaign-admin.php:356
1108
- msgid "Once shown, do NOT show this campaign again for"
1109
- msgstr "Sobald gezeigt, diese Kampagne nicht wieder zeigen für"
1110
-
1111
- #: .././classes/class-icegram-campaign-admin.php:371
1112
- msgid "Once CTA is clicked, do NOT show this campaign again for"
1113
- msgstr "Sobald CTA geklickt wird, diese Kampa. nicht zeigen für"
1114
-
1115
- #: .././classes/class-icegram-campaign-admin.php:435
1116
- msgid "- - - - - - - - - - - - - - - - - - - - - - - - - -"
1117
- msgstr "- - - - - - - - - - - - - - - - - - - - - - - - - -"
1118
-
1119
- #: .././classes/class-icegram-campaign-admin.php:454
1120
- msgid "Show after"
1121
- msgstr "Zeige später"
1122
-
1123
- #: .././classes/class-icegram-campaign-admin.php:455
1124
- msgid "Actions"
1125
- msgstr "Aktionen"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Icegram 1.1.1\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/icegram\n"
5
+ "POT-Creation-Date: 2015-09-24 12:56+0100\n"
6
+ "PO-Revision-Date: 2015-12-30 16:49+0100\n"
7
+ "Last-Translator: Alessandro Massasso <alessandro.massasso@drivek.it>\n"
8
+ "Language-Team: Icegram Team <hello@icegram.com>\n"
9
+ "Language: de_DE\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
16
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
17
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
18
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
19
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
20
+ "X-Poedit-Basepath: .\n"
21
+ "X-Generator: Poedit 1.8.6\n"
22
+ "X-Loco-Target-Locale: it_IT\n"
23
+ "X-Poedit-SearchPath-0: ../.\n"
24
+
25
+ #: .././about-icegram.php:128 .././classes/class-icegram-campaign-admin.php:453
26
+ msgid "Name"
27
+ msgstr "Name"
28
+
29
+ #: .././about-icegram.php:132
30
+ msgid "E-mail"
31
+ msgstr "Email"
32
+
33
+ #: .././about-icegram.php:136
34
+ msgid "Subject"
35
+ msgstr "Betreff"
36
+
37
+ #: .././about-icegram.php:140 .././icegram.php:1015
38
+ #: .././classes/class-icegram-campaign-admin.php:47
39
+ #: .././classes/class-icegram-campaign-admin.php:64
40
+ msgid "Message"
41
+ msgstr "Nachricht"
42
+
43
+ #: .././about-icegram.php:167 .././icegram.php:417
44
+ msgid "Welcome to Icegram"
45
+ msgstr "Wilkommen zu Icegram"
46
+
47
+ #: .././about-icegram.php:169
48
+ msgid ""
49
+ "Your sample campaign is ready. We've added a few messages for you to test."
50
+ msgstr ""
51
+ "Ihre Probe-Kampagne ist fertig. Wir haben ein paar Nachrichten für Sie zum "
52
+ "testen hinzugefügt."
53
+
54
+ #: .././about-icegram.php:177
55
+ msgid "Edit & Publish it"
56
+ msgstr "Editieren & Veröffentlichen"
57
+
58
+ #: .././about-icegram.php:178
59
+ msgid "OR"
60
+ msgstr "oder"
61
+
62
+ #: .././about-icegram.php:179
63
+ msgid "Preview Campaign"
64
+ msgstr "Vorschau Kampagne"
65
+
66
+ #: .././about-icegram.php:184
67
+ #, php-format
68
+ msgid "Version: %s"
69
+ msgstr "Version: %s"
70
+
71
+ #: .././about-icegram.php:187
72
+ msgid "Questions? Need Help?"
73
+ msgstr "Fragen? Brauchen Sie Hilfe?"
74
+
75
+ #: .././about-icegram.php:188 .././about-icegram.php:295
76
+ msgid "Contact Us"
77
+ msgstr "Kontaktieren Sie uns."
78
+
79
+ #: .././about-icegram.php:198
80
+ msgid ""
81
+ "Do read Icegram's core concepts below to understand how you can use Icegram "
82
+ "to inspire, convert and engage your audience."
83
+ msgstr ""
84
+ "Sie lesen unten die Kernkonzepte von Icegram, um zu verstehen, wie Sie "
85
+ "Icegram verwenden, um zu inspirieren und um sich für ihre Zielgruppe "
86
+ "engagieren."
87
+
88
+ #: .././about-icegram.php:203 .././icegram.php:1014 .././icegram.php:1020
89
+ #: .././icegram.php:1026
90
+ msgid "Messages"
91
+ msgstr "Nachrichten"
92
+
93
+ #: .././about-icegram.php:204
94
+ msgid "A 'Message' is a communication you want to deliver to your audience."
95
+ msgstr ""
96
+ "Eine 'Nachricht' ist ein Text den Sie brauchen, wenn Sie ihr Publikum "
97
+ "beliefern möchten."
98
+
99
+ #: .././about-icegram.php:205
100
+ msgid "And Icegram comes with not one, but four message types."
101
+ msgstr "Icegram kommt nicht mit einen Nachrichtentyp, sondern mit vier."
102
+
103
+ #: .././about-icegram.php:206
104
+ msgid ""
105
+ "Different message types look and behave differently, but they all have many "
106
+ "common characteristics. For instance, most message types will allow you to "
107
+ "set a headline, a body text, label for the ‘call to action’ button, a link "
108
+ "for that button, theme and styling options, animation effect and position on "
109
+ "screen where that message should show."
110
+ msgstr ""
111
+ "Unterschiedliche Nachrichtentypen zu schauen und sich anders verhalten, aber "
112
+ "sie alle haben viele gemeinsame Merkmale. Zum Beispiel werden die meisten "
113
+ "Nachrichtentypen können Sie eine Überschrift, ein Textkörper, Bezeichnung "
114
+ "für die Schaltfläche \"Aufruf zum Handeln\", einen Link für diese Taste, "
115
+ "Thema und Styling-Optionen, Animationseffekt und die Position auf dem "
116
+ "Bildschirm festgelegt, wo die Nachricht sollte zeigen ."
117
+
118
+ #: .././about-icegram.php:210
119
+ msgid "Action Bar"
120
+ msgstr "Aktionsleiste"
121
+
122
+ #: .././about-icegram.php:212
123
+ msgid ""
124
+ "An action bar is a proven attention grabber. It shows up as a solid bar "
125
+ "either at top or bottom. Use it for your most important messages or time "
126
+ "sensitive announcements. Put longer content in it and it acts like a "
127
+ "collapsible panel!"
128
+ msgstr ""
129
+ "Eine Aktionsleiste erregt erwiesenen die Aufmerksamkeit. Sie zeigt sich als "
130
+ "eine solide Leiste entweder oben oder unten. Verwenden Sie es für Ihre "
131
+ "wichtigsten Nachrichten oder zeitkritische Ankündigungen. Setzen Sie mehr "
132
+ "Inhalte und es wirkt wie ein zusammenklappbare Tafel!"
133
+
134
+ #: .././about-icegram.php:213
135
+ msgid "Messenger"
136
+ msgstr "Messenger"
137
+
138
+ #: .././about-icegram.php:215
139
+ msgid ""
140
+ "A messenger is best used to invoke interest while your visitor is reading "
141
+ "your content. Users perceive it as something new, important and urgent and "
142
+ "are highly likely to click on it."
143
+ msgstr ""
144
+ "Ein Messenger wird am besten verwendet um Interesse zu erzeugen, während die "
145
+ "Besucher dabei sind den Inhalt der Seite zu lesen. Benutzer sehen es als "
146
+ "etwas Neues, wichtiges und dringendes und mit hoher Wahrscheinlichkeit "
147
+ "werden Sie darauf klicken."
148
+
149
+ #: .././about-icegram.php:219
150
+ msgid "Toast Notification"
151
+ msgstr "Toast Benachrichtigung"
152
+
153
+ #: .././about-icegram.php:221
154
+ msgid ""
155
+ "Want to alert your visitor about some news, an update from your blog, a "
156
+ "social proof or an offer? Use Icegram’s unique toast notification, it will "
157
+ "catch their attention, let them click on the message, and disappear after a "
158
+ "while."
159
+ msgstr ""
160
+ "Möchten Sie Ihre Besucher benachrichtigen über neue News, ein Update von "
161
+ "Ihrem Blog, einen sozialen Beweis oder ein Angebot aufmerksam machen? "
162
+ "Verwenden Icegram einzigartige Toast Benachrichtigung sie wird ihre "
163
+ "Aufmerksamkeit erregen, lassen Sie sie auf die Nachricht klicken, und nach "
164
+ "einer Weile verschwinden."
165
+
166
+ #: .././about-icegram.php:222
167
+ msgid "Popup"
168
+ msgstr "Popup"
169
+
170
+ #: .././about-icegram.php:224
171
+ msgid ""
172
+ "Lightbox popup windows are most widely used for lead capture, promotions and "
173
+ "additional content display. Ask visitors to sign up to your newsletter, or "
174
+ "like you on social networks, or tell them about a special offer..."
175
+ msgstr ""
176
+ "Lightbox Popup-Fenster werden am häufigsten für die Lead-Erfassung, Aktionen "
177
+ "und zusätzliche Inhalte verwendet. Forden Sie den Besucher auf Ihrem "
178
+ "Newsletter zu unterzeichnen, oder wie Sie in sozialen Netzwerken reden, oder "
179
+ "was Sie über ein spezielles Angebot zu ihnen sagen..."
180
+
181
+ #: .././about-icegram.php:234 .././icegram.php:977 .././icegram.php:983
182
+ msgid "Campaigns"
183
+ msgstr "Kampagnen"
184
+
185
+ #: .././about-icegram.php:235
186
+ msgid "Campaign = Messages + Rules"
187
+ msgstr "Kampagne = Nachricht + Regeln"
188
+
189
+ #: .././about-icegram.php:236
190
+ msgid ""
191
+ "A campaign allows sequencing multiple messages and defining targeting rules. "
192
+ "Create different campaigns for different marketing goals. Icegram supports "
193
+ "showing multiple campaigns on any page."
194
+ msgstr ""
195
+ "Eine Kampagne ermöglicht die Sequenzierung mehrerer Nachrichten und "
196
+ "Definieren Targeting-Regeln. Erstellen Sie verschiedene Kampagnen für "
197
+ "verschiedene Marketingziele. Icegram unterstützt mehrere Kampagnen auf einer "
198
+ "beliebigen Seite."
199
+
200
+ #: .././about-icegram.php:237
201
+ msgid ""
202
+ "You can always preview your campaign to ensure campaign works the way you "
203
+ "want, before making it live."
204
+ msgstr ""
205
+ "Sie können jederzeit eine Vorschau Ihrer Kampagne machen, damit Sie "
206
+ "sicherstellen wie diese aussieht."
207
+
208
+ #: .././about-icegram.php:241
209
+ msgid "Multiple Messages & Sequencing"
210
+ msgstr "Mehrere Nachrichten & Sequenzierung"
211
+
212
+ #: .././about-icegram.php:243
213
+ msgid ""
214
+ "Add one or as many messages to a campaign as you want. Also choose the "
215
+ "number of seconds after which each message should show up. Showing multiple "
216
+ "messages for same goal, but with slightly different content / presentation, "
217
+ "greatly improves conversions."
218
+ msgstr ""
219
+ "Fügen Sie eine oder mehrere Nachrichten zu einer Kampagne, ganz wie Sie "
220
+ "wollen. Wählen Sie auch die Anzahl der Sekunden, nach der jede Nachricht "
221
+ "erscheinen soll. Mehrere Nachrichten zum gleichen Ziel, aber mit etwas "
222
+ "anderen Inhalt / Gestaltung verbessert die Conversions-Rate."
223
+
224
+ #: .././about-icegram.php:247 .././classes/class-icegram-campaign-admin.php:49
225
+ msgid "Targeting Rules"
226
+ msgstr "Ziel Regeln"
227
+
228
+ #: .././about-icegram.php:249
229
+ msgid ""
230
+ "You can control who sees a campaign – and on what device, which pages does "
231
+ "it show on, and what time period will it stay active for. You can run "
232
+ "different campaigns with different rules to maximize engagement."
233
+ msgstr ""
234
+ "Sie können steuern, wer eine Kampagne sieht, auf welchem Gerät, auf welchen "
235
+ "Seiten sie zu zeigen ist, und für was für einen Zeitraum sie aktiv bleiben. "
236
+ "Sie können verschiedene Kampagnen mit unterschiedlichen Regeln ausführen um "
237
+ "das Engagement zu maximieren."
238
+
239
+ #: .././about-icegram.php:259
240
+ msgid "FAQ / Common Problems"
241
+ msgstr "FAQ / Häufige Probleme"
242
+
243
+ #: .././about-icegram.php:261
244
+ msgid "Messages look broken / formatting is weird..."
245
+ msgstr "Nachrichten sehen defekt aus / Formatierung ist seltsam ..."
246
+
247
+ #: .././about-icegram.php:262
248
+ msgid ""
249
+ "This is most likely due to CSS conflicts with current theme. We suggest "
250
+ "using simple formatting for messages. You can also write custom CSS in your "
251
+ "theme to fix any problems."
252
+ msgstr ""
253
+ "Dies sind wahrscheinlich CSS Konflikte mit dem aktuellen Theme . Wir "
254
+ "schlagen einfachen Formatierungen für Nachrichten vor. Sie können auch "
255
+ "benutzerdefinierte CSS in Ihrem Theme schreiben um Probleme zu beheben."
256
+
257
+ #: .././about-icegram.php:264
258
+ msgid "Extra Line Breaks / Paragraphs in messages..."
259
+ msgstr "Zusätzliche Zeilenumbrüche / Absätze in Nachrichten..."
260
+
261
+ #: .././about-icegram.php:265
262
+ msgid ""
263
+ "Go to HTML mode in content editor and pull your custom HTML code all "
264
+ "together in one line. Don't leave blank lines between two tags. That should "
265
+ "fix it."
266
+ msgstr ""
267
+ "Gehen Sie zum HTML-Modus in Content-Editor, und ziehen Sie Ihre "
268
+ "benutzerdefinierte HTML Code zusammen in eine Zeile. Keine Leerzeilen "
269
+ "zwischen zwei Tag lassen. Das sollte es beheben."
270
+
271
+ #: .././about-icegram.php:267
272
+ msgid "How do I add custom CSS for messages?"
273
+ msgstr "Wie kann ich benutzerdefinierte CSS für Nachrichten hinzufügen?"
274
+
275
+ #: .././about-icegram.php:268
276
+ msgid ""
277
+ "You can use custom CSS/JS inline in your message HTML. You can also use your "
278
+ "theme's custom JS / CSS feature to add your changes."
279
+ msgstr ""
280
+ "Sie können benutzerdefinierte CSS / JS inline in Ihrem Beitrag HTML "
281
+ "verwenden. Sie können auch benutzerdefinierte JS / CSS-Funktion Ihres Theme "
282
+ "verwenden um Änderungen hinzuzufügen."
283
+
284
+ #: .././about-icegram.php:270
285
+ msgid "Optin Forms / Mailing service integration..."
286
+ msgstr "Optin Formulare / Mailing Service-Integration..."
287
+
288
+ # ?
289
+ #: .././about-icegram.php:271
290
+ msgid ""
291
+ "You can embed any optin / subscription form to your Icegram messages using "
292
+ "'Embed Form' button above text editor. Paste in form HTML code and let "
293
+ "Icegram clean it up! You may even use a shortcode if you are using a WP "
294
+ "plugin from your newsletter / lead capture service."
295
+ msgstr ""
296
+ "Sie können beliebige optin / Anmeldeformulare, Icegram Nachrichten mit "
297
+ "'Embed Formular \" mit dem Button oben im Texteditor einbetten. Einfügen in "
298
+ "Form HTML Code und dann lassen Icegram aufräumen! Sie können sogar mit einem "
299
+ "Shortcode, wenn Sie mit einer WP Plugin von Ihrem Newsletter / Lead Capture "
300
+ "Service arbeiten verwenden."
301
+
302
+ #: .././about-icegram.php:273
303
+ msgid "How many messages should I show on a page?"
304
+ msgstr "Wie viele Nachrichten sollte ich auf eine Seite zu zeigen?"
305
+
306
+ #: .././about-icegram.php:274
307
+ msgid ""
308
+ "While Icegram provides you lots of different message types and ability to "
309
+ "add multiple messages to a campaign, we discourage you to go overboard. "
310
+ "We've observed two messages on a page work well, but YMMV!"
311
+ msgstr ""
312
+ "Icegram bietet Ihnen viele verschiedene Nachrichtentypen und die Fähigkeit, "
313
+ "mehrere Nachrichten zu einer Kampagne hinzuzufügen, aber mit zu vielen "
314
+ "werden über Sie Bord gehen. Wir haben zwei Nachrichten auf einer Seite "
315
+ "beobachtet was sich als gut erwiesen hat."
316
+
317
+ #: .././about-icegram.php:280
318
+ msgid "Preview does not work / not refreshing..."
319
+ msgstr "Vorschau funktioniert nicht / nicht aktualisiert..."
320
+
321
+ #: .././about-icegram.php:281
322
+ msgid ""
323
+ "Doing a browser refresh while previewing will not show your most recent "
324
+ "changes. Click 'Preview' button to see a preview with your latest changes."
325
+ msgstr ""
326
+ "Machen Sie eine Aktualisierung des Browsers wenn die Vorschau Ihre letzten "
327
+ "Änderungen nicht zeigt. Klicken Sie auf 'Vorschau', um eine Vorschau mit der "
328
+ "neuesten Änderungen zu sehen."
329
+
330
+ #: .././about-icegram.php:283
331
+ msgid "Can I use shortcodes in a message?"
332
+ msgstr "Kann ich Shortcodes in einer Nachricht verwenden?"
333
+
334
+ #: .././about-icegram.php:284
335
+ msgid ""
336
+ "Yes! Messages support shortcodes. You may need to adjust CSS so the "
337
+ "shortcode output looks good in your message."
338
+ msgstr ""
339
+ "Ja! Mitteilungen unterstützen Shortcodes. Möglicherweise müssen Sie die CSS "
340
+ "anpassen, so dass die Shortcode- Ausgabe gut in Ihrer Nachricht aussieht."
341
+
342
+ #: .././about-icegram.php:286
343
+ msgid "WPML / Multilingual usage..."
344
+ msgstr "WPML / Mehrsprachige Nutzung..."
345
+
346
+ #: .././about-icegram.php:287
347
+ msgid ""
348
+ "Go to <code>Messages</code> from Icegram menu. Edit a message and translate "
349
+ "it like any other post. Icegram will show translated message where possible. "
350
+ "Choose <code>All posts</code> under WPML Language setting - Blog Posts to "
351
+ "display, to fall back to default language messages."
352
+ msgstr ""
353
+ "Gehen Sie zu <code>Nachrichten</code> aus Icegram Menü. Bearbeiten Sie eine "
354
+ "Nachricht und übersetzen sie sie wie jede andere Nachricht. Icegram wird die "
355
+ "Nachricht wenn möglich übersetzen. Wählen Sie <code>Alle Einträge </code> "
356
+ "unter WPML Spracheinstellung - Blogeinträge damit diese angezeigt werden um "
357
+ "auf die Standardsprach Meldungen zurückgreifen."
358
+
359
+ #: .././about-icegram.php:291
360
+ msgid "I can't find a way to do X..."
361
+ msgstr "Ich kann keinen Weg zu X finden..."
362
+
363
+ #: .././about-icegram.php:292
364
+ msgid ""
365
+ "Icegram is actively developed. If you can't find your favorite feature (or "
366
+ "have a suggestion) contact us. We'd love to hear from you."
367
+ msgstr ""
368
+ "Icegram wird aktiv entwickelt. Wenn Sie Ihre Lieblings-Feature nicht finden "
369
+ "können (oder einen Vorschlag haben) kontaktieren Sie uns. Wir würden uns "
370
+ "freuen von Ihnen zu hören."
371
+
372
+ #: .././about-icegram.php:294
373
+ msgid "I'm facing a problem and can't find a way out..."
374
+ msgstr "Ich bin vor einem Problem und kann keinen Ausweg finden .."
375
+
376
+ #: .././about-icegram.php:295
377
+ msgid ""
378
+ ", provide as much detail of the problem as you can. We will try to solve the "
379
+ "problem ASAP."
380
+ msgstr ""
381
+ ", beschreiben Sie so viele Details des Problems wie möglich. Wir werden "
382
+ "versuchen, das Problem so schnell wie möglich zu lösen."
383
+
384
+ #: .././icegram.php:157
385
+ msgid "Free Add-ons, Proven Marketing Tricks and Updates"
386
+ msgstr "Kostenlose Add-ons, bewährte Marketing-Tricks und Updates"
387
+
388
+ #: .././icegram.php:162
389
+ msgid "Get add-ons and tips..."
390
+ msgstr "Holen Sie sich Add-ons und Tipps..."
391
+
392
+ #: .././icegram.php:253
393
+ msgid "Housekeeping"
394
+ msgstr "Haushaltung"
395
+
396
+ #: .././icegram.php:257
397
+ msgid "Remove all Icegram shortcodes"
398
+ msgstr "Entferne alle Icegram Shortcodes"
399
+
400
+ #: .././icegram.php:262
401
+ msgid "Remove all Icegram campaigns and messages"
402
+ msgstr "Entferne alle Icegram Kampagnen und Nachrichten"
403
+
404
+ #: .././icegram.php:266
405
+ msgid "Clean Up"
406
+ msgstr "Reinigen"
407
+
408
+ #: .././icegram.php:275
409
+ msgid ""
410
+ "You won't be able to recover this data once you proceed. Do you really want "
411
+ "to perform this action?"
412
+ msgstr ""
413
+ "Wenn Sie hier fortfahren werden Sie nicht in der Lage sein, diese Daten "
414
+ "wiederherzustellen. Wollen Sie wirklich diese Aktion durchführen?"
415
+
416
+ #: .././icegram.php:289
417
+ msgid "Done!"
418
+ msgstr "Fertig!"
419
+
420
+ #: .././icegram.php:418
421
+ msgid "Settings"
422
+ msgstr "Einstellungen"
423
+
424
+ #: .././icegram.php:419
425
+ msgid "Add-ons"
426
+ msgstr "Add-ons"
427
+
428
+ #: .././icegram.php:432
429
+ msgid "Docs & Support"
430
+ msgstr "Dokumente & Support"
431
+
432
+ #: .././icegram.php:621
433
+ msgid "Powered by Icegram"
434
+ msgstr "Powered by Icegram"
435
+
436
+ #: .././icegram.php:978
437
+ msgid "Campaign"
438
+ msgstr "Kampagne"
439
+
440
+ #: .././icegram.php:979 .././icegram.php:980
441
+ msgid "Add New Campaign"
442
+ msgstr "Kampagne hinzufügen"
443
+
444
+ #: .././icegram.php:981
445
+ msgid "Edit Campaign"
446
+ msgstr "Kampagne ändern"
447
+
448
+ #: .././icegram.php:982
449
+ msgid "New Campaign"
450
+ msgstr "Neue Kampagne"
451
+
452
+ #: .././icegram.php:984
453
+ msgid "View Campaign"
454
+ msgstr "Kampagne anzeigen"
455
+
456
+ #: .././icegram.php:985
457
+ msgid "Search Campaigns"
458
+ msgstr "Kampagne suchen"
459
+
460
+ #: .././icegram.php:986
461
+ msgid "No campaigns found"
462
+ msgstr "Keine Kampagne gefunden"
463
+
464
+ #: .././icegram.php:987
465
+ msgid "No campaigns found in Trash"
466
+ msgstr "Keine Kampagnen im Papierkorb gefunden"
467
+
468
+ #: .././icegram.php:989
469
+ msgid "Icegram"
470
+ msgstr "Icegram"
471
+
472
+ #: .././icegram.php:1016
473
+ msgid "Create New"
474
+ msgstr "Neue"
475
+
476
+ #: .././icegram.php:1017
477
+ msgid "Create New Message"
478
+ msgstr "Neue Nachricht anlegen"
479
+
480
+ #: .././icegram.php:1018 .././classes/class-icegram-campaign-admin.php:103
481
+ #: .././classes/class-icegram-campaign-admin.php:502
482
+ msgid "Edit Message"
483
+ msgstr "Nachricht ändern"
484
+
485
+ #: .././icegram.php:1019
486
+ msgid "New Message"
487
+ msgstr "Neue Nachricht"
488
+
489
+ #: .././icegram.php:1021
490
+ msgid "View Message"
491
+ msgstr "Nachricht anzeigen"
492
+
493
+ #: .././icegram.php:1022
494
+ msgid "Search Messages"
495
+ msgstr "Nachricht suchen"
496
+
497
+ #: .././icegram.php:1023
498
+ msgid "No messages found"
499
+ msgstr "Keine Nachricht gefunden"
500
+
501
+ #: .././icegram.php:1024
502
+ msgid "No messages found in Trash"
503
+ msgstr "Keine Nachricht im Papierkorp gefunden"
504
+
505
+ #: .././icegram.php:1422
506
+ msgid "Copy"
507
+ msgstr "Kopieren"
508
+
509
+ #: .././settings.php:19
510
+ msgid "Icegram Settings"
511
+ msgstr "Icegram Einstellungen"
512
+
513
+ #: .././settings.php:23
514
+ msgid "Share Icegram"
515
+ msgstr "Teile Icegram"
516
+
517
+ #: .././settings.php:27
518
+ msgid "Show \"Powered by\" link"
519
+ msgstr "Zeige \"Powered by\" Link"
520
+
521
+ #: .././settings.php:32
522
+ msgid "Cache Friendly?"
523
+ msgstr "Cache freundlich?"
524
+
525
+ #: .././settings.php:36
526
+ msgid ""
527
+ "Turn on \"Lazy Load\" - load Icegram scripts and messages after page load to "
528
+ "avoid caching problems."
529
+ msgstr ""
530
+ "Schalten Sie \"Lazy Load\" - Icegram Skripte und Nachrichten nach dem Laden "
531
+ "der Seite um Caching Probleme zu vermeiden."
532
+
533
+ #: .././addons.php:13
534
+ msgid "Icegram Add-ons"
535
+ msgstr "Icegram Add-ons"
536
+
537
+ #: .././addons.php:47
538
+ msgid "Sorry! No Add-ons available currently."
539
+ msgstr "Es tut uns leid! Derzeit keine verfügbaren Add-ons."
540
+
541
+ #: .././classes/class-icegram-message-admin.php:41
542
+ msgid "Message Settings"
543
+ msgstr "Nachrichten Einstellungen"
544
+
545
+ #: .././classes/class-icegram-message-admin.php:113
546
+ #: .././classes/class-icegram-message-admin.php:520
547
+ #: .././classes/class-icegram-campaign-admin.php:452
548
+ msgid "Type"
549
+ msgstr "Type"
550
+
551
+ #: .././classes/class-icegram-message-admin.php:129
552
+ #: .././classes/class-icegram-message-admin.php:521
553
+ msgid "Theme"
554
+ msgstr "Theme"
555
+
556
+ #: .././classes/class-icegram-message-admin.php:146
557
+ msgid "Animation"
558
+ msgstr "Animation"
559
+
560
+ #: .././classes/class-icegram-message-admin.php:161
561
+ msgid "Headline"
562
+ msgstr "Headline"
563
+
564
+ #: .././classes/class-icegram-message-admin.php:162
565
+ msgid ""
566
+ "Shown with highest prominence. Click on idea button on right to get a new "
567
+ "headline."
568
+ msgstr ""
569
+ "Dargestellt mit höchster Prominenz. Klicken Sie auf die Idee Taste auf "
570
+ "Recht, eine neue Schlagzeile zu bekommen."
571
+
572
+ #: .././classes/class-icegram-message-admin.php:168
573
+ msgid "Give Me Another Headline"
574
+ msgstr "Gib mir noch eine Überschrift"
575
+
576
+ #: .././classes/class-icegram-message-admin.php:174
577
+ msgid "Icon / Avatar Image"
578
+ msgstr "Symbol / Profilbild"
579
+
580
+ #: .././classes/class-icegram-message-admin.php:175
581
+ msgid "This image will appear in message content."
582
+ msgstr "Dieses Bild wird im Nachrichteninhalt angezeigt."
583
+
584
+ #: .././classes/class-icegram-message-admin.php:178
585
+ msgid "Upload / Select an image"
586
+ msgstr "Upload / Wählen Sie ein Bild"
587
+
588
+ #: .././classes/class-icegram-message-admin.php:178
589
+ msgid "Upload / Select Image"
590
+ msgstr "Upload / Bild auswählen"
591
+
592
+ #: .././classes/class-icegram-message-admin.php:194
593
+ msgid "Message Body"
594
+ msgstr "Body Nachricht"
595
+
596
+ #: .././classes/class-icegram-message-admin.php:225
597
+ msgid "Form"
598
+ msgstr "Form"
599
+
600
+ #: .././classes/class-icegram-message-admin.php:226
601
+ msgid "Use Opt-in / Subscription / Lead capture form"
602
+ msgstr "Verwenden Sie Opt-in / Abonnement / Lead Capture-Form"
603
+
604
+ #: .././classes/class-icegram-message-admin.php:251
605
+ #: .././classes/class-icegram-message-admin.php:253
606
+ msgid "Left"
607
+ msgstr "Links"
608
+
609
+ #: .././classes/class-icegram-message-admin.php:258
610
+ #: .././classes/class-icegram-message-admin.php:260
611
+ msgid "Right"
612
+ msgstr "Rechts"
613
+
614
+ #: .././classes/class-icegram-message-admin.php:265
615
+ #: .././classes/class-icegram-message-admin.php:267
616
+ msgid "Bottom"
617
+ msgstr "Unten"
618
+
619
+ #: .././classes/class-icegram-message-admin.php:282
620
+ #: .././classes/class-icegram-message-admin.php:284
621
+ msgid "Inline"
622
+ msgstr "In Zeile"
623
+
624
+ #: .././classes/class-icegram-message-admin.php:296
625
+ msgid "Background Color"
626
+ msgstr "Hintergrundfarbe"
627
+
628
+ #: .././classes/class-icegram-message-admin.php:297
629
+ msgid "Text Color"
630
+ msgstr "Textfarbe"
631
+
632
+ #: .././classes/class-icegram-message-admin.php:308
633
+ msgid "Text / HTML to show before the form"
634
+ msgstr "Text / HTML vor dem Formular zeigen"
635
+
636
+ #: .././classes/class-icegram-message-admin.php:312
637
+ msgid "Form Embed Code"
638
+ msgstr "Form Embed Code"
639
+
640
+ #: .././classes/class-icegram-message-admin.php:314
641
+ msgid "Paste HTML / shortcode of your form here..."
642
+ msgstr "Fügen Sie HTML / Shortcode in das Formular ein..."
643
+
644
+ # ?
645
+ #: .././classes/class-icegram-message-admin.php:318
646
+ msgid "Show labels above fields"
647
+ msgstr "Zeige die Beschriftung über den Feldern"
648
+
649
+ #: .././classes/class-icegram-message-admin.php:325
650
+ msgid "Text / HTML to show after the form"
651
+ msgstr "Text / HTML nach dem Formular zeigen"
652
+
653
+ #: .././classes/class-icegram-message-admin.php:329
654
+ msgid ""
655
+ "Insert <code>[ig_form]</code> where you want to show this form in message "
656
+ "body."
657
+ msgstr ""
658
+ "Fügen Sie <code>[ig_form] </code> in das Formular in dem der "
659
+ "Nachrichtentext angezeigt werden sollen ein."
660
+
661
+ #: .././classes/class-icegram-message-admin.php:336
662
+ msgid "Button Label"
663
+ msgstr "Button Beschriftung"
664
+
665
+ #: .././classes/class-icegram-message-admin.php:337
666
+ msgid "Your call to action text. Something unusual will increase conversions."
667
+ msgstr "Ihr CTA Text. Etwas ungewöhnliches wird Conversion steigern."
668
+
669
+ #: .././classes/class-icegram-message-admin.php:347
670
+ msgid "Target Link"
671
+ msgstr "Ziel Link"
672
+
673
+ #: .././classes/class-icegram-message-admin.php:348
674
+ msgid "Enter destination URL here. Clicking will redirect to this link."
675
+ msgstr ""
676
+ "Geben Sie hier die Ziel-URL ein. Ein Klick leitet Sieauf diesen Link weiter."
677
+
678
+ #: .././classes/class-icegram-message-admin.php:371
679
+ msgid "Body"
680
+ msgstr "Body"
681
+
682
+ #: .././classes/class-icegram-message-admin.php:372
683
+ #: .././classes/class-icegram-message-admin.php:378
684
+ msgid "Background"
685
+ msgstr "Hintergrund"
686
+
687
+ #: .././classes/class-icegram-message-admin.php:373
688
+ #: .././classes/class-icegram-message-admin.php:379
689
+ msgid "Text"
690
+ msgstr "Text"
691
+
692
+ #: .././classes/class-icegram-message-admin.php:377
693
+ msgid "Button"
694
+ msgstr "Button"
695
+
696
+ #: .././classes/class-icegram-message-admin.php:384
697
+ msgid "Colors"
698
+ msgstr "Farben"
699
+
700
+ #: .././classes/class-icegram-message-admin.php:385
701
+ msgid "Use theme's default colors"
702
+ msgstr "Verwenden Sie die Standardfarben Theme"
703
+
704
+ #: .././classes/class-icegram-message-admin.php:391
705
+ msgid "Position"
706
+ msgstr "Position"
707
+
708
+ #: .././classes/class-icegram-message-admin.php:450
709
+ #, php-format
710
+ msgid "You may add <code>[%s]</code> where you want to show this message."
711
+ msgstr ""
712
+ "Sie können <code>[% s]</code> einfügen wo diese Nachricht angezeigt werden "
713
+ "soll."
714
+
715
+ #: .././classes/class-icegram-message-admin.php:522
716
+ msgid "Thumbnail"
717
+ msgstr "Thumbnail"
718
+
719
+ #: .././classes/class-icegram-message-admin.php:664
720
+ msgid "Here Is A Method That Is Helping ____ To ____"
721
+ msgstr "Hier ist eine Methode die hilft ____ um ____"
722
+
723
+ #: .././classes/class-icegram-message-admin.php:665
724
+ msgid "__ Little Known Ways To ____"
725
+ msgstr "__ wenig bekannte Wege um ____"
726
+
727
+ #: .././classes/class-icegram-message-admin.php:666
728
+ msgid "Get Rid Of ____ Once And For All"
729
+ msgstr "Beseitige ____ ein für alle Mal"
730
+
731
+ #: .././classes/class-icegram-message-admin.php:667
732
+ msgid "How To ____ So You Can ____"
733
+ msgstr "Wie man ____ Sie können ____"
734
+
735
+ #: .././classes/class-icegram-message-admin.php:668
736
+ msgid "They Didn't Think I Could ____, But I Did"
737
+ msgstr "Sie wussten nicht, dass ich ____, aber ich habe"
738
+
739
+ #: .././classes/class-icegram-message-admin.php:669
740
+ msgid "How ____ Made Me ____"
741
+ msgstr "Wie ____ machte ich mich ____"
742
+
743
+ #: .././classes/class-icegram-message-admin.php:670
744
+ msgid "Are You ____ ?"
745
+ msgstr "Bist du ____ ?"
746
+
747
+ #: .././classes/class-icegram-message-admin.php:671
748
+ msgid "Warning: ____ !"
749
+ msgstr "Warnung: ____ !"
750
+
751
+ #: .././classes/class-icegram-message-admin.php:672
752
+ msgid "Do You Make These Mistakes With ____ ?"
753
+ msgstr "Machst du diese Fehler mit ____?"
754
+
755
+ #: .././classes/class-icegram-message-admin.php:673
756
+ msgid "7 Ways To ____"
757
+ msgstr "7 Wege zum ____"
758
+
759
+ #: .././classes/class-icegram-message-admin.php:674
760
+ msgid "If You're ____, You Can ____"
761
+ msgstr "Wenn Sie ____, können Sie ____"
762
+
763
+ #: .././classes/class-icegram-message-admin.php:675
764
+ msgid "Turn your ____ into a ____"
765
+ msgstr "Verwandeln Sie Ihren ____ in ____ ein"
766
+
767
+ #: .././classes/class-icegram-message-admin.php:676
768
+ msgid "Want To Be A ____?"
769
+ msgstr "Möchten Sie ein ____?"
770
+
771
+ #: .././classes/class-icegram-message-admin.php:677
772
+ msgid "The Ugly Truth About Your Beautiful ____"
773
+ msgstr "Die nackte Wahrheit über Ihre Schöne ____"
774
+
775
+ #: .././classes/class-icegram-message-admin.php:678
776
+ msgid "The Secret to ____ Is Simply ____!"
777
+ msgstr "Das Geheimnis für ____ ist einfach ____!"
778
+
779
+ #: .././classes/class-icegram-message-admin.php:679
780
+ msgid "The Quickest Way I Know To ____"
781
+ msgstr "Der schnellste Weg den ixh weiß um ____"
782
+
783
+ # La traduzione letterale non rendeva in italiano. Creato un titolo diverso.
784
+ #: .././classes/class-icegram-message-admin.php:680
785
+ msgid "The Lazy Man's Way To ____"
786
+ msgstr "Die Faule Weg um ____"
787
+
788
+ # La traduzione in italiano non rende. Suggerimenti?
789
+ #: .././classes/class-icegram-message-admin.php:681
790
+ msgid ""
791
+ "The Amazing Story Of ____ That Requires So Little Of ____ You Could ____"
792
+ msgstr ""
793
+ "Die erstaunliche Geschichte ____ Das ist so wenig benötigen von ____ Sie "
794
+ "könnten ____ "
795
+
796
+ # La traduzione in italiano non rende. Suggerimenti?
797
+ #: .././classes/class-icegram-message-admin.php:682
798
+ msgid "The Amazing Secret Of The ____ Genius Who Is Afraid Of ____"
799
+ msgstr "Das erstaunliche Geheimnis der ____ Genius Wer hat Angst vor ____"
800
+
801
+ #: .././classes/class-icegram-message-admin.php:683
802
+ msgid "The 10 Wackiest Ideas That ____... And How You Can Too!"
803
+ msgstr "Die 10 verrücktesten Ideen Das ____... Und wie kannst du das auch!"
804
+
805
+ # La traduzione in italiano non rende. Ho creato un altro titolo. Altri suggerimenti?
806
+ #: .././classes/class-icegram-message-admin.php:684
807
+ msgid "The Inside Secrets To ____ With Crazy, Outlandish And Outrageous ____"
808
+ msgstr ""
809
+ "Die innere Geheimnisse zu ____ Mit verrückt, ausgefallen und empörend ____"
810
+
811
+ #: .././classes/class-icegram-message-admin.php:685
812
+ msgid "____ Like A ____"
813
+ msgstr "____ gleich wie ____"
814
+
815
+ #: .././classes/class-icegram-message-admin.php:686
816
+ msgid "Remember When You Could Have ____, And You Didn't?"
817
+ msgstr "Denken Sie daran, wenn Sie hätten ____, Und ihr habt nicht?"
818
+
819
+ # La trsduzione letterale non rendeva in italiano. Creata nuova frase.
820
+ #: .././classes/class-icegram-message-admin.php:687
821
+ msgid "Is The ____ Worth $x To You?"
822
+ msgstr "Ist ____ im Wert von $x für Sie?"
823
+
824
+ #: .././classes/class-icegram-message-admin.php:688
825
+ msgid "Increase your ____, reduce ____, maintain ____ and ____ with ____"
826
+ msgstr ""
827
+ "Steigern Sie Ihren ____, ____ reduzieren Sie, halten ____ und ____ mit ____"
828
+
829
+ #: .././classes/class-icegram-message-admin.php:689
830
+ msgid "If You Can ____ You Can ____"
831
+ msgstr "Wenn Sie können ____ Sie können ____"
832
+
833
+ #: .././classes/class-icegram-message-admin.php:690
834
+ msgid "I Discovered How To ____... Now I'm Revealing My Secret"
835
+ msgstr "Ich entdeckte, wie man ____... Ich enthülle meine Geheimnisse"
836
+
837
+ #: .././classes/class-icegram-message-admin.php:691
838
+ msgid "How To Turn Your ____ Into The Most ____"
839
+ msgstr "Wie man ____ wandelt ____ in die meist ____"
840
+
841
+ # La traduzione letterale non rendeva in italiano. Creata nuova frase.
842
+ #
843
+ #
844
+ #: .././classes/class-icegram-message-admin.php:692
845
+ msgid "How To Take The Headache Out Of ____"
846
+ msgstr "Wie man den Kopfschmerz aus ____"
847
+
848
+ #: .././classes/class-icegram-message-admin.php:693
849
+ msgid "How To ____ ... Legally"
850
+ msgstr "Wie man ____ ... Rechtlich"
851
+
852
+ #: .././classes/class-icegram-message-admin.php:694
853
+ msgid "How To ____ That ____"
854
+ msgstr "Wie man das ____"
855
+
856
+ #: .././classes/class-icegram-message-admin.php:695
857
+ msgid "How To Discover The ____ That Lies Hidden In Your ____"
858
+ msgstr "Wie Sie entdecken ____ Das liegt versteckt in ihrer ____"
859
+
860
+ #: .././classes/class-icegram-message-admin.php:696
861
+ msgid "How To ____ Even When Your Not ____"
862
+ msgstr "Wie man ____ auch wenn Sie nicht ____"
863
+
864
+ #: .././classes/class-icegram-message-admin.php:697
865
+ msgid "____ With No ____!"
866
+ msgstr "____ Ohne ____!"
867
+
868
+ #: .././classes/class-icegram-message-admin.php:698
869
+ msgid "Greatest Goldmine of ____ Ever Jammed Into One Big ____"
870
+ msgstr "Größten Goldminen von ____ Blockierte immer in eine große ____"
871
+
872
+ #: .././classes/class-icegram-message-admin.php:699
873
+ msgid "Free ____ Tells How To Get Better ____"
874
+ msgstr "Kostenlose ____ erklärt, wie man besser ____"
875
+
876
+ #: .././classes/class-icegram-message-admin.php:700
877
+ msgid ""
878
+ "FREE ____ Worth $____ for the first 100 People to take Advantage of this "
879
+ "Offer"
880
+ msgstr ""
881
+ "Kostenlose ____ im Wert von $____ für die ersten 100 Leute, um von diesem "
882
+ "Angebot Gebrauch zu nehmen"
883
+
884
+ #: .././classes/class-icegram-message-admin.php:701
885
+ msgid "Don't Try This With Any Other ____"
886
+ msgstr "Versuchen nicht dieses mit jeder anderen ____"
887
+
888
+ #: .././classes/class-icegram-message-admin.php:702
889
+ msgid "Do You Honestly Want To ____?"
890
+ msgstr "Wollen Sie ehrlich ____?"
891
+
892
+ #: .././classes/class-icegram-message-admin.php:703
893
+ msgid "Discover The Magic ____ That Will Bring You ____ & ____!"
894
+ msgstr "Entdecken Sie den Zauber ____ Das bringt Sie ____ & ____!"
895
+
896
+ #: .././classes/class-icegram-message-admin.php:704
897
+ msgid "____ Man Reveals A Short-Cut To ____"
898
+ msgstr "____ Man zeigt einen Short-Cut zu ____"
899
+
900
+ #: .././classes/class-icegram-message-admin.php:705
901
+ msgid "Confessions Of A ____"
902
+ msgstr "Bekenntnis einer ____"
903
+
904
+ #: .././classes/class-icegram-message-admin.php:706
905
+ msgid "Are You Ready To ____?"
906
+ msgstr "Bist du bereit für ____?"
907
+
908
+ #: .././classes/class-icegram-message-admin.php:707
909
+ msgid "An Open Letter To Everyone Who ____ More Than ____ Per ____"
910
+ msgstr "Ein offener Brief an alle, die mehr als ____ per"
911
+
912
+ #: .././classes/class-icegram-message-admin.php:708
913
+ msgid "An Amazing ____ You Can Carry In Your ____"
914
+ msgstr "Ein erstaunliches ____ können Sie ____ tragen"
915
+
916
+ #: .././classes/class-icegram-message-admin.php:709
917
+ msgid "21 Secret ____ that will ____... NOW!"
918
+ msgstr "21 Geheimnise ____ die JETZT ____... werden!"
919
+
920
+ #: .././classes/class-icegram-message-admin.php:716
921
+ #: .././classes/class-icegram-campaign-admin.php:661
922
+ msgid "Duplicate"
923
+ msgstr "Duplikat"
924
+
925
+ #: .././classes/class-icegram-campaign-admin.php:56
926
+ msgid "Search to add / Create new&hellip;"
927
+ msgstr "Suche hinzufügen / Neues&hellip;"
928
+
929
+ #: .././classes/class-icegram-campaign-admin.php:59
930
+ #: .././classes/class-icegram-campaign-admin.php:439
931
+ msgid "Create new"
932
+ msgstr "Neue"
933
+
934
+ #: .././classes/class-icegram-campaign-admin.php:62
935
+ msgid "Preview"
936
+ msgstr "Vorschau"
937
+
938
+ #: .././classes/class-icegram-campaign-admin.php:95
939
+ #: .././classes/class-icegram-campaign-admin.php:495
940
+ msgid "Give this message a name for your own reference"
941
+ msgstr "Geben Sie diese Nachricht einen Namen für die eigene Referenz"
942
+
943
+ #: .././classes/class-icegram-campaign-admin.php:100
944
+ #: .././classes/class-icegram-campaign-admin.php:499
945
+ msgid " sec"
946
+ msgstr "sec"
947
+
948
+ #: .././classes/class-icegram-campaign-admin.php:104
949
+ #: .././classes/class-icegram-campaign-admin.php:503
950
+ msgid "Remove from Campaign"
951
+ msgstr "Von Kampagne entfernen"
952
+
953
+ #: .././classes/class-icegram-campaign-admin.php:122
954
+ msgid ""
955
+ "No messages yet. Use search / create bar above to add messages to this "
956
+ "campaign."
957
+ msgstr ""
958
+ "Noch keine Nachrichten. Verwenden Sie Suche / erstelle eine Leiste über die "
959
+ "Nachrichten um diese Kampagne hinzuzufügen."
960
+
961
+ #: .././classes/class-icegram-campaign-admin.php:160
962
+ msgid "Where?"
963
+ msgstr "Wo?"
964
+
965
+ #: .././classes/class-icegram-campaign-admin.php:163
966
+ msgid "Sitewide"
967
+ msgstr "Seitenweit"
968
+
969
+ #: .././classes/class-icegram-campaign-admin.php:165
970
+ #, php-format
971
+ msgid ""
972
+ "Additionally you can insert <code>[%s]</code> wherever you want to run this "
973
+ "campaign."
974
+ msgstr ""
975
+ "Zusätzlich können Sie den <code>[% s]</code> einfügen, wo immer Sie diese "
976
+ "Kampagne ausgeführt werden soll."
977
+
978
+ #: .././classes/class-icegram-campaign-admin.php:172
979
+ msgid "Select pages to exclude&hellip;"
980
+ msgstr "Wählen Sie Seiten um diese auszuschliessen&hellip;"
981
+
982
+ #: .././classes/class-icegram-campaign-admin.php:187
983
+ msgid "Homepage"
984
+ msgstr "Homepage"
985
+
986
+ #: .././classes/class-icegram-campaign-admin.php:194
987
+ msgid "Selected pages"
988
+ msgstr "Ausgewählte Seiten"
989
+
990
+ #: .././classes/class-icegram-campaign-admin.php:200
991
+ msgid "Select a page&hellip;"
992
+ msgstr "Wählen Sie eine Seite&hellip;"
993
+
994
+ #: .././classes/class-icegram-campaign-admin.php:215
995
+ msgid "Specific URLs on this site"
996
+ msgstr "Bestimmte URLs auf dieser Seite"
997
+
998
+ #: .././classes/class-icegram-campaign-admin.php:231
999
+ msgid " Add another"
1000
+ msgstr "Neu hinzufügen"
1001
+
1002
+ #: .././classes/class-icegram-campaign-admin.php:241
1003
+ msgid "When?"
1004
+ msgstr "Wann?"
1005
+
1006
+ #: .././classes/class-icegram-campaign-admin.php:244
1007
+ msgid "Always"
1008
+ msgstr "Immer"
1009
+
1010
+ #: .././classes/class-icegram-campaign-admin.php:251
1011
+ msgid "Schedule"
1012
+ msgstr "Zeitplan"
1013
+
1014
+ #: .././classes/class-icegram-campaign-admin.php:254
1015
+ msgid "From&hellip;"
1016
+ msgstr "Von&hellip;"
1017
+
1018
+ #: .././classes/class-icegram-campaign-admin.php:257
1019
+ msgid "To&hellip;"
1020
+ msgstr "Bis&hellip;"
1021
+
1022
+ #: .././classes/class-icegram-campaign-admin.php:265
1023
+ msgid "Device?"
1024
+ msgstr "Gerät?"
1025
+
1026
+ #: .././classes/class-icegram-campaign-admin.php:266
1027
+ msgid "Mobile / Smartphones"
1028
+ msgstr "Mobile / Smartphones"
1029
+
1030
+ #: .././classes/class-icegram-campaign-admin.php:270
1031
+ msgid "Tablet"
1032
+ msgstr "Tablet"
1033
+
1034
+ #: .././classes/class-icegram-campaign-admin.php:274
1035
+ msgid "Desktop / Laptop"
1036
+ msgstr "Desktop /Laptop"
1037
+
1038
+ #: .././classes/class-icegram-campaign-admin.php:282
1039
+ msgid "Who?"
1040
+ msgstr "Wer?"
1041
+
1042
+ #: .././classes/class-icegram-campaign-admin.php:285
1043
+ msgid "All users"
1044
+ msgstr "Alle Nutzer"
1045
+
1046
+ #: .././classes/class-icegram-campaign-admin.php:292
1047
+ msgid "Logged in users only"
1048
+ msgstr "Nur angemeldete Benutzer"
1049
+
1050
+ #: .././classes/class-icegram-campaign-admin.php:311
1051
+ msgid "Select a user role&hellip;"
1052
+ msgstr "Wählen Sie eine Benutzerrolle&hellip;"
1053
+
1054
+ #: .././classes/class-icegram-campaign-admin.php:327
1055
+ msgid "Not Logged in users"
1056
+ msgstr "Nicht angemeldete Benutzer"
1057
+
1058
+ #: .././classes/class-icegram-campaign-admin.php:331
1059
+ #: .././classes/class-icegram-campaign-admin.php:341
1060
+ msgid "Current Session"
1061
+ msgstr "Akt. Sitzung"
1062
+
1063
+ #: .././classes/class-icegram-campaign-admin.php:332
1064
+ #: .././classes/class-icegram-campaign-admin.php:340
1065
+ msgid "Never"
1066
+ msgstr "Nie"
1067
+
1068
+ #: .././classes/class-icegram-campaign-admin.php:333
1069
+ #: .././classes/class-icegram-campaign-admin.php:342
1070
+ msgid "Today"
1071
+ msgstr "Heute"
1072
+
1073
+ #: .././classes/class-icegram-campaign-admin.php:334
1074
+ #: .././classes/class-icegram-campaign-admin.php:343
1075
+ msgid "One week"
1076
+ msgstr "1 Woche"
1077
+
1078
+ #: .././classes/class-icegram-campaign-admin.php:335
1079
+ #: .././classes/class-icegram-campaign-admin.php:344
1080
+ msgid "Two weeks"
1081
+ msgstr "2 Wochen"
1082
+
1083
+ #: .././classes/class-icegram-campaign-admin.php:336
1084
+ #: .././classes/class-icegram-campaign-admin.php:345
1085
+ msgid "One Month "
1086
+ msgstr "1 Monat"
1087
+
1088
+ #: .././classes/class-icegram-campaign-admin.php:337
1089
+ #: .././classes/class-icegram-campaign-admin.php:346
1090
+ msgid "Three Months "
1091
+ msgstr "3 Monate"
1092
+
1093
+ #: .././classes/class-icegram-campaign-admin.php:338
1094
+ #: .././classes/class-icegram-campaign-admin.php:347
1095
+ msgid "One year"
1096
+ msgstr "1 Jahr"
1097
+
1098
+ #: .././classes/class-icegram-campaign-admin.php:339
1099
+ #: .././classes/class-icegram-campaign-admin.php:348
1100
+ msgid "Two Years"
1101
+ msgstr "2 Jahre"
1102
+
1103
+ #: .././classes/class-icegram-campaign-admin.php:353
1104
+ msgid "Retargeting"
1105
+ msgstr "Retargeting"
1106
+
1107
+ #: .././classes/class-icegram-campaign-admin.php:356
1108
+ msgid "Once shown, do NOT show this campaign again for"
1109
+ msgstr "Sobald gezeigt, diese Kampagne nicht wieder zeigen für"
1110
+
1111
+ #: .././classes/class-icegram-campaign-admin.php:371
1112
+ msgid "Once CTA is clicked, do NOT show this campaign again for"
1113
+ msgstr "Sobald CTA geklickt wird, diese Kampa. nicht zeigen für"
1114
+
1115
+ #: .././classes/class-icegram-campaign-admin.php:435
1116
+ msgid "- - - - - - - - - - - - - - - - - - - - - - - - - -"
1117
+ msgstr "- - - - - - - - - - - - - - - - - - - - - - - - - -"
1118
+
1119
+ #: .././classes/class-icegram-campaign-admin.php:454
1120
+ msgid "Show after"
1121
+ msgstr "Zeige später"
1122
+
1123
+ #: .././classes/class-icegram-campaign-admin.php:455
1124
+ msgid "Actions"
1125
+ msgstr "Aktionen"
{lang → lite/lang}/icegram-it_IT.mo RENAMED
File without changes
{lang → lite/lang}/icegram-it_IT.po RENAMED
File without changes
{lang → lite/lang}/src/icegram.pot RENAMED
@@ -1,1248 +1,1248 @@
1
- # Copyright (C) 2014 Icegram
2
- # This file is distributed under the same license as the Icegram package.
3
- # Loco Gettext template
4
- #, fuzzy
5
- msgid ""
6
- msgstr ""
7
- "Project-Id-Version: Icegram 1.1.1\n"
8
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/icegram\n"
9
- "POT-Creation-Date: 2014-06-10 06:09:11+00:00\n"
10
- "POT-Revision-Date: Tue Aug 02 2016 12:36:40 GMT+0530 (IST)\n"
11
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: Icegram Team <hello@icegram.com>\n"
13
- "Language-Team: Icegram Team <hello@icegram.com>\n"
14
- "Language: \n"
15
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
16
- "MIME-Version: 1.0\n"
17
- "Content-Type: text/plain; charset=UTF-8\n"
18
- "Content-Transfer-Encoding: 8bit\n"
19
- "X-Poedit-SourceCharset: UTF-8\n"
20
- "X-Poedit-Basepath: .\n"
21
- "X-Poedit-SearchPath-0: ../..\n"
22
- "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
23
- "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
24
- "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
25
- "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
26
- "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
27
- "X-Generator: Loco - https://localise.biz/"
28
-
29
- #: ../../gallery.php:22
30
- msgid "Gallery items"
31
- msgstr ""
32
-
33
- #: ../../gallery.php:23
34
- msgid "Here's a collection of some "
35
- msgstr ""
36
-
37
- #: ../../gallery.php:23
38
- msgid "beautiful, powerful ready-to-use Icegram Campaigns."
39
- msgstr ""
40
-
41
- #: ../../gallery.php:24
42
- msgid "No coding or special skills required. Simply click to"
43
- msgstr ""
44
-
45
- #: ../../gallery.php:24
46
- msgid " Use This "
47
- msgstr ""
48
-
49
- #: ../../gallery.php:24
50
- msgid "and the campaign will automatically appear in your Icegram dashboard."
51
- msgstr ""
52
-
53
- #: ../../gallery.php:40 ../../gallery.php:83 ../../classes/class-icegram-campaign-
54
- #: admin.php:63 ../../classes/class-icegram-campaign-admin.php:673
55
- msgid "Preview"
56
- msgstr ""
57
-
58
- #: ../../gallery.php:41 ../../gallery.php:56
59
- #, php-format
60
- msgid "By %s"
61
- msgstr ""
62
-
63
- #: ../../gallery.php:48
64
- msgid "Close"
65
- msgstr ""
66
-
67
- #: ../../gallery.php:49
68
- msgctxt "Button label for a theme"
69
- msgid "Previous"
70
- msgstr ""
71
-
72
- #: ../../gallery.php:50
73
- msgctxt "Button label for a theme"
74
- msgid "Next"
75
- msgstr ""
76
-
77
- #: ../../gallery.php:51
78
- msgid "Use This"
79
- msgstr ""
80
-
81
- #: ../../gallery.php:68
82
- msgid "This theme has not been rated yet."
83
- msgstr ""
84
-
85
- #: ../../gallery.php:70 ../../about-icegram.php:182
86
- #, php-format
87
- msgid "Version: %s"
88
- msgstr ""
89
-
90
- #: ../../gallery.php:76
91
- msgid "Collapse Sidebar"
92
- msgstr ""
93
-
94
- #: ../../gallery.php:78
95
- msgid "Collapse"
96
- msgstr ""
97
-
98
- #. Name of the plugin
99
- msgid "Icegram - Popups, Optins, CTAs & lot more..."
100
- msgstr ""
101
-
102
- #. URI of the plugin
103
- msgid "https://www.icegram.com"
104
- msgstr ""
105
-
106
- #. Description of the plugin/theme
107
- msgid ""
108
- "All in one solution to inspire, convert and engage your audiences. Action "
109
- "bars, Popup windows, Messengers, Toast notifications and more. Awesome "
110
- "themes and powerful rules."
111
- msgstr ""
112
-
113
- #. Author of the plugin
114
- msgid "icegram"
115
- msgstr ""
116
-
117
- #: ../../icegram.php:106
118
- msgid "Addons"
119
- msgstr ""
120
-
121
- #: ../../icegram.php:107 ../../icegram.php:518
122
- msgid "Settings"
123
- msgstr ""
124
-
125
- #: ../../icegram.php:108
126
- msgid "Support"
127
- msgstr ""
128
-
129
- #: ../../icegram.php:196
130
- msgid "No, I don't like offers..."
131
- msgstr ""
132
-
133
- #: ../../icegram.php:204
134
- msgid "No, I don't want to save money "
135
- msgstr ""
136
-
137
- #: ../../icegram.php:205
138
- msgid "No, I will buy at full price later"
139
- msgstr ""
140
-
141
- #: ../../icegram.php:206
142
- msgid "No, I don't like insider deals"
143
- msgstr ""
144
-
145
- #: ../../icegram.php:223
146
- msgid "Begin installation"
147
- msgstr ""
148
-
149
- #: ../../icegram.php:223
150
- msgid "No, I don't need it"
151
- msgstr ""
152
-
153
- #: ../../icegram.php:247
154
- msgid "Free Add-ons, Proven Marketing Tricks and Updates"
155
- msgstr ""
156
-
157
- #: ../../icegram.php:252
158
- msgid "Get add-ons and tips..."
159
- msgstr ""
160
-
161
- #: ../../icegram.php:343
162
- msgid "Housekeeping"
163
- msgstr ""
164
-
165
- #: ../../icegram.php:347
166
- msgid "Remove all Icegram shortcodes"
167
- msgstr ""
168
-
169
- #: ../../icegram.php:352
170
- msgid "Remove all Icegram campaigns and messages"
171
- msgstr ""
172
-
173
- #: ../../icegram.php:356
174
- msgid "Clean Up"
175
- msgstr ""
176
-
177
- #: ../../icegram.php:365
178
- msgid ""
179
- "You won't be able to recover this data once you proceed. Do you really want "
180
- "to perform this action?"
181
- msgstr ""
182
-
183
- #: ../../icegram.php:380
184
- msgid "Done!"
185
- msgstr ""
186
-
187
- #: ../../icegram.php:516
188
- msgid "Welcome to Icegram"
189
- msgstr ""
190
-
191
- #: ../../icegram.php:517
192
- msgid "Gallery"
193
- msgstr ""
194
-
195
- #: ../../icegram.php:519
196
- msgid "Add-ons"
197
- msgstr ""
198
-
199
- #: ../../icegram.php:532
200
- msgid "Docs & Support"
201
- msgstr ""
202
-
203
- #: ../../icegram.php:577
204
- msgid ""
205
- "Are you sure you want to delete this theme?\n"
206
- "\n"
207
- "Click 'Cancel' to go back, 'OK' to confirm the delete."
208
- msgstr ""
209
-
210
- #: ../../icegram.php:581
211
- msgid "Add New Gallery Item"
212
- msgstr ""
213
-
214
- #: ../../icegram.php:582
215
- msgid "Search Installed Gallery Item"
216
- msgstr ""
217
-
218
- #: ../../icegram.php:583
219
- msgid "Search installed Gallery Item..."
220
- msgstr ""
221
-
222
- #: ../../icegram.php:584
223
- #, php-format
224
- msgid "Number of Gallery Item found: %d"
225
- msgstr ""
226
-
227
- #: ../../icegram.php:585
228
- msgid "No Gallery Item found. Try a different search."
229
- msgstr ""
230
-
231
- #: ../../icegram.php:754
232
- msgid "Powered by Icegram"
233
- msgstr ""
234
-
235
- #: ../../icegram.php:1164 ../../icegram.php:1170 ../../about-icegram.php:231
236
- msgid "Campaigns"
237
- msgstr ""
238
-
239
- #: ../../icegram.php:1165
240
- msgid "Campaign"
241
- msgstr ""
242
-
243
- #: ../../icegram.php:1166 ../../icegram.php:1167
244
- msgid "Add New Campaign"
245
- msgstr ""
246
-
247
- #: ../../icegram.php:1168
248
- msgid "Edit Campaign"
249
- msgstr ""
250
-
251
- #: ../../icegram.php:1169
252
- msgid "New Campaign"
253
- msgstr ""
254
-
255
- #: ../../icegram.php:1171
256
- msgid "View Campaign"
257
- msgstr ""
258
-
259
- #: ../../icegram.php:1172
260
- msgid "Search Campaigns"
261
- msgstr ""
262
-
263
- #: ../../icegram.php:1173
264
- msgid "No campaigns found"
265
- msgstr ""
266
-
267
- #: ../../icegram.php:1174
268
- msgid "No campaigns found in Trash"
269
- msgstr ""
270
-
271
- #. #-#-#-#-# plugin.pot (Icegram 1.1) #-#-#-#-#
272
- #. Plugin Name of the plugin/theme
273
- #. #-#-#-#-# plugin.pot (Icegram 1.1) #-#-#-#-#
274
- #. Author of the plugin/theme
275
- #: ../../icegram.php:1176
276
- msgid "Icegram"
277
- msgstr ""
278
-
279
- #: ../../icegram.php:1202 ../../icegram.php:1208 ../../icegram.php:1214 ../..
280
- #: /about-icegram.php:200
281
- msgid "Messages"
282
- msgstr ""
283
-
284
- #: ../../icegram.php:1203 ../../classes/class-icegram-campaign-admin.php:48 ../..
285
- #: /classes/class-icegram-campaign-admin.php:65 ../../about-icegram.php:137
286
- msgid "Message"
287
- msgstr ""
288
-
289
- #: ../../icegram.php:1204
290
- msgid "Create New"
291
- msgstr ""
292
-
293
- #: ../../icegram.php:1205
294
- msgid "Create New Message"
295
- msgstr ""
296
-
297
- #: ../../icegram.php:1206 ../../classes/class-icegram-campaign-admin.php:105 ../..
298
- #: /classes/class-icegram-campaign-admin.php:512
299
- msgid "Edit Message"
300
- msgstr ""
301
-
302
- #: ../../icegram.php:1207
303
- msgid "New Message"
304
- msgstr ""
305
-
306
- #: ../../icegram.php:1209
307
- msgid "View Message"
308
- msgstr ""
309
-
310
- #: ../../icegram.php:1210
311
- msgid "Search Messages"
312
- msgstr ""
313
-
314
- #: ../../icegram.php:1211
315
- msgid "No messages found"
316
- msgstr ""
317
-
318
- #: ../../icegram.php:1212
319
- msgid "No messages found in Trash"
320
- msgstr ""
321
-
322
- #: ../../icegram.php:1648
323
- msgid "Copy"
324
- msgstr ""
325
-
326
- #: ../../classes/class-icegram-campaign-admin.php:50 ../../about-icegram.php:245
327
- msgid "Targeting Rules"
328
- msgstr ""
329
-
330
- #: ../../classes/class-icegram-campaign-admin.php:57
331
- msgid "Search to add / Create new&hellip;"
332
- msgstr ""
333
-
334
- #: ../../classes/class-icegram-campaign-admin.php:60 ../../classes/class-icegram-
335
- #: campaign-admin.php:449
336
- msgid "Create new"
337
- msgstr ""
338
-
339
- #: ../../classes/class-icegram-campaign-admin.php:97 ../../classes/class-icegram-
340
- #: campaign-admin.php:505
341
- msgid "Give this message a name for your own reference"
342
- msgstr ""
343
-
344
- #: ../../classes/class-icegram-campaign-admin.php:102 ../../classes/class-icegram-
345
- #: campaign-admin.php:509
346
- msgid " sec"
347
- msgstr ""
348
-
349
- #: ../../classes/class-icegram-campaign-admin.php:106 ../../classes/class-icegram-
350
- #: campaign-admin.php:513
351
- msgid "Remove from Campaign"
352
- msgstr ""
353
-
354
- #: ../../classes/class-icegram-campaign-admin.php:124
355
- msgid ""
356
- "No messages yet. Use search / create bar above to add messages to this "
357
- "campaign."
358
- msgstr ""
359
-
360
- #: ../../classes/class-icegram-campaign-admin.php:162
361
- msgid "Where?"
362
- msgstr ""
363
-
364
- #: ../../classes/class-icegram-campaign-admin.php:165
365
- msgid "Sitewide"
366
- msgstr ""
367
-
368
- #: ../../classes/class-icegram-campaign-admin.php:171
369
- msgid "Select pages to exclude&hellip;"
370
- msgstr ""
371
-
372
- #: ../../classes/class-icegram-campaign-admin.php:186
373
- msgid "Homepage"
374
- msgstr ""
375
-
376
- #: ../../classes/class-icegram-campaign-admin.php:193
377
- msgid "Selected pages"
378
- msgstr ""
379
-
380
- #: ../../classes/class-icegram-campaign-admin.php:199
381
- msgid "Select a page&hellip;"
382
- msgstr ""
383
-
384
- #: ../../classes/class-icegram-campaign-admin.php:214
385
- msgid "Specific URLs on this site"
386
- msgstr ""
387
-
388
- #: ../../classes/class-icegram-campaign-admin.php:230
389
- msgid " Add another"
390
- msgstr ""
391
-
392
- #: ../../classes/class-icegram-campaign-admin.php:239
393
- #, php-format
394
- msgid ""
395
- "Additionally you can insert <code>[%s]</code> wherever you want to run this "
396
- "campaign."
397
- msgstr ""
398
-
399
- #: ../../classes/class-icegram-campaign-admin.php:246
400
- msgid "When?"
401
- msgstr ""
402
-
403
- #: ../../classes/class-icegram-campaign-admin.php:249
404
- msgid "Always"
405
- msgstr ""
406
-
407
- #: ../../classes/class-icegram-campaign-admin.php:256
408
- msgid "Schedule"
409
- msgstr ""
410
-
411
- #: ../../classes/class-icegram-campaign-admin.php:259
412
- msgid "From&hellip;"
413
- msgstr ""
414
-
415
- #: ../../classes/class-icegram-campaign-admin.php:262
416
- msgid "To&hellip;"
417
- msgstr ""
418
-
419
- #: ../../classes/class-icegram-campaign-admin.php:273
420
- msgid "Device?"
421
- msgstr ""
422
-
423
- #: ../../classes/class-icegram-campaign-admin.php:274
424
- msgid "Mobile / Smartphones"
425
- msgstr ""
426
-
427
- #: ../../classes/class-icegram-campaign-admin.php:278
428
- msgid "Tablet"
429
- msgstr ""
430
-
431
- #: ../../classes/class-icegram-campaign-admin.php:282
432
- msgid "Desktop / Laptop"
433
- msgstr ""
434
-
435
- #: ../../classes/class-icegram-campaign-admin.php:290
436
- msgid "Who?"
437
- msgstr ""
438
-
439
- #: ../../classes/class-icegram-campaign-admin.php:293
440
- msgid "All users"
441
- msgstr ""
442
-
443
- #: ../../classes/class-icegram-campaign-admin.php:300
444
- msgid "Logged in users only"
445
- msgstr ""
446
-
447
- #: ../../classes/class-icegram-campaign-admin.php:319
448
- msgid "Select a user role&hellip;"
449
- msgstr ""
450
-
451
- #: ../../classes/class-icegram-campaign-admin.php:335
452
- msgid "Not Logged in users"
453
- msgstr ""
454
-
455
- #: ../../classes/class-icegram-campaign-admin.php:339 ../../classes/class-icegram-
456
- #: campaign-admin.php:349
457
- msgid "Current Session"
458
- msgstr ""
459
-
460
- #: ../../classes/class-icegram-campaign-admin.php:340 ../../classes/class-icegram-
461
- #: campaign-admin.php:348
462
- msgid "Never"
463
- msgstr ""
464
-
465
- #: ../../classes/class-icegram-campaign-admin.php:341 ../../classes/class-icegram-
466
- #: campaign-admin.php:350
467
- msgid "Today"
468
- msgstr ""
469
-
470
- #: ../../classes/class-icegram-campaign-admin.php:342 ../../classes/class-icegram-
471
- #: campaign-admin.php:351
472
- msgid "One week"
473
- msgstr ""
474
-
475
- #: ../../classes/class-icegram-campaign-admin.php:343 ../../classes/class-icegram-
476
- #: campaign-admin.php:352
477
- msgid "Two weeks"
478
- msgstr ""
479
-
480
- #: ../../classes/class-icegram-campaign-admin.php:344 ../../classes/class-icegram-
481
- #: campaign-admin.php:353
482
- msgid "One Month "
483
- msgstr ""
484
-
485
- #: ../../classes/class-icegram-campaign-admin.php:345 ../../classes/class-icegram-
486
- #: campaign-admin.php:354
487
- msgid "Three Months "
488
- msgstr ""
489
-
490
- #: ../../classes/class-icegram-campaign-admin.php:346 ../../classes/class-icegram-
491
- #: campaign-admin.php:355
492
- msgid "One year"
493
- msgstr ""
494
-
495
- #: ../../classes/class-icegram-campaign-admin.php:347 ../../classes/class-icegram-
496
- #: campaign-admin.php:356
497
- msgid "Two Years"
498
- msgstr ""
499
-
500
- #: ../../classes/class-icegram-campaign-admin.php:362
501
- msgid "Retargeting"
502
- msgstr ""
503
-
504
- #: ../../classes/class-icegram-campaign-admin.php:365
505
- msgid " Once shown, do NOT show this campaign again for "
506
- msgstr ""
507
-
508
- #: ../../classes/class-icegram-campaign-admin.php:381
509
- msgid "Once CTA is clicked, do NOT show this campaign again for"
510
- msgstr ""
511
-
512
- #: ../../classes/class-icegram-campaign-admin.php:445
513
- msgid "- - - - - - - - - - - - - - - - - - - - - - - - - -"
514
- msgstr ""
515
-
516
- #: ../../classes/class-icegram-campaign-admin.php:462 ../../classes/class-icegram-
517
- #: message-admin.php:113 ../../classes/class-icegram-message-admin.php:556
518
- msgid "Type"
519
- msgstr ""
520
-
521
- #: ../../classes/class-icegram-campaign-admin.php:463 ../../about-icegram.php:125
522
- msgid "Name"
523
- msgstr ""
524
-
525
- #: ../../classes/class-icegram-campaign-admin.php:464
526
- msgid "Show after"
527
- msgstr ""
528
-
529
- #: ../../classes/class-icegram-campaign-admin.php:465
530
- msgid "Actions"
531
- msgstr ""
532
-
533
- #: ../../classes/class-icegram-campaign-admin.php:671 ../../classes/class-icegram-
534
- #: message-admin.php:753
535
- msgid "Duplicate"
536
- msgstr ""
537
-
538
- #: ../../classes/class-icegram-message-admin.php:41
539
- msgid "Message Settings"
540
- msgstr ""
541
-
542
- #: ../../classes/class-icegram-message-admin.php:130 ../../classes/class-icegram-
543
- #: message-admin.php:557
544
- msgid "Theme"
545
- msgstr ""
546
-
547
- #: ../../classes/class-icegram-message-admin.php:147
548
- msgid "Animation"
549
- msgstr ""
550
-
551
- #: ../../classes/class-icegram-message-admin.php:162
552
- msgid "Headline"
553
- msgstr ""
554
-
555
- #: ../../classes/class-icegram-message-admin.php:163
556
- msgid ""
557
- "Shown with highest prominence. Click on idea button on right to get a new "
558
- "headline."
559
- msgstr ""
560
-
561
- #: ../../classes/class-icegram-message-admin.php:169
562
- msgid "Give Me Another Headline"
563
- msgstr ""
564
-
565
- #: ../../classes/class-icegram-message-admin.php:175
566
- msgid "Icon / Avatar Image"
567
- msgstr ""
568
-
569
- #: ../../classes/class-icegram-message-admin.php:176
570
- msgid "This image will appear in message content."
571
- msgstr ""
572
-
573
- #: ../../classes/class-icegram-message-admin.php:179
574
- msgid "Upload / Select an image"
575
- msgstr ""
576
-
577
- #: ../../classes/class-icegram-message-admin.php:179
578
- msgid "Upload / Select Image"
579
- msgstr ""
580
-
581
- #: ../../classes/class-icegram-message-admin.php:195
582
- msgid "Message Body"
583
- msgstr ""
584
-
585
- #: ../../classes/class-icegram-message-admin.php:226
586
- msgid "Form"
587
- msgstr ""
588
-
589
- #: ../../classes/class-icegram-message-admin.php:227
590
- msgid "Use Opt-in / Subscription / Lead capture form"
591
- msgstr ""
592
-
593
- #: ../../classes/class-icegram-message-admin.php:249 ../../classes/class-icegram-
594
- #: message-admin.php:251
595
- msgid "Left"
596
- msgstr ""
597
-
598
- #: ../../classes/class-icegram-message-admin.php:256 ../../classes/class-icegram-
599
- #: message-admin.php:258
600
- msgid "Right"
601
- msgstr ""
602
-
603
- #: ../../classes/class-icegram-message-admin.php:263 ../../classes/class-icegram-
604
- #: message-admin.php:265
605
- msgid "Bottom"
606
- msgstr ""
607
-
608
- #: ../../classes/class-icegram-message-admin.php:274 ../../classes/class-icegram-
609
- #: message-admin.php:276
610
- msgid "Inline"
611
- msgstr ""
612
-
613
- #: ../../classes/class-icegram-message-admin.php:286
614
- msgid "Background Color"
615
- msgstr ""
616
-
617
- #: ../../classes/class-icegram-message-admin.php:287
618
- msgid "Text Color"
619
- msgstr ""
620
-
621
- #: ../../classes/class-icegram-message-admin.php:298
622
- msgid "Text / HTML to show before the form"
623
- msgstr ""
624
-
625
- #: ../../classes/class-icegram-message-admin.php:304
626
- msgid "Add form embed code"
627
- msgstr ""
628
-
629
- #: ../../classes/class-icegram-message-admin.php:304
630
- msgid " or easily embed using "
631
- msgstr ""
632
-
633
- #: ../../classes/class-icegram-message-admin.php:308
634
- msgid "Use Rainmaker form "
635
- msgstr ""
636
-
637
- #: ../../classes/class-icegram-message-admin.php:310
638
- msgid "Select form "
639
- msgstr ""
640
-
641
- #: ../../classes/class-icegram-message-admin.php:314
642
- msgid " or add "
643
- msgstr ""
644
-
645
- #: ../../classes/class-icegram-message-admin.php:314
646
- msgid "form embed code"
647
- msgstr ""
648
-
649
- #: ../../classes/class-icegram-message-admin.php:322
650
- msgid "Paste HTML / shortcode of your form here..."
651
- msgstr ""
652
-
653
- #: ../../classes/class-icegram-message-admin.php:326
654
- msgid "Show labels above fields"
655
- msgstr ""
656
-
657
- #: ../../classes/class-icegram-message-admin.php:331
658
- msgid "Text / HTML to show after the form"
659
- msgstr ""
660
-
661
- #: ../../classes/class-icegram-message-admin.php:334
662
- msgid ""
663
- "Insert <code>[ig_form]</code> where you want to show this form in message "
664
- "body."
665
- msgstr ""
666
-
667
- #: ../../classes/class-icegram-message-admin.php:341
668
- msgid "Button Label"
669
- msgstr ""
670
-
671
- #: ../../classes/class-icegram-message-admin.php:342
672
- msgid "Your call to action text. Something unusual will increase conversions."
673
- msgstr ""
674
-
675
- #: ../../classes/class-icegram-message-admin.php:352
676
- msgid "Target Link"
677
- msgstr ""
678
-
679
- #: ../../classes/class-icegram-message-admin.php:353
680
- msgid "Enter destination URL here. Clicking will redirect to this link."
681
- msgstr ""
682
-
683
- #: ../../classes/class-icegram-message-admin.php:376
684
- msgid "Body"
685
- msgstr ""
686
-
687
- #: ../../classes/class-icegram-message-admin.php:377 ../../classes/class-icegram-
688
- #: message-admin.php:383
689
- msgid "Background"
690
- msgstr ""
691
-
692
- #: ../../classes/class-icegram-message-admin.php:378 ../../classes/class-icegram-
693
- #: message-admin.php:384
694
- msgid "Text"
695
- msgstr ""
696
-
697
- #: ../../classes/class-icegram-message-admin.php:382
698
- msgid "Button"
699
- msgstr ""
700
-
701
- #: ../../classes/class-icegram-message-admin.php:389
702
- msgid "Colors"
703
- msgstr ""
704
-
705
- #: ../../classes/class-icegram-message-admin.php:390
706
- msgid "Use theme's default colors"
707
- msgstr ""
708
-
709
- #: ../../classes/class-icegram-message-admin.php:396
710
- msgid "Position"
711
- msgstr ""
712
-
713
- #: ../../classes/class-icegram-message-admin.php:452
714
- msgid "Custom Code"
715
- msgstr ""
716
-
717
- #: ../../classes/class-icegram-message-admin.php:453
718
- msgid "Add custom code for this message"
719
- msgstr ""
720
-
721
- #: ../../classes/class-icegram-message-admin.php:457
722
- msgid "CSS"
723
- msgstr ""
724
-
725
- #: ../../classes/class-icegram-message-admin.php:463
726
- msgid "JS"
727
- msgstr ""
728
-
729
- #: ../../classes/class-icegram-message-admin.php:466
730
- msgid "Add Custom javaScript for this message here..."
731
- msgstr ""
732
-
733
- #: ../../classes/class-icegram-message-admin.php:486
734
- #, php-format
735
- msgid "You may add <code>[%s]</code> where you want to show this message."
736
- msgstr ""
737
-
738
- #: ../../classes/class-icegram-message-admin.php:558
739
- msgid "Thumbnail"
740
- msgstr ""
741
-
742
- #: ../../classes/class-icegram-message-admin.php:701
743
- msgid "Here Is A Method That Is Helping ____ To ____"
744
- msgstr ""
745
-
746
- #: ../../classes/class-icegram-message-admin.php:702
747
- msgid "__ Little Known Ways To ____"
748
- msgstr ""
749
-
750
- #: ../../classes/class-icegram-message-admin.php:703
751
- msgid "Get Rid Of ____ Once And For All"
752
- msgstr ""
753
-
754
- #: ../../classes/class-icegram-message-admin.php:704
755
- msgid "How To ____ So You Can ____"
756
- msgstr ""
757
-
758
- #: ../../classes/class-icegram-message-admin.php:705
759
- msgid "They Didn't Think I Could ____, But I Did"
760
- msgstr ""
761
-
762
- #: ../../classes/class-icegram-message-admin.php:706
763
- msgid "How ____ Made Me ____"
764
- msgstr ""
765
-
766
- #: ../../classes/class-icegram-message-admin.php:707
767
- msgid "Are You ____ ?"
768
- msgstr ""
769
-
770
- #: ../../classes/class-icegram-message-admin.php:708
771
- msgid "Warning: ____ !"
772
- msgstr ""
773
-
774
- #: ../../classes/class-icegram-message-admin.php:709
775
- msgid "Do You Make These Mistakes With ____ ?"
776
- msgstr ""
777
-
778
- #: ../../classes/class-icegram-message-admin.php:710
779
- msgid "7 Ways To ____"
780
- msgstr ""
781
-
782
- #: ../../classes/class-icegram-message-admin.php:711
783
- msgid "If You're ____, You Can ____"
784
- msgstr ""
785
-
786
- #: ../../classes/class-icegram-message-admin.php:712
787
- msgid "Turn your ____ into a ____"
788
- msgstr ""
789
-
790
- #: ../../classes/class-icegram-message-admin.php:713
791
- msgid "Want To Be A ____?"
792
- msgstr ""
793
-
794
- #: ../../classes/class-icegram-message-admin.php:714
795
- msgid "The Ugly Truth About Your Beautiful ____"
796
- msgstr ""
797
-
798
- #: ../../classes/class-icegram-message-admin.php:715
799
- msgid "The Secret to ____ Is Simply ____!"
800
- msgstr ""
801
-
802
- #: ../../classes/class-icegram-message-admin.php:716
803
- msgid "The Quickest Way I Know To ____"
804
- msgstr ""
805
-
806
- #: ../../classes/class-icegram-message-admin.php:717
807
- msgid "The Lazy Man's Way To ____"
808
- msgstr ""
809
-
810
- #: ../../classes/class-icegram-message-admin.php:718
811
- msgid "The Amazing Story Of ____ That Requires So Little Of ____ You Could ____"
812
- msgstr ""
813
-
814
- #: ../../classes/class-icegram-message-admin.php:719
815
- msgid "The Amazing Secret Of The ____ Genius Who Is Afraid Of ____"
816
- msgstr ""
817
-
818
- #: ../../classes/class-icegram-message-admin.php:720
819
- msgid "The 10 Wackiest Ideas That ____... And How You Can Too!"
820
- msgstr ""
821
-
822
- #: ../../classes/class-icegram-message-admin.php:721
823
- msgid "The Inside Secrets To ____ With Crazy, Outlandish And Outrageous ____"
824
- msgstr ""
825
-
826
- #: ../../classes/class-icegram-message-admin.php:722
827
- msgid "____ Like A ____"
828
- msgstr ""
829
-
830
- #: ../../classes/class-icegram-message-admin.php:723
831
- msgid "Remember When You Could Have ____, And You Didn't?"
832
- msgstr ""
833
-
834
- #: ../../classes/class-icegram-message-admin.php:724
835
- msgid "Is The ____ Worth $x To You?"
836
- msgstr ""
837
-
838
- #: ../../classes/class-icegram-message-admin.php:725
839
- msgid "Increase your ____, reduce ____, maintain ____ and ____ with ____"
840
- msgstr ""
841
-
842
- #: ../../classes/class-icegram-message-admin.php:726
843
- msgid "If You Can ____ You Can ____"
844
- msgstr ""
845
-
846
- #: ../../classes/class-icegram-message-admin.php:727
847
- msgid "I Discovered How To ____... Now I'm Revealing My Secret"
848
- msgstr ""
849
-
850
- #: ../../classes/class-icegram-message-admin.php:728
851
- msgid "How To Turn Your ____ Into The Most ____"
852
- msgstr ""
853
-
854
- #: ../../classes/class-icegram-message-admin.php:729
855
- msgid "How To Take The Headache Out Of ____"
856
- msgstr ""
857
-
858
- #: ../../classes/class-icegram-message-admin.php:730
859
- msgid "How To ____ ... Legally"
860
- msgstr ""
861
-
862
- #: ../../classes/class-icegram-message-admin.php:731
863
- msgid "How To ____ That ____"
864
- msgstr ""
865
-
866
- #: ../../classes/class-icegram-message-admin.php:732
867
- msgid "How To Discover The ____ That Lies Hidden In Your ____"
868
- msgstr ""
869
-
870
- #: ../../classes/class-icegram-message-admin.php:733
871
- msgid "How To ____ Even When Your Not ____"
872
- msgstr ""
873
-
874
- #: ../../classes/class-icegram-message-admin.php:734
875
- msgid "____ With No ____!"
876
- msgstr ""
877
-
878
- #: ../../classes/class-icegram-message-admin.php:735
879
- msgid "Greatest Goldmine of ____ Ever Jammed Into One Big ____"
880
- msgstr ""
881
-
882
- #: ../../classes/class-icegram-message-admin.php:736
883
- msgid "Free ____ Tells How To Get Better ____"
884
- msgstr ""
885
-
886
- #: ../../classes/class-icegram-message-admin.php:737
887
- msgid ""
888
- "FREE ____ Worth $____ for the first 100 People to take Advantage of this "
889
- "Offer"
890
- msgstr ""
891
-
892
- #: ../../classes/class-icegram-message-admin.php:738
893
- msgid "Don't Try This With Any Other ____"
894
- msgstr ""
895
-
896
- #: ../../classes/class-icegram-message-admin.php:739
897
- msgid "Do You Honestly Want To ____?"
898
- msgstr ""
899
-
900
- #: ../../classes/class-icegram-message-admin.php:740
901
- msgid "Discover The Magic ____ That Will Bring You ____ & ____!"
902
- msgstr ""
903
-
904
- #: ../../classes/class-icegram-message-admin.php:741
905
- msgid "____ Man Reveals A Short-Cut To ____"
906
- msgstr ""
907
-
908
- #: ../../classes/class-icegram-message-admin.php:742
909
- msgid "Confessions Of A ____"
910
- msgstr ""
911
-
912
- #: ../../classes/class-icegram-message-admin.php:743
913
- msgid "Are You Ready To ____?"
914
- msgstr ""
915
-
916
- #: ../../classes/class-icegram-message-admin.php:744
917
- msgid "An Open Letter To Everyone Who ____ More Than ____ Per ____"
918
- msgstr ""
919
-
920
- #: ../../classes/class-icegram-message-admin.php:745
921
- msgid "An Amazing ____ You Can Carry In Your ____"
922
- msgstr ""
923
-
924
- #: ../../classes/class-icegram-message-admin.php:746
925
- msgid "21 Secret ____ that will ____... NOW!"
926
- msgstr ""
927
-
928
- #: ../../addons.php:54
929
- msgid "Icegram Add-ons"
930
- msgstr ""
931
-
932
- #: ../../addons.php:58
933
- msgid "All"
934
- msgstr ""
935
-
936
- #: ../../addons.php:59
937
- msgid "Installed"
938
- msgstr ""
939
-
940
- #: ../../addons.php:60
941
- msgid "Message Type"
942
- msgstr ""
943
-
944
- #: ../../addons.php:61
945
- msgid "Themes"
946
- msgstr ""
947
-
948
- #: ../../addons.php:62
949
- msgid "Targeting"
950
- msgstr ""
951
-
952
- #: ../../addons.php:63
953
- msgid "Reporting"
954
- msgstr ""
955
-
956
- #: ../../addons.php:84
957
- msgid "Get This Addon"
958
- msgstr ""
959
-
960
- #: ../../addons.php:87
961
- msgid "Already Installed"
962
- msgstr ""
963
-
964
- #: ../../addons.php:99
965
- msgid "Sorry! No Add-ons available currently."
966
- msgstr ""
967
-
968
- #: ../../about-icegram.php:129
969
- msgid "E-mail"
970
- msgstr ""
971
-
972
- #: ../../about-icegram.php:133
973
- msgid "Subject"
974
- msgstr ""
975
-
976
- #: ../../about-icegram.php:167
977
- msgid "Welcome to Icegram."
978
- msgstr ""
979
-
980
- #: ../../about-icegram.php:168
981
- msgid " Your sample campaign is ready!"
982
- msgstr ""
983
-
984
- #: ../../about-icegram.php:176
985
- msgid "Preview Your First Campaign"
986
- msgstr ""
987
-
988
- #: ../../about-icegram.php:177
989
- msgid "OR"
990
- msgstr ""
991
-
992
- #: ../../about-icegram.php:178
993
- msgid "Edit & Publish it."
994
- msgstr ""
995
-
996
- #: ../../about-icegram.php:185
997
- msgid "Questions? Need Help?"
998
- msgstr ""
999
-
1000
- #: ../../about-icegram.php:186 ../../about-icegram.php:293
1001
- msgid "Contact Us"
1002
- msgstr ""
1003
-
1004
- #: ../../about-icegram.php:194
1005
- msgid ""
1006
- "Do read Icegram's core concepts below to understand how you can use Icegram "
1007
- "to "
1008
- msgstr ""
1009
-
1010
- #: ../../about-icegram.php:195
1011
- msgid "inspire, convert and engage"
1012
- msgstr ""
1013
-
1014
- #: ../../about-icegram.php:196
1015
- msgid "your audience."
1016
- msgstr ""
1017
-
1018
- #: ../../about-icegram.php:202
1019
- msgid "A 'Message' is a communication you want to deliver to your audience."
1020
- msgstr ""
1021
-
1022
- #: ../../about-icegram.php:203
1023
- msgid "And Icegram comes with not one, but four message types."
1024
- msgstr ""
1025
-
1026
- #: ../../about-icegram.php:204
1027
- msgid ""
1028
- "Different message types look and behave differently, but they all have many "
1029
- "common characteristics. For instance, most message types will allow you to "
1030
- "set a headline, a body text, label for the ‘call to action’ button, a link "
1031
- "for that button, theme and styling options, animation effect and position on "
1032
- "screen where that message should show."
1033
- msgstr ""
1034
-
1035
- #: ../../about-icegram.php:208
1036
- msgid "Action Bar"
1037
- msgstr ""
1038
-
1039
- #: ../../about-icegram.php:210
1040
- msgid ""
1041
- "An action bar is a proven attention grabber. It shows up as a solid bar "
1042
- "either at top or bottom. Use it for your most important messages or time "
1043
- "sensitive announcements. Put longer content in it and it acts like a "
1044
- "collapsible panel!"
1045
- msgstr ""
1046
-
1047
- #: ../../about-icegram.php:211
1048
- msgid "Messenger"
1049
- msgstr ""
1050
-
1051
- #: ../../about-icegram.php:213
1052
- msgid ""
1053
- "A messenger is best used to invoke interest while your visitor is reading "
1054
- "your content. Users perceive it as something new, important and urgent and "
1055
- "are highly likely to click on it."
1056
- msgstr ""
1057
-
1058
- #: ../../about-icegram.php:217
1059
- msgid "Toast Notification"
1060
- msgstr ""
1061
-
1062
- #: ../../about-icegram.php:219
1063
- msgid ""
1064
- "Want to alert your visitor about some news, an update from your blog, a "
1065
- "social proof or an offer? Use Icegram’s unique toast notification, it will "
1066
- "catch their attention, let them click on the message, and disappear after a "
1067
- "while."
1068
- msgstr ""
1069
-
1070
- #: ../../about-icegram.php:220
1071
- msgid "Popup"
1072
- msgstr ""
1073
-
1074
- #: ../../about-icegram.php:222
1075
- msgid ""
1076
- "Lightbox popup windows are most widely used for lead capture, promotions and "
1077
- "additional content display. Ask visitors to sign up to your newsletter, or "
1078
- "like you on social networks, or tell them about a special offer..."
1079
- msgstr ""
1080
-
1081
- #: ../../about-icegram.php:233
1082
- msgid "Campaign = Messages + Rules"
1083
- msgstr ""
1084
-
1085
- #: ../../about-icegram.php:234
1086
- msgid ""
1087
- "A campaign allows sequencing multiple messages and defining targeting rules. "
1088
- "Create different campaigns for different marketing goals. Icegram supports "
1089
- "showing multiple campaigns on any page."
1090
- msgstr ""
1091
-
1092
- #: ../../about-icegram.php:235
1093
- msgid ""
1094
- "You can always preview your campaign to ensure campaign works the way you "
1095
- "want, before making it live."
1096
- msgstr ""
1097
-
1098
- #: ../../about-icegram.php:239
1099
- msgid "Multiple Messages & Sequencing"
1100
- msgstr ""
1101
-
1102
- #: ../../about-icegram.php:241
1103
- msgid ""
1104
- "Add one or as many messages to a campaign as you want. Also choose the "
1105
- "number of seconds after which each message should show up. Showing multiple "
1106
- "messages for same goal, but with slightly different content / presentation, "
1107
- "greatly improves conversions."
1108
- msgstr ""
1109
-
1110
- #: ../../about-icegram.php:247
1111
- msgid ""
1112
- "You can control who sees a campaign – and on what device, which pages does "
1113
- "it show on, and what time period will it stay active for. You can run "
1114
- "different campaigns with different rules to maximize engagement."
1115
- msgstr ""
1116
-
1117
- #: ../../about-icegram.php:256
1118
- msgid "FAQ / Common Problems"
1119
- msgstr ""
1120
-
1121
- #: ../../about-icegram.php:259
1122
- msgid "Messages look broken / formatting is weird..."
1123
- msgstr ""
1124
-
1125
- #: ../../about-icegram.php:260
1126
- msgid ""
1127
- "This is most likely due to CSS conflicts with current theme. We suggest "
1128
- "using simple formatting for messages. You can also write custom CSS in your "
1129
- "theme to fix any problems."
1130
- msgstr ""
1131
-
1132
- #: ../../about-icegram.php:262
1133
- msgid "Extra Line Breaks / Paragraphs in messages..."
1134
- msgstr ""
1135
-
1136
- #: ../../about-icegram.php:263
1137
- msgid ""
1138
- "Go to HTML mode in content editor and pull your custom HTML code all "
1139
- "together in one line. Don't leave blank lines between two tags. That should "
1140
- "fix it."
1141
- msgstr ""
1142
-
1143
- #: ../../about-icegram.php:265
1144
- msgid "How do I add custom CSS for messages?"
1145
- msgstr ""
1146
-
1147
- #: ../../about-icegram.php:266
1148
- msgid ""
1149
- "You can use custom CSS/JS inline in your message HTML. You can also use your "
1150
- "theme's custom JS / CSS feature to add your changes."
1151
- msgstr ""
1152
-
1153
- #: ../../about-icegram.php:268
1154
- msgid "Optin Forms / Mailing service integration..."
1155
- msgstr ""
1156
-
1157
- #: ../../about-icegram.php:269
1158
- msgid ""
1159
- "You can embed any optin / subscription form to your Icegram messages using "
1160
- "'Embed Form' button above text editor. Paste in form HTML code and let "
1161
- "Icegram clean it up! You may even use a shortcode if you are using a WP "
1162
- "plugin from your newsletter / lead capture service."
1163
- msgstr ""
1164
-
1165
- #: ../../about-icegram.php:271
1166
- msgid "How many messages should I show on a page?"
1167
- msgstr ""
1168
-
1169
- #: ../../about-icegram.php:272
1170
- msgid ""
1171
- "While Icegram provides you lots of different message types and ability to "
1172
- "add multiple messages to a campaign, we discourage you to go overboard. "
1173
- "We've observed two messages on a page work well, but YMMV!"
1174
- msgstr ""
1175
-
1176
- #: ../../about-icegram.php:278
1177
- msgid "Preview does not work / not refreshing..."
1178
- msgstr ""
1179
-
1180
- #: ../../about-icegram.php:279
1181
- msgid ""
1182
- "Doing a browser refresh while previewing will not show your most recent "
1183
- "changes. Click 'Preview' button to see a preview with your latest changes."
1184
- msgstr ""
1185
-
1186
- #: ../../about-icegram.php:281
1187
- msgid "Can I use shortcodes in a message?"
1188
- msgstr ""
1189
-
1190
- #: ../../about-icegram.php:282
1191
- msgid ""
1192
- "Yes! Messages support shortcodes. You may need to adjust CSS so the "
1193
- "shortcode output looks good in your message."
1194
- msgstr ""
1195
-
1196
- #: ../../about-icegram.php:284
1197
- msgid "WPML / Multilingual usage..."
1198
- msgstr ""
1199
-
1200
- #: ../../about-icegram.php:285
1201
- msgid ""
1202
- "Go to <code>Messages</code> from Icegram menu. Edit a message and translate "
1203
- "it like any other post. Icegram will show translated message where possible. "
1204
- "Choose <code>All posts</code> under WPML Language setting - Blog Posts to "
1205
- "display, to fall back to default language messages."
1206
- msgstr ""
1207
-
1208
- #: ../../about-icegram.php:289
1209
- msgid "I can't find a way to do X..."
1210
- msgstr ""
1211
-
1212
- #: ../../about-icegram.php:290
1213
- msgid ""
1214
- "Icegram is actively developed. If you can't find your favorite feature (or "
1215
- "have a suggestion) contact us. We'd love to hear from you."
1216
- msgstr ""
1217
-
1218
- #: ../../about-icegram.php:292
1219
- msgid "I'm facing a problem and can't find a way out..."
1220
- msgstr ""
1221
-
1222
- #: ../../about-icegram.php:293
1223
- msgid ""
1224
- ", provide as much detail of the problem as you can. We will try to solve the "
1225
- "problem ASAP."
1226
- msgstr ""
1227
-
1228
- #: ../../settings.php:19
1229
- msgid "Icegram Settings"
1230
- msgstr ""
1231
-
1232
- #: ../../settings.php:23
1233
- msgid "Share Icegram"
1234
- msgstr ""
1235
-
1236
- #: ../../settings.php:27
1237
- msgid "Show \"Powered by\" link"
1238
- msgstr ""
1239
-
1240
- #: ../../settings.php:32
1241
- msgid "Cache Friendly?"
1242
- msgstr ""
1243
-
1244
- #: ../../settings.php:36
1245
- msgid ""
1246
- "Turn on \"Lazy Load\" - load Icegram scripts and messages after page load to "
1247
- "avoid caching problems."
1248
- msgstr ""
1
+ # Copyright (C) 2014 Icegram
2
+ # This file is distributed under the same license as the Icegram package.
3
+ # Loco Gettext template
4
+ #, fuzzy
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Icegram 1.1.1\n"
8
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/icegram\n"
9
+ "POT-Creation-Date: 2014-06-10 06:09:11+00:00\n"
10
+ "POT-Revision-Date: Tue Aug 02 2016 12:36:40 GMT+0530 (IST)\n"
11
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: Icegram Team <hello@icegram.com>\n"
13
+ "Language-Team: Icegram Team <hello@icegram.com>\n"
14
+ "Language: \n"
15
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
16
+ "MIME-Version: 1.0\n"
17
+ "Content-Type: text/plain; charset=UTF-8\n"
18
+ "Content-Transfer-Encoding: 8bit\n"
19
+ "X-Poedit-SourceCharset: UTF-8\n"
20
+ "X-Poedit-Basepath: .\n"
21
+ "X-Poedit-SearchPath-0: ../..\n"
22
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
23
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
24
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
25
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
26
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
27
+ "X-Generator: Loco - https://localise.biz/"
28
+
29
+ #: ../../gallery.php:22
30
+ msgid "Gallery items"
31
+ msgstr ""
32
+
33
+ #: ../../gallery.php:23
34
+ msgid "Here's a collection of some "
35
+ msgstr ""
36
+
37
+ #: ../../gallery.php:23
38
+ msgid "beautiful, powerful ready-to-use Icegram Campaigns."
39
+ msgstr ""
40
+
41
+ #: ../../gallery.php:24
42
+ msgid "No coding or special skills required. Simply click to"
43
+ msgstr ""
44
+
45
+ #: ../../gallery.php:24
46
+ msgid " Use This "
47
+ msgstr ""
48
+
49
+ #: ../../gallery.php:24
50
+ msgid "and the campaign will automatically appear in your Icegram dashboard."
51
+ msgstr ""
52
+
53
+ #: ../../gallery.php:40 ../../gallery.php:83 ../../classes/class-icegram-campaign-
54
+ #: admin.php:63 ../../classes/class-icegram-campaign-admin.php:673
55
+ msgid "Preview"
56
+ msgstr ""
57
+
58
+ #: ../../gallery.php:41 ../../gallery.php:56
59
+ #, php-format
60
+ msgid "By %s"
61
+ msgstr ""
62
+
63
+ #: ../../gallery.php:48
64
+ msgid "Close"
65
+ msgstr ""
66
+
67
+ #: ../../gallery.php:49
68
+ msgctxt "Button label for a theme"
69
+ msgid "Previous"
70
+ msgstr ""
71
+
72
+ #: ../../gallery.php:50
73
+ msgctxt "Button label for a theme"
74
+ msgid "Next"
75
+ msgstr ""
76
+
77
+ #: ../../gallery.php:51
78
+ msgid "Use This"
79
+ msgstr ""
80
+
81
+ #: ../../gallery.php:68
82
+ msgid "This theme has not been rated yet."
83
+ msgstr ""
84
+
85
+ #: ../../gallery.php:70 ../../about-icegram.php:182
86
+ #, php-format
87
+ msgid "Version: %s"
88
+ msgstr ""
89
+
90
+ #: ../../gallery.php:76
91
+ msgid "Collapse Sidebar"
92
+ msgstr ""
93
+
94
+ #: ../../gallery.php:78
95
+ msgid "Collapse"
96
+ msgstr ""
97
+
98
+ #. Name of the plugin
99
+ msgid "Icegram - Popups, Optins, CTAs & lot more..."
100
+ msgstr ""
101
+
102
+ #. URI of the plugin
103
+ msgid "https://www.icegram.com"
104
+ msgstr ""
105
+
106
+ #. Description of the plugin/theme
107
+ msgid ""
108
+ "All in one solution to inspire, convert and engage your audiences. Action "
109
+ "bars, Popup windows, Messengers, Toast notifications and more. Awesome "
110
+ "themes and powerful rules."
111
+ msgstr ""
112
+
113
+ #. Author of the plugin
114
+ msgid "icegram"
115
+ msgstr ""
116
+
117
+ #: ../../icegram.php:106
118
+ msgid "Addons"
119
+ msgstr ""
120
+
121
+ #: ../../icegram.php:107 ../../icegram.php:518
122
+ msgid "Settings"
123
+ msgstr ""
124
+
125
+ #: ../../icegram.php:108
126
+ msgid "Support"
127
+ msgstr ""
128
+
129
+ #: ../../icegram.php:196
130
+ msgid "No, I don't like offers..."
131
+ msgstr ""
132
+
133
+ #: ../../icegram.php:204
134
+ msgid "No, I don't want to save money "
135
+ msgstr ""
136
+
137
+ #: ../../icegram.php:205
138
+ msgid "No, I will buy at full price later"
139
+ msgstr ""
140
+
141
+ #: ../../icegram.php:206
142
+ msgid "No, I don't like insider deals"
143
+ msgstr ""
144
+
145
+ #: ../../icegram.php:223
146
+ msgid "Begin installation"
147
+ msgstr ""
148
+
149
+ #: ../../icegram.php:223
150
+ msgid "No, I don't need it"
151
+ msgstr ""
152
+
153
+ #: ../../icegram.php:247
154
+ msgid "Free Add-ons, Proven Marketing Tricks and Updates"
155
+ msgstr ""
156
+
157
+ #: ../../icegram.php:252
158
+ msgid "Get add-ons and tips..."
159
+ msgstr ""
160
+
161
+ #: ../../icegram.php:343
162
+ msgid "Housekeeping"
163
+ msgstr ""
164
+
165
+ #: ../../icegram.php:347
166
+ msgid "Remove all Icegram shortcodes"
167
+ msgstr ""
168
+
169
+ #: ../../icegram.php:352
170
+ msgid "Remove all Icegram campaigns and messages"
171
+ msgstr ""
172
+
173
+ #: ../../icegram.php:356
174
+ msgid "Clean Up"
175
+ msgstr ""
176
+
177
+ #: ../../icegram.php:365
178
+ msgid ""
179
+ "You won't be able to recover this data once you proceed. Do you really want "
180
+ "to perform this action?"
181
+ msgstr ""
182
+
183
+ #: ../../icegram.php:380
184
+ msgid "Done!"
185
+ msgstr ""
186
+
187
+ #: ../../icegram.php:516
188
+ msgid "Welcome to Icegram"
189
+ msgstr ""
190
+
191
+ #: ../../icegram.php:517
192
+ msgid "Gallery"
193
+ msgstr ""
194
+
195
+ #: ../../icegram.php:519
196
+ msgid "Add-ons"
197
+ msgstr ""
198
+
199
+ #: ../../icegram.php:532
200
+ msgid "Docs & Support"
201
+ msgstr ""
202
+
203
+ #: ../../icegram.php:577
204
+ msgid ""
205
+ "Are you sure you want to delete this theme?\n"
206
+ "\n"
207
+ "Click 'Cancel' to go back, 'OK' to confirm the delete."
208
+ msgstr ""
209
+
210
+ #: ../../icegram.php:581
211
+ msgid "Add New Gallery Item"
212
+ msgstr ""
213
+
214
+ #: ../../icegram.php:582
215
+ msgid "Search Installed Gallery Item"
216
+ msgstr ""
217
+
218
+ #: ../../icegram.php:583
219
+ msgid "Search installed Gallery Item..."
220
+ msgstr ""
221
+
222
+ #: ../../icegram.php:584
223
+ #, php-format
224
+ msgid "Number of Gallery Item found: %d"
225
+ msgstr ""
226
+
227
+ #: ../../icegram.php:585
228
+ msgid "No Gallery Item found. Try a different search."
229
+ msgstr ""
230
+
231
+ #: ../../icegram.php:754
232
+ msgid "Powered by Icegram"
233
+ msgstr ""
234
+
235
+ #: ../../icegram.php:1164 ../../icegram.php:1170 ../../about-icegram.php:231
236
+ msgid "Campaigns"
237
+ msgstr ""
238
+
239
+ #: ../../icegram.php:1165
240
+ msgid "Campaign"
241
+ msgstr ""
242
+
243
+ #: ../../icegram.php:1166 ../../icegram.php:1167
244
+ msgid "Add New Campaign"
245
+ msgstr ""
246
+
247
+ #: ../../icegram.php:1168
248
+ msgid "Edit Campaign"
249
+ msgstr ""
250
+
251
+ #: ../../icegram.php:1169
252
+ msgid "New Campaign"
253
+ msgstr ""
254
+
255
+ #: ../../icegram.php:1171
256
+ msgid "View Campaign"
257
+ msgstr ""
258
+
259
+ #: ../../icegram.php:1172
260
+ msgid "Search Campaigns"
261
+ msgstr ""
262
+
263
+ #: ../../icegram.php:1173
264
+ msgid "No campaigns found"
265
+ msgstr ""
266
+
267
+ #: ../../icegram.php:1174
268
+ msgid "No campaigns found in Trash"
269
+ msgstr ""
270
+
271
+ #. #-#-#-#-# plugin.pot (Icegram 1.1) #-#-#-#-#
272
+ #. Plugin Name of the plugin/theme
273
+ #. #-#-#-#-# plugin.pot (Icegram 1.1) #-#-#-#-#
274
+ #. Author of the plugin/theme
275
+ #: ../../icegram.php:1176
276
+ msgid "Icegram"
277
+ msgstr ""
278
+
279
+ #: ../../icegram.php:1202 ../../icegram.php:1208 ../../icegram.php:1214 ../..
280
+ #: /about-icegram.php:200
281
+ msgid "Messages"
282
+ msgstr ""
283
+
284
+ #: ../../icegram.php:1203 ../../classes/class-icegram-campaign-admin.php:48 ../..
285
+ #: /classes/class-icegram-campaign-admin.php:65 ../../about-icegram.php:137
286
+ msgid "Message"
287
+ msgstr ""
288
+
289
+ #: ../../icegram.php:1204
290
+ msgid "Create New"
291
+ msgstr ""
292
+
293
+ #: ../../icegram.php:1205
294
+ msgid "Create New Message"
295
+ msgstr ""
296
+
297
+ #: ../../icegram.php:1206 ../../classes/class-icegram-campaign-admin.php:105 ../..
298
+ #: /classes/class-icegram-campaign-admin.php:512
299
+ msgid "Edit Message"
300
+ msgstr ""
301
+
302
+ #: ../../icegram.php:1207
303
+ msgid "New Message"
304
+ msgstr ""
305
+
306
+ #: ../../icegram.php:1209
307
+ msgid "View Message"
308
+ msgstr ""
309
+
310
+ #: ../../icegram.php:1210
311
+ msgid "Search Messages"
312
+ msgstr ""
313
+
314
+ #: ../../icegram.php:1211
315
+ msgid "No messages found"
316
+ msgstr ""
317
+
318
+ #: ../../icegram.php:1212
319
+ msgid "No messages found in Trash"
320
+ msgstr ""
321
+
322
+ #: ../../icegram.php:1648
323
+ msgid "Copy"
324
+ msgstr ""
325
+
326
+ #: ../../classes/class-icegram-campaign-admin.php:50 ../../about-icegram.php:245
327
+ msgid "Targeting Rules"
328
+ msgstr ""
329
+
330
+ #: ../../classes/class-icegram-campaign-admin.php:57
331
+ msgid "Search to add / Create new&hellip;"
332
+ msgstr ""
333
+
334
+ #: ../../classes/class-icegram-campaign-admin.php:60 ../../classes/class-icegram-
335
+ #: campaign-admin.php:449
336
+ msgid "Create new"
337
+ msgstr ""
338
+
339
+ #: ../../classes/class-icegram-campaign-admin.php:97 ../../classes/class-icegram-
340
+ #: campaign-admin.php:505
341
+ msgid "Give this message a name for your own reference"
342
+ msgstr ""
343
+
344
+ #: ../../classes/class-icegram-campaign-admin.php:102 ../../classes/class-icegram-
345
+ #: campaign-admin.php:509
346
+ msgid " sec"
347
+ msgstr ""
348
+
349
+ #: ../../classes/class-icegram-campaign-admin.php:106 ../../classes/class-icegram-
350
+ #: campaign-admin.php:513
351
+ msgid "Remove from Campaign"
352
+ msgstr ""
353
+
354
+ #: ../../classes/class-icegram-campaign-admin.php:124
355
+ msgid ""
356
+ "No messages yet. Use search / create bar above to add messages to this "
357
+ "campaign."
358
+ msgstr ""
359
+
360
+ #: ../../classes/class-icegram-campaign-admin.php:162
361
+ msgid "Where?"
362
+ msgstr ""
363
+
364
+ #: ../../classes/class-icegram-campaign-admin.php:165
365
+ msgid "Sitewide"
366
+ msgstr ""
367
+
368
+ #: ../../classes/class-icegram-campaign-admin.php:171
369
+ msgid "Select pages to exclude&hellip;"
370
+ msgstr ""
371
+
372
+ #: ../../classes/class-icegram-campaign-admin.php:186
373
+ msgid "Homepage"
374
+ msgstr ""
375
+
376
+ #: ../../classes/class-icegram-campaign-admin.php:193
377
+ msgid "Selected pages"
378
+ msgstr ""
379
+
380
+ #: ../../classes/class-icegram-campaign-admin.php:199
381
+ msgid "Select a page&hellip;"
382
+ msgstr ""
383
+
384
+ #: ../../classes/class-icegram-campaign-admin.php:214
385
+ msgid "Specific URLs on this site"
386
+ msgstr ""
387
+
388
+ #: ../../classes/class-icegram-campaign-admin.php:230
389
+ msgid " Add another"
390
+ msgstr ""
391
+
392
+ #: ../../classes/class-icegram-campaign-admin.php:239
393
+ #, php-format
394
+ msgid ""
395
+ "Additionally you can insert <code>[%s]</code> wherever you want to run this "
396
+ "campaign."
397
+ msgstr ""
398
+
399
+ #: ../../classes/class-icegram-campaign-admin.php:246
400
+ msgid "When?"
401
+ msgstr ""
402
+
403
+ #: ../../classes/class-icegram-campaign-admin.php:249
404
+ msgid "Always"
405
+ msgstr ""
406
+
407
+ #: ../../classes/class-icegram-campaign-admin.php:256
408
+ msgid "Schedule"
409
+ msgstr ""
410
+
411
+ #: ../../classes/class-icegram-campaign-admin.php:259
412
+ msgid "From&hellip;"
413
+ msgstr ""
414
+
415
+ #: ../../classes/class-icegram-campaign-admin.php:262
416
+ msgid "To&hellip;"
417
+ msgstr ""
418
+
419
+ #: ../../classes/class-icegram-campaign-admin.php:273
420
+ msgid "Device?"
421
+ msgstr ""
422
+
423
+ #: ../../classes/class-icegram-campaign-admin.php:274
424
+ msgid "Mobile / Smartphones"
425
+ msgstr ""
426
+
427
+ #: ../../classes/class-icegram-campaign-admin.php:278
428
+ msgid "Tablet"
429
+ msgstr ""
430
+
431
+ #: ../../classes/class-icegram-campaign-admin.php:282
432
+ msgid "Desktop / Laptop"
433
+ msgstr ""
434
+
435
+ #: ../../classes/class-icegram-campaign-admin.php:290
436
+ msgid "Who?"
437
+ msgstr ""
438
+
439
+ #: ../../classes/class-icegram-campaign-admin.php:293
440
+ msgid "All users"
441
+ msgstr ""
442
+
443
+ #: ../../classes/class-icegram-campaign-admin.php:300
444
+ msgid "Logged in users only"
445
+ msgstr ""
446
+
447
+ #: ../../classes/class-icegram-campaign-admin.php:319
448
+ msgid "Select a user role&hellip;"
449
+ msgstr ""
450
+
451
+ #: ../../classes/class-icegram-campaign-admin.php:335
452
+ msgid "Not Logged in users"
453
+ msgstr ""
454
+
455
+ #: ../../classes/class-icegram-campaign-admin.php:339 ../../classes/class-icegram-
456
+ #: campaign-admin.php:349
457
+ msgid "Current Session"
458
+ msgstr ""
459
+
460
+ #: ../../classes/class-icegram-campaign-admin.php:340 ../../classes/class-icegram-
461
+ #: campaign-admin.php:348
462
+ msgid "Never"
463
+ msgstr ""
464
+
465
+ #: ../../classes/class-icegram-campaign-admin.php:341 ../../classes/class-icegram-
466
+ #: campaign-admin.php:350
467
+ msgid "Today"
468
+ msgstr ""
469
+
470
+ #: ../../classes/class-icegram-campaign-admin.php:342 ../../classes/class-icegram-
471
+ #: campaign-admin.php:351
472
+ msgid "One week"
473
+ msgstr ""
474
+
475
+ #: ../../classes/class-icegram-campaign-admin.php:343 ../../classes/class-icegram-
476
+ #: campaign-admin.php:352
477
+ msgid "Two weeks"
478
+ msgstr ""
479
+
480
+ #: ../../classes/class-icegram-campaign-admin.php:344 ../../classes/class-icegram-
481
+ #: campaign-admin.php:353
482
+ msgid "One Month "
483
+ msgstr ""
484
+
485
+ #: ../../classes/class-icegram-campaign-admin.php:345 ../../classes/class-icegram-
486
+ #: campaign-admin.php:354
487
+ msgid "Three Months "
488
+ msgstr ""
489
+
490
+ #: ../../classes/class-icegram-campaign-admin.php:346 ../../classes/class-icegram-
491
+ #: campaign-admin.php:355
492
+ msgid "One year"
493
+ msgstr ""
494
+
495
+ #: ../../classes/class-icegram-campaign-admin.php:347 ../../classes/class-icegram-
496
+ #: campaign-admin.php:356
497
+ msgid "Two Years"
498
+ msgstr ""
499
+
500
+ #: ../../classes/class-icegram-campaign-admin.php:362
501
+ msgid "Retargeting"
502
+ msgstr ""
503
+
504
+ #: ../../classes/class-icegram-campaign-admin.php:365
505
+ msgid " Once shown, do NOT show this campaign again for "
506
+ msgstr ""
507
+
508
+ #: ../../classes/class-icegram-campaign-admin.php:381
509
+ msgid "Once CTA is clicked, do NOT show this campaign again for"
510
+ msgstr ""
511
+
512
+ #: ../../classes/class-icegram-campaign-admin.php:445
513
+ msgid "- - - - - - - - - - - - - - - - - - - - - - - - - -"
514
+ msgstr ""
515
+
516
+ #: ../../classes/class-icegram-campaign-admin.php:462 ../../classes/class-icegram-
517
+ #: message-admin.php:113 ../../classes/class-icegram-message-admin.php:556
518
+ msgid "Type"
519
+ msgstr ""
520
+
521
+ #: ../../classes/class-icegram-campaign-admin.php:463 ../../about-icegram.php:125
522
+ msgid "Name"
523
+ msgstr ""
524
+
525
+ #: ../../classes/class-icegram-campaign-admin.php:464
526
+ msgid "Show after"
527
+ msgstr ""
528
+
529
+ #: ../../classes/class-icegram-campaign-admin.php:465
530
+ msgid "Actions"
531
+ msgstr ""
532
+
533
+ #: ../../classes/class-icegram-campaign-admin.php:671 ../../classes/class-icegram-
534
+ #: message-admin.php:753
535
+ msgid "Duplicate"
536
+ msgstr ""
537
+
538
+ #: ../../classes/class-icegram-message-admin.php:41
539
+ msgid "Message Settings"
540
+ msgstr ""
541
+
542
+ #: ../../classes/class-icegram-message-admin.php:130 ../../classes/class-icegram-
543
+ #: message-admin.php:557
544
+ msgid "Theme"
545
+ msgstr ""
546
+
547
+ #: ../../classes/class-icegram-message-admin.php:147
548
+ msgid "Animation"
549
+ msgstr ""
550
+
551
+ #: ../../classes/class-icegram-message-admin.php:162
552
+ msgid "Headline"
553
+ msgstr ""
554
+
555
+ #: ../../classes/class-icegram-message-admin.php:163
556
+ msgid ""
557
+ "Shown with highest prominence. Click on idea button on right to get a new "
558
+ "headline."
559
+ msgstr ""
560
+
561
+ #: ../../classes/class-icegram-message-admin.php:169
562
+ msgid "Give Me Another Headline"
563
+ msgstr ""
564
+
565
+ #: ../../classes/class-icegram-message-admin.php:175
566
+ msgid "Icon / Avatar Image"
567
+ msgstr ""
568
+
569
+ #: ../../classes/class-icegram-message-admin.php:176
570
+ msgid "This image will appear in message content."
571
+ msgstr ""
572
+
573
+ #: ../../classes/class-icegram-message-admin.php:179
574
+ msgid "Upload / Select an image"
575
+ msgstr ""
576
+
577
+ #: ../../classes/class-icegram-message-admin.php:179
578
+ msgid "Upload / Select Image"
579
+ msgstr ""
580
+
581
+ #: ../../classes/class-icegram-message-admin.php:195
582
+ msgid "Message Body"
583
+ msgstr ""
584
+
585
+ #: ../../classes/class-icegram-message-admin.php:226
586
+ msgid "Form"
587
+ msgstr ""
588
+
589
+ #: ../../classes/class-icegram-message-admin.php:227
590
+ msgid "Use Opt-in / Subscription / Lead capture form"
591
+ msgstr ""
592
+
593
+ #: ../../classes/class-icegram-message-admin.php:249 ../../classes/class-icegram-
594
+ #: message-admin.php:251
595
+ msgid "Left"
596
+ msgstr ""
597
+
598
+ #: ../../classes/class-icegram-message-admin.php:256 ../../classes/class-icegram-
599
+ #: message-admin.php:258
600
+ msgid "Right"
601
+ msgstr ""
602
+
603
+ #: ../../classes/class-icegram-message-admin.php:263 ../../classes/class-icegram-
604
+ #: message-admin.php:265
605
+ msgid "Bottom"
606
+ msgstr ""
607
+
608
+ #: ../../classes/class-icegram-message-admin.php:274 ../../classes/class-icegram-
609
+ #: message-admin.php:276
610
+ msgid "Inline"
611
+ msgstr ""
612
+
613
+ #: ../../classes/class-icegram-message-admin.php:286
614
+ msgid "Background Color"
615
+ msgstr ""
616
+
617
+ #: ../../classes/class-icegram-message-admin.php:287
618
+ msgid "Text Color"
619
+ msgstr ""
620
+
621
+ #: ../../classes/class-icegram-message-admin.php:298
622
+ msgid "Text / HTML to show before the form"
623
+ msgstr ""
624
+
625
+ #: ../../classes/class-icegram-message-admin.php:304
626
+ msgid "Add form embed code"
627
+ msgstr ""
628
+
629
+ #: ../../classes/class-icegram-message-admin.php:304
630
+ msgid " or easily embed using "
631
+ msgstr ""
632
+
633
+ #: ../../classes/class-icegram-message-admin.php:308
634
+ msgid "Use Rainmaker form "
635
+ msgstr ""
636
+
637
+ #: ../../classes/class-icegram-message-admin.php:310
638
+ msgid "Select form "
639
+ msgstr ""
640
+
641
+ #: ../../classes/class-icegram-message-admin.php:314
642
+ msgid " or add "
643
+ msgstr ""
644
+
645
+ #: ../../classes/class-icegram-message-admin.php:314
646
+ msgid "form embed code"
647
+ msgstr ""
648
+
649
+ #: ../../classes/class-icegram-message-admin.php:322
650
+ msgid "Paste HTML / shortcode of your form here..."
651
+ msgstr ""
652
+
653
+ #: ../../classes/class-icegram-message-admin.php:326
654
+ msgid "Show labels above fields"
655
+ msgstr ""
656
+
657
+ #: ../../classes/class-icegram-message-admin.php:331
658
+ msgid "Text / HTML to show after the form"
659
+ msgstr ""
660
+
661
+ #: ../../classes/class-icegram-message-admin.php:334
662
+ msgid ""
663
+ "Insert <code>[ig_form]</code> where you want to show this form in message "
664
+ "body."
665
+ msgstr ""
666
+
667
+ #: ../../classes/class-icegram-message-admin.php:341
668
+ msgid "Button Label"
669
+ msgstr ""
670
+
671
+ #: ../../classes/class-icegram-message-admin.php:342
672
+ msgid "Your call to action text. Something unusual will increase conversions."
673
+ msgstr ""
674
+
675
+ #: ../../classes/class-icegram-message-admin.php:352
676
+ msgid "Target Link"
677
+ msgstr ""
678
+
679
+ #: ../../classes/class-icegram-message-admin.php:353
680
+ msgid "Enter destination URL here. Clicking will redirect to this link."
681
+ msgstr ""
682
+
683
+ #: ../../classes/class-icegram-message-admin.php:376
684
+ msgid "Body"
685
+ msgstr ""
686
+
687
+ #: ../../classes/class-icegram-message-admin.php:377 ../../classes/class-icegram-
688
+ #: message-admin.php:383
689
+ msgid "Background"
690
+ msgstr ""
691
+
692
+ #: ../../classes/class-icegram-message-admin.php:378 ../../classes/class-icegram-
693
+ #: message-admin.php:384
694
+ msgid "Text"
695
+ msgstr ""
696
+
697
+ #: ../../classes/class-icegram-message-admin.php:382
698
+ msgid "Button"
699
+ msgstr ""
700
+
701
+ #: ../../classes/class-icegram-message-admin.php:389
702
+ msgid "Colors"
703
+ msgstr ""
704
+
705
+ #: ../../classes/class-icegram-message-admin.php:390
706
+ msgid "Use theme's default colors"
707
+ msgstr ""
708
+
709
+ #: ../../classes/class-icegram-message-admin.php:396
710
+ msgid "Position"
711
+ msgstr ""
712
+
713
+ #: ../../classes/class-icegram-message-admin.php:452
714
+ msgid "Custom Code"
715
+ msgstr ""
716
+
717
+ #: ../../classes/class-icegram-message-admin.php:453
718
+ msgid "Add custom code for this message"
719
+ msgstr ""
720
+
721
+ #: ../../classes/class-icegram-message-admin.php:457
722
+ msgid "CSS"
723
+ msgstr ""
724
+
725
+ #: ../../classes/class-icegram-message-admin.php:463
726
+ msgid "JS"
727
+ msgstr ""
728
+
729
+ #: ../../classes/class-icegram-message-admin.php:466
730
+ msgid "Add Custom javaScript for this message here..."
731
+ msgstr ""
732
+
733
+ #: ../../classes/class-icegram-message-admin.php:486
734
+ #, php-format
735
+ msgid "You may add <code>[%s]</code> where you want to show this message."
736
+ msgstr ""
737
+
738
+ #: ../../classes/class-icegram-message-admin.php:558
739
+ msgid "Thumbnail"
740
+ msgstr ""
741
+
742
+ #: ../../classes/class-icegram-message-admin.php:701
743
+ msgid "Here Is A Method That Is Helping ____ To ____"
744
+ msgstr ""
745
+
746
+ #: ../../classes/class-icegram-message-admin.php:702
747
+ msgid "__ Little Known Ways To ____"
748
+ msgstr ""
749
+
750
+ #: ../../classes/class-icegram-message-admin.php:703
751
+ msgid "Get Rid Of ____ Once And For All"
752
+ msgstr ""
753
+
754
+ #: ../../classes/class-icegram-message-admin.php:704
755
+ msgid "How To ____ So You Can ____"
756
+ msgstr ""
757
+
758
+ #: ../../classes/class-icegram-message-admin.php:705
759
+ msgid "They Didn't Think I Could ____, But I Did"
760
+ msgstr ""
761
+
762
+ #: ../../classes/class-icegram-message-admin.php:706
763
+ msgid "How ____ Made Me ____"
764
+ msgstr ""
765
+
766
+ #: ../../classes/class-icegram-message-admin.php:707
767
+ msgid "Are You ____ ?"
768
+ msgstr ""
769
+
770
+ #: ../../classes/class-icegram-message-admin.php:708
771
+ msgid "Warning: ____ !"
772
+ msgstr ""
773
+
774
+ #: ../../classes/class-icegram-message-admin.php:709
775
+ msgid "Do You Make These Mistakes With ____ ?"
776
+ msgstr ""
777
+
778
+ #: ../../classes/class-icegram-message-admin.php:710
779
+ msgid "7 Ways To ____"
780
+ msgstr ""
781
+
782
+ #: ../../classes/class-icegram-message-admin.php:711
783
+ msgid "If You're ____, You Can ____"
784
+ msgstr ""
785
+
786
+ #: ../../classes/class-icegram-message-admin.php:712
787
+ msgid "Turn your ____ into a ____"
788
+ msgstr ""
789
+
790
+ #: ../../classes/class-icegram-message-admin.php:713
791
+ msgid "Want To Be A ____?"
792
+ msgstr ""
793
+
794
+ #: ../../classes/class-icegram-message-admin.php:714
795
+ msgid "The Ugly Truth About Your Beautiful ____"
796
+ msgstr ""
797
+
798
+ #: ../../classes/class-icegram-message-admin.php:715
799
+ msgid "The Secret to ____ Is Simply ____!"
800
+ msgstr ""
801
+
802
+ #: ../../classes/class-icegram-message-admin.php:716
803
+ msgid "The Quickest Way I Know To ____"
804
+ msgstr ""
805
+
806
+ #: ../../classes/class-icegram-message-admin.php:717
807
+ msgid "The Lazy Man's Way To ____"
808
+ msgstr ""
809
+
810
+ #: ../../classes/class-icegram-message-admin.php:718
811
+ msgid "The Amazing Story Of ____ That Requires So Little Of ____ You Could ____"
812
+ msgstr ""
813
+
814
+ #: ../../classes/class-icegram-message-admin.php:719
815
+ msgid "The Amazing Secret Of The ____ Genius Who Is Afraid Of ____"
816
+ msgstr ""
817
+
818
+ #: ../../classes/class-icegram-message-admin.php:720
819
+ msgid "The 10 Wackiest Ideas That ____... And How You Can Too!"
820
+ msgstr ""
821
+
822
+ #: ../../classes/class-icegram-message-admin.php:721
823
+ msgid "The Inside Secrets To ____ With Crazy, Outlandish And Outrageous ____"
824
+ msgstr ""
825
+
826
+ #: ../../classes/class-icegram-message-admin.php:722
827
+ msgid "____ Like A ____"
828
+ msgstr ""
829
+
830
+ #: ../../classes/class-icegram-message-admin.php:723
831
+ msgid "Remember When You Could Have ____, And You Didn't?"
832
+ msgstr ""
833
+
834
+ #: ../../classes/class-icegram-message-admin.php:724
835
+ msgid "Is The ____ Worth $x To You?"
836
+ msgstr ""
837
+
838
+ #: ../../classes/class-icegram-message-admin.php:725
839
+ msgid "Increase your ____, reduce ____, maintain ____ and ____ with ____"
840
+ msgstr ""
841
+
842
+ #: ../../classes/class-icegram-message-admin.php:726
843
+ msgid "If You Can ____ You Can ____"
844
+ msgstr ""
845
+
846
+ #: ../../classes/class-icegram-message-admin.php:727
847
+ msgid "I Discovered How To ____... Now I'm Revealing My Secret"
848
+ msgstr ""
849
+
850
+ #: ../../classes/class-icegram-message-admin.php:728
851
+ msgid "How To Turn Your ____ Into The Most ____"
852
+ msgstr ""
853
+
854
+ #: ../../classes/class-icegram-message-admin.php:729
855
+ msgid "How To Take The Headache Out Of ____"
856
+ msgstr ""
857
+
858
+ #: ../../classes/class-icegram-message-admin.php:730
859
+ msgid "How To ____ ... Legally"
860
+ msgstr ""
861
+
862
+ #: ../../classes/class-icegram-message-admin.php:731
863
+ msgid "How To ____ That ____"
864
+ msgstr ""
865
+
866
+ #: ../../classes/class-icegram-message-admin.php:732
867
+ msgid "How To Discover The ____ That Lies Hidden In Your ____"
868
+ msgstr ""
869
+
870
+ #: ../../classes/class-icegram-message-admin.php:733
871
+ msgid "How To ____ Even When Your Not ____"
872
+ msgstr ""
873
+
874
+ #: ../../classes/class-icegram-message-admin.php:734
875
+ msgid "____ With No ____!"
876
+ msgstr ""
877
+
878
+ #: ../../classes/class-icegram-message-admin.php:735
879
+ msgid "Greatest Goldmine of ____ Ever Jammed Into One Big ____"
880
+ msgstr ""
881
+
882
+ #: ../../classes/class-icegram-message-admin.php:736
883
+ msgid "Free ____ Tells How To Get Better ____"
884
+ msgstr ""
885
+
886
+ #: ../../classes/class-icegram-message-admin.php:737
887
+ msgid ""
888
+ "FREE ____ Worth $____ for the first 100 People to take Advantage of this "
889
+ "Offer"
890
+ msgstr ""
891
+
892
+ #: ../../classes/class-icegram-message-admin.php:738
893
+ msgid "Don't Try This With Any Other ____"
894
+ msgstr ""
895
+
896
+ #: ../../classes/class-icegram-message-admin.php:739
897
+ msgid "Do You Honestly Want To ____?"
898
+ msgstr ""
899
+
900
+ #: ../../classes/class-icegram-message-admin.php:740
901
+ msgid "Discover The Magic ____ That Will Bring You ____ & ____!"
902
+ msgstr ""
903
+
904
+ #: ../../classes/class-icegram-message-admin.php:741
905
+ msgid "____ Man Reveals A Short-Cut To ____"
906
+ msgstr ""
907
+
908
+ #: ../../classes/class-icegram-message-admin.php:742
909
+ msgid "Confessions Of A ____"
910
+ msgstr ""
911
+
912
+ #: ../../classes/class-icegram-message-admin.php:743
913
+ msgid "Are You Ready To ____?"
914
+ msgstr ""
915
+
916
+ #: ../../classes/class-icegram-message-admin.php:744
917
+ msgid "An Open Letter To Everyone Who ____ More Than ____ Per ____"
918
+ msgstr ""
919
+
920
+ #: ../../classes/class-icegram-message-admin.php:745
921
+ msgid "An Amazing ____ You Can Carry In Your ____"
922
+ msgstr ""
923
+
924
+ #: ../../classes/class-icegram-message-admin.php:746
925
+ msgid "21 Secret ____ that will ____... NOW!"
926
+ msgstr ""
927
+
928
+ #: ../../addons.php:54
929
+ msgid "Icegram Add-ons"
930
+ msgstr ""
931
+
932
+ #: ../../addons.php:58
933
+ msgid "All"
934
+ msgstr ""
935
+
936
+ #: ../../addons.php:59
937
+ msgid "Installed"
938
+ msgstr ""
939
+
940
+ #: ../../addons.php:60
941
+ msgid "Message Type"
942
+ msgstr ""
943
+
944
+ #: ../../addons.php:61
945
+ msgid "Themes"
946
+ msgstr ""
947
+
948
+ #: ../../addons.php:62
949
+ msgid "Targeting"
950
+ msgstr ""
951
+
952
+ #: ../../addons.php:63
953
+ msgid "Reporting"
954
+ msgstr ""
955
+
956
+ #: ../../addons.php:84
957
+ msgid "Get This Addon"
958
+ msgstr ""
959
+
960
+ #: ../../addons.php:87
961
+ msgid "Already Installed"
962
+ msgstr ""
963
+
964
+ #: ../../addons.php:99
965
+ msgid "Sorry! No Add-ons available currently."
966
+ msgstr ""
967
+
968
+ #: ../../about-icegram.php:129
969
+ msgid "E-mail"
970
+ msgstr ""
971
+
972
+ #: ../../about-icegram.php:133
973
+ msgid "Subject"
974
+ msgstr ""
975
+
976
+ #: ../../about-icegram.php:167
977
+ msgid "Welcome to Icegram."
978
+ msgstr ""
979
+
980
+ #: ../../about-icegram.php:168
981
+ msgid " Your sample campaign is ready!"
982
+ msgstr ""
983
+
984
+ #: ../../about-icegram.php:176
985
+ msgid "Preview Your First Campaign"
986
+ msgstr ""
987
+
988
+ #: ../../about-icegram.php:177
989
+ msgid "OR"
990
+ msgstr ""
991
+
992
+ #: ../../about-icegram.php:178
993
+ msgid "Edit & Publish it."
994
+ msgstr ""
995
+
996
+ #: ../../about-icegram.php:185
997
+ msgid "Questions? Need Help?"
998
+ msgstr ""
999
+
1000
+ #: ../../about-icegram.php:186 ../../about-icegram.php:293
1001
+ msgid "Contact Us"
1002
+ msgstr ""
1003
+
1004
+ #: ../../about-icegram.php:194
1005
+ msgid ""
1006
+ "Do read Icegram's core concepts below to understand how you can use Icegram "
1007
+ "to "
1008
+ msgstr ""
1009
+
1010
+ #: ../../about-icegram.php:195
1011
+ msgid "inspire, convert and engage"
1012
+ msgstr ""
1013
+
1014
+ #: ../../about-icegram.php:196
1015
+ msgid "your audience."
1016
+ msgstr ""
1017
+
1018
+ #: ../../about-icegram.php:202
1019
+ msgid "A 'Message' is a communication you want to deliver to your audience."
1020
+ msgstr ""
1021
+
1022
+ #: ../../about-icegram.php:203
1023
+ msgid "And Icegram comes with not one, but four message types."
1024
+ msgstr ""
1025
+
1026
+ #: ../../about-icegram.php:204
1027
+ msgid ""
1028
+ "Different message types look and behave differently, but they all have many "
1029
+ "common characteristics. For instance, most message types will allow you to "
1030
+ "set a headline, a body text, label for the ‘call to action’ button, a link "
1031
+ "for that button, theme and styling options, animation effect and position on "
1032
+ "screen where that message should show."
1033
+ msgstr ""
1034
+
1035
+ #: ../../about-icegram.php:208
1036
+ msgid "Action Bar"
1037
+ msgstr ""
1038
+
1039
+ #: ../../about-icegram.php:210
1040
+ msgid ""
1041
+ "An action bar is a proven attention grabber. It shows up as a solid bar "
1042
+ "either at top or bottom. Use it for your most important messages or time "
1043
+ "sensitive announcements. Put longer content in it and it acts like a "
1044
+ "collapsible panel!"
1045
+ msgstr ""
1046
+
1047
+ #: ../../about-icegram.php:211
1048
+ msgid "Messenger"
1049
+ msgstr ""
1050
+
1051
+ #: ../../about-icegram.php:213
1052
+ msgid ""
1053
+ "A messenger is best used to invoke interest while your visitor is reading "
1054
+ "your content. Users perceive it as something new, important and urgent and "
1055
+ "are highly likely to click on it."
1056
+ msgstr ""
1057
+
1058
+ #: ../../about-icegram.php:217
1059
+ msgid "Toast Notification"
1060
+ msgstr ""
1061
+
1062
+ #: ../../about-icegram.php:219
1063
+ msgid ""
1064
+ "Want to alert your visitor about some news, an update from your blog, a "
1065
+ "social proof or an offer? Use Icegram’s unique toast notification, it will "
1066
+ "catch their attention, let them click on the message, and disappear after a "
1067
+ "while."
1068
+ msgstr ""
1069
+
1070
+ #: ../../about-icegram.php:220
1071
+ msgid "Popup"
1072
+ msgstr ""
1073
+
1074
+ #: ../../about-icegram.php:222
1075
+ msgid ""
1076
+ "Lightbox popup windows are most widely used for lead capture, promotions and "
1077
+ "additional content display. Ask visitors to sign up to your newsletter, or "
1078
+ "like you on social networks, or tell them about a special offer..."
1079
+ msgstr ""
1080
+
1081
+ #: ../../about-icegram.php:233
1082
+ msgid "Campaign = Messages + Rules"
1083
+ msgstr ""
1084
+
1085
+ #: ../../about-icegram.php:234
1086
+ msgid ""
1087
+ "A campaign allows sequencing multiple messages and defining targeting rules. "
1088
+ "Create different campaigns for different marketing goals. Icegram supports "
1089
+ "showing multiple campaigns on any page."
1090
+ msgstr ""
1091
+
1092
+ #: ../../about-icegram.php:235
1093
+ msgid ""
1094
+ "You can always preview your campaign to ensure campaign works the way you "
1095
+ "want, before making it live."
1096
+ msgstr ""
1097
+
1098
+ #: ../../about-icegram.php:239
1099
+ msgid "Multiple Messages & Sequencing"
1100
+ msgstr ""
1101
+
1102
+ #: ../../about-icegram.php:241
1103
+ msgid ""
1104
+ "Add one or as many messages to a campaign as you want. Also choose the "
1105
+ "number of seconds after which each message should show up. Showing multiple "
1106
+ "messages for same goal, but with slightly different content / presentation, "
1107
+ "greatly improves conversions."
1108
+ msgstr ""
1109
+
1110
+ #: ../../about-icegram.php:247
1111
+ msgid ""
1112
+ "You can control who sees a campaign – and on what device, which pages does "
1113
+ "it show on, and what time period will it stay active for. You can run "
1114
+ "different campaigns with different rules to maximize engagement."
1115
+ msgstr ""
1116
+
1117
+ #: ../../about-icegram.php:256
1118
+ msgid "FAQ / Common Problems"
1119
+ msgstr ""
1120
+
1121
+ #: ../../about-icegram.php:259
1122
+ msgid "Messages look broken / formatting is weird..."
1123
+ msgstr ""
1124
+
1125
+ #: ../../about-icegram.php:260
1126
+ msgid ""
1127
+ "This is most likely due to CSS conflicts with current theme. We suggest "
1128
+ "using simple formatting for messages. You can also write custom CSS in your "
1129
+ "theme to fix any problems."
1130
+ msgstr ""
1131
+
1132
+ #: ../../about-icegram.php:262
1133
+ msgid "Extra Line Breaks / Paragraphs in messages..."
1134
+ msgstr ""
1135
+
1136
+ #: ../../about-icegram.php:263
1137
+ msgid ""
1138
+ "Go to HTML mode in content editor and pull your custom HTML code all "
1139
+ "together in one line. Don't leave blank lines between two tags. That should "
1140
+ "fix it."
1141
+ msgstr ""
1142
+
1143
+ #: ../../about-icegram.php:265
1144
+ msgid "How do I add custom CSS for messages?"
1145
+ msgstr ""
1146
+
1147
+ #: ../../about-icegram.php:266
1148
+ msgid ""
1149
+ "You can use custom CSS/JS inline in your message HTML. You can also use your "
1150
+ "theme's custom JS / CSS feature to add your changes."
1151
+ msgstr ""
1152
+
1153
+ #: ../../about-icegram.php:268
1154
+ msgid "Optin Forms / Mailing service integration..."
1155
+ msgstr ""
1156
+
1157
+ #: ../../about-icegram.php:269
1158
+ msgid ""
1159
+ "You can embed any optin / subscription form to your Icegram messages using "
1160
+ "'Embed Form' button above text editor. Paste in form HTML code and let "
1161
+ "Icegram clean it up! You may even use a shortcode if you are using a WP "
1162
+ "plugin from your newsletter / lead capture service."
1163
+ msgstr ""
1164
+
1165
+ #: ../../about-icegram.php:271
1166
+ msgid "How many messages should I show on a page?"
1167
+ msgstr ""
1168
+
1169
+ #: ../../about-icegram.php:272
1170
+ msgid ""
1171
+ "While Icegram provides you lots of different message types and ability to "
1172
+ "add multiple messages to a campaign, we discourage you to go overboard. "
1173
+ "We've observed two messages on a page work well, but YMMV!"
1174
+ msgstr ""
1175
+
1176
+ #: ../../about-icegram.php:278
1177
+ msgid "Preview does not work / not refreshing..."
1178
+ msgstr ""
1179
+
1180
+ #: ../../about-icegram.php:279
1181
+ msgid ""
1182
+ "Doing a browser refresh while previewing will not show your most recent "
1183
+ "changes. Click 'Preview' button to see a preview with your latest changes."
1184
+ msgstr ""
1185
+
1186
+ #: ../../about-icegram.php:281
1187
+ msgid "Can I use shortcodes in a message?"
1188
+ msgstr ""
1189
+
1190
+ #: ../../about-icegram.php:282
1191
+ msgid ""
1192
+ "Yes! Messages support shortcodes. You may need to adjust CSS so the "
1193
+ "shortcode output looks good in your message."
1194
+ msgstr ""
1195
+
1196
+ #: ../../about-icegram.php:284
1197
+ msgid "WPML / Multilingual usage..."
1198
+ msgstr ""
1199
+
1200
+ #: ../../about-icegram.php:285
1201
+ msgid ""
1202
+ "Go to <code>Messages</code> from Icegram menu. Edit a message and translate "
1203
+ "it like any other post. Icegram will show translated message where possible. "
1204
+ "Choose <code>All posts</code> under WPML Language setting - Blog Posts to "
1205
+ "display, to fall back to default language messages."
1206
+ msgstr ""
1207
+
1208
+ #: ../../about-icegram.php:289
1209
+ msgid "I can't find a way to do X..."
1210
+ msgstr ""
1211
+
1212
+ #: ../../about-icegram.php:290
1213
+ msgid ""
1214
+ "Icegram is actively developed. If you can't find your favorite feature (or "
1215
+ "have a suggestion) contact us. We'd love to hear from you."
1216
+ msgstr ""
1217
+
1218
+ #: ../../about-icegram.php:292
1219
+ msgid "I'm facing a problem and can't find a way out..."
1220
+ msgstr ""
1221
+
1222
+ #: ../../about-icegram.php:293
1223
+ msgid ""
1224
+ ", provide as much detail of the problem as you can. We will try to solve the "
1225
+ "problem ASAP."
1226
+ msgstr ""
1227
+
1228
+ #: ../../settings.php:19
1229
+ msgid "Icegram Settings"
1230
+ msgstr ""
1231
+
1232
+ #: ../../settings.php:23
1233
+ msgid "Share Icegram"
1234
+ msgstr ""
1235
+
1236
+ #: ../../settings.php:27
1237
+ msgid "Show \"Powered by\" link"
1238
+ msgstr ""
1239
+
1240
+ #: ../../settings.php:32
1241
+ msgid "Cache Friendly?"
1242
+ msgstr ""
1243
+
1244
+ #: ../../settings.php:36
1245
+ msgid ""
1246
+ "Turn on \"Lazy Load\" - load Icegram scripts and messages after page load to "
1247
+ "avoid caching problems."
1248
+ msgstr ""
{message-types → lite/message-types}/action-bar/default.css RENAMED
File without changes
{message-types → lite/message-types}/action-bar/main.js RENAMED
File without changes
{message-types → lite/message-types}/action-bar/main.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Action_Bar' ) ) return;
4
 
5
  /**
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Action_Bar' ) ) return;
4
 
5
  /**
lite/message-types/action-bar/themes/action-bar.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #ig_body_pushdown{display:none;position:relative;height:0;visibility:hidden;width:100%}.ig_action_bar,.ig_action_bar div{box-sizing:border-box}.ig_action_bar.ig_container{z-index:9999999;position:fixed;width:100%;padding:0;margin:0;display:none;left:0;line-height:1.5}.ig_action_bar.ig_container.ig_top{top:0}.ig_action_bar.ig_container.ig_bottom{position:fixed;bottom:0}.ig_action_bar.ig_hide.ig_bottom{-ms-transform:translateY(100%);-webkit-transform:translateY(100%);transform:translateY(100%)}.ig_action_bar.ig_hide.ig_top{-ms-transform:translateY(-100%);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.ig_action_bar .ig_content{float:left;text-align:center;width:100%;padding:0 2.5em 0 0}.ig_action_bar .ig_data{text-align:center;padding:.3em 1em .3em .7em;display:inline-block;line-height:1.5;vertical-align:middle;margin:0}.ig_action_bar.ig_has_pwby .ig_data{padding-left:2.5em}.ig_action_bar .ig_headline{display:inline-block;font-size:1em;line-height:1.25;font-weight:700;padding:0}.ig_action_bar .ig_message{display:inline-block;font-size:.85em;line-height:1.2;padding:.2em 0 0}.ig_action_bar .ig_button,.ig_action_bar input[type=submit],.ig_action_bar input[type=button]{border:none;color:#FFF;cursor:pointer;display:inline-block;font-size:1em;font-weight:700;letter-spacing:.05em;vertical-align:middle;text-align:center;padding:.3em 1.5em;margin:.5em 0;float:none;background-image:none}.ig_action_bar .ig_powered_by{vertical-align:top;opacity:.5;display:inline-block;float:left;z-index:22;position:absolute;margin-top:0}.ig_action_bar .ig_powered_by img{width:1.5em;margin:.3em 0 0 .5em}.ig_action_bar .ig_close{z-index:1000000;cursor:pointer;position:absolute;right:0;width:36px;height:36px;box-sizing:border-box}.ig_action_bar .ig_close>span{background-image:url(../../../assets/images/sprite_1.png);background-repeat:no-repeat;width:30px;height:100%;opacity:.7;display:inline-block}.ig_action_bar .ig_close:hover>span{opacity:1}.ig_action_bar.ig_show .ig_close{background-color:transparent!important}.ig_action_bar.ig_hide .ig_close{position:fixed;border:none;right:.2em}.ig_action_bar.ig_hide.ig_top .ig_close{top:100%}.ig_action_bar.ig_hide.ig_bottom .ig_close{bottom:100%}.ig_action_bar.ig_hide.ig_bottom .ig_close>span,.ig_action_bar.ig_show.ig_top .ig_close>span{background-position:-80px center}.ig_action_bar.ig_hide.ig_top .ig_close>span,.ig_action_bar.ig_show.ig_bottom .ig_close>span{background-position:-120px center}@media only screen and (max-width:768px){.ig_action_bar .ig_content{padding-right:0}.ig_action_bar .ig_data{width:100%;max-width:100%!important;padding-right:2.5em}.ig_action_bar .ig_button,.ig_action_bar input[type=submit],.ig_action_bar input[type=button]{max-width:100%;margin:.3em 0}.ig_action_bar.ig_show .ig_close{top:0}.ig_action_bar{font-size:18px}.ig_action_bar .ig_form_container .ig_embed_form_container{width:80%;margin:0 auto;font-size:.85em}}.ig_action_bar .ig_form_container{width:20%;float:left}.ig_action_bar.ig_form_bottom .ig_content,.ig_action_bar.ig_form_inline .ig_content,.ig_action_bar.ig_form_left .ig_content,.ig_action_bar.ig_form_right .ig_content{padding:0}.ig_action_bar.ig_form_left .ig_data,.ig_action_bar.ig_form_right .ig_data{width:79%;max-width:79%!important;float:left}.ig_action_bar.ig_form_left.ig_has_pwby .ig_data{width:79%;max-width:79%!important;padding-left:1em}.ig_action_bar.ig_form_bottom.ig_has_pwby .ig_form_container.layout_bottom,.ig_action_bar.ig_form_left.ig_has_pwby .ig_form_container.layout_left{padding-left:2.5em}.ig_action_bar.ig_form_bottom .ig_data{float:left}.ig_action_bar.ig_form_bottom .ig_data,.ig_action_bar.ig_form_inline .ig_data{width:100%;max-width:100%!important;padding-right:2.5em}.ig_action_bar.ig_form_right .ig_form_container.layout_right{float:right;padding-right:2.5em}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom{padding-right:2.5em}.ig_action_bar.ig_form_inline .ig_form_container.layout_inline{padding-right:0}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_form_header{text-align:center}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_data{padding-left:2em}.ig_action_bar.ig_form_right.ig_form_style_4 .ig_data{padding-right:2em}.ig_action_bar.ig_form_bottom.ig_form_style_4 .ig_form_container.layout_bottom{padding-top:0;padding-bottom:0;margin-top:1em}.ig_action_bar.ig_form_style_4.ig_hide .ig_form_container:before{display:none}@media only screen and (max-width:768px){.ig_action_bar.ig_form_left .ig_form_container.layout_left,.ig_action_bar.ig_form_right .ig_form_container.layout_right{display:none}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom,.ig_action_bar.ig_form_left .ig_form_container.layout_bottom,.ig_action_bar.ig_form_right .ig_form_container.layout_bottom{display:block;width:100%;padding:.7em 1em;height:auto!important}.ig_action_bar.ig_form_bottom.ig_has_pwby .ig_form_container.layout_bottom,.ig_action_bar.ig_form_left.ig_has_pwby .ig_form_container.layout_bottom,.ig_action_bar.ig_form_right.ig_has_pwby .ig_form_container.layout_bottom{padding:.7em 1em}.ig_action_bar.ig_form_bottom .ig_data,.ig_action_bar.ig_form_left .ig_data,.ig_action_bar.ig_form_right .ig_data{width:100%;max-width:100%!important;padding-right:2.3em}.ig_action_bar.ig_form_left.ig_has_pwby .ig_data,.ig_action_bar.ig_form_right.ig_has_pwby .ig_data{padding-left:2.3em}.ig_action_bar .ig_form_container .ig_embed_form_container{width:60%;margin:0 auto;font-size:.85em}.ig_action_bar .ig_form_container .ig_embed_form_container.ig_half{width:100%}.ig_action_bar .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;display:inline-block;float:left;margin:.25em auto}.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_form_els{width:49%}.ig_action_bar .ig_form_container.layout_bottom .ig_full .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_quater .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_third .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_full .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_quater .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_third .ig_button_label{display:none}.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_button_label{display:block;visibility:hidden;opacity:0}.ig_action_bar .ig_form_container.layout_bottom .ig_button,.ig_action_bar .ig_form_container.layout_bottom input[type=submit],.ig_action_bar .ig_form_container.layout_bottom input[type=button],.ig_action_bar .ig_form_container.layout_inline .ig_button,.ig_action_bar .ig_form_container.layout_inline input[type=submit],.ig_action_bar .ig_form_container.layout_inline input[type=button]{margin:0 auto}.ig_action_bar.ig_form_left.ig_form_style_1 .ig_form_container.layout_bottom:before,.ig_action_bar.ig_form_right.ig_form_style_1 .ig_form_container.layout_bottom:before{width:100%;border-top-width:.2em}.ig_action_bar.ig_form_bottom.ig_form_style_1 .ig_form_container.layout_bottom:before{border-top-width:.2em}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_form_els{margin-right:0;margin-left:0}.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:2em;padding-left:1em;height:2.25em;line-height:2.2em}.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input.ig_button,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_data,.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_first label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_first input{border-radius:2em 0 0 2em;padding-left:1em;border-right-width:0}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_last input{border-radius:0 2em 2em 0;border-left-width:0}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els .ig_button,.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els input{width:100%}.ig_action_bar.ig_form_right.ig_form_style_4 .ig_data{padding-right:2.5em}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_right.ig_form_style_4 .ig_form_container{margin-top:1em}.ig_action_bar.ig_form_bottom.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_left.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_right.ig_form_style_4 .ig_form_container{padding-top:0;padding-bottom:0}}@media only screen and (max-width:644px){.ig_action_bar .ig_form_container .ig_embed_form_container,.ig_action_bar.ig_form_inline .ig_form_container .ig_embed_form_container{width:70%}}@media only screen and (max-width:375px){.ig_action_bar.ig_form_inline .ig_form_container .ig_embed_form_container{width:100%}}.ig-test{@apply mt-4}.ig_action_bar.ig_air-mail.ig_container{border-style:solid;color:#707070;-moz-border-image:-moz-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-webkit-border-image:-webkit-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-o-border-image:-o-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;border-image:repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;background-color:#fdfdfd}.ig_action_bar.ig_air-mail.ig_container.ig_top{border-width:0 0 8px}.ig_action_bar.ig_air-mail.ig_container.ig_bottom{border-width:8px 0 0}.ig_action_bar.ig_air-mail .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_air-mail .ig_headline{color:#2C4A9D}.ig_action_bar.ig_air-mail .ig_headline,.ig_action_bar.ig_air-mail .ig_message{display:block}.ig_action_bar.ig_air-mail .ig_button,.ig_action_bar.ig_air-mail input[type=submit],.ig_action_bar.ig_air-mail input[type=button]{float:right;background:#D82931;text-transform:uppercase;font-family:"Open Sans",sans-serif;font-weight:600;border-radius:4px;border:none}.ig_action_bar.ig_air-mail .ig_button:hover,.ig_action_bar.ig_air-mail input[type=submit]:hover,.ig_action_bar.ig_air-mail input[type=button]:hover{box-shadow:0 0 4px 0 rgba(0,0,0,.5)}.ig_action_bar.ig_air-mail .ig_button:active,.ig_action_bar.ig_air-mail input[type=submit]:active,.ig_action_bar.ig_air-mail input[type=button]:active{box-shadow:none}.ig_action_bar.ig_air-mail.ig_show.ig_bottom .ig_close>span,.ig_action_bar.ig_air-mail.ig_show.ig_top .ig_close>span{background-position:-520px center;opacity:.4}.ig_action_bar.ig_air-mail.ig_show.ig_bottom .ig_close:hover>span,.ig_action_bar.ig_air-mail.ig_show.ig_top .ig_close:hover>span{background-position:-520px center;opacity:.8}.ig_action_bar.ig_air-mail.ig_hide .ig_close{display:none}.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_air-mail .ig_button,.ig_action_bar.ig_air-mail input[type=submit],.ig_action_bar.ig_air-mail input[type=button]{float:left;margin-left:.7em}.ig_action_bar.ig_air-mail.ig_has_pwby .ig_button,.ig_action_bar.ig_air-mail.ig_has_pwby input[type=submit],.ig_action_bar.ig_air-mail.ig_has_pwby input[type=button]{margin-left:2.5em}}.ig_action_bar.ig_bold.ig_container{background-color:#BC0933;color:#FFF;border-bottom:solid .2em #F3EEEE;box-shadow:0 0 .6em 0 rgba(0,0,0,.4)}.ig_action_bar.ig_bold.ig_container.ig_bottom{border-bottom:none;border-top:solid .2em #F3EEEE}.ig_action_bar.ig_bold .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_bold .ig_headline,.ig_action_bar.ig_bold .ig_message{display:block}.ig_action_bar.ig_bold .ig_button,.ig_action_bar.ig_bold input[type=submit],.ig_action_bar.ig_bold input[type=button]{float:right;background:#00BB58;border-radius:.2em;box-shadow:inset 0 -3px 1px rgba(0,0,0,.35),0 2px 2px rgba(0,0,0,.25);text-shadow:0 0 1px rgba(0,0,0,.1)}.ig_action_bar.ig_bold .ig_button:active,.ig_action_bar.ig_bold input[type=submit]:active,.ig_action_bar.ig_bold input[type=button]:active{position:relative;top:3px;box-shadow:none}.ig_action_bar.ig_bold.ig_hide .ig_close{background-color:#BC0933;border:.2em solid #FFF;border-bottom-width:0;box-shadow:0 0 .3em rgba(0,0,0,.35);border-radius:.3em .3em 0 0}.ig_action_bar.ig_bold.ig_hide.ig_top .ig_close{margin-top:.15em;border-bottom-width:.2em;border-top-width:0;border-radius:0 0 .3em .3em}.ig_action_bar.ig_bold.ig_hide.ig_bottom .ig_close{margin-bottom:.15em}.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_bold .ig_button,.ig_action_bar.ig_bold input[type=submit],.ig_action_bar.ig_bold input[type=button]{float:left;margin:.3em 0 .3em .7em}.ig_action_bar.ig_bold.ig_has_pwby .ig_button,.ig_action_bar.ig_bold.ig_has_pwby input[type=submit],.ig_action_bar.ig_bold.ig_has_pwby input[type=button]{margin-left:2.5em}}.ig_action_bar.ig_hello.ig_container{background-color:#EB5B31;color:#FFF;line-height:1.5;border-bottom:.2em solid #fff;box-shadow:0 0 .6em 0 rgba(0,0,0,.4)}.ig_action_bar.ig_hello.ig_container.ig_bottom{border-bottom:none;border-top:.2em solid #fff}.ig_action_bar.ig_hello .ig_headline{font-weight:700;margin-right:.5em}.ig_action_bar.ig_hello .ig_message{margin-right:.5em}.ig_action_bar.ig_hello .ig_button,.ig_action_bar.ig_hello input[type=submit],.ig_action_bar.ig_hello input[type=button]{background-color:#4A4844;background-image:linear-gradient(top,transparent 0,rgba(51,51,51,.4) 100%);box-shadow:1px 1px 3px rgba(0,0,0,.28);font-weight:400;border-radius:.25em;float:none;padding:.2em 1.3em}.ig_action_bar.ig_hello .ig_button:hover,.ig_action_bar.ig_hello input[type=submit]:hover,.ig_action_bar.ig_hello input[type=button]:hover{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80);opacity:.8}.ig_action_bar.ig_hello.ig_hide .ig_close{background-color:#EB5B31;border:.2em solid #FFF;border-bottom-width:0;border-radius:.3em .3em 0 0;box-shadow:0 0 .3em rgba(0,0,0,.35)}.ig_action_bar.ig_hello.ig_hide.ig_top .ig_close{margin-top:.15em;border-bottom-width:.2em;border-top-width:0;border-radius:0 0 .3em .3em}.ig_action_bar.ig_hello.ig_hide.ig_bottom .ig_close{margin-bottom:.15em}.ig_action_bar.ig_form_inline.ig_hello .ig_form_container.layout_inline{padding:.2em}.ig_action_bar.ig_form_inline.ig_hello .ig_headline{vertical-align:middle;margin-right:.5em}.ig_action_bar.ig_form_inline.ig_hello .ig_message{vertical-align:middle}.ig_action_bar.ig_solid.ig_container{background-color:#4E3363;color:#FFF}.ig_action_bar.ig_solid .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_solid .ig_headline,.ig_action_bar.ig_solid .ig_message{display:block}.ig_action_bar.ig_solid .ig_button,.ig_action_bar.ig_solid input[type=submit],.ig_action_bar.ig_solid input[type=button]{background:#008010;float:right;border-radius:.1em}.ig_action_bar.ig_solid .ig_button:hover,.ig_action_bar.ig_solid input[type=submit]:hover,.ig_action_bar.ig_solid input[type=button]:hover{box-shadow:inset 0 -4em 0 rgba(255,255,255,.15)}.ig_action_bar.ig_solid.ig_hide .ig_close{background-color:#4E3363}.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_solid .ig_button,.ig_action_bar.ig_solid input[type=submit],.ig_action_bar.ig_solid input[type=button]{float:left;margin:.3em 0 .3em .7em}.ig_action_bar.ig_solid.ig_has_pwby .ig_button,.ig_action_bar.ig_solid.ig_has_pwby input[type=submit],.ig_action_bar.ig_solid.ig_has_pwby input[type=button]{margin-left:2.5em}}
{message-types → lite/message-types}/action-bar/themes/air-mail.css RENAMED
@@ -1,3 +1,7 @@
 
 
 
 
1
  .ig_action_bar.ig_air-mail.ig_container {
2
  /*background-color: #F2F2F2;*/
3
  border-style: solid;
@@ -31,7 +35,7 @@
31
  }
32
 
33
  .ig_action_bar.ig_air-mail .ig_button,
34
- .ig_action_bar.ig_air-mail input[type="submit"],
35
  .ig_action_bar.ig_air-mail input[type="button"]{
36
  float: right;
37
  background: #D82931;
@@ -40,7 +44,7 @@
40
  font-weight: 600;
41
  border-radius: 4px;
42
  /*border-bottom: 3px solid #BF3A2B;*/
43
- border: none;
44
  }
45
 
46
  .ig_action_bar.ig_air-mail .ig_button:hover,
@@ -56,11 +60,11 @@
56
  }
57
 
58
  /*Commented for now, as it disturbs the whole layout */
59
- /*
60
  .ig_action_bar.ig_air-mail .ig_button:hover,
61
- .ig_action_bar.ig_air-mail input[type="submit"]:hover,
62
  .ig_action_bar.ig_air-mail input[type="button"]:hover{
63
- margin-top: -3px;
64
  border-bottom: 6px solid #c0392b;
65
  }
66
  */
@@ -93,15 +97,15 @@
93
  }
94
 
95
  @media only screen and (max-width: 768px){
96
- .ig_action_bar.ig_air-mail .ig_button,
97
- .ig_action_bar.ig_air-mail input[type="submit"],
98
  .ig_action_bar.ig_air-mail input[type="button"] {
99
  float: left;
100
  margin-left: .7em;
101
  }
102
- .ig_action_bar.ig_air-mail.ig_has_pwby .ig_button,
103
- .ig_action_bar.ig_air-mail.ig_has_pwby input[type="submit"],
104
  .ig_action_bar.ig_air-mail.ig_has_pwby input[type="button"] {
105
  margin-left: 2.5em;
106
- }
107
  }
1
+ .ig-test {
2
+ @apply mt-4;
3
+ }
4
+
5
  .ig_action_bar.ig_air-mail.ig_container {
6
  /*background-color: #F2F2F2;*/
7
  border-style: solid;
35
  }
36
 
37
  .ig_action_bar.ig_air-mail .ig_button,
38
+ .ig_action_bar.ig_air-mail input[type="submit"],
39
  .ig_action_bar.ig_air-mail input[type="button"]{
40
  float: right;
41
  background: #D82931;
44
  font-weight: 600;
45
  border-radius: 4px;
46
  /*border-bottom: 3px solid #BF3A2B;*/
47
+ border: none;
48
  }
49
 
50
  .ig_action_bar.ig_air-mail .ig_button:hover,
60
  }
61
 
62
  /*Commented for now, as it disturbs the whole layout */
63
+ /*
64
  .ig_action_bar.ig_air-mail .ig_button:hover,
65
+ .ig_action_bar.ig_air-mail input[type="submit"]:hover,
66
  .ig_action_bar.ig_air-mail input[type="button"]:hover{
67
+ margin-top: -3px;
68
  border-bottom: 6px solid #c0392b;
69
  }
70
  */
97
  }
98
 
99
  @media only screen and (max-width: 768px){
100
+ .ig_action_bar.ig_air-mail .ig_button,
101
+ .ig_action_bar.ig_air-mail input[type="submit"],
102
  .ig_action_bar.ig_air-mail input[type="button"] {
103
  float: left;
104
  margin-left: .7em;
105
  }
106
+ .ig_action_bar.ig_air-mail.ig_has_pwby .ig_button,
107
+ .ig_action_bar.ig_air-mail.ig_has_pwby input[type="submit"],
108
  .ig_action_bar.ig_air-mail.ig_has_pwby input[type="button"] {
109
  margin-left: 2.5em;
110
+ }
111
  }
{message-types → lite/message-types}/action-bar/themes/air-mail.png RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/bold.css RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/bold.png RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/default.css RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/hello.css RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/hello.png RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/solid.css RENAMED
File without changes
{message-types → lite/message-types}/action-bar/themes/solid.png RENAMED
File without changes
{message-types → lite/message-types}/messenger/default.css RENAMED
File without changes
{message-types → lite/message-types}/messenger/main.js RENAMED
File without changes
{message-types → lite/message-types}/messenger/main.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Messenger' ) ) return;
4
 
5
  /**
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Messenger' ) ) return;
4
 
5
  /**
{message-types → lite/message-types}/messenger/themes/canvas.css RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/canvas.png RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/clear.css RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/clear.png RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/default.css RENAMED
File without changes
lite/message-types/messenger/themes/messenger.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .ig_messenger .ig_body,.ig_messenger .ig_headline{-ms-text-overflow:ellipsis;text-overflow:ellipsis}.ig_messenger.ig_container{display:none;position:fixed;cursor:pointer;background-color:transparent!important;z-index:100000;margin:0;padding:0;font-family:"Lucida Grande",Arial,sans-serif;font-size:16px;overflow:hidden;text-align:left;bottom:.2em}.ig_messenger.ig_container,.ig_messenger.ig_container div{box-sizing:border-box}.ig_messenger.ig_container.ig_left{left:.2em}.ig_messenger.ig_container.ig_right{right:.2em}.ig_messenger .ig_content,.ig_messenger .ig_data{background:0 0!important;position:relative}.ig_messenger .ig_close:after,.ig_messenger .ig_close:before,.ig_messenger .ig_content:before,.ig_messenger .ig_data:after,.ig_messenger .ig_footer:after,.ig_messenger .ig_headline:after,.ig_messenger .ig_headline:before,.ig_messenger .ig_message:after,.ig_messenger .ig_message:before{content:'';position:absolute;display:none;padding:0;width:100%;z-index:10;background-position:0 0;background-repeat:no-repeat;box-sizing:border-box}.ig_messenger .ig_headline{display:block!important;font-weight:700;text-decoration:none;overflow:hidden;white-space:nowrap}.ig_messenger .ig_headline:after{left:0}.ig_messenger .ig_body{overflow-x:hidden;display:block;border-bottom:none;z-index:9}.ig_messenger .ig_footer,.ig_messenger.ig_no_icon .ig_icon{display:none}.ig_messenger .ig_icon{height:2.5em;width:2.5em;position:absolute}.ig_messenger .ig_message{text-align:left;word-wrap:break-word}.ig_messenger .ig_message p{margin-bottom:.25em}.ig_messenger .ig_powered_by{font-size:.62em;z-index:10;position:relative;text-align:right}.ig_messenger .ig_button,.ig_messenger input[type=submit],.ig_messenger input[type=button]{border-bottom:none;cursor:pointer}.ig_messenger .ig_button:active,.ig_messenger input[type=submit]:active,.ig_messenger input[type=button]:active{border-top:none}.ig_messenger .ig_close{position:absolute;z-index:10;height:25px;width:25px}.ig_messenger .ig_close:after{top:6px;left:6px;background-image:url(../../../assets/images/clear-header.png);background-repeat:no-repeat;background-position:0 -195px;display:block;height:13px;width:13px}.ig_messenger.ig_form_bottom .ig_form_container.layout_bottom,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_button_label,.ig_messenger.ig_form_left .ig_form_container.layout_left,.ig_messenger.ig_form_right .ig_form_container.layout_right{display:none}.ig_messenger.ig_form_inline .ig_form_container.layout_inline{float:left;padding:.5em 0}.ig_messenger.ig_form_inline .ig_message p{margin-bottom:0}.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.3em auto}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{padding-left:1em;border-width:2px;border-radius:2em}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_messenger.ig_canvas.ig_container{max-width:33%}.ig_messenger.ig_canvas .ig_content{border:1px solid #BFBFBF;margin:.6em .6em .1em;padding:.6em;overflow:hidden;box-shadow:0 .15em .35em 0 rgba(0,0,0,.13);background-color:#FFF!important}.ig_messenger.ig_canvas .ig_headline{color:#111;width:100%;font-size:1.5em;line-height:1em;padding:0 1em .1em .2em}.ig_messenger.ig_canvas .ig_body{max-height:21em;overflow-y:auto;padding:0 .5em;margin-top:.5em;line-height:1.3em}.ig_messenger.ig_canvas .ig_icon{float:right;position:relative;border-radius:5%;max-width:6em;margin:.3em;height:auto!important;width:auto!important}.ig_messenger.ig_canvas .ig_message{color:#444;display:inline}.ig_messenger.ig_canvas .ig_close{right:0;top:.5em}.ig_messenger.ig_canvas .ig_powered_by{bottom:0;padding-left:1em;text-align:left}@media only screen and (max-width:850px){.ig_messenger.ig_canvas.ig_container{max-width:50%}}@media only screen and (max-width:644px){.ig_messenger.ig_canvas.ig_container{max-width:70%}}@media only screen and (max-width:415px){.ig_messenger.ig_canvas.ig_container{max-width:90%}}.ig_messenger.ig_clear.ig_container{font-size:13px;width:19.25em;height:20.75em;border-radius:.23em .23em 0 0;border:1px solid #BFBFBF}.ig_messenger.ig_clear .ig_headline:after,.ig_messenger.ig_clear .ig_headline:before{background-size:cover}.ig_messenger.ig_clear .ig_headline:before{display:block;background-image:url(../../../assets/images/clear-header.png);top:.6em;left:.6em;height:1.25em;width:1.25em}.ig_messenger.ig_clear .ig_headline{background:#F9F9F9;color:#333;width:100%;height:2.38em;line-height:2.58em;font-size:1em;padding:0 2.9em 0 2em;border-bottom:1px solid #BFBFBF;box-shadow:inset 0 0 .25em 0 #FFF}.ig_messenger.ig_clear .ig_headline:after{display:block;height:2.12em;top:2.38em;background-image:url(../../../assets/images/clear-option.png)}.ig_messenger.ig_clear .ig_body{background:#FFF;color:#222;font-size:1em;font-family:Arial,Helvetica,sans-serif;position:relative;height:13.35em;top:2.12em;border-top:1px solid #BFBFBF;right:0;line-height:1.25em;padding:.5em .9em 0 .5em;box-shadow:inset 0 0 .25em 0 #FFF}.ig_messenger.ig_clear .ig_message{color:#3E454C;width:100%;padding-left:3em}.ig_messenger.ig_clear.ig_no_icon .ig_message{padding-left:.5em}.ig_messenger.ig_clear .ig_footer{display:block;background-color:inherit;height:2.76em;margin-top:2.12em;border-top:1px solid #BFBFBF;background-image:url(../../../assets/images/clear-footer.png);background-size:cover}.ig_messenger.ig_clear .ig_close{top:.3em;right:0}.ig_messenger.ig_clear .ig_close:before{display:block;background-image:url(../../../assets/images/clear-header.png);background-position:0 -181px;top:6px;height:13px;width:13px;padding:0;right:1.7em}.ig_messenger.ig_clear .ig_powered_by{bottom:1.8em;padding-right:3em;font-size:.8em}@media only screen and (max-width:992px){.ig_messenger.ig_clear.ig_container{font-size:14px}}.ig_messenger.ig_social.ig_container{font-size:11px;width:22.8em;height:23.6em}.ig_messenger.ig_social .ig_headline{background-color:#627BAE;color:#FFF;width:100%;height:2.45em;line-height:2.65em;font-size:1em;padding:0 3.4em 0 .7em;border:1px solid rgba(0,39,121,.3);border-bottom:none}.ig_messenger.ig_social .ig_body{display:block;background-color:#edeff4;color:#3e454c;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;position:relative;height:18em;border:1px solid rgba(0,0,0,.3);border-top:none;border-bottom:none;right:0;padding:5px .5em 0 3.8em}.ig_messenger.ig_social.ig_no_icon .ig_body{padding-left:.5em;line-height:1.37em}.ig_messenger.ig_social .ig_message:before{display:block;width:0;top:11px;margin:0 0 0 -18px;border:8px solid #DFDFDF;border-color:transparent #DFDFDF transparent transparent;z-index:-1}.ig_messenger.ig_social .ig_message:after{display:block;width:0;top:13px;margin:0 0 0 -15px;border:6px solid #FAFAFA;border-color:transparent #FAFAFA transparent transparent}.ig_messenger.ig_social .ig_message{background-color:#F7F7F7;color:#3E454C;background-image:-webkit-linear-gradient(bottom,#F2F2F2,#FFF);width:90%;font-size:1.09em;padding:.3em;border:1px solid rgba(0,0,0,.18);border-bottom-color:rgba(0,0,0,.29);border-radius:.4em;box-shadow:0 1px 0 #DCE0E6}.ig_messenger.ig_social.ig_no_icon .ig_message{margin:0 auto .5em}.ig_messenger.ig_social.ig_no_icon .ig_message:after,.ig_messenger.ig_social.ig_no_icon .ig_message:before{display:none}.ig_messenger.ig_social .ig_icon{margin-left:-3.3em;height:2.54em;width:2.54em}.ig_messenger.ig_social .ig_footer{display:block;height:3em;background-color:#FFF;border:1px solid rgba(0,0,0,.3)}.ig_messenger.ig_social .ig_footer:after{display:block;background-image:url(../../../assets/images/social-img.png);background-position:-269px -137px;width:22px;height:18px;margin-top:.8em;right:.3em}.ig_messenger.ig_social .ig_close{background-image:url(../../../assets/images/social-img.png);background-position:-137px -332px;top:.25em;right:.15em;height:25px;width:21px}.ig_messenger.ig_social .ig_close:before{display:block;background-image:url(../../../assets/images/social-img.png);background-position:-92px -332px;height:100%;width:100%;padding:0;right:1.5em}.ig_messenger.ig_social .ig_close:after{display:none}.ig_messenger.ig_social .ig_powered_by{bottom:1.8em;padding-right:3em;font-size:.9em}@media only screen and (max-width:992px){.ig_messenger.ig_social.ig_container{font-size:13px}}@media only screen and (max-width:320px){.ig_messenger.ig_social.ig_container{font-size:12px;width:20em}}.ig_messenger.ig_talk.ig_container{font-size:12px;width:17.5em;height:21em;border:.1em solid #BFBFBF;border-radius:.5em .5em 0 0}.ig_messenger.ig_talk .ig_body,.ig_messenger.ig_talk .ig_headline{font-size:1em;border-bottom:.1em solid #BFBFBF;box-shadow:inset 0 0 .25em 0 #FFF}.ig_messenger.ig_talk .ig_close,.ig_messenger.ig_talk .ig_close:before,.ig_messenger.ig_talk .ig_data:after,.ig_messenger.ig_talk .ig_headline:after,.ig_messenger.ig_talk .ig_headline:before{background-size:cover}.ig_messenger.ig_talk .ig_headline:before{display:block;background-image:url(../../../assets/images/clear-header.png);top:.5em;left:.6em;height:1.25em;width:1.25em}.ig_messenger.ig_talk .ig_headline{background-color:#F5FAFF;color:#00008B;width:100%;height:2.2em;line-height:2.4em;padding:0 2.9em 0 2em;border-radius:.5em .5em 0 0}.ig_messenger.ig_talk .ig_headline:after{display:block;height:2.5em;top:2.2em;background-image:url(../../../assets/images/talk-header-2.png)}.ig_messenger.ig_talk .ig_body{background:#FFF;color:#222;font-family:Arial,Helvetica,sans-serif;position:relative;height:13.48em;border-top:.1em solid #BFBFBF;top:2.5em;right:0;line-height:1.25em;padding:.5em .8em 0 .5em}.ig_messenger.ig_talk .ig_message{color:#3E454C;width:100%;padding-left:3em}.ig_messenger.ig_talk.ig_no_icon .ig_message{padding-left:.5em}.ig_messenger.ig_talk .ig_footer{display:block;height:2.66em;margin-top:2.5em;background-image:url(../../../assets/images/talk-footer-1.png);background-size:cover}.ig_messenger.ig_talk .ig_close{background-image:url(../../../assets/images/talk-close.png);background-position:0 0;top:.5em;right:.33em;height:1.25em;width:1.25em;z-index:10}.ig_messenger.ig_talk .ig_close:before{display:block;background-image:url(../../../assets/images/talk-header-1.png);height:100%;width:100%;padding:0;right:1.5em}.ig_messenger.ig_talk .ig_close:after{display:none}.ig_messenger.ig_talk .ig_powered_by{bottom:2em;padding-right:2em;font-size:.8em}@media only screen and (max-width:992px){.ig_messenger.ig_talk.ig_container{font-size:14px}}
{message-types → lite/message-types}/messenger/themes/social.css RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/social.png RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/talk.css RENAMED
File without changes
{message-types → lite/message-types}/messenger/themes/talk.png RENAMED
File without changes
{message-types → lite/message-types}/popup/default.css RENAMED
File without changes
{message-types → lite/message-types}/popup/main.js RENAMED
File without changes
{message-types → lite/message-types}/popup/main.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Popup' ) ) return;
4
 
5
  /**
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Popup' ) ) return;
4
 
5
  /**
{message-types → lite/message-types}/popup/themes/air-mail.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/air-mail.png RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/amaze.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/amaze.png RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/compel.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/compel.png RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/convert.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/convert.png RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/default.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/inspire.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/inspire.png RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/persuade.css RENAMED
File without changes
{message-types → lite/message-types}/popup/themes/persuade.png RENAMED
File without changes
lite/message-types/popup/themes/popup.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .mfp-bg,.mfp-wrap{z-index:999999;position:fixed;left:0;top:0}.mfp-bg,.mfp-container,.mfp-wrap{height:100%;width:100%}.mfp-container:before,.mfp-figure:after{content:''}.mfp-bg{overflow:hidden;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-close,.mfp-preloader{text-align:center;position:absolute}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#CCC;top:50%;width:auto;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#CCC}.mfp-close,.mfp-preloader a:hover{color:#FFF}.mfp-s-error .mfp-content,.mfp-s-ready .mfp-preloader{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;right:0;top:0;text-decoration:none;opacity:.65;filter:alpha(opacity=65);padding:0 0 18px 10px;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#FFF;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#CCC;font-size:12px;line-height:18px;white-space:nowrap}.mfp-figure,img.mfp-img{line-height:0}.mfp-arrow{position:absolute;opacity:.65;filter:alpha(opacity=65);margin:-55px 0 0;top:50%;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1;filter:alpha(opacity=100)}.mfp-arrow .mfp-a,.mfp-arrow .mfp-b,.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:inset transparent}.mfp-arrow .mfp-a,.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow .mfp-b,.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left .mfp-a,.mfp-arrow-left:after{border-right:17px solid #FFF;margin-left:31px}.mfp-arrow-left .mfp-b,.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3F3F3F}.mfp-arrow-right{right:0}.mfp-arrow-right .mfp-a,.mfp-arrow-right:after{border-left:17px solid #FFF;margin-left:39px}.mfp-arrow-right .mfp-b,.mfp-arrow-right:before{border-left:27px solid #3F3F3F}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-image-holder .mfp-content,img.mfp-img{max-width:100%}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}.mfp-figure:after,img.mfp-img{width:auto;height:auto;display:block}img.mfp-img{box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure:after{position:absolute;left:0;top:40px;bottom:40px;right:0;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#BDBDBD;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#F3F3F3;word-wrap:break-word;padding-right:36px}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}.ig_popup,.ig_popup .ig_bg_overlay,.ig_popup .ig_content{background-color:transparent}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}.ig_popup{opacity:1;display:block;z-index:100000;width:58%;margin:32px auto 20px!important;position:relative;font-size:1em}.ig_popup .ig_bg_overlay{width:100%;height:100%;top:0;left:0;margin:0;padding:0;position:absolute;display:none}.ig_popup .ig_headline{text-decoration:none;font-weight:800;font-size:2em;line-height:1.2em}.ig_popup .ig_data{position:relative}.ig_popup .ig_image{margin:0 1em}.ig_popup .ig_message{line-height:1.2em;font-size:1.2em}.ig_popup .ig_close{background-image:url(../../../assets/images/sprite_1.png);background-position:-600px center;background-repeat:no-repeat;height:30px;width:30px;top:-15px;right:-15px;margin:0;cursor:pointer;position:absolute;z-index:20}.ig_popup .ig_close:hover{background-position:-640px center}.ig_popup .ig_button,.ig_popup input[type=submit],.ig_popup input[type=button]{cursor:pointer;display:block;background-image:none;border:none;border-radius:0;box-shadow:none;position:relative}.mfp-wrap .ig_powered_by{position:fixed;bottom:1em;left:1em;font-size:14px;padding:.1em}@media only screen and (min-width:1440px){.ig_popup{max-width:835px}}@media only screen and (max-width:850px){.ig_popup{font-size:14px}.ig_popup .ig_button,.ig_popup input[type=submit],.ig_popup input[type=button]{width:70%!important}}@media only screen and (max-width:644px){.ig_popup{width:75%;font-size:13px}.ig_popup .ig_button,.ig_popup input[type=submit],.ig_popup input[type=button]{width:60%!important}}@media only screen and (max-width:425px){.ig_popup .ig_button,.ig_popup input[type=submit],.ig_popup input[type=button]{width:80%!important}}@media only screen and (max-width:375px){.ig_popup{width:90%}.ig_popup .ig_button,.ig_popup input[type=submit],.ig_popup input[type=button]{width:90%!important}}.ig_popup .ig_form_container{width:30%;float:left}.ig_popup.ig_form_left .ig_data{position:relative}.ig_popup.ig_form_left .ig_data,.ig_popup.ig_form_right .ig_data{width:70%;float:left}.ig_popup.ig_form_right.ig_form_style_4 .ig_close,.ig_popup.ig_form_right.ig_form_style_4 .ig_close:hover{margin:-15px -15px 0 0}@media only screen and (max-width:850px){.ig_popup.ig_form_left .ig_form_container.layout_left,.ig_popup.ig_form_right .ig_form_container.layout_right{display:none}.ig_popup.ig_form_bottom .ig_form_container.layout_bottom,.ig_popup.ig_form_left .ig_form_container.layout_bottom,.ig_popup.ig_form_right .ig_form_container.layout_bottom{display:block;width:100%;font-size:1.3em;height:auto!important}.ig_popup.ig_form_inline .ig_form_container.layout_inline{padding:.6em 0}.ig_popup.ig_form_left .ig_data,.ig_popup.ig_form_right .ig_data{width:100%}.ig_popup .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.5em auto 0}.ig_popup .ig_form_container.layout_bottom .ig_button_label,.ig_popup .ig_form_container.layout_inline .ig_button_label{display:none}.ig_popup .ig_form_container.layout_bottom .ig_button,.ig_popup .ig_form_container.layout_bottom input[type=submit],.ig_popup .ig_form_container.layout_bottom input[type=button],.ig_popup .ig_form_container.layout_inline .ig_button,.ig_popup .ig_form_container.layout_inline input[type=submit],.ig_popup .ig_form_container.layout_inline input[type=button]{width:99%!important;font-size:1em}.ig_popup.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els.ig_form_el_radio,.ig_popup.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els.ig_form_el_radio label,.ig_popup.ig_form_inline .ig_form_container.layout_inline .ig_form_els.ig_form_el_radio,.ig_popup.ig_form_inline .ig_form_container.layout_inline .ig_form_els.ig_form_el_radio label{display:block}.ig_popup.ig_form_style_1 .ig_form_container:before{border-width:0;border-style:solid;border-color:#000!important;opacity:.3;top:0}.ig_popup.ig_form_left.ig_form_style_1 .ig_form_container.layout_bottom:before,.ig_popup.ig_form_right.ig_form_style_1 .ig_form_container.layout_bottom:before{width:100%;border-top-width:.2em}.ig_popup.ig_form_bottom.ig_form_style_1 .ig_form_container.layout_bottom:before{border-top-width:.2em}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:2em;padding-left:1em}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input.ig_button,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els label,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_popup.ig_form_right.ig_form_style_4 .ig_close,.ig_popup.ig_form_right.ig_form_style_4 .ig_close:hover{margin:0}.ig_popup.ig_form_bottom.ig_form_style_4 .ig_message,.ig_popup.ig_form_left.ig_form_style_4 .ig_message,.ig_popup.ig_form_right.ig_form_style_4 .ig_message{padding-bottom:1.5em}}@media only screen and (min-width:645px) and (max-width:850px){.ig_popup.ig_form_bottom .ig_form_container.layout_bottom,.ig_popup.ig_form_left .ig_form_container.layout_bottom,.ig_popup.ig_form_right .ig_form_container.layout_bottom{font-size:1.1em}}.ig_popup.ig_air-mail{position:relative;border-width:8px;border-style:solid;-moz-border-image:-moz-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-webkit-border-image:-webkit-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-o-border-image:-o-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;border-image:repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;background-color:#fdfdfd;color:#707070}.ig_popup.ig_air-mail .ig_headline{padding:.5em;font-size:2.5em;text-align:center;color:#2C4A9D}.ig_popup.ig_air-mail .ig_image{float:right}.ig_popup.ig_air-mail .ig_message{padding:.2em 2em .8em;font-size:1.2em}.ig_popup.ig_air-mail .ig_close{background-position:-520px center;margin:0;top:0;right:0;opacity:.35}.ig_popup.ig_air-mail .ig_close:hover{background-position:-520px center;opacity:.75}.ig_popup.ig_air-mail .ig_button,.ig_popup.ig_air-mail input[type=submit],.ig_popup.ig_air-mail input[type=button]{background:#D82931;color:#FFF;width:50%;border-radius:4px;border:none;font-size:1.5em;text-transform:uppercase;font-weight:600;text-align:center;margin:.8em auto 1.2em;padding:.5em .15em}.ig_popup.ig_air-mail .ig_button:hover,.ig_popup.ig_air-mail input[type=submit]:hover,.ig_popup.ig_air-mail input[type=button]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}.ig_popup.ig_air-mail .ig_button:active,.ig_popup.ig_air-mail input[type=submit]:active,.ig_popup.ig_air-mail input[type=button]:active{box-shadow:none}.ig_popup.ig_form_right.ig_air-mail .ig_form_container.layout_right{padding-top:1.5em}@media only screen and (max-width:850px){.ig_popup.ig_form_right.ig_air-mail .ig_form_container.layout_right{padding-top:1em}}.ig_popup.ig_amaze{border:.3em solid #444;background-color:#444;color:#FFF}.ig_popup.ig_amaze .ig_bg_overlay{display:block;background-image:url(../../../assets/images/popup-amaze-bg.jpg);opacity:.5}.ig_popup.ig_amaze .ig_headline{padding:.5em;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.5);font-size:2em}.ig_popup.ig_amaze .ig_image{float:left}.ig_popup.ig_amaze .ig_message{font-size:1.2em;padding:.5em 1.2em .8em;font-family:Georgia,Times,"Times New Roman",serif;margin:0 2em}.ig_popup.ig_amaze .ig_button,.ig_popup.ig_amaze input[type=submit],.ig_popup.ig_amaze input[type=button]{background:#2ecc70;color:#FFF;font-family:Calibri,Candara,Segoe,"Segoe UI",Optima,Arial,sans-serif;font-size:1.3em;letter-spacing:1px;vertical-align:top;font-weight:700;text-align:center;line-height:1.8em;border-radius:3px;border-bottom:.2em solid rgba(63,63,63,.6);text-shadow:1px 1px 0 rgba(0,0,0,.5);margin:.5em auto 1.2em;width:40%;padding:.3em 1em}.ig_popup.ig_amaze .ig_button:hover,.ig_popup.ig_amaze input[type=submit]:hover,.ig_popup.ig_amaze input[type=button]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}@media only screen and (max-width:850px){.ig_popup.ig_amaze .ig_message{margin:0 1em}}.ig_popup.ig_compel{background:#FFF;color:#707070;border:4px dashed #c0392b}.ig_popup.ig_compel .ig_headline{padding:.5em 1em .5em .5em;font-size:2em;text-shadow:0 1px 0 rgba(0,0,0,.2);margin-bottom:.2em;text-align:center}.ig_popup.ig_compel .ig_image{float:left;padding-right:1em}.ig_popup.ig_compel .ig_message{padding:.5em 1.25em .8em;font-size:1.25em;font-family:"Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;margin:0 .5em .5em}.ig_popup.ig_compel .ig_close{background-position:-520px center;margin:0;top:0;right:0;opacity:.35}.ig_popup.ig_compel .ig_close:hover{background-position:-520px center;opacity:.75}.ig_popup.ig_compel .ig_button,.ig_popup.ig_compel input[type=submit],.ig_popup.ig_compel input[type=button]{background:#e74d3c;color:#FFF;width:50%;border-radius:5px;border-bottom:.18em solid #bf3a2b;font-size:1.2em;text-transform:uppercase;font-weight:600;text-align:center;padding:.8em .15em .62em;margin:.5em auto 1.2em}.ig_popup.ig_compel .ig_button:hover,.ig_popup.ig_compel input[type=submit]:hover,.ig_popup.ig_compel input[type=button]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}@font-face{font-family:'Goudy Bookletter 1911';font-style:normal;font-weight:400;src:local('Goudy Bookletter 1911'),local('GoudyBookletter1911'),url(https://fonts.gstatic.com/s/goudybookletter1911/v6/l5lwlGTN3pEY5Bf-rQEuIAQibyVIKv8boZ0oFv0g-Lo.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}.ig_popup.ig_convert{background-color:#fffdcc;color:#484747;box-shadow:none;width:50%;border-radius:.3em}.ig_popup.ig_convert .ig_headline{font-size:2.5em;padding:.8em 1.2em .3em;text-align:center;font-family:'Goudy Bookletter 1911',serif}.ig_popup.ig_convert .ig_image{float:right}.ig_popup.ig_convert .ig_message{font-size:1.2em;padding:.8em 1.5em;font-family:Calibri,Candara,Segoe,"Segoe UI",Optima,Arial,sans-serif;vertical-align:baseline;text-align:center}.ig_popup.ig_convert .ig_button,.ig_popup.ig_convert input[type=submit],.ig_popup.ig_convert input[type=button]{background:#cb0606;color:#fcf8f8;font-weight:700;text-decoration:none;font-size:1.75em;border:.2em solid rgba(0,0,0,.2)!important;width:60%;font-family:'Goudy Bookletter 1911',serif;border-radius:3em;text-align:center;line-height:1.5em;padding:.3em 1em;margin:.5em auto 1.2em;clear:both}.ig_popup.ig_convert .ig_button:hover,.ig_popup.ig_convert input[type=submit]:hover,.ig_popup.ig_convert input[type=button]:hover{box-shadow:0 0 8px 0 rgba(0,0,0,.4)}.ig_popup.ig_convert .ig_button:active,.ig_popup.ig_convert input[type=submit]:active,.ig_popup.ig_convert input[type=button]:active{box-shadow:none}.ig_popup.ig_convert .ig_close{background-position:0 center;top:6px;right:6px;opacity:.4}.ig_popup.ig_convert .ig_close:hover{background-position:0 center;opacity:.7}.ig_popup.ig_form_right.ig_convert .ig_form_container.layout_right{padding-top:2.2em}@media only screen and (min-width:1440px){.ig_popup.ig_convert{max-width:600px}}@media only screen and (max-width:850px){.ig_popup.ig_convert{width:65%}.ig_popup.ig_form_right.ig_convert .ig_form_container.layout_right{padding-top:1em}}@media only screen and (max-width:644px){.ig_popup.ig_convert{width:75%}}@media only screen and (max-width:375px){.ig_popup.ig_convert{width:90%}}.ig_popup.ig_inspire{background:#FFF;color:#444}.ig_popup.ig_inspire .ig_headline{color:#82AD23;text-align:center;padding:.8em .8em .3em;font-size:2.5em}.ig_popup.ig_inspire .ig_image{float:left}.ig_popup.ig_inspire .ig_message{padding:.8em 2em;font-size:1.25em;text-align:justify}.ig_popup.ig_inspire .ig_button,.ig_popup.ig_inspire input[type=submit],.ig_popup.ig_inspire input[type=button]{background:#82AD23;color:#fff;vertical-align:middle;font-size:2em;font-weight:700;font-style:normal;text-decoration:none;text-align:center;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);opacity:1;width:55%;line-height:1.2em;padding:.5em;margin:.5em auto 1em;border-top:none}.ig_popup.ig_inspire .ig_button:hover,.ig_popup.ig_inspire input[type=submit]:hover,.ig_popup.ig_inspire input[type=button]:hover{border-top:none;box-shadow:0 0 8px 0 rgba(0,0,0,.4)}.ig_popup.ig_inspire .ig_button:active,.ig_popup.ig_inspire input[type=submit]:active,.ig_popup.ig_inspire input[type=button]:active{border-top:none;font-weight:400;box-shadow:none}.ig_popup.ig_inspire .ig_close{background-position:-763px center;margin:0;top:0;right:0;opacity:.4;height:24px;width:24px;background-color:rgba(0,0,0,.45)}.ig_popup.ig_inspire .ig_close:hover{opacity:.7}.ig_popup.ig_form_right.ig_inspire .ig_form_container.layout_right{padding-top:2.5em}@media only screen and (max-width:850px){.ig_popup.ig_form_right.ig_inspire .ig_form_container.layout_right{padding-top:1em}}.ig_popup.ig_persuade{background:#ef504e;color:#FFF;border:.4em dashed #FFF;padding-bottom:.1em}.ig_popup.ig_persuade .ig_headline{letter-spacing:0;font-size:2.8em;text-align:center;-webkit-font-smoothing:antialiased;line-height:1em;padding:.7em .7em .5em}.ig_popup.ig_persuade .ig_image{float:left}.ig_popup.ig_persuade .ig_message{padding:.5em 1.5em .8em;font-size:1.5em;font-weight:300;text-align:center;-webkit-font-smoothing:antialiased}.ig_popup.ig_persuade .ig_button,.ig_popup.ig_persuade input[type=submit],.ig_popup.ig_persuade input[type=button]{background:#424242;color:#FFF;text-decoration:none;text-align:center;font-size:2em;font-weight:400;line-height:1.2em;width:55%;margin:.5em auto 1em;padding:.4em;border:none;border-radius:.4em;border-bottom:.28em solid #333;border-bottom:.2em solid rgba(0,0,0,.3)!important;clear:both;box-shadow:0 .3em 1.5em rgba(0,0,0,.6)!important}.ig_popup.ig_persuade .ig_button:hover,.ig_popup.ig_persuade input[type=submit]:hover,.ig_popup.ig_persuade input[type=button]:hover{box-shadow:0 .1em .1em rgba(0,0,0,.3)!important}.ig_popup.ig_persuade .ig_button:active,.ig_popup.ig_persuade input[type=submit]:active,.ig_popup.ig_persuade input[type=button]:active{box-shadow:none!important}
{message-types → lite/message-types}/toast/default.css RENAMED
File without changes
{message-types → lite/message-types}/toast/main.js RENAMED
File without changes
{message-types → lite/message-types}/toast/main.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Toast' ) ) return;
4
 
5
  /**
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
  if ( class_exists( 'Icegram_Message_Type_Toast' ) ) return;
4
 
5
  /**
{message-types → lite/message-types}/toast/themes/announce.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/announce.png RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/balance.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/balance.png RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/burnt.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/burnt.png RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/clear.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/clear.png RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/default.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/night-glow.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/night-glow.png RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/stand-out.css RENAMED
File without changes
{message-types → lite/message-types}/toast/themes/stand-out.png RENAMED
File without changes
lite/message-types/toast/themes/toast.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .ig_toast.ig_container{display:none}.ig_toast .ig_wrapper{overflow:hidden;padding:5px 5px 5px 50px;position:relative;min-height:34px}.ig_toast .ig_content{overflow:hidden}.ig_toast .ig_headline{display:inline-block;margin:0;text-align:left;position:relative}.ig_toast .ig_icon{overflow:hidden;display:block;max-height:32px;max-width:32px;left:10px;top:10px;position:absolute}.ig_toast .ig_icon img{max-width:32px;max-height:32px;margin:0;padding:0}.ig_toast .ig_message{margin:-3px 0 0 -2px}.ig_toast .ig_message p{margin:.15em}.ig_toast_block{position:fixed;list-style:none;z-index:999999;-ms-word-wrap:break-word;word-wrap:break-word;padding:0;margin:5px}.ig_toast_block *{box-sizing:content-box;text-transform:none}.ig_toast_block .ig_container{margin:10px 0}.ig_toast_block .ig_headline{font-weight:700;clear:none;padding:0}.ig_toast_block .ig_message{font-size:12px;text-align:left;line-height:15px}.ig_toast.ig_announce.ig_container{border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),inset 0 -1px 0 rgba(255,255,255,.15),0 0 6px rgba(0,0,0,.08),0 0 0 1px rgba(35,47,64,.2);background-image:-webkit-linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-image:-moz-linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-image:linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-color:rgba(255,255,105,.95)!important;color:rgba(67,76,89,.9)!important;text-shadow:0 1px 0 rgba(255,255,255,.85)}.ig_toast.ig_announce.ig_container:hover{border-color:rgba(0,0,0,1)}.ig_toast.ig_announce .ig_wrapper{border:none;border-radius:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}.ig_toast.ig_announce .ig_content{border:none;color:rgba(67,76,89,.9)!important;background-color:transparent!important;border-radius:4px;box-shadow:inset 0 -3px 2px rgba(58,71,89,.04)}.ig_toast.ig_announce .ig_headline{color:rgba(67,76,89,.9)}.ig_toast.ig_balance.ig_container{border:1px solid #777;color:#141414;text-shadow:0 1px 0 rgba(255,255,255,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(204,204,204,.75)),to(rgba(240,240,240,1)),color-stop(.4,rgba(139,139,139,.5)))!important;background-image:linear-gradient(to bottom,rgba(204,204,204,.75) 0,rgba(139,139,139,.5) 40%,rgba(240,240,240,1) 100%)!important;background-color:rgba(204,204,204,.8)!important;-webkit-font-smoothing:antialiased}.ig_toast.ig_balance .ig_content{background:0 0!important}.ig_toast.ig_balance .ig_headline{border-bottom:1px solid #777;width:100%}.ig_toast.ig_balance .ig_message{margin-top:5px}.ig_toast.ig_burnt .ig_content,.ig_toast.ig_burnt.ig_container{background-color:transparent!important}.ig_toast.ig_burnt.ig_container{min-height:64px;position:relative;box-sizing:border-box}.ig_toast.ig_burnt .ig_wrapper{padding:5px 5px 5px 65px}.ig_toast.ig_burnt .ig_base{position:absolute;top:0;left:0;bottom:0;right:0;background-color:transparent;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.8),rgba(0,0,0,.88));background-image:-moz-linear-gradient(top,rgba(0,0,0,.8),rgba(0,0,0,.88));background-image:linear-gradient(to bottom,rgba(0,0,0,.8),rgba(0,0,0,.88));border:1px solid #000;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 0 1px rgba(255,255,255,.1);border-radius:4px;overflow:hidden;z-index:0}.ig_toast.ig_burnt .ig_line{width:1px;height:27px;position:absolute;top:1px;left:58px;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.3),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.3),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,0))}.ig_toast.ig_burnt .ig_line:after{content:"";display:block;width:1px;height:26px;position:absolute;top:1px;left:-1px;background-image:-webkit-linear-gradient(top,rgba(255,255,255,.15),rgba(255,255,255,0));background-image:-moz-linear-gradient(top,rgba(255,255,255,.15),rgba(255,255,255,0));background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0))}.ig_toast.ig_burnt .ig_headline{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.5);z-index:1}.ig_toast.ig_burnt .ig_icon{max-height:42px;max-width:42px;left:8px;top:5px}.ig_toast.ig_burnt .ig_icon img{width:40px;height:40px;border-radius:3px}.ig_toast.ig_burnt .ig_message{color:rgba(255,255,255,.83);text-shadow:0 -1px 0 rgba(0,0,0,.7);position:relative}.ig_toast.ig_clear.ig_container{border:3px solid rgba(0,0,0,.4);border-radius:.5em;background:#fff!important}.ig_toast.ig_clear .ig_content{background-color:transparent!important}.ig_toast.ig_clear .ig_headline{color:#222;letter-spacing:.7pt;line-height:16px;text-shadow:0 1px 0 rgba(255,255,255,.6)}.ig_toast.ig_clear .ig_message{color:#444;text-align:left;text-shadow:0 1px 0 rgba(255,255,255,.6);line-height:15px}.ig_toast.ig_night-glow.ig_container{border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;background-color:transparent!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.83)),to(rgba(51,51,51,.73)),color-stop(.5,rgba(0,0,0,.83)))!important;background:-moz-linear-gradient(left,rgba(0,0,0,.83) 0,rgba(0,0,0,.83) 50%,rgba(51,51,51,.73) 100%)!important;background:linear-gradient(to bottom,rgba(0,0,0,.83) 0,rgba(0,0,0,.83) 50%,rgba(51,51,51,.73) 100%)!important;border:1px solid rgba(0,0,0,.6);color:rgba(255,255,255,.9);text-shadow:0 -1px 0 #000}.ig_toast.ig_night-glow .ig_wrapper{border-radius:3px;background-image:url(../../../assets/images/toast-glow.png);background-repeat:no-repeat;border-bottom:1px solid rgba(255,255,255,.05)}.ig_toast.ig_night-glow .ig_content{padding-left:8px;border-radius:3px;border-left:1px solid rgba(255,255,255,.1);background-color:transparent!important}.ig_toast.ig_stand-out .ig_wrapper{padding:5px 50px 5px 10px}.ig_toast.ig_stand-out.ig_container{background-color:#1f1f1f!important;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(0,0,0,.1)),color-stop(1,rgba(255,255,255,.1))),url(../../../assets/images/stand-out.png)!important;background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.1) 0,rgba(255,255,255,.1) 100%),url(../../../assets/images/stand-out.png)!important;background-image:linear-gradient(to top,rgba(0,0,0,.1) 0,rgba(255,255,255,.1) 100%),url(../../../assets/images/stand-out.png)!important;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 -1px 0 rgba(255,255,255,.1) inset,0 1px 4px rgba(0,0,0,.7);border-radius:5px;color:rgba(255,255,255,.7);text-shadow:0 1px 0 rgba(0,0,0,.75);border:1px solid #111}.ig_toast.ig_stand-out .ig_content{background-color:transparent!important}.ig_toast.ig_stand-out .ig_icon{right:10px;left:auto;border-radius:3px}.ig_toast.ig_stand-out .ig_headline,.ig_toast.ig_stand-out .ig_message{line-height:15px}
settings.php → lite/settings.php RENAMED
@@ -1,5 +1,5 @@
1
  <?php
2
- if ( !defined( 'ABSPATH' ) ) exit;
3
 
4
  if( isset( $_POST['submit'] ) ) {
5
  if( isset( $_POST['icegram_share_love'] ) ) {
1
  <?php
2
+ if ( ! defined( 'ABSPATH' ) ) exit;
3
 
4
  if( isset( $_POST['submit'] ) ) {
5
  if( isset( $_POST['icegram_share_love'] ) ) {
{updates → lite/updates}/icegram-update-1.2.php RENAMED
File without changes
message-types/action-bar/themes/action-bar.min.css DELETED
@@ -1 +0,0 @@
1
- #ig_body_pushdown{display:none;position:relative;height:0;visibility:hidden;width:100%}.ig_action_bar,.ig_action_bar div{box-sizing:border-box}.ig_action_bar.ig_container{z-index:9999999;position:fixed;width:100%;padding:0;margin:0;display:none;left:0;line-height:1.5}.ig_action_bar.ig_container.ig_top{top:0}.ig_action_bar.ig_container.ig_bottom{position:fixed;bottom:0}.ig_action_bar.ig_hide.ig_bottom{-ms-transform:translateY(100%);-webkit-transform:translateY(100%);transform:translateY(100%)}.ig_action_bar.ig_hide.ig_top{-ms-transform:translateY(-100%);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.ig_action_bar .ig_content{float:left;text-align:center;width:100%;padding:0;padding-right:2.5em}.ig_action_bar .ig_data{text-align:center;padding:.3em 1em .3em .7em;display:inline-block;line-height:1.5;vertical-align:middle;margin:0}.ig_action_bar.ig_has_pwby .ig_data{padding-left:2.5em}.ig_action_bar .ig_headline{display:inline-block;font-size:1em;line-height:1.25;font-weight:700;padding:0}.ig_action_bar .ig_message{display:inline-block;font-size:.85em;line-height:1.2;padding:0;padding-top:.2em}.ig_action_bar .ig_button,.ig_action_bar input[type=button],.ig_action_bar input[type=submit]{border:none;color:#fff;cursor:pointer;display:inline-block;font-size:1em;font-weight:700;letter-spacing:.05em;vertical-align:middle;text-align:center;padding:.3em 1.5em;margin:.5em 0 .5em 0;float:none;background-image:none}.ig_action_bar .ig_powered_by{vertical-align:top;opacity:.5;display:inline-block;float:left;z-index:22;position:absolute;margin-top:0}.ig_action_bar .ig_powered_by img{width:1.5em;margin:.3em 0 0 .5em}.ig_action_bar .ig_close{z-index:1000000;cursor:pointer;position:absolute;right:0;width:36px;height:36px;box-sizing:border-box}.ig_action_bar .ig_close>span{background-image:url(../../../assets/images/sprite_1.png);background-repeat:no-repeat;width:30px;height:100%;opacity:.7;display:inline-block}.ig_action_bar .ig_close:hover>span{opacity:1}.ig_action_bar.ig_show .ig_close{background-color:transparent!important}.ig_action_bar.ig_hide .ig_close{position:fixed;border:none;right:.2em}.ig_action_bar.ig_hide.ig_top .ig_close{top:100%}.ig_action_bar.ig_hide.ig_bottom .ig_close{bottom:100%}.ig_action_bar.ig_hide.ig_bottom .ig_close>span,.ig_action_bar.ig_show.ig_top .ig_close>span{background-position:-80px center}.ig_action_bar.ig_hide.ig_top .ig_close>span,.ig_action_bar.ig_show.ig_bottom .ig_close>span{background-position:-120px center}@media only screen and (max-width:768px){.ig_action_bar .ig_content{padding-right:0}.ig_action_bar .ig_data{width:100%;max-width:100%!important;padding-right:2.5em}.ig_action_bar .ig_button,.ig_action_bar input[type=button],.ig_action_bar input[type=submit]{max-width:100%;margin:.3em 0}.ig_action_bar.ig_show .ig_close{top:0}.ig_action_bar{font-size:18px}.ig_action_bar .ig_form_container .ig_embed_form_container{width:80%;margin:0 auto;font-size:.85em}}.ig_action_bar .ig_form_container{width:20%;float:left}.ig_action_bar.ig_form_bottom .ig_content,.ig_action_bar.ig_form_inline .ig_content,.ig_action_bar.ig_form_left .ig_content,.ig_action_bar.ig_form_right .ig_content{padding:0}.ig_action_bar.ig_form_left .ig_data,.ig_action_bar.ig_form_right .ig_data{width:79%;max-width:79%!important;float:left}.ig_action_bar.ig_form_left.ig_has_pwby .ig_data{width:79%;max-width:79%!important;padding-left:1em}.ig_action_bar.ig_form_bottom .ig_data{float:left}.ig_action_bar.ig_form_bottom .ig_data,.ig_action_bar.ig_form_inline .ig_data{width:100%;max-width:100%!important;padding-right:2.5em}.ig_action_bar.ig_form_right .ig_form_container.layout_right{float:right;padding-right:2.5em}.ig_action_bar.ig_form_left.ig_has_pwby .ig_form_container.layout_left{padding-left:2.5em}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom{padding-right:2.5em}.ig_action_bar.ig_form_bottom.ig_has_pwby .ig_form_container.layout_bottom{padding-left:2.5em}.ig_action_bar.ig_form_inline .ig_form_container.layout_inline{padding-right:0}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline .ig_form_container.layout_inline .ig_form_header{text-align:center}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_data{padding-left:2em}.ig_action_bar.ig_form_right.ig_form_style_4 .ig_data{padding-right:2em}.ig_action_bar.ig_form_bottom.ig_form_style_4 .ig_form_container.layout_bottom{padding-top:0;padding-bottom:0;margin-top:1em}.ig_action_bar.ig_form_style_4.ig_hide .ig_form_container:before{display:none}@media only screen and (max-width:768px){.ig_action_bar.ig_form_left .ig_form_container.layout_left,.ig_action_bar.ig_form_right .ig_form_container.layout_right{display:none}.ig_action_bar.ig_form_bottom .ig_form_container.layout_bottom,.ig_action_bar.ig_form_left .ig_form_container.layout_bottom,.ig_action_bar.ig_form_right .ig_form_container.layout_bottom{display:block;width:100%;padding:.7em 1em;height:auto!important}.ig_action_bar.ig_form_bottom.ig_has_pwby .ig_form_container.layout_bottom,.ig_action_bar.ig_form_left.ig_has_pwby .ig_form_container.layout_bottom,.ig_action_bar.ig_form_right.ig_has_pwby .ig_form_container.layout_bottom{padding:.7em 1em}.ig_action_bar.ig_form_bottom .ig_data,.ig_action_bar.ig_form_left .ig_data,.ig_action_bar.ig_form_right .ig_data{width:100%;max-width:100%!important;padding-right:2.3em}.ig_action_bar.ig_form_left.ig_has_pwby .ig_data,.ig_action_bar.ig_form_right.ig_has_pwby .ig_data{padding-left:2.3em}.ig_action_bar .ig_form_container .ig_embed_form_container{width:60%;margin:0 auto;font-size:.85em}.ig_action_bar .ig_form_container .ig_embed_form_container.ig_half{width:100%}.ig_action_bar .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_action_bar .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;display:inline-block;float:left;margin:.25em auto}.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_form_els{width:49%}.ig_action_bar .ig_form_container.layout_bottom .ig_full .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_quater .ig_button_label,.ig_action_bar .ig_form_container.layout_bottom .ig_third .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_full .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_quater .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_third .ig_button_label{display:none}.ig_action_bar .ig_form_container.layout_bottom .ig_half .ig_button_label,.ig_action_bar .ig_form_container.layout_inline .ig_half .ig_button_label{display:block;visibility:hidden;opacity:0}.ig_action_bar .ig_form_container.layout_bottom .ig_button,.ig_action_bar .ig_form_container.layout_bottom input[type=button],.ig_action_bar .ig_form_container.layout_bottom input[type=submit],.ig_action_bar .ig_form_container.layout_inline .ig_button,.ig_action_bar .ig_form_container.layout_inline input[type=button],.ig_action_bar .ig_form_container.layout_inline input[type=submit]{margin:0 auto}.ig_action_bar.ig_form_left.ig_form_style_1 .ig_form_container.layout_bottom:before,.ig_action_bar.ig_form_right.ig_form_style_1 .ig_form_container.layout_bottom:before{width:100%;border-top-width:.2em}.ig_action_bar.ig_form_bottom.ig_form_style_1 .ig_form_container.layout_bottom:before{border-top-width:.2em}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_form_els{margin-right:0;margin-left:0}.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:2em;padding-left:1em;height:2.25em;line-height:2.2em}.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input.ig_button,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_action_bar.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_first input{border-radius:2em 0 0 2em;padding-left:1em;border-right-width:0}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_first label{padding-left:1em}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els.ig_form_els_last input{border-radius:0 2em 2em 0;border-left-width:0}.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els .ig_button,.ig_action_bar.ig_form_style_2 .ig_form_container .ig_half .ig_form_els input{width:100%}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_data{padding-left:1em}.ig_action_bar.ig_form_right.ig_form_style_4 .ig_data{padding-right:2.5em}.ig_action_bar.ig_form_left.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_right.ig_form_style_4 .ig_form_container{margin-top:1em}.ig_action_bar.ig_form_bottom.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_left.ig_form_style_4 .ig_form_container,.ig_action_bar.ig_form_right.ig_form_style_4 .ig_form_container{padding-top:0;padding-bottom:0}}@media only screen and (max-width:644px){.ig_action_bar .ig_form_container .ig_embed_form_container,.ig_action_bar.ig_form_inline .ig_form_container .ig_embed_form_container{width:70%}}@media only screen and (max-width:375px){.ig_action_bar.ig_form_inline .ig_form_container .ig_embed_form_container{width:100%}}.ig_action_bar.ig_air-mail.ig_container{border-style:solid;color:#707070;-moz-border-image:-moz-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-webkit-border-image:-webkit-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-o-border-image:-o-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;border-image:repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;background-color:#fdfdfd}.ig_action_bar.ig_air-mail.ig_container.ig_top{border-width:0 0 8px 0}.ig_action_bar.ig_air-mail.ig_container.ig_bottom{border-width:8px 0 0 0}.ig_action_bar.ig_air-mail .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_air-mail .ig_headline{color:#2c4a9d}.ig_action_bar.ig_air-mail .ig_headline,.ig_action_bar.ig_air-mail .ig_message{display:block}.ig_action_bar.ig_air-mail .ig_button,.ig_action_bar.ig_air-mail input[type=button],.ig_action_bar.ig_air-mail input[type=submit]{float:right;background:#d82931;text-transform:uppercase;font-family:"Open Sans",sans-serif;font-weight:600;border-radius:4px;border:none}.ig_action_bar.ig_air-mail .ig_button:hover,.ig_action_bar.ig_air-mail input[type=button]:hover,.ig_action_bar.ig_air-mail input[type=submit]:hover{box-shadow:0 0 4px 0 rgba(0,0,0,.5)}.ig_action_bar.ig_air-mail .ig_button:active,.ig_action_bar.ig_air-mail input[type=button]:active,.ig_action_bar.ig_air-mail input[type=submit]:active{box-shadow:none}.ig_action_bar.ig_air-mail.ig_show.ig_bottom .ig_close>span,.ig_action_bar.ig_air-mail.ig_show.ig_top .ig_close>span{background-position:-520px center;opacity:.4}.ig_action_bar.ig_air-mail.ig_show.ig_bottom .ig_close:hover>span,.ig_action_bar.ig_air-mail.ig_show.ig_top .ig_close:hover>span{background-position:-520px center;opacity:.8}.ig_action_bar.ig_air-mail.ig_hide .ig_close{display:none}.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_air-mail .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_air-mail .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_air-mail .ig_button,.ig_action_bar.ig_air-mail input[type=button],.ig_action_bar.ig_air-mail input[type=submit]{float:left;margin-left:.7em}.ig_action_bar.ig_air-mail.ig_has_pwby .ig_button,.ig_action_bar.ig_air-mail.ig_has_pwby input[type=button],.ig_action_bar.ig_air-mail.ig_has_pwby input[type=submit]{margin-left:2.5em}}.ig_action_bar.ig_bold.ig_container{background-color:#bc0933;color:#fff;border-bottom:solid .2em #f3eeee;box-shadow:0 0 .6em 0 rgba(0,0,0,.4)}.ig_action_bar.ig_bold.ig_container.ig_bottom{border-bottom:none;border-top:solid .2em #f3eeee}.ig_action_bar.ig_bold .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_bold .ig_headline,.ig_action_bar.ig_bold .ig_message{display:block}.ig_action_bar.ig_bold .ig_button,.ig_action_bar.ig_bold input[type=button],.ig_action_bar.ig_bold input[type=submit]{float:right;background:#00bb58;border-radius:.2em;box-shadow:inset 0 -3px 1px rgba(0,0,0,.35),0 2px 2px rgba(0,0,0,.25);text-shadow:0 0 1px rgba(0,0,0,.1)}.ig_action_bar.ig_bold .ig_button:active,.ig_action_bar.ig_bold input[type=button]:active,.ig_action_bar.ig_bold input[type=submit]:active{position:relative;top:3px;box-shadow:none}.ig_action_bar.ig_bold.ig_hide .ig_close{background-color:#bc0933;border:.2em solid #fff;border-bottom-width:0;box-shadow:0 0 .3em rgba(0,0,0,.35);border-radius:.3em .3em 0 0}.ig_action_bar.ig_bold.ig_hide.ig_top .ig_close{margin-top:.15em;border-bottom-width:.2em;border-top-width:0;border-radius:0 0 .3em .3em}.ig_action_bar.ig_bold.ig_hide.ig_bottom .ig_close{margin-bottom:.15em}.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_bold .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_bold .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_bold .ig_button,.ig_action_bar.ig_bold input[type=button],.ig_action_bar.ig_bold input[type=submit]{float:left;margin:.3em 0 .3em .7em}.ig_action_bar.ig_bold.ig_has_pwby .ig_button,.ig_action_bar.ig_bold.ig_has_pwby input[type=button],.ig_action_bar.ig_bold.ig_has_pwby input[type=submit]{margin-left:2.5em}}.ig_action_bar.ig_hello.ig_container{background-color:#eb5b31;color:#fff;line-height:1.5}.ig_action_bar.ig_hello.ig_container{border-bottom:.2em solid #fff;box-shadow:0 0 .6em 0 rgba(0,0,0,.4)}.ig_action_bar.ig_hello.ig_container.ig_bottom{border-bottom:none;border-top:.2em solid #fff}.ig_action_bar.ig_hello .ig_headline{font-weight:700;margin-right:.5em}.ig_action_bar.ig_hello .ig_message{margin-right:.5em}.ig_action_bar.ig_hello .ig_button,.ig_action_bar.ig_hello input[type=button],.ig_action_bar.ig_hello input[type=submit]{background-color:#4a4844;background-image:linear-gradient(top,transparent 0,rgba(51,51,51,.4) 100%);box-shadow:1px 1px 3px rgba(0,0,0,.28);font-weight:400;border-radius:.25em;float:none;padding:.2em 1.3em}.ig_action_bar.ig_hello .ig_button:hover,.ig_action_bar.ig_hello input[type=button]:hover,.ig_action_bar.ig_hello input[type=submit]:hover{opacity:.8}.ig_action_bar.ig_hello.ig_hide .ig_close{background-color:#eb5b31;border:.2em solid #fff;border-bottom-width:0;border-radius:.3em .3em 0 0;box-shadow:0 0 .3em rgba(0,0,0,.35)}.ig_action_bar.ig_hello.ig_hide.ig_top .ig_close{margin-top:.15em;border-bottom-width:.2em;border-top-width:0;border-radius:0 0 .3em .3em}.ig_action_bar.ig_hello.ig_hide.ig_bottom .ig_close{margin-bottom:.15em}.ig_action_bar.ig_form_inline.ig_hello .ig_form_container.layout_inline{padding:.2em}.ig_action_bar.ig_form_inline.ig_hello .ig_headline{vertical-align:middle;margin-right:.5em}.ig_action_bar.ig_form_inline.ig_hello .ig_message{vertical-align:middle}.ig_action_bar.ig_solid.ig_container{background-color:#4e3363;color:#fff}.ig_action_bar.ig_solid .ig_data{max-width:75%;float:left;text-align:left}.ig_action_bar.ig_solid .ig_headline,.ig_action_bar.ig_solid .ig_message{display:block}.ig_action_bar.ig_solid .ig_button,.ig_action_bar.ig_solid input[type=button],.ig_action_bar.ig_solid input[type=submit]{background:#008010;float:right;border-radius:.1em}.ig_action_bar.ig_solid .ig_button:hover,.ig_action_bar.ig_solid input[type=button]:hover,.ig_action_bar.ig_solid input[type=submit]:hover{box-shadow:inset 0 -4em 0 rgba(255,255,255,.15)}.ig_action_bar.ig_solid.ig_hide .ig_close{background-color:#4e3363}.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_embed_form_container,.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_form_footer,.ig_action_bar.ig_form_bottom.ig_solid .ig_form_container.layout_bottom .ig_form_header,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_embed_form_container,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_form_footer,.ig_action_bar.ig_form_inline.ig_solid .ig_form_container.layout_inline .ig_form_header{text-align:left}@media only screen and (max-width:768px){.ig_action_bar.ig_solid .ig_button,.ig_action_bar.ig_solid input[type=button],.ig_action_bar.ig_solid input[type=submit]{float:left;margin:.3em 0 .3em .7em}.ig_action_bar.ig_solid.ig_has_pwby .ig_button,.ig_action_bar.ig_solid.ig_has_pwby input[type=button],.ig_action_bar.ig_solid.ig_has_pwby input[type=submit]{margin-left:2.5em}}
 
message-types/messenger/themes/messenger.min.css DELETED
@@ -1 +0,0 @@
1
- .ig_messenger.ig_container{display:none;position:fixed;cursor:pointer;background-color:transparent!important;z-index:100000;margin:0;padding:0;font-family:"Lucida Grande",Arial,sans-serif;font-size:16px;overflow:hidden;text-align:left;bottom:.2em}.ig_messenger.ig_container,.ig_messenger.ig_container div{box-sizing:border-box}.ig_messenger.ig_container.ig_left{left:.2em}.ig_messenger.ig_container.ig_right{right:.2em}.ig_messenger .ig_content,.ig_messenger .ig_data{background:0 0!important;position:relative}.ig_messenger .ig_close:after,.ig_messenger .ig_close:before,.ig_messenger .ig_content:before,.ig_messenger .ig_data:after,.ig_messenger .ig_footer:after,.ig_messenger .ig_headline:after,.ig_messenger .ig_headline:before,.ig_messenger .ig_message:after,.ig_messenger .ig_message:before{content:'';position:absolute;display:none;padding:0;width:100%;z-index:10;background-position:0 0;background-repeat:no-repeat;box-sizing:border-box}.ig_messenger .ig_headline{display:block!important;font-weight:700;text-decoration:none;overflow:hidden;white-space:nowrap;-ms-text-overflow:ellipsis;text-overflow:ellipsis}.ig_messenger .ig_headline:after{left:0}.ig_messenger .ig_body{overflow-x:hidden;display:block;border-bottom:none;-ms-text-overflow:ellipsis;text-overflow:ellipsis;z-index:9}.ig_messenger .ig_icon{height:2.5em;width:2.5em;position:absolute}.ig_messenger.ig_no_icon .ig_icon{display:none}.ig_messenger .ig_message{text-align:left;word-wrap:break-word}.ig_messenger .ig_message p{margin-bottom:.25em}.ig_messenger .ig_footer{display:none}.ig_messenger .ig_powered_by{font-size:.62em;z-index:10;position:relative;text-align:right}.ig_messenger .ig_button,.ig_messenger input[type=button],.ig_messenger input[type=submit]{border-bottom:none;cursor:pointer}.ig_messenger .ig_button:active,.ig_messenger input[type=button]:active,.ig_messenger input[type=submit]:active{border-top:none}.ig_messenger .ig_close{position:absolute;z-index:10;height:25px;width:25px}.ig_messenger .ig_close:after{top:6px;left:6px;background-image:url(../../../assets/images/clear-header.png);background-repeat:no-repeat;background-position:0 -195px;display:block;height:13px;width:13px}.ig_messenger.ig_form_bottom .ig_form_container.layout_bottom,.ig_messenger.ig_form_left .ig_form_container.layout_left,.ig_messenger.ig_form_right .ig_form_container.layout_right{display:none}.ig_messenger.ig_form_inline .ig_form_container.layout_inline{float:left;padding:.5em 0}.ig_messenger.ig_form_inline .ig_message p{margin-bottom:0}.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.3em auto}.ig_messenger.ig_form_inline .ig_form_container.layout_inline .ig_button_label{display:none}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{padding-left:1em;border-width:2px;border-radius:2em}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_messenger.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_messenger.ig_canvas.ig_container{max-width:33%}.ig_messenger.ig_canvas .ig_content{border:1px solid #bfbfbf;margin:.6em .6em .1em .6em;padding:.6em;overflow:hidden;box-shadow:0 .15em .35em 0 rgba(0,0,0,.13);background-color:#fff!important}.ig_messenger.ig_canvas .ig_headline{color:#111;width:100%;font-size:1.5em;line-height:1em;padding:0 1em .1em .2em}.ig_messenger.ig_canvas .ig_body{max-height:21em;overflow-y:auto;padding:0 .5em 0 .5em;margin-top:.5em;line-height:1.3em}.ig_messenger.ig_canvas .ig_icon{float:right;position:relative;border-radius:5%;max-width:6em;margin:.3em;height:auto!important;width:auto!important}.ig_messenger.ig_canvas .ig_message{color:#444;display:inline}.ig_messenger.ig_canvas .ig_close{right:0;top:.5em}.ig_messenger.ig_canvas .ig_powered_by{bottom:0;padding-left:1em;text-align:left}@media only screen and (max-width:850px){.ig_messenger.ig_canvas.ig_container{max-width:50%}}@media only screen and (max-width:644px){.ig_messenger.ig_canvas.ig_container{max-width:70%}}@media only screen and (max-width:415px){.ig_messenger.ig_canvas.ig_container{max-width:90%}}.ig_messenger.ig_clear.ig_container{font-size:13px;width:19.25em;height:20.75em;border-radius:.23em .23em 0 0;border:1px solid #bfbfbf}.ig_messenger.ig_clear .ig_headline:after,.ig_messenger.ig_clear .ig_headline:before{background-size:cover}.ig_messenger.ig_clear .ig_headline:before{display:block;background-image:url(../../../assets/images/clear-header.png);top:.6em;left:.6em;height:1.25em;width:1.25em}.ig_messenger.ig_clear .ig_headline{background:#f9f9f9;color:#333;width:100%;height:2.38em;line-height:2.58em;font-size:1em;padding:0 2.9em 0 2em;border-bottom:1px solid #bfbfbf;box-shadow:inset 0 0 .25em 0 #fff}.ig_messenger.ig_clear .ig_headline:after{display:block;height:2.12em;top:2.38em;background-image:url(../../../assets/images/clear-option.png)}.ig_messenger.ig_clear .ig_body{background:#fff;color:#222;font-size:1em;font-family:Arial,Helvetica,sans-serif;position:relative;height:13.35em;top:2.12em;border-top:1px solid #bfbfbf;right:0;line-height:1.25em;padding:.5em .9em 0 .5em;box-shadow:inset 0 0 .25em 0 #fff}.ig_messenger.ig_clear .ig_message{color:#3e454c;width:100%;padding-left:3em}.ig_messenger.ig_clear.ig_no_icon .ig_message{padding-left:.5em}.ig_messenger.ig_clear .ig_footer{display:block;background-color:inherit;height:2.76em;margin-top:2.12em;border-top:1px solid #bfbfbf;background-image:url(../../../assets/images/clear-footer.png);background-size:cover}.ig_messenger.ig_clear .ig_close{top:.3em;right:0}.ig_messenger.ig_clear .ig_close:before{display:block;background-image:url(../../../assets/images/clear-header.png);background-position:0 -181px;top:6px;height:13px;width:13px;padding:0;right:1.7em}.ig_messenger.ig_clear .ig_powered_by{bottom:1.8em;padding-right:3em;font-size:.8em}@media only screen and (max-width:992px){.ig_messenger.ig_clear.ig_container{font-size:14px}}.ig_messenger.ig_social.ig_container{font-size:11px;width:22.8em;height:23.6em}.ig_messenger.ig_social .ig_headline{background-color:#627bae;color:#fff;width:100%;height:2.45em;line-height:2.65em;font-size:1em;padding:0 3.4em 0 .7em;border:1px solid rgba(0,39,121,.3);border-bottom:none}.ig_messenger.ig_social .ig_body{display:block;background-color:#edeff4;color:#3e454c;font-family:"lucida grande",tahoma,verdana,arial,sans-serif;position:relative;height:18em;border:1px solid rgba(0,0,0,.3);border-top:none;border-bottom:none;right:0;padding:5px .5em 0;padding-left:3.8em}.ig_messenger.ig_social.ig_no_icon .ig_body{padding-left:.5em;line-height:1.37em}.ig_messenger.ig_social .ig_message:before{display:block;width:0;top:11px;margin:0 0 0 -18px;border:8px solid #dfdfdf;border-color:transparent #dfdfdf transparent transparent;z-index:-1}.ig_messenger.ig_social .ig_message:after{display:block;width:0;top:13px;margin:0 0 0 -15px;border:6px solid #fafafa;border-color:transparent #fafafa transparent transparent}.ig_messenger.ig_social .ig_message{background-color:#f7f7f7;color:#3e454c;background-image:-webkit-linear-gradient(bottom,#f2f2f2,#fff);width:90%;font-size:1.09em;padding:.3em;border:1px solid rgba(0,0,0,.18);border-bottom-color:rgba(0,0,0,.29);border-radius:.4em;box-shadow:0 1px 0 #dce0e6}.ig_messenger.ig_social.ig_no_icon .ig_message{margin:0 auto .5em auto}.ig_messenger.ig_social.ig_no_icon .ig_message:after,.ig_messenger.ig_social.ig_no_icon .ig_message:before{display:none}.ig_messenger.ig_social .ig_icon{margin-left:-3.3em;height:2.54em;width:2.54em}.ig_messenger.ig_social .ig_footer{display:block;height:3em;background-color:#fff;border:1px solid rgba(0,0,0,.3)}.ig_messenger.ig_social .ig_footer:after{display:block;background-image:url(../../../assets/images/social-img.png);background-position:-269px -137px;width:22px;height:18px;margin-top:.8em;right:.3em}.ig_messenger.ig_social .ig_close{background-image:url(../../../assets/images/social-img.png);background-position:-137px -332px;top:.25em;right:.15em;height:25px;width:21px}.ig_messenger.ig_social .ig_close:before{display:block;background-image:url(../../../assets/images/social-img.png);background-position:-92px -332px;height:100%;width:100%;padding:0;right:1.5em}.ig_messenger.ig_social .ig_close:after{display:none}.ig_messenger.ig_social .ig_powered_by{bottom:1.8em;padding-right:3em;font-size:.9em}@media only screen and (max-width:992px){.ig_messenger.ig_social.ig_container{font-size:13px}}@media only screen and (max-width:320px){.ig_messenger.ig_social.ig_container{font-size:12px;width:20em}}.ig_messenger.ig_talk.ig_container{font-size:12px;width:17.5em;height:21em;border:.1em solid #bfbfbf;border-radius:.5em .5em 0 0}.ig_messenger.ig_talk .ig_close,.ig_messenger.ig_talk .ig_close:before,.ig_messenger.ig_talk .ig_data:after,.ig_messenger.ig_talk .ig_headline:after,.ig_messenger.ig_talk .ig_headline:before{background-size:cover}.ig_messenger.ig_talk .ig_headline:before{display:block;background-image:url(../../../assets/images/clear-header.png);top:.5em;left:.6em;height:1.25em;width:1.25em}.ig_messenger.ig_talk .ig_headline{background-color:#f5faff;color:#00008b;width:100%;height:2.2em;line-height:2.4em;font-size:1em;padding:0 2.9em 0 2em;border-bottom:.1em solid #bfbfbf;box-shadow:inset 0 0 .25em 0 #fff;border-radius:.5em .5em 0 0}.ig_messenger.ig_talk .ig_headline:after{display:block;height:2.5em;top:2.2em;background-image:url(../../../assets/images/talk-header-2.png)}.ig_messenger.ig_talk .ig_body{background:#fff;color:#222;font-size:1em;font-family:Arial,Helvetica,sans-serif;position:relative;height:13.48em;border-top:.1em solid #bfbfbf;border-bottom:.1em solid #bfbfbf;top:2.5em;right:0;line-height:1.25em;padding:.5em .8em 0 .5em;box-shadow:inset 0 0 .25em 0 #fff}.ig_messenger.ig_talk .ig_message{color:#3e454c;width:100%;padding-left:3em}.ig_messenger.ig_talk.ig_no_icon .ig_message{padding-left:.5em}.ig_messenger.ig_talk .ig_footer{display:block;height:2.66em;margin-top:2.5em;background-image:url(../../../assets/images/talk-footer-1.png);background-size:cover}.ig_messenger.ig_talk .ig_close{background-image:url(../../../assets/images/talk-close.png);background-position:0 0;top:.5em;right:.33em;height:1.25em;width:1.25em;z-index:10}.ig_messenger.ig_talk .ig_close:before{display:block;background-image:url(../../../assets/images/talk-header-1.png);height:100%;width:100%;padding:0;right:1.5em}.ig_messenger.ig_talk .ig_close:after{display:none}.ig_messenger.ig_talk .ig_powered_by{bottom:2em;padding-right:2em;font-size:.8em}@media only screen and (max-width:992px){.ig_messenger.ig_talk.ig_container{font-size:14px}}
 
message-types/popup/themes/popup.min.css DELETED
@@ -1 +0,0 @@
1
- .mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:999999;position:fixed;outline:0!important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-error .mfp-content,.mfp-s-ready .mfp-preloader{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:0;padding:0;z-index:1046;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:-55px 0 0;top:50%;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1}.mfp-arrow .mfp-a,.mfp-arrow .mfp-b,.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:inset transparent}.mfp-arrow .mfp-a,.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow .mfp-b,.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left .mfp-a,.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left .mfp-b,.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right .mfp-a,.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right .mfp-b,.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);-ms-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;-ms-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;-ms-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}.mfp-bg{z-index:999999}.ig_popup{opacity:1;display:block;z-index:100000;background-color:transparent;width:58%;margin:32px auto 20px auto!important;position:relative;font-size:1em}.ig_popup .ig_content{background-color:transparent}.ig_popup .ig_bg_overlay{background-color:transparent;width:100%;height:100%;top:0;left:0;margin:0;padding:0;position:absolute;display:none}.ig_popup .ig_headline{text-decoration:none;font-weight:800;font-size:2em;line-height:1.2em}.ig_popup .ig_data{position:relative}.ig_popup .ig_image{margin:0 1em}.ig_popup .ig_message{line-height:1.2em;font-size:1.2em}.ig_popup .ig_close{background-image:url(../../../assets/images/sprite_1.png);background-position:-600px center;background-repeat:no-repeat;height:30px;width:30px;top:-15px;right:-15px;margin:0;cursor:pointer;position:absolute;z-index:20}.ig_popup .ig_close:hover{background-position:-640px center}.ig_popup .ig_button,.ig_popup input[type=button],.ig_popup input[type=submit]{cursor:pointer;display:block;background-image:none;border:none;border-radius:0;box-shadow:none;position:relative}.mfp-wrap .ig_powered_by{position:fixed;bottom:1em;left:1em;font-size:14px;padding:.1em}@media only screen and (min-width:1440px){.ig_popup{max-width:835px}}@media only screen and (max-width:850px){.ig_popup{font-size:14px}.ig_popup .ig_button,.ig_popup input[type=button],.ig_popup input[type=submit]{width:70%!important}}@media only screen and (max-width:644px){.ig_popup{width:75%;font-size:13px}.ig_popup .ig_button,.ig_popup input[type=button],.ig_popup input[type=submit]{width:60%!important}}@media only screen and (max-width:425px){.ig_popup .ig_button,.ig_popup input[type=button],.ig_popup input[type=submit]{width:80%!important}}@media only screen and (max-width:375px){.ig_popup{width:90%}.ig_popup .ig_button,.ig_popup input[type=button],.ig_popup input[type=submit]{width:90%!important}}.ig_popup .ig_form_container{width:30%;float:left}.ig_popup.ig_form_left .ig_data{position:relative}.ig_popup.ig_form_left .ig_data,.ig_popup.ig_form_right .ig_data{width:70%;float:left}.ig_popup.ig_form_right.ig_form_style_4 .ig_close,.ig_popup.ig_form_right.ig_form_style_4 .ig_close:hover{margin:-15px -15px 0 0}@media only screen and (max-width:850px){.ig_popup.ig_form_left .ig_form_container.layout_left,.ig_popup.ig_form_right .ig_form_container.layout_right{display:none}.ig_popup.ig_form_bottom .ig_form_container.layout_bottom,.ig_popup.ig_form_left .ig_form_container.layout_bottom,.ig_popup.ig_form_right .ig_form_container.layout_bottom{display:block;width:100%;font-size:1.3em;height:auto!important}.ig_popup.ig_form_inline .ig_form_container.layout_inline{padding:.6em 0}.ig_popup.ig_form_left .ig_data,.ig_popup.ig_form_right .ig_data{width:100%}.ig_popup .ig_form_container.layout_bottom .ig_full .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_half .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_quater .ig_form_els,.ig_popup .ig_form_container.layout_bottom .ig_third .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_full .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_half .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_quater .ig_form_els,.ig_popup .ig_form_container.layout_inline .ig_third .ig_form_els{width:99%;margin:.5em auto 0 auto}.ig_popup .ig_form_container.layout_bottom .ig_button_label,.ig_popup .ig_form_container.layout_inline .ig_button_label{display:none}.ig_popup .ig_form_container.layout_bottom .ig_button,.ig_popup .ig_form_container.layout_bottom input[type=button],.ig_popup .ig_form_container.layout_bottom input[type=submit],.ig_popup .ig_form_container.layout_inline .ig_button,.ig_popup .ig_form_container.layout_inline input[type=button],.ig_popup .ig_form_container.layout_inline input[type=submit]{width:99%!important;font-size:1em}.ig_popup.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els.ig_form_el_radio,.ig_popup.ig_form_inline .ig_form_container.layout_inline .ig_form_els.ig_form_el_radio{display:block}.ig_popup.ig_form_bottom .ig_form_container.layout_bottom .ig_form_els.ig_form_el_radio label,.ig_popup.ig_form_inline .ig_form_container.layout_inline .ig_form_els.ig_form_el_radio label{display:block}.ig_popup.ig_form_style_1 .ig_form_container:before{border-width:0;border-style:solid;border-color:#000!important;opacity:.3;top:0}.ig_popup.ig_form_left.ig_form_style_1 .ig_form_container.layout_bottom:before,.ig_popup.ig_form_right.ig_form_style_1 .ig_form_container.layout_bottom:before{width:100%;border-top-width:.2em}.ig_popup.ig_form_bottom.ig_form_style_1 .ig_form_container.layout_bottom:before{border-top-width:.2em}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els{margin-right:0;margin-left:0}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first input,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first input,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last input{border-radius:2em;padding-left:1em}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els input.ig_button,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els input.ig_button{padding:inherit}.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els label,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_first label,.ig_popup.ig_form_style_2 .ig_form_container.layout_bottom .ig_form_els.ig_form_els_last label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_first label,.ig_popup.ig_form_style_2 .ig_form_container.layout_inline .ig_form_els.ig_form_els_last label{padding-left:1em}.ig_popup.ig_form_right.ig_form_style_4 .ig_close,.ig_popup.ig_form_right.ig_form_style_4 .ig_close:hover{margin:0}.ig_popup.ig_form_bottom.ig_form_style_4 .ig_message,.ig_popup.ig_form_left.ig_form_style_4 .ig_message,.ig_popup.ig_form_right.ig_form_style_4 .ig_message{padding-bottom:1.5em}}@media only screen and (min-width:645px) and (max-width:850px){.ig_popup.ig_form_bottom .ig_form_container.layout_bottom,.ig_popup.ig_form_left .ig_form_container.layout_bottom,.ig_popup.ig_form_right .ig_form_container.layout_bottom{font-size:1.1em}}.ig_popup.ig_air-mail{position:relative;border-width:8px;border-style:solid;-moz-border-image:-moz-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-webkit-border-image:-webkit-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;-o-border-image:-o-repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;border-image:repeating-linear-gradient(45deg,#a83439,#a83439 10px,#fdfdfd 10px,#fdfdfd 20px,#2f4175 20px,#2f4175 30px,#fdfdfd 30px,#fdfdfd 40px) 8 round;background-color:#fdfdfd;color:#707070}.ig_popup.ig_air-mail .ig_headline{padding:.5em;font-size:2.5em;text-align:center;color:#2c4a9d}.ig_popup.ig_air-mail .ig_image{float:right}.ig_popup.ig_air-mail .ig_message{padding:.2em 2em .8em 2em;font-size:1.2em}.ig_popup.ig_air-mail .ig_close{background-position:-520px center;margin:0;top:0;right:0;opacity:.35}.ig_popup.ig_air-mail .ig_close:hover{background-position:-520px center;opacity:.75}.ig_popup.ig_air-mail .ig_button,.ig_popup.ig_air-mail input[type=button],.ig_popup.ig_air-mail input[type=submit]{background:#d82931;color:#fff;width:50%;border-radius:4px;border:none;font-size:1.5em;text-transform:uppercase;font-weight:600;text-align:center;margin:.8em auto 1.2em auto;padding:.5em .15em}.ig_popup.ig_air-mail .ig_button:hover,.ig_popup.ig_air-mail input[type=button]:hover,.ig_popup.ig_air-mail input[type=submit]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}.ig_popup.ig_air-mail .ig_button:active,.ig_popup.ig_air-mail input[type=button]:active,.ig_popup.ig_air-mail input[type=submit]:active{box-shadow:none}.ig_popup.ig_form_right.ig_air-mail .ig_form_container.layout_right{padding-top:1.5em}@media only screen and (max-width:850px){.ig_popup.ig_form_right.ig_air-mail .ig_form_container.layout_right{padding-top:1em}}.ig_popup.ig_amaze{border:.3em solid #444;background-color:#444;color:#fff}.ig_popup.ig_amaze .ig_bg_overlay{display:block;background-image:url(../../../assets/images/popup-amaze-bg.jpg);opacity:.5}.ig_popup.ig_amaze .ig_headline{padding:.5em;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.5);font-size:2em}.ig_popup.ig_amaze .ig_image{float:left}.ig_popup.ig_amaze .ig_message{font-size:1.2em;padding:.5em 1.2em .8em;font-family:Georgia,Times,"Times New Roman",serif;margin:0 2em}.ig_popup.ig_amaze .ig_button,.ig_popup.ig_amaze input[type=button],.ig_popup.ig_amaze input[type=submit]{background:#2ecc70;color:#fff;font-family:Calibri,Candara,Segoe,"Segoe UI",Optima,Arial,sans-serif;font-size:1.3em;letter-spacing:1px;vertical-align:top;font-weight:700;text-align:center;line-height:1.8em;border-radius:3px;border-bottom:.2em solid rgba(63,63,63,.6);text-shadow:1px 1px 0 rgba(0,0,0,.5);margin:.5em auto 1.2em auto;width:40%;padding:.3em 1em}.ig_popup.ig_amaze .ig_button:hover,.ig_popup.ig_amaze input[type=button]:hover,.ig_popup.ig_amaze input[type=submit]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}@media only screen and (max-width:850px){.ig_popup.ig_amaze .ig_message{margin:0 1em}}.ig_popup.ig_compel{background:#fff;color:#707070;border:4px dashed #c0392b}.ig_popup.ig_compel .ig_headline{padding:.5em;padding-right:1em;font-size:2em;text-shadow:0 1px 0 rgba(0,0,0,.2);margin-bottom:.2em;text-align:center}.ig_popup.ig_compel .ig_image{float:left;padding-right:1em}.ig_popup.ig_compel .ig_message{padding:.5em 1.25em .8em;font-size:1.25em;font-family:"Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;margin:0 .5em .5em .5em}.ig_popup.ig_compel .ig_close{background-position:-520px center;margin:0;top:0;right:0;opacity:.35}.ig_popup.ig_compel .ig_close:hover{background-position:-520px center;opacity:.75}.ig_popup.ig_compel .ig_button,.ig_popup.ig_compel input[type=button],.ig_popup.ig_compel input[type=submit]{background:#e74d3c;color:#fff;width:50%;border-radius:5px;border-bottom:.18em solid #bf3a2b;font-size:1.2em;text-transform:uppercase;font-weight:600;text-align:center;padding:.8em .15em .62em .15em;margin:.5em auto 1.2em auto}.ig_popup.ig_compel .ig_button:hover,.ig_popup.ig_compel input[type=button]:hover,.ig_popup.ig_compel input[type=submit]:hover{box-shadow:0 0 5px 0 rgba(0,0,0,.5)}@font-face{font-family:'Goudy Bookletter 1911';font-style:normal;font-weight:400;src:local('Goudy Bookletter 1911'),local('GoudyBookletter1911'),url(https://fonts.gstatic.com/s/goudybookletter1911/v6/l5lwlGTN3pEY5Bf-rQEuIAQibyVIKv8boZ0oFv0g-Lo.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}.ig_popup.ig_convert{background-color:#fffdcc;color:#484747;box-shadow:none;width:50%;border-radius:.3em}.ig_popup.ig_convert .ig_headline{font-size:2.5em;padding:.8em 1.2em .3em;text-align:center;font-family:'Goudy Bookletter 1911',serif}.ig_popup.ig_convert .ig_image{float:right}.ig_popup.ig_convert .ig_message{font-size:1.2em;padding:.8em 1.5em;font-family:Calibri,Candara,Segoe,"Segoe UI",Optima,Arial,sans-serif;vertical-align:baseline;text-align:center}.ig_popup.ig_convert .ig_button,.ig_popup.ig_convert input[type=button],.ig_popup.ig_convert input[type=submit]{background:#cb0606;color:#fcf8f8;font-weight:700;text-decoration:none;font-size:1.75em;border:.2em solid rgba(0,0,0,.2)!important;width:60%;font-family:'Goudy Bookletter 1911',serif;border-radius:3em;text-align:center;line-height:1.5em;padding:.3em 1em;margin:.5em auto 1.2em auto;clear:both}.ig_popup.ig_convert .ig_button:hover,.ig_popup.ig_convert input[type=button]:hover,.ig_popup.ig_convert input[type=submit]:hover{box-shadow:0 0 8px 0 rgba(0,0,0,.4)}.ig_popup.ig_convert .ig_button:active,.ig_popup.ig_convert input[type=button]:active,.ig_popup.ig_convert input[type=submit]:active{box-shadow:none}.ig_popup.ig_convert .ig_close{background-position:0 center;top:6px;right:6px;opacity:.4}.ig_popup.ig_convert .ig_close:hover{background-position:0 center;opacity:.7}.ig_popup.ig_form_right.ig_convert .ig_form_container.layout_right{padding-top:2.2em}@media only screen and (min-width:1440px){.ig_popup.ig_convert{max-width:600px}}@media only screen and (max-width:850px){.ig_popup.ig_convert{width:65%}.ig_popup.ig_form_right.ig_convert .ig_form_container.layout_right{padding-top:1em}}@media only screen and (max-width:644px){.ig_popup.ig_convert{width:75%}}@media only screen and (max-width:375px){.ig_popup.ig_convert{width:90%}}.ig_popup.ig_inspire{background:#fff;color:#444}.ig_popup.ig_inspire .ig_headline{color:#82ad23;text-align:center;padding:.8em .8em .3em .8em;font-size:2.5em}.ig_popup.ig_inspire .ig_image{float:left}.ig_popup.ig_inspire .ig_message{padding:.8em 2em;font-size:1.25em;text-align:justify}.ig_popup.ig_inspire .ig_button,.ig_popup.ig_inspire input[type=button],.ig_popup.ig_inspire input[type=submit]{background:#82ad23;color:#fff;vertical-align:middle;font-size:2em;font-weight:700;font-style:normal;text-decoration:none;text-align:center;opacity:1;width:55%;line-height:1.2em;padding:.5em;margin:.5em auto 1em auto;border-top:none}.ig_popup.ig_inspire .ig_button:hover,.ig_popup.ig_inspire input[type=button]:hover,.ig_popup.ig_inspire input[type=submit]:hover{border-top:none;box-shadow:0 0 8px 0 rgba(0,0,0,.4)}.ig_popup.ig_inspire .ig_button:active,.ig_popup.ig_inspire input[type=button]:active,.ig_popup.ig_inspire input[type=submit]:active{border-top:none;font-weight:400;box-shadow:none}.ig_popup.ig_inspire .ig_close{background-position:-763px center;margin:0;top:0;right:0;opacity:.4;height:24px;width:24px;background-color:rgba(0,0,0,.45)}.ig_popup.ig_inspire .ig_close:hover{opacity:.7}.ig_popup.ig_form_right.ig_inspire .ig_form_container.layout_right{padding-top:2.5em}@media only screen and (max-width:850px){.ig_popup.ig_form_right.ig_inspire .ig_form_container.layout_right{padding-top:1em}}.ig_popup.ig_persuade{background:#ef504e;color:#fff;border:.4em dashed #fff;padding-bottom:.1em}.ig_popup.ig_persuade .ig_headline{letter-spacing:0;font-size:2.8em;text-align:center;-webkit-font-smoothing:antialiased;line-height:1em;padding:.7em .7em .5em}.ig_popup.ig_persuade .ig_image{float:left}.ig_popup.ig_persuade .ig_message{padding:.5em 1.5em .8em;font-size:1.5em;font-weight:300;text-align:center;-webkit-font-smoothing:antialiased}.ig_popup.ig_persuade .ig_button,.ig_popup.ig_persuade input[type=button],.ig_popup.ig_persuade input[type=submit]{background:#424242;color:#fff;text-decoration:none;text-align:center;font-size:2em;font-weight:400;line-height:1.2em;width:55%;margin:.5em auto 1em auto;padding:.4em;border:none;border-radius:.4em;border-bottom:.28em solid #333;border-bottom:.2em solid rgba(0,0,0,.3)!important;box-shadow:0 .15em .1em rgba(0,0,0,.3)!important;clear:both;border-bottom:.28em solid #333;box-shadow:0 .3em 1.5em rgba(0,0,0,.6)!important}.ig_popup.ig_persuade .ig_button:hover,.ig_popup.ig_persuade input[type=button]:hover,.ig_popup.ig_persuade input[type=submit]:hover{box-shadow:0 .1em .1em rgba(0,0,0,.3)!important}.ig_popup.ig_persuade .ig_button:active,.ig_popup.ig_persuade input[type=button]:active,.ig_popup.ig_persuade input[type=submit]:active{box-shadow:none!important}
 
message-types/toast/themes/toast.min.css DELETED
@@ -1 +0,0 @@
1
- .ig_toast.ig_container{display:none}.ig_toast .ig_wrapper{overflow:hidden;padding:5px 5px 5px 50px;position:relative;min-height:34px}.ig_toast .ig_content{overflow:hidden}.ig_toast .ig_headline{display:inline-block;margin:0;text-align:left;position:relative}.ig_toast .ig_icon{overflow:hidden;display:block;max-height:32px;max-width:32px;left:10px;top:10px;position:absolute}.ig_toast .ig_icon img{max-width:32px;max-height:32px;margin:0;padding:0}.ig_toast .ig_message{margin:-3px 0 0 -2px}.ig_toast .ig_message p{margin:.15em}.ig_toast_block{position:fixed;list-style:none;z-index:999999;-ms-word-wrap:break-word;word-wrap:break-word;padding:0;margin:5px}.ig_toast_block *{box-sizing:content-box;text-transform:none}.ig_toast_block .ig_container{margin:10px 0}.ig_toast_block .ig_headline{font-weight:700;clear:none;padding:0}.ig_toast_block .ig_message{font-size:12px;text-align:left;line-height:15px}.ig_toast.ig_announce.ig_container{border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),inset 0 -1px 0 rgba(255,255,255,.15),0 0 6px rgba(0,0,0,.08),0 0 0 1px rgba(35,47,64,.2);background-image:-webkit-linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-image:-moz-linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-image:linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,105,0) 100%);background-color:rgba(255,255,105,.95)!important;color:rgba(67,76,89,.9)!important;text-shadow:0 1px 0 rgba(255,255,255,.85)}.ig_toast.ig_announce.ig_container:hover{border-color:rgba(0,0,0,1)}.ig_toast.ig_announce .ig_wrapper{border:none;border-radius:4px;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}.ig_toast.ig_announce .ig_content{border:none;color:rgba(67,76,89,.9)!important;background-color:transparent!important;border-radius:4px;box-shadow:inset 0 -3px 2px rgba(58,71,89,.04)}.ig_toast.ig_announce .ig_headline{color:rgba(67,76,89,.9)}.ig_toast.ig_balance.ig_container{border:1px solid #777;color:#141414;text-shadow:0 1px 0 rgba(255,255,255,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(204,204,204,.75)),to(rgba(240,240,240,1)),color-stop(.4,rgba(139,139,139,.5)))!important;background-image:-moz-linear-gradient(top,rgba(204,204,204,.75) 0,rgba(139,139,139,.5) 40%,rgba(240,240,240,1) 100%);background-image:linear-gradient(to bottom,rgba(204,204,204,.75) 0,rgba(139,139,139,.5) 40%,rgba(240,240,240,1) 100%)!important;background-color:rgba(204,204,204,.8)!important;-webkit-font-smoothing:antialiased}.ig_toast.ig_balance .ig_content{background:0 0!important}.ig_toast.ig_balance .ig_headline{border-bottom:1px solid #777;width:100%}.ig_toast.ig_balance .ig_message{margin-top:5px}.ig_toast.ig_burnt.ig_container{min-height:64px;position:relative;box-sizing:border-box;background-color:transparent!important}.ig_toast.ig_burnt .ig_content{background-color:transparent!important}.ig_toast.ig_burnt .ig_wrapper{padding:5px 5px 5px 65px}.ig_toast.ig_burnt .ig_base{position:absolute;top:0;left:0;bottom:0;right:0;background-color:transparent;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.8),rgba(0,0,0,.88));background-image:-moz-linear-gradient(top,rgba(0,0,0,.8),rgba(0,0,0,.88));background-image:linear-gradient(to bottom,rgba(0,0,0,.8),rgba(0,0,0,.88));border:1px solid #000;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 0 0 0 1px rgba(255,255,255,.1);border-radius:4px;overflow:hidden;z-index:0}.ig_toast.ig_burnt .ig_line{width:1px;height:27px;position:absolute;top:1px;left:58px;background-image:-webkit-linear-gradient(top,rgba(0,0,0,.3),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.3),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,0))}.ig_toast.ig_burnt .ig_line:after{content:"";display:block;width:1px;height:26px;position:absolute;top:1px;left:-1px;background-image:-webkit-linear-gradient(top,rgba(255,255,255,.15),rgba(255,255,255,0));background-image:-moz-linear-gradient(top,rgba(255,255,255,.15),rgba(255,255,255,0));background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0))}.ig_toast.ig_burnt .ig_headline{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.5);z-index:1}.ig_toast.ig_burnt .ig_icon{max-height:42px;max-width:42px;left:8px;top:5px}.ig_toast.ig_burnt .ig_icon img{width:40px;height:40px;border-radius:3px}.ig_toast.ig_burnt .ig_message{color:rgba(255,255,255,.83);text-shadow:0 -1px 0 rgba(0,0,0,.7);position:relative}.ig_toast.ig_clear.ig_container{border:3px solid rgba(0,0,0,.4);border-radius:.5em;background:#fff!important}.ig_toast.ig_clear .ig_content{background-color:transparent!important}.ig_toast.ig_clear .ig_headline{color:#222;letter-spacing:.7pt;line-height:16px;text-shadow:0 1px 0 rgba(255,255,255,.6)}.ig_toast.ig_clear .ig_message{color:#444;text-align:left;text-shadow:0 1px 0 rgba(255,255,255,.6);line-height:15px}.ig_toast.ig_night-glow.ig_container{border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;background-color:transparent!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.83)),to(rgba(51,51,51,.73)),color-stop(.5,rgba(0,0,0,.83)))!important;background:-moz-linear-gradient(left,rgba(0,0,0,.83)0%,rgba(0,0,0,.83)50%,rgba(51,51,51,.73)100%)!important;background:linear-gradient(to bottom,rgba(0,0,0,.83)0%,rgba(0,0,0,.83)50%,rgba(51,51,51,.73)100%)!important;border:1px solid rgba(0,0,0,.6);color:rgba(255,255,255,.9);text-shadow:0 -1px 0 #000}.ig_toast.ig_night-glow .ig_wrapper{border-radius:3px;background-image:url(../../../assets/images/toast-glow.png);background-repeat:no-repeat;border-bottom:1px solid rgba(255,255,255,.05)}.ig_toast.ig_night-glow .ig_content{padding-left:8px;border-radius:3px;border-left:1px solid rgba(255,255,255,.1);background-color:transparent!important}.ig_toast.ig_stand-out .ig_wrapper{padding:5px 50px 5px 10px}.ig_toast.ig_stand-out.ig_container{background-color:#1f1f1f!important;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,rgba(0,0,0,.1)),color-stop(1,rgba(255,255,255,.1))),url(../../../assets/images/stand-out.png)!important;background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.1) 0,rgba(255,255,255,.1) 100%),url(../../../assets/images/stand-out.png)!important;background-image:linear-gradient(to top,rgba(0,0,0,.1) 0,rgba(255,255,255,.1) 100%),url(../../../assets/images/stand-out.png)!important;box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 -1px 0 rgba(255,255,255,.1) inset,0 1px 4px rgba(0,0,0,.7);border-radius:5px;color:rgba(255,255,255,.7);text-shadow:0 1px 0 rgba(0,0,0,.75);border:1px solid #111}.ig_toast.ig_stand-out .ig_content{background-color:transparent!important}.ig_toast.ig_stand-out .ig_icon{right:10px;left:auto;border-radius:3px}.ig_toast.ig_stand-out .ig_headline,.ig_toast.ig_stand-out .ig_message{line-height:15px}
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: icegram, storeapps, niravmehta, sandhyam, malayladu, putler
3
  Donate link: https://www.icegram.com/
4
  Tags: popup, optin, hellobar, lead capture, form, marketing, notification, messenger, targeting, monster, ninja ,wordpress lead generation, wordpress lightbox optin, wordpress lightbox optin form, wordpress lightbox optins, wordpress mobile optin forms, wordpress mobile popup, wordpress mobile popups, wordpress optin form, wordpress overlay popup, wordpress popup, wordpress popup form, wordpress popup plugin, wordpress popup solution, wordpress popups, popups, subscribe, wp popups, optin bars, action grabber, promotion, popup message, leads, lists, builder, action bar, floating bar, footer bar, hellobar alternative, pop over, Popup plugin, aweber, campaign monitor, constant contact, email list, exit-intent, onclick popup, analytics, Hubspot, popup ads, pop-up, Mailing list pop-up, re-targeting, Animation, Popups with Animation, Responsive Popup, split testing, AB testing
5
  Requires at least: 3.9
6
- Tested up to: 5.7
7
- Stable tag: 1.10.47
8
  License: GPLv3
9
 
10
  The best WP popup plugin that lets you create a popup within seconds. Customize popup, target popups to show offers, email signups, social buttons, etc and instantly increase conversions on your website.
@@ -238,6 +238,15 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
238
 
239
  == Upgrade Notice ==
240
 
 
 
 
 
 
 
 
 
 
241
  **1.10.47**
242
 
243
  * Update: WordPress 5.7 compatibility check
@@ -646,6 +655,15 @@ Contact Us, provide as much detail of the problem as you can. We will try to sol
646
 
647
  == Changelog ==
648
 
 
 
 
 
 
 
 
 
 
649
  **1.10.47**
650
 
651
  * Update: WordPress 5.7 compatibility check
3
  Donate link: https://www.icegram.com/
4
  Tags: popup, optin, hellobar, lead capture, form, marketing, notification, messenger, targeting, monster, ninja ,wordpress lead generation, wordpress lightbox optin, wordpress lightbox optin form, wordpress lightbox optins, wordpress mobile optin forms, wordpress mobile popup, wordpress mobile popups, wordpress optin form, wordpress overlay popup, wordpress popup, wordpress popup form, wordpress popup plugin, wordpress popup solution, wordpress popups, popups, subscribe, wp popups, optin bars, action grabber, promotion, popup message, leads, lists, builder, action bar, floating bar, footer bar, hellobar alternative, pop over, Popup plugin, aweber, campaign monitor, constant contact, email list, exit-intent, onclick popup, analytics, Hubspot, popup ads, pop-up, Mailing list pop-up, re-targeting, Animation, Popups with Animation, Responsive Popup, split testing, AB testing
5
  Requires at least: 3.9
6
+ Tested up to: 5.7.2
7
+ Stable tag: 2.0.0
8
  License: GPLv3
9
 
10
  The best WP popup plugin that lets you create a popup within seconds. Customize popup, target popups to show offers, email signups, social buttons, etc and instantly increase conversions on your website.
238
 
239
  == Upgrade Notice ==
240
 
241
+ **2.0.0**
242
+
243
+ * Update: UI improvements
244
+
245
+ **1.11.0**
246
+
247
+ * Update: Performance improvements
248
+ * Update: UI/UX improvements
249
+
250
  **1.10.47**
251
 
252
  * Update: WordPress 5.7 compatibility check
655
 
656
  == Changelog ==
657
 
658
+ **2.0.0**
659
+
660
+ * Update: UI improvements
661
+
662
+ **1.11.0**
663
+
664
+ * Update: Performance improvements
665
+ * Update: UI/UX improvements
666
+
667
  **1.10.47**
668
 
669
  * Update: WordPress 5.7 compatibility check