a3 Lazy Load - Version 1.8.0

Version Description

Feature Upgrade. 1 bug fix, 3 new features, 2 code updates for compatibility with WordPress v 4.7.5, PHP 7.0, Better AMP plugin and launch public Github Repo

Download this release

Release Info

Developer a3rev
Plugin Icon 128x128 a3 Lazy Load
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.1 to 1.8.0

a3-lazy-load.php CHANGED
@@ -2,11 +2,11 @@
2
  /*
3
  Plugin Name: a3 Lazy Load
4
  Description: Speed up your site and enhance frontend user's visual experience in PC's, Tablets and mobile with a3 Lazy Load.
5
- Version: 1.7.1
6
- Author: a3 Revolution
7
- Author URI: http://www.a3rev.com/
8
  Requires at least: 4.0
9
- Tested up to: 4.5
10
  License: GPLv2 or later
11
  Copyright © 2011 a3 Revolution Software Development team
12
  a3 Revolution Software Development team
@@ -17,7 +17,7 @@ License: GPLv2 or later
17
  */
18
  ?>
19
  <?php
20
- define('A3_LAZY_VERSION', '1.7.1');
21
  define('A3_LAZY_LOAD_FILE_PATH', dirname(__FILE__));
22
  define('A3_LAZY_LOAD_DIR_NAME', basename(A3_LAZY_LOAD_FILE_PATH));
23
  define('A3_LAZY_LOAD_FOLDER', dirname(plugin_basename(__FILE__)));
@@ -28,6 +28,23 @@ define('A3_LAZY_LOAD_JS_URL', A3_LAZY_LOAD_URL . '/assets/js');
28
  define('A3_LAZY_LOAD_CSS_URL', A3_LAZY_LOAD_URL . '/assets/css');
29
  define('A3_LAZY_LOAD_IMAGES_URL', A3_LAZY_LOAD_URL . '/assets/images');
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  include( 'admin/admin-ui.php' );
32
  include( 'admin/admin-interface.php' );
33
 
@@ -63,4 +80,5 @@ if ( 1 == $a3_lazy_load_global_settings['a3l_apply_lazyloadxt'] && !is_admin() &
63
  * Call when the plugin is activated
64
  */
65
  register_activation_hook(__FILE__, 'a3_lazy_load_activated');
66
- ?>
 
2
  /*
3
  Plugin Name: a3 Lazy Load
4
  Description: Speed up your site and enhance frontend user's visual experience in PC's, Tablets and mobile with a3 Lazy Load.
5
+ Version: 1.8.0
6
+ Author: a3rev Software
7
+ Author URI: https://a3rev.com/
8
  Requires at least: 4.0
9
+ Tested up to: 4.7.5
10
  License: GPLv2 or later
11
  Copyright © 2011 a3 Revolution Software Development team
12
  a3 Revolution Software Development team
17
  */
18
  ?>
19
  <?php
20
+ define('A3_LAZY_VERSION', '1.8.0');
21
  define('A3_LAZY_LOAD_FILE_PATH', dirname(__FILE__));
22
  define('A3_LAZY_LOAD_DIR_NAME', basename(A3_LAZY_LOAD_FILE_PATH));
23
  define('A3_LAZY_LOAD_FOLDER', dirname(plugin_basename(__FILE__)));
28
  define('A3_LAZY_LOAD_CSS_URL', A3_LAZY_LOAD_URL . '/assets/css');
29
  define('A3_LAZY_LOAD_IMAGES_URL', A3_LAZY_LOAD_URL . '/assets/images');
30
 
31
+ /**
32
+ * Load Localisation files.
33
+ *
34
+ * Note: the first-loaded translation file overrides any following ones if the same translation is present.
35
+ *
36
+ * Locales found in:
37
+ * - WP_LANG_DIR/a3-lazy-load/a3-lazy-load-LOCALE.mo
38
+ * - WP_LANG_DIR/plugins/a3-lazy-load-LOCALE.mo
39
+ * - /wp-content/plugins/a3-lazy-load/languages/a3-lazy-load-LOCALE.mo (which if not found falls back to)
40
+ */
41
+ function a3_lazy_load_plugin_textdomain() {
42
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'a3-lazy-load' );
43
+
44
+ load_textdomain( 'a3-lazy-load', WP_LANG_DIR . '/a3-lazy-load/a3-lazy-load-' . $locale . '.mo' );
45
+ load_plugin_textdomain( 'a3-lazy-load', false, A3_LAZY_LOAD_FOLDER.'/languages' );
46
+ }
47
+
48
  include( 'admin/admin-ui.php' );
49
  include( 'admin/admin-interface.php' );
50
 
80
  * Call when the plugin is activated
81
  */
82
  register_activation_hook(__FILE__, 'a3_lazy_load_activated');
83
+
84
+ ?>
admin/a3-lazy-load-admin.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
- update_option('a3rev_lazy_load_plugin', 'a3_lazy_load');
3
 
4
  function a3_lazy_load_activated(){
5
- update_option('a3_lazy_load_version', '1.7.1');
6
 
7
  // Set Settings Default from Admin Init
8
  global $a3_lazy_load_admin_init;
@@ -25,7 +25,7 @@ function a3_lazy_load_init() {
25
  exit;
26
  }
27
 
28
- load_plugin_textdomain( 'a3_lazy_load', false, A3_LAZY_LOAD_FOLDER.'/languages' );
29
 
30
  a3_lazy_load_upgrade_plugin();
31
  }
@@ -65,6 +65,6 @@ function a3_lazy_load_upgrade_plugin() {
65
  update_option('a3_lazy_load_style_version', time() );
66
  }
67
 
68
- update_option('a3_lazy_load_version', '1.7.1');
69
  }
70
  ?>
1
  <?php
2
+ update_option('a3rev_lazy_load_plugin', 'a3_lazy_load' );
3
 
4
  function a3_lazy_load_activated(){
5
+ update_option('a3_lazy_load_version', '1.8.0');
6
 
7
  // Set Settings Default from Admin Init
8
  global $a3_lazy_load_admin_init;
25
  exit;
26
  }
27
 
28
+ a3_lazy_load_plugin_textdomain();
29
 
30
  a3_lazy_load_upgrade_plugin();
31
  }
65
  update_option('a3_lazy_load_style_version', time() );
66
  }
67
 
68
+ update_option('a3_lazy_load_version', '1.8.0');
69
  }
70
  ?>
admin/admin-init.php CHANGED
@@ -34,12 +34,13 @@ class A3_Lazy_Load_Admin_Init extends A3_Lazy_Load_Admin_UI
34
  /*-----------------------------------------------------------------------------------*/
35
  public function init() {
36
 
37
- $this->add_admin_menu();
38
 
39
  // Filter to add admin pages for Amin UI process
40
  add_filter( $this->plugin_name . '_admin_pages', array( $this, 'add_admin_pages' ) );
41
 
42
- add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );
 
43
 
44
  add_action( 'plugins_loaded', array( $this, 'get_all_settings' ), 8 );
45
  }
@@ -121,7 +122,7 @@ class A3_Lazy_Load_Admin_Init extends A3_Lazy_Load_Admin_UI
121
 
122
  case 'menu':
123
 
124
- $menu_page = add_menu_page( esc_html( $menu_item['page_title'] ), esc_html( $menu_item['menu_title'] ), $menu_item['capability'], $menu_item['menu_slug'] , $menu_item['function'], $menu_item['icon_url'], $menu_item['position'] );
125
 
126
  if ( isset( $menu_item['script_function'] ) && trim( $menu_item['script_function'] ) != '' )
127
  add_action( "admin_print_scripts-" . $menu_page, $menu_item['script_function'] );
@@ -130,7 +131,7 @@ class A3_Lazy_Load_Admin_Init extends A3_Lazy_Load_Admin_UI
130
 
131
  case 'submenu':
132
 
133
- $submenu_page = add_submenu_page( $menu_item['parent_slug'] , esc_html( $menu_item['page_title'] ), esc_html( $menu_item['menu_title'] ), $menu_item['capability'], $menu_item['menu_slug'] , $menu_item['function'] );
134
 
135
  if ( isset( $menu_item['script_function'] ) && trim( $menu_item['script_function'] ) != '' )
136
  add_action( "admin_print_scripts-" . $submenu_page, $menu_item['script_function'] );
@@ -192,14 +193,14 @@ class A3_Lazy_Load_Admin_Init extends A3_Lazy_Load_Admin_UI
192
 
193
  if ( ! is_array( $tabs ) || count( $tabs ) < 1 ) {
194
  ?>
195
- <h2>
196
  <?php
197
  if ( $page_data !== false) {
198
  echo esc_html( $page_data['page_title'] );
199
  if ( isset( $page_data['view_doc'] ) ) echo $page_data['view_doc'];
200
  }
201
  ?>
202
- </h2>
203
  <div style="width:100%; float:left;">
204
  <?php if ( isset( $page_data['callback_function'] ) && ! empty( $page_data['callback_function'] ) ) call_user_func( $page_data['callback_function'] ); ?>
205
  </div>
34
  /*-----------------------------------------------------------------------------------*/
35
  public function init() {
36
 
37
+ add_action( 'plugins_loaded', array( $this, 'add_admin_menu' ), 7 );
38
 
39
  // Filter to add admin pages for Amin UI process
40
  add_filter( $this->plugin_name . '_admin_pages', array( $this, 'add_admin_pages' ) );
41
 
42
+ $menu_hook = 'admin_menu';
43
+ add_action( $menu_hook, array( $this, 'register_admin_menu' ) );
44
 
45
  add_action( 'plugins_loaded', array( $this, 'get_all_settings' ), 8 );
46
  }
122
 
123
  case 'menu':
124
 
125
+ $menu_page = add_menu_page( esc_html( $menu_item['page_title'] ), $menu_item['menu_title'], $menu_item['capability'], $menu_item['menu_slug'] , $menu_item['function'], $menu_item['icon_url'], $menu_item['position'] );
126
 
127
  if ( isset( $menu_item['script_function'] ) && trim( $menu_item['script_function'] ) != '' )
128
  add_action( "admin_print_scripts-" . $menu_page, $menu_item['script_function'] );
131
 
132
  case 'submenu':
133
 
134
+ $submenu_page = add_submenu_page( $menu_item['parent_slug'] , esc_html( $menu_item['page_title'] ), $menu_item['menu_title'], $menu_item['capability'], $menu_item['menu_slug'] , $menu_item['function'] );
135
 
136
  if ( isset( $menu_item['script_function'] ) && trim( $menu_item['script_function'] ) != '' )
137
  add_action( "admin_print_scripts-" . $submenu_page, $menu_item['script_function'] );
193
 
194
  if ( ! is_array( $tabs ) || count( $tabs ) < 1 ) {
195
  ?>
196
+ <h1>
197
  <?php
198
  if ( $page_data !== false) {
199
  echo esc_html( $page_data['page_title'] );
200
  if ( isset( $page_data['view_doc'] ) ) echo $page_data['view_doc'];
201
  }
202
  ?>
203
+ </h1>
204
  <div style="width:100%; float:left;">
205
  <?php if ( isset( $page_data['callback_function'] ) && ! empty( $page_data['callback_function'] ) ) call_user_func( $page_data['callback_function'] ); ?>
206
  </div>
admin/admin-interface.php CHANGED
@@ -59,6 +59,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
59
 
60
  if ( is_admin() && isset( $_REQUEST['page'] ) && in_array( $_REQUEST['page'], $admin_pages ) ) {
61
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_script_load' ) );
 
62
  do_action( $this->plugin_name . '_init_scripts' );
63
 
64
  add_action( 'admin_print_scripts', array( $this, 'admin_localize_printed_scripts' ), 5 );
@@ -83,6 +84,13 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
83
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
84
  wp_register_style( 'font-awesome-styles', $this->admin_plugin_url() . '/assets/css/font-awesome' . $suffix . '.css', array(), '4.5.0', 'all' );
85
  }
 
 
 
 
 
 
 
86
 
87
  /*-----------------------------------------------------------------------------------*/
88
  /* admin_script_load */
@@ -103,6 +111,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
103
  wp_register_script( 'a3rev-settings-preview', $this->admin_plugin_url() . '/assets/js/a3rev-settings-preview.js', array('jquery'), false, true );
104
  wp_register_script( 'jquery-tiptip', $this->admin_plugin_url() . '/assets/js/tipTip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), true, true );
105
  wp_register_script( 'a3rev-metabox-ui', $this->admin_plugin_url() . '/assets/js/data-meta-boxes.js', array( 'jquery' ), true, true );
 
106
 
107
  wp_enqueue_script( 'jquery' );
108
  wp_enqueue_script( 'wp-color-picker' );
@@ -174,7 +183,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
174
  $version_message = $this->get_version_message();
175
  $has_new_version = 1;
176
  if ( '' == trim( $version_message ) ) {
177
- $version_message = __( 'Great! You have the latest version installed.', 'a3_lazy_load' );
178
  $has_new_version = 0;
179
  } else {
180
  delete_option('a3_lazy_load_clean_on_deletion');
@@ -213,16 +222,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
213
  /* admin_css_load */
214
  /*-----------------------------------------------------------------------------------*/
215
 
216
- public function admin_css_load () {
217
- global $wp_version;
218
-
219
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
220
 
221
  wp_enqueue_style( 'a3rev-admin-ui-style', $this->admin_plugin_url() . '/assets/css/admin-ui-style' . $suffix . '.css' );
222
 
223
- if ( version_compare( $wp_version, '3.8', '>=' ) ) {
224
- wp_enqueue_style( 'a3rev-admin-flat-ui-style', $this->admin_plugin_url() . '/assets/css/admin-flat-ui-style' . $suffix . '.css' );
225
- }
226
  wp_enqueue_style( 'wp-color-picker' );
227
  wp_enqueue_style( 'a3rev-chosen-new-style', $this->admin_plugin_url() . '/assets/js/chosen/chosen' . $suffix . '.css' );
228
  wp_enqueue_style( 'a3rev-tiptip-style', $this->admin_plugin_url() . '/assets/js/tipTip/tipTip.css' );
@@ -239,7 +244,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
239
  /* get_success_message */
240
  /*-----------------------------------------------------------------------------------*/
241
  public function get_success_message( $message = '' ) {
242
- if ( trim( $message ) == '' ) $message = __( 'Settings successfully saved.' , 'a3_lazy_load' );
243
  return '<div class="updated" id=""><p>' . $message . '</p></div>';
244
  }
245
 
@@ -247,7 +252,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
247
  /* get_error_message */
248
  /*-----------------------------------------------------------------------------------*/
249
  public function get_error_message( $message = '' ) {
250
- if ( trim( $message ) == '' ) $message = __( 'Error: Settings can not save.' , 'a3_lazy_load' );
251
  return '<div class="error" id=""><p>' . $message . '</p></div>';
252
  }
253
 
@@ -255,7 +260,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
255
  /* get_reset_message */
256
  /*-----------------------------------------------------------------------------------*/
257
  public function get_reset_message( $message = '' ) {
258
- if ( trim( $message ) == '' ) $message = __( 'Settings successfully reseted.' , 'a3_lazy_load' );
259
  return '<div class="updated" id=""><p>' . $message . '</p></div>';
260
  }
261
 
@@ -276,12 +281,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
276
  /*-----------------------------------------------------------------------------------*/
277
  public function get_font_weights() {
278
  $font_weights = array (
279
- '300' => __( 'Thin', 'a3_lazy_load' ),
280
- '300 italic' => __( 'Thin/Italic', 'a3_lazy_load' ),
281
- 'normal' => __( 'Normal', 'a3_lazy_load' ),
282
- 'italic' => __( 'Italic', 'a3_lazy_load' ),
283
- 'bold' => __( 'Bold', 'a3_lazy_load' ),
284
- 'bold italic' => __( 'Bold/Italic', 'a3_lazy_load' ),
285
  );
286
  return apply_filters( $this->plugin_name . '_font_weights', $font_weights );
287
  }
@@ -291,14 +296,14 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
291
  /*-----------------------------------------------------------------------------------*/
292
  public function get_border_styles() {
293
  $border_styles = array (
294
- 'solid' => __( 'Solid', 'a3_lazy_load' ),
295
- 'double' => __( 'Double', 'a3_lazy_load' ),
296
- 'dashed' => __( 'Dashed', 'a3_lazy_load' ),
297
- 'dotted' => __( 'Dotted', 'a3_lazy_load' ),
298
- 'groove' => __( 'Groove', 'a3_lazy_load' ),
299
- 'ridge' => __( 'Ridge', 'a3_lazy_load' ),
300
- 'inset' => __( 'Inset', 'a3_lazy_load' ),
301
- 'outset' => __( 'Outset', 'a3_lazy_load' ),
302
  );
303
  return apply_filters( $this->plugin_name . '_border_styles', $border_styles );
304
  }
@@ -367,7 +372,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
367
  } else {
368
  $id_attribute = esc_attr( $value['id'] );
369
  }
370
-
 
 
 
 
 
371
  $default_settings[$id_attribute] = $value['default'];
372
 
373
  break;
@@ -393,7 +403,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
393
 
394
  // Get settings for option values is an array and it's in single option name for all settings
395
  if ( trim( $option_name ) != '' ) {
396
- global $$option_name;
397
 
398
  $default_settings = $this->get_settings_default( $options, $option_name );
399
 
@@ -411,7 +421,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
411
  // Get settings for option value is stored as a record or it's spearate option
412
  foreach ( $options as $value ) {
413
  if ( ! isset( $value['type'] ) ) continue;
414
- if ( in_array( $value['type'], array( 'heading' ) ) ) continue;
415
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
416
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
417
 
@@ -432,7 +442,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
432
  }
433
 
434
  if ( trim( $option_name ) == '' || $value['separate_option'] != false ) {
435
- global $$id_attribute;
436
 
437
  $current_setting = get_option( $id_attribute, $value['default'] );
438
 
@@ -452,6 +462,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
452
  $current_setting = array_map( array( $this, 'admin_stripslashes' ), $current_setting );
453
  elseif ( ! is_null( $current_setting ) )
454
  $current_setting = esc_attr( stripslashes( $current_setting ) );
 
 
 
 
 
 
455
  break;
456
  }
457
 
@@ -481,7 +497,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
481
 
482
  foreach ( $options as $value ) {
483
  if ( ! isset( $value['type'] ) ) continue;
484
- if ( in_array( $value['type'], array( 'heading' ) ) ) continue;
485
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
486
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
487
  if ( ! isset( $value['free_version'] ) ) $value['free_version'] = false;
@@ -531,7 +547,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
531
  // Get settings for option value is stored as a record or it's spearate option
532
  foreach ( $options as $value ) {
533
  if ( ! isset( $value['type'] ) ) continue;
534
- if ( in_array( $value['type'], array( 'heading' ) ) ) continue;
535
 
536
  // Save for global settings of plugin framework
537
  switch ( $value['type'] ) {
@@ -852,7 +868,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
852
  if ( $free_version ) {
853
  foreach ( $options as $value ) {
854
  if ( ! isset( $value['type'] ) ) continue;
855
- if ( in_array( $value['type'], array( 'heading' ) ) ) continue;
856
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
857
 
858
  switch ( $value['type'] ) {
@@ -896,7 +912,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
896
  // Update settings default for option value is stored as a record or it's spearate option
897
  foreach ( $options as $value ) {
898
  if ( ! isset( $value['type'] ) ) continue;
899
- if ( in_array( $value['type'], array( 'heading' ) ) ) continue;
900
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
901
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
902
  if ( ! isset( $value['free_version'] ) ) $value['free_version'] = false;
@@ -1091,7 +1107,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1091
  * @return void
1092
  * ========================================================================
1093
  * Option Array Structure :
1094
- * type => heading | google_api_key | onoff_toggle_box | text | email | number | password | color | bg_color | textarea | select | multiselect | radio | onoff_radio | checkbox | onoff_checkbox
1095
  * | switcher_checkbox | image_size | single_select_page | typography | border | border_styles | border_corner | box_shadow
1096
  * | slider | upload | wp_editor | array_textfields |
1097
  *
@@ -1103,7 +1119,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1103
  * default => text : apply for other types
1104
  * array( 'enable' => 1, 'color' => '#515151' ) : apply bg_color only
1105
  * array( 'width' => '125', 'height' => '125', 'crop' => 1 ) : apply image_size only
1106
- * array( 'size' => '9px', 'face' => 'Arial', 'style' => 'normal', 'color' => '#515151' ) : apply for typography only
1107
  * array( 'width' => '1px', 'style' => 'normal', 'color' => '#515151', 'corner' => 'rounded' | 'square' , 'top_left_corner' => 3,
1108
  * 'top_right_corner' => 3, 'bottom_left_corner' => 3, 'bottom_right_corner' => 3 ) : apply for border only
1109
  * array( 'width' => '1px', 'style' => 'normal', 'color' => '#515151' ) : apply for border_styles only
@@ -1167,6 +1183,51 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1167
  *
1168
  * strip_methods => true | false : apply for upload type only
1169
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1170
  */
1171
 
1172
  public function admin_forms( $options, $form_key, $option_name = '', $form_messages = array() ) {
@@ -1217,7 +1278,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1217
  <div class="a3rev_panel_container" style="visibility:hidden; height:0; overflow:hidden;" >
1218
  <form action="" method="post">
1219
  <?php do_action( $this->plugin_name . '-' . trim( $form_key ) . '_settings_start' ); ?>
 
1220
  <?php
 
 
 
1221
  $count_heading = 0;
1222
  $end_heading_id = false;
1223
  $header_box_opening = false;
@@ -1269,7 +1334,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1269
  $description = $tip = '';
1270
  }
1271
 
1272
- if ( $description && in_array( $value['type'], array( 'manual_check_version', 'textarea', 'radio', 'onoff_radio', 'typography', 'border', 'border_styles', 'border_corner', 'box_shadow', 'array_textfields', 'wp_editor', 'upload' ) ) ) {
1273
  $description = '<div class="desc" style="margin-bottom:5px;">' . $description . '</div>';
1274
  } elseif ( $description ) {
1275
  $description = '<span class="description" style="margin-left:5px;">' . $description . '</span>';
@@ -1283,6 +1348,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1283
  * [default_value_height] : apply for image_size type
1284
  *
1285
  * [default_value_size] : apply for typography type
 
1286
  * [default_value_face] : apply for typography type
1287
  * [default_value_style] : apply for typography, border, border_styles types
1288
  * [default_value_color] : apply for typography, border, border_styles types
@@ -1305,6 +1371,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1305
  } elseif ( $value['type'] == 'typography' ) {
1306
  if ( ! is_array( $value['default'] ) ) $value['default'] = array();
1307
  if ( ! isset( $value['default']['size'] ) ) $value['default']['size'] = '';
 
1308
  if ( ! isset( $value['default']['face'] ) ) $value['default']['face'] = '';
1309
  if ( ! isset( $value['default']['style'] ) ) $value['default']['style'] = '';
1310
  if ( ! isset( $value['default']['color'] ) || trim( $value['default']['color'] ) == '' ) $value['default']['color'] = '#515151';
@@ -1416,9 +1483,112 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1416
  $id_attribute = esc_attr( $option_name ) . '_' . $id_attribute;
1417
  }
1418
 
 
 
 
 
 
1419
  // Switch based on type
1420
  switch( $value['type'] ) {
1421
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1422
  // Heading
1423
  case 'heading':
1424
 
@@ -1433,7 +1603,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1433
  }
1434
 
1435
  $count_heading++;
1436
- if ( $count_heading > 1 ) {
1437
  if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
1438
  echo '</table>' . "\n\n";
1439
  echo '</div>' . "\n\n";
@@ -1504,11 +1674,20 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1504
  }
1505
  }
1506
 
 
 
 
 
 
 
 
 
 
1507
  // open panel box
1508
  echo '<div id="'. esc_attr( $value['id'] ) . '" class="a3rev_panel_box '. esc_attr( $value['class'] ) .'" style="'. esc_attr( $value['css'] ) .'">' . "\n\n";
1509
 
1510
  // open box handle
1511
- echo '<div data-form-key="'. esc_attr( trim( $form_key ) ) .'" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle" >' . "\n\n";
1512
 
1513
  echo ( ! empty( $value['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. esc_html( $value['name'] ) .' '. $view_doc .'</h3>' : '';
1514
 
@@ -1545,6 +1724,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1545
  echo '</div>' . "\n\n";
1546
  }
1547
 
 
 
1548
  echo '<table class="form-table">' . "\n\n";
1549
 
1550
  if ( ! empty( $value['id'] ) ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $value['id'] ) . '_start' );
@@ -1555,13 +1736,13 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1555
 
1556
  $google_api_key = $this->settings_get_option( $this->google_api_key_option );
1557
  $google_api_key_enable = $this->settings_get_option( $this->google_api_key_option . '_enable', 0 );
1558
- if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3_lazy_load' );
1559
- if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3_lazy_load' );
1560
 
1561
  ?><tr valign="top">
1562
  <th scope="row" class="titledesc">
1563
  <?php echo $tip; ?>
1564
- <label for="<?php echo $this->google_api_key_option; ?>"><?php echo __( 'Google Fonts API', 'a3_lazy_load' ); ?></label>
1565
  </th>
1566
  <td class="forminp forminp-onoff_checkbox forminp-<?php echo sanitize_title( $value['type'] ) ?>">
1567
  <input
@@ -1573,11 +1754,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1573
  type="checkbox"
1574
  value="1"
1575
  <?php checked( $google_api_key_enable, 1 ); ?>
1576
- /> <span class="description" style="margin-left:5px;"><?php echo __( 'ON to connect to Google Fonts API and have auto font updates direct from Google.', 'a3_lazy_load' ); ?></span>
1577
 
1578
  <div>&nbsp;</div>
1579
  <div class="a3rev-ui-google-api-key-container" style="<?php if( 1 != $google_api_key_enable ) { echo 'display: none;'; } ?>">
1580
- <div class="a3rev-ui-google-api-key-description"><?php echo sprintf( __( "Enter your existing Google Fonts API Key below. Don't have a key? Visit <a href='%s' target='_blank'>Google Developer API</a> to create a key", 'a3_lazy_load' ), 'https://developers.google.com/fonts/docs/developer_api#APIKey' ); ?></div>
1581
  <div class="a3rev-ui-google-api-key-inside
1582
  <?php
1583
  if ( $a3_lazy_load_fonts_face->is_valid_google_api_key() ) {
@@ -1594,11 +1775,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1594
  style="<?php echo esc_attr( $value['css'] ); ?>"
1595
  value="<?php echo esc_attr( $google_api_key ); ?>"
1596
  class="a3rev-ui-text a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?> <?php echo esc_attr( $value['class'] ); ?>"
1597
- placeholder="<?php echo __( 'Google Fonts API Key', 'a3_lazy_load' ); ?>"
1598
  <?php echo implode( ' ', $custom_attributes ); ?>
1599
  />
1600
- <p class="a3rev-ui-google-valid-key-message"><?php echo __( 'Your Google API Key is valid and automatic font updates are enabled.', 'a3_lazy_load' ); ?></p>
1601
- <p class="a3rev-ui-google-unvalid-key-message"><?php echo __( 'Please enter a valid Google API Key.', 'a3_lazy_load' ); ?></p>
1602
  </div>
1603
  </div>
1604
  </td>
@@ -1617,7 +1798,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1617
  ?><tr valign="top">
1618
  <th scope="row" class="titledesc">
1619
  <?php echo $tip; ?>
1620
- <label><?php echo __( 'Check New Version', 'a3_lazy_load' ); ?></label>
1621
  </th>
1622
  <td class="forminp forminp-manual_check_version">
1623
  <?php echo $description; ?>
@@ -1628,7 +1809,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1628
  id="<?php echo $this->plugin_name . '-check-version'; ?>"
1629
  class="button button-primary a3rev-ui-manual_check_version"
1630
  type="button"
1631
- value="<?php echo __( 'Check Now', 'a3_lazy_load' ); ?>"
1632
  /> <span class="a3rev-ui-version-checking"> </span>
1633
  <p class="a3rev-ui-check-version-message <?php echo $new_version_class; ?>"><?php echo $version_message; ?></p>
1634
 
@@ -1637,17 +1818,175 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1637
 
1638
  break;
1639
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1640
  // Toggle Box Open type
1641
  case 'onoff_toggle_box' :
1642
 
1643
  $option_value = $this->settings_get_option( $this->toggle_box_open_option, 0 );
1644
- if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3_lazy_load' );
1645
- if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3_lazy_load' );
1646
 
1647
  ?><tr valign="top">
1648
  <th scope="row" class="titledesc">
1649
  <?php echo $tip; ?>
1650
- <label for="<?php echo $this->toggle_box_open_option; ?>"><?php echo __( 'Open Box Display', 'a3_lazy_load' ); ?></label>
1651
  </th>
1652
  <td class="forminp forminp-onoff_checkbox forminp-<?php echo sanitize_title( $value['type'] ) ?>">
1653
  <input
@@ -1660,7 +1999,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1660
  value="1"
1661
  <?php checked( $option_value, 1 ); ?>
1662
  <?php echo implode( ' ', $custom_attributes ); ?>
1663
- /> <span class="description" style="margin-left:5px;"><?php echo __( 'ON and each admin panel setting box OPEN | CLOSED position are saved each time changes are SAVED.', 'a3_lazy_load' ); ?></span>
1664
  </td>
1665
  </tr><?php
1666
  break;
@@ -1741,8 +2080,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1741
  name="<?php echo $name_attribute; ?>[enable]"
1742
  id="<?php echo $id_attribute; ?>"
1743
  class="a3rev-ui-bg_color-enable a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
1744
- checked_label="<?php _e( 'ON', 'a3_lazy_load' ); ?>"
1745
- unchecked_label="<?php _e( 'OFF', 'a3_lazy_load' ); ?>"
1746
  type="checkbox"
1747
  value="1"
1748
  <?php checked( 1, $enable ); ?>
@@ -1815,6 +2154,26 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1815
  <?php
1816
  if ( is_array( $value['options'] ) && count( $value['options'] ) > 0 ) {
1817
  foreach ( $value['options'] as $key => $val ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1818
  ?>
1819
  <option value="<?php echo esc_attr( $key ); ?>" <?php
1820
 
@@ -1825,6 +2184,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1825
 
1826
  ?>><?php echo $val ?></option>
1827
  <?php
 
1828
  }
1829
  }
1830
  ?>
@@ -1889,8 +2249,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1889
  <?php
1890
  if ( is_array( $value['onoff_options'] ) && count( $value['onoff_options'] ) > 0 ) {
1891
  foreach ( $value['onoff_options'] as $i_option ) {
1892
- if ( ! isset( $i_option['checked_label'] ) ) $i_option['checked_label'] = __( 'ON', 'a3_lazy_load' );
1893
- if ( ! isset( $i_option['unchecked_label'] ) ) $i_option['unchecked_label'] = __( 'OFF', 'a3_lazy_load' );
1894
  if ( ! isset( $i_option['val'] ) ) $i_option['val'] = 1;
1895
  if ( ! isset( $i_option['text'] ) ) $i_option['text'] = '';
1896
  ?>
@@ -1979,8 +2339,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1979
  case 'onoff_checkbox' :
1980
 
1981
  if ( ! isset( $value['checked_value'] ) ) $value['checked_value'] = 1;
1982
- if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3_lazy_load' );
1983
- if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3_lazy_load' );
1984
 
1985
  ?><tr valign="top">
1986
  <th scope="row" class="titledesc">
@@ -2008,8 +2368,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2008
  case 'switcher_checkbox' :
2009
 
2010
  if ( ! isset( $value['checked_value'] ) ) $value['checked_value'] = 1;
2011
- if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3_lazy_load' );
2012
- if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3_lazy_load' );
2013
 
2014
  ?><tr valign="top">
2015
  <th scope="row" class="titledesc">
@@ -2044,11 +2404,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2044
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2045
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2046
 
2047
- <label><?php _e( 'Width', 'a3_lazy_load' ); ?> <input name="<?php echo $name_attribute; ?>[width]" id="<?php echo $id_attribute; ?>-width" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-width" value="<?php echo $width; ?>" /></label>
2048
 
2049
- <label><?php _e( 'Height', 'a3_lazy_load' ); ?> <input name="<?php echo $name_attribute; ?>[height]" id="<?php echo $id_attribute; ?>-height" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-height" value="<?php echo $height; ?>" /></label>
2050
 
2051
- <label><?php _e( 'Hard Crop', 'a3_lazy_load' ); ?> <input name="<?php echo $name_attribute; ?>[crop]" id="<?php echo $id_attribute; ?>-crop" type="checkbox" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-crop" <?php echo $crop; ?> /></label>
2052
 
2053
  </td>
2054
  </tr><?php
@@ -2082,17 +2442,22 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2082
  </td>
2083
  </tr><?php
2084
  break;
2085
-
2086
  // Font Control
2087
  case 'typography':
2088
-
2089
  $default_color = ' data-default-color="' . esc_attr( $value['default']['color'] ) . '"';
2090
-
2091
- $size = $option_value['size'];
2092
- $face = $option_value['face'];
2093
- $style = $option_value['style'];
2094
- $color = $option_value['color'];
2095
-
 
 
 
 
 
2096
  ?><tr valign="top">
2097
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2098
  <td class="forminp">
@@ -2113,15 +2478,30 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2113
  <?php
2114
  }
2115
  ?>
2116
- </select>
2117
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2118
  <!-- Font Face -->
2119
  <select
2120
  name="<?php echo $name_attribute; ?>[face]"
2121
  id="<?php echo $id_attribute; ?>-face"
2122
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-face chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2123
  >
2124
- <optgroup label="<?php _e( '-- Default Fonts --', 'a3_lazy_load' ); ?>">
2125
  <?php
2126
  foreach ( $a3_lazy_load_fonts_face->get_default_fonts() as $val => $text ) {
2127
  ?>
@@ -2132,7 +2512,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2132
  }
2133
  ?>
2134
  </optgroup>
2135
- <optgroup label="<?php _e( '-- Google Fonts --', 'a3_lazy_load' ); ?>">
2136
  <?php
2137
  foreach ( $a3_lazy_load_fonts_face->get_google_fonts() as $font ) {
2138
  ?>
@@ -2173,7 +2553,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2173
  />
2174
 
2175
  <!-- Preview Button -->
2176
- <div class="a3rev-ui-typography-preview"><a href="#" class="a3rev-ui-typography-preview-button button submit-button" title="<?php _e( 'Preview your customized typography settings', 'a3_lazy_load'); ?>"><span>&nbsp;</span></a></div>
2177
 
2178
  </div>
2179
 
@@ -2235,7 +2615,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2235
  ?><tr valign="top">
2236
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2237
  <td class="forminp forminp-border_corner">
2238
- <?php echo $description; ?>
2239
  <div class="a3rev-ui-settings-control">
2240
  <!-- Border Width -->
2241
  <select
@@ -2282,8 +2662,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2282
  />
2283
 
2284
  <!-- Preview Button -->
2285
- <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border settings', 'a3_lazy_load'); ?>"><span>&nbsp;</span></a></div>
2286
-
2287
  <div style="clear:both; margin-bottom:10px"></div>
2288
 
2289
  <!-- Border Corner : Rounded or Square -->
@@ -2291,8 +2671,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2291
  name="<?php echo $name_attribute; ?>[corner]"
2292
  id="<?php echo $id_attribute; ?>"
2293
  class="a3rev-ui-border-corner a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2294
- checked_label="<?php _e( 'Rounded', 'a3_lazy_load' ); ?>"
2295
- unchecked_label="<?php _e( 'Square', 'a3_lazy_load' ); ?>"
2296
  type="checkbox"
2297
  value="rounded"
2298
  <?php checked( 'rounded', $corner ); ?>
@@ -2302,7 +2682,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2302
  <!-- Border Rounded Value -->
2303
  <div class="a3rev-ui-border-corner-value-container">
2304
  <div class="a3rev-ui-border_corner-top_left">
2305
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Left Corner', 'a3_lazy_load' ); ?></span>
2306
  <div class="a3rev-ui-slide-container">
2307
  <div class="a3rev-ui-slide-container-start">
2308
  <div class="a3rev-ui-slide-container-end">
@@ -2322,7 +2702,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2322
  </div>
2323
  </div>
2324
  <div class="a3rev-ui-border_corner-top_right">
2325
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Right Corner', 'a3_lazy_load' ); ?></span>
2326
  <div class="a3rev-ui-slide-container">
2327
  <div class="a3rev-ui-slide-container-start">
2328
  <div class="a3rev-ui-slide-container-end">
@@ -2342,7 +2722,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2342
  </div>
2343
  </div>
2344
  <div class="a3rev-ui-border_corner-bottom_right">
2345
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Right Corner', 'a3_lazy_load' ); ?></span>
2346
  <div class="a3rev-ui-slide-container">
2347
  <div class="a3rev-ui-slide-container-start">
2348
  <div class="a3rev-ui-slide-container-end">
@@ -2362,7 +2742,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2362
  </div>
2363
  </div>
2364
  <div class="a3rev-ui-border_corner-bottom_left">
2365
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Left Corner', 'a3_lazy_load' ); ?></span>
2366
  <div class="a3rev-ui-slide-container">
2367
  <div class="a3rev-ui-slide-container-start">
2368
  <div class="a3rev-ui-slide-container-end">
@@ -2402,7 +2782,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2402
  ?><tr valign="top">
2403
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2404
  <td class="forminp">
2405
- <?php echo $description; ?>
2406
  <div class="a3rev-ui-settings-control">
2407
  <!-- Border Width -->
2408
  <select
@@ -2449,7 +2829,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2449
  />
2450
 
2451
  <!-- Preview Button -->
2452
- <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border styles settings', 'a3_lazy_load'); ?>"><span>&nbsp;</span></a></div>
 
2453
  </div>
2454
 
2455
  </td>
@@ -2500,15 +2881,14 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2500
  ?><tr valign="top">
2501
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2502
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2503
- <?php echo $description; ?>
2504
  <div class="a3rev-ui-settings-control">
2505
  <!-- Border Corner : Rounded or Square -->
2506
  <input
2507
  name="<?php echo $name_attribute; ?>[corner]"
2508
  id="<?php echo $id_attribute; ?>"
2509
  class="a3rev-ui-border-corner a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2510
- checked_label="<?php _e( 'Rounded', 'a3_lazy_load' ); ?>"
2511
- unchecked_label="<?php _e( 'Square', 'a3_lazy_load' ); ?>"
2512
  type="checkbox"
2513
  value="rounded"
2514
  <?php checked( 'rounded', $corner ); ?>
@@ -2516,12 +2896,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2516
  />
2517
 
2518
  <!-- Preview Button -->
2519
- <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border settings', 'a3_lazy_load'); ?>"><span>&nbsp;</span></a></div>
2520
-
2521
  <!-- Border Rounded Value -->
2522
  <div class="a3rev-ui-border-corner-value-container">
2523
  <div class="a3rev-ui-border_corner-top_left">
2524
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Left Corner', 'a3_lazy_load' ); ?></span>
2525
  <div class="a3rev-ui-slide-container">
2526
  <div class="a3rev-ui-slide-container-start">
2527
  <div class="a3rev-ui-slide-container-end">
@@ -2541,7 +2921,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2541
  </div>
2542
  </div>
2543
  <div class="a3rev-ui-border_corner-top_right">
2544
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Right Corner', 'a3_lazy_load' ); ?></span>
2545
  <div class="a3rev-ui-slide-container">
2546
  <div class="a3rev-ui-slide-container-start">
2547
  <div class="a3rev-ui-slide-container-end">
@@ -2561,7 +2941,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2561
  </div>
2562
  </div>
2563
  <div class="a3rev-ui-border_corner-bottom_right">
2564
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Right Corner', 'a3_lazy_load' ); ?></span>
2565
  <div class="a3rev-ui-slide-container">
2566
  <div class="a3rev-ui-slide-container-start">
2567
  <div class="a3rev-ui-slide-container-end">
@@ -2581,7 +2961,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2581
  </div>
2582
  </div>
2583
  <div class="a3rev-ui-border_corner-bottom_left">
2584
- <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Left Corner', 'a3_lazy_load' ); ?></span>
2585
  <div class="a3rev-ui-slide-container">
2586
  <div class="a3rev-ui-slide-container-start">
2587
  <div class="a3rev-ui-slide-container-end">
@@ -2627,18 +3007,18 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2627
  ?><tr valign="top">
2628
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2629
  <td class="forminp forminp-box_shadow">
2630
- <?php echo $description; ?>
2631
  <input
2632
  name="<?php echo $name_attribute; ?>[enable]"
2633
  id="<?php echo $id_attribute; ?>"
2634
  class="a3rev-ui-box_shadow-enable a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2635
- checked_label="<?php _e( 'YES', 'a3_lazy_load' ); ?>"
2636
- unchecked_label="<?php _e( 'NO', 'a3_lazy_load' ); ?>"
2637
  type="checkbox"
2638
  value="1"
2639
  <?php checked( 1, $enable ); ?>
2640
  <?php echo implode( ' ', $custom_attributes ); ?>
2641
  />
 
2642
  <div style="clear:both;"></div>
2643
  <div class="a3rev-ui-box_shadow-enable-container">
2644
  <div class="a3rev-ui-settings-control">
@@ -2647,7 +3027,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2647
  name="<?php echo $name_attribute; ?>[h_shadow]"
2648
  id="<?php echo $id_attribute; ?>-h_shadow"
2649
  class="a3rev-ui-box_shadow-h_shadow chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2650
- data-placeholder="<?php _e( 'Horizontal Shadow', 'a3_lazy_load' ); ?>"
2651
  >
2652
  <?php
2653
  for ( $i = -20; $i <= 20; $i++ ) {
@@ -2665,7 +3045,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2665
  name="<?php echo $name_attribute; ?>[v_shadow]"
2666
  id="<?php echo $id_attribute; ?>-v_shadow"
2667
  class="a3rev-ui-box_shadow-v_shadow chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2668
- data-placeholder="<?php _e( 'Vertical Shadow', 'a3_lazy_load' ); ?>"
2669
  >
2670
  <?php
2671
  for ( $i = -20; $i <= 20; $i++ ) {
@@ -2683,7 +3063,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2683
  name="<?php echo $name_attribute; ?>[blur]"
2684
  id="<?php echo $id_attribute; ?>-blur"
2685
  class="a3rev-ui-box_shadow-blur chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2686
- data-placeholder="<?php _e( 'Blur Distance', 'a3_lazy_load' ); ?>"
2687
  >
2688
  <?php
2689
  for ( $i = 0; $i <= 20; $i++ ) {
@@ -2701,7 +3081,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2701
  name="<?php echo $name_attribute; ?>[spread]"
2702
  id="<?php echo $id_attribute; ?>-spread"
2703
  class="a3rev-ui-box_shadow-spread chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2704
- data-placeholder="<?php _e( 'Spread Size', 'a3_lazy_load' ); ?>"
2705
  >
2706
  <?php
2707
  for ( $i = 0; $i <= 20; $i++ ) {
@@ -2719,8 +3099,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2719
  name="<?php echo $name_attribute; ?>[inset]"
2720
  id="<?php echo $id_attribute; ?>"
2721
  class="a3rev-ui-box_shadow-inset a3rev-ui-onoff_checkbox"
2722
- checked_label="<?php _e( 'INNER', 'a3_lazy_load' ); ?>"
2723
- unchecked_label="<?php _e( 'OUTER', 'a3_lazy_load' ); ?>"
2724
  type="checkbox"
2725
  value="inset"
2726
  <?php checked( 'inset', $inset ); ?>
@@ -2738,7 +3118,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2738
  />
2739
 
2740
  <!-- Preview Button -->
2741
- <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-box_shadow-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized box shadow settings', 'a3_lazy_load'); ?>"><span>&nbsp;</span></a></div>
2742
  </div>
2743
  <div style="clear:both;"></div>
2744
  </div>
@@ -2976,7 +3356,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2976
  }
2977
  }
2978
 
2979
- if ( $end_heading_id !== false ) {
2980
  if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
2981
  echo '</table>' . "\n\n";
2982
  echo '</div>' . "\n\n";
@@ -3003,11 +3383,17 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3003
  echo '</div>' . "\n\n";
3004
  }
3005
 
 
 
 
 
 
3006
  ?>
 
3007
  <?php do_action( $this->plugin_name . '-' . trim( $form_key ) . '_settings_end' ); ?>
3008
  <p class="submit">
3009
- <input type="submit" value="<?php _e('Save changes', 'a3_lazy_load'); ?>" class="button button-primary" name="bt_save_settings" />
3010
- <input type="submit" name="bt_reset_settings" class="button" value="<?php _e('Reset Settings', 'a3_lazy_load'); ?>" />
3011
  <input type="hidden" name="form_name_action" value="<?php echo $form_key; ?>" />
3012
  <input type="hidden" class="last_tab" name="subtab" value="#<?php echo $current_subtab; ?>" />
3013
  </p>
59
 
60
  if ( is_admin() && isset( $_REQUEST['page'] ) && in_array( $_REQUEST['page'], $admin_pages ) ) {
61
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_script_load' ) );
62
+ add_action( 'admin_enqueue_scripts', array( $this, 'register_modal_scripts' ), 0 );
63
  do_action( $this->plugin_name . '_init_scripts' );
64
 
65
  add_action( 'admin_print_scripts', array( $this, 'admin_localize_printed_scripts' ), 5 );
84
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
85
  wp_register_style( 'font-awesome-styles', $this->admin_plugin_url() . '/assets/css/font-awesome' . $suffix . '.css', array(), '4.5.0', 'all' );
86
  }
87
+
88
+ public function register_modal_scripts() {
89
+ $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
90
+ wp_register_style( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/css/modal' . $suffix . '.css', array(), '4.0.0', 'all' );
91
+ wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.0.0', false );
92
+ wp_register_script( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/js/bootstrap/modal' . $suffix . '.js', array( 'jquery', 'bootstrap-util' ), '4.0.0', false );
93
+ }
94
 
95
  /*-----------------------------------------------------------------------------------*/
96
  /* admin_script_load */
111
  wp_register_script( 'a3rev-settings-preview', $this->admin_plugin_url() . '/assets/js/a3rev-settings-preview.js', array('jquery'), false, true );
112
  wp_register_script( 'jquery-tiptip', $this->admin_plugin_url() . '/assets/js/tipTip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), true, true );
113
  wp_register_script( 'a3rev-metabox-ui', $this->admin_plugin_url() . '/assets/js/data-meta-boxes.js', array( 'jquery' ), true, true );
114
+ wp_register_script( 'jquery-rwd-image-maps', $this->admin_plugin_url() . '/assets/js/rwdImageMaps/jquery.rwdImageMaps.min.js', array( 'jquery' ), true, true );
115
 
116
  wp_enqueue_script( 'jquery' );
117
  wp_enqueue_script( 'wp-color-picker' );
183
  $version_message = $this->get_version_message();
184
  $has_new_version = 1;
185
  if ( '' == trim( $version_message ) ) {
186
+ $version_message = __( 'Great! You have the latest version installed.', 'a3-lazy-load' );
187
  $has_new_version = 0;
188
  } else {
189
  delete_option('a3_lazy_load_clean_on_deletion');
222
  /* admin_css_load */
223
  /*-----------------------------------------------------------------------------------*/
224
 
225
+ public function admin_css_load () {
 
 
226
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
227
 
228
  wp_enqueue_style( 'a3rev-admin-ui-style', $this->admin_plugin_url() . '/assets/css/admin-ui-style' . $suffix . '.css' );
229
 
230
+ wp_enqueue_style( 'a3rev-admin-flat-ui-style', $this->admin_plugin_url() . '/assets/css/admin-flat-ui-style' . $suffix . '.css' );
 
 
231
  wp_enqueue_style( 'wp-color-picker' );
232
  wp_enqueue_style( 'a3rev-chosen-new-style', $this->admin_plugin_url() . '/assets/js/chosen/chosen' . $suffix . '.css' );
233
  wp_enqueue_style( 'a3rev-tiptip-style', $this->admin_plugin_url() . '/assets/js/tipTip/tipTip.css' );
244
  /* get_success_message */
245
  /*-----------------------------------------------------------------------------------*/
246
  public function get_success_message( $message = '' ) {
247
+ if ( trim( $message ) == '' ) $message = __( 'Settings successfully saved.' , 'a3-lazy-load' );
248
  return '<div class="updated" id=""><p>' . $message . '</p></div>';
249
  }
250
 
252
  /* get_error_message */
253
  /*-----------------------------------------------------------------------------------*/
254
  public function get_error_message( $message = '' ) {
255
+ if ( trim( $message ) == '' ) $message = __( 'Error: Settings can not save.' , 'a3-lazy-load' );
256
  return '<div class="error" id=""><p>' . $message . '</p></div>';
257
  }
258
 
260
  /* get_reset_message */
261
  /*-----------------------------------------------------------------------------------*/
262
  public function get_reset_message( $message = '' ) {
263
+ if ( trim( $message ) == '' ) $message = __( 'Settings successfully reseted.' , 'a3-lazy-load' );
264
  return '<div class="updated" id=""><p>' . $message . '</p></div>';
265
  }
266
 
281
  /*-----------------------------------------------------------------------------------*/
282
  public function get_font_weights() {
283
  $font_weights = array (
284
+ '300' => __( 'Thin', 'a3-lazy-load' ),
285
+ '300 italic' => __( 'Thin/Italic', 'a3-lazy-load' ),
286
+ 'normal' => __( 'Normal', 'a3-lazy-load' ),
287
+ 'italic' => __( 'Italic', 'a3-lazy-load' ),
288
+ 'bold' => __( 'Bold', 'a3-lazy-load' ),
289
+ 'bold italic' => __( 'Bold/Italic', 'a3-lazy-load' ),
290
  );
291
  return apply_filters( $this->plugin_name . '_font_weights', $font_weights );
292
  }
296
  /*-----------------------------------------------------------------------------------*/
297
  public function get_border_styles() {
298
  $border_styles = array (
299
+ 'solid' => __( 'Solid', 'a3-lazy-load' ),
300
+ 'double' => __( 'Double', 'a3-lazy-load' ),
301
+ 'dashed' => __( 'Dashed', 'a3-lazy-load' ),
302
+ 'dotted' => __( 'Dotted', 'a3-lazy-load' ),
303
+ 'groove' => __( 'Groove', 'a3-lazy-load' ),
304
+ 'ridge' => __( 'Ridge', 'a3-lazy-load' ),
305
+ 'inset' => __( 'Inset', 'a3-lazy-load' ),
306
+ 'outset' => __( 'Outset', 'a3-lazy-load' ),
307
  );
308
  return apply_filters( $this->plugin_name . '_border_styles', $border_styles );
309
  }
372
  } else {
373
  $id_attribute = esc_attr( $value['id'] );
374
  }
375
+
376
+ // Backward compatibility to old settings don't have line_height option for typography
377
+ if ( 'typography' == $value['type'] && ! isset( $value['default']['line_height'] ) ) {
378
+ $value['default']['line_height'] = '1.4em';
379
+ }
380
+
381
  $default_settings[$id_attribute] = $value['default'];
382
 
383
  break;
403
 
404
  // Get settings for option values is an array and it's in single option name for all settings
405
  if ( trim( $option_name ) != '' ) {
406
+ global ${$option_name};
407
 
408
  $default_settings = $this->get_settings_default( $options, $option_name );
409
 
421
  // Get settings for option value is stored as a record or it's spearate option
422
  foreach ( $options as $value ) {
423
  if ( ! isset( $value['type'] ) ) continue;
424
+ if ( in_array( $value['type'], array( 'row', 'column', 'heading', 'ajax_submit', 'ajax_multi_submit' ) ) ) continue;
425
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
426
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
427
 
442
  }
443
 
444
  if ( trim( $option_name ) == '' || $value['separate_option'] != false ) {
445
+ global ${$id_attribute};
446
 
447
  $current_setting = get_option( $id_attribute, $value['default'] );
448
 
462
  $current_setting = array_map( array( $this, 'admin_stripslashes' ), $current_setting );
463
  elseif ( ! is_null( $current_setting ) )
464
  $current_setting = esc_attr( stripslashes( $current_setting ) );
465
+
466
+ // Backward compatibility to old settings don't have line_height option for typography
467
+ if ( 'typography' == $value['type'] && ! isset( $current_setting['line_height'] ) ) {
468
+ $current_setting['line_height'] = '1.4em';
469
+ }
470
+
471
  break;
472
  }
473
 
497
 
498
  foreach ( $options as $value ) {
499
  if ( ! isset( $value['type'] ) ) continue;
500
+ if ( in_array( $value['type'], array( 'row', 'column', 'heading', 'ajax_submit', 'ajax_multi_submit' ) ) ) continue;
501
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
502
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
503
  if ( ! isset( $value['free_version'] ) ) $value['free_version'] = false;
547
  // Get settings for option value is stored as a record or it's spearate option
548
  foreach ( $options as $value ) {
549
  if ( ! isset( $value['type'] ) ) continue;
550
+ if ( in_array( $value['type'], array( 'row', 'column', 'heading', 'ajax_submit', 'ajax_multi_submit' ) ) ) continue;
551
 
552
  // Save for global settings of plugin framework
553
  switch ( $value['type'] ) {
868
  if ( $free_version ) {
869
  foreach ( $options as $value ) {
870
  if ( ! isset( $value['type'] ) ) continue;
871
+ if ( in_array( $value['type'], array( 'row', 'column', 'heading', 'ajax_submit', 'ajax_multi_submit' ) ) ) continue;
872
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
873
 
874
  switch ( $value['type'] ) {
912
  // Update settings default for option value is stored as a record or it's spearate option
913
  foreach ( $options as $value ) {
914
  if ( ! isset( $value['type'] ) ) continue;
915
+ if ( in_array( $value['type'], array( 'row', 'column', 'heading', 'ajax_submit', 'ajax_multi_submit' ) ) ) continue;
916
  if ( ! isset( $value['id'] ) || trim( $value['id'] ) == '' ) continue;
917
  if ( ! isset( $value['default'] ) ) $value['default'] = '';
918
  if ( ! isset( $value['free_version'] ) ) $value['free_version'] = false;
1107
  * @return void
1108
  * ========================================================================
1109
  * Option Array Structure :
1110
+ * type => row | column | heading | ajax_submit | ajax_multi_submit | google_api_key | onoff_toggle_box | text | email | number | password | color | bg_color | textarea | select | multiselect | radio | onoff_radio | checkbox | onoff_checkbox
1111
  * | switcher_checkbox | image_size | single_select_page | typography | border | border_styles | border_corner | box_shadow
1112
  * | slider | upload | wp_editor | array_textfields |
1113
  *
1119
  * default => text : apply for other types
1120
  * array( 'enable' => 1, 'color' => '#515151' ) : apply bg_color only
1121
  * array( 'width' => '125', 'height' => '125', 'crop' => 1 ) : apply image_size only
1122
+ * array( 'size' => '9px', line_height => '1.4em', 'face' => 'Arial', 'style' => 'normal', 'color' => '#515151' ) : apply for typography only
1123
  * array( 'width' => '1px', 'style' => 'normal', 'color' => '#515151', 'corner' => 'rounded' | 'square' , 'top_left_corner' => 3,
1124
  * 'top_right_corner' => 3, 'bottom_left_corner' => 3, 'bottom_right_corner' => 3 ) : apply for border only
1125
  * array( 'width' => '1px', 'style' => 'normal', 'color' => '#515151' ) : apply for border_styles only
1183
  *
1184
  * strip_methods => true | false : apply for upload type only
1185
  *
1186
+ * submit_data => array : apply for ajax_submit only
1187
+ * ---------------- example ---------------------
1188
+ * array(
1189
+ * 'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ),
1190
+ * 'ajax_type' => 'POST',
1191
+ * 'data' => array(
1192
+ * 'action' => 'action_name',
1193
+ * ),
1194
+ * ),
1195
+ * button_name => text : apply for ajax_submit, ajax_multi_submit only
1196
+ * progressing_text => text : apply for ajax_submit, ajax_multi_submit only
1197
+ * completed_text => text : apply for ajax_submit, ajax_multi_submit only
1198
+ * successed_text => text : apply for ajax_submit, ajax_multi_submit only
1199
+ *
1200
+ * statistic_column => number : apply for ajax_multi_submit only
1201
+ * resubmit => true | false : apply for ajax_multi_submit only
1202
+ *
1203
+ * multi_submit => array : apply for ajax_multi_submit only
1204
+ * ---------------- example ---------------------
1205
+ * array(
1206
+ * array(
1207
+ * 'item_id' => 'item_ajax_id',
1208
+ * 'item_name' => 'Item Ajax Name',
1209
+ * 'current_items' => 20,
1210
+ * 'total_items' => 20,
1211
+ * 'progressing_text' => 'Processing,
1212
+ * 'completed_text' => 'Completed',
1213
+ * 'submit_data' => array(
1214
+ * 'ajax_url' => admin_url( 'admin-ajax.php', 'relative' ),
1215
+ * 'ajax_type' => 'POST',
1216
+ * 'data' => array(
1217
+ * 'action' => 'action_name',
1218
+ * )
1219
+ * ),
1220
+ * 'show_statistic' => true,
1221
+ * 'statistic_customizer' => array(
1222
+ * 'current_color' => '#96587d',
1223
+ * ),
1224
+ * ),
1225
+ * array(
1226
+ * ...
1227
+ * ),
1228
+ * ...
1229
+ * )
1230
+ *
1231
  */
1232
 
1233
  public function admin_forms( $options, $form_key, $option_name = '', $form_messages = array() ) {
1278
  <div class="a3rev_panel_container" style="visibility:hidden; height:0; overflow:hidden;" >
1279
  <form action="" method="post">
1280
  <?php do_action( $this->plugin_name . '-' . trim( $form_key ) . '_settings_start' ); ?>
1281
+ <div class="a3rev_panel_row"> <!-- Open Panel Row -->
1282
  <?php
1283
+ $had_first_row = false;
1284
+ $had_first_column = false;
1285
+ $closed_panel_inner = false;
1286
  $count_heading = 0;
1287
  $end_heading_id = false;
1288
  $header_box_opening = false;
1334
  $description = $tip = '';
1335
  }
1336
 
1337
+ if ( $description && in_array( $value['type'], array( 'manual_check_version', 'ajax_submit', 'ajax_multi_submit', 'textarea', 'radio', 'onoff_radio', 'typography', 'border', 'border_styles', 'array_textfields', 'wp_editor', 'upload' ) ) ) {
1338
  $description = '<div class="desc" style="margin-bottom:5px;">' . $description . '</div>';
1339
  } elseif ( $description ) {
1340
  $description = '<span class="description" style="margin-left:5px;">' . $description . '</span>';
1348
  * [default_value_height] : apply for image_size type
1349
  *
1350
  * [default_value_size] : apply for typography type
1351
+ * [default_value_line_height] : apply for typography type
1352
  * [default_value_face] : apply for typography type
1353
  * [default_value_style] : apply for typography, border, border_styles types
1354
  * [default_value_color] : apply for typography, border, border_styles types
1371
  } elseif ( $value['type'] == 'typography' ) {
1372
  if ( ! is_array( $value['default'] ) ) $value['default'] = array();
1373
  if ( ! isset( $value['default']['size'] ) ) $value['default']['size'] = '';
1374
+ if ( ! isset( $value['default']['line_height'] ) ) $value['default']['line_height'] = '';
1375
  if ( ! isset( $value['default']['face'] ) ) $value['default']['face'] = '';
1376
  if ( ! isset( $value['default']['style'] ) ) $value['default']['style'] = '';
1377
  if ( ! isset( $value['default']['color'] ) || trim( $value['default']['color'] ) == '' ) $value['default']['color'] = '#515151';
1483
  $id_attribute = esc_attr( $option_name ) . '_' . $id_attribute;
1484
  }
1485
 
1486
+ // Update id attribute if current element is child of array
1487
+ if ( $child_key != false ) {
1488
+ $id_attribute .= '_' . $child_key;
1489
+ }
1490
+
1491
  // Switch based on type
1492
  switch( $value['type'] ) {
1493
 
1494
+ // Row
1495
+ case 'row':
1496
+
1497
+ if ( $end_heading_id !== false && ! $closed_panel_inner ) {
1498
+ if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
1499
+ echo '</table>' . "\n\n";
1500
+ echo '</div>' . "\n\n";
1501
+ if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_after' );
1502
+
1503
+ $closed_panel_inner = true;
1504
+ }
1505
+
1506
+ if ( $header_sub_box_opening ) {
1507
+ $header_sub_box_opening = false;
1508
+
1509
+ // close box inside
1510
+ echo '</div>' . "\n\n";
1511
+
1512
+ // close panel box
1513
+ echo '</div>' . "\n\n";
1514
+ }
1515
+
1516
+ if ( $header_box_opening ) {
1517
+ $header_box_opening = false;
1518
+
1519
+ // close box inside
1520
+ echo '</div>' . "\n\n";
1521
+
1522
+ // close panel box
1523
+ echo '</div>' . "\n\n";
1524
+ }
1525
+
1526
+ if ( $had_first_column ) {
1527
+ // close panel column
1528
+ echo '</div>' . "\n\n";
1529
+ }
1530
+
1531
+ if ( $had_first_row ) {
1532
+ // close panel row
1533
+ echo '</div>' . "\n\n";
1534
+
1535
+ // open panel column
1536
+ echo '<div class="a3rev_panel_row">' . "\n\n";
1537
+ }
1538
+
1539
+ $had_first_column = false;
1540
+ $had_first_row = true;
1541
+
1542
+ break;
1543
+
1544
+ // Column
1545
+ case 'column':
1546
+
1547
+ if ( $end_heading_id !== false && ! $closed_panel_inner ) {
1548
+ if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
1549
+ echo '</table>' . "\n\n";
1550
+ echo '</div>' . "\n\n";
1551
+ if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_after' );
1552
+
1553
+ $closed_panel_inner = true;
1554
+ }
1555
+
1556
+ if ( $header_sub_box_opening ) {
1557
+ $header_sub_box_opening = false;
1558
+
1559
+ // close box inside
1560
+ echo '</div>' . "\n\n";
1561
+
1562
+ // close panel box
1563
+ echo '</div>' . "\n\n";
1564
+ }
1565
+
1566
+ if ( $header_box_opening ) {
1567
+ $header_box_opening = false;
1568
+
1569
+ // close box inside
1570
+ echo '</div>' . "\n\n";
1571
+
1572
+ // close panel box
1573
+ echo '</div>' . "\n\n";
1574
+ }
1575
+
1576
+ if ( $had_first_column ) {
1577
+ // close panel column
1578
+ echo '</div>' . "\n\n";
1579
+
1580
+ // open panel column
1581
+ echo '<div class="a3rev_panel_column">' . "\n\n";
1582
+ } else {
1583
+ // open panel column
1584
+ echo '<div class="a3rev_panel_column">' . "\n\n";
1585
+ }
1586
+
1587
+ $had_first_column = true;
1588
+ $had_first_row = true;
1589
+
1590
+ break;
1591
+
1592
  // Heading
1593
  case 'heading':
1594
 
1603
  }
1604
 
1605
  $count_heading++;
1606
+ if ( $count_heading > 1 && ! $closed_panel_inner ) {
1607
  if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
1608
  echo '</table>' . "\n\n";
1609
  echo '</div>' . "\n\n";
1674
  }
1675
  }
1676
 
1677
+ $box_handle_class = '';
1678
+ if ( isset( $value['is_active'] ) && true == $value['is_active'] ) {
1679
+ $box_handle_class .= 'box_active';
1680
+ }
1681
+
1682
+ if ( isset( $_GET['box_open'] ) && $_GET['box_open'] == $value['id'] ) {
1683
+ $opened_class = 'box_open';
1684
+ }
1685
+
1686
  // open panel box
1687
  echo '<div id="'. esc_attr( $value['id'] ) . '" class="a3rev_panel_box '. esc_attr( $value['class'] ) .'" style="'. esc_attr( $value['css'] ) .'">' . "\n\n";
1688
 
1689
  // open box handle
1690
+ echo '<div data-form-key="'. esc_attr( trim( $form_key ) ) .'" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle ' . $box_handle_class .'" >' . "\n\n";
1691
 
1692
  echo ( ! empty( $value['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. esc_html( $value['name'] ) .' '. $view_doc .'</h3>' : '';
1693
 
1724
  echo '</div>' . "\n\n";
1725
  }
1726
 
1727
+ $closed_panel_inner = false;
1728
+
1729
  echo '<table class="form-table">' . "\n\n";
1730
 
1731
  if ( ! empty( $value['id'] ) ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $value['id'] ) . '_start' );
1736
 
1737
  $google_api_key = $this->settings_get_option( $this->google_api_key_option );
1738
  $google_api_key_enable = $this->settings_get_option( $this->google_api_key_option . '_enable', 0 );
1739
+ if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3-lazy-load' );
1740
+ if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3-lazy-load' );
1741
 
1742
  ?><tr valign="top">
1743
  <th scope="row" class="titledesc">
1744
  <?php echo $tip; ?>
1745
+ <label for="<?php echo $this->google_api_key_option; ?>"><?php echo __( 'Google Fonts API', 'a3-lazy-load' ); ?></label>
1746
  </th>
1747
  <td class="forminp forminp-onoff_checkbox forminp-<?php echo sanitize_title( $value['type'] ) ?>">
1748
  <input
1754
  type="checkbox"
1755
  value="1"
1756
  <?php checked( $google_api_key_enable, 1 ); ?>
1757
+ /> <span class="description" style="margin-left:5px;"><?php echo __( 'ON to connect to Google Fonts API and have auto font updates direct from Google.', 'a3-lazy-load' ); ?></span>
1758
 
1759
  <div>&nbsp;</div>
1760
  <div class="a3rev-ui-google-api-key-container" style="<?php if( 1 != $google_api_key_enable ) { echo 'display: none;'; } ?>">
1761
+ <div class="a3rev-ui-google-api-key-description"><?php echo sprintf( __( "Enter your existing Google Fonts API Key below. Don't have a key? Visit <a href='%s' target='_blank'>Google Developer API</a> to create a key", 'a3-lazy-load' ), 'https://developers.google.com/fonts/docs/developer_api#APIKey' ); ?></div>
1762
  <div class="a3rev-ui-google-api-key-inside
1763
  <?php
1764
  if ( $a3_lazy_load_fonts_face->is_valid_google_api_key() ) {
1775
  style="<?php echo esc_attr( $value['css'] ); ?>"
1776
  value="<?php echo esc_attr( $google_api_key ); ?>"
1777
  class="a3rev-ui-text a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?> <?php echo esc_attr( $value['class'] ); ?>"
1778
+ placeholder="<?php echo __( 'Google Fonts API Key', 'a3-lazy-load' ); ?>"
1779
  <?php echo implode( ' ', $custom_attributes ); ?>
1780
  />
1781
+ <p class="a3rev-ui-google-valid-key-message"><?php echo __( 'Your Google API Key is valid and automatic font updates are enabled.', 'a3-lazy-load' ); ?></p>
1782
+ <p class="a3rev-ui-google-unvalid-key-message"><?php echo __( 'Please enter a valid Google API Key.', 'a3-lazy-load' ); ?></p>
1783
  </div>
1784
  </div>
1785
  </td>
1798
  ?><tr valign="top">
1799
  <th scope="row" class="titledesc">
1800
  <?php echo $tip; ?>
1801
+ <label><?php echo __( 'Check New Version', 'a3-lazy-load' ); ?></label>
1802
  </th>
1803
  <td class="forminp forminp-manual_check_version">
1804
  <?php echo $description; ?>
1809
  id="<?php echo $this->plugin_name . '-check-version'; ?>"
1810
  class="button button-primary a3rev-ui-manual_check_version"
1811
  type="button"
1812
+ value="<?php echo __( 'Check Now', 'a3-lazy-load' ); ?>"
1813
  /> <span class="a3rev-ui-version-checking"> </span>
1814
  <p class="a3rev-ui-check-version-message <?php echo $new_version_class; ?>"><?php echo $version_message; ?></p>
1815
 
1818
 
1819
  break;
1820
 
1821
+ // Ajax Submit type
1822
+ case 'ajax_submit' :
1823
+ $button_name = $value['button_name'];
1824
+ $progressing_text = $value['progressing_text'];
1825
+ $completed_text = $value['completed_text'];
1826
+ $successed_text = $value['successed_text'];
1827
+ $submit_data = json_encode( $value['submit_data'] );
1828
+
1829
+ ?><tr valign="top">
1830
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
1831
+ <td class="forminp">
1832
+
1833
+ <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
1834
+
1835
+ <button
1836
+ name="<?php echo $name_attribute; ?>"
1837
+ id="<?php echo $id_attribute; ?>"
1838
+ data-submit_data="<?php echo esc_attr( $submit_data ); ?>"
1839
+ type="button"
1840
+ class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-button <?php echo esc_attr( $value['class'] ); ?>"
1841
+ style="<?php echo esc_attr( $value['css'] ); ?>"
1842
+ <?php echo implode( ' ', $custom_attributes ); ?>
1843
+ ><?php echo $button_name; ?></button>
1844
+ <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-successed"><?php echo $successed_text; ?></span>
1845
+ <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-errors"></span>
1846
+
1847
+ <!-- Progress Bar -->
1848
+ <div class="a3rev-ui-progress-bar-wrap">
1849
+ <div class="a3rev-ui-progress-inner"></div>
1850
+ <div class="a3rev-ui-progressing-text"><?php echo $progressing_text; ?></div>
1851
+ <div class="a3rev-ui-completed-text"><?php echo $completed_text; ?></div>
1852
+ </div>
1853
+
1854
+ </div>
1855
+ <?php echo $description; ?>
1856
+ </td>
1857
+ </tr><?php
1858
+
1859
+ break;
1860
+
1861
+ // Ajax Multi Submit type
1862
+ case 'ajax_multi_submit' :
1863
+ $resubmit = $value['resubmit'];
1864
+ $button_name = $value['button_name'];
1865
+ $progressing_text = $value['progressing_text'];
1866
+ $completed_text = $value['completed_text'];
1867
+ $successed_text = $value['successed_text'];
1868
+ $statistic_column = isset( $value['statistic_column'] ) ? $value['statistic_column'] : 1;
1869
+
1870
+ $multi_current_items = 0;
1871
+ $multi_total_items = 0;
1872
+
1873
+ $multi_submit = $value['multi_submit'];
1874
+ $multi_ajax = array();
1875
+ if ( is_array( $multi_submit ) && count( $multi_submit ) > 0 ) {
1876
+ $number_ajax = 0;
1877
+ $old_item_id = '';
1878
+ foreach ( $multi_submit as $single_submit ) {
1879
+ $multi_current_items += (int) $single_submit['current_items'];
1880
+ $multi_total_items += (int) $single_submit['total_items'];
1881
+
1882
+ $single_submit['next_item_id'] = '';
1883
+ $multi_ajax[$single_submit['item_id']] = $single_submit;
1884
+
1885
+ if ( $number_ajax > 0 ) {
1886
+ $multi_ajax[$old_item_id]['next_item_id'] = $single_submit['item_id'];
1887
+ }
1888
+ $old_item_id = $single_submit['item_id'];
1889
+
1890
+ $number_ajax++;
1891
+ }
1892
+ }
1893
+ $multi_ajax = json_encode( $multi_ajax );
1894
+
1895
+ ?><tr valign="top">
1896
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
1897
+ <td class="forminp">
1898
+
1899
+ <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
1900
+ <?php echo $description; ?>
1901
+ <button
1902
+ data-resubmit="<?php echo $resubmit ? 1 : 0 ; ?>"
1903
+ name="<?php echo $name_attribute; ?>"
1904
+ id="<?php echo $id_attribute; ?>"
1905
+ data-multi_ajax="<?php echo esc_attr( $multi_ajax ); ?>"
1906
+ type="button"
1907
+ class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-button <?php echo esc_attr( $value['class'] ); ?>"
1908
+ style="<?php echo esc_attr( $value['css'] ); ?>"
1909
+ <?php echo implode( ' ', $custom_attributes ); ?>
1910
+ ><?php echo $button_name; ?></button>
1911
+ <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-successed"><?php echo $successed_text; ?></span>
1912
+ <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-errors"></span>
1913
+
1914
+ <!-- Progress Bar -->
1915
+ <div class="a3rev-ui-progress-bar-wrap">
1916
+ <div class="a3rev-ui-progress-inner" data-current="<?php echo $multi_current_items; ?>" data-total="<?php echo $multi_total_items; ?>" ></div>
1917
+ <div class="a3rev-ui-progressing-text"><?php echo $progressing_text; ?></div>
1918
+ <div class="a3rev-ui-completed-text"><?php echo $completed_text; ?></div>
1919
+ </div>
1920
+ <div style="clear: both;"></div>
1921
+
1922
+ <!-- Status Object -->
1923
+ <div class="a3rev-ui-statistics-wrap">
1924
+ <?php if ( $multi_total_items > 0 ) {
1925
+ $column_width = round( (100 / $statistic_column ), 2, PHP_ROUND_HALF_DOWN );
1926
+ foreach ( $multi_submit as $single_submit ) {
1927
+
1928
+ $current_items = (int) $single_submit['current_items'];
1929
+ $total_items = (int) $single_submit['total_items'];
1930
+
1931
+ // Calculate deg value for cirlce
1932
+ $current_deg = 360;
1933
+ $left_deg = 360;
1934
+ $right_deg = 180;
1935
+ $pie_class = 'pie-more-50';
1936
+ if ( $current_items < $total_items ) {
1937
+ $current_deg = round( ( $current_items / $total_items ) * 360 );
1938
+ }
1939
+ if ( $current_deg <= 180 ) {
1940
+ $left_deg = $right_deg = $current_deg;
1941
+ $pie_class = '';
1942
+ } else {
1943
+ $right_deg = 180;
1944
+ $left_deg = $current_deg;
1945
+ }
1946
+
1947
+ $statistic_customizer = isset ( $single_submit['statistic_customizer'] ) ? $single_submit['statistic_customizer'] : false;
1948
+ if ( $statistic_customizer ) {
1949
+ $current_color = isset( $statistic_customizer['current_color'] ) ? $statistic_customizer['current_color'] : '';
1950
+ }
1951
+ ?>
1952
+ <div style="<?php echo ( isset( $single_submit['show_statistic'] ) && ! $single_submit['show_statistic'] ) ? 'display:none;' : ''; ?> width: <?php echo $column_width; ?>%;" class="a3rev-ui-statistic-item a3rev-ui-statistic-<?php echo esc_attr( $single_submit['item_id'] ); ?>">
1953
+ <div class="a3rev-ui-pie-wrap">
1954
+ <div class="a3rev-ui-pie <?php echo esc_attr( $pie_class); ?>">
1955
+ <div class="a3rev-ui-pie-left-side a3rev-ui-pie-half-circle" style="transform: rotate(<?php echo $left_deg; ?>deg); <?php echo ( ! empty( $current_color ) ? 'border-color:' . $current_color : '' ); ?>"></div>
1956
+ <div class="a3rev-ui-pie-right-side a3rev-ui-pie-half-circle" style="transform: rotate(<?php echo $right_deg; ?>deg); <?php echo ( ! empty( $current_color ) ? 'border-color:' . $current_color : '' ); ?>"></div>
1957
+ </div>
1958
+ <div class="a3rev-ui-pie-shadow"></div>
1959
+ </div>
1960
+ <div class="a3rev-ui-statistic-text">
1961
+ <span class="a3rev-ui-statistic-current-item" data-current="<?php echo $current_items; ?>" ><?php echo $current_items; ?></span>
1962
+ <span class="a3rev-ui-statistic-separate">/</span>
1963
+ <span class="a3rev-ui-statistic-total-item"><?php echo $total_items; ?></span>
1964
+ <br />
1965
+ <span class="a3rev-ui-statistic-item-name"><?php echo $single_submit['item_name']; ?></span>
1966
+ </div>
1967
+ </div>
1968
+ <?php
1969
+ }
1970
+ } ?>
1971
+ </div>
1972
+ <div style="clear: both;"></div>
1973
+ </div>
1974
+ </td>
1975
+ </tr><?php
1976
+
1977
+ break;
1978
+
1979
  // Toggle Box Open type
1980
  case 'onoff_toggle_box' :
1981
 
1982
  $option_value = $this->settings_get_option( $this->toggle_box_open_option, 0 );
1983
+ if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3-lazy-load' );
1984
+ if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3-lazy-load' );
1985
 
1986
  ?><tr valign="top">
1987
  <th scope="row" class="titledesc">
1988
  <?php echo $tip; ?>
1989
+ <label for="<?php echo $this->toggle_box_open_option; ?>"><?php echo __( 'Open Box Display', 'a3-lazy-load' ); ?></label>
1990
  </th>
1991
  <td class="forminp forminp-onoff_checkbox forminp-<?php echo sanitize_title( $value['type'] ) ?>">
1992
  <input
1999
  value="1"
2000
  <?php checked( $option_value, 1 ); ?>
2001
  <?php echo implode( ' ', $custom_attributes ); ?>
2002
+ /> <span class="description" style="margin-left:5px;"><?php echo __( 'ON and each admin panel setting box OPEN | CLOSED position are saved each time changes are SAVED.', 'a3-lazy-load' ); ?></span>
2003
  </td>
2004
  </tr><?php
2005
  break;
2080
  name="<?php echo $name_attribute; ?>[enable]"
2081
  id="<?php echo $id_attribute; ?>"
2082
  class="a3rev-ui-bg_color-enable a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2083
+ checked_label="<?php _e( 'ON', 'a3-lazy-load' ); ?>"
2084
+ unchecked_label="<?php _e( 'OFF', 'a3-lazy-load' ); ?>"
2085
  type="checkbox"
2086
  value="1"
2087
  <?php checked( 1, $enable ); ?>
2154
  <?php
2155
  if ( is_array( $value['options'] ) && count( $value['options'] ) > 0 ) {
2156
  foreach ( $value['options'] as $key => $val ) {
2157
+ if ( is_array( $val ) ) {
2158
+ ?>
2159
+ <optgroup label="<?php echo esc_attr( $key ); ?>">
2160
+ <?php
2161
+ foreach ( $val as $sub_key => $sub_val ) {
2162
+ ?>
2163
+ <option value="<?php echo esc_attr( $sub_key ); ?>" <?php
2164
+
2165
+ if ( is_array( $option_value ) )
2166
+ selected( in_array( $sub_key, $option_value ), true );
2167
+ else
2168
+ selected( $option_value, $sub_key );
2169
+
2170
+ ?>><?php echo $sub_val ?></option>
2171
+ <?php
2172
+ }
2173
+ ?>
2174
+ </optgroup>
2175
+ <?php
2176
+ } else {
2177
  ?>
2178
  <option value="<?php echo esc_attr( $key ); ?>" <?php
2179
 
2184
 
2185
  ?>><?php echo $val ?></option>
2186
  <?php
2187
+ }
2188
  }
2189
  }
2190
  ?>
2249
  <?php
2250
  if ( is_array( $value['onoff_options'] ) && count( $value['onoff_options'] ) > 0 ) {
2251
  foreach ( $value['onoff_options'] as $i_option ) {
2252
+ if ( ! isset( $i_option['checked_label'] ) ) $i_option['checked_label'] = __( 'ON', 'a3-lazy-load' );
2253
+ if ( ! isset( $i_option['unchecked_label'] ) ) $i_option['unchecked_label'] = __( 'OFF', 'a3-lazy-load' );
2254
  if ( ! isset( $i_option['val'] ) ) $i_option['val'] = 1;
2255
  if ( ! isset( $i_option['text'] ) ) $i_option['text'] = '';
2256
  ?>
2339
  case 'onoff_checkbox' :
2340
 
2341
  if ( ! isset( $value['checked_value'] ) ) $value['checked_value'] = 1;
2342
+ if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3-lazy-load' );
2343
+ if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3-lazy-load' );
2344
 
2345
  ?><tr valign="top">
2346
  <th scope="row" class="titledesc">
2368
  case 'switcher_checkbox' :
2369
 
2370
  if ( ! isset( $value['checked_value'] ) ) $value['checked_value'] = 1;
2371
+ if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3-lazy-load' );
2372
+ if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3-lazy-load' );
2373
 
2374
  ?><tr valign="top">
2375
  <th scope="row" class="titledesc">
2404
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2405
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2406
 
2407
+ <label><?php _e( 'Width', 'a3-lazy-load' ); ?> <input name="<?php echo $name_attribute; ?>[width]" id="<?php echo $id_attribute; ?>-width" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-width" value="<?php echo $width; ?>" /></label>
2408
 
2409
+ <label><?php _e( 'Height', 'a3-lazy-load' ); ?> <input name="<?php echo $name_attribute; ?>[height]" id="<?php echo $id_attribute; ?>-height" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-height" value="<?php echo $height; ?>" /></label>
2410
 
2411
+ <label><?php _e( 'Hard Crop', 'a3-lazy-load' ); ?> <input name="<?php echo $name_attribute; ?>[crop]" id="<?php echo $id_attribute; ?>-crop" type="checkbox" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-crop" <?php echo $crop; ?> /></label>
2412
 
2413
  </td>
2414
  </tr><?php
2442
  </td>
2443
  </tr><?php
2444
  break;
2445
+
2446
  // Font Control
2447
  case 'typography':
2448
+
2449
  $default_color = ' data-default-color="' . esc_attr( $value['default']['color'] ) . '"';
2450
+
2451
+ if ( ! isset( $option_value['line_height'] ) ) {
2452
+ $option_value['line_height'] = '1.4em';
2453
+ }
2454
+
2455
+ $size = $option_value['size'];
2456
+ $line_height = $option_value['line_height'];
2457
+ $face = $option_value['face'];
2458
+ $style = $option_value['style'];
2459
+ $color = $option_value['color'];
2460
+
2461
  ?><tr valign="top">
2462
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2463
  <td class="forminp">
2478
  <?php
2479
  }
2480
  ?>
2481
+ </select>
2482
+ <!-- Line Height -->
2483
+ <select
2484
+ name="<?php echo $name_attribute; ?>[line_height]"
2485
+ id="<?php echo $id_attribute; ?>-line_height"
2486
+ class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-line_height chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2487
+ >
2488
+ <?php
2489
+ for ( $i = 0.6; $i <= 3.1; $i = $i + 0.1 ) {
2490
+ ?>
2491
+ <option value="<?php echo esc_attr( $i ); ?>em" <?php
2492
+ selected( $line_height, $i.'em' );
2493
+ ?>><?php echo esc_attr( $i ); ?>em</option>
2494
+ <?php
2495
+ }
2496
+ ?>
2497
+ </select>
2498
  <!-- Font Face -->
2499
  <select
2500
  name="<?php echo $name_attribute; ?>[face]"
2501
  id="<?php echo $id_attribute; ?>-face"
2502
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-face chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
2503
  >
2504
+ <optgroup label="<?php _e( '-- Default Fonts --', 'a3-lazy-load' ); ?>">
2505
  <?php
2506
  foreach ( $a3_lazy_load_fonts_face->get_default_fonts() as $val => $text ) {
2507
  ?>
2512
  }
2513
  ?>
2514
  </optgroup>
2515
+ <optgroup label="<?php _e( '-- Google Fonts --', 'a3-lazy-load' ); ?>">
2516
  <?php
2517
  foreach ( $a3_lazy_load_fonts_face->get_google_fonts() as $font ) {
2518
  ?>
2553
  />
2554
 
2555
  <!-- Preview Button -->
2556
+ <div class="a3rev-ui-typography-preview"><a href="#" class="a3rev-ui-typography-preview-button button submit-button" title="<?php _e( 'Preview your customized typography settings', 'a3-lazy-load' ); ?>"><span>&nbsp;</span></a></div>
2557
 
2558
  </div>
2559
 
2615
  ?><tr valign="top">
2616
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2617
  <td class="forminp forminp-border_corner">
2618
+ <?php echo $description; ?>
2619
  <div class="a3rev-ui-settings-control">
2620
  <!-- Border Width -->
2621
  <select
2662
  />
2663
 
2664
  <!-- Preview Button -->
2665
+ <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border settings', 'a3-lazy-load' ); ?>"><span>&nbsp;</span></a></div>
2666
+ <span class="description" style="margin-left:5px;"><?php echo __( '0px = No Border', 'a3-lazy-load' ); ?></span>
2667
  <div style="clear:both; margin-bottom:10px"></div>
2668
 
2669
  <!-- Border Corner : Rounded or Square -->
2671
  name="<?php echo $name_attribute; ?>[corner]"
2672
  id="<?php echo $id_attribute; ?>"
2673
  class="a3rev-ui-border-corner a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2674
+ checked_label="<?php _e( 'Rounded', 'a3-lazy-load' ); ?>"
2675
+ unchecked_label="<?php _e( 'Square', 'a3-lazy-load' ); ?>"
2676
  type="checkbox"
2677
  value="rounded"
2678
  <?php checked( 'rounded', $corner ); ?>
2682
  <!-- Border Rounded Value -->
2683
  <div class="a3rev-ui-border-corner-value-container">
2684
  <div class="a3rev-ui-border_corner-top_left">
2685
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Left Corner', 'a3-lazy-load' ); ?></span>
2686
  <div class="a3rev-ui-slide-container">
2687
  <div class="a3rev-ui-slide-container-start">
2688
  <div class="a3rev-ui-slide-container-end">
2702
  </div>
2703
  </div>
2704
  <div class="a3rev-ui-border_corner-top_right">
2705
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Right Corner', 'a3-lazy-load' ); ?></span>
2706
  <div class="a3rev-ui-slide-container">
2707
  <div class="a3rev-ui-slide-container-start">
2708
  <div class="a3rev-ui-slide-container-end">
2722
  </div>
2723
  </div>
2724
  <div class="a3rev-ui-border_corner-bottom_right">
2725
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Right Corner', 'a3-lazy-load' ); ?></span>
2726
  <div class="a3rev-ui-slide-container">
2727
  <div class="a3rev-ui-slide-container-start">
2728
  <div class="a3rev-ui-slide-container-end">
2742
  </div>
2743
  </div>
2744
  <div class="a3rev-ui-border_corner-bottom_left">
2745
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Left Corner', 'a3-lazy-load' ); ?></span>
2746
  <div class="a3rev-ui-slide-container">
2747
  <div class="a3rev-ui-slide-container-start">
2748
  <div class="a3rev-ui-slide-container-end">
2782
  ?><tr valign="top">
2783
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2784
  <td class="forminp">
2785
+ <?php echo $description; ?>
2786
  <div class="a3rev-ui-settings-control">
2787
  <!-- Border Width -->
2788
  <select
2829
  />
2830
 
2831
  <!-- Preview Button -->
2832
+ <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border styles settings', 'a3-lazy-load' ); ?>"><span>&nbsp;</span></a></div>
2833
+ <span class="description" style="margin-left:5px;"><?php echo __( '0px = No Border', 'a3-lazy-load' ); ?></span>
2834
  </div>
2835
 
2836
  </td>
2881
  ?><tr valign="top">
2882
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2883
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
 
2884
  <div class="a3rev-ui-settings-control">
2885
  <!-- Border Corner : Rounded or Square -->
2886
  <input
2887
  name="<?php echo $name_attribute; ?>[corner]"
2888
  id="<?php echo $id_attribute; ?>"
2889
  class="a3rev-ui-border-corner a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
2890
+ checked_label="<?php _e( 'Rounded', 'a3-lazy-load' ); ?>"
2891
+ unchecked_label="<?php _e( 'Square', 'a3-lazy-load' ); ?>"
2892
  type="checkbox"
2893
  value="rounded"
2894
  <?php checked( 'rounded', $corner ); ?>
2896
  />
2897
 
2898
  <!-- Preview Button -->
2899
+ <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-border-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized border settings', 'a3-lazy-load' ); ?>"><span>&nbsp;</span></a></div>
2900
+ <?php echo $description; ?>
2901
  <!-- Border Rounded Value -->
2902
  <div class="a3rev-ui-border-corner-value-container">
2903
  <div class="a3rev-ui-border_corner-top_left">
2904
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Left Corner', 'a3-lazy-load' ); ?></span>
2905
  <div class="a3rev-ui-slide-container">
2906
  <div class="a3rev-ui-slide-container-start">
2907
  <div class="a3rev-ui-slide-container-end">
2921
  </div>
2922
  </div>
2923
  <div class="a3rev-ui-border_corner-top_right">
2924
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Top Right Corner', 'a3-lazy-load' ); ?></span>
2925
  <div class="a3rev-ui-slide-container">
2926
  <div class="a3rev-ui-slide-container-start">
2927
  <div class="a3rev-ui-slide-container-end">
2941
  </div>
2942
  </div>
2943
  <div class="a3rev-ui-border_corner-bottom_right">
2944
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Right Corner', 'a3-lazy-load' ); ?></span>
2945
  <div class="a3rev-ui-slide-container">
2946
  <div class="a3rev-ui-slide-container-start">
2947
  <div class="a3rev-ui-slide-container-end">
2961
  </div>
2962
  </div>
2963
  <div class="a3rev-ui-border_corner-bottom_left">
2964
+ <span class="a3rev-ui-border_corner-span"><?php _e( 'Bottom Left Corner', 'a3-lazy-load' ); ?></span>
2965
  <div class="a3rev-ui-slide-container">
2966
  <div class="a3rev-ui-slide-container-start">
2967
  <div class="a3rev-ui-slide-container-end">
3007
  ?><tr valign="top">
3008
  <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
3009
  <td class="forminp forminp-box_shadow">
 
3010
  <input
3011
  name="<?php echo $name_attribute; ?>[enable]"
3012
  id="<?php echo $id_attribute; ?>"
3013
  class="a3rev-ui-box_shadow-enable a3rev-ui-onoff_checkbox <?php echo esc_attr( $value['class'] ); ?>"
3014
+ checked_label="<?php _e( 'ON', 'a3-lazy-load' ); ?>"
3015
+ unchecked_label="<?php _e( 'OFF', 'a3-lazy-load' ); ?>"
3016
  type="checkbox"
3017
  value="1"
3018
  <?php checked( 1, $enable ); ?>
3019
  <?php echo implode( ' ', $custom_attributes ); ?>
3020
  />
3021
+ <?php echo $description; ?>
3022
  <div style="clear:both;"></div>
3023
  <div class="a3rev-ui-box_shadow-enable-container">
3024
  <div class="a3rev-ui-settings-control">
3027
  name="<?php echo $name_attribute; ?>[h_shadow]"
3028
  id="<?php echo $id_attribute; ?>-h_shadow"
3029
  class="a3rev-ui-box_shadow-h_shadow chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
3030
+ data-placeholder="<?php _e( 'Horizontal Shadow', 'a3-lazy-load' ); ?>"
3031
  >
3032
  <?php
3033
  for ( $i = -20; $i <= 20; $i++ ) {
3045
  name="<?php echo $name_attribute; ?>[v_shadow]"
3046
  id="<?php echo $id_attribute; ?>-v_shadow"
3047
  class="a3rev-ui-box_shadow-v_shadow chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
3048
+ data-placeholder="<?php _e( 'Vertical Shadow', 'a3-lazy-load' ); ?>"
3049
  >
3050
  <?php
3051
  for ( $i = -20; $i <= 20; $i++ ) {
3063
  name="<?php echo $name_attribute; ?>[blur]"
3064
  id="<?php echo $id_attribute; ?>-blur"
3065
  class="a3rev-ui-box_shadow-blur chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
3066
+ data-placeholder="<?php _e( 'Blur Distance', 'a3-lazy-load' ); ?>"
3067
  >
3068
  <?php
3069
  for ( $i = 0; $i <= 20; $i++ ) {
3081
  name="<?php echo $name_attribute; ?>[spread]"
3082
  id="<?php echo $id_attribute; ?>-spread"
3083
  class="a3rev-ui-box_shadow-spread chzn-select <?php if ( is_rtl() ) { echo 'chzn-rtl'; } ?>"
3084
+ data-placeholder="<?php _e( 'Spread Size', 'a3-lazy-load' ); ?>"
3085
  >
3086
  <?php
3087
  for ( $i = 0; $i <= 20; $i++ ) {
3099
  name="<?php echo $name_attribute; ?>[inset]"
3100
  id="<?php echo $id_attribute; ?>"
3101
  class="a3rev-ui-box_shadow-inset a3rev-ui-onoff_checkbox"
3102
+ checked_label="<?php _e( 'INNER', 'a3-lazy-load' ); ?>"
3103
+ unchecked_label="<?php _e( 'OUTER', 'a3-lazy-load' ); ?>"
3104
  type="checkbox"
3105
  value="inset"
3106
  <?php checked( 'inset', $inset ); ?>
3118
  />
3119
 
3120
  <!-- Preview Button -->
3121
+ <div class="a3rev-ui-settings-preview"><a href="#" class="a3rev-ui-box_shadow-preview-button a3rev-ui-settings-preview-button button submit-button" title="<?php _e( 'Preview your customized box shadow settings', 'a3-lazy-load' ); ?>"><span>&nbsp;</span></a></div>
3122
  </div>
3123
  <div style="clear:both;"></div>
3124
  </div>
3356
  }
3357
  }
3358
 
3359
+ if ( $end_heading_id !== false && ! $closed_panel_inner ) {
3360
  if ( trim( $end_heading_id ) != '' ) do_action( $this->plugin_name . '_settings_' . sanitize_title( $end_heading_id ) . '_end' );
3361
  echo '</table>' . "\n\n";
3362
  echo '</div>' . "\n\n";
3383
  echo '</div>' . "\n\n";
3384
  }
3385
 
3386
+ if ( $had_first_column ) {
3387
+ // close panel column
3388
+ echo '</div>' . "\n\n";
3389
+ }
3390
+
3391
  ?>
3392
+ </div> <!-- Close Panel Row -->
3393
  <?php do_action( $this->plugin_name . '-' . trim( $form_key ) . '_settings_end' ); ?>
3394
  <p class="submit">
3395
+ <input type="submit" value="<?php _e('Save changes', 'a3-lazy-load' ); ?>" class="button button-primary" name="bt_save_settings" />
3396
+ <input type="submit" name="bt_reset_settings" class="button" value="<?php _e('Reset Settings', 'a3-lazy-load' ); ?>" />
3397
  <input type="hidden" name="form_name_action" value="<?php echo $form_key; ?>" />
3398
  <input type="hidden" class="last_tab" name="subtab" value="#<?php echo $current_subtab; ?>" />
3399
  </p>
admin/admin-pages/admin-settings-page.php CHANGED
@@ -59,8 +59,8 @@ class A3_Lazy_Load_Settings_Page extends A3_Lazy_Load_Admin_UI
59
  $page_data = array(
60
  'type' => 'submenu',
61
  'parent_slug' => 'options-general.php',
62
- 'page_title' => __('a3 Lazy Load','a3_lazy_load'),
63
- 'menu_title' => __('a3 Lazy Load','a3_lazy_load'),
64
  'capability' => 'manage_options',
65
  'menu_slug' => $this->menu_slug,
66
  'function' => 'a3_lazy_load_settings_page_show',
59
  $page_data = array(
60
  'type' => 'submenu',
61
  'parent_slug' => 'options-general.php',
62
+ 'page_title' => __('a3 Lazy Load','a3-lazy-load' ),
63
+ 'menu_title' => __('a3 Lazy Load','a3-lazy-load' ),
64
  'capability' => 'manage_options',
65
  'menu_slug' => $this->menu_slug,
66
  'function' => 'a3_lazy_load_settings_page_show',
admin/admin-ui.php CHANGED
@@ -106,14 +106,14 @@ class A3_Lazy_Load_Admin_UI
106
  */
107
  public function get_premium_video_data() {
108
  $premium_video_data = array(
109
- 'box_title' => __( 'Premium Version Enhanced Features', 'a3_lazy_load' ),
110
  'image_url' => A3_LAZY_LOAD_IMAGES_URL. '/video.jpg',
111
  'video_url' => 'https://www.youtube.com/embed/9dGw-ORfMIk?version=3&autoplay=1',
112
- 'left_title' => __( 'Premium Version Enhanced Features', 'a3_lazy_load' ),
113
- 'left_text' => __( 'WooCommerce Dynamic Gallery Premium', 'a3_lazy_load' )
114
- . "\n\n" . __( 'Quick Video showing the main (not all) enhanced features that are built into the WooCommerce Dynamic Gallery Premium version', 'a3_lazy_load' ),
115
- 'right_title' => __( 'Developer Support and Premium Features', 'a3_lazy_load' ),
116
- 'right_text' => __( 'Limited Time Offer. Purchase the Premium Version Lifetime License. That is a Lifetime of maintenance updates, feature upgrades and developer support for a once only fee. Offer ending soon.', 'a3_lazy_load' )
117
  . "\n\n" . '<a target="_blank" href="'.$this->pro_plugin_page_url.'" class="button-primary">' . __( 'Get Premium Features and Support', '' ) . '</a>',
118
  );
119
 
@@ -262,10 +262,10 @@ class A3_Lazy_Load_Admin_UI
262
  /*-----------------------------------------------------------------------------------*/
263
  public function upgrade_top_message( $echo = false, $setting_id = '' ) {
264
  $upgrade_top_message = sprintf( '<div class="pro_feature_top_message">'
265
- . __( 'Advanced Settings - Upgrade to the <a href="%s" target="_blank">%s License</a> to activate these settings.', 'a3_lazy_load' )
266
  . '</div>'
267
  , apply_filters( $this->plugin_name . '_' . $setting_id . '_pro_plugin_page_url', apply_filters( $this->plugin_name . '_pro_plugin_page_url', $this->pro_plugin_page_url ) )
268
- , apply_filters( $this->plugin_name . '_' . $setting_id . '_pro_version_name', apply_filters( $this->plugin_name . '_pro_version_name', __( 'Pro Version', 'a3_lazy_load' ) ) )
269
  );
270
 
271
  $upgrade_top_message = apply_filters( $this->plugin_name . '_upgrade_top_message', $upgrade_top_message, $setting_id );
@@ -315,9 +315,9 @@ class A3_Lazy_Load_Admin_UI
315
  $transient_timeout = '_transient_timeout_' . $this->version_transient;
316
  $timeout = get_option( $transient_timeout, false );
317
  if ( false === $timeout ) {
318
- $version_message = __( 'You should check now to see if have any new version is available', 'a3_lazy_load' );
319
  } elseif ( 'cannot_connect_api' == $version_transient ) {
320
- $version_message = sprintf( __( 'Connection Failure! Please try again. If this issue persists please create a support request on the plugin <a href="%s" target="_blank">a3rev support forum</a>.', 'a3_lazy_load' ), $this->support_url );
321
  } else {
322
  $version_info = explode( '||', $version_transient );
323
  if ( FALSE !== stristr( $version_transient, '||' )
@@ -325,7 +325,7 @@ class A3_Lazy_Load_Admin_UI
325
  && isset( $version_info[1] ) && $version_info[1] == 'valid'
326
  && version_compare( get_option('a3_lazy_load_version') , $version_info[0], '<' ) ) {
327
 
328
- $version_message = sprintf( __( 'There is a new version <span class="a3rev-ui-new-plugin-version">%s</span> available, <a href="%s" target="_blank">update now</a> or download direct from <a href="%s" target="_blank">My Account</a> on a3rev.com', 'a3_lazy_load' ),
329
  $version_info[0],
330
  wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' . A3_LAZY_LOAD_NAME ), 'upgrade-plugin_' . A3_LAZY_LOAD_NAME ),
331
  'https://a3rev.com/my-account/downloads/'
@@ -334,7 +334,7 @@ class A3_Lazy_Load_Admin_UI
334
  }
335
 
336
  } else {
337
- $version_message = __( 'You should check now to see if have any new version is available', 'a3_lazy_load' );
338
  }
339
 
340
  return $version_message;
106
  */
107
  public function get_premium_video_data() {
108
  $premium_video_data = array(
109
+ 'box_title' => __( 'Premium Version Enhanced Features', 'a3-lazy-load' ),
110
  'image_url' => A3_LAZY_LOAD_IMAGES_URL. '/video.jpg',
111
  'video_url' => 'https://www.youtube.com/embed/9dGw-ORfMIk?version=3&autoplay=1',
112
+ 'left_title' => __( 'Premium Version Enhanced Features', 'a3-lazy-load' ),
113
+ 'left_text' => __( 'WooCommerce Dynamic Gallery Premium', 'a3-lazy-load' )
114
+ . "\n\n" . __( 'Quick Video showing the main (not all) enhanced features that are built into the WooCommerce Dynamic Gallery Premium version', 'a3-lazy-load' ),
115
+ 'right_title' => __( 'Developer Support and Premium Features', 'a3-lazy-load' ),
116
+ 'right_text' => __( 'Limited Time Offer. Purchase the Premium Version Lifetime License. That is a Lifetime of maintenance updates, feature upgrades and developer support for a once only fee. Offer ending soon.', 'a3-lazy-load' )
117
  . "\n\n" . '<a target="_blank" href="'.$this->pro_plugin_page_url.'" class="button-primary">' . __( 'Get Premium Features and Support', '' ) . '</a>',
118
  );
119
 
262
  /*-----------------------------------------------------------------------------------*/
263
  public function upgrade_top_message( $echo = false, $setting_id = '' ) {
264
  $upgrade_top_message = sprintf( '<div class="pro_feature_top_message">'
265
+ . __( 'Advanced Settings - Upgrade to the <a href="%s" target="_blank">%s License</a> to activate these settings.', 'a3-lazy-load' )
266
  . '</div>'
267
  , apply_filters( $this->plugin_name . '_' . $setting_id . '_pro_plugin_page_url', apply_filters( $this->plugin_name . '_pro_plugin_page_url', $this->pro_plugin_page_url ) )
268
+ , apply_filters( $this->plugin_name . '_' . $setting_id . '_pro_version_name', apply_filters( $this->plugin_name . '_pro_version_name', __( 'Pro Version', 'a3-lazy-load' ) ) )
269
  );
270
 
271
  $upgrade_top_message = apply_filters( $this->plugin_name . '_upgrade_top_message', $upgrade_top_message, $setting_id );
315
  $transient_timeout = '_transient_timeout_' . $this->version_transient;
316
  $timeout = get_option( $transient_timeout, false );
317
  if ( false === $timeout ) {
318
+ $version_message = __( 'You should check now to see if have any new version is available', 'a3-lazy-load' );
319
  } elseif ( 'cannot_connect_api' == $version_transient ) {
320
+ $version_message = sprintf( __( 'Connection Failure! Please try again. If this issue persists please create a support request on the plugin <a href="%s" target="_blank">a3rev support forum</a>.', 'a3-lazy-load' ), $this->support_url );
321
  } else {
322
  $version_info = explode( '||', $version_transient );
323
  if ( FALSE !== stristr( $version_transient, '||' )
325
  && isset( $version_info[1] ) && $version_info[1] == 'valid'
326
  && version_compare( get_option('a3_lazy_load_version') , $version_info[0], '<' ) ) {
327
 
328
+ $version_message = sprintf( __( 'There is a new version <span class="a3rev-ui-new-plugin-version">%s</span> available, <a href="%s" target="_blank">update now</a> or download direct from <a href="%s" target="_blank">My Account</a> on a3rev.com', 'a3-lazy-load' ),
329
  $version_info[0],
330
  wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' . A3_LAZY_LOAD_NAME ), 'upgrade-plugin_' . A3_LAZY_LOAD_NAME ),
331
  'https://a3rev.com/my-account/downloads/'
334
  }
335
 
336
  } else {
337
+ $version_message = __( 'You should check now to see if have any new version is available', 'a3-lazy-load' );
338
  }
339
 
340
  return $version_message;
admin/assets/css/admin-ui-style.css CHANGED
@@ -18,6 +18,15 @@
18
 
19
  }
20
 
 
 
 
 
 
 
 
 
 
21
  [class^="a3-plugin-ui-"]:before,
22
  [class*=" a3-plugin-ui-"]:before {
23
  font-family: "a3-plugin-framework" !important;
@@ -73,6 +82,33 @@
73
  float: left;
74
  width: 100%;
75
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  .a3rev_panel_container .a3rev_panel_box {
77
  position: relative;
78
  border: 1px solid #e5e5e5;
@@ -106,6 +142,9 @@
106
  left: 10px;
107
  font-size: 20px;
108
  }
 
 
 
109
  .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before {
110
  content: "m";
111
  color: #000;
@@ -165,6 +204,7 @@
165
 
166
  /* Font Control */
167
  .a3rev_panel_container .a3rev-ui-typography-size { width:80px; }
 
168
  .a3rev_panel_container .a3rev-ui-typography-face { width:160px; }
169
  .a3rev_panel_container .a3rev-ui-typography-style { width:100px; }
170
  .a3rev_panel_container .a3rev-ui-typography-preview { display:inline-block; }
@@ -227,6 +267,161 @@
227
  .a3rev_panel_container .a3rev-ui-latest-version-message { background-color: #dff0d8; border: 1px solid #468847; color: #468847; }
228
  .a3rev_panel_container .a3rev-ui-new-version-message { background-color: #ffebe8; border: 1px solid #dd3d36; color: #dd3d36; }
229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  /* Textarea Control */
231
  .a3rev_panel_container .a3rev-ui-textarea { width:600px; max-width:70%; }
232
 
@@ -738,6 +933,26 @@
738
 
739
  /* END A3 Plugin Framework Font Icons */
740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  @media screen and ( min-width: 783px ) {
742
  .a3rev_panel_container .chosen-container-multi {
743
  min-width:300px;
@@ -794,6 +1009,24 @@
794
  .a3-plugin-ui-help-icon {
795
  margin-right:0px;
796
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
797
  }
798
 
799
  @media screen and ( max-width: 600px ) {
18
 
19
  }
20
 
21
+ @-webkit-keyframes progress-bar {
22
+ from { background-position: 0 0;}
23
+ to { background-position: 24px 40px;}
24
+ }
25
+ @keyframes progress-bar {
26
+ from { background-position: 0 0;}
27
+ to { background-position: 24px 40px;}
28
+ }
29
+
30
  [class^="a3-plugin-ui-"]:before,
31
  [class*=" a3-plugin-ui-"]:before {
32
  font-family: "a3-plugin-framework" !important;
82
  float: left;
83
  width: 100%;
84
  }
85
+ .a3rev_panel_container .a3rev_panel_row {
86
+ display: table;
87
+ width: 100%;
88
+ table-layout: fixed;
89
+ clear: both;
90
+ position: relative;
91
+ }
92
+ .a3rev_panel_container .a3rev_panel_row:after {
93
+ display: table;
94
+ clear: both;
95
+ content: '';
96
+ }
97
+ .a3rev_panel_container .a3rev_panel_column {
98
+ display: table-cell;
99
+ width: 50%;
100
+ box-sizing: border-box;
101
+ padding: 0 10px;
102
+ position: relative;
103
+ vertical-align: top;
104
+ }
105
+ .a3rev_panel_container .a3rev_panel_column:last-child {
106
+ padding-right: 0;
107
+ }
108
+ .a3rev_panel_container .a3rev_panel_column:first-child {
109
+ padding-left: 0;
110
+ padding-right: 10px;
111
+ }
112
  .a3rev_panel_container .a3rev_panel_box {
113
  position: relative;
114
  border: 1px solid #e5e5e5;
142
  left: 10px;
143
  font-size: 20px;
144
  }
145
+ .a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before {
146
+ color: #22ef00;
147
+ }
148
  .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before {
149
  content: "m";
150
  color: #000;
204
 
205
  /* Font Control */
206
  .a3rev_panel_container .a3rev-ui-typography-size { width:80px; }
207
+ .a3rev_panel_container .a3rev-ui-typography-line_height { width:80px; }
208
  .a3rev_panel_container .a3rev-ui-typography-face { width:160px; }
209
  .a3rev_panel_container .a3rev-ui-typography-style { width:100px; }
210
  .a3rev_panel_container .a3rev-ui-typography-preview { display:inline-block; }
267
  .a3rev_panel_container .a3rev-ui-latest-version-message { background-color: #dff0d8; border: 1px solid #468847; color: #468847; }
268
  .a3rev_panel_container .a3rev-ui-new-version-message { background-color: #ffebe8; border: 1px solid #dd3d36; color: #dd3d36; }
269
 
270
+ /* Ajax Submit Control */
271
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control,
272
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control {
273
+ margin-bottom: 6px;
274
+ }
275
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,
276
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button {
277
+ border-radius: 5px;
278
+ border: none;
279
+ background: #2186fa;
280
+ color: #fff;
281
+ font-size: 16px;
282
+ padding: 8px 15px;
283
+ transition: all 0.5s ease 0.1s;
284
+ cursor: pointer;
285
+ height: 40px;
286
+ box-sizing: border-box;
287
+ margin-bottom: 5px;
288
+ }
289
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button:hover,
290
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button:hover {
291
+ background: #f4741b;
292
+ }
293
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button.disabled,
294
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button.disabled {
295
+ background: #999;
296
+ cursor: default;
297
+ }
298
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-successed,
299
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-successed {
300
+ display: none;
301
+ color: #46b450;
302
+ font-size: 14px;
303
+ transition: all 1.5s ease 0.1s;
304
+ height: 40px;
305
+ box-sizing: border-box;
306
+ }
307
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-errors,
308
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-errors {
309
+ display: none;
310
+ color: #dc3232;
311
+ font-size: 14px;
312
+ transition: all 1.5s ease 0.1s;
313
+ }
314
+ .a3rev_panel_container .a3rev-ui-progress-bar-wrap {
315
+ background: rgba(0, 0, 0, 0.6) none repeat scroll 0 0;
316
+ border-radius: 6px;
317
+ box-shadow: 0 1px 5px rgba(0, 0, 0, 0.6) inset;
318
+ display: none;
319
+ padding: 3px;
320
+ width: 100%;
321
+ max-width: 600px;
322
+ position: relative;
323
+ }
324
+ .a3rev_panel_container .a3rev-ui-progress-inner {
325
+ animation: progress-bar 1s infinite linear;
326
+ -ms-animation: progress-bar 1s infinite linear;
327
+ -moz-animation: progress-bar 1s infinite linear;
328
+ -webkit-animation: progress-bar 1s infinite linear;
329
+ background: rgba(0, 0, 0, 0) repeating-linear-gradient(-45deg, #0077ff, #0077ff 10px, #c3defd 10px, #c3defd 24px) repeat scroll 0 0 / 68px 68px;
330
+ border-radius: 4px;
331
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.75);
332
+ height: 34px;
333
+ overflow: hidden;
334
+ transition: width 2s ease 0.1s;
335
+ width: 0px;
336
+ }
337
+ .a3rev_panel_container .a3rev-ui-progressing-text,
338
+ .a3rev_panel_container .a3rev-ui-completed-text {
339
+ box-sizing: border-box;
340
+ color: #fff;
341
+ display: block;
342
+ font-size: 16px;
343
+ left: 0;
344
+ top: 0;
345
+ padding: 0px 10px;
346
+ position: absolute;
347
+ text-align: center;
348
+ text-shadow: 0px 0px 2px #000;
349
+ width: 100%;
350
+ height: 100%;
351
+ line-height: 40px;
352
+ z-index: 1;
353
+ white-space: nowrap;
354
+ text-overflow: ellipsis;
355
+ overflow: hidden;
356
+ }
357
+ .a3rev_panel_container .a3rev-ui-completed-text {
358
+ display: none;
359
+ }
360
+
361
+ /* Ajax Multi Submit Control */
362
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button {
363
+ margin-bottom: 0px;
364
+ }
365
+ .a3rev_panel_container .a3rev-ui-statistics-wrap {
366
+ float: left;
367
+ width: 100%;
368
+ max-width: 600px;
369
+ margin-top: 20px;
370
+ }
371
+ .a3rev_panel_container .a3rev-ui-statistic-item {
372
+ float: left;
373
+ width: 100%;
374
+ box-sizing: border-box;
375
+ margin-bottom: 30px;
376
+ }
377
+ .a3rev_panel_container .a3rev-ui-pie-wrap {
378
+ height: 80px;
379
+ width: 80px;
380
+ margin: 0 auto 5px auto;
381
+ position: relative;
382
+ }
383
+ .a3rev_panel_container .a3rev-ui-pie-shadow {
384
+ border: 10px solid #ddd;
385
+ border-radius: 100%;
386
+ height: 100%;
387
+ width: 100%;
388
+ box-sizing: border-box;
389
+ }
390
+ .a3rev_panel_container .a3rev-ui-pie {
391
+ clip: rect(0px, 80px, 80px, 40px);
392
+ height: 100%;
393
+ width: 100%;
394
+ position: absolute;
395
+ left: 0;
396
+ top: 0;
397
+ }
398
+ .a3rev_panel_container .a3rev-ui-pie.pie-more-50 {
399
+ clip: rect(auto, auto, auto, auto);
400
+ }
401
+ .a3rev_panel_container .a3rev-ui-pie-half-circle {
402
+ clip: rect(0px, 40px, 80px, 0px);
403
+ border: 10px solid #3498db;
404
+ border-radius: 100%;
405
+ height: 100%;
406
+ width: 100%;
407
+ position: absolute;
408
+ left: 0;
409
+ top: 0;
410
+ box-sizing: border-box;
411
+ }
412
+ .a3rev_panel_container .a3rev-ui-statistic-text {
413
+ text-align: center;
414
+ text-transform: uppercase;
415
+ color: #777;
416
+ }
417
+ .a3rev_panel_container .a3rev-ui-statistic-separate,
418
+ .a3rev_panel_container .a3rev-ui-statistic-current-item,
419
+ .a3rev_panel_container .a3rev-ui-statistic-total-item {
420
+ color: #000;
421
+ font-size: 25px;
422
+ margin: 0px;
423
+ }
424
+
425
  /* Textarea Control */
426
  .a3rev_panel_container .a3rev-ui-textarea { width:600px; max-width:70%; }
427
 
933
 
934
  /* END A3 Plugin Framework Font Icons */
935
 
936
+ @media screen and ( max-width: 1100px ) {
937
+ .a3rev_panel_column .form-table th,
938
+ .a3rev_panel_column .form-table td {
939
+ display: block;
940
+ vertical-align: middle;
941
+ width: auto;
942
+ }
943
+ .a3rev_panel_column .form-table th {
944
+ border-bottom: 0;
945
+ padding-bottom: 0;
946
+ padding-top: 10px;
947
+ }
948
+ .a3rev_panel_column .form-table td {
949
+ margin-bottom: 0;
950
+ padding-bottom: 6px;
951
+ padding-left: 0;
952
+ padding-top: 4px;
953
+ }
954
+ }
955
+
956
  @media screen and ( min-width: 783px ) {
957
  .a3rev_panel_container .chosen-container-multi {
958
  min-width:300px;
1009
  .a3-plugin-ui-help-icon {
1010
  margin-right:0px;
1011
  }
1012
+ .a3rev_panel_container .a3rev-ui-statistic-item {
1013
+ width: 100% !important;
1014
+ }
1015
+ }
1016
+
1017
+ @media screen and ( max-width: 640px ) {
1018
+ .a3rev_panel_container .a3rev_panel_row {
1019
+ display: block;
1020
+ }
1021
+ .a3rev_panel_container .a3rev_panel_column {
1022
+ display: block;
1023
+ width: 100%;
1024
+ padding: 0;
1025
+ }
1026
+ .a3rev_panel_container .a3rev_panel_column:first-child,
1027
+ .a3rev_panel_container .a3rev_panel_column:last-child {
1028
+ padding: 0;
1029
+ }
1030
  }
1031
 
1032
  @media screen and ( max-width: 600px ) {
admin/assets/css/admin-ui-style.min.css CHANGED
@@ -1,6 +1,15 @@
1
  @charset "UTF-8";
2
- @font-face{font-family:"a3-plugin-framework";src:url(../fonts/a3-plugin-framework.eot);src:url(../fonts/a3-plugin-framework.eot?#iefix) format("embedded-opentype"),url(../fonts/a3-plugin-framework.woff) format("woff"),url(../fonts/a3-plugin-framework.ttf) format("truetype"),url(../fonts/a3-plugin-framework.svg#a3-plugin-framework) format("svg");font-weight:400;font-style:normal}
3
- [class^="a3-plugin-ui-"]:before,[class*=" a3-plugin-ui-"]:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
 
 
 
 
 
 
 
 
 
4
  .a3-plugin-ui-a3-plugins-icon:before{content:"a"}
5
  .a3-plugin-ui-a3-rev-logo:before{content:"b"}
6
  .a3-plugin-ui-a3-thumb-icon:before{content:"c"}
@@ -13,12 +22,18 @@
13
  .a3-plugin-ui-a3-plugins-icon-1:before{content:"i"}
14
  .a3-plugin-ui-a3-rev-logo-1:before{content:"j"}
15
  .a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%}
16
- .a3rev_panel_container .a3rev_panel_box{position:relative;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);background:#fff;margin-bottom:20px;border-radius:0}
 
 
 
 
 
17
  .a3rev_panel_container .a3rev_panel_box .a3rev_panel_box{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}
18
  .a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative}
19
  .a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0}
20
  .a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0}
21
  .a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px}
 
22
  .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000}
23
  .a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000}
24
  .a3rev_panel_container .a3rev_panel_box_handle h3{margin:0}
@@ -31,153 +46,231 @@
31
  .a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px}
32
  .a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0}
33
  .a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0}
34
- .icon32-a3rev-ui-settings{background:url(../images/a3-plugins.png) no-repeat left top}
35
  .a3_subsubsub_section{float:left;width:100%}
36
- .a3rev_panel_container input[type="text"],.a3rev_panel_container input[type="email"],.a3rev_panel_container input[type="number"],.a3rev_panel_container input[type="password"]{height:24px}
 
 
 
37
  .a3rev_panel_container .a3rev-ui-typography-size{width:80px}
 
38
  .a3rev_panel_container .a3rev-ui-typography-face{width:160px}
39
  .a3rev_panel_container .a3rev-ui-typography-style{width:100px}
40
  .a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block}
41
- .a3rev_panel_container .typography-preview-container .preview_remove{background:#EEE;border:1px solid #DDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
42
- .a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
43
  .a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px}
44
- .a3rev_panel_container .typography-preview{word-wrap:break-word;clear:both;padding:20px;border:1px solid #CCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
45
  .a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000}
46
  .a3rev_panel_container input.wp-picker-default{height:24px!important}
47
- .a3rev_panel_container .wp-color-result{top:0}
48
  .a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%}
49
  .a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%}
50
  .a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%}
51
  .a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%}
52
  .a3rev_panel_container .a3rev-ui-google_api_key{width:350px;max-width:100%}
53
  .a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px}
54
- .a3rev_panel_container .a3rev-ui-google-valid-key-message,.a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none}
55
- .a3rev_panel_container .a3rev-ui-google-valid-key,.a3rev_panel_container .a3rev-ui-google-unvalid-key{padding:10px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}
 
 
56
  .a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847}
57
  .a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
58
- .a3rev_panel_container .a3rev-ui-google-valid-key .a3rev-ui-google-valid-key-message,.a3rev_panel_container .a3rev-ui-google-unvalid-key .a3rev-ui-google-unvalid-key-message{display:block}
59
- .a3rev_panel_container .a3rev-ui-version-checking{display:none;margin-top:6px;background-image:url(../images/loading-bottom.gif);background-repeat:no-repeat;background-size:100% auto;width:16px;height:16px}
 
60
  .a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px}
61
- .a3rev_panel_container .a3rev-ui-new-version-message,.a3rev_panel_container .a3rev-ui-latest-version-message{padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,0.1);margin-top:8px}
 
62
  .a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847}
63
  .a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  .a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%}
65
  .a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%}
66
  .a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%}
67
  .a3rev_panel_container .forminp-radio ul{margin:0}
68
  .a3rev_panel_container .a3rev-ui-image_size-width{width:40px}
69
  .a3rev_panel_container .a3rev-ui-image_size-height{width:40px}
 
70
  .a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%}
71
  .a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block}
72
  .a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0}
73
- .a3rev_panel_container .settings-preview-container .preview_remove{background:#EEE;border:1px solid #DDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
74
- .a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
75
  .a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%}
76
- .a3rev_panel_container .settings-preview{word-wrap:break-word;clear:both;padding:30px;border:1px solid #CCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
77
  .a3rev_panel_container .a3rev-ui-border_styles-width{width:80px}
78
  .a3rev_panel_container .a3rev-ui-border_styles-style{width:80px}
79
  .a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important}
80
  .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px}
81
  .a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%}
82
- .a3rev_panel_container .a3rev-ui-border_corner-top_left,.a3rev_panel_container .a3rev-ui-border_corner-top_right,.a3rev_panel_container .a3rev-ui-border_corner-bottom_left,.a3rev_panel_container .a3rev-ui-border_corner-bottom_right{float:left;width:100%;clear:both;padding-top:5px}
 
 
 
83
  .a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px}
84
  .a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px}
85
  .a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151}
86
- .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-border_corner .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
 
87
  .a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px}
88
  .a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px}
89
  .a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px}
90
  .a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px}
91
  .a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px}
92
  .a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px}
93
- .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer,.a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer{float:none;display:inline-block;margin-top:0;top:-12px;margin-right:0}
94
- .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
 
 
95
  .a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px}
96
  .a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left}
97
  .a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left}
98
  .a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap}
99
- .a3rev_panel_container .a3rev-ui-slide{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);border:1px solid #d0d0d9;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;height:10px;width:220px;position:relative;float:left;margin-top:4px}
100
- .a3rev_panel_container .a3rev-ui-slide .ui-slider-handle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0 0 #FFF inset;-webkit-box-shadow:0 1px 0 0 #FFF inset;border:1px solid #999;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;position:absolute;z-index:2;width:22px;height:23px;cursor:pointer;font-weight:700;color:#1C94C4;outline:none;top:-8px;margin-left:-11px}
101
- .a3rev_panel_container .a3rev-ui-slide .ui-slider-range{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #255399;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;position:absolute;top:-1px;height:100%}
102
  .a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px}
103
  .a3rev_panel_container .a3rev-ui-array_textfields{width:40px}
104
  .a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0}
105
  .a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px}
106
- .a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,.a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}
107
- .a3rev_panel_container .iPhoneCheckContainer,.a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px}
108
- .a3rev_panel_container .iPhoneCheckContainer input,.a3rev_panel_container .iOSCheckContainer input{display:none}
109
- .a3rev_panel_container .iPhoneCheckContainer label,.a3rev_panel_container .iOSCheckContainer label{white-space:nowrap;font-size:14px;line-height:24px;font-weight:700;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;cursor:pointer;display:block;position:absolute;width:auto;top:0;overflow:hidden;user-select:none;-moz-user-select:none;-khtml-user-select:none}
110
- .a3rev_panel_container label.iPhoneCheckLabelOff,.a3rev_panel_container label.iOSCheckLabelOff{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;height:23px;color:#8b8b8b;text-shadow:0 0 2px rgba(255,255,255,0.6);text-align:right;right:0}
111
- .a3rev_panel_container label.iPhoneCheckLabelOff span,.a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0;display:inline-block;text-transform:uppercase}
112
- .a3rev_panel_container label.iPhoneCheckLabelOn,.a3rev_panel_container label.iOSCheckLabelOn{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;height:23px;text-align:left;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6);left:0}
113
- .a3rev_panel_container label.iPhoneCheckLabelOn span,.a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase}
114
- .a3rev_panel_container .iPhoneCheckHandle,.a3rev_panel_container .iOSCheckHandle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0 0 #FFF inset;-webkit-box-shadow:0 1px 0 0 #FFF inset;border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;display:block;cursor:pointer;position:absolute;top:0;left:-1px;width:35px;height:23px}
115
- .a3rev_panel_container .iPhoneCheckDisabled,.a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:.5}
116
- .a3rev_panel_container .forminp-switcher_checkbox .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-switcher_checkbox .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
 
 
 
 
 
 
 
 
 
 
 
117
  .a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0}
118
  .a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle}
119
  .subsubsub{white-space:normal}
120
  .subsubsub li{white-space:nowrap}
121
- .a3-view-docs-button{background-color:#FFFFE0!important;border:1px solid #E6DB55!important;display:inline-block!important;font-weight:400!important;margin:5px 10px 0!important;text-shadow:none!important}
122
  #a3_plugin_premium_video_container{margin-top:10px}
123
- #a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0}
124
  #a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default}
125
  #a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f"}
126
  #a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative}
127
- #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,#a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:calc(50% - 1px);padding:12px 12px 30px 12px;box-sizing:border-box;float:left}
 
128
  #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:1px;height:100%;background-color:#eee;position:absolute;top:0;left:50%;margin-left:-2px}
129
  #a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px}
130
  #a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left}
131
- #a3_plugin_premium_video_container .a3-plugin-premium-video-play{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(../images/play_video.png);background-repeat:no-repeat;background-position:center center;background-size:80px auto;background-color:rgba(0,0,0,0.2)}
132
  #a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6)}
133
  #a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%}
134
  #a3_plugin_panel_fields{padding-right:280px}
135
  #a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px}
136
- #a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555;margin-bottom:17px;padding:5px 10px;background:#fff}
137
  #a3_plugin_panel_extensions img{width:auto;max-width:100%}
138
  .pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0}
139
  .pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px}
140
  .pro_feature_hidden{display:none!important}
141
- .a3rev_blue_message_box{margin:0!important;background-color:#F0F8FF;border-color:#CEE1EF;padding:5px 10px;border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;border-style:solid;border-width:1px}
142
- .a3rev_blue_message_box a{color:red}
143
  .a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px}
144
  .a3-plugin-ui-delete-icon:before{vertical-align:top}
145
  .a3-plugin-ui-icon{color:#46719d;overflow:hidden}
146
  .a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px}
147
  .a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px}
148
  .a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px}
149
- .a3rev_panel_container .a3rev-ui-typography-preview-button span:before,.a3rev_panel_container .a3rev-ui-settings-preview-button span:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"g";width:14px;height:16px;font-size:12px}
150
- .a3rev_panel_container .a3rev-ui-typography-preview-button span.refresh:before,.a3rev_panel_container .a3rev-ui-settings-preview-button span.refresh:before{content:"h"!important}
151
- .wf-loading .a3rev_panel_container .typography-preview.current:before,.wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important}
 
 
 
152
  .a3-plugin-ui-delete-icon{font-size:10px;color:#C00}
153
- @media screen and ( min-width: 783px ) {
154
- .a3rev_panel_container .chosen-container-multi{min-width:300px}
 
 
 
 
 
 
155
  }
156
- @media screen and ( max-width: 782px ) {
157
- #a3_plugin_panel_fields{width:100%}
158
- #a3_plugin_panel_upgrade_area{display:none}
159
- .a3rev_panel_container .pro_feature_fields{margin-right:0}
160
- .a3rev_panel_container input[type="text"],.a3rev_panel_container input[type="email"],.a3rev_panel_container input[type="number"],.a3rev_panel_container input[type="password"]{min-width:50px;width:100%}
161
- .a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%}
162
- .a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important}
163
- .a3rev_panel_container .a3rev-ui-slider{width:50px!important}
164
- .a3rev_panel_container .typography-preview-container,.a3rev_panel_container .settings-preview-container{width:90%}
165
- .a3rev_panel_container .a3rev-ui-typography-preview-button:active,.a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important}
166
- .a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important}
167
- .wp-core-ui .button.wp-picker-default{padding:0 8px 1px}
168
- .a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important}
169
- .a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important}
170
- .a3rev_panel_container .chosen-container-multi{width:100%!important}
171
- .a3rev_blue_message_box_container{width:100%!important}
172
- .a3-plugin-ui-help-icon{margin-right:0}
 
 
 
 
 
 
173
  }
174
- @media screen and ( max-width: 600px ) {
175
- #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,#a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left}
176
- #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto}
 
 
177
  }
178
- @media screen and ( max-width: 480px ) {
179
- .a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px}
180
- .a3_subsubsub_section .subsubsub{text-align:left}
181
- .a3rev_panel_container .chosen-container-single{max-width:300px!important}
182
- #a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0;margin-bottom:10px}
183
  }
 
 
 
 
 
 
1
  @charset "UTF-8";
2
+ @font-face{font-family:"a3-plugin-framework";src:url("../fonts/a3-plugin-framework.eot");src:url("../fonts/a3-plugin-framework.eot?#iefix") format("embedded-opentype"),url("../fonts/a3-plugin-framework.woff") format("woff"),url("../fonts/a3-plugin-framework.ttf") format("truetype"),url("../fonts/a3-plugin-framework.svg#a3-plugin-framework") format("svg");font-weight:normal;font-style:normal}
3
+ @-webkit-keyframes progress-bar{
4
+ from{background-position:0 0}
5
+ to{background-position:24px 40px}
6
+ }
7
+ @keyframes progress-bar{
8
+ from{background-position:0 0}
9
+ to{background-position:24px 40px}
10
+ }
11
+ [class^="a3-plugin-ui-"]:before,
12
+ [class*=" a3-plugin-ui-"]:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:normal!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
13
  .a3-plugin-ui-a3-plugins-icon:before{content:"a"}
14
  .a3-plugin-ui-a3-rev-logo:before{content:"b"}
15
  .a3-plugin-ui-a3-thumb-icon:before{content:"c"}
22
  .a3-plugin-ui-a3-plugins-icon-1:before{content:"i"}
23
  .a3-plugin-ui-a3-rev-logo-1:before{content:"j"}
24
  .a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%}
25
+ .a3rev_panel_container .a3rev_panel_row{display:table;width:100%;table-layout:fixed;clear:both;position:relative}
26
+ .a3rev_panel_container .a3rev_panel_row:after{display:table;clear:both;content:''}
27
+ .a3rev_panel_container .a3rev_panel_column{display:table-cell;width:50%;box-sizing:border-box;padding:0 10px;position:relative;vertical-align:top}
28
+ .a3rev_panel_container .a3rev_panel_column:last-child{padding-right:0}
29
+ .a3rev_panel_container .a3rev_panel_column:first-child{padding-left:0;padding-right:10px}
30
+ .a3rev_panel_container .a3rev_panel_box{position:relative;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);background:#fff;margin-bottom:20px;border-radius:0px}
31
  .a3rev_panel_container .a3rev_panel_box .a3rev_panel_box{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}
32
  .a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative}
33
  .a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0}
34
  .a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0}
35
  .a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px}
36
+ .a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before{color:#22ef00}
37
  .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000}
38
  .a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000}
39
  .a3rev_panel_container .a3rev_panel_box_handle h3{margin:0}
46
  .a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px}
47
  .a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0}
48
  .a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0}
49
+ .icon32-a3rev-ui-settings{background:url("../images/a3-plugins.png") no-repeat left top}
50
  .a3_subsubsub_section{float:left;width:100%}
51
+ .a3rev_panel_container input[type="text"],
52
+ .a3rev_panel_container input[type="email"],
53
+ .a3rev_panel_container input[type="number"],
54
+ .a3rev_panel_container input[type="password"]{height:24px}
55
  .a3rev_panel_container .a3rev-ui-typography-size{width:80px}
56
+ .a3rev_panel_container .a3rev-ui-typography-line_height{width:80px}
57
  .a3rev_panel_container .a3rev-ui-typography-face{width:160px}
58
  .a3rev_panel_container .a3rev-ui-typography-style{width:100px}
59
  .a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block}
60
+ .a3rev_panel_container .typography-preview-container .preview_remove{background:#EEEEEE;border:1px solid #DDDDDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px 2px 2px 2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
61
+ .a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px}
62
  .a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px}
63
+ .a3rev_panel_container .typography-preview{word-wrap:break-word;clear:both;padding:20px;border:1px solid #CCCCCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
64
  .a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000}
65
  .a3rev_panel_container input.wp-picker-default{height:24px!important}
66
+ .a3rev_panel_container .wp-color-result{top:0px}
67
  .a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%}
68
  .a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%}
69
  .a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%}
70
  .a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%}
71
  .a3rev_panel_container .a3rev-ui-google_api_key{width:350px;max-width:100%}
72
  .a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px}
73
+ .a3rev_panel_container .a3rev-ui-google-valid-key-message,
74
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none}
75
+ .a3rev_panel_container .a3rev-ui-google-valid-key,
76
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key{padding:10px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}
77
  .a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847}
78
  .a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
79
+ .a3rev_panel_container .a3rev-ui-google-valid-key .a3rev-ui-google-valid-key-message,
80
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key .a3rev-ui-google-unvalid-key-message{display:block}
81
+ .a3rev_panel_container .a3rev-ui-version-checking{display:none;margin-top:6px;background-image:url('../images/loading-bottom.gif');background-repeat:no-repeat;background-size:100% auto;width:16px;height:16px}
82
  .a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px}
83
+ .a3rev_panel_container .a3rev-ui-new-version-message,
84
+ .a3rev_panel_container .a3rev-ui-latest-version-message{padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,0.1);margin-top:8px}
85
  .a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847}
86
  .a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
87
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control,
88
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control{margin-bottom:6px}
89
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,
90
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{border-radius:5px;border:none;background:#2186fa;color:#fff;font-size:16px;padding:8px 15px;transition:all 0.5s ease 0.1s;cursor:pointer;height:40px;box-sizing:border-box;margin-bottom:5px}
91
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button:hover,
92
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button:hover{background:#f4741b}
93
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button.disabled,
94
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button.disabled{background:#999;cursor:default}
95
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-successed,
96
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-successed{display:none;color:#46b450;font-size:14px;transition:all 1.5s ease 0.1s;height:40px;box-sizing:border-box}
97
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-errors,
98
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-errors{display:none;color:#dc3232;font-size:14px;transition:all 1.5s ease 0.1s}
99
+ .a3rev_panel_container .a3rev-ui-progress-bar-wrap{background:rgba(0,0,0,0.6) none repeat scroll 0 0;border-radius:6px;box-shadow:0 1px 5px rgba(0,0,0,0.6) inset;display:none;padding:3px;width:100%;max-width:600px;position:relative}
100
+ .a3rev_panel_container .a3rev-ui-progress-inner{animation:progress-bar 1s infinite linear;-ms-animation:progress-bar 1s infinite linear;-moz-animation:progress-bar 1s infinite linear;-webkit-animation:progress-bar 1s infinite linear;background:rgba(0,0,0,0) repeating-linear-gradient(-45deg,#0077ff,#0077ff 10px,#c3defd 10px,#c3defd 24px) repeat scroll 0 0 / 68px 68px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,0.75);height:34px;overflow:hidden;transition:width 2s ease 0.1s;width:0px}
101
+ .a3rev_panel_container .a3rev-ui-progressing-text,
102
+ .a3rev_panel_container .a3rev-ui-completed-text{box-sizing:border-box;color:#fff;display:block;font-size:16px;left:0;top:0;padding:0px 10px;position:absolute;text-align:center;text-shadow:0px 0px 2px #000;width:100%;height:100%;line-height:40px;z-index:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
103
+ .a3rev_panel_container .a3rev-ui-completed-text{display:none}
104
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{margin-bottom:0px}
105
+ .a3rev_panel_container .a3rev-ui-statistics-wrap{float:left;width:100%;max-width:600px;margin-top:20px}
106
+ .a3rev_panel_container .a3rev-ui-statistic-item{float:left;width:100%;box-sizing:border-box;margin-bottom:30px}
107
+ .a3rev_panel_container .a3rev-ui-pie-wrap{height:80px;width:80px;margin:0 auto 5px auto;position:relative}
108
+ .a3rev_panel_container .a3rev-ui-pie-shadow{border:10px solid #ddd;border-radius:100%;height:100%;width:100%;box-sizing:border-box}
109
+ .a3rev_panel_container .a3rev-ui-pie{clip:rect(0px,80px,80px,40px);height:100%;width:100%;position:absolute;left:0;top:0}
110
+ .a3rev_panel_container .a3rev-ui-pie.pie-more-50{clip:rect(auto,auto,auto,auto)}
111
+ .a3rev_panel_container .a3rev-ui-pie-half-circle{clip:rect(0px,40px,80px,0px);border:10px solid #3498db;border-radius:100%;height:100%;width:100%;position:absolute;left:0;top:0;box-sizing:border-box}
112
+ .a3rev_panel_container .a3rev-ui-statistic-text{text-align:center;text-transform:uppercase;color:#777}
113
+ .a3rev_panel_container .a3rev-ui-statistic-separate,
114
+ .a3rev_panel_container .a3rev-ui-statistic-current-item,
115
+ .a3rev_panel_container .a3rev-ui-statistic-total-item{color:#000;font-size:25px;margin:0px}
116
  .a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%}
117
  .a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%}
118
  .a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%}
119
  .a3rev_panel_container .forminp-radio ul{margin:0}
120
  .a3rev_panel_container .a3rev-ui-image_size-width{width:40px}
121
  .a3rev_panel_container .a3rev-ui-image_size-height{width:40px}
122
+ .a3rev_panel_container .a3rev-ui-image_size-crop{}
123
  .a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%}
124
  .a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block}
125
  .a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0}
126
+ .a3rev_panel_container .settings-preview-container .preview_remove{background:#EEEEEE;border:1px solid #DDDDDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px 2px 2px 2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
127
+ .a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px}
128
  .a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%}
129
+ .a3rev_panel_container .settings-preview{word-wrap:break-word;clear:both;padding:30px;border:1px solid #CCCCCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
130
  .a3rev_panel_container .a3rev-ui-border_styles-width{width:80px}
131
  .a3rev_panel_container .a3rev-ui-border_styles-style{width:80px}
132
  .a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important}
133
  .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px}
134
  .a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%}
135
+ .a3rev_panel_container .a3rev-ui-border_corner-top_left,
136
+ .a3rev_panel_container .a3rev-ui-border_corner-top_right,
137
+ .a3rev_panel_container .a3rev-ui-border_corner-bottom_left,
138
+ .a3rev_panel_container .a3rev-ui-border_corner-bottom_right{float:left;width:100%;clear:both;padding-top:5px}
139
  .a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px}
140
  .a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px}
141
  .a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151}
142
+ .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer .iPhoneCheckLabelOff,
143
+ .a3rev_panel_container .forminp-border_corner .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6)}
144
  .a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px}
145
  .a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px}
146
  .a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px}
147
  .a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px}
148
  .a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px}
149
  .a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px}
150
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer,
151
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer{float:none;display:inline-block;margin-top:0;top:-12px;margin-right:0px}
152
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer .iPhoneCheckLabelOff,
153
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6)}
154
  .a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px}
155
  .a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left}
156
  .a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left}
157
  .a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap}
158
+ .a3rev_panel_container .a3rev-ui-slide{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#ffffff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);border:1px solid #d0d0d9;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;height:10px;width:220px;position:relative;float:left;margin-top:4px}
159
+ .a3rev_panel_container .a3rev-ui-slide .ui-slider-handle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0px 0px #FFFFFF inset;-webkit-box-shadow:0 1px 0px 0px #FFFFFF inset;border:1px solid #999999;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;position:absolute;z-index:2;width:22px;height:23px;cursor:pointer;font-weight:bold;color:#1C94C4;outline:none;top:-8px;margin-left:-11px}
160
+ .a3rev_panel_container .a3rev-ui-slide .ui-slider-range{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #255399;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;position:absolute;top:-1px;height:100%}
161
  .a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px}
162
  .a3rev_panel_container .a3rev-ui-array_textfields{width:40px}
163
  .a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0}
164
  .a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px}
165
+ .a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,
166
+ .a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}
167
+ .a3rev_panel_container .iPhoneCheckContainer,
168
+ .a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px}
169
+ .a3rev_panel_container .iPhoneCheckContainer input,
170
+ .a3rev_panel_container .iOSCheckContainer input{display:none}
171
+ .a3rev_panel_container .iPhoneCheckContainer label,
172
+ .a3rev_panel_container .iOSCheckContainer label{white-space:nowrap;font-size:14px;line-height:24px;font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;cursor:pointer;display:block;position:absolute;width:auto;top:0;overflow:hidden;user-select:none;-moz-user-select:none;-khtml-user-select:none}
173
+ .a3rev_panel_container label.iPhoneCheckLabelOff,
174
+ .a3rev_panel_container label.iOSCheckLabelOff{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#ffffff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;height:23px;color:#8b8b8b;text-shadow:0px 0px 2px rgba(255,255,255,0.6);text-align:right;right:0}
175
+ .a3rev_panel_container label.iPhoneCheckLabelOff span,
176
+ .a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0px;display:inline-block;text-transform:uppercase}
177
+ .a3rev_panel_container label.iPhoneCheckLabelOn,
178
+ .a3rev_panel_container label.iOSCheckLabelOn{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;height:23px;text-align:left;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6);left:0}
179
+ .a3rev_panel_container label.iPhoneCheckLabelOn span,
180
+ .a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase}
181
+ .a3rev_panel_container .iPhoneCheckHandle,
182
+ .a3rev_panel_container .iOSCheckHandle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0px 0px #FFFFFF inset;-webkit-box-shadow:0 1px 0px 0px #FFFFFF inset;border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;display:block;cursor:pointer;position:absolute;top:0px;left:-1px;width:35px;height:23px}
183
+ .a3rev_panel_container .iPhoneCheckDisabled,
184
+ .a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:0.5}
185
+ .a3rev_panel_container .forminp-switcher_checkbox .iPhoneCheckContainer .iPhoneCheckLabelOff,
186
+ .a3rev_panel_container .forminp-switcher_checkbox .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6)}
187
  .a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0}
188
  .a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle}
189
  .subsubsub{white-space:normal}
190
  .subsubsub li{white-space:nowrap}
191
+ .a3-view-docs-button{background-color:#FFFFE0!important;border:1px solid #E6DB55!important;display:inline-block!important;font-weight:normal!important;margin:5px 10px 0!important;text-shadow:none!important}
192
  #a3_plugin_premium_video_container{margin-top:10px}
193
+ #a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0px}
194
  #a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default}
195
  #a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f"}
196
  #a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative}
197
+ #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,
198
+ #a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:calc(50% - 1px);padding:12px 12px 30px 12px;box-sizing:border-box;float:left}
199
  #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:1px;height:100%;background-color:#eee;position:absolute;top:0;left:50%;margin-left:-2px}
200
  #a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px}
201
  #a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left}
202
+ #a3_plugin_premium_video_container .a3-plugin-premium-video-play{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url('../images/play_video.png');background-repeat:no-repeat;background-position:center center;background-size:80px auto;background-color:rgba(0,0,0,0.2)}
203
  #a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6)}
204
  #a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%}
205
  #a3_plugin_panel_fields{padding-right:280px}
206
  #a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px}
207
+ #a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555555;margin-bottom:17px;padding:5px 10px;background:#fff}
208
  #a3_plugin_panel_extensions img{width:auto;max-width:100%}
209
  .pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0}
210
  .pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px}
211
  .pro_feature_hidden{display:none!important}
212
+ .a3rev_blue_message_box{margin:0!important;background-color:#F0F8FF;border-color:#CEE1EF;padding:5px 10px;border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;border-style:solid;border-width:1px}
213
+ .a3rev_blue_message_box a{color:#F00}
214
  .a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px}
215
  .a3-plugin-ui-delete-icon:before{vertical-align:top}
216
  .a3-plugin-ui-icon{color:#46719d;overflow:hidden}
217
  .a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px}
218
  .a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px}
219
  .a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px}
220
+ .a3rev_panel_container .a3rev-ui-typography-preview-button span:before,
221
+ .a3rev_panel_container .a3rev-ui-settings-preview-button span:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:normal!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"g";width:14px;height:16px;font-size:12px}
222
+ .a3rev_panel_container .a3rev-ui-typography-preview-button span.refresh:before,
223
+ .a3rev_panel_container .a3rev-ui-settings-preview-button span.refresh:before{content:"h"!important}
224
+ .wf-loading .a3rev_panel_container .typography-preview.current:before,
225
+ .wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important}
226
  .a3-plugin-ui-delete-icon{font-size:10px;color:#C00}
227
+ @media screen and (max-width:1100px){
228
+ .a3rev_panel_column .form-table th,
229
+ .a3rev_panel_column .form-table td{display:block;vertical-align:middle;width:auto}
230
+ .a3rev_panel_column .form-table th{border-bottom:0;padding-bottom:0;padding-top:10px}
231
+ .a3rev_panel_column .form-table td{margin-bottom:0;padding-bottom:6px;padding-left:0;padding-top:4px}
232
+ }
233
+ @media screen and (min-width:783px){
234
+ .a3rev_panel_container .chosen-container-multi{min-width:300px}
235
  }
236
+ @media screen and (max-width:782px){
237
+ #a3_plugin_panel_fields{width:100%}
238
+ #a3_plugin_panel_upgrade_area{display:none}
239
+ .a3rev_panel_container .pro_feature_fields{margin-right:0px}
240
+ .a3rev_panel_container input[type="text"],
241
+ .a3rev_panel_container input[type="email"],
242
+ .a3rev_panel_container input[type="number"],
243
+ .a3rev_panel_container input[type="password"]{min-width:50px;width:100%}
244
+ .a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%}
245
+ .a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important}
246
+ .a3rev_panel_container .a3rev-ui-slider{width:50px!important}
247
+ .a3rev_panel_container .typography-preview-container,
248
+ .a3rev_panel_container .settings-preview-container{width:90%}
249
+ .a3rev_panel_container .a3rev-ui-typography-preview-button:active,
250
+ .a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important}
251
+ .a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important}
252
+ .wp-core-ui .button.wp-picker-default{padding:0 8px 1px}
253
+ .a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important}
254
+ .a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important}
255
+ .a3rev_panel_container .chosen-container-multi{width:100%!important}
256
+ .a3rev_blue_message_box_container{width:100%!important}
257
+ .a3-plugin-ui-help-icon{margin-right:0px}
258
+ .a3rev_panel_container .a3rev-ui-statistic-item{width:100%!important}
259
  }
260
+ @media screen and (max-width:640px){
261
+ .a3rev_panel_container .a3rev_panel_row{display:block}
262
+ .a3rev_panel_container .a3rev_panel_column{display:block;width:100%;padding:0}
263
+ .a3rev_panel_container .a3rev_panel_column:first-child,
264
+ .a3rev_panel_container .a3rev_panel_column:last-child{padding:0}
265
  }
266
+ @media screen and (max-width:600px){
267
+ #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,
268
+ #a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left}
269
+ #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto}
 
270
  }
271
+ @media screen and (max-width:480px){
272
+ .a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px}
273
+ .a3_subsubsub_section .subsubsub{text-align:left}
274
+ .a3rev_panel_container .chosen-container-single{max-width:300px!important}
275
+ #a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0px;margin-bottom:10px}
276
+ }
admin/assets/css/modal.css ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
3
+ * Copyright 2011-2017 The Bootstrap Authors
4
+ * Copyright 2011-2017 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
8
+
9
+ .modal-open {
10
+ overflow: hidden;
11
+ }
12
+
13
+ .modal {
14
+ position: fixed;
15
+ top: 0;
16
+ right: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ z-index: 10500000;
20
+ display: none;
21
+ overflow: hidden;
22
+ outline: 0;
23
+ }
24
+
25
+ .modal.fade .modal-dialog {
26
+ -webkit-transition: -webkit-transform 0.3s ease-out;
27
+ transition: -webkit-transform 0.3s ease-out;
28
+ -o-transition: -o-transform 0.3s ease-out;
29
+ transition: transform 0.3s ease-out;
30
+ transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;
31
+ -webkit-transform: translate(0, -25%);
32
+ -o-transform: translate(0, -25%);
33
+ transform: translate(0, -25%);
34
+ }
35
+
36
+ .modal.show .modal-dialog {
37
+ -webkit-transform: translate(0, 0);
38
+ -o-transform: translate(0, 0);
39
+ transform: translate(0, 0);
40
+ }
41
+
42
+ .modal-open .modal {
43
+ overflow-x: hidden;
44
+ overflow-y: auto;
45
+ }
46
+
47
+ .modal-dialog {
48
+ position: relative;
49
+ width: auto;
50
+ margin: 50px 10px 10px 10px;
51
+ }
52
+
53
+ .modal-content {
54
+ position: relative;
55
+ display: -webkit-box;
56
+ display: -webkit-flex;
57
+ display: -ms-flexbox;
58
+ display: flex;
59
+ -webkit-box-orient: vertical;
60
+ -webkit-box-direction: normal;
61
+ -webkit-flex-direction: column;
62
+ -ms-flex-direction: column;
63
+ flex-direction: column;
64
+ background-color: #fff;
65
+ -webkit-background-clip: padding-box;
66
+ background-clip: padding-box;
67
+ border: 1px solid rgba(0, 0, 0, 0.2);
68
+ border-radius: 0.3rem;
69
+ outline: 0;
70
+ }
71
+
72
+ .modal-backdrop {
73
+ position: fixed;
74
+ top: 0;
75
+ right: 0;
76
+ bottom: 0;
77
+ left: 0;
78
+ z-index: 10400000;
79
+ background-color: #000;
80
+ }
81
+
82
+ .fade.show {
83
+ opacity: 1;
84
+ }
85
+
86
+ .modal-backdrop.fade {
87
+ opacity: 0;
88
+ }
89
+
90
+ .modal-backdrop.show {
91
+ opacity: 0.5;
92
+ }
93
+
94
+ .modal-header {
95
+ display: -webkit-box;
96
+ display: -webkit-flex;
97
+ display: -ms-flexbox;
98
+ display: flex;
99
+ -webkit-box-align: center;
100
+ -webkit-align-items: center;
101
+ -ms-flex-align: center;
102
+ align-items: center;
103
+ -webkit-box-pack: justify;
104
+ -webkit-justify-content: space-between;
105
+ -ms-flex-pack: justify;
106
+ justify-content: space-between;
107
+ padding: 15px;
108
+ border-bottom: 1px solid #eceeef;
109
+ }
110
+
111
+ .modal-title {
112
+ margin-bottom: 0;
113
+ line-height: 1.5;
114
+ }
115
+
116
+ .modal-body {
117
+ position: relative;
118
+ -webkit-box-flex: 1;
119
+ -webkit-flex: 1 1 auto;
120
+ -ms-flex: 1 1 auto;
121
+ flex: 1 1 auto;
122
+ padding: 15px;
123
+ }
124
+
125
+ .modal-footer {
126
+ display: -webkit-box;
127
+ display: -webkit-flex;
128
+ display: -ms-flexbox;
129
+ display: flex;
130
+ -webkit-box-align: center;
131
+ -webkit-align-items: center;
132
+ -ms-flex-align: center;
133
+ align-items: center;
134
+ -webkit-box-pack: end;
135
+ -webkit-justify-content: flex-end;
136
+ -ms-flex-pack: end;
137
+ justify-content: flex-end;
138
+ padding: 15px;
139
+ border-top: 1px solid #eceeef;
140
+ }
141
+
142
+ .modal-footer > :not(:first-child) {
143
+ margin-left: .25rem;
144
+ }
145
+
146
+ .modal-footer > :not(:last-child) {
147
+ margin-right: .25rem;
148
+ }
149
+
150
+ .modal-scrollbar-measure {
151
+ position: absolute;
152
+ top: -9999px;
153
+ width: 50px;
154
+ height: 50px;
155
+ overflow: scroll;
156
+ }
157
+
158
+ @media (min-width: 576px) {
159
+ .modal-dialog {
160
+ max-width: 500px;
161
+ margin: 50px auto 30px auto;
162
+ }
163
+ .modal-sm {
164
+ max-width: 300px;
165
+ }
166
+ }
167
+
168
+ @media (min-width: 992px) {
169
+ .modal-lg {
170
+ max-width: 800px;
171
+ }
172
+ }
admin/assets/css/modal.min.css ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
3
+ * Copyright 2011-2017 The Bootstrap Authors
4
+ * Copyright 2011-2017 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+ /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
8
+
9
+ .modal-open {
10
+ overflow: hidden;
11
+ }
12
+
13
+ .modal {
14
+ position: fixed;
15
+ top: 0;
16
+ right: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ z-index: 10500000;
20
+ display: none;
21
+ overflow: hidden;
22
+ outline: 0;
23
+ }
24
+
25
+ .modal.fade .modal-dialog {
26
+ -webkit-transition: -webkit-transform 0.3s ease-out;
27
+ transition: -webkit-transform 0.3s ease-out;
28
+ -o-transition: -o-transform 0.3s ease-out;
29
+ transition: transform 0.3s ease-out;
30
+ transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;
31
+ -webkit-transform: translate(0, -25%);
32
+ -o-transform: translate(0, -25%);
33
+ transform: translate(0, -25%);
34
+ }
35
+
36
+ .modal.show .modal-dialog {
37
+ -webkit-transform: translate(0, 0);
38
+ -o-transform: translate(0, 0);
39
+ transform: translate(0, 0);
40
+ }
41
+
42
+ .modal-open .modal {
43
+ overflow-x: hidden;
44
+ overflow-y: auto;
45
+ }
46
+
47
+ .modal-dialog {
48
+ position: relative;
49
+ width: auto;
50
+ margin: 50px 10px 10px 10px;
51
+ }
52
+
53
+ .modal-content {
54
+ position: relative;
55
+ display: -webkit-box;
56
+ display: -webkit-flex;
57
+ display: -ms-flexbox;
58
+ display: flex;
59
+ -webkit-box-orient: vertical;
60
+ -webkit-box-direction: normal;
61
+ -webkit-flex-direction: column;
62
+ -ms-flex-direction: column;
63
+ flex-direction: column;
64
+ background-color: #fff;
65
+ -webkit-background-clip: padding-box;
66
+ background-clip: padding-box;
67
+ border: 1px solid rgba(0, 0, 0, 0.2);
68
+ border-radius: 0.3rem;
69
+ outline: 0;
70
+ }
71
+
72
+ .modal-backdrop {
73
+ position: fixed;
74
+ top: 0;
75
+ right: 0;
76
+ bottom: 0;
77
+ left: 0;
78
+ z-index: 10400000;
79
+ background-color: #000;
80
+ }
81
+
82
+ .fade.show {
83
+ opacity: 1;
84
+ }
85
+
86
+ .modal-backdrop.fade {
87
+ opacity: 0;
88
+ }
89
+
90
+ .modal-backdrop.show {
91
+ opacity: 0.5;
92
+ }
93
+
94
+ .modal-header {
95
+ display: -webkit-box;
96
+ display: -webkit-flex;
97
+ display: -ms-flexbox;
98
+ display: flex;
99
+ -webkit-box-align: center;
100
+ -webkit-align-items: center;
101
+ -ms-flex-align: center;
102
+ align-items: center;
103
+ -webkit-box-pack: justify;
104
+ -webkit-justify-content: space-between;
105
+ -ms-flex-pack: justify;
106
+ justify-content: space-between;
107
+ padding: 15px;
108
+ border-bottom: 1px solid #eceeef;
109
+ }
110
+
111
+ .modal-title {
112
+ margin-bottom: 0;
113
+ line-height: 1.5;
114
+ }
115
+
116
+ .modal-body {
117
+ position: relative;
118
+ -webkit-box-flex: 1;
119
+ -webkit-flex: 1 1 auto;
120
+ -ms-flex: 1 1 auto;
121
+ flex: 1 1 auto;
122
+ padding: 15px;
123
+ }
124
+
125
+ .modal-footer {
126
+ display: -webkit-box;
127
+ display: -webkit-flex;
128
+ display: -ms-flexbox;
129
+ display: flex;
130
+ -webkit-box-align: center;
131
+ -webkit-align-items: center;
132
+ -ms-flex-align: center;
133
+ align-items: center;
134
+ -webkit-box-pack: end;
135
+ -webkit-justify-content: flex-end;
136
+ -ms-flex-pack: end;
137
+ justify-content: flex-end;
138
+ padding: 15px;
139
+ border-top: 1px solid #eceeef;
140
+ }
141
+
142
+ .modal-footer > :not(:first-child) {
143
+ margin-left: .25rem;
144
+ }
145
+
146
+ .modal-footer > :not(:last-child) {
147
+ margin-right: .25rem;
148
+ }
149
+
150
+ .modal-scrollbar-measure {
151
+ position: absolute;
152
+ top: -9999px;
153
+ width: 50px;
154
+ height: 50px;
155
+ overflow: scroll;
156
+ }
157
+
158
+ @media (min-width: 576px) {
159
+ .modal-dialog {
160
+ max-width: 500px;
161
+ margin: 50px auto 30px auto;
162
+ }
163
+ .modal-sm {
164
+ max-width: 300px;
165
+ }
166
+ }
167
+
168
+ @media (min-width: 992px) {
169
+ .modal-lg {
170
+ max-width: 800px;
171
+ }
172
+ }
admin/assets/js/a3rev-typography-preview.js CHANGED
@@ -79,7 +79,7 @@
79
  var fontFace = controls.find( '.a3rev-ui-typography-face' ).val();
80
  var fontStyle = controls.find( '.a3rev-ui-typography-style' ).val();
81
  var fontColor = controls.find( '.a3rev-ui-typography-color' ).val();
82
- var lineHeight = ( parseInt( fontSize ) / 2 ) + parseInt( fontSize ); // Calculate pleasant line-height for the selected font size.
83
 
84
  // Generate array of non-Google fonts.
85
  var nonGoogleFonts = new Array(
@@ -171,7 +171,7 @@
171
  }
172
 
173
  // Construct styles.
174
- previewStyles += 'font: ' + fontStyle + ' ' + fontSize + '/' + lineHeight + 'px ' + fontFace + ';';
175
  if ( fontColor ) { previewStyles += ' color: ' + fontColor + ';'; }
176
 
177
  // Construct preview HTML.
79
  var fontFace = controls.find( '.a3rev-ui-typography-face' ).val();
80
  var fontStyle = controls.find( '.a3rev-ui-typography-style' ).val();
81
  var fontColor = controls.find( '.a3rev-ui-typography-color' ).val();
82
+ var lineHeight = controls.find( '.a3rev-ui-typography-line_height' ).val();
83
 
84
  // Generate array of non-Google fonts.
85
  var nonGoogleFonts = new Array(
171
  }
172
 
173
  // Construct styles.
174
+ previewStyles += 'font: ' + fontStyle + ' ' + fontSize + '/' + lineHeight + ' ' + fontFace + ';';
175
  if ( fontColor ) { previewStyles += ' color: ' + fontColor + ';'; }
176
 
177
  // Construct preview HTML.
admin/assets/js/admin-ui-script.js CHANGED
@@ -239,8 +239,7 @@
239
  }
240
  });
241
 
242
- $(document).trigger("a3rev-ui-script-loaded");
243
-
244
  $(document).on('click', '.a3-plugin-ui-panel-box', function(){
245
  var box_handle = $(this).parent('.a3rev_panel_box_handle');
246
  var box_id = box_handle.data('box-id');
@@ -266,6 +265,9 @@
266
  box_data.is_open = 1;
267
  $(this).addClass('box_open');
268
  box_handle.siblings('.a3rev_panel_box_inside').addClass('box_open').slideDown(500);
 
 
 
269
  }
270
 
271
  if ( $(this).hasClass('enable_toggle_box_save') && typeof a3_admin_ui_script_params != 'undefined' ) {
@@ -273,6 +275,7 @@
273
  }
274
  });
275
 
 
276
  $(document).on( 'click', '.a3rev-ui-manual_check_version', function(){
277
  var bt_check_version = $(this);
278
  var version_message_container = $(this).siblings('.a3rev-ui-check-version-message');
@@ -308,5 +311,414 @@
308
  });
309
  }
310
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
  });
312
  })(jQuery);
239
  }
240
  });
241
 
242
+ /* Apply Setting box open & close */
 
243
  $(document).on('click', '.a3-plugin-ui-panel-box', function(){
244
  var box_handle = $(this).parent('.a3rev_panel_box_handle');
245
  var box_id = box_handle.data('box-id');
265
  box_data.is_open = 1;
266
  $(this).addClass('box_open');
267
  box_handle.siblings('.a3rev_panel_box_inside').addClass('box_open').slideDown(500);
268
+ box_handle.siblings('.a3rev_panel_box_inside').find('img.rwd_image_maps').each(function(i){
269
+ $(this).rwdImageMaps();
270
+ });
271
  }
272
 
273
  if ( $(this).hasClass('enable_toggle_box_save') && typeof a3_admin_ui_script_params != 'undefined' ) {
275
  }
276
  });
277
 
278
+ /* Apply Manual Check version */
279
  $(document).on( 'click', '.a3rev-ui-manual_check_version', function(){
280
  var bt_check_version = $(this);
281
  var version_message_container = $(this).siblings('.a3rev-ui-check-version-message');
311
  });
312
  }
313
  });
314
+
315
+ /* Apply Ajax Submit */
316
+ $(document).on( 'click', '.a3rev-ui-ajax_submit-button', function(){
317
+ var bt_ajax_submit = $(this);
318
+ var submit_data = JSON.parse( JSON.stringify( bt_ajax_submit.data('submit_data') ) );
319
+ if ( typeof submit_data.ajax_url == 'undefined' ) return false;
320
+
321
+ var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_submit-successed');
322
+ var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_submit-errors');
323
+ var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
324
+ var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
325
+ var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
326
+ var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
327
+ bt_ajax_submit.hide();
328
+ submit_successsed.hide();
329
+ submit_errors.hide();
330
+ progress_bar_wrap.show();
331
+
332
+ // Plugin have use this control type need to get this trigger to make action from plugin
333
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_submit-click", [bt_ajax_submit]);
334
+
335
+ $.ajax({
336
+ xhr: function () {
337
+ var xhr = new window.XMLHttpRequest();
338
+ var progressLoading = null;
339
+
340
+ // Upload progress
341
+ xhr.upload.addEventListener("progress", function (evt) {
342
+ if (evt.lengthComputable) {
343
+ var interValTime = 1000;
344
+ var startWidth = 0;
345
+
346
+ progressLoading = setInterval( function() {
347
+ startWidth += Math.floor((Math.random() * 10) + 1);
348
+ console.log( startWidth );
349
+ if ( 90 <= startWidth ) {
350
+ clearInterval( progressLoading );
351
+ } else {
352
+ progress_inner.css({
353
+ width: startWidth + '%'
354
+ });
355
+ }
356
+ }, interValTime );
357
+ }
358
+ }, false);
359
+
360
+ // Download progress
361
+ xhr.addEventListener("progress", function (evt) {
362
+ if (evt.lengthComputable) {
363
+ var percentComplete = evt.loaded / evt.total;
364
+ progress_inner.css({
365
+ width: percentComplete * 100 + '%'
366
+ });
367
+
368
+ if (percentComplete === 1) {
369
+ console.log( 'process completed' );
370
+ clearInterval( progressLoading );
371
+ }
372
+ }
373
+ }, false);
374
+
375
+ return xhr;
376
+ },
377
+
378
+ type: submit_data.ajax_type,
379
+ url: submit_data.ajax_url,
380
+ data: submit_data.data,
381
+ success: function ( response ) {
382
+ data = $.parseJSON( response );
383
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_submit-completed", [ bt_ajax_submit, data ]);
384
+
385
+ setTimeout( function() {
386
+ progressing_text.hide();
387
+ completed_text.show();
388
+ }, 2000 );
389
+
390
+ setTimeout( function() {
391
+ bt_ajax_submit.show();
392
+ submit_successsed.show();
393
+ progress_bar_wrap.hide();
394
+ progressing_text.show();
395
+ completed_text.hide();
396
+ progress_inner.css({width: '0%'});
397
+ }, 3000 );
398
+ },
399
+ error: function( e ) {
400
+ console.log(e);
401
+
402
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_submit-errors", [ e, bt_ajax_submit ]);
403
+
404
+ setTimeout( function() {
405
+ progressing_text.hide();
406
+ completed_text.show();
407
+ }, 2000 );
408
+
409
+ setTimeout( function() {
410
+ bt_ajax_submit.show();
411
+ progress_bar_wrap.hide();
412
+ progressing_text.show();
413
+ completed_text.hide();
414
+ progress_inner.css({width: '0%'});
415
+ }, 3000 );
416
+ }
417
+ });
418
+ });
419
+
420
+ /* Apply Ajax Multi Submit */
421
+ function a3rev_ui_ajax_submit( bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ) {
422
+ var ajax_item = multi_ajax[ajax_item_id];
423
+ var current_items = $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').data('current');
424
+ var total_items = ajax_item.total_items;
425
+
426
+ // Call to next ajax if current ajax have current items equal or more than total items
427
+ if ( current_items >= total_items ) {
428
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-completed', [ bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
429
+ return false;
430
+ }
431
+
432
+ var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
433
+ var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
434
+ var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
435
+ var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
436
+ var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
437
+ var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
438
+
439
+ progressing_text.html( ajax_item.progressing_text );
440
+ completed_text.html( ajax_item.completed_text );
441
+
442
+ progressing_text.show();
443
+ completed_text.hide();
444
+
445
+ var progress_current_items = progress_inner.data('current');
446
+ var progress_total_items = progress_inner.data('total');
447
+ var currentPercent = progress_current_items / progress_total_items;
448
+ var maximumWidth = Math.floor( total_items / progress_total_items * 100 );
449
+
450
+ var submit_data = ajax_item.submit_data;
451
+
452
+ $.ajax({
453
+ xhr: function () {
454
+ var xhr = new window.XMLHttpRequest();
455
+ var progressLoading = null;
456
+
457
+ // Upload progress
458
+ xhr.upload.addEventListener("progress", function (evt) {
459
+ if (evt.lengthComputable) {
460
+ var interValTime = 1000;
461
+ var startWidth = Math.floor( currentPercent * 100 );
462
+ if ( startWidth > 100 ) startWidth = 100;
463
+ progress_inner.css({
464
+ width: startWidth + '%'
465
+ });
466
+ }
467
+ }, false);
468
+
469
+ // Download progress
470
+ xhr.addEventListener("progress", function (evt) {
471
+ if (evt.lengthComputable) {
472
+ var percentComplete = evt.loaded / evt.total;
473
+ if (percentComplete === 1) {
474
+ // progress completed
475
+ }
476
+ }
477
+ }, false);
478
+
479
+ return xhr;
480
+ },
481
+
482
+ type: submit_data.ajax_type,
483
+ url: submit_data.ajax_url,
484
+ data: submit_data.data,
485
+ success: function ( response ) {
486
+ result = $.parseJSON( response );
487
+
488
+ new_items = result.current_items;
489
+
490
+ increase_items = new_items - current_items;
491
+ progress_current_items += increase_items;
492
+ progress_inner.data('current', progress_current_items);
493
+
494
+ currentPercent = progress_current_items / progress_total_items;
495
+ newWidth = Math.floor( currentPercent * 100 );
496
+ if ( newWidth > 100 ) newWidth = 100;
497
+ progress_inner.css({
498
+ width: newWidth + '%'
499
+ });
500
+
501
+ a3rev_ui_ajax_multi_statistic_change( ajax_item_id, new_items, current_items, total_items, 3000, true );
502
+
503
+ if ( typeof result.status != 'undefined' && 'completed' != result.status ) {
504
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-'+result.status, [ bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
505
+ } else {
506
+ progressing_text.hide();
507
+ completed_text.show();
508
+ setTimeout( function(){
509
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-completed', [ bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
510
+ }, 2000 );
511
+ }
512
+ },
513
+ error: function( e ) {
514
+ console.log(e);
515
+
516
+ // Allow trigger error
517
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-errors', [ e, bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
518
+
519
+ // Stop ajax call here
520
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-errors', [ bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
521
+
522
+ setTimeout( function() {
523
+ bt_ajax_submit.show();
524
+ submit_successsed.hide();
525
+ submit_errors.show();
526
+ progress_bar_wrap.hide();
527
+ progressing_text.show();
528
+ completed_text.hide();
529
+ }, 2000 );
530
+ }
531
+ });
532
+
533
+ return false;
534
+ }
535
+
536
+ function a3rev_ui_ajax_multi_statistic_circle_animation( ajax_item_id, current_point, total_point ) {
537
+ current_deg = 360;
538
+ left_deg = 360;
539
+ right_deg = 180;
540
+ if ( current_point < total_point ) {
541
+ current_deg = Math.round( current_point / total_point * 360 );
542
+ }
543
+
544
+ if ( current_deg <= 180 ) {
545
+ left_deg = right_deg = current_deg;
546
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-pie').removeClass('pie-more-50');
547
+ } else {
548
+ right_deg = 180;
549
+ left_deg = current_deg;
550
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-pie').addClass('pie-more-50');
551
+ }
552
+
553
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-pie-left-side').css('transform', 'rotate('+left_deg+'deg)');
554
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-pie-right-side').css('transform', 'rotate('+right_deg+'deg)');
555
+ }
556
+
557
+ function a3rev_ui_ajax_multi_statistic_change( ajax_item_id, new_point, current_point, total_point, duration, have_effect) {
558
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').data('current', new_point );
559
+ if ( have_effect == false ) {
560
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').html(new_point);
561
+ }
562
+
563
+ $({current_point: current_point}).animate({current_point: new_point}, {
564
+ duration: duration,
565
+ easing:'swing', // can be anything
566
+ step: function() {
567
+ if ( have_effect ) {
568
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').html( Math.round( this.current_point) );
569
+ }
570
+ a3rev_ui_ajax_multi_statistic_circle_animation( ajax_item_id, this.current_point, total_point );
571
+ },
572
+ complete: function() {
573
+ if ( have_effect ) {
574
+ $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').html( Math.round( this.current_point ) );
575
+ }
576
+ a3rev_ui_ajax_multi_statistic_circle_animation( ajax_item_id, this.current_point, total_point );
577
+ }
578
+ });
579
+ }
580
+
581
+ $('.a3rev_panel_container .a3rev-ui-ajax_multi_submit-button').each(function(){
582
+ var bt_ajax_submit = $(this);
583
+ var multi_ajax_registered = JSON.parse( JSON.stringify( bt_ajax_submit.data('multi_ajax') ) );
584
+
585
+ $.each( multi_ajax_registered, function( i, ajax_item ){
586
+ ajax_item_id = ajax_item.item_id;
587
+
588
+ $(document).on( 'a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-start', '#' + bt_ajax_submit.attr('id'), function( event, bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ) {
589
+ console.log( 'Start - ' + ajax_item_id );
590
+ a3rev_ui_ajax_submit( bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id );
591
+ });
592
+
593
+ $(document).on( 'a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-continue', '#' + bt_ajax_submit.attr('id'), function( event, bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ) {
594
+ console.log( 'Continue - ' + ajax_item_id );
595
+ a3rev_ui_ajax_submit( bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id );
596
+ });
597
+
598
+ $(document).on( 'a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-completed', '#' + bt_ajax_submit.attr('id'), function( event, bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ) {
599
+ console.log( 'Completed - ' + ajax_item_id );
600
+
601
+ // Compeleted multi ajax if don't have next ajax item id
602
+ if ( '' == ajax_next_item_id ) {
603
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_multi_submit-end", [bt_ajax_submit, multi_ajax]);
604
+ return false;
605
+ }
606
+
607
+ ajax_next_item = multi_ajax[ajax_next_item_id];
608
+ new_ajax_next_item_id = ajax_next_item.next_item_id;
609
+
610
+ console.log('trigger - '+ajax_next_item_id);
611
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_next_item_id+'-start', [ bt_ajax_submit, multi_ajax, ajax_next_item_id, new_ajax_next_item_id ]);
612
+ });
613
+ });
614
+
615
+ $(document).on( 'a3rev-ui-ajax_multi_submit-end', '#' + bt_ajax_submit.attr('id'), function( event, bt_ajax_submit, multi_ajax ) {
616
+ console.log( 'Completed Multi Ajax' );
617
+
618
+ bt_ajax_submit.data( 'resubmit', 1 );
619
+
620
+ var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
621
+ var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
622
+ var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
623
+ var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
624
+ var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
625
+ var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
626
+
627
+ progress_inner.css({
628
+ width: '100%'
629
+ });
630
+
631
+ setTimeout( function() {
632
+ progressing_text.hide();
633
+ completed_text.show();
634
+ }, 2000 );
635
+
636
+ setTimeout( function() {
637
+ bt_ajax_submit.show();
638
+ submit_successsed.show();
639
+ submit_errors.hide();
640
+ progress_bar_wrap.hide();
641
+ progressing_text.show();
642
+ completed_text.hide();
643
+ progress_inner.css({width: '0%'});
644
+ }, 3000 );
645
+ });
646
+ });
647
+
648
+ $(document).on( 'click', '.a3rev-ui-ajax_multi_submit-button', function(){
649
+ var bt_ajax_submit = $(this);
650
+ var resubmit = bt_ajax_submit.data('resubmit');
651
+ bt_ajax_submit.data('resubmit', 0);
652
+
653
+ var multi_ajax = JSON.parse( JSON.stringify( bt_ajax_submit.data('multi_ajax') ) );
654
+
655
+ var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
656
+ var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
657
+ var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
658
+ var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
659
+ var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
660
+ var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
661
+
662
+ bt_ajax_submit.hide();
663
+ submit_successsed.hide();
664
+ submit_errors.hide();
665
+ progress_bar_wrap.show();
666
+
667
+ // Reset progressing start point to 0 for resubmit
668
+ if ( resubmit == 1 ) {
669
+ progress_inner.data('current', 0);
670
+ }
671
+
672
+
673
+ // Plugin have use this control type need to get this trigger to make action from plugin
674
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_multi_submit-click", [bt_ajax_submit]);
675
+
676
+ var progress_current_items = progress_inner.data('current');
677
+ var progress_total_items = progress_inner.data('total')
678
+ var currentPercent = progress_current_items / progress_total_items;
679
+ if ( currentPercent < 1 ) {
680
+ progress_inner.animate({
681
+ width: Math.floor( currentPercent * 100 ) + '%'
682
+ }, 0 );
683
+ } else {
684
+ currentPercent = 0;
685
+ }
686
+
687
+ var have_first_ajax_item = false;
688
+ var first_ajax_item = null;
689
+ $.each( multi_ajax, function( i, ajax_item ){
690
+ if ( ! have_first_ajax_item ) {
691
+ first_ajax_item = ajax_item;
692
+ have_first_ajax_item = true;
693
+ }
694
+ ajax_item_id = ajax_item.item_id;
695
+ current_items = $('.a3rev-ui-statistic-'+ajax_item_id).find('.a3rev-ui-statistic-current-item').data('current');
696
+ total_items = ajax_item.total_items;
697
+
698
+ // Reset current items of each ajax to 0 for resubmit
699
+ if ( resubmit == 1 ) {
700
+ a3rev_ui_ajax_multi_statistic_change( ajax_item_id, 0, current_items, total_items, 500, false );
701
+ }
702
+ });
703
+
704
+ // Just call first ajax submit
705
+ ajax_item_id = first_ajax_item.item_id;
706
+ ajax_next_item_id = first_ajax_item.next_item_id;
707
+
708
+ $('#' + bt_ajax_submit.attr('id') ).trigger("a3rev-ui-ajax_multi_submit-start", [bt_ajax_submit, multi_ajax]);
709
+
710
+ console.log('trigger - '+ajax_item_id);
711
+ $('#' + bt_ajax_submit.attr('id') ).trigger('a3rev-ui-ajax_multi_submit-'+ajax_item_id+'-start', [ bt_ajax_submit, multi_ajax, ajax_item_id, ajax_next_item_id ]);
712
+
713
+ return false;
714
+ });
715
+
716
+ /* Apply Image Maps script */
717
+ $('.a3rev_panel_container img.rwd_image_maps').each(function(i){
718
+ $(this).rwdImageMaps();
719
+ });
720
+
721
+ $(document).trigger("a3rev-ui-script-loaded");
722
+
723
  });
724
  })(jQuery);
admin/assets/js/bootstrap/modal.js ADDED
@@ -0,0 +1,535 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2
+
3
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
+
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+
7
+ /**
8
+ * --------------------------------------------------------------------------
9
+ * Bootstrap (v4.0.0-alpha.6): modal.js
10
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
+ * --------------------------------------------------------------------------
12
+ */
13
+
14
+ var Modal = function ($) {
15
+
16
+ /**
17
+ * ------------------------------------------------------------------------
18
+ * Constants
19
+ * ------------------------------------------------------------------------
20
+ */
21
+
22
+ var NAME = 'modal';
23
+ var VERSION = '4.0.0-alpha.6';
24
+ var DATA_KEY = 'bs.modal';
25
+ var EVENT_KEY = '.' + DATA_KEY;
26
+ var DATA_API_KEY = '.data-api';
27
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
28
+ var TRANSITION_DURATION = 300;
29
+ var BACKDROP_TRANSITION_DURATION = 150;
30
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
31
+
32
+ var Default = {
33
+ backdrop: true,
34
+ keyboard: true,
35
+ focus: true,
36
+ show: true
37
+ };
38
+
39
+ var DefaultType = {
40
+ backdrop: '(boolean|string)',
41
+ keyboard: 'boolean',
42
+ focus: 'boolean',
43
+ show: 'boolean'
44
+ };
45
+
46
+ var Event = {
47
+ HIDE: 'hide' + EVENT_KEY,
48
+ HIDDEN: 'hidden' + EVENT_KEY,
49
+ SHOW: 'show' + EVENT_KEY,
50
+ SHOWN: 'shown' + EVENT_KEY,
51
+ FOCUSIN: 'focusin' + EVENT_KEY,
52
+ RESIZE: 'resize' + EVENT_KEY,
53
+ CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,
54
+ KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,
55
+ MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,
56
+ MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,
57
+ CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
58
+ };
59
+
60
+ var ClassName = {
61
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
62
+ BACKDROP: 'modal-backdrop',
63
+ OPEN: 'modal-open',
64
+ FADE: 'fade',
65
+ SHOW: 'show'
66
+ };
67
+
68
+ var Selector = {
69
+ DIALOG: '.modal-dialog',
70
+ DATA_TOGGLE: '[data-toggle="modal"]',
71
+ DATA_DISMISS: '[data-dismiss="modal"]',
72
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
73
+ };
74
+
75
+ /**
76
+ * ------------------------------------------------------------------------
77
+ * Class Definition
78
+ * ------------------------------------------------------------------------
79
+ */
80
+
81
+ var Modal = function () {
82
+ function Modal(element, config) {
83
+ _classCallCheck(this, Modal);
84
+
85
+ this._config = this._getConfig(config);
86
+ this._element = element;
87
+ this._dialog = $(element).find(Selector.DIALOG)[0];
88
+ this._backdrop = null;
89
+ this._isShown = false;
90
+ this._isBodyOverflowing = false;
91
+ this._ignoreBackdropClick = false;
92
+ this._isTransitioning = false;
93
+ this._originalBodyPadding = 0;
94
+ this._scrollbarWidth = 0;
95
+ }
96
+
97
+ // getters
98
+
99
+ // public
100
+
101
+ Modal.prototype.toggle = function toggle(relatedTarget) {
102
+ return this._isShown ? this.hide() : this.show(relatedTarget);
103
+ };
104
+
105
+ Modal.prototype.show = function show(relatedTarget) {
106
+ var _this = this;
107
+
108
+ if (this._isTransitioning) {
109
+ throw new Error('Modal is transitioning');
110
+ }
111
+
112
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
113
+ this._isTransitioning = true;
114
+ }
115
+ var showEvent = $.Event(Event.SHOW, {
116
+ relatedTarget: relatedTarget
117
+ });
118
+
119
+ $(this._element).trigger(showEvent);
120
+
121
+ if (this._isShown || showEvent.isDefaultPrevented()) {
122
+ return;
123
+ }
124
+
125
+ this._isShown = true;
126
+
127
+ this._checkScrollbar();
128
+ this._setScrollbar();
129
+
130
+ $(document.body).addClass(ClassName.OPEN);
131
+
132
+ this._setEscapeEvent();
133
+ this._setResizeEvent();
134
+
135
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
136
+ return _this.hide(event);
137
+ });
138
+
139
+ $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
140
+ $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
141
+ if ($(event.target).is(_this._element)) {
142
+ _this._ignoreBackdropClick = true;
143
+ }
144
+ });
145
+ });
146
+
147
+ this._showBackdrop(function () {
148
+ return _this._showElement(relatedTarget);
149
+ });
150
+ };
151
+
152
+ Modal.prototype.hide = function hide(event) {
153
+ var _this2 = this;
154
+
155
+ if (event) {
156
+ event.preventDefault();
157
+ }
158
+
159
+ if (this._isTransitioning) {
160
+ throw new Error('Modal is transitioning');
161
+ }
162
+
163
+ var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
164
+ if (transition) {
165
+ this._isTransitioning = true;
166
+ }
167
+
168
+ var hideEvent = $.Event(Event.HIDE);
169
+ $(this._element).trigger(hideEvent);
170
+
171
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
172
+ return;
173
+ }
174
+
175
+ this._isShown = false;
176
+
177
+ this._setEscapeEvent();
178
+ this._setResizeEvent();
179
+
180
+ $(document).off(Event.FOCUSIN);
181
+
182
+ $(this._element).removeClass(ClassName.SHOW);
183
+
184
+ $(this._element).off(Event.CLICK_DISMISS);
185
+ $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
186
+
187
+ if (transition) {
188
+ $(this._element).one(Util.TRANSITION_END, function (event) {
189
+ return _this2._hideModal(event);
190
+ }).emulateTransitionEnd(TRANSITION_DURATION);
191
+ } else {
192
+ this._hideModal();
193
+ }
194
+ };
195
+
196
+ Modal.prototype.dispose = function dispose() {
197
+ $.removeData(this._element, DATA_KEY);
198
+
199
+ $(window, document, this._element, this._backdrop).off(EVENT_KEY);
200
+
201
+ this._config = null;
202
+ this._element = null;
203
+ this._dialog = null;
204
+ this._backdrop = null;
205
+ this._isShown = null;
206
+ this._isBodyOverflowing = null;
207
+ this._ignoreBackdropClick = null;
208
+ this._originalBodyPadding = null;
209
+ this._scrollbarWidth = null;
210
+ };
211
+
212
+ // private
213
+
214
+ Modal.prototype._getConfig = function _getConfig(config) {
215
+ config = $.extend({}, Default, config);
216
+ Util.typeCheckConfig(NAME, config, DefaultType);
217
+ return config;
218
+ };
219
+
220
+ Modal.prototype._showElement = function _showElement(relatedTarget) {
221
+ var _this3 = this;
222
+
223
+ var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
224
+
225
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
226
+ // don't move modals dom position
227
+ document.body.appendChild(this._element);
228
+ }
229
+
230
+ this._element.style.display = 'block';
231
+ this._element.removeAttribute('aria-hidden');
232
+ this._element.scrollTop = 0;
233
+
234
+ if (transition) {
235
+ Util.reflow(this._element);
236
+ }
237
+
238
+ $(this._element).addClass(ClassName.SHOW);
239
+
240
+ if (this._config.focus) {
241
+ this._enforceFocus();
242
+ }
243
+
244
+ var shownEvent = $.Event(Event.SHOWN, {
245
+ relatedTarget: relatedTarget
246
+ });
247
+
248
+ var transitionComplete = function transitionComplete() {
249
+ if (_this3._config.focus) {
250
+ _this3._element.focus();
251
+ }
252
+ _this3._isTransitioning = false;
253
+ $(_this3._element).trigger(shownEvent);
254
+ };
255
+
256
+ if (transition) {
257
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
258
+ } else {
259
+ transitionComplete();
260
+ }
261
+ };
262
+
263
+ Modal.prototype._enforceFocus = function _enforceFocus() {
264
+ var _this4 = this;
265
+
266
+ $(document).off(Event.FOCUSIN) // guard against infinite focus loop
267
+ .on(Event.FOCUSIN, function (event) {
268
+ if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
269
+ _this4._element.focus();
270
+ }
271
+ });
272
+ };
273
+
274
+ Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
275
+ var _this5 = this;
276
+
277
+ if (this._isShown && this._config.keyboard) {
278
+ $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
279
+ if (event.which === ESCAPE_KEYCODE) {
280
+ _this5.hide();
281
+ }
282
+ });
283
+ } else if (!this._isShown) {
284
+ $(this._element).off(Event.KEYDOWN_DISMISS);
285
+ }
286
+ };
287
+
288
+ Modal.prototype._setResizeEvent = function _setResizeEvent() {
289
+ var _this6 = this;
290
+
291
+ if (this._isShown) {
292
+ $(window).on(Event.RESIZE, function (event) {
293
+ return _this6._handleUpdate(event);
294
+ });
295
+ } else {
296
+ $(window).off(Event.RESIZE);
297
+ }
298
+ };
299
+
300
+ Modal.prototype._hideModal = function _hideModal() {
301
+ var _this7 = this;
302
+
303
+ this._element.style.display = 'none';
304
+ this._element.setAttribute('aria-hidden', 'true');
305
+ this._isTransitioning = false;
306
+ this._showBackdrop(function () {
307
+ $(document.body).removeClass(ClassName.OPEN);
308
+ _this7._resetAdjustments();
309
+ _this7._resetScrollbar();
310
+ $(_this7._element).trigger(Event.HIDDEN);
311
+ });
312
+ };
313
+
314
+ Modal.prototype._removeBackdrop = function _removeBackdrop() {
315
+ if (this._backdrop) {
316
+ $(this._backdrop).remove();
317
+ this._backdrop = null;
318
+ }
319
+ };
320
+
321
+ Modal.prototype._showBackdrop = function _showBackdrop(callback) {
322
+ var _this8 = this;
323
+
324
+ var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
325
+
326
+ if (this._isShown && this._config.backdrop) {
327
+ var doAnimate = Util.supportsTransitionEnd() && animate;
328
+
329
+ this._backdrop = document.createElement('div');
330
+ this._backdrop.className = ClassName.BACKDROP;
331
+
332
+ if (animate) {
333
+ $(this._backdrop).addClass(animate);
334
+ }
335
+
336
+ $(this._backdrop).appendTo(document.body);
337
+
338
+ $(this._element).on(Event.CLICK_DISMISS, function (event) {
339
+ if (_this8._ignoreBackdropClick) {
340
+ _this8._ignoreBackdropClick = false;
341
+ return;
342
+ }
343
+ if (event.target !== event.currentTarget) {
344
+ return;
345
+ }
346
+ if (_this8._config.backdrop === 'static') {
347
+ _this8._element.focus();
348
+ } else {
349
+ _this8.hide();
350
+ }
351
+ });
352
+
353
+ if (doAnimate) {
354
+ Util.reflow(this._backdrop);
355
+ }
356
+
357
+ $(this._backdrop).addClass(ClassName.SHOW);
358
+
359
+ if (!callback) {
360
+ return;
361
+ }
362
+
363
+ if (!doAnimate) {
364
+ callback();
365
+ return;
366
+ }
367
+
368
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
369
+ } else if (!this._isShown && this._backdrop) {
370
+ $(this._backdrop).removeClass(ClassName.SHOW);
371
+
372
+ var callbackRemove = function callbackRemove() {
373
+ _this8._removeBackdrop();
374
+ if (callback) {
375
+ callback();
376
+ }
377
+ };
378
+
379
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
380
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
381
+ } else {
382
+ callbackRemove();
383
+ }
384
+ } else if (callback) {
385
+ callback();
386
+ }
387
+ };
388
+
389
+ // ----------------------------------------------------------------------
390
+ // the following methods are used to handle overflowing modals
391
+ // todo (fat): these should probably be refactored out of modal.js
392
+ // ----------------------------------------------------------------------
393
+
394
+ Modal.prototype._handleUpdate = function _handleUpdate() {
395
+ this._adjustDialog();
396
+ };
397
+
398
+ Modal.prototype._adjustDialog = function _adjustDialog() {
399
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
400
+
401
+ if (!this._isBodyOverflowing && isModalOverflowing) {
402
+ this._element.style.paddingLeft = this._scrollbarWidth + 'px';
403
+ }
404
+
405
+ if (this._isBodyOverflowing && !isModalOverflowing) {
406
+ this._element.style.paddingRight = this._scrollbarWidth + 'px';
407
+ }
408
+ };
409
+
410
+ Modal.prototype._resetAdjustments = function _resetAdjustments() {
411
+ this._element.style.paddingLeft = '';
412
+ this._element.style.paddingRight = '';
413
+ };
414
+
415
+ Modal.prototype._checkScrollbar = function _checkScrollbar() {
416
+ this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;
417
+ this._scrollbarWidth = this._getScrollbarWidth();
418
+ };
419
+
420
+ Modal.prototype._setScrollbar = function _setScrollbar() {
421
+ var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
422
+
423
+ this._originalBodyPadding = document.body.style.paddingRight || '';
424
+
425
+ if (this._isBodyOverflowing) {
426
+ document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
427
+ }
428
+ };
429
+
430
+ Modal.prototype._resetScrollbar = function _resetScrollbar() {
431
+ document.body.style.paddingRight = this._originalBodyPadding;
432
+ };
433
+
434
+ Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
435
+ // thx d.walsh
436
+ var scrollDiv = document.createElement('div');
437
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
438
+ document.body.appendChild(scrollDiv);
439
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
440
+ document.body.removeChild(scrollDiv);
441
+ return scrollbarWidth;
442
+ };
443
+
444
+ // static
445
+
446
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
447
+ return this.each(function () {
448
+ var data = $(this).data(DATA_KEY);
449
+ var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
450
+
451
+ if (!data) {
452
+ data = new Modal(this, _config);
453
+ $(this).data(DATA_KEY, data);
454
+ }
455
+
456
+ if (typeof config === 'string') {
457
+ if (data[config] === undefined) {
458
+ throw new Error('No method named "' + config + '"');
459
+ }
460
+ data[config](relatedTarget);
461
+ } else if (_config.show) {
462
+ data.show(relatedTarget);
463
+ }
464
+ });
465
+ };
466
+
467
+ _createClass(Modal, null, [{
468
+ key: 'VERSION',
469
+ get: function get() {
470
+ return VERSION;
471
+ }
472
+ }, {
473
+ key: 'Default',
474
+ get: function get() {
475
+ return Default;
476
+ }
477
+ }]);
478
+
479
+ return Modal;
480
+ }();
481
+
482
+ /**
483
+ * ------------------------------------------------------------------------
484
+ * Data Api implementation
485
+ * ------------------------------------------------------------------------
486
+ */
487
+
488
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
489
+ var _this9 = this;
490
+
491
+ var target = void 0;
492
+ var selector = Util.getSelectorFromElement(this);
493
+
494
+ if (selector) {
495
+ target = $(selector)[0];
496
+ }
497
+
498
+ var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
499
+
500
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
501
+ event.preventDefault();
502
+ }
503
+
504
+ var $target = $(target).one(Event.SHOW, function (showEvent) {
505
+ if (showEvent.isDefaultPrevented()) {
506
+ // only register focus restorer if modal will actually get shown
507
+ return;
508
+ }
509
+
510
+ $target.one(Event.HIDDEN, function () {
511
+ if ($(_this9).is(':visible')) {
512
+ _this9.focus();
513
+ }
514
+ });
515
+ });
516
+
517
+ Modal._jQueryInterface.call($(target), config, this);
518
+ });
519
+
520
+ /**
521
+ * ------------------------------------------------------------------------
522
+ * jQuery
523
+ * ------------------------------------------------------------------------
524
+ */
525
+
526
+ $.fn[NAME] = Modal._jQueryInterface;
527
+ $.fn[NAME].Constructor = Modal;
528
+ $.fn[NAME].noConflict = function () {
529
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
530
+ return Modal._jQueryInterface;
531
+ };
532
+
533
+ return Modal;
534
+ }(jQuery);
535
+ //# sourceMappingURL=modal.js.map
admin/assets/js/bootstrap/modal.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),Modal=function(a){var b="modal",c="4.0.0-alpha.6",d="bs.modal",e="."+d,f=".data-api",g=a.fn[b],h=300,i=150,j=27,k={backdrop:!0,keyboard:!0,focus:!0,show:!0},l={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},m={HIDE:"hide"+e,HIDDEN:"hidden"+e,SHOW:"show"+e,SHOWN:"shown"+e,FOCUSIN:"focusin"+e,RESIZE:"resize"+e,CLICK_DISMISS:"click.dismiss"+e,KEYDOWN_DISMISS:"keydown.dismiss"+e,MOUSEUP_DISMISS:"mouseup.dismiss"+e,MOUSEDOWN_DISMISS:"mousedown.dismiss"+e,CLICK_DATA_API:"click"+e+f},n={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},o={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"},p=function(){function f(b,c){_classCallCheck(this,f),this._config=this._getConfig(c),this._element=b,this._dialog=a(b).find(o.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return f.prototype.toggle=function(b){return this._isShown?this.hide():this.show(b)},f.prototype.show=function(c){var d=this;if(this._isTransitioning)throw new Error("Modal is transitioning");Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE)&&(this._isTransitioning=!0);var e=a.Event(m.SHOW,{relatedTarget:c});a(this._element).trigger(e),this._isShown||e.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),a(document.body).addClass(n.OPEN),this._setEscapeEvent(),this._setResizeEvent(),a(this._element).on(m.CLICK_DISMISS,o.DATA_DISMISS,function(a){return d.hide(a)}),a(this._dialog).on(m.MOUSEDOWN_DISMISS,function(){a(d._element).one(m.MOUSEUP_DISMISS,function(b){a(b.target).is(d._element)&&(d._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return d._showElement(c)}))},f.prototype.hide=function(c){var d=this;if(c&&c.preventDefault(),this._isTransitioning)throw new Error("Modal is transitioning");var e=Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE);e&&(this._isTransitioning=!0);var f=a.Event(m.HIDE);a(this._element).trigger(f),this._isShown&&!f.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),a(document).off(m.FOCUSIN),a(this._element).removeClass(n.SHOW),a(this._element).off(m.CLICK_DISMISS),a(this._dialog).off(m.MOUSEDOWN_DISMISS),e?a(this._element).one(Util.TRANSITION_END,function(a){return d._hideModal(a)}).emulateTransitionEnd(h):this._hideModal())},f.prototype.dispose=function(){a.removeData(this._element,d),a(window,document,this._element,this._backdrop).off(e),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null},f.prototype._getConfig=function(d){return d=a.extend({},k,d),Util.typeCheckConfig(b,d,l),d},f.prototype._showElement=function(c){var d=this,e=Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,e&&Util.reflow(this._element),a(this._element).addClass(n.SHOW),this._config.focus&&this._enforceFocus();var f=a.Event(m.SHOWN,{relatedTarget:c}),g=function(){d._config.focus&&d._element.focus(),d._isTransitioning=!1,a(d._element).trigger(f)};e?a(this._dialog).one(Util.TRANSITION_END,g).emulateTransitionEnd(h):g()},f.prototype._enforceFocus=function(){var c=this;a(document).off(m.FOCUSIN).on(m.FOCUSIN,function(b){document===b.target||c._element===b.target||a(c._element).has(b.target).length||c._element.focus()})},f.prototype._setEscapeEvent=function(){var c=this;this._isShown&&this._config.keyboard?a(this._element).on(m.KEYDOWN_DISMISS,function(a){a.which===j&&c.hide()}):this._isShown||a(this._element).off(m.KEYDOWN_DISMISS)},f.prototype._setResizeEvent=function(){var c=this;this._isShown?a(window).on(m.RESIZE,function(a){return c._handleUpdate(a)}):a(window).off(m.RESIZE)},f.prototype._hideModal=function(){var c=this;this._element.style.display="none",this._element.setAttribute("aria-hidden","true"),this._isTransitioning=!1,this._showBackdrop(function(){a(document.body).removeClass(n.OPEN),c._resetAdjustments(),c._resetScrollbar(),a(c._element).trigger(m.HIDDEN)})},f.prototype._removeBackdrop=function(){this._backdrop&&(a(this._backdrop).remove(),this._backdrop=null)},f.prototype._showBackdrop=function(c){var d=this,e=a(this._element).hasClass(n.FADE)?n.FADE:"";if(this._isShown&&this._config.backdrop){var f=Util.supportsTransitionEnd()&&e;if(this._backdrop=document.createElement("div"),this._backdrop.className=n.BACKDROP,e&&a(this._backdrop).addClass(e),a(this._backdrop).appendTo(document.body),a(this._element).on(m.CLICK_DISMISS,function(a){if(d._ignoreBackdropClick)return void(d._ignoreBackdropClick=!1);a.target===a.currentTarget&&("static"===d._config.backdrop?d._element.focus():d.hide())}),f&&Util.reflow(this._backdrop),a(this._backdrop).addClass(n.SHOW),!c)return;if(!f)return void c();a(this._backdrop).one(Util.TRANSITION_END,c).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){a(this._backdrop).removeClass(n.SHOW);var g=function(){d._removeBackdrop(),c&&c()};Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE)?a(this._backdrop).one(Util.TRANSITION_END,g).emulateTransitionEnd(i):g()}else c&&c()},f.prototype._handleUpdate=function(){this._adjustDialog()},f.prototype._adjustDialog=function(){var b=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&b&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!b&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},f.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},f.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},f.prototype._setScrollbar=function(){var c=parseInt(a(o.FIXED_CONTENT).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=c+this._scrollbarWidth+"px")},f.prototype._resetScrollbar=function(){document.body.style.paddingRight=this._originalBodyPadding},f.prototype._getScrollbarWidth=function(){var b=document.createElement("div");b.className=n.SCROLLBAR_MEASURER,document.body.appendChild(b);var c=b.offsetWidth-b.clientWidth;return document.body.removeChild(b),c},f._jQueryInterface=function(c,e){return this.each(function(){var b=a(this).data(d),g=a.extend({},f.Default,a(this).data(),"object"===(void 0===c?"undefined":_typeof(c))&&c);if(b||(b=new f(this,g),a(this).data(d,b)),"string"==typeof c){if(void 0===b[c])throw new Error('No method named "'+c+'"');b[c](e)}else g.show&&b.show(e)})},_createClass(f,null,[{key:"VERSION",get:function(){return c}},{key:"Default",get:function(){return k}}]),f}();return a(document).on(m.CLICK_DATA_API,o.DATA_TOGGLE,function(b){var c=this,e=void 0,f=Util.getSelectorFromElement(this);f&&(e=a(f)[0]);var g=a(e).data(d)?"toggle":a.extend({},a(e).data(),a(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||b.preventDefault();var h=a(e).one(m.SHOW,function(b){b.isDefaultPrevented()||h.one(m.HIDDEN,function(){a(c).is(":visible")&&c.focus()})});p._jQueryInterface.call(a(e),g,this)}),a.fn[b]=p._jQueryInterface,a.fn[b].Constructor=p,a.fn[b].noConflict=function(){return a.fn[b]=g,p._jQueryInterface},p}(jQuery);
admin/assets/js/bootstrap/util.js ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v4.0.0-alpha.6): util.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ var Util = function ($) {
9
+
10
+ /**
11
+ * ------------------------------------------------------------------------
12
+ * Private TransitionEnd Helpers
13
+ * ------------------------------------------------------------------------
14
+ */
15
+
16
+ var transition = false;
17
+
18
+ var MAX_UID = 1000000;
19
+
20
+ var TransitionEndEvent = {
21
+ WebkitTransition: 'webkitTransitionEnd',
22
+ MozTransition: 'transitionend',
23
+ OTransition: 'oTransitionEnd otransitionend',
24
+ transition: 'transitionend'
25
+ };
26
+
27
+ // shoutout AngusCroll (https://goo.gl/pxwQGp)
28
+ function toType(obj) {
29
+ return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
30
+ }
31
+
32
+ function isElement(obj) {
33
+ return (obj[0] || obj).nodeType;
34
+ }
35
+
36
+ function getSpecialTransitionEndEvent() {
37
+ return {
38
+ bindType: transition.end,
39
+ delegateType: transition.end,
40
+ handle: function handle(event) {
41
+ if ($(event.target).is(this)) {
42
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
43
+ }
44
+ return undefined;
45
+ }
46
+ };
47
+ }
48
+
49
+ function transitionEndTest() {
50
+ if (window.QUnit) {
51
+ return false;
52
+ }
53
+
54
+ var el = document.createElement('bootstrap');
55
+
56
+ for (var name in TransitionEndEvent) {
57
+ if (el.style[name] !== undefined) {
58
+ return {
59
+ end: TransitionEndEvent[name]
60
+ };
61
+ }
62
+ }
63
+
64
+ return false;
65
+ }
66
+
67
+ function transitionEndEmulator(duration) {
68
+ var _this = this;
69
+
70
+ var called = false;
71
+
72
+ $(this).one(Util.TRANSITION_END, function () {
73
+ called = true;
74
+ });
75
+
76
+ setTimeout(function () {
77
+ if (!called) {
78
+ Util.triggerTransitionEnd(_this);
79
+ }
80
+ }, duration);
81
+
82
+ return this;
83
+ }
84
+
85
+ function setTransitionEndSupport() {
86
+ transition = transitionEndTest();
87
+
88
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
89
+
90
+ if (Util.supportsTransitionEnd()) {
91
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
92
+ }
93
+ }
94
+
95
+ /**
96
+ * --------------------------------------------------------------------------
97
+ * Public Util Api
98
+ * --------------------------------------------------------------------------
99
+ */
100
+
101
+ var Util = {
102
+
103
+ TRANSITION_END: 'bsTransitionEnd',
104
+
105
+ getUID: function getUID(prefix) {
106
+ do {
107
+ // eslint-disable-next-line no-bitwise
108
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
109
+ } while (document.getElementById(prefix));
110
+ return prefix;
111
+ },
112
+ getSelectorFromElement: function getSelectorFromElement(element) {
113
+ var selector = element.getAttribute('data-target');
114
+
115
+ if (!selector) {
116
+ selector = element.getAttribute('href') || '';
117
+ selector = /^#[a-z]/i.test(selector) ? selector : null;
118
+ }
119
+
120
+ return selector;
121
+ },
122
+ reflow: function reflow(element) {
123
+ return element.offsetHeight;
124
+ },
125
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
126
+ $(element).trigger(transition.end);
127
+ },
128
+ supportsTransitionEnd: function supportsTransitionEnd() {
129
+ return Boolean(transition);
130
+ },
131
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
132
+ for (var property in configTypes) {
133
+ if (configTypes.hasOwnProperty(property)) {
134
+ var expectedTypes = configTypes[property];
135
+ var value = config[property];
136
+ var valueType = value && isElement(value) ? 'element' : toType(value);
137
+
138
+ if (!new RegExp(expectedTypes).test(valueType)) {
139
+ throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
140
+ }
141
+ }
142
+ }
143
+ }
144
+ };
145
+
146
+ setTransitionEndSupport();
147
+
148
+ return Util;
149
+ }(jQuery);
150
+ //# sourceMappingURL=util.js.map
admin/assets/js/bootstrap/util.min.js ADDED
@@ -0,0 +1 @@
 
1
+ var Util=function(a){function e(a){return{}.toString.call(a).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function f(a){return(a[0]||a).nodeType}function g(){return{bindType:b.end,delegateType:b.end,handle:function(c){if(a(c.target).is(this))return c.handleObj.handler.apply(this,arguments)}}}function h(){if(window.QUnit)return!1;var a=document.createElement("bootstrap");for(var b in d)if(void 0!==a.style[b])return{end:d[b]};return!1}function i(b){var c=this,d=!1;return a(this).one(k.TRANSITION_END,function(){d=!0}),setTimeout(function(){d||k.triggerTransitionEnd(c)},b),this}function j(){b=h(),a.fn.emulateTransitionEnd=i,k.supportsTransitionEnd()&&(a.event.special[k.TRANSITION_END]=g())}var b=!1,c=1e6,d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},k={TRANSITION_END:"bsTransitionEnd",getUID:function(b){do{b+=~~(Math.random()*c)}while(document.getElementById(b));return b},getSelectorFromElement:function(b){var c=b.getAttribute("data-target");return c||(c=b.getAttribute("href")||"",c=/^#[a-z]/i.test(c)?c:null),c},reflow:function(b){return b.offsetHeight},triggerTransitionEnd:function(d){a(d).trigger(b.end)},supportsTransitionEnd:function(){return Boolean(b)},typeCheckConfig:function(b,c,d){for(var g in d)if(d.hasOwnProperty(g)){var h=d[g],i=c[g],j=i&&f(i)?"element":e(i);if(!new RegExp(h).test(j))throw new Error(b.toUpperCase()+': Option "'+g+'" provided type "'+j+'" but expected type "'+h+'".')}}};return j(),k}(jQuery);
admin/assets/js/rwdImageMaps/jquery.rwdImageMaps.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * rwdImageMaps jQuery plugin v1.5
3
+ *
4
+ * Allows image maps to be used in a responsive design by recalculating the area coordinates to match the actual image size on load and window.resize
5
+ *
6
+ * Copyright (c) 2013 Matt Stow
7
+ * https://github.com/stowball/jQuery-rwdImageMaps
8
+ * http://mattstow.com
9
+ * Licensed under the MIT license
10
+ */
11
+ ;(function(a){a.fn.rwdImageMaps=function(){var c=this;var b=function(){c.each(function(){if(typeof(a(this).attr("usemap"))=="undefined"){return}var e=this,d=a(e);a("<img />").load(function(){var g="width",m="height",n=d.attr(g),j=d.attr(m);if(!n||!j){var o=new Image();o.src=d.attr("src");if(!n){n=o.width}if(!j){j=o.height}}var f=d.width()/100,k=d.height()/100,i=d.attr("usemap").replace("#",""),l="coords";a('map[name="'+i+'"]').find("area").each(function(){var r=a(this);if(!r.data(l)){r.data(l,r.attr(l))}var q=r.data(l).split(","),p=new Array(q.length);for(var h=0;h<p.length;++h){if(h%2===0){p[h]=parseInt(((q[h]/n)*100)*f)}else{p[h]=parseInt(((q[h]/j)*100)*k)}}r.attr(l,p.toString())})}).attr("src",d.attr("src"))})};a(window).resize(b).trigger("resize");return this}})(jQuery);
admin/includes/fonts_face.php CHANGED
@@ -574,10 +574,15 @@ class A3_Lazy_Load_Fonts_Face extends A3_Lazy_Load_Admin_UI
574
  $option['face'] = "'" . $option['face'] . "', arial, sans-serif";
575
  }
576
 
 
 
 
 
 
577
  if ( !@$option['style'] && !@$option['size'] && !@$option['color'] )
578
  return 'font-family: '.stripslashes($option["face"]).' !important;';
579
  else
580
- return 'font:'.$option['style'].' '.$option['size'].' '.stripslashes($option['face']).' !important; color:'.$option['color'].' !important;';
581
  }
582
 
583
 
574
  $option['face'] = "'" . $option['face'] . "', arial, sans-serif";
575
  }
576
 
577
+ $line_height = '1.4em';
578
+ if( isset( $option['line_height'] ) ){
579
+ $line_height = $option['line_height'];
580
+ }
581
+
582
  if ( !@$option['style'] && !@$option['size'] && !@$option['color'] )
583
  return 'font-family: '.stripslashes($option["face"]).' !important;';
584
  else
585
+ return 'font:'.$option['style'].' '.$option['size'].'/' . $line_height . ' ' .stripslashes($option['face']).' !important; color:'.$option['color'].' !important;';
586
  }
587
 
588
 
admin/includes/uploader/class-uploader.php CHANGED
@@ -98,7 +98,7 @@ class A3_Lazy_Load_Uploader extends A3_Lazy_Load_Admin_UI
98
 
99
  $output .= '<input type="hidden" name="'.$attachment_id_name_attribute.'" id="'.$id_attribute.'_attachment_id" value="'.$attachment_id.'" class=" a3_upload_attachment_id" />';
100
  $output .= '<input data-strip-methods="'.$strip_methods.'" type="text" name="'.$name_attribute.'" id="'.$id_attribute.'" value="'.esc_attr( $value ).'" class="'.$id_attribute. ' ' .$class.' a3_upload" style="'.$css.'" rel="'.$field_name.'" /> ';
101
- $output .= '<input id="upload_'.$id_attribute.'" class="a3rev-ui-upload-button a3_upload_button button" type="button" value="'.__( 'Upload', 'a3_lazy_load' ).'" /> '.$description;
102
 
103
  $output .= '<div style="clear:both;"></div><div class="a3_screenshot" id="'.$id_attribute.'_image" style="'.( ( $value == '' ) ? 'display:none;' : 'display:block;' ).'">';
104
 
@@ -118,7 +118,7 @@ class A3_Lazy_Load_Uploader extends A3_Lazy_Load_Admin_UI
118
 
119
  $output .= '';
120
 
121
- $title = __( 'View File', 'a3_lazy_load' );
122
 
123
  $output .= '<div class="a3_no_image"><span class="a3_file_link"><a href="'.esc_url( $value ).'" target="_blank" rel="a3_external">'.$title.'</a></span>'.$remove.'</div>';
124
 
98
 
99
  $output .= '<input type="hidden" name="'.$attachment_id_name_attribute.'" id="'.$id_attribute.'_attachment_id" value="'.$attachment_id.'" class=" a3_upload_attachment_id" />';
100
  $output .= '<input data-strip-methods="'.$strip_methods.'" type="text" name="'.$name_attribute.'" id="'.$id_attribute.'" value="'.esc_attr( $value ).'" class="'.$id_attribute. ' ' .$class.' a3_upload" style="'.$css.'" rel="'.$field_name.'" /> ';
101
+ $output .= '<input id="upload_'.$id_attribute.'" class="a3rev-ui-upload-button a3_upload_button button" type="button" value="'.__( 'Upload', 'a3-lazy-load' ).'" /> '.$description;
102
 
103
  $output .= '<div style="clear:both;"></div><div class="a3_screenshot" id="'.$id_attribute.'_image" style="'.( ( $value == '' ) ? 'display:none;' : 'display:block;' ).'">';
104
 
118
 
119
  $output .= '';
120
 
121
+ $title = __( 'View File', 'a3-lazy-load' );
122
 
123
  $output .= '<div class="a3_no_image"><span class="a3_file_link"><a href="'.esc_url( $value ).'" target="_blank" rel="a3_external">'.$title.'</a></span>'.$remove.'</div>';
124
 
admin/settings/template-settings/global-settings.php CHANGED
@@ -78,9 +78,9 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
78
  $this->subtab_init();
79
 
80
  $this->form_messages = array(
81
- 'success_message' => __( 'Settings successfully saved.', 'a3_lazy_load' ),
82
- 'error_message' => __( 'Error: Settings can not save.', 'a3_lazy_load' ),
83
- 'reset_message' => __( 'Settings successfully reseted.', 'a3_lazy_load' ),
84
  );
85
 
86
  add_action( $this->plugin_name . '-' . $this->form_key . '_settings_end', array( $this, 'include_script' ) );
@@ -150,7 +150,7 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
150
 
151
  $subtab_data = array(
152
  'name' => 'global-settings',
153
- 'label' => __( 'Global Settings', 'a3_lazy_load' ),
154
  'callback_function' => 'a3_lazy_load_global_settings_form',
155
  );
156
 
@@ -193,27 +193,27 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
193
  // Define settings
194
  $this->form_fields = apply_filters( $this->option_name . '_settings_fields', array(
195
  array(
196
- 'name' => __( 'Plugin Framework Global Settings', 'a3_lazy_load' ),
197
  'id' => 'plugin_framework_global_box',
198
  'type' => 'heading',
199
  'first_open'=> true,
200
  'is_box' => true,
201
  ),
202
  array(
203
- 'name' => __( 'Customize Admin Setting Box Display', 'a3_lazy_load' ),
204
- 'desc' => __( 'By default each admin panel will open with all Setting Boxes in the CLOSED position.', 'a3_lazy_load' ),
205
  'type' => 'heading',
206
  ),
207
  array(
208
  'type' => 'onoff_toggle_box',
209
  ),
210
  array(
211
- 'name' => __( 'House Keeping', 'a3_lazy_load' ),
212
  'type' => 'heading',
213
  ),
214
  array(
215
- 'name' => __( 'Clean up on Deletion', 'a3_lazy_load' ),
216
- 'desc' => __( 'On deletion (not deactivate) the plugin will completely remove all tables and data it created, leaving no trace it was ever here.', 'a3_lazy_load'),
217
  'id' => 'a3_lazy_load_clean_on_deletion',
218
  'type' => 'onoff_checkbox',
219
  'default' => '0',
@@ -221,45 +221,45 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
221
  'free_version' => true,
222
  'checked_value' => '1',
223
  'unchecked_value' => '0',
224
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
225
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
226
  ),
227
 
228
  array(
229
- 'name' => __( 'Lazy Load Activation', 'a3_lazy_load' ),
230
  'type' => 'heading',
231
  'id' => 'lazy_load_enable_box',
232
  'is_box' => true,
233
  ),
234
  array(
235
- 'name' => __( 'Enable Lazy Load', 'a3_lazy_load' ),
236
  'id' => 'a3l_apply_lazyloadxt',
237
  'class' => 'a3l_apply_to_load',
238
  'type' => 'onoff_checkbox',
239
  'default' => true,
240
  'checked_value' => true,
241
  'unchecked_value' => false,
242
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
243
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
244
  ),
245
 
246
  array(
247
- 'name' => __( 'Lazy Load Images', 'a3_lazy_load' ),
248
  'type' => 'heading',
249
  'class' => 'a3l_apply_to_load_container',
250
  'id' => 'a3l_apply_to_images_box',
251
  'is_box' => true,
252
  ),
253
  array(
254
- 'name' => __( 'Enable Lazy Load for Images', 'a3_lazy_load' ),
255
  'id' => 'a3l_apply_to_images',
256
  'class' => 'a3l_apply_to_images',
257
  'type' => 'onoff_checkbox',
258
  'default' => true,
259
  'checked_value' => true,
260
  'unchecked_value' => false,
261
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
262
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
263
  ),
264
 
265
  array(
@@ -267,83 +267,83 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
267
  'class' => 'a3l_apply_to_load_images_container'
268
  ),
269
  array(
270
- 'name' => __( 'Images in Content', 'a3_lazy_load' ),
271
  'id' => 'a3l_apply_image_to_content',
272
  'type' => 'onoff_checkbox',
273
  'default' => true,
274
  'checked_value' => true,
275
  'unchecked_value' => false,
276
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
277
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
278
  ),
279
  array(
280
- 'name' => __( 'Images in Widgets', 'a3_lazy_load' ),
281
  'id' => 'a3l_apply_image_to_textwidget',
282
  'type' => 'onoff_checkbox',
283
  'default' => true,
284
  'checked_value' => true,
285
  'unchecked_value' => false,
286
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
287
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
288
  ),
289
  array(
290
- 'name' => __( 'Post Thumbnails', 'a3_lazy_load' ),
291
  'id' => 'a3l_apply_image_to_postthumbnails',
292
  'type' => 'onoff_checkbox',
293
  'default' => true,
294
  'checked_value' => true,
295
  'unchecked_value' => false,
296
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
297
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
298
  ),
299
  array(
300
- 'name' => __( 'Gravatars', 'a3_lazy_load' ),
301
  'id' => 'a3l_apply_image_to_gravatars',
302
  'type' => 'onoff_checkbox',
303
  'default' => true,
304
  'checked_value' => true,
305
  'unchecked_value' => false,
306
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
307
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
308
  ),
309
  array(
310
- 'name' => __( 'Skip Images Classes', 'a3_lazy_load' ),
311
  'id' => 'a3l_skip_image_with_class',
312
- 'desc' => __('Comma separated. Example: "no-lazy, lazy-ignore, image-235"', 'a3_lazy_load'),
313
  'type' => 'text',
314
  'default' => ""
315
  ),
316
  array(
317
- 'name' => __( 'Noscript Support', 'a3_lazy_load' ),
318
  'id' => 'a3l_image_include_noscript',
319
- 'desc' => __( 'Turn ON to activate Noscript tag as a fallback to show images for users who have JavaScript disabled in their browser.', 'a3_lazy_load' ),
320
  'type' => 'onoff_checkbox',
321
  'default' => true,
322
  'checked_value' => true,
323
  'unchecked_value' => false,
324
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
325
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
326
  ),
327
 
328
 
329
  array(
330
- 'name' => __( 'Lazy Load Videos and iframes', 'a3_lazy_load' ),
331
  'type' => 'heading',
332
  'class' => 'a3l_apply_to_load_container',
333
  'id' => 'a3l_apply_to_videos_box',
334
  'is_box' => true,
335
  ),
336
  array(
337
- 'name' => __( 'Video and iframes', 'a3_lazy_load' ),
338
- 'desc' => sprintf( __( 'Turn ON to activate Lazy Load for <a href="%s" target="_blank">WordPress Embeds</a>, <a href="%s" target="_blank">HTML5 Video</a> and content loaded by iframe from all sources. Note: WordPress Shortcode is not supported.', 'a3_lazy_load' ), 'http://codex.wordpress.org/Embeds/', 'http://www.w3schools.com/html/html5_video.asp' ),
339
  'id' => 'a3l_apply_to_videos',
340
  'class' => 'a3l_apply_to_videos',
341
  'type' => 'onoff_checkbox',
342
  'default' => true,
343
  'checked_value' => true,
344
  'unchecked_value' => false,
345
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
346
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
347
  ),
348
 
349
  array(
@@ -351,128 +351,128 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
351
  'class' => 'a3l_apply_to_load_videos_container'
352
  ),
353
  array(
354
- 'name' => __( 'In Content', 'a3_lazy_load' ),
355
  'id' => 'a3l_apply_video_to_content',
356
  'type' => 'onoff_checkbox',
357
  'default' => true,
358
  'checked_value' => true,
359
  'unchecked_value' => false,
360
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
361
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
362
  ),
363
  array(
364
- 'name' => __( 'In Widgets', 'a3_lazy_load' ),
365
  'id' => 'a3l_apply_video_to_textwidget',
366
  'type' => 'onoff_checkbox',
367
  'default' => true,
368
  'checked_value' => true,
369
  'unchecked_value' => false,
370
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
371
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
372
  ),
373
  array(
374
- 'name' => __( 'Skip Videos Classes', 'a3_lazy_load' ),
375
  'id' => 'a3l_skip_video_with_class',
376
- 'desc' => __('Comma separated. Example: "no-lazy, lazy-ignore, video-235"', 'a3_lazy_load'),
377
  'type' => 'text',
378
  'default' => ""
379
  ),
380
  array(
381
- 'name' => __( 'Noscript Support', 'a3_lazy_load' ),
382
  'id' => 'a3l_video_include_noscript',
383
- 'desc' => __( 'Turn ON to activate Noscript tag as a fallback to show WordPress Embeds, HTML 5 Video and iframe loaded content for users who have JavaScript disabled in their browser.', 'a3_lazy_load' ),
384
  'type' => 'onoff_checkbox',
385
  'default' => true,
386
  'checked_value' => true,
387
  'unchecked_value' => false,
388
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
389
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
390
  ),
391
 
392
  array(
393
- 'name' => __( 'Script Load Optimization', 'a3_lazy_load' ),
394
  'type' => 'heading',
395
  'class' => 'a3l_apply_to_load_container',
396
  'id' => 'a3l_script_load_optimization_box',
397
  'is_box' => true,
398
  ),
399
  array(
400
- 'name' => __( 'Theme Loader Function', 'a3_lazy_load' ),
401
- 'desc' => __( 'Your theme must have the wp_footer() function if you select FOOTER load.', 'a3_lazy_load' ),
402
  'id' => 'a3l_theme_loader',
403
  'type' => 'switcher_checkbox',
404
  'default' => 'wp_footer',
405
  'checked_value' => 'wp_head',
406
  'unchecked_value' => 'wp_footer',
407
- 'checked_label' => __( 'HEADER', 'a3_lazy_load' ),
408
- 'unchecked_label' => __( 'FOOTER', 'a3_lazy_load' ),
409
  ),
410
 
411
  array(
412
- 'name' => __( 'WordPress Mobile Template Plugins', 'a3_lazy_load' ),
413
  'type' => 'heading',
414
  'class' => 'a3l_apply_to_load_container',
415
  'id' => 'a3l_wordpress_mobile_template_box',
416
  'is_box' => true,
417
  ),
418
  array(
419
- 'name' => __( 'Disable On WPTouch', 'a3_lazy_load' ),
420
- 'desc' => __("Disables a3 Lazy Load when the WPTouch mobile theme is used", 'a3_lazy_load'),
421
  'id' => 'a3l_load_disable_on_wptouch',
422
  'type' => 'onoff_checkbox',
423
  'default' => true,
424
  'checked_value' => true,
425
  'unchecked_value' => false,
426
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
427
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
428
  ),
429
  array(
430
- 'name' => __( 'Disable On MobilePress', 'a3_lazy_load' ),
431
- 'desc' => __("Disables a3 Lazy Load when the MobilePress mobile theme is used", 'a3_lazy_load'),
432
  'id' => 'a3l_load_disable_on_mobilepress',
433
  'type' => 'onoff_checkbox',
434
  'default' => true,
435
  'checked_value' => true,
436
  'unchecked_value' => false,
437
- 'checked_label' => __( 'ON', 'a3_lazy_load' ),
438
- 'unchecked_label' => __( 'OFF', 'a3_lazy_load' ),
439
  ),
440
 
441
  array(
442
- 'name' => __( 'Effect & Style', 'a3_lazy_load' ),
443
  'class' => 'a3l_apply_to_load_container',
444
  'type' => 'heading',
445
  'id' => 'a3l_settings_style_box',
446
  'is_box' => true,
447
  ),
448
  array(
449
- 'name' => __( 'Loading Effect', 'a3_lazy_load' ),
450
  'id' => 'a3l_effect',
451
  'type' => 'switcher_checkbox',
452
  'default' => 'spinner',
453
  'checked_value' => 'fadein',
454
  'unchecked_value' => 'spinner',
455
- 'checked_label' => __( 'FADE IN', 'a3_lazy_load' ),
456
- 'unchecked_label' => __( 'SPINNER', 'a3_lazy_load' ),
457
  ),
458
  array(
459
- 'name' => __( 'Loading Background Colour', 'a3_lazy_load' ),
460
  'id' => 'a3l_effect_background',
461
  'type' => 'color',
462
  'default' => '#ffffff'
463
  ),
464
 
465
  array(
466
- 'name' => __( 'Image Load Threshold', 'a3_lazy_load' ),
467
  'class' => 'a3l_apply_to_load_container',
468
  'type' => 'heading',
469
  'id' => 'a3l_image_load_theshold_box',
470
  'is_box' => true,
471
  ),
472
  array(
473
- 'name' => __( 'Threshold', 'a3_lazy_load' ),
474
  'id' => 'a3l_edgeY',
475
- 'desc' => 'px ' . __( 'Expands visible page area (viewport) in vertical direction by the amount of pixels set. Elements start to load as soon as the reach the threshold instead of when they reach the actual viewport.', 'a3_lazy_load' ),
476
  'type' => 'text',
477
  'default' => 0,
478
  'css' => 'width: 80px;'
78
  $this->subtab_init();
79
 
80
  $this->form_messages = array(
81
+ 'success_message' => __( 'Settings successfully saved.', 'a3-lazy-load' ),
82
+ 'error_message' => __( 'Error: Settings can not save.', 'a3-lazy-load' ),
83
+ 'reset_message' => __( 'Settings successfully reseted.', 'a3-lazy-load' ),
84
  );
85
 
86
  add_action( $this->plugin_name . '-' . $this->form_key . '_settings_end', array( $this, 'include_script' ) );
150
 
151
  $subtab_data = array(
152
  'name' => 'global-settings',
153
+ 'label' => __( 'Global Settings', 'a3-lazy-load' ),
154
  'callback_function' => 'a3_lazy_load_global_settings_form',
155
  );
156
 
193
  // Define settings
194
  $this->form_fields = apply_filters( $this->option_name . '_settings_fields', array(
195
  array(
196
+ 'name' => __( 'Plugin Framework Global Settings', 'a3-lazy-load' ),
197
  'id' => 'plugin_framework_global_box',
198
  'type' => 'heading',
199
  'first_open'=> true,
200
  'is_box' => true,
201
  ),
202
  array(
203
+ 'name' => __( 'Customize Admin Setting Box Display', 'a3-lazy-load' ),
204
+ 'desc' => __( 'By default each admin panel will open with all Setting Boxes in the CLOSED position.', 'a3-lazy-load' ),
205
  'type' => 'heading',
206
  ),
207
  array(
208
  'type' => 'onoff_toggle_box',
209
  ),
210
  array(
211
+ 'name' => __( 'House Keeping', 'a3-lazy-load' ),
212
  'type' => 'heading',
213
  ),
214
  array(
215
+ 'name' => __( 'Clean up on Deletion', 'a3-lazy-load' ),
216
+ 'desc' => __( 'On deletion (not deactivate) the plugin will completely remove all tables and data it created, leaving no trace it was ever here.', 'a3-lazy-load' ),
217
  'id' => 'a3_lazy_load_clean_on_deletion',
218
  'type' => 'onoff_checkbox',
219
  'default' => '0',
221
  'free_version' => true,
222
  'checked_value' => '1',
223
  'unchecked_value' => '0',
224
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
225
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
226
  ),
227
 
228
  array(
229
+ 'name' => __( 'Lazy Load Activation', 'a3-lazy-load' ),
230
  'type' => 'heading',
231
  'id' => 'lazy_load_enable_box',
232
  'is_box' => true,
233
  ),
234
  array(
235
+ 'name' => __( 'Enable Lazy Load', 'a3-lazy-load' ),
236
  'id' => 'a3l_apply_lazyloadxt',
237
  'class' => 'a3l_apply_to_load',
238
  'type' => 'onoff_checkbox',
239
  'default' => true,
240
  'checked_value' => true,
241
  'unchecked_value' => false,
242
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
243
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
244
  ),
245
 
246
  array(
247
+ 'name' => __( 'Lazy Load Images', 'a3-lazy-load' ),
248
  'type' => 'heading',
249
  'class' => 'a3l_apply_to_load_container',
250
  'id' => 'a3l_apply_to_images_box',
251
  'is_box' => true,
252
  ),
253
  array(
254
+ 'name' => __( 'Enable Lazy Load for Images', 'a3-lazy-load' ),
255
  'id' => 'a3l_apply_to_images',
256
  'class' => 'a3l_apply_to_images',
257
  'type' => 'onoff_checkbox',
258
  'default' => true,
259
  'checked_value' => true,
260
  'unchecked_value' => false,
261
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
262
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
263
  ),
264
 
265
  array(
267
  'class' => 'a3l_apply_to_load_images_container'
268
  ),
269
  array(
270
+ 'name' => __( 'Images in Content', 'a3-lazy-load' ),
271
  'id' => 'a3l_apply_image_to_content',
272
  'type' => 'onoff_checkbox',
273
  'default' => true,
274
  'checked_value' => true,
275
  'unchecked_value' => false,
276
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
277
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
278
  ),
279
  array(
280
+ 'name' => __( 'Images in Widgets', 'a3-lazy-load' ),
281
  'id' => 'a3l_apply_image_to_textwidget',
282
  'type' => 'onoff_checkbox',
283
  'default' => true,
284
  'checked_value' => true,
285
  'unchecked_value' => false,
286
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
287
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
288
  ),
289
  array(
290
+ 'name' => __( 'Post Thumbnails', 'a3-lazy-load' ),
291
  'id' => 'a3l_apply_image_to_postthumbnails',
292
  'type' => 'onoff_checkbox',
293
  'default' => true,
294
  'checked_value' => true,
295
  'unchecked_value' => false,
296
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
297
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
298
  ),
299
  array(
300
+ 'name' => __( 'Gravatars', 'a3-lazy-load' ),
301
  'id' => 'a3l_apply_image_to_gravatars',
302
  'type' => 'onoff_checkbox',
303
  'default' => true,
304
  'checked_value' => true,
305
  'unchecked_value' => false,
306
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
307
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
308
  ),
309
  array(
310
+ 'name' => __( 'Skip Images Classes', 'a3-lazy-load' ),
311
  'id' => 'a3l_skip_image_with_class',
312
+ 'desc' => __('Comma separated. Example: "no-lazy, lazy-ignore, image-235"', 'a3-lazy-load' ),
313
  'type' => 'text',
314
  'default' => ""
315
  ),
316
  array(
317
+ 'name' => __( 'Noscript Support', 'a3-lazy-load' ),
318
  'id' => 'a3l_image_include_noscript',
319
+ 'desc' => __( 'Turn ON to activate Noscript tag as a fallback to show images for users who have JavaScript disabled in their browser.', 'a3-lazy-load' ),
320
  'type' => 'onoff_checkbox',
321
  'default' => true,
322
  'checked_value' => true,
323
  'unchecked_value' => false,
324
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
325
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
326
  ),
327
 
328
 
329
  array(
330
+ 'name' => __( 'Lazy Load Videos and iframes', 'a3-lazy-load' ),
331
  'type' => 'heading',
332
  'class' => 'a3l_apply_to_load_container',
333
  'id' => 'a3l_apply_to_videos_box',
334
  'is_box' => true,
335
  ),
336
  array(
337
+ 'name' => __( 'Video and iframes', 'a3-lazy-load' ),
338
+ 'desc' => sprintf( __( 'Turn ON to activate Lazy Load for <a href="%s" target="_blank">WordPress Embeds</a>, <a href="%s" target="_blank">HTML5 Video</a> and content loaded by iframe from all sources. Note: WordPress Shortcode is not supported.', 'a3-lazy-load' ), 'http://codex.wordpress.org/Embeds/', 'http://www.w3schools.com/html/html5_video.asp' ),
339
  'id' => 'a3l_apply_to_videos',
340
  'class' => 'a3l_apply_to_videos',
341
  'type' => 'onoff_checkbox',
342
  'default' => true,
343
  'checked_value' => true,
344
  'unchecked_value' => false,
345
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
346
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
347
  ),
348
 
349
  array(
351
  'class' => 'a3l_apply_to_load_videos_container'
352
  ),
353
  array(
354
+ 'name' => __( 'In Content', 'a3-lazy-load' ),
355
  'id' => 'a3l_apply_video_to_content',
356
  'type' => 'onoff_checkbox',
357
  'default' => true,
358
  'checked_value' => true,
359
  'unchecked_value' => false,
360
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
361
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
362
  ),
363
  array(
364
+ 'name' => __( 'In Widgets', 'a3-lazy-load' ),
365
  'id' => 'a3l_apply_video_to_textwidget',
366
  'type' => 'onoff_checkbox',
367
  'default' => true,
368
  'checked_value' => true,
369
  'unchecked_value' => false,
370
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
371
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
372
  ),
373
  array(
374
+ 'name' => __( 'Skip Videos Classes', 'a3-lazy-load' ),
375
  'id' => 'a3l_skip_video_with_class',
376
+ 'desc' => __('Comma separated. Example: "no-lazy, lazy-ignore, video-235"', 'a3-lazy-load' ),
377
  'type' => 'text',
378
  'default' => ""
379
  ),
380
  array(
381
+ 'name' => __( 'Noscript Support', 'a3-lazy-load' ),
382
  'id' => 'a3l_video_include_noscript',
383
+ 'desc' => __( 'Turn ON to activate Noscript tag as a fallback to show WordPress Embeds, HTML 5 Video and iframe loaded content for users who have JavaScript disabled in their browser.', 'a3-lazy-load' ),
384
  'type' => 'onoff_checkbox',
385
  'default' => true,
386
  'checked_value' => true,
387
  'unchecked_value' => false,
388
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
389
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
390
  ),
391
 
392
  array(
393
+ 'name' => __( 'Script Load Optimization', 'a3-lazy-load' ),
394
  'type' => 'heading',
395
  'class' => 'a3l_apply_to_load_container',
396
  'id' => 'a3l_script_load_optimization_box',
397
  'is_box' => true,
398
  ),
399
  array(
400
+ 'name' => __( 'Theme Loader Function', 'a3-lazy-load' ),
401
+ 'desc' => __( 'Your theme must have the wp_footer() function if you select FOOTER load.', 'a3-lazy-load' ),
402
  'id' => 'a3l_theme_loader',
403
  'type' => 'switcher_checkbox',
404
  'default' => 'wp_footer',
405
  'checked_value' => 'wp_head',
406
  'unchecked_value' => 'wp_footer',
407
+ 'checked_label' => __( 'HEADER', 'a3-lazy-load' ),
408
+ 'unchecked_label' => __( 'FOOTER', 'a3-lazy-load' ),
409
  ),
410
 
411
  array(
412
+ 'name' => __( 'WordPress Mobile Template Plugins', 'a3-lazy-load' ),
413
  'type' => 'heading',
414
  'class' => 'a3l_apply_to_load_container',
415
  'id' => 'a3l_wordpress_mobile_template_box',
416
  'is_box' => true,
417
  ),
418
  array(
419
+ 'name' => __( 'Disable On WPTouch', 'a3-lazy-load' ),
420
+ 'desc' => __("Disables a3 Lazy Load when the WPTouch mobile theme is used", 'a3-lazy-load' ),
421
  'id' => 'a3l_load_disable_on_wptouch',
422
  'type' => 'onoff_checkbox',
423
  'default' => true,
424
  'checked_value' => true,
425
  'unchecked_value' => false,
426
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
427
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
428
  ),
429
  array(
430
+ 'name' => __( 'Disable On MobilePress', 'a3-lazy-load' ),
431
+ 'desc' => __("Disables a3 Lazy Load when the MobilePress mobile theme is used", 'a3-lazy-load' ),
432
  'id' => 'a3l_load_disable_on_mobilepress',
433
  'type' => 'onoff_checkbox',
434
  'default' => true,
435
  'checked_value' => true,
436
  'unchecked_value' => false,
437
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
438
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
439
  ),
440
 
441
  array(
442
+ 'name' => __( 'Effect & Style', 'a3-lazy-load' ),
443
  'class' => 'a3l_apply_to_load_container',
444
  'type' => 'heading',
445
  'id' => 'a3l_settings_style_box',
446
  'is_box' => true,
447
  ),
448
  array(
449
+ 'name' => __( 'Loading Effect', 'a3-lazy-load' ),
450
  'id' => 'a3l_effect',
451
  'type' => 'switcher_checkbox',
452
  'default' => 'spinner',
453
  'checked_value' => 'fadein',
454
  'unchecked_value' => 'spinner',
455
+ 'checked_label' => __( 'FADE IN', 'a3-lazy-load' ),
456
+ 'unchecked_label' => __( 'SPINNER', 'a3-lazy-load' ),
457
  ),
458
  array(
459
+ 'name' => __( 'Loading Background Colour', 'a3-lazy-load' ),
460
  'id' => 'a3l_effect_background',
461
  'type' => 'color',
462
  'default' => '#ffffff'
463
  ),
464
 
465
  array(
466
+ 'name' => __( 'Image Load Threshold', 'a3-lazy-load' ),
467
  'class' => 'a3l_apply_to_load_container',
468
  'type' => 'heading',
469
  'id' => 'a3l_image_load_theshold_box',
470
  'is_box' => true,
471
  ),
472
  array(
473
+ 'name' => __( 'Threshold', 'a3-lazy-load' ),
474
  'id' => 'a3l_edgeY',
475
+ 'desc' => 'px ' . __( 'Expands visible page area (viewport) in vertical direction by the amount of pixels set. Elements start to load as soon as the reach the threshold instead of when they reach the actual viewport.', 'a3-lazy-load' ),
476
  'type' => 'text',
477
  'default' => 0,
478
  'css' => 'width: 80px;'
admin/tabs/template-settings/global-settings-tab.php CHANGED
@@ -75,7 +75,7 @@ class A3_Lazy_Load_Global_Settings_Tab extends A3_Lazy_Load_Admin_UI
75
 
76
  $tab_data = array(
77
  'name' => 'global-settings',
78
- 'label' => __( 'Global Settings', 'a3_lazy_load' ),
79
  'callback_function' => 'a3_lazy_load_global_settings_tab_manager',
80
  );
81
 
75
 
76
  $tab_data = array(
77
  'name' => 'global-settings',
78
+ 'label' => __( 'Global Settings', 'a3-lazy-load' ),
79
  'callback_function' => 'a3_lazy_load_global_settings_tab_manager',
80
  );
81
 
classes/addons/class-a3-lazy-load-addons-page.php CHANGED
@@ -20,7 +20,7 @@ class A3_Lazy_Load_Addons_Page
20
  public function admin_menu() {
21
  $parent_page = 'a3-lazy-load';
22
  if ( current_user_can( 'manage_options' ) )
23
- add_submenu_page( $parent_page, __( 'a3 Lazy Load Add-ons/Extensions', 'a3_lazy_load' ), '<span style="color:#2ea2cc">' . __( 'Add-ons', 'a3_lazy_load' ) .'</span>', 'manage_options', 'a3-lazy-load-addons', array( $this, 'output' ) );
24
  }
25
 
26
  public function load_addons_page_scripts() {
@@ -35,7 +35,7 @@ class A3_Lazy_Load_Addons_Page
35
  ?>
36
  <div class="wrap a3-lazyload-addons-container">
37
 
38
- <h2 id="a3-lazyload-addons-title"><?php echo __( 'a3 Lazy Load Add-ons/Extensions', 'a3_lazy_load' ); ?></h2>
39
 
40
  <?php
41
  /**
@@ -43,7 +43,7 @@ class A3_Lazy_Load_Addons_Page
43
  *
44
  * $addons_tabs = array(
45
  * 'extensions' => array(
46
- * 'name' => __( 'Add-ons', 'a3_lazy_load' ),
47
  * 'view' => 'extensions',
48
  * 'callback_action' => 'a3_lazyload_extensions_wrap',
49
  * )
@@ -55,7 +55,7 @@ class A3_Lazy_Load_Addons_Page
55
  <?php if ( is_array( $addons_tabs ) && count( $addons_tabs ) > 0 ) : ?>
56
 
57
  <h2 class="a3-lazyload-addons-nav-tab-wrapper nav-tab-wrapper" id="a3-lazyload-addons-tabs">
58
- <a class="nav-tab" id="extensions-tab" href="admin.php?page=a3-lazy-load-addons"><?php echo __( 'Add-ons', 'a3_lazy_load' ); ?></a>
59
  <?php foreach ( $addons_tabs as $key => $tab ) : ?>
60
 
61
  <a class="nav-tab" id="<?php echo esc_attr( $key ); ?>-tab" href="admin.php?page=a3-lazy-load-addons&view=<?php echo $tab['view']; ?>"><?php echo $tab['name']; ?></a>
@@ -129,12 +129,12 @@ class A3_Lazy_Load_Addons_Page
129
  *
130
  * $addon = array(
131
  * 'url' => 'http://a3rev.com/shop/a3-lazyloads-extra/',
132
- * 'title' => __( 'Lazyload Extra', 'a3_lazy_load' ),
133
  * 'header_bg' => '#9378d9',
134
  * 'title_color' => '#fff',
135
  * 'title_bg' => '#000',
136
  * 'image' => 'https://s3.amazonaws.com/a3_plugins/a3LazyLoadAddon/a3-Lazy-Load-Extra-Addon/plugin.png',
137
- * 'desc' => __( 'Support for lazy load video, audio, iframe.', 'a3_lazy_load' ),
138
  * 'php_class_check' => 'A3_Lazy_Load_Extra_Addon',
139
  * 'folder_name' => 'a3-lazyload-extra-addon',
140
  * 'is_free' => false
@@ -195,18 +195,18 @@ class A3_Lazy_Load_Addons_Page
195
 
196
  <p>
197
  <?php if ( $is_installed ) { ?>
198
- <button class="button-primary installed"><?php echo __( 'Installed', 'a3_lazy_load' ); ?></button>
199
  <?php } elseif ( $had_plugin ) { ?>
200
- <a href="<?php echo esc_url( wp_nonce_url( $activate_url, 'activate-plugin_' . $plugin_slug ) ); ?>" class="button-primary"><?php echo __( 'Activate', 'a3_lazy_load' ); ?></a>
201
  <?php } else { ?>
202
  <a target="_blank" href="<?php echo esc_url( $addon->url ); ?>" class="button-primary">
203
- <?php echo __( 'Get this extension', 'a3_lazy_load' ); ?>
204
  </a>
205
  <?php } ?>
206
  </p>
207
 
208
  <?php if ( $addon->is_free ) { ?>
209
- <span class="free-extension"><?php echo __( 'Free', 'a3_lazy_load' ); ?></span>
210
  <?php } ?>
211
  </div>
212
 
@@ -214,7 +214,7 @@ class A3_Lazy_Load_Addons_Page
214
 
215
  <?php else : ?>
216
 
217
- <div class="no-extension"><?php echo __( 'Comming Soon', 'a3_lazy_load' ); ?></div>
218
 
219
  <?php endif; ?>
220
 
20
  public function admin_menu() {
21
  $parent_page = 'a3-lazy-load';
22
  if ( current_user_can( 'manage_options' ) )
23
+ add_submenu_page( $parent_page, __( 'a3 Lazy Load Add-ons/Extensions', 'a3-lazy-load' ), '<span style="color:#2ea2cc">' . __( 'Add-ons', 'a3-lazy-load' ) .'</span>', 'manage_options', 'a3-lazy-load-addons', array( $this, 'output' ) );
24
  }
25
 
26
  public function load_addons_page_scripts() {
35
  ?>
36
  <div class="wrap a3-lazyload-addons-container">
37
 
38
+ <h2 id="a3-lazyload-addons-title"><?php echo __( 'a3 Lazy Load Add-ons/Extensions', 'a3-lazy-load' ); ?></h2>
39
 
40
  <?php
41
  /**
43
  *
44
  * $addons_tabs = array(
45
  * 'extensions' => array(
46
+ * 'name' => __( 'Add-ons', 'a3-lazy-load' ),
47
  * 'view' => 'extensions',
48
  * 'callback_action' => 'a3_lazyload_extensions_wrap',
49
  * )
55
  <?php if ( is_array( $addons_tabs ) && count( $addons_tabs ) > 0 ) : ?>
56
 
57
  <h2 class="a3-lazyload-addons-nav-tab-wrapper nav-tab-wrapper" id="a3-lazyload-addons-tabs">
58
+ <a class="nav-tab" id="extensions-tab" href="admin.php?page=a3-lazy-load-addons"><?php echo __( 'Add-ons', 'a3-lazy-load' ); ?></a>
59
  <?php foreach ( $addons_tabs as $key => $tab ) : ?>
60
 
61
  <a class="nav-tab" id="<?php echo esc_attr( $key ); ?>-tab" href="admin.php?page=a3-lazy-load-addons&view=<?php echo $tab['view']; ?>"><?php echo $tab['name']; ?></a>
129
  *
130
  * $addon = array(
131
  * 'url' => 'http://a3rev.com/shop/a3-lazyloads-extra/',
132
+ * 'title' => __( 'Lazyload Extra', 'a3-lazy-load' ),
133
  * 'header_bg' => '#9378d9',
134
  * 'title_color' => '#fff',
135
  * 'title_bg' => '#000',
136
  * 'image' => 'https://s3.amazonaws.com/a3_plugins/a3LazyLoadAddon/a3-Lazy-Load-Extra-Addon/plugin.png',
137
+ * 'desc' => __( 'Support for lazy load video, audio, iframe.', 'a3-lazy-load' ),
138
  * 'php_class_check' => 'A3_Lazy_Load_Extra_Addon',
139
  * 'folder_name' => 'a3-lazyload-extra-addon',
140
  * 'is_free' => false
195
 
196
  <p>
197
  <?php if ( $is_installed ) { ?>
198
+ <button class="button-primary installed"><?php echo __( 'Installed', 'a3-lazy-load' ); ?></button>
199
  <?php } elseif ( $had_plugin ) { ?>
200
+ <a href="<?php echo esc_url( wp_nonce_url( $activate_url, 'activate-plugin_' . $plugin_slug ) ); ?>" class="button-primary"><?php echo __( 'Activate', 'a3-lazy-load' ); ?></a>
201
  <?php } else { ?>
202
  <a target="_blank" href="<?php echo esc_url( $addon->url ); ?>" class="button-primary">
203
+ <?php echo __( 'Get this extension', 'a3-lazy-load' ); ?>
204
  </a>
205
  <?php } ?>
206
  </p>
207
 
208
  <?php if ( $addon->is_free ) { ?>
209
+ <span class="free-extension"><?php echo __( 'Free', 'a3-lazy-load' ); ?></span>
210
  <?php } ?>
211
  </div>
212
 
214
 
215
  <?php else : ?>
216
 
217
+ <div class="no-extension"><?php echo __( 'Comming Soon', 'a3-lazy-load' ); ?></div>
218
 
219
  <?php endif; ?>
220
 
classes/class-a3-lazy-load-filter.php CHANGED
@@ -10,37 +10,37 @@ class A3_Lazy_Load_Hook_Filter
10
  }
11
 
12
  public static function plugin_extension_box( $boxes = array() ) {
13
- $support_box = '<a href="https://wordpress.org/support/plugin/a3-lazy-load" target="_blank" alt="'.__('Go to Support Forum', 'a3_lazy_load').'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/go-to-support-forum.png" /></a>';
14
  $boxes[] = array(
15
  'content' => $support_box,
16
  'css' => 'border: none; padding: 0; background: none;'
17
  );
18
 
19
- $first_box = '<a href="https://profiles.wordpress.org/a3rev/#content-plugins" target="_blank" alt="'.__('Free WordPress Plugins', 'a3_lazy_load').'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/free-wordpress-plugins.png" /></a>';
20
 
21
  $boxes[] = array(
22
  'content' => $first_box,
23
  'css' => 'border: none; padding: 0; background: none;'
24
  );
25
 
26
- $second_box = '<a href="https://profiles.wordpress.org/a3rev/#content-plugins" target="_blank" alt="'.__('Free WooCommerce Plugins', 'a3_lazy_load').'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/free-woocommerce-plugins.png" /></a>';
27
 
28
  $boxes[] = array(
29
  'content' => $second_box,
30
  'css' => 'border: none; padding: 0; background: none;'
31
  );
32
 
33
- $third_box = '<div style="margin-bottom: 5px; font-size: 12px;"><strong>' . __('Is this plugin is just what you needed? If so', 'a3_lazy_load') . '</strong></div>';
34
- $third_box .= '<a href="https://wordpress.org/support/view/plugin-reviews/a3-lazy-load#postform" target="_blank" alt="'.__('Submit Review for Plugin on WordPress', 'a3_lazy_load').'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/a-5-star-rating-would-be-appreciated.png" /></a>';
35
 
36
  $boxes[] = array(
37
  'content' => $third_box,
38
  'css' => 'border: none; padding: 0; background: none;'
39
  );
40
 
41
- $four_box = '<div style="margin-bottom: 5px;">' . __('Connect with us via','a3_lazy_load') . '</div>';
42
- $four_box .= '<a href="https://www.facebook.com/a3rev" target="_blank" alt="'.__('a3rev Facebook', 'a3_lazy_load').'" style="margin-right: 5px;"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/follow-facebook.png" /></a> ';
43
- $four_box .= '<a href="https://twitter.com/a3rev" target="_blank" alt="'.__('a3rev Twitter', 'a3_lazy_load').'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/follow-twitter.png" /></a>';
44
 
45
  $boxes[] = array(
46
  'content' => $four_box,
@@ -54,12 +54,12 @@ class A3_Lazy_Load_Hook_Filter
54
  if ( $plugin_name != A3_LAZY_LOAD_NAME) {
55
  return $links;
56
  }
57
- $links[] = '<a href="https://wordpress.org/support/plugin/a3-lazy-load/" target="_blank">'.__('Support', 'a3_lazy_load').'</a>';
58
  return $links;
59
  }
60
 
61
  public static function settings_plugin_links( $actions ) {
62
- $actions = array_merge( array( 'settings' => '<a href="'.admin_url( 'options-general.php?page=a3-lazy-load', 'relative' ).'">' . __( 'Settings', 'a3_lazy_load' ) . '</a>' ), $actions );
63
 
64
  return $actions;
65
  }
10
  }
11
 
12
  public static function plugin_extension_box( $boxes = array() ) {
13
+ $support_box = '<a href="https://wordpress.org/support/plugin/a3-lazy-load" target="_blank" alt="'.__('Go to Support Forum', 'a3-lazy-load' ).'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/go-to-support-forum.png" /></a>';
14
  $boxes[] = array(
15
  'content' => $support_box,
16
  'css' => 'border: none; padding: 0; background: none;'
17
  );
18
 
19
+ $first_box = '<a href="https://profiles.wordpress.org/a3rev/#content-plugins" target="_blank" alt="'.__('Free WordPress Plugins', 'a3-lazy-load' ).'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/free-wordpress-plugins.png" /></a>';
20
 
21
  $boxes[] = array(
22
  'content' => $first_box,
23
  'css' => 'border: none; padding: 0; background: none;'
24
  );
25
 
26
+ $second_box = '<a href="https://profiles.wordpress.org/a3rev/#content-plugins" target="_blank" alt="'.__('Free WooCommerce Plugins', 'a3-lazy-load' ).'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/free-woocommerce-plugins.png" /></a>';
27
 
28
  $boxes[] = array(
29
  'content' => $second_box,
30
  'css' => 'border: none; padding: 0; background: none;'
31
  );
32
 
33
+ $third_box = '<div style="margin-bottom: 5px; font-size: 12px;"><strong>' . __('Is this plugin is just what you needed? If so', 'a3-lazy-load' ) . '</strong></div>';
34
+ $third_box .= '<a href="https://wordpress.org/support/view/plugin-reviews/a3-lazy-load#postform" target="_blank" alt="'.__('Submit Review for Plugin on WordPress', 'a3-lazy-load' ).'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/a-5-star-rating-would-be-appreciated.png" /></a>';
35
 
36
  $boxes[] = array(
37
  'content' => $third_box,
38
  'css' => 'border: none; padding: 0; background: none;'
39
  );
40
 
41
+ $four_box = '<div style="margin-bottom: 5px;">' . __('Connect with us via','a3-lazy-load' ) . '</div>';
42
+ $four_box .= '<a href="https://www.facebook.com/a3rev" target="_blank" alt="'.__('a3rev Facebook', 'a3-lazy-load' ).'" style="margin-right: 5px;"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/follow-facebook.png" /></a> ';
43
+ $four_box .= '<a href="https://twitter.com/a3rev" target="_blank" alt="'.__('a3rev Twitter', 'a3-lazy-load' ).'"><img src="'.A3_LAZY_LOAD_IMAGES_URL.'/follow-twitter.png" /></a>';
44
 
45
  $boxes[] = array(
46
  'content' => $four_box,
54
  if ( $plugin_name != A3_LAZY_LOAD_NAME) {
55
  return $links;
56
  }
57
+ $links[] = '<a href="https://wordpress.org/support/plugin/a3-lazy-load/" target="_blank">'.__('Support', 'a3-lazy-load' ).'</a>';
58
  return $links;
59
  }
60
 
61
  public static function settings_plugin_links( $actions ) {
62
+ $actions = array_merge( array( 'settings' => '<a href="'.admin_url( 'options-general.php?page=a3-lazy-load', 'relative' ).'">' . __( 'Settings', 'a3-lazy-load' ) . '</a>' ), $actions );
63
 
64
  return $actions;
65
  }
classes/class-a3-lazy-load.php CHANGED
@@ -54,7 +54,7 @@ class A3_Lazy_Load
54
 
55
  // Apply for Images
56
  $skip_images_classes = apply_filters( 'a3_lazy_load_skip_images_classes', $a3_lazy_load_global_settings['a3l_skip_image_with_class'] );
57
- if ( strlen( trim( $skip_images_classes ) ) ) {
58
  $this->_skip_images_classes = array_map( 'trim', explode( ',', $skip_images_classes ) );
59
  }
60
  if ( is_array( $this->_skip_images_classes ) ) {
@@ -66,6 +66,8 @@ class A3_Lazy_Load
66
  if ( $a3_lazy_load_global_settings['a3l_apply_to_images'] == true ) {
67
  add_filter( 'a3_lazy_load_images', array( $this, 'filter_images' ), 10, 2 );
68
 
 
 
69
  if ( $a3_lazy_load_global_settings['a3l_apply_image_to_content'] == true ) {
70
  add_filter( 'the_content', array( $this, 'filter_content_images' ), 10 );
71
  }
@@ -267,7 +269,6 @@ class A3_Lazy_Load
267
 
268
  static function filter_content_images( $content ) {
269
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
270
- add_filter( 'wp_get_attachment_image_attributes', array( $A3_Lazy_Load, 'get_attachment_image_attributes' ), 200 );
271
 
272
  return $A3_Lazy_Load->filter_images( $content );
273
  }
@@ -275,14 +276,22 @@ class A3_Lazy_Load
275
  static function get_attachment_image_attributes( $attr ) {
276
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
277
 
278
- $attr['data-src'] = $attr['src'];
279
- $attr['src'] = $A3_Lazy_Load->_placeholder_url;
280
- $attr['class'] = 'lazy-hidden '. $attr['class'];
281
- $attr['data-lazy-type'] = 'image';
282
- if ( isset( $attr['srcset'] ) ) {
283
- $attr['data-srcset'] = $attr['srcset'];
284
- $attr['srcset'] = '';
285
- unset( $attr['srcset'] );
 
 
 
 
 
 
 
 
286
  }
287
 
288
  return $attr;
@@ -539,6 +548,11 @@ function a3_lazy_load_instance() {
539
  $allow_instance = false;
540
  }
541
 
 
 
 
 
 
542
  if ( $allow_instance ) {
543
  A3_Lazy_Load::_instance();
544
  }
54
 
55
  // Apply for Images
56
  $skip_images_classes = apply_filters( 'a3_lazy_load_skip_images_classes', $a3_lazy_load_global_settings['a3l_skip_image_with_class'] );
57
+ if ( '' != trim( $skip_images_classes ) ) {
58
  $this->_skip_images_classes = array_map( 'trim', explode( ',', $skip_images_classes ) );
59
  }
60
  if ( is_array( $this->_skip_images_classes ) ) {
66
  if ( $a3_lazy_load_global_settings['a3l_apply_to_images'] == true ) {
67
  add_filter( 'a3_lazy_load_images', array( $this, 'filter_images' ), 10, 2 );
68
 
69
+ add_filter( 'wp_get_attachment_image_attributes', array( $this, 'get_attachment_image_attributes' ), 200 );
70
+
71
  if ( $a3_lazy_load_global_settings['a3l_apply_image_to_content'] == true ) {
72
  add_filter( 'the_content', array( $this, 'filter_content_images' ), 10 );
73
  }
269
 
270
  static function filter_content_images( $content ) {
271
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
 
272
 
273
  return $A3_Lazy_Load->filter_images( $content );
274
  }
276
  static function get_attachment_image_attributes( $attr ) {
277
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
278
 
279
+ if ( is_array( $this->_skip_images_classes ) ) {
280
+ $skip_images_preg_quoted = array_map( 'preg_quote', $this->_skip_images_classes );
281
+ $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
282
+ }
283
+
284
+ if ( ! ( is_array( $this->_skip_images_classes ) && preg_match( $skip_images_regex, 'class="'.$attr['class'].'"' ) ) && ! preg_match( "/src=.*lazy_placeholder.gif['\"]/s", 'src="'.$attr['src'].'"' ) ) {
285
+
286
+ $attr['data-src'] = $attr['src'];
287
+ $attr['src'] = $A3_Lazy_Load->_placeholder_url;
288
+ $attr['class'] = 'lazy-hidden '. $attr['class'];
289
+ $attr['data-lazy-type'] = 'image';
290
+ if ( isset( $attr['srcset'] ) ) {
291
+ $attr['data-srcset'] = $attr['srcset'];
292
+ $attr['srcset'] = '';
293
+ unset( $attr['srcset'] );
294
+ }
295
  }
296
 
297
  return $attr;
548
  $allow_instance = false;
549
  }
550
 
551
+ // Compatibility with Better AMP plugin
552
+ if ( function_exists( 'is_better_amp' ) && is_better_amp() ) {
553
+ $allow_instance = false;
554
+ }
555
+
556
  if ( $allow_instance ) {
557
  A3_Lazy_Load::_instance();
558
  }
languages/a3-lazy-load.mo ADDED
Binary file
languages/a3-lazy-load.po ADDED
@@ -0,0 +1,622 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: a3 Lazy Load\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-03-01 15:57+0700\n"
6
+ "PO-Revision-Date: 2016-03-01 15:57+0700\n"
7
+ "Last-Translator: Nguyen Cong Tuan <mr.nguyencongtuan@gmail.com>\n"
8
+ "Language-Team: a3rev\n"
9
+ "Language: en\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: ../\n"
15
+ "X-Generator: Poedit 1.6.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: admin/admin-interface.php:171
20
+ msgid "Great! You have the latest version installed."
21
+ msgstr ""
22
+
23
+ #: admin/admin-interface.php:236
24
+ #: admin/settings/template-settings/global-settings.php:81
25
+ msgid "Settings successfully saved."
26
+ msgstr ""
27
+
28
+ #: admin/admin-interface.php:244
29
+ #: admin/settings/template-settings/global-settings.php:82
30
+ msgid "Error: Settings can not save."
31
+ msgstr ""
32
+
33
+ #: admin/admin-interface.php:252
34
+ #: admin/settings/template-settings/global-settings.php:83
35
+ msgid "Settings successfully reseted."
36
+ msgstr ""
37
+
38
+ #: admin/admin-interface.php:273
39
+ msgid "Thin"
40
+ msgstr ""
41
+
42
+ #: admin/admin-interface.php:274
43
+ msgid "Thin/Italic"
44
+ msgstr ""
45
+
46
+ #: admin/admin-interface.php:275
47
+ msgid "Normal"
48
+ msgstr ""
49
+
50
+ #: admin/admin-interface.php:276
51
+ msgid "Italic"
52
+ msgstr ""
53
+
54
+ #: admin/admin-interface.php:277
55
+ msgid "Bold"
56
+ msgstr ""
57
+
58
+ #: admin/admin-interface.php:278
59
+ msgid "Bold/Italic"
60
+ msgstr ""
61
+
62
+ #: admin/admin-interface.php:288
63
+ msgid "Solid"
64
+ msgstr ""
65
+
66
+ #: admin/admin-interface.php:289
67
+ msgid "Double"
68
+ msgstr ""
69
+
70
+ #: admin/admin-interface.php:290
71
+ msgid "Dashed"
72
+ msgstr ""
73
+
74
+ #: admin/admin-interface.php:291
75
+ msgid "Dotted"
76
+ msgstr ""
77
+
78
+ #: admin/admin-interface.php:292
79
+ msgid "Groove"
80
+ msgstr ""
81
+
82
+ #: admin/admin-interface.php:293
83
+ msgid "Ridge"
84
+ msgstr ""
85
+
86
+ #: admin/admin-interface.php:294
87
+ msgid "Inset"
88
+ msgstr ""
89
+
90
+ #: admin/admin-interface.php:295
91
+ msgid "Outset"
92
+ msgstr ""
93
+
94
+ #: admin/admin-interface.php:1552 admin/admin-interface.php:1638
95
+ #: admin/admin-interface.php:1738 admin/admin-interface.php:1886
96
+ #: admin/admin-interface.php:1976 admin/admin-interface.php:2005
97
+ #: admin/settings/template-settings/global-settings.php:224
98
+ #: admin/settings/template-settings/global-settings.php:242
99
+ #: admin/settings/template-settings/global-settings.php:261
100
+ #: admin/settings/template-settings/global-settings.php:276
101
+ #: admin/settings/template-settings/global-settings.php:286
102
+ #: admin/settings/template-settings/global-settings.php:296
103
+ #: admin/settings/template-settings/global-settings.php:306
104
+ #: admin/settings/template-settings/global-settings.php:324
105
+ #: admin/settings/template-settings/global-settings.php:345
106
+ #: admin/settings/template-settings/global-settings.php:360
107
+ #: admin/settings/template-settings/global-settings.php:370
108
+ #: admin/settings/template-settings/global-settings.php:388
109
+ #: admin/settings/template-settings/global-settings.php:426
110
+ #: admin/settings/template-settings/global-settings.php:437
111
+ msgid "ON"
112
+ msgstr ""
113
+
114
+ #: admin/admin-interface.php:1553 admin/admin-interface.php:1639
115
+ #: admin/admin-interface.php:1739 admin/admin-interface.php:1887
116
+ #: admin/admin-interface.php:1977 admin/admin-interface.php:2006
117
+ #: admin/settings/template-settings/global-settings.php:225
118
+ #: admin/settings/template-settings/global-settings.php:243
119
+ #: admin/settings/template-settings/global-settings.php:262
120
+ #: admin/settings/template-settings/global-settings.php:277
121
+ #: admin/settings/template-settings/global-settings.php:287
122
+ #: admin/settings/template-settings/global-settings.php:297
123
+ #: admin/settings/template-settings/global-settings.php:307
124
+ #: admin/settings/template-settings/global-settings.php:325
125
+ #: admin/settings/template-settings/global-settings.php:346
126
+ #: admin/settings/template-settings/global-settings.php:361
127
+ #: admin/settings/template-settings/global-settings.php:371
128
+ #: admin/settings/template-settings/global-settings.php:389
129
+ #: admin/settings/template-settings/global-settings.php:427
130
+ #: admin/settings/template-settings/global-settings.php:438
131
+ msgid "OFF"
132
+ msgstr ""
133
+
134
+ #: admin/admin-interface.php:1558
135
+ msgid "Google Fonts API"
136
+ msgstr ""
137
+
138
+ #: admin/admin-interface.php:1570
139
+ msgid ""
140
+ "ON to connect to Google Fonts API and have auto font updates direct from "
141
+ "Google."
142
+ msgstr ""
143
+
144
+ #: admin/admin-interface.php:1574
145
+ #, php-format
146
+ msgid ""
147
+ "Enter your existing Google Fonts API Key below. Don't have a key? Visit <a "
148
+ "href='%s' target='_blank'>Google Developer API</a> to create a key"
149
+ msgstr ""
150
+
151
+ #: admin/admin-interface.php:1591
152
+ msgid "Google Fonts API Key"
153
+ msgstr ""
154
+
155
+ #: admin/admin-interface.php:1594
156
+ msgid "Your Google API Key is valid and automatic font updates are enabled."
157
+ msgstr ""
158
+
159
+ #: admin/admin-interface.php:1595
160
+ msgid "Please enter a valid Google API Key."
161
+ msgstr ""
162
+
163
+ #: admin/admin-interface.php:1614
164
+ msgid "Check New Version"
165
+ msgstr ""
166
+
167
+ #: admin/admin-interface.php:1625
168
+ msgid "Check Now"
169
+ msgstr ""
170
+
171
+ #: admin/admin-interface.php:1644
172
+ msgid "Open Box Display"
173
+ msgstr ""
174
+
175
+ #: admin/admin-interface.php:1657
176
+ msgid ""
177
+ "ON and each admin panel setting box OPEN | CLOSED position are saved each "
178
+ "time changes are SAVED."
179
+ msgstr ""
180
+
181
+ #: admin/admin-interface.php:2041
182
+ msgid "Width"
183
+ msgstr ""
184
+
185
+ #: admin/admin-interface.php:2043
186
+ msgid "Height"
187
+ msgstr ""
188
+
189
+ #: admin/admin-interface.php:2045
190
+ msgid "Hard Crop"
191
+ msgstr ""
192
+
193
+ #: admin/admin-interface.php:2118
194
+ msgid "-- Default Fonts --"
195
+ msgstr ""
196
+
197
+ #: admin/admin-interface.php:2129
198
+ msgid "-- Google Fonts --"
199
+ msgstr ""
200
+
201
+ #: admin/admin-interface.php:2170
202
+ msgid "Preview your customized typography settings"
203
+ msgstr ""
204
+
205
+ #: admin/admin-interface.php:2279 admin/admin-interface.php:2513
206
+ msgid "Preview your customized border settings"
207
+ msgstr ""
208
+
209
+ #: admin/admin-interface.php:2288 admin/admin-interface.php:2504
210
+ msgid "Rounded"
211
+ msgstr ""
212
+
213
+ #: admin/admin-interface.php:2289 admin/admin-interface.php:2505
214
+ msgid "Square"
215
+ msgstr ""
216
+
217
+ #: admin/admin-interface.php:2299 admin/admin-interface.php:2518
218
+ msgid "Top Left Corner"
219
+ msgstr ""
220
+
221
+ #: admin/admin-interface.php:2319 admin/admin-interface.php:2538
222
+ msgid "Top Right Corner"
223
+ msgstr ""
224
+
225
+ #: admin/admin-interface.php:2339 admin/admin-interface.php:2558
226
+ msgid "Bottom Right Corner"
227
+ msgstr ""
228
+
229
+ #: admin/admin-interface.php:2359 admin/admin-interface.php:2578
230
+ msgid "Bottom Left Corner"
231
+ msgstr ""
232
+
233
+ #: admin/admin-interface.php:2446
234
+ msgid "Preview your customized border styles settings"
235
+ msgstr ""
236
+
237
+ #: admin/admin-interface.php:2629
238
+ msgid "YES"
239
+ msgstr ""
240
+
241
+ #: admin/admin-interface.php:2630
242
+ msgid "NO"
243
+ msgstr ""
244
+
245
+ #: admin/admin-interface.php:2644
246
+ msgid "Horizontal Shadow"
247
+ msgstr ""
248
+
249
+ #: admin/admin-interface.php:2662
250
+ msgid "Vertical Shadow"
251
+ msgstr ""
252
+
253
+ #: admin/admin-interface.php:2680
254
+ msgid "Blur Distance"
255
+ msgstr ""
256
+
257
+ #: admin/admin-interface.php:2698
258
+ msgid "Spread Size"
259
+ msgstr ""
260
+
261
+ #: admin/admin-interface.php:2716
262
+ msgid "INNER"
263
+ msgstr ""
264
+
265
+ #: admin/admin-interface.php:2717
266
+ msgid "OUTER"
267
+ msgstr ""
268
+
269
+ #: admin/admin-interface.php:2735
270
+ msgid "Preview your customized box shadow settings"
271
+ msgstr ""
272
+
273
+ #: admin/admin-interface.php:3003
274
+ msgid "Save changes"
275
+ msgstr ""
276
+
277
+ #: admin/admin-interface.php:3004
278
+ msgid "Reset Settings"
279
+ msgstr ""
280
+
281
+ #: admin/admin-pages/admin-settings-page.php:62
282
+ #: admin/admin-pages/admin-settings-page.php:63
283
+ msgid "a3 Lazy Load"
284
+ msgstr ""
285
+
286
+ #: admin/admin-ui.php:109 admin/admin-ui.php:112
287
+ msgid "Premium Version Enhanced Features"
288
+ msgstr ""
289
+
290
+ #: admin/admin-ui.php:113
291
+ msgid "WooCommerce Dynamic Gallery Premium"
292
+ msgstr ""
293
+
294
+ #: admin/admin-ui.php:114
295
+ msgid ""
296
+ "Quick Video showing the main (not all) enhanced features that are built into "
297
+ "the WooCommerce Dynamic Gallery Premium version"
298
+ msgstr ""
299
+
300
+ #: admin/admin-ui.php:115
301
+ msgid "Developer Support and Premium Features"
302
+ msgstr ""
303
+
304
+ #: admin/admin-ui.php:116
305
+ msgid ""
306
+ "Limited Time Offer. Purchase the Premium Version Lifetime License. That is a "
307
+ "Lifetime of maintenance updates, feature upgrades and developer support for "
308
+ "a once only fee. Offer ending soon."
309
+ msgstr ""
310
+
311
+ #: admin/admin-ui.php:117
312
+ msgid "Get Premium Features and Support"
313
+ msgstr ""
314
+
315
+ #: admin/admin-ui.php:264
316
+ #, php-format
317
+ msgid ""
318
+ "Advanced Settings - Upgrade to the <a href=\"%s\" target=\"_blank\">%s "
319
+ "License</a> to activate these settings."
320
+ msgstr ""
321
+
322
+ #: admin/admin-ui.php:267
323
+ msgid "Pro Version"
324
+ msgstr ""
325
+
326
+ #: admin/admin-ui.php:317 admin/admin-ui.php:336
327
+ msgid "You should check now to see if have any new version is available"
328
+ msgstr ""
329
+
330
+ #: admin/admin-ui.php:319
331
+ #, php-format
332
+ msgid ""
333
+ "Connection Failure! Please try again. If this issue persists please create a "
334
+ "support request on the plugin <a href=\"%s\" target=\"_blank\">a3rev support "
335
+ "forum</a>."
336
+ msgstr ""
337
+
338
+ #: admin/admin-ui.php:327
339
+ #, php-format
340
+ msgid ""
341
+ "There is a new version <span class=\"a3rev-ui-new-plugin-version\">%s</span> "
342
+ "available, <a href=\"%s\" target=\"_blank\">update now</a> or download "
343
+ "direct from <a href=\"%s\" target=\"_blank\">My Account</a> on a3rev.com"
344
+ msgstr ""
345
+
346
+ #: admin/includes/uploader/class-uploader.php:101
347
+ msgid "Upload"
348
+ msgstr ""
349
+
350
+ #: admin/includes/uploader/class-uploader.php:121
351
+ msgid "View File"
352
+ msgstr ""
353
+
354
+ #: admin/settings/template-settings/global-settings.php:153
355
+ #: admin/tabs/template-settings/global-settings-tab.php:78
356
+ msgid "Global Settings"
357
+ msgstr ""
358
+
359
+ #: admin/settings/template-settings/global-settings.php:196
360
+ msgid "Plugin Framework Global Settings"
361
+ msgstr ""
362
+
363
+ #: admin/settings/template-settings/global-settings.php:203
364
+ msgid "Customize Admin Setting Box Display"
365
+ msgstr ""
366
+
367
+ #: admin/settings/template-settings/global-settings.php:204
368
+ msgid ""
369
+ "By default each admin panel will open with all Setting Boxes in the CLOSED "
370
+ "position."
371
+ msgstr ""
372
+
373
+ #: admin/settings/template-settings/global-settings.php:211
374
+ msgid "House Keeping"
375
+ msgstr ""
376
+
377
+ #: admin/settings/template-settings/global-settings.php:215
378
+ msgid "Clean up on Deletion"
379
+ msgstr ""
380
+
381
+ #: admin/settings/template-settings/global-settings.php:216
382
+ msgid ""
383
+ "On deletion (not deactivate) the plugin will completely remove all tables "
384
+ "and data it created, leaving no trace it was ever here."
385
+ msgstr ""
386
+
387
+ #: admin/settings/template-settings/global-settings.php:229
388
+ msgid "Lazy Load Activation"
389
+ msgstr ""
390
+
391
+ #: admin/settings/template-settings/global-settings.php:235
392
+ msgid "Enable Lazy Load"
393
+ msgstr ""
394
+
395
+ #: admin/settings/template-settings/global-settings.php:247
396
+ msgid "Lazy Load Images"
397
+ msgstr ""
398
+
399
+ #: admin/settings/template-settings/global-settings.php:254
400
+ msgid "Enable Lazy Load for Images"
401
+ msgstr ""
402
+
403
+ #: admin/settings/template-settings/global-settings.php:270
404
+ msgid "Images in Content"
405
+ msgstr ""
406
+
407
+ #: admin/settings/template-settings/global-settings.php:280
408
+ msgid "Images in Widgets"
409
+ msgstr ""
410
+
411
+ #: admin/settings/template-settings/global-settings.php:290
412
+ msgid "Post Thumbnails"
413
+ msgstr ""
414
+
415
+ #: admin/settings/template-settings/global-settings.php:300
416
+ msgid "Gravatars"
417
+ msgstr ""
418
+
419
+ #: admin/settings/template-settings/global-settings.php:310
420
+ msgid "Skip Images Classes"
421
+ msgstr ""
422
+
423
+ #: admin/settings/template-settings/global-settings.php:312
424
+ msgid "Comma separated. Example: \"no-lazy, lazy-ignore, image-235\""
425
+ msgstr ""
426
+
427
+ #: admin/settings/template-settings/global-settings.php:317
428
+ #: admin/settings/template-settings/global-settings.php:381
429
+ msgid "Noscript Support"
430
+ msgstr ""
431
+
432
+ #: admin/settings/template-settings/global-settings.php:319
433
+ msgid ""
434
+ "Turn ON to activate Noscript tag as a fallback to show images for users who "
435
+ "have JavaScript disabled in their browser."
436
+ msgstr ""
437
+
438
+ #: admin/settings/template-settings/global-settings.php:330
439
+ msgid "Lazy Load Videos and iframes"
440
+ msgstr ""
441
+
442
+ #: admin/settings/template-settings/global-settings.php:337
443
+ msgid "Video and iframes"
444
+ msgstr ""
445
+
446
+ #: admin/settings/template-settings/global-settings.php:338
447
+ #, php-format
448
+ msgid ""
449
+ "Turn ON to activate Lazy Load for <a href=\"%s\" target=\"_blank\">WordPress "
450
+ "Embeds</a>, <a href=\"%s\" target=\"_blank\">HTML5 Video</a> and content "
451
+ "loaded by iframe from all sources. Note: WordPress Shortcode is not "
452
+ "supported."
453
+ msgstr ""
454
+
455
+ #: admin/settings/template-settings/global-settings.php:354
456
+ msgid "In Content"
457
+ msgstr ""
458
+
459
+ #: admin/settings/template-settings/global-settings.php:364
460
+ msgid "In Widgets"
461
+ msgstr ""
462
+
463
+ #: admin/settings/template-settings/global-settings.php:374
464
+ msgid "Skip Videos Classes"
465
+ msgstr ""
466
+
467
+ #: admin/settings/template-settings/global-settings.php:376
468
+ msgid "Comma separated. Example: \"no-lazy, lazy-ignore, video-235\""
469
+ msgstr ""
470
+
471
+ #: admin/settings/template-settings/global-settings.php:383
472
+ msgid ""
473
+ "Turn ON to activate Noscript tag as a fallback to show WordPress Embeds, "
474
+ "HTML 5 Video and iframe loaded content for users who have JavaScript "
475
+ "disabled in their browser."
476
+ msgstr ""
477
+
478
+ #: admin/settings/template-settings/global-settings.php:393
479
+ msgid "Script Load Optimization"
480
+ msgstr ""
481
+
482
+ #: admin/settings/template-settings/global-settings.php:400
483
+ msgid "Theme Loader Function"
484
+ msgstr ""
485
+
486
+ #: admin/settings/template-settings/global-settings.php:401
487
+ msgid ""
488
+ "Your theme must have the wp_footer() function if you select FOOTER load."
489
+ msgstr ""
490
+
491
+ #: admin/settings/template-settings/global-settings.php:407
492
+ msgid "HEADER"
493
+ msgstr ""
494
+
495
+ #: admin/settings/template-settings/global-settings.php:408
496
+ msgid "FOOTER"
497
+ msgstr ""
498
+
499
+ #: admin/settings/template-settings/global-settings.php:412
500
+ msgid "WordPress Mobile Template Plugins"
501
+ msgstr ""
502
+
503
+ #: admin/settings/template-settings/global-settings.php:419
504
+ msgid "Disable On WPTouch"
505
+ msgstr ""
506
+
507
+ #: admin/settings/template-settings/global-settings.php:420
508
+ msgid "Disables a3 Lazy Load when the WPTouch mobile theme is used"
509
+ msgstr ""
510
+
511
+ #: admin/settings/template-settings/global-settings.php:430
512
+ msgid "Disable On MobilePress"
513
+ msgstr ""
514
+
515
+ #: admin/settings/template-settings/global-settings.php:431
516
+ msgid "Disables a3 Lazy Load when the MobilePress mobile theme is used"
517
+ msgstr ""
518
+
519
+ #: admin/settings/template-settings/global-settings.php:442
520
+ msgid "Effect & Style"
521
+ msgstr ""
522
+
523
+ #: admin/settings/template-settings/global-settings.php:449
524
+ msgid "Loading Effect"
525
+ msgstr ""
526
+
527
+ #: admin/settings/template-settings/global-settings.php:455
528
+ msgid "FADE IN"
529
+ msgstr ""
530
+
531
+ #: admin/settings/template-settings/global-settings.php:456
532
+ msgid "SPINNER"
533
+ msgstr ""
534
+
535
+ #: admin/settings/template-settings/global-settings.php:459
536
+ msgid "Loading Background Colour"
537
+ msgstr ""
538
+
539
+ #: admin/settings/template-settings/global-settings.php:466
540
+ msgid "Image Load Threshold"
541
+ msgstr ""
542
+
543
+ #: admin/settings/template-settings/global-settings.php:473
544
+ msgid "Threshold"
545
+ msgstr ""
546
+
547
+ #: admin/settings/template-settings/global-settings.php:475
548
+ msgid ""
549
+ "Expands visible page area (viewport) in vertical direction by the amount of "
550
+ "pixels set. Elements start to load as soon as the reach the threshold "
551
+ "instead of when they reach the actual viewport."
552
+ msgstr ""
553
+
554
+ #: classes/addons/class-a3-lazy-load-addons-page.php:23
555
+ #: classes/addons/class-a3-lazy-load-addons-page.php:38
556
+ msgid "a3 Lazy Load Add-ons/Extensions"
557
+ msgstr ""
558
+
559
+ #: classes/addons/class-a3-lazy-load-addons-page.php:23
560
+ #: classes/addons/class-a3-lazy-load-addons-page.php:58
561
+ msgid "Add-ons"
562
+ msgstr ""
563
+
564
+ #: classes/addons/class-a3-lazy-load-addons-page.php:198
565
+ msgid "Installed"
566
+ msgstr ""
567
+
568
+ #: classes/addons/class-a3-lazy-load-addons-page.php:200
569
+ msgid "Activate"
570
+ msgstr ""
571
+
572
+ #: classes/addons/class-a3-lazy-load-addons-page.php:203
573
+ msgid "Get this extension"
574
+ msgstr ""
575
+
576
+ #: classes/addons/class-a3-lazy-load-addons-page.php:209
577
+ msgid "Free"
578
+ msgstr ""
579
+
580
+ #: classes/addons/class-a3-lazy-load-addons-page.php:217
581
+ msgid "Comming Soon"
582
+ msgstr ""
583
+
584
+ #: classes/class-a3-lazy-load-filter.php:13
585
+ msgid "Go to Support Forum"
586
+ msgstr ""
587
+
588
+ #: classes/class-a3-lazy-load-filter.php:19
589
+ msgid "Free WordPress Plugins"
590
+ msgstr ""
591
+
592
+ #: classes/class-a3-lazy-load-filter.php:26
593
+ msgid "Free WooCommerce Plugins"
594
+ msgstr ""
595
+
596
+ #: classes/class-a3-lazy-load-filter.php:33
597
+ msgid "Is this plugin is just what you needed? If so"
598
+ msgstr ""
599
+
600
+ #: classes/class-a3-lazy-load-filter.php:34
601
+ msgid "Submit Review for Plugin on WordPress"
602
+ msgstr ""
603
+
604
+ #: classes/class-a3-lazy-load-filter.php:41
605
+ msgid "Connect with us via"
606
+ msgstr ""
607
+
608
+ #: classes/class-a3-lazy-load-filter.php:42
609
+ msgid "a3rev Facebook"
610
+ msgstr ""
611
+
612
+ #: classes/class-a3-lazy-load-filter.php:43
613
+ msgid "a3rev Twitter"
614
+ msgstr ""
615
+
616
+ #: classes/class-a3-lazy-load-filter.php:57
617
+ msgid "Support"
618
+ msgstr ""
619
+
620
+ #: classes/class-a3-lazy-load-filter.php:62
621
+ msgid "Settings"
622
+ msgstr ""
languages/a3-lazy-load.pot ADDED
@@ -0,0 +1,622 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: a3 Lazy Load\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2016-03-01 15:57+0700\n"
6
+ "PO-Revision-Date: 2016-03-01 15:58+0700\n"
7
+ "Last-Translator: Nguyen Cong Tuan <mr.nguyencongtuan@gmail.com>\n"
8
+ "Language-Team: a3rev\n"
9
+ "Language: en\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: ../\n"
15
+ "X-Generator: Poedit 1.6.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: admin/admin-interface.php:171
20
+ msgid "Great! You have the latest version installed."
21
+ msgstr ""
22
+
23
+ #: admin/admin-interface.php:236
24
+ #: admin/settings/template-settings/global-settings.php:81
25
+ msgid "Settings successfully saved."
26
+ msgstr ""
27
+
28
+ #: admin/admin-interface.php:244
29
+ #: admin/settings/template-settings/global-settings.php:82
30
+ msgid "Error: Settings can not save."
31
+ msgstr ""
32
+
33
+ #: admin/admin-interface.php:252
34
+ #: admin/settings/template-settings/global-settings.php:83
35
+ msgid "Settings successfully reseted."
36
+ msgstr ""
37
+
38
+ #: admin/admin-interface.php:273
39
+ msgid "Thin"
40
+ msgstr ""
41
+
42
+ #: admin/admin-interface.php:274
43
+ msgid "Thin/Italic"
44
+ msgstr ""
45
+
46
+ #: admin/admin-interface.php:275
47
+ msgid "Normal"
48
+ msgstr ""
49
+
50
+ #: admin/admin-interface.php:276
51
+ msgid "Italic"
52
+ msgstr ""
53
+
54
+ #: admin/admin-interface.php:277
55
+ msgid "Bold"
56
+ msgstr ""
57
+
58
+ #: admin/admin-interface.php:278
59
+ msgid "Bold/Italic"
60
+ msgstr ""
61
+
62
+ #: admin/admin-interface.php:288
63
+ msgid "Solid"
64
+ msgstr ""
65
+
66
+ #: admin/admin-interface.php:289
67
+ msgid "Double"
68
+ msgstr ""
69
+
70
+ #: admin/admin-interface.php:290
71
+ msgid "Dashed"
72
+ msgstr ""
73
+
74
+ #: admin/admin-interface.php:291
75
+ msgid "Dotted"
76
+ msgstr ""
77
+
78
+ #: admin/admin-interface.php:292
79
+ msgid "Groove"
80
+ msgstr ""
81
+
82
+ #: admin/admin-interface.php:293
83
+ msgid "Ridge"
84
+ msgstr ""
85
+
86
+ #: admin/admin-interface.php:294
87
+ msgid "Inset"
88
+ msgstr ""
89
+
90
+ #: admin/admin-interface.php:295
91
+ msgid "Outset"
92
+ msgstr ""
93
+
94
+ #: admin/admin-interface.php:1552 admin/admin-interface.php:1638
95
+ #: admin/admin-interface.php:1738 admin/admin-interface.php:1886
96
+ #: admin/admin-interface.php:1976 admin/admin-interface.php:2005
97
+ #: admin/settings/template-settings/global-settings.php:224
98
+ #: admin/settings/template-settings/global-settings.php:242
99
+ #: admin/settings/template-settings/global-settings.php:261
100
+ #: admin/settings/template-settings/global-settings.php:276
101
+ #: admin/settings/template-settings/global-settings.php:286
102
+ #: admin/settings/template-settings/global-settings.php:296
103
+ #: admin/settings/template-settings/global-settings.php:306
104
+ #: admin/settings/template-settings/global-settings.php:324
105
+ #: admin/settings/template-settings/global-settings.php:345
106
+ #: admin/settings/template-settings/global-settings.php:360
107
+ #: admin/settings/template-settings/global-settings.php:370
108
+ #: admin/settings/template-settings/global-settings.php:388
109
+ #: admin/settings/template-settings/global-settings.php:426
110
+ #: admin/settings/template-settings/global-settings.php:437
111
+ msgid "ON"
112
+ msgstr ""
113
+
114
+ #: admin/admin-interface.php:1553 admin/admin-interface.php:1639
115
+ #: admin/admin-interface.php:1739 admin/admin-interface.php:1887
116
+ #: admin/admin-interface.php:1977 admin/admin-interface.php:2006
117
+ #: admin/settings/template-settings/global-settings.php:225
118
+ #: admin/settings/template-settings/global-settings.php:243
119
+ #: admin/settings/template-settings/global-settings.php:262
120
+ #: admin/settings/template-settings/global-settings.php:277
121
+ #: admin/settings/template-settings/global-settings.php:287
122
+ #: admin/settings/template-settings/global-settings.php:297
123
+ #: admin/settings/template-settings/global-settings.php:307
124
+ #: admin/settings/template-settings/global-settings.php:325
125
+ #: admin/settings/template-settings/global-settings.php:346
126
+ #: admin/settings/template-settings/global-settings.php:361
127
+ #: admin/settings/template-settings/global-settings.php:371
128
+ #: admin/settings/template-settings/global-settings.php:389
129
+ #: admin/settings/template-settings/global-settings.php:427
130
+ #: admin/settings/template-settings/global-settings.php:438
131
+ msgid "OFF"
132
+ msgstr ""
133
+
134
+ #: admin/admin-interface.php:1558
135
+ msgid "Google Fonts API"
136
+ msgstr ""
137
+
138
+ #: admin/admin-interface.php:1570
139
+ msgid ""
140
+ "ON to connect to Google Fonts API and have auto font updates direct from "
141
+ "Google."
142
+ msgstr ""
143
+
144
+ #: admin/admin-interface.php:1574
145
+ #, php-format
146
+ msgid ""
147
+ "Enter your existing Google Fonts API Key below. Don't have a key? Visit <a "
148
+ "href='%s' target='_blank'>Google Developer API</a> to create a key"
149
+ msgstr ""
150
+
151
+ #: admin/admin-interface.php:1591
152
+ msgid "Google Fonts API Key"
153
+ msgstr ""
154
+
155
+ #: admin/admin-interface.php:1594
156
+ msgid "Your Google API Key is valid and automatic font updates are enabled."
157
+ msgstr ""
158
+
159
+ #: admin/admin-interface.php:1595
160
+ msgid "Please enter a valid Google API Key."
161
+ msgstr ""
162
+
163
+ #: admin/admin-interface.php:1614
164
+ msgid "Check New Version"
165
+ msgstr ""
166
+
167
+ #: admin/admin-interface.php:1625
168
+ msgid "Check Now"
169
+ msgstr ""
170
+
171
+ #: admin/admin-interface.php:1644
172
+ msgid "Open Box Display"
173
+ msgstr ""
174
+
175
+ #: admin/admin-interface.php:1657
176
+ msgid ""
177
+ "ON and each admin panel setting box OPEN | CLOSED position are saved each "
178
+ "time changes are SAVED."
179
+ msgstr ""
180
+
181
+ #: admin/admin-interface.php:2041
182
+ msgid "Width"
183
+ msgstr ""
184
+
185
+ #: admin/admin-interface.php:2043
186
+ msgid "Height"
187
+ msgstr ""
188
+
189
+ #: admin/admin-interface.php:2045
190
+ msgid "Hard Crop"
191
+ msgstr ""
192
+
193
+ #: admin/admin-interface.php:2118
194
+ msgid "-- Default Fonts --"
195
+ msgstr ""
196
+
197
+ #: admin/admin-interface.php:2129
198
+ msgid "-- Google Fonts --"
199
+ msgstr ""
200
+
201
+ #: admin/admin-interface.php:2170
202
+ msgid "Preview your customized typography settings"
203
+ msgstr ""
204
+
205
+ #: admin/admin-interface.php:2279 admin/admin-interface.php:2513
206
+ msgid "Preview your customized border settings"
207
+ msgstr ""
208
+
209
+ #: admin/admin-interface.php:2288 admin/admin-interface.php:2504
210
+ msgid "Rounded"
211
+ msgstr ""
212
+
213
+ #: admin/admin-interface.php:2289 admin/admin-interface.php:2505
214
+ msgid "Square"
215
+ msgstr ""
216
+
217
+ #: admin/admin-interface.php:2299 admin/admin-interface.php:2518
218
+ msgid "Top Left Corner"
219
+ msgstr ""
220
+
221
+ #: admin/admin-interface.php:2319 admin/admin-interface.php:2538
222
+ msgid "Top Right Corner"
223
+ msgstr ""
224
+
225
+ #: admin/admin-interface.php:2339 admin/admin-interface.php:2558
226
+ msgid "Bottom Right Corner"
227
+ msgstr ""
228
+
229
+ #: admin/admin-interface.php:2359 admin/admin-interface.php:2578
230
+ msgid "Bottom Left Corner"
231
+ msgstr ""
232
+
233
+ #: admin/admin-interface.php:2446
234
+ msgid "Preview your customized border styles settings"
235
+ msgstr ""
236
+
237
+ #: admin/admin-interface.php:2629
238
+ msgid "YES"
239
+ msgstr ""
240
+
241
+ #: admin/admin-interface.php:2630
242
+ msgid "NO"
243
+ msgstr ""
244
+
245
+ #: admin/admin-interface.php:2644
246
+ msgid "Horizontal Shadow"
247
+ msgstr ""
248
+
249
+ #: admin/admin-interface.php:2662
250
+ msgid "Vertical Shadow"
251
+ msgstr ""
252
+
253
+ #: admin/admin-interface.php:2680
254
+ msgid "Blur Distance"
255
+ msgstr ""
256
+
257
+ #: admin/admin-interface.php:2698
258
+ msgid "Spread Size"
259
+ msgstr ""
260
+
261
+ #: admin/admin-interface.php:2716
262
+ msgid "INNER"
263
+ msgstr ""
264
+
265
+ #: admin/admin-interface.php:2717
266
+ msgid "OUTER"
267
+ msgstr ""
268
+
269
+ #: admin/admin-interface.php:2735
270
+ msgid "Preview your customized box shadow settings"
271
+ msgstr ""
272
+
273
+ #: admin/admin-interface.php:3003
274
+ msgid "Save changes"
275
+ msgstr ""
276
+
277
+ #: admin/admin-interface.php:3004
278
+ msgid "Reset Settings"
279
+ msgstr ""
280
+
281
+ #: admin/admin-pages/admin-settings-page.php:62
282
+ #: admin/admin-pages/admin-settings-page.php:63
283
+ msgid "a3 Lazy Load"
284
+ msgstr ""
285
+
286
+ #: admin/admin-ui.php:109 admin/admin-ui.php:112
287
+ msgid "Premium Version Enhanced Features"
288
+ msgstr ""
289
+
290
+ #: admin/admin-ui.php:113
291
+ msgid "WooCommerce Dynamic Gallery Premium"
292
+ msgstr ""
293
+
294
+ #: admin/admin-ui.php:114
295
+ msgid ""
296
+ "Quick Video showing the main (not all) enhanced features that are built into "
297
+ "the WooCommerce Dynamic Gallery Premium version"
298
+ msgstr ""
299
+
300
+ #: admin/admin-ui.php:115
301
+ msgid "Developer Support and Premium Features"
302
+ msgstr ""
303
+
304
+ #: admin/admin-ui.php:116
305
+ msgid ""
306
+ "Limited Time Offer. Purchase the Premium Version Lifetime License. That is a "
307
+ "Lifetime of maintenance updates, feature upgrades and developer support for "
308
+ "a once only fee. Offer ending soon."
309
+ msgstr ""
310
+
311
+ #: admin/admin-ui.php:117
312
+ msgid "Get Premium Features and Support"
313
+ msgstr ""
314
+
315
+ #: admin/admin-ui.php:264
316
+ #, php-format
317
+ msgid ""
318
+ "Advanced Settings - Upgrade to the <a href=\"%s\" target=\"_blank\">%s "
319
+ "License</a> to activate these settings."
320
+ msgstr ""
321
+
322
+ #: admin/admin-ui.php:267
323
+ msgid "Pro Version"
324
+ msgstr ""
325
+
326
+ #: admin/admin-ui.php:317 admin/admin-ui.php:336
327
+ msgid "You should check now to see if have any new version is available"
328
+ msgstr ""
329
+
330
+ #: admin/admin-ui.php:319
331
+ #, php-format
332
+ msgid ""
333
+ "Connection Failure! Please try again. If this issue persists please create a "
334
+ "support request on the plugin <a href=\"%s\" target=\"_blank\">a3rev support "
335
+ "forum</a>."
336
+ msgstr ""
337
+
338
+ #: admin/admin-ui.php:327
339
+ #, php-format
340
+ msgid ""
341
+ "There is a new version <span class=\"a3rev-ui-new-plugin-version\">%s</span> "
342
+ "available, <a href=\"%s\" target=\"_blank\">update now</a> or download "
343
+ "direct from <a href=\"%s\" target=\"_blank\">My Account</a> on a3rev.com"
344
+ msgstr ""
345
+
346
+ #: admin/includes/uploader/class-uploader.php:101
347
+ msgid "Upload"
348
+ msgstr ""
349
+
350
+ #: admin/includes/uploader/class-uploader.php:121
351
+ msgid "View File"
352
+ msgstr ""
353
+
354
+ #: admin/settings/template-settings/global-settings.php:153
355
+ #: admin/tabs/template-settings/global-settings-tab.php:78
356
+ msgid "Global Settings"
357
+ msgstr ""
358
+
359
+ #: admin/settings/template-settings/global-settings.php:196
360
+ msgid "Plugin Framework Global Settings"
361
+ msgstr ""
362
+
363
+ #: admin/settings/template-settings/global-settings.php:203
364
+ msgid "Customize Admin Setting Box Display"
365
+ msgstr ""
366
+
367
+ #: admin/settings/template-settings/global-settings.php:204
368
+ msgid ""
369
+ "By default each admin panel will open with all Setting Boxes in the CLOSED "
370
+ "position."
371
+ msgstr ""
372
+
373
+ #: admin/settings/template-settings/global-settings.php:211
374
+ msgid "House Keeping"
375
+ msgstr ""
376
+
377
+ #: admin/settings/template-settings/global-settings.php:215
378
+ msgid "Clean up on Deletion"
379
+ msgstr ""
380
+
381
+ #: admin/settings/template-settings/global-settings.php:216
382
+ msgid ""
383
+ "On deletion (not deactivate) the plugin will completely remove all tables "
384
+ "and data it created, leaving no trace it was ever here."
385
+ msgstr ""
386
+
387
+ #: admin/settings/template-settings/global-settings.php:229
388
+ msgid "Lazy Load Activation"
389
+ msgstr ""
390
+
391
+ #: admin/settings/template-settings/global-settings.php:235
392
+ msgid "Enable Lazy Load"
393
+ msgstr ""
394
+
395
+ #: admin/settings/template-settings/global-settings.php:247
396
+ msgid "Lazy Load Images"
397
+ msgstr ""
398
+
399
+ #: admin/settings/template-settings/global-settings.php:254
400
+ msgid "Enable Lazy Load for Images"
401
+ msgstr ""
402
+
403
+ #: admin/settings/template-settings/global-settings.php:270
404
+ msgid "Images in Content"
405
+ msgstr ""
406
+
407
+ #: admin/settings/template-settings/global-settings.php:280
408
+ msgid "Images in Widgets"
409
+ msgstr ""
410
+
411
+ #: admin/settings/template-settings/global-settings.php:290
412
+ msgid "Post Thumbnails"
413
+ msgstr ""
414
+
415
+ #: admin/settings/template-settings/global-settings.php:300
416
+ msgid "Gravatars"
417
+ msgstr ""
418
+
419
+ #: admin/settings/template-settings/global-settings.php:310
420
+ msgid "Skip Images Classes"
421
+ msgstr ""
422
+
423
+ #: admin/settings/template-settings/global-settings.php:312
424
+ msgid "Comma separated. Example: \"no-lazy, lazy-ignore, image-235\""
425
+ msgstr ""
426
+
427
+ #: admin/settings/template-settings/global-settings.php:317
428
+ #: admin/settings/template-settings/global-settings.php:381
429
+ msgid "Noscript Support"
430
+ msgstr ""
431
+
432
+ #: admin/settings/template-settings/global-settings.php:319
433
+ msgid ""
434
+ "Turn ON to activate Noscript tag as a fallback to show images for users who "
435
+ "have JavaScript disabled in their browser."
436
+ msgstr ""
437
+
438
+ #: admin/settings/template-settings/global-settings.php:330
439
+ msgid "Lazy Load Videos and iframes"
440
+ msgstr ""
441
+
442
+ #: admin/settings/template-settings/global-settings.php:337
443
+ msgid "Video and iframes"
444
+ msgstr ""
445
+
446
+ #: admin/settings/template-settings/global-settings.php:338
447
+ #, php-format
448
+ msgid ""
449
+ "Turn ON to activate Lazy Load for <a href=\"%s\" target=\"_blank\">WordPress "
450
+ "Embeds</a>, <a href=\"%s\" target=\"_blank\">HTML5 Video</a> and content "
451
+ "loaded by iframe from all sources. Note: WordPress Shortcode is not "
452
+ "supported."
453
+ msgstr ""
454
+
455
+ #: admin/settings/template-settings/global-settings.php:354
456
+ msgid "In Content"
457
+ msgstr ""
458
+
459
+ #: admin/settings/template-settings/global-settings.php:364
460
+ msgid "In Widgets"
461
+ msgstr ""
462
+
463
+ #: admin/settings/template-settings/global-settings.php:374
464
+ msgid "Skip Videos Classes"
465
+ msgstr ""
466
+
467
+ #: admin/settings/template-settings/global-settings.php:376
468
+ msgid "Comma separated. Example: \"no-lazy, lazy-ignore, video-235\""
469
+ msgstr ""
470
+
471
+ #: admin/settings/template-settings/global-settings.php:383
472
+ msgid ""
473
+ "Turn ON to activate Noscript tag as a fallback to show WordPress Embeds, "
474
+ "HTML 5 Video and iframe loaded content for users who have JavaScript "
475
+ "disabled in their browser."
476
+ msgstr ""
477
+
478
+ #: admin/settings/template-settings/global-settings.php:393
479
+ msgid "Script Load Optimization"
480
+ msgstr ""
481
+
482
+ #: admin/settings/template-settings/global-settings.php:400
483
+ msgid "Theme Loader Function"
484
+ msgstr ""
485
+
486
+ #: admin/settings/template-settings/global-settings.php:401
487
+ msgid ""
488
+ "Your theme must have the wp_footer() function if you select FOOTER load."
489
+ msgstr ""
490
+
491
+ #: admin/settings/template-settings/global-settings.php:407
492
+ msgid "HEADER"
493
+ msgstr ""
494
+
495
+ #: admin/settings/template-settings/global-settings.php:408
496
+ msgid "FOOTER"
497
+ msgstr ""
498
+
499
+ #: admin/settings/template-settings/global-settings.php:412
500
+ msgid "WordPress Mobile Template Plugins"
501
+ msgstr ""
502
+
503
+ #: admin/settings/template-settings/global-settings.php:419
504
+ msgid "Disable On WPTouch"
505
+ msgstr ""
506
+
507
+ #: admin/settings/template-settings/global-settings.php:420
508
+ msgid "Disables a3 Lazy Load when the WPTouch mobile theme is used"
509
+ msgstr ""
510
+
511
+ #: admin/settings/template-settings/global-settings.php:430
512
+ msgid "Disable On MobilePress"
513
+ msgstr ""
514
+
515
+ #: admin/settings/template-settings/global-settings.php:431
516
+ msgid "Disables a3 Lazy Load when the MobilePress mobile theme is used"
517
+ msgstr ""
518
+
519
+ #: admin/settings/template-settings/global-settings.php:442
520
+ msgid "Effect & Style"
521
+ msgstr ""
522
+
523
+ #: admin/settings/template-settings/global-settings.php:449
524
+ msgid "Loading Effect"
525
+ msgstr ""
526
+
527
+ #: admin/settings/template-settings/global-settings.php:455
528
+ msgid "FADE IN"
529
+ msgstr ""
530
+
531
+ #: admin/settings/template-settings/global-settings.php:456
532
+ msgid "SPINNER"
533
+ msgstr ""
534
+
535
+ #: admin/settings/template-settings/global-settings.php:459
536
+ msgid "Loading Background Colour"
537
+ msgstr ""
538
+
539
+ #: admin/settings/template-settings/global-settings.php:466
540
+ msgid "Image Load Threshold"
541
+ msgstr ""
542
+
543
+ #: admin/settings/template-settings/global-settings.php:473
544
+ msgid "Threshold"
545
+ msgstr ""
546
+
547
+ #: admin/settings/template-settings/global-settings.php:475
548
+ msgid ""
549
+ "Expands visible page area (viewport) in vertical direction by the amount of "
550
+ "pixels set. Elements start to load as soon as the reach the threshold "
551
+ "instead of when they reach the actual viewport."
552
+ msgstr ""
553
+
554
+ #: classes/addons/class-a3-lazy-load-addons-page.php:23
555
+ #: classes/addons/class-a3-lazy-load-addons-page.php:38
556
+ msgid "a3 Lazy Load Add-ons/Extensions"
557
+ msgstr ""
558
+
559
+ #: classes/addons/class-a3-lazy-load-addons-page.php:23
560
+ #: classes/addons/class-a3-lazy-load-addons-page.php:58
561
+ msgid "Add-ons"
562
+ msgstr ""
563
+
564
+ #: classes/addons/class-a3-lazy-load-addons-page.php:198
565
+ msgid "Installed"
566
+ msgstr ""
567
+
568
+ #: classes/addons/class-a3-lazy-load-addons-page.php:200
569
+ msgid "Activate"
570
+ msgstr ""
571
+
572
+ #: classes/addons/class-a3-lazy-load-addons-page.php:203
573
+ msgid "Get this extension"
574
+ msgstr ""
575
+
576
+ #: classes/addons/class-a3-lazy-load-addons-page.php:209
577
+ msgid "Free"
578
+ msgstr ""
579
+
580
+ #: classes/addons/class-a3-lazy-load-addons-page.php:217
581
+ msgid "Comming Soon"
582
+ msgstr ""
583
+
584
+ #: classes/class-a3-lazy-load-filter.php:13
585
+ msgid "Go to Support Forum"
586
+ msgstr ""
587
+
588
+ #: classes/class-a3-lazy-load-filter.php:19
589
+ msgid "Free WordPress Plugins"
590
+ msgstr ""
591
+
592
+ #: classes/class-a3-lazy-load-filter.php:26
593
+ msgid "Free WooCommerce Plugins"
594
+ msgstr ""
595
+
596
+ #: classes/class-a3-lazy-load-filter.php:33
597
+ msgid "Is this plugin is just what you needed? If so"
598
+ msgstr ""
599
+
600
+ #: classes/class-a3-lazy-load-filter.php:34
601
+ msgid "Submit Review for Plugin on WordPress"
602
+ msgstr ""
603
+
604
+ #: classes/class-a3-lazy-load-filter.php:41
605
+ msgid "Connect with us via"
606
+ msgstr ""
607
+
608
+ #: classes/class-a3-lazy-load-filter.php:42
609
+ msgid "a3rev Facebook"
610
+ msgstr ""
611
+
612
+ #: classes/class-a3-lazy-load-filter.php:43
613
+ msgid "a3rev Twitter"
614
+ msgstr ""
615
+
616
+ #: classes/class-a3-lazy-load-filter.php:57
617
+ msgid "Support"
618
+ msgstr ""
619
+
620
+ #: classes/class-a3-lazy-load-filter.php:62
621
+ msgid "Settings"
622
+ msgstr ""
readme.txt CHANGED
@@ -1,24 +1,23 @@
1
  === a3 Lazy Load ===
2
-
3
- Contributors: a3rev, A3 Revolution Software Development team, nguyencongtuan
4
  Tags: a3 lazy load, Lazy Loading , image lazy load, lazyload
5
- Requires at least: 4.0
6
- Tested up to: 4.5
7
- Stable tag: 1.7.1
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
11
- Use a3 Lazy Load for images, videos, iframes. Instantly improve your sites load time and dramatically improve site users experience.
12
 
13
- == Description ==
14
 
15
- a3 Lazy Load is a Mobile Oriented, simple to use plugin that will speed up site performance. The more content heavy your site the better the plugin will perform and the more you will see the improvements in performance. See [this demo](http://ressio.github.io/lazy-load-xt/demo/stresstest1000img.htm) of a page with 1,000 images (yes 1,000 images) to load.
16
 
17
  a3 Lazy Load is inspired by and powered by the ressio [Lazy-Load-xt JavaScript](https://github.com/ressio/lazy-load-xt).
18
 
19
- a3 Lazy Load is the most fully featured lazy load plugin for WordPress. Use the plugins admin settings to easily define what elements are lazy loaded when they become visible in the users browser. As the user scroll down the page the next lot of elements you have applied lazy Load to are only loaded as they become visible in the view port.
20
 
21
- = Image Lazy Load =
22
 
23
  Images are the number one element that slows page load and increases bandwidth use. From the a3 Lazy Load admin panel turn load images by a3 Lazy Load ON | OFF. For more flexibility when ON you can choose to ON | OFF lazy load for images in
24
 
@@ -27,9 +26,9 @@ Images are the number one element that slows page load and increases bandwidth u
27
  * Apply to post thumbnails
28
  * Apply to gravatars
29
 
30
- = More than just Images =
31
 
32
- = Video Lazy Load =
33
 
34
  a3 Lazy Load supports all WordPress video Embeds including Youtube, Vimeo and HTML5 video - for a full list see the [WordPress Codex Embeds](http://codex.wordpress.org/Embeds) list. The WordPress embed method of copying and pasting the video url into posts and pages content area is fully supported. Note - embed video by WordPress shortcode is not supported.
35
 
@@ -41,120 +40,113 @@ From the a3 lazy Load admin panel turn Video Support ON | OFF. When ON you can c
41
  * Video [see demo](http://ressio.github.io/lazy-load-xt/demo/video-html5.htm)
42
  * Fully Compatible with the popular [Youtube Embed Plugin](https://wordpress.org/plugins/youtube-embed/)
43
 
44
- = Elements loaded by iframe =
45
 
46
- a3 Lazy Load has built in support for content that is added by iframe from any source in content and widgets - examples
47
 
48
  * WordPress embedded media
49
  * Facebook Like boxes with profiles, Like buttons, Recommend
50
  * Google+ Profile
51
  * Google Maps
52
 
53
- = WordPress 4.4 Post Embed =
54
 
55
- * Fully compatible with WordPress 4.4 new embed post on any site feature
56
  * Makes embed post load much faster
57
 
58
- = WordPress Accelerated Mobile Pages (AMP) =
59
 
60
  * Built in auto support for WordPress AMP plugin
 
61
  * There are no setting options for exclude /amp - Lazy Load is just never applied to the /amp endpoint
62
  * When the url is loaded in browser without /amp Lazy Load is applied
63
 
64
- = Lazy Load Effects =
65
 
66
- a3 Lazy Load gives you the option to lazy load images with a FADE IN or SPINNER effect.
67
 
68
  * FADEIN [see demo](http://ressio.github.io/lazy-load-xt/demo/fadein.htm)
69
  * SPINNER [see demo](http://ressio.github.io/lazy-load-xt/demo/spinner.htm)
70
  * Option to create a custom Lazy Load pre-load background colour
71
 
72
- = WooCommerce =
73
 
74
- a3 lazy Load is built and tested to be fully compatible with the very widely used WooCommerce plugin.
75
 
76
- = Performance Tweak =
77
 
78
  a3 Lazy Load gives you the option to load its script from your sites HEAD or from the FOOT.
79
 
80
  * Note that your theme must have the wp_footer() function if you select FOOTER load.
81
  * Note the plugin CSS is always loaded from the HEAD.
82
 
83
- = Exclude Images and Videos =
84
 
85
  a3 Lazy Load allows you to easily exclude any images and video by class name from having the Lazy Load effect applied.
86
 
87
- = JavaScript Disabled Fallback =
88
 
89
  a3 Lazy Load has built in Noscript fallback if user has JavaScript turned off in their browser. Developers who use underscore.js in their applications can use the Noscript parameter to exclude their plugins content from Lazy Load.
90
 
91
- = Theme Compatibility =
92
-
93
- * Work with any WordPress theme that follows the WordPress Theme Codex.
94
- * Fully compatible with WPTouch plugin - Set to not apply on Mobiles if WPTouch is installed.
95
- * Fully compatible with MobilePress plugin - Set to not apply on Mobiles if MobilePress is installed.
96
-
97
- = Plugin Compatibility =
98
 
99
- * Will not conflict with any plugin that has lazy load built in.
100
- * Plugin Developers a3 lazy load filter allows them to let lazy load apply to their plugin.
101
- * Tested 100% compatible with WP Super Cache and W3 Total Cache plugins.
102
- * Tested 100% compatible with Amazon Cloudfront.
 
 
 
103
  * Fully compatible with CDN architecture.
104
 
105
- = Full Browser Support =
106
-
107
- a3 lazy Load is tested 100% compatible with all major browsers.
108
-
109
- = PC's =
110
- * IE 6-11
111
- * Chrome 1-39 (current)
112
- * Firefox 1.5-33 (current)
113
- * Safari 3-8 (current)
114
- * Opera 10.6-25 (current)
115
-
116
- = Mobile =
117
- * iOS 5-8 (current)
118
- * Android 2.3-4.4 (current)
119
- * Amazon Kindle Fire 4-4.3 (Current)
120
- * Windows Mobile 8.1 (Current)
121
-
122
- = More Features =
123
 
124
  * Full support of jQueryMobile framework
125
  * WordPress Multi site ready.
126
  * Backend support for RTL display.
127
  * Translation ready
128
 
 
129
 
130
- == Installation ==
 
131
 
 
 
132
  = Minimum Requirements =
133
 
134
- * WordPress 4.0
135
- * PHP version 5.2.4 or greater
136
- * MySQL version 5.1.73 or greater
137
 
138
- = Automatic installation =
139
 
140
- Automatic installation is the easiest option as WordPress handles the file transfers itself and you don't even need to leave your web browser. To do an automatic install of a3 Lazy Load, log in to your WordPress admin panel, navigate to the Plugins menu and click Add New. Search a3 Lazy load, select and install.
 
 
141
 
142
- == Screenshots ==
143
-
144
- 1. Admin Dashboard.
145
-
146
-
147
- == Usage ==
148
 
149
  1. Install and activate the plugin
150
-
151
- 2. On wp-admin a3 Lazy Load one page admin panel check the settings.
152
-
153
- 3. Enjoy
154
 
155
 
156
  == Changelog ==
157
 
 
 
 
 
 
 
 
 
 
 
 
158
  = 1.7.1 =
159
  * Tweak - Register fontawesome in plugin framework with style name is 'font-awesome-styles'
160
  * Tweak - Update plugin framework to latest version
@@ -281,6 +273,9 @@ Automatic installation is the easiest option as WordPress handles the file trans
281
 
282
  == Upgrade Notice ==
283
 
 
 
 
284
  = 1.7.1 =
285
  Maintenance Update. 2 Tweaks for full compatibility with WordPress major version 4.5
286
 
1
  === a3 Lazy Load ===
2
+ Contributors: a3rev, a3rev Software, nguyencongtuan
 
3
  Tags: a3 lazy load, Lazy Loading , image lazy load, lazyload
4
+ Requires at least: 4.5
5
+ Tested up to: 4.7.5
6
+ Stable tag: 1.8.0
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
10
+ Use a3 Lazy Load for images, videos, iframes. Instantly improve your sites load time and dramatically improve site user’s experience.
11
 
12
+ == DESCRIPTION ==
13
 
14
+ a3 Lazy Load is a Mobile Oriented, very simple to use plugin that will speed up sites page load speed. The more content heavy your site the better the plugin will perform and the more you will see the improvements in performance. See [this demo](http://ressio.github.io/lazy-load-xt/demo/stresstest1000img.htm) of a page with 1,000 images (yes 1,000 images) to load.
15
 
16
  a3 Lazy Load is inspired by and powered by the ressio [Lazy-Load-xt JavaScript](https://github.com/ressio/lazy-load-xt).
17
 
18
+ a3 Lazy Load is the most fully featured, incredibly easy to set up lazy load plugin for WordPress. Use the plugins admin settings to easily define what elements are lazy loaded and when they become visible in the users browser. As the user scrolls down the page the next lot of elements you have applied lazy Load to are only loaded as they become visible in the view port.
19
 
20
+ = IMAGE LAZY LOAD =
21
 
22
  Images are the number one element that slows page load and increases bandwidth use. From the a3 Lazy Load admin panel turn load images by a3 Lazy Load ON | OFF. For more flexibility when ON you can choose to ON | OFF lazy load for images in
23
 
26
  * Apply to post thumbnails
27
  * Apply to gravatars
28
 
29
+ = MORE THAN JUST IMAGES =
30
 
31
+ = VIDEO LAZY LOAD =
32
 
33
  a3 Lazy Load supports all WordPress video Embeds including Youtube, Vimeo and HTML5 video - for a full list see the [WordPress Codex Embeds](http://codex.wordpress.org/Embeds) list. The WordPress embed method of copying and pasting the video url into posts and pages content area is fully supported. Note - embed video by WordPress shortcode is not supported.
34
 
40
  * Video [see demo](http://ressio.github.io/lazy-load-xt/demo/video-html5.htm)
41
  * Fully Compatible with the popular [Youtube Embed Plugin](https://wordpress.org/plugins/youtube-embed/)
42
 
43
+ = iFRAME LAZY LOAD =
44
 
45
+ a3 Lazy Load has built in support for content that is added by iframe from any source in content and widgets – examples
46
 
47
  * WordPress embedded media
48
  * Facebook Like boxes with profiles, Like buttons, Recommend
49
  * Google+ Profile
50
  * Google Maps
51
 
52
+ = POST EMBED =
53
 
54
+ * Fully compatible with WordPress embed post on any site feature introduced in version WP version 4.4
55
  * Makes embed post load much faster
56
 
57
+ = WORDPRESS AMP =
58
 
59
  * Built in auto support for WordPress AMP plugin
60
+ * Built in support for Better AMP plugin
61
  * There are no setting options for exclude /amp - Lazy Load is just never applied to the /amp endpoint
62
  * When the url is loaded in browser without /amp Lazy Load is applied
63
 
64
+ = LAZY LOAD EFFECTS =
65
 
66
+ a3 Lazy Load gives you the option to lazy load images with a FADE IN or SPINNER effect
67
 
68
  * FADEIN [see demo](http://ressio.github.io/lazy-load-xt/demo/fadein.htm)
69
  * SPINNER [see demo](http://ressio.github.io/lazy-load-xt/demo/spinner.htm)
70
  * Option to create a custom Lazy Load pre-load background colour
71
 
72
+ = WOOCOMMERCE =
73
 
74
+ a3 lazy Load is built and tested to be fully compatible with the very widely used WooCommerce plugin
75
 
76
+ = PERFORMANCE TWEAKS =
77
 
78
  a3 Lazy Load gives you the option to load its script from your sites HEAD or from the FOOT.
79
 
80
  * Note that your theme must have the wp_footer() function if you select FOOTER load.
81
  * Note the plugin CSS is always loaded from the HEAD.
82
 
83
+ = EXCLUDE IMAGES & VIDEO =
84
 
85
  a3 Lazy Load allows you to easily exclude any images and video by class name from having the Lazy Load effect applied.
86
 
87
+ = JAVASCIPT DISABLED FALLBACK =
88
 
89
  a3 Lazy Load has built in Noscript fallback if user has JavaScript turned off in their browser. Developers who use underscore.js in their applications can use the Noscript parameter to exclude their plugins content from Lazy Load.
90
 
91
+ = PLUGIN COMPATIBILITY =
 
 
 
 
 
 
92
 
93
+ * Work with any WordPress theme that follows the WordPress Theme Codex
94
+ * Fully compatible with WPTouch plugin - Set to not apply on Mobiles if WPTouch is installed
95
+ * Fully compatible with MobilePress plugin - Set to not apply on Mobiles if MobilePress is installed
96
+ * Will not conflict with any plugin that has lazy load built in
97
+ * Plugin Developers a3 lazy load filter allows them to let lazy load apply to their plugin
98
+ * Tested 100% compatible with WP Super Cache and W3 Total Cache plugins
99
+ * Tested 100% compatible with Amazon Cloudfront
100
  * Fully compatible with CDN architecture.
101
 
102
+ = MORE FEATURES =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
  * Full support of jQueryMobile framework
105
  * WordPress Multi site ready.
106
  * Backend support for RTL display.
107
  * Translation ready
108
 
109
+ = JOIN THE a3 LAZY LOAD COMMUNITY =
110
 
111
+ When you download a3 lazy Load, you join our community. Regardless of if you are a WordPress newbie or experienced developer if you’re interested in contributing to a3 Lazy Load development head over to the [a3 Lazy Load GitHub Repository](https://github.com/a3rev/a3-lazy-load) to find out how you can contribute.
112
+ Want to add a new language to a3 Lazy Load? Great! You can contribute via [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/a3-lazy-load)
113
 
114
+ == Installation ==
115
+
116
  = Minimum Requirements =
117
 
118
+ * WordPress 4.5
119
+ * PHP version 5.5.0 or greater
120
+ * MySQL version 5.5.0 or greater
121
 
122
+ == SCREENSHOTS ==
123
 
124
+ 1. a3 lazy Load Dashboard
125
+ 2. a3 lazy Load Image Setting Options
126
+ 3. a3 lazy Load Video and iframe settings
127
 
128
+ == USAGE ==
 
 
 
 
 
129
 
130
  1. Install and activate the plugin
131
+ 2. Open WordPress Settings menu
132
+ 3. Click on a3 Lazy Load menu
133
+ 4. Turn ON Lazy Load and all preferred settings
134
+ 5. Save Changes and enjoy the improved performance Lazy Load will give your site
135
 
136
 
137
  == Changelog ==
138
 
139
+ = 1.8.0 - 2017/05/30 =
140
+ * Feature – Updated for compatibility with Better AMP plugin
141
+ * Feature – Launched a3Lazy Load Github public Repository
142
+ * Feature – WordPress Translation activation. Add text domain declaration in file header.
143
+ * Tweak - Change global $$variable to global ${$variable} for compatibility with PHP 7.0
144
+ * Tweak - Update a3 Revolution to a3rev Software on plugins description
145
+ * Tweak - Update plugin framework to latest version
146
+ * Tweak - Tested for full compatibility with WordPress version 4.7.5
147
+ * Tweak - Tested for full compatibility with PHP 7.0
148
+ * Fix – Exclude images by class
149
+
150
  = 1.7.1 =
151
  * Tweak - Register fontawesome in plugin framework with style name is 'font-awesome-styles'
152
  * Tweak - Update plugin framework to latest version
273
 
274
  == Upgrade Notice ==
275
 
276
+ = 1.8.0 =
277
+ Feature Upgrade. 1 bug fix, 3 new features, 2 code updates for compatibility with WordPress v 4.7.5, PHP 7.0, Better AMP plugin and launch public Github Repo
278
+
279
  = 1.7.1 =
280
  Maintenance Update. 2 Tweaks for full compatibility with WordPress major version 4.5
281