WordPress Backup and Migrate Plugin – Backup Guard - Version 1.2.5

Version Description

  • Admin side improvement
  • Bug fixed related to restore
  • Schedule backup improvement
Download this release

Release Info

Developer BackupGuard
Plugin Icon 128x128 WordPress Backup and Migrate Plugin – Backup Guard
Version 1.2.5
Comparing to
See all releases

Code changes from version 1.2.0 to 1.2.5

Files changed (58) hide show
  1. BackupGuard.php +27 -2
  2. README.txt +29 -3
  3. backup.php +3 -2
  4. com/config/config.php +6 -0
  5. com/core/SGBoot.php +27 -0
  6. com/core/backup/SGBackup.php +24 -5
  7. com/core/backup/SGBackupDatabase.php +4 -2
  8. com/core/functions.php +37 -5
  9. com/core/notice/SGNoticeHandler.php +7 -1
  10. com/core/schedule/SGScheduleAdapterWordpress.php +1 -1
  11. com/lib/Request/SGRequestAdapterWordpress.php +22 -19
  12. com/lib/SGAuthClient.php +3 -0
  13. com/lib/SGReviewManager.php +387 -0
  14. public/ajax/checkPHPVersionCompatibility.php +1 -0
  15. public/ajax/deleteBackup.php +1 -0
  16. public/ajax/downloadBackup.php +1 -0
  17. public/ajax/modalImport.php +13 -15
  18. public/ajax/modalManualBackup.php +3 -3
  19. public/ajax/modalManualRestore.php +5 -3
  20. public/ajax/reviewBannerActions.php +32 -0
  21. public/ajax/settings.php +7 -0
  22. public/backups.php +15 -6
  23. public/cloud.php +1 -1
  24. public/css/bgstyle.less.css +182 -66
  25. public/css/bootstrap-switch.min.css +1 -1
  26. public/css/deactivationSurvey.css +6 -0
  27. public/css/popupTheme.css +3333 -0
  28. public/css/styles.css +68 -16
  29. public/img/FAQ.png +0 -0
  30. public/img/TW.png +0 -0
  31. public/img/banerLogo.png +0 -0
  32. public/img/contact-us.png +0 -0
  33. public/img/discount.png +0 -0
  34. public/img/fb.png +0 -0
  35. public/img/full-demo.png +0 -0
  36. public/img/logo-horizontal.png +0 -0
  37. public/img/notice-section-bg.png +0 -0
  38. public/img/reviewBannerLogo.png +0 -0
  39. public/img/section-1-bg.png +0 -0
  40. public/img/sgBackupVerticalLogo.png +0 -0
  41. public/img/sglogo.png +0 -0
  42. public/img/user-manual.png +0 -0
  43. public/img/youtube.png +0 -0
  44. public/include/functions.php +1 -1
  45. public/include/sidebar.php +6 -1
  46. public/include/uninstallSurveyPopup.php +1 -1
  47. public/js/deactivationSurvey.js +1 -0
  48. public/js/jquery.rateyo.js +1 -1
  49. public/js/main.js +2 -1
  50. public/js/popup.js +1518 -0
  51. public/js/sgbackup.js +4 -0
  52. public/js/sgschedule.js +7 -0
  53. public/js/sgsettings.js +1 -1
  54. public/restore_wordpress.php +10 -3
  55. public/schedule.php +1 -1
  56. public/settings.php +15 -4
  57. public/templates/notices/banner.php +1 -3
  58. public/templates/notices/timeout_free_error.php +13 -0
BackupGuard.php CHANGED
@@ -82,7 +82,7 @@ else {
82
 
83
  function backup_guard_admin_menu()
84
  {
85
- add_menu_page('Backups', 'BackupGuard', 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA0NjIuOSA1MDEuNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDYyLjkgNTAxLjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNhMGE1YWEiIGQ9Ik00MjYuOSwxOTkuNmgtMTk4bDAuNCwzNEgyNDZoMTYyLjdjLTAuNSwzLjMtMS4xLDYuNi0xLjcsOS45Yy02LjEsMzMtMTUuMyw2Mi4yLTI3LjcsODcuNkg3OS40Yy0xMi4zLTI1LjQtMjEuNi01NC42LTI3LjctODcuNkMzOS4zLDE3Ni4xLDQ0LDExMS41LDQ3LjIsODMuN0M2Ny43LDkwLjUsODguMyw5NCwxMDguNiw5NGM2MC43LDAsMTAzLjMtMzAuMiwxMjAuOC00NS4xQzI0Ni43LDYzLjgsMjg5LjQsOTQsMzUwLjEsOTRoMGMyMC4zLDAsNDAuOS0zLjUsNjEuNC0xMC4zYzEuNiwxMy45LDMuNSwzNy4xLDMuNiw2NS4xaDIzLjdjMC00Ny40LTUuNS04MS4xLTUuOC04My4zbC0yLjQtMTQuNmwtMTMuNyw1LjZjLTIyLjQsOS4yLTQ0LjgsMTMuOC02Ni43LDEzLjhjMCwwLDAsMCwwLDBjLTY4LjMsMC0xMTEuNy00NS4zLTExMi4xLTQ1LjdsLTguNi05LjJsLTguNyw5LjJjLTAuNCwwLjUtNDMuOCw0NS43LTExMi4xLDQ1LjdjLTIxLjksMC00NC40LTQuNi02Ni43LTEzLjhsLTEzLjctNS42bC0yLjQsMTQuNmMtMC42LDMuNi0xNC40LDg4LjcsMi42LDE4MS42QzM4LjUsMzAyLjQsNTcuNSwzNDguOCw4NC44LDM4NWMzNC42LDQ1LjgsODIuNCw3NS4zLDE0Mi4xLDg3LjdsMi40LDAuNWwyLjQtMC41YzU5LjctMTIuMywxMDcuNS00MS44LDE0Mi4xLTg3LjdjMjcuNC0zNi4zLDQ2LjQtODIuNyw1Ni41LTEzNy45YzMtMTYuMiw1LTMyLjIsNi4zLTQ3LjVMNDI2LjksMTk5LjZMNDI2LjksMTk5LjZ6Ii8+PC9zdmc+', 74);
86
 
87
  add_submenu_page('backup_guard_backups', _backupGuardT('Backups', true), _backupGuardT('Backups', true), 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page');
88
  add_submenu_page('backup_guard_backups', _backupGuardT('Cloud', true), _backupGuardT('Cloud', true), 'manage_options', 'backup_guard_cloud', 'backup_guard_cloud_page');
@@ -293,6 +293,8 @@ function enqueue_backup_guard_scripts($hook)
293
  wp_enqueue_script('backup-guard-rateyo-js', plugin_dir_url(__FILE__).'public/js/jquery.rateyo.js');
294
 
295
  wp_enqueue_script('backup-guard-main-js', plugin_dir_url(__FILE__).'public/js/main.js', array('jquery'), '1.0.0', true);
 
 
296
 
297
  // Localize the script with new data
298
  wp_localize_script('backup-guard-main-js', 'BG_MAIN_STRINGS', array(
@@ -432,9 +434,25 @@ function backup_guard_register_ajax_callbacks()
432
  add_action('wp_ajax_backup_guard_setUserInfoVerificationPopupState', 'backup_guard_set_user_info_verification_popup_state');
433
  add_action('wp_ajax_backup_guard_storeSubscriberInfo', 'backup_guard_store_subscriber_info');
434
  add_action('wp_ajax_backup_guard_storeSurveyResult', 'backup_guard_store_survey_result');
 
 
435
  }
436
  }
437
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
  function backup_guard_store_survey_result()
439
  {
440
  check_ajax_referer('backupGuardAjaxNonce', 'token');
@@ -494,7 +512,6 @@ function backup_guard_awake()
494
 
495
  function backup_guard_awake_nopriv()
496
  {
497
- check_ajax_referer('backupGuardAjaxNonce', 'token');
498
  $token = @$_GET['token'];
499
  $method = @$_GET['method'];
500
 
@@ -945,4 +962,12 @@ function backup_guard_discount_notice()
945
  }
946
  </style>
947
  <?php
 
 
 
 
 
 
 
 
948
  }
82
 
83
  function backup_guard_admin_menu()
84
  {
85
+ add_menu_page('Backups', 'BackupGuard', 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page', 'data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MzAuMzQgNjYzLjAzIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPkFydGJvYXJkIDI8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTUzMC4xMSwxODUuNzljLTcxLjktOC44Mi0xMzcuNzMtNDAtMTkwLTg2LjU3djkyLjY1YTI4MC41OSwyODAuNTksMCwwLDAsMTE2LjUyLDUyYy05LjE0LDg5LjQzLTUyLDE2OS41NS0xMTYuNTIsMjI4Ljg3djkwLjRDNDU5Ljg0LDQ3Ny4xMyw1MzAuNiwzMzMuNDIsNTMwLjExLDE4NS43OVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNzQuMjksMjQ0YTI4MC40NiwyODAuNDYsMCwwLDAsMTE1Ljc3LTUxLjExVjEwMGMtNTIuNDQsNDYuMjgtMTE3LjYyLDc3LTE4OS44Myw4NS4xNUM5OS41NCwzMzMsMTcwLjIyLDQ3Ni44MiwyOTAuMDYsNTYzVjQ3Mi4wOUMyMjYsNDEyLjg2LDE4My40MiwzMzMuMDYsMTc0LjI5LDI0NFoiLz48L3N2Zz4=', 74);
86
 
87
  add_submenu_page('backup_guard_backups', _backupGuardT('Backups', true), _backupGuardT('Backups', true), 'manage_options', 'backup_guard_backups', 'backup_guard_backups_page');
88
  add_submenu_page('backup_guard_backups', _backupGuardT('Cloud', true), _backupGuardT('Cloud', true), 'manage_options', 'backup_guard_cloud', 'backup_guard_cloud_page');
293
  wp_enqueue_script('backup-guard-rateyo-js', plugin_dir_url(__FILE__).'public/js/jquery.rateyo.js');
294
 
295
  wp_enqueue_script('backup-guard-main-js', plugin_dir_url(__FILE__).'public/js/main.js', array('jquery'), '1.0.0', true);
296
+ wp_enqueue_script('backup-popup.js', plugin_dir_url(__FILE__).'public/js/popup.js', array('jquery'), '1.0.0', true);
297
+ wp_enqueue_style('popupTheme.css', plugin_dir_url(__FILE__).'public/css/popupTheme.css');
298
 
299
  // Localize the script with new data
300
  wp_localize_script('backup-guard-main-js', 'BG_MAIN_STRINGS', array(
434
  add_action('wp_ajax_backup_guard_setUserInfoVerificationPopupState', 'backup_guard_set_user_info_verification_popup_state');
435
  add_action('wp_ajax_backup_guard_storeSubscriberInfo', 'backup_guard_store_subscriber_info');
436
  add_action('wp_ajax_backup_guard_storeSurveyResult', 'backup_guard_store_survey_result');
437
+ add_action('wp_ajax_backup_guard_reviewDontShow', 'backup_guard_review_dont_show');
438
+ add_action('wp_ajax_backup_guard_review_later', 'backup_guard_review_later');
439
  }
440
  }
441
 
442
+ function backup_guard_review_dont_show()
443
+ {
444
+ check_ajax_referer('backupGuardAjaxNonce', 'token');
445
+ SGConfig::set('closeReviewBanner', 1);
446
+ wp_die();
447
+ }
448
+
449
+ function backup_guard_review_later()
450
+ {
451
+ check_ajax_referer('backupGuardAjaxNonce', 'token');
452
+ require_once(SG_PUBLIC_AJAX_PATH.'reviewBannerActions.php');
453
+ wp_die();
454
+ }
455
+
456
  function backup_guard_store_survey_result()
457
  {
458
  check_ajax_referer('backupGuardAjaxNonce', 'token');
512
 
513
  function backup_guard_awake_nopriv()
514
  {
 
515
  $token = @$_GET['token'];
516
  $method = @$_GET['method'];
517
 
962
  }
963
  </style>
964
  <?php
965
+ }
966
+
967
+ add_action('admin_notices', 'backup_guard_review_banner');
968
+ function backup_guard_review_banner()
969
+ {
970
+ require_once(SG_LIB_PATH.'SGReviewManager.php');
971
+ $reviewManager = new SGReviewManager();
972
+ $reviewManager->renderContent();
973
  }
README.txt CHANGED
@@ -5,8 +5,8 @@ Author: Backup Guard
5
  Donate link: https://backup-guard.com/products/backup-wordpress
6
  Tags: backup, wordpress backup plugin, backup plugin, database backup, migrate, back up
7
  Requires at least: 3.8
8
- Tested up to: 5.3
9
- Stable tag: 1.2.0
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -157,6 +157,32 @@ When you are facing an issue of any kind with any of our products, the first thi
157
  6. Site backup customization
158
 
159
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  = 1.2.0 =
161
  * Security improvements
162
  * Amazon S3 bug fixed
@@ -531,4 +557,4 @@ When you are facing an issue of any kind with any of our products, the first thi
531
  * Minor backup related bug fixes
532
 
533
  = 1.0 =
534
- * Initial backup plugin was commit
5
  Donate link: https://backup-guard.com/products/backup-wordpress
6
  Tags: backup, wordpress backup plugin, backup plugin, database backup, migrate, back up
7
  Requires at least: 3.8
8
+ Tested up to: 5.4
9
+ Stable tag: 1.2.5
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
157
  6. Site backup customization
158
 
159
  == Changelog ==
160
+ = 1.2.5 =
161
+ * Admin side improvement
162
+ * Bug fixed related to restore
163
+ * Schedule backup improvement
164
+
165
+ = 1.2.4 =
166
+ * Bug fixed related to restore
167
+ * Bug fixed related to plugin deactivation
168
+ * Login issue fixed
169
+
170
+ = 1.2.3 =
171
+ * Backup import modal improvement
172
+ * Schedule improvement
173
+ * Delete backup improvement
174
+ * Bug fixes
175
+
176
+ = 1.2.2 =
177
+ * Admin side redesign
178
+ * Download via PHP settings
179
+ * Bug fixes
180
+
181
+ = 1.2.1 =
182
+ * Schedule bug fixed
183
+ * Settings save bug fixed
184
+ * Bug fixed related to CSS design conflict.
185
+
186
  = 1.2.0 =
187
  * Security improvements
188
  * Amazon S3 bug fixed
557
  * Minor backup related bug fixes
558
 
559
  = 1.0 =
560
+ * Initial backup plugin was commit
backup.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
 
2
  /**
3
  * Plugin Name: Backup
4
  * Plugin URI: https://backup-guard.com/products/backup-wordpress
5
  * Description: Backup Guard is the most complete site backup and restore plugin. We offer the easiest way to backup, restore or migrate your site. You can backup your files, database or both.
6
- * Version: 1.2.0
7
  * Author: BackupGuard
8
  * Author URI: https://backup-guard.com/products/backup-wordpress
9
  * License: GPL-2.0+
@@ -15,7 +16,7 @@ if (function_exists('activate_backup_guard')) {
15
  }
16
 
17
  if (!defined('SG_BACKUP_GUARD_VERSION')) {
18
- define('SG_BACKUP_GUARD_VERSION', '1.2.0');
19
  }
20
 
21
  if (!defined('SG_BACKUP_GUARD_MAIN_FILE')) {
1
  <?php
2
+
3
  /**
4
  * Plugin Name: Backup
5
  * Plugin URI: https://backup-guard.com/products/backup-wordpress
6
  * Description: Backup Guard is the most complete site backup and restore plugin. We offer the easiest way to backup, restore or migrate your site. You can backup your files, database or both.
7
+ * Version: 1.2.5
8
  * Author: BackupGuard
9
  * Author URI: https://backup-guard.com/products/backup-wordpress
10
  * License: GPL-2.0+
16
  }
17
 
18
  if (!defined('SG_BACKUP_GUARD_VERSION')) {
19
+ define('SG_BACKUP_GUARD_VERSION', '1.2.5');
20
  }
21
 
22
  if (!defined('SG_BACKUP_GUARD_MAIN_FILE')) {
com/config/config.php CHANGED
@@ -161,6 +161,10 @@ define('SG_BACKUP_DOWNLOAD_TYPE_SGBP', 1);
161
  define('SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG', 2);
162
  define('SG_BACKUP_DOWNLOAD_TYPE_RESTORE_LOG', 3);
163
 
 
 
 
 
164
  //The following constants can be modified at run-time
165
  define('SG_ACTION_BACKUP_FILES_AVAILABLE', 1);
166
  define('SG_ACTION_BACKUP_DATABASE_AVAILABLE', 1);
@@ -177,6 +181,8 @@ define('SG_SSH_KEY_FILE_FOLDER_NAME', 'sshKeyFolder/');
177
  define('SG_MIGRATION_SERVICE_URL', 'https://backup-guard.com/services/migrate-wordpress');
178
  define('BACKUP_GUARD_PRIVACY_POLICY_URL', "https://backup-guard.com/privacy");
179
  define('BACKUP_GUARD_TERMS_OF_SERVICE_URL', 'https://backup-guard.com/terms');
 
 
180
 
181
  define('SG_RESTORE_MODE_FULL', 'full');
182
  define('SG_RESTORE_MODE_FILES', 'files');
161
  define('SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG', 2);
162
  define('SG_BACKUP_DOWNLOAD_TYPE_RESTORE_LOG', 3);
163
 
164
+ define('SG_BACKUP_REVIEW_BACKUP_COUNT', 3);
165
+ define('SG_BACKUP_REVIEW_RESTORE_COUNT', 1);
166
+ define('SG_BACKUP_REVIEW_PERIOD', 30);
167
+
168
  //The following constants can be modified at run-time
169
  define('SG_ACTION_BACKUP_FILES_AVAILABLE', 1);
170
  define('SG_ACTION_BACKUP_DATABASE_AVAILABLE', 1);
181
  define('SG_MIGRATION_SERVICE_URL', 'https://backup-guard.com/services/migrate-wordpress');
182
  define('BACKUP_GUARD_PRIVACY_POLICY_URL', "https://backup-guard.com/privacy");
183
  define('BACKUP_GUARD_TERMS_OF_SERVICE_URL', 'https://backup-guard.com/terms');
184
+ define('BACKUP_GUARD_WORDPRESS_SUPPORT_URL', 'https://wordpress.org/support/plugin/backup/');
185
+ define('BACKUP_GUARD_WORDPRESS_REVIEW_URL', 'https://wordpress.org/support/plugin/backup/reviews/?filter=5');
186
 
187
  define('SG_RESTORE_MODE_FULL', 'full');
188
  define('SG_RESTORE_MODE_FILES', 'files');
com/core/SGBoot.php CHANGED
@@ -173,12 +173,39 @@ class SGBoot
173
  if (!self::installActionTable($sgdb)) {
174
  throw new SGExceptionDatabaseError('Could not install action table');
175
  }
 
 
176
  }
177
  catch (SGException $exception) {
178
  die($exception);
179
  }
180
  }
181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  private static function cleanupSchedules()
183
  {
184
  $schedules = SGBackupSchedule::getAllSchedules();
173
  if (!self::installActionTable($sgdb)) {
174
  throw new SGExceptionDatabaseError('Could not install action table');
175
  }
176
+
177
+ self::installReviewSettings();
178
  }
179
  catch (SGException $exception) {
180
  die($exception);
181
  }
182
  }
183
 
184
+ private static function installReviewSettings()
185
+ {
186
+ $usageDays = SGConfig::get('usageDays');
187
+ if (!$usageDays) {
188
+ SGConfig::set('usageDays', 0);
189
+
190
+ $timeDate = new \DateTime('now');
191
+ $installTime = strtotime($timeDate->format('Y-m-d H:i:s'));
192
+ SGConfig::set('installDate', $installTime);
193
+ $timeDate->modify('+'.SG_BACKUP_REVIEW_PERIOD.' day');
194
+
195
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
196
+ SGConfig::set('openNextTime', $timeNow);
197
+ }
198
+ $backupCountReview = SGConfig::get('backupReviewCount');
199
+ if (!$backupCountReview) {
200
+ SGConfig::set('backupReviewCount', SG_BACKUP_REVIEW_BACKUP_COUNT);
201
+ }
202
+
203
+ $restoreReviewCount = SGConfig::get('restoreReviewCount');
204
+ if (!$restoreReviewCount) {
205
+ SGConfig::set('restoreReviewCount', SG_BACKUP_REVIEW_RESTORE_COUNT);
206
+ }
207
+ }
208
+
209
  private static function cleanupSchedules()
210
  {
211
  $schedules = SGBackupSchedule::getAllSchedules();
com/core/backup/SGBackup.php CHANGED
@@ -518,6 +518,7 @@ class SGBackup implements SGIBackupDelegate
518
  @unlink(SG_BACKUP_DIRECTORY.SG_STATE_FILE_NAME);
519
  @unlink(SG_BACKUP_DIRECTORY.SG_RELOADER_STATE_FILE_NAME);
520
  @unlink(SG_PING_FILE_PATH);
 
521
  }
522
 
523
  private function cleanUp()
@@ -531,7 +532,7 @@ class SGBackup implements SGIBackupDelegate
531
  private function getBackupFileName()
532
  {
533
  if (SGConfig::get("SG_CUSTOM_BACKUP_NAME")) {
534
- return SGConfig::get("SG_CUSTOM_BACKUP_NAME");
535
  }
536
 
537
  $sgBackupPrefix = SG_BACKUP_FILE_NAME_DEFAULT_PREFIX;
@@ -553,7 +554,7 @@ class SGBackup implements SGIBackupDelegate
553
  }
554
 
555
  //create backup folder
556
- if (!@mkdir($backupPath))
557
  {
558
  throw new SGExceptionMethodNotAllowed('Cannot create folder: '.$backupPath);
559
  }
@@ -731,6 +732,7 @@ class SGBackup implements SGIBackupDelegate
731
  if($restoreFiles != NULL) {
732
  $this->restoreFiles = $restoreFiles;
733
  }
 
734
  $this->prepareForRestore($backupName);
735
 
736
  if ($this->state && ($this->state->getAction() == SG_STATE_ACTION_RESTORING_DATABASE || $this->state->getAction() == SG_STATE_ACTION_MIGRATING_DATABASE)) {
@@ -1358,20 +1360,37 @@ class SGBackup implements SGIBackupDelegate
1358
  public static function download($filename, $type)
1359
  {
1360
  $backupDirectory = SG_BACKUP_DIRECTORY.$filename.'/';
 
 
1361
 
1362
  switch ($type)
1363
  {
1364
  case SG_BACKUP_DOWNLOAD_TYPE_SGBP:
1365
  $filename .= '.sgbp';
1366
- backupGuardDownloadFileSymlink($backupDirectory, $filename);
 
 
 
 
 
1367
  break;
1368
  case SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG:
1369
  $filename .= '_backup.log';
1370
- backupGuardDownloadFile($backupDirectory.$filename, 'text/plain');
 
 
 
 
 
1371
  break;
1372
  case SG_BACKUP_DOWNLOAD_TYPE_RESTORE_LOG:
1373
  $filename .= '_restore.log';
1374
- backupGuardDownloadFile($backupDirectory.$filename, 'text/plain');
 
 
 
 
 
1375
  break;
1376
  }
1377
 
518
  @unlink(SG_BACKUP_DIRECTORY.SG_STATE_FILE_NAME);
519
  @unlink(SG_BACKUP_DIRECTORY.SG_RELOADER_STATE_FILE_NAME);
520
  @unlink(SG_PING_FILE_PATH);
521
+ SGConfig::set("SG_CUSTOM_BACKUP_NAME", '');
522
  }
523
 
524
  private function cleanUp()
532
  private function getBackupFileName()
533
  {
534
  if (SGConfig::get("SG_CUSTOM_BACKUP_NAME")) {
535
+ return backupGuardRemoveSlashes(SGConfig::get("SG_CUSTOM_BACKUP_NAME"));
536
  }
537
 
538
  $sgBackupPrefix = SG_BACKUP_FILE_NAME_DEFAULT_PREFIX;
554
  }
555
 
556
  //create backup folder
557
+ if (!file_exists($backupPath) && !@mkdir($backupPath))
558
  {
559
  throw new SGExceptionMethodNotAllowed('Cannot create folder: '.$backupPath);
560
  }
732
  if($restoreFiles != NULL) {
733
  $this->restoreFiles = $restoreFiles;
734
  }
735
+ $backupName = backupGuardRemoveSlashes($backupName);
736
  $this->prepareForRestore($backupName);
737
 
738
  if ($this->state && ($this->state->getAction() == SG_STATE_ACTION_RESTORING_DATABASE || $this->state->getAction() == SG_STATE_ACTION_MIGRATING_DATABASE)) {
1360
  public static function download($filename, $type)
1361
  {
1362
  $backupDirectory = SG_BACKUP_DIRECTORY.$filename.'/';
1363
+ $backupName = $filename;
1364
+ $downloadViaPhp = SGConfig::get('SG_DOWNLOAD_VIA_PHP');
1365
 
1366
  switch ($type)
1367
  {
1368
  case SG_BACKUP_DOWNLOAD_TYPE_SGBP:
1369
  $filename .= '.sgbp';
1370
+ if ($downloadViaPhp) {
1371
+ backupGuardDownloadViaPhp($backupName, $filename);
1372
+ }
1373
+ else {
1374
+ backupGuardDownloadFileSymlink($backupDirectory, $filename);
1375
+ }
1376
  break;
1377
  case SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG:
1378
  $filename .= '_backup.log';
1379
+ if ($downloadViaPhp) {
1380
+ backupGuardDownloadViaPhp($backupName, $filename);
1381
+ }
1382
+ else {
1383
+ backupGuardDownloadFile($backupDirectory.$filename, 'text/plain');
1384
+ }
1385
  break;
1386
  case SG_BACKUP_DOWNLOAD_TYPE_RESTORE_LOG:
1387
  $filename .= '_restore.log';
1388
+ if ($downloadViaPhp) {
1389
+ backupGuardDownloadViaPhp($backupName, $filename);
1390
+ }
1391
+ else {
1392
+ backupGuardDownloadFile($backupDirectory.$filename, 'text/plain');
1393
+ }
1394
  break;
1395
  }
1396
 
com/core/backup/SGBackupDatabase.php CHANGED
@@ -331,7 +331,7 @@ class SGBackupDatabase implements SGIMysqldumpDelegate
331
 
332
  private function replaceInvalidCharacters($str)
333
  {
334
- return preg_replace('/\x00/', '', $str);;
335
  }
336
 
337
  private function getDatabaseHeaders()
@@ -363,6 +363,8 @@ class SGBackupDatabase implements SGIMysqldumpDelegate
363
  $this->currentRowCount = $sgDBState->getProgressCursor();
364
  $this->nextProgressUpdate = $sgDBState->getProgress();
365
  $this->warningsFound = $sgDBState->getWarningsFound();
 
 
366
  }
367
 
368
  while (($row = @fgets($fileHandle)) !== false) {
@@ -379,7 +381,7 @@ class SGBackupDatabase implements SGIMysqldumpDelegate
379
  }
380
 
381
  if ($trimmedRow && substr($trimmedRow, -9) == "/*SGEnd*/") {
382
- $queries = explode("/*SGEnd*/".PHP_EOL, $this->getDatabaseHeaders().$importQuery);
383
  foreach ($queries as $query) {
384
  if (!$query) {
385
  continue;
331
 
332
  private function replaceInvalidCharacters($str)
333
  {
334
+ return $str;//preg_replace('/\x00/', '', $str);;
335
  }
336
 
337
  private function getDatabaseHeaders()
363
  $this->currentRowCount = $sgDBState->getProgressCursor();
364
  $this->nextProgressUpdate = $sgDBState->getProgress();
365
  $this->warningsFound = $sgDBState->getWarningsFound();
366
+
367
+ $importQuery = $this->getDatabaseHeaders();
368
  }
369
 
370
  while (($row = @fgets($fileHandle)) !== false) {
381
  }
382
 
383
  if ($trimmedRow && substr($trimmedRow, -9) == "/*SGEnd*/") {
384
+ $queries = explode("/*SGEnd*/".PHP_EOL, $importQuery);
385
  foreach ($queries as $query) {
386
  if (!$query) {
387
  continue;
com/core/functions.php CHANGED
@@ -455,9 +455,30 @@ function backupGuardDownloadFile($file, $type = 'application/octet-stream')
455
  exit;
456
  }
457
 
458
- function backupGuardDownloadFileSymlink($safedir, $filename)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
  {
460
- $safedir = backupGuardRemoveSlashes($safedir);
461
  $filename = backupGuardRemoveSlashes($filename);
462
 
463
  $downloaddir = SG_SYMLINK_PATH;
@@ -472,8 +493,8 @@ function backupGuardDownloadFileSymlink($safedir, $filename)
472
  $string = '';
473
 
474
  for ($i = 1; $i <= rand(4,12); $i++) {
475
- $q = rand(1,24);
476
- $string = $string.$letters[$q];
477
  }
478
 
479
  $handle = opendir($downloaddir);
@@ -489,8 +510,19 @@ function backupGuardDownloadFileSymlink($safedir, $filename)
489
  }
490
 
491
  closedir($handle);
492
-
493
  mkdir($downloaddir . $string, 0777);
 
 
 
 
 
 
 
 
 
 
 
 
494
  $res = @symlink($safedir . $filename, $downloaddir . $string . "/" . $filename);
495
  if ($res) {
496
  header('Content-Description: File Transfer');
455
  exit;
456
  }
457
 
458
+ function backupGuardDownloadViaPhp($backupName, $fileName)
459
+ {
460
+ $str = backupGuardMakeSymlinkFolder($fileName);
461
+ @copy(SG_BACKUP_DIRECTORY.$backupName.'/'.$fileName, SG_SYMLINK_PATH.$str.'/'.$fileName);
462
+
463
+ if (file_exists(SG_SYMLINK_PATH.$str.'/'.$fileName)) {
464
+ $remoteGet = wp_remote_get(SG_SYMLINK_URL.$str.'/'.$fileName);
465
+ if (!is_wp_error($remoteGet)) {
466
+ $content = wp_remote_retrieve_body($remoteGet);
467
+ header('Pragma: public');
468
+ header('Expires: 0');
469
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
470
+ header('Cache-Control: private', false);
471
+ header('Content-Type: application/octet-stream');
472
+ header('Content-Disposition: attachment; filename='.$fileName.';');
473
+ header('Content-Transfer-Encoding: binary');
474
+ echo $content;
475
+ exit;
476
+ }
477
+ }
478
+ }
479
+
480
+ function backupGuardMakeSymlinkFolder($filename)
481
  {
 
482
  $filename = backupGuardRemoveSlashes($filename);
483
 
484
  $downloaddir = SG_SYMLINK_PATH;
493
  $string = '';
494
 
495
  for ($i = 1; $i <= rand(4,12); $i++) {
496
+ $q = rand(1,24);
497
+ $string = $string.$letters[$q];
498
  }
499
 
500
  $handle = opendir($downloaddir);
510
  }
511
 
512
  closedir($handle);
 
513
  mkdir($downloaddir . $string, 0777);
514
+
515
+ return $string;
516
+ }
517
+
518
+ function backupGuardDownloadFileSymlink($safedir, $filename)
519
+ {
520
+ $downloaddir = SG_SYMLINK_PATH;
521
+ $downloadURL = SG_SYMLINK_URL;
522
+
523
+ $safedir = backupGuardRemoveSlashes($safedir);
524
+ $string = backupGuardMakeSymlinkFolder($filename);
525
+
526
  $res = @symlink($safedir . $filename, $downloaddir . $string . "/" . $filename);
527
  if ($res) {
528
  header('Content-Description: File Transfer');
com/core/notice/SGNoticeHandler.php CHANGED
@@ -12,8 +12,14 @@ class SGNoticeHandler
12
 
13
  private function checkTimeoutError()
14
  {
 
15
  if (SGConfig::get('SG_EXCEPTION_TIMEOUT_ERROR')) {
16
- SGNotice::getInstance()->addNoticeFromTemplate('timeout_error', SG_NOTICE_ERROR, true);
 
 
 
 
 
17
  }
18
  }
19
 
12
 
13
  private function checkTimeoutError()
14
  {
15
+ $pluginCapabilities = backupGuardGetCapabilities();
16
  if (SGConfig::get('SG_EXCEPTION_TIMEOUT_ERROR')) {
17
+ if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
18
+ SGNotice::getInstance()->addNoticeFromTemplate('timeout_error', SG_NOTICE_ERROR, true);
19
+ }
20
+ else {
21
+ SGNotice::getInstance()->addNoticeFromTemplate('timeout_free_error', SG_NOTICE_ERROR, true);
22
+ }
23
  }
24
  }
25
 
com/core/schedule/SGScheduleAdapterWordpress.php CHANGED
@@ -119,6 +119,6 @@ class SGScheduleAdapterWordpress implements SGIScheduleAdapter
119
 
120
  public static function isCronAvailable()
121
  {
122
- return defined('DISABLE_WP_CRON')?DISABLE_WP_CRON:true;
123
  }
124
  }
119
 
120
  public static function isCronAvailable()
121
  {
122
+ return defined('DISABLE_WP_CRON')?!DISABLE_WP_CRON:true;
123
  }
124
  }
com/lib/Request/SGRequestAdapterWordpress.php CHANGED
@@ -49,6 +49,21 @@ class SGRequestAdapterWordpress implements SGIRequestAdapter
49
  $this->params = $params;
50
  }
51
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  public function sendPostRequest()
53
  {
54
  $body = null;
@@ -58,12 +73,8 @@ class SGRequestAdapterWordpress implements SGIRequestAdapter
58
  $body = $this->params;
59
  }
60
 
61
- $args = array(
62
- 'headers' => $this->headers,
63
- 'sslverify' => false,
64
- 'body' => $body,
65
- 'stream' => $this->stream
66
- );
67
 
68
  $response = wp_remote_post($this->url, $args);
69
  if ($this->stream && !($response instanceof WP_Error)) {
@@ -91,11 +102,7 @@ class SGRequestAdapterWordpress implements SGIRequestAdapter
91
 
92
  public function sendGetRequest()
93
  {
94
- $args = array(
95
- 'headers' => $this->headers,
96
- 'sslverify' => false,
97
- 'stream' => $this->stream
98
- );
99
 
100
  if (count($this->params)) {
101
  $this->url = rtrim($this->url, '/').'/';
@@ -141,14 +148,10 @@ class SGRequestAdapterWordpress implements SGIRequestAdapter
141
  $body = $this->params;
142
  }
143
 
144
- $args = array(
145
- 'headers' => $this->headers,
146
- 'sslverify' => false,
147
- 'method' => $type,
148
- 'body' => $body,
149
- 'stream' => $this->stream
150
- );
151
-
152
  $response = wp_remote_request($this->url, $args);
153
  if ($this->stream && !($response instanceof WP_Error)) {
154
  $this->body = file_get_contents($response['filename']);
49
  $this->params = $params;
50
  }
51
 
52
+ public function getRequestArgs()
53
+ {
54
+ $args = array(
55
+ 'headers' => $this->headers,
56
+ 'sslverify' => false,
57
+ 'stream' => $this->stream
58
+ );
59
+
60
+ if (!function_exists("curl_init")) {
61
+ $args['sslverify'] = true;
62
+ }
63
+
64
+ return $args;
65
+ }
66
+
67
  public function sendPostRequest()
68
  {
69
  $body = null;
73
  $body = $this->params;
74
  }
75
 
76
+ $args = $this->getRequestArgs();
77
+ $args['body'] = $body;
 
 
 
 
78
 
79
  $response = wp_remote_post($this->url, $args);
80
  if ($this->stream && !($response instanceof WP_Error)) {
102
 
103
  public function sendGetRequest()
104
  {
105
+ $args = $this->getRequestArgs();
 
 
 
 
106
 
107
  if (count($this->params)) {
108
  $this->url = rtrim($this->url, '/').'/';
148
  $body = $this->params;
149
  }
150
 
151
+ $args = $this->getRequestArgs();
152
+ $args['body'] = $body;
153
+ $args['method'] = $type;
154
+
 
 
 
 
155
  $response = wp_remote_request($this->url, $args);
156
  if ($this->stream && !($response instanceof WP_Error)) {
157
  $this->body = file_get_contents($response['filename']);
com/lib/SGAuthClient.php CHANGED
@@ -109,6 +109,9 @@ class SGAuthClient
109
 
110
  public function isAnyLicenseAvailable($products)
111
  {
 
 
 
112
  foreach ($products as $product) {
113
  if (!$product['licenses']) {
114
  return true;
109
 
110
  public function isAnyLicenseAvailable($products)
111
  {
112
+ if (empty($products) || $products == -1) {
113
+ return false;
114
+ }
115
  foreach ($products as $product) {
116
  if (!$product['licenses']) {
117
  return true;
com/lib/SGReviewManager.php ADDED
@@ -0,0 +1,387 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SGReviewManager
4
+ {
5
+ public function renderContent()
6
+ {
7
+ $dontShowAgain = SGConfig::get('closeReviewBanner');
8
+ if ($dontShowAgain) {
9
+ return '';
10
+ }
11
+ // review with backup Count
12
+ $allowReviewCount = $this->isAllowToShowReviewByCount();
13
+ if ($allowReviewCount) {
14
+ // show review
15
+ $key = 'backupCount';
16
+ $backupCountReview = $this->getBackupCounts();
17
+ $customContent = 'Yay! We see that you have made '.$backupCountReview.' backups.';
18
+ echo $this->reviewContentMessage($customContent, $key);
19
+ return '';
20
+ }
21
+ // review after successfully restore
22
+ $isSuccessFullRestore = $this->isSuccessFullRestore();
23
+ if ($isSuccessFullRestore) {
24
+ // after successfully restore
25
+ $key = 'restoreCount';
26
+ $restoreReviewCount = $this->getBackupRestoreCounts();
27
+ $customContent = 'Yay! Congrats, you have restored your website for the '.$restoreReviewCount.' st time!';
28
+ echo $this->reviewContentMessage($customContent, $key);
29
+ return '';
30
+ }
31
+
32
+ // review after X days
33
+ $isAllowDaysReview = $this->isAllowDaysReview();
34
+ if ($isAllowDaysReview) {
35
+ $key = 'dayCount';
36
+ $usageDays = $this->getBackupUsageDays();
37
+ $customContent = 'Yay! You are a part of the BG team for over '.$usageDays.' days now! Hope you enjoy our service!';
38
+ echo $this->reviewContentMessage($customContent, $key);
39
+ return '';
40
+ }
41
+
42
+ return '';
43
+ }
44
+
45
+ public static function getBackupUsageDays()
46
+ {
47
+ $installDate = SGConfig::get('installDate');
48
+
49
+ $timeDate = new \DateTime('now');
50
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
51
+ $diff = $timeNow-$installDate;
52
+ $days = floor($diff/(60*60*24));
53
+
54
+ return $days;
55
+ }
56
+
57
+ public function reviewContentMessage($customContent, $type)
58
+ {
59
+ ob_start();
60
+ ?>
61
+ <style>
62
+ .sg-backup-buttons-wrapper .press{
63
+ box-sizing:border-box;
64
+ cursor:pointer;
65
+ display:inline-block;
66
+ margin:0;
67
+ padding:0.5em 0.75em;
68
+ text-decoration:none;
69
+ transition:background 0.15s linear
70
+ width: 148px;
71
+ height: 50px;
72
+ }
73
+ .sg-backup-buttons-wrapper .press-grey {
74
+ border:2px solid #FFFFFF;
75
+ color: #FFF;
76
+ }
77
+ .sg-backup-buttons-wrapper .press-lightblue {
78
+ background-color:#ffffff;
79
+ border:2px solid #FFFFFF;
80
+ color: rgba(0,29,182,1);
81
+ margin: 0 20px;
82
+ }
83
+ .sg-backup-buttons-wrapper .press-lightblue:hover {
84
+ background-color: rgba(0, 0, 0, 0);
85
+ color: #FFFFFF;
86
+ }
87
+ .sg-backup-buttons-wrapper {
88
+ text-align: center;
89
+ }
90
+ .sg-backup-review-wrapper {
91
+ position: relative;
92
+ text-align: center;
93
+ background-color: #001DB6;
94
+ height: 185px;
95
+ box-sizing: border-box;
96
+ background-image: url(<?php echo SG_IMAGE_URL.'reviewBg.png' ?>);
97
+ margin-top: 45px;
98
+ margin-right: 20px;
99
+ }
100
+ .sgpb-popup-dialog-main-div-wrapper .sg-backup-review-wrapper {
101
+ margin-top: 0px;
102
+ margin-right: 0px ;
103
+ }
104
+ .sgpb-popup-dialog-main-div-wrapper .banner-x {
105
+ display: none !important;
106
+ }
107
+ .sg-backup-review-wrapper p {
108
+ color: #FFFFFF;
109
+ }
110
+ .sg-backup-review-h1 {
111
+ font-size: 22px;
112
+ font-weight: normal;
113
+ line-height: 1.384;
114
+ }
115
+ .sg-backup-review-h2 {
116
+ font-size: 23px;
117
+ font-weight: bold;
118
+ color: #FFFFFF;
119
+ margin: 10px 0;
120
+ margin-top: 30px;
121
+ }
122
+ :root {
123
+ --main-bg-color: #1ac6ff;
124
+ }
125
+ .sg-backup-review-strong {
126
+ color: var(--main-bg-color);
127
+ }
128
+ .sg-backup-review-mt20 {
129
+ margin-top: 10px;
130
+ color: #FFFFFF !important;
131
+ margin-bottom: 20px;
132
+ }
133
+ .sg-backup-wow {
134
+ font-size: 35px;
135
+ color: #FFFFFF;
136
+ margin: 15px 0;
137
+ padding-top: 16px;
138
+ }
139
+ .sg-backup-review-button {
140
+ font-size: 15px !important;
141
+ font-weight: bold;
142
+ border-radius: 8px !important;
143
+ width: 120px !important;
144
+ height: 40px !important;
145
+ }
146
+ .sg-backup-button-1, .sg-backup-backup-button-2 {
147
+ background-color: rgba(0, 0, 0, 0) !important;
148
+ color: #ffffff !important;
149
+ }
150
+ .sg-backup-button-1:hover, .sg-backup-backup-button-2:hover {
151
+ background-color: #FFFFFF !important;
152
+ color: #001DB6 !important;
153
+ border: 2px solid #FFFFFF;
154
+ }
155
+ .sg-backup-custom-content {
156
+ color: #FFFFFF;
157
+ font-size: 20px;
158
+ margin: 14px 0;
159
+ }
160
+ .sg-backup-img-wrapper,
161
+ .sg-backup-review-description-wrapper {
162
+ display: inline-block;
163
+ }
164
+ .sg-backup-img-wrapper {
165
+ width: 256px;
166
+ float: left;
167
+ background-color: #FFFFFF;
168
+ height: 100%;
169
+ }
170
+ .sg-backup-review-description-wrapper {
171
+ max-width: 100%;
172
+ vertical-align: top;
173
+ }
174
+ .sgpb-popup-dialog-main-div-wrapper .sg-backup-review-description {
175
+ padding: 0 30px;
176
+ }
177
+ .banner-x {
178
+ position: absolute;
179
+ right: 14px;
180
+ top: 5px;
181
+ display: inline !important;
182
+ cursor: pointer;
183
+ width: auto !important;
184
+ height: auto !important;
185
+ }
186
+ .banner-x:hover {
187
+ background-color: #071cb6 !important;
188
+ color: #ffffff !important;
189
+ border: none !important;
190
+ }
191
+ @media (max-width: 1350px) {
192
+ .sg-backup-wow {
193
+ font-size: 27px;
194
+ }
195
+ .sgpb-popup-dialog-main-div-wrapper .sg-backup-review-description {
196
+ padding: 0 5px;
197
+ }
198
+ }
199
+
200
+ </style>
201
+ <div id="sg-backup-review-wrapper" class="sg-backup-review-wrapper">
202
+ <span class="banner-x sg-backup-review-button sg-backup-backup-button-2 sg-backup-show-popup-period" data-message-type="<?php echo $type; ?>">x</span>
203
+ <div class="sg-backup-img-wrapper">
204
+ <img src="<?php echo SG_IMAGE_URL; ?>sgBackupVerticalLogo.png" width="200px" height="181px">
205
+ </div>
206
+ <div class="sg-backup-review-description-wrapper">
207
+ <div class="sg-backup-review-description">
208
+ <!-- <h2 class="sg-backup-custom-content"></h2>-->
209
+ <h2 class="sg-backup-review-h2"><?php echo $customContent; ?></h2>
210
+ <p class="sg-backup-review-mt20"><?php _e('Have your input in the development of our plugin, and we’ll get better and happier. Leave your 5-star positive review and help <br> us go further to the perfection!'); ?></p>
211
+ </div>
212
+ <div class="sg-backup-buttons-wrapper">
213
+ <button class="press press-grey sg-backup-review-button sg-backup-button-1 sg-already-did-review"><?php _e('I already did'); ?></button>
214
+ <button class="press press-lightblue sg-backup-review-button sg-backup-button-3 sg-backup-you-worth-it"><?php _e('You worth it!'); ?></button>
215
+ <button class="press press-grey sg-backup-review-button sg-backup-backup-button-2 sg-backup-show-popup-period" data-message-type="<?php echo $type; ?>"><?php _e('Maybe later'); ?></button>
216
+ </div>
217
+ </div>
218
+ </div>
219
+ <script type="text/javascript">
220
+ var closeBackupGuardReviewPopup = function ()
221
+ {
222
+ if (window.backupGuardReviewPopup) {
223
+ window.backupGuardReviewPopup.close();
224
+ }
225
+ };
226
+ var sgBackupDontShowAgain = function() {
227
+ closeBackupGuardReviewPopup();
228
+ jQuery('.sg-backup-review-wrapper').remove();
229
+ var data = {
230
+ action: 'backup_guard_reviewDontShow',
231
+ token: BG_BACKUP_STRINGS.nonce
232
+ };
233
+ jQuery.post(ajaxurl, data, function () {
234
+ });
235
+ };
236
+ var backupGuardReviewBannerButtons = function() {
237
+ jQuery('.sg-backup-button-3').bind('click', function () {
238
+ sgBackupDontShowAgain();
239
+ window.open("<?php echo BACKUP_GUARD_WORDPRESS_REVIEW_URL; ?>")
240
+ });
241
+ jQuery('.sg-backup-button-1').bind('click', function () {
242
+ sgBackupDontShowAgain();
243
+ });
244
+ jQuery('.sg-backup-backup-button-2').bind('click', function () {
245
+ closeBackupGuardReviewPopup();
246
+ jQuery('.sg-backup-review-wrapper').remove();
247
+ var type = jQuery(this).data('message-type');
248
+
249
+ var data = {
250
+ action: 'backup_guard_review_later',
251
+ type: type,
252
+ token: BG_BACKUP_STRINGS.nonce
253
+ };
254
+ jQuery.post(ajaxurl, data, function () {
255
+ });
256
+ });
257
+ }
258
+ backupGuardReviewBannerButtons();
259
+
260
+ jQuery(window).bind('sgpbDidOpen', function() {
261
+ backupGuardReviewBannerButtons();
262
+ });
263
+ </script>
264
+ <?php
265
+ $content = ob_get_contents();
266
+ ob_end_clean();
267
+
268
+ return $content;
269
+ }
270
+
271
+ private function isAllowDaysReview()
272
+ {
273
+ $shouldOpen = false;
274
+ $periodNextTime = SGConfig::get('openNextTime');
275
+
276
+ $dontShowAgain = SGConfig::get('closeReviewBanner');
277
+ // When period next time does not exits it means the user is old
278
+ if (!$periodNextTime) {
279
+ $usageDays = $this->getBackupTableCreationDate();
280
+ SGConfig::set('usageDays', $usageDays);
281
+ // For old users
282
+ if (defined('SG_BACKUP_REVIEW_PERIOD') && $usageDays > SG_BACKUP_REVIEW_PERIOD && !$dontShowAgain) {
283
+ return true;
284
+ }
285
+
286
+ $remainingDays = SG_BACKUP_REVIEW_PERIOD - $usageDays;
287
+
288
+ $popupTimeZone = 'America/New_York';
289
+ $timeDate = new \DateTime('now', new DateTimeZone($popupTimeZone));
290
+ $timeDate->modify('+'.$remainingDays.' day');
291
+
292
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
293
+ SGConfig::set('openNextTime', $timeNow);
294
+
295
+ return false;
296
+ }
297
+
298
+ $currentData = new \DateTime('now');
299
+ $timeNow = $currentData->format('Y-m-d H:i:s');
300
+ $timeNow = strtotime($timeNow);
301
+
302
+ if ($periodNextTime < $timeNow) {
303
+ $shouldOpen = true;
304
+ }
305
+
306
+ return $shouldOpen;
307
+ }
308
+
309
+ private function getBackupTableCreationDate()
310
+ {
311
+ $sgdb = SGDatabase::getInstance();
312
+
313
+ $results = $sgdb->query('SELECT table_name, create_time FROM information_schema.tables WHERE table_schema="%s" AND table_name="%s"', array(DB_NAME, SG_ACTION_TABLE_NAME));
314
+
315
+ if (empty($results) || empty($results[0]['create_time'])) {
316
+ return 0;
317
+ }
318
+
319
+ $createTime = $results[0]['create_time'];
320
+ $createTime = strtotime($createTime);
321
+ SGConfig::set('installDate', $createTime);
322
+ $diff = time() - $createTime;
323
+ $days = floor($diff/(60*60*24));
324
+
325
+ return $days;
326
+ }
327
+
328
+ public static function getBackupCounts()
329
+ {
330
+ $sgdb = SGDatabase::getInstance();
331
+ $result = $sgdb->query('SELECT count(id) as countBackups FROM '.SG_ACTION_TABLE_NAME.' WHERE type='.SG_ACTION_TYPE_BACKUP.' AND status='.SG_ACTION_STATUS_FINISHED);
332
+
333
+ if (empty($result[0]['countBackups'])) {
334
+ return 0;
335
+ }
336
+
337
+ return (int)$result[0]['countBackups'];;
338
+ }
339
+
340
+ private function isAllowToShowReviewByCount()
341
+ {
342
+ $status = false;
343
+
344
+ $backupsCount = SGReviewManager::getBackupCounts();
345
+
346
+ if (empty($backupsCount)) {
347
+ return $status;
348
+ }
349
+
350
+ $backupCountReview = SGConfig::get('backupReviewCount');
351
+ if (empty($backupCountReview)) {
352
+ $backupCountReview = SG_BACKUP_REVIEW_BACKUP_COUNT;
353
+ }
354
+
355
+ return ($backupsCount >= $backupCountReview);
356
+ }
357
+
358
+ public static function getBackupRestoreCounts()
359
+ {
360
+ $sgdb = SGDatabase::getInstance();
361
+ $result = $sgdb->query('SELECT count(id) as countRestores FROM '.SG_ACTION_TABLE_NAME.' WHERE type='.SG_ACTION_TYPE_RESTORE.' AND status='.SG_ACTION_STATUS_FINISHED);
362
+
363
+ if (empty($result[0]['countRestores'])) {
364
+ return 0;
365
+ }
366
+
367
+ return (int)$result[0]['countRestores'];
368
+ }
369
+
370
+ private function isSuccessFullRestore()
371
+ {
372
+ $status = false;
373
+
374
+ $countRestores = SGReviewManager::getBackupRestoreCounts();
375
+
376
+ if (empty($countRestores)) {
377
+ return $status;
378
+ }
379
+
380
+ $restoreReviewCount = SGConfig::get('restoreReviewCount');
381
+ if (empty($restoreReviewCount)) {
382
+ $restoreReviewCount = SG_BACKUP_REVIEW_RESTORE_COUNT;
383
+ }
384
+
385
+ return ($countRestores >= $restoreReviewCount);
386
+ }
387
+ }
public/ajax/checkPHPVersionCompatibility.php CHANGED
@@ -6,6 +6,7 @@ require_once(SG_LIB_PATH.'SGArchive.php');
6
  if(backupGuardIsAjax() && count($_POST)) {
7
  try {
8
  $name = $_POST['bname'];
 
9
  $path = SG_BACKUP_DIRECTORY.$name.'/'.$name.'.sgbp';
10
 
11
  $sgArchive = new SGArchive($path, 'r');
6
  if(backupGuardIsAjax() && count($_POST)) {
7
  try {
8
  $name = $_POST['bname'];
9
+ $name = backupGuardRemoveSlashes($name);
10
  $path = SG_BACKUP_DIRECTORY.$name.'/'.$name.'.sgbp';
11
 
12
  $sgArchive = new SGArchive($path, 'r');
public/ajax/deleteBackup.php CHANGED
@@ -4,6 +4,7 @@
4
  if(isset($_POST['backupName']))
5
  {
6
  $backupName = backupGuardSanitizeTextField($_POST['backupName']);
 
7
  for ($i=0; $i < count($backupName) ; $i++) {
8
  SGBackup::deleteBackup($backupName[$i]);
9
  }
4
  if(isset($_POST['backupName']))
5
  {
6
  $backupName = backupGuardSanitizeTextField($_POST['backupName']);
7
+ $backupName = backupGuardRemoveSlashes($backupName);
8
  for ($i=0; $i < count($backupName) ; $i++) {
9
  SGBackup::deleteBackup($backupName[$i]);
10
  }
public/ajax/downloadBackup.php CHANGED
@@ -10,6 +10,7 @@
10
  $downloadType == SG_BACKUP_DOWNLOAD_TYPE_SGBP)
11
  {
12
  $backupName = $_GET['backupName'];
 
13
  try
14
  {
15
  SGBackup::download($backupName, $downloadType);
10
  $downloadType == SG_BACKUP_DOWNLOAD_TYPE_SGBP)
11
  {
12
  $backupName = $_GET['backupName'];
13
+ $backupName = backupGuardRemoveSlashes($backupName);
14
  try
15
  {
16
  SGBackup::download($backupName, $downloadType);
public/ajax/modalImport.php CHANGED
@@ -57,18 +57,16 @@
57
  </div>
58
  </div>
59
  <div class="col-md-12" id="modal-import-2">
60
- <div class="form-group">
61
- <label class="col-md-2 control-label sg-upload-label" for="textinput"><?php _backupGuardT('SGBP file')?></label>
62
- <div class="col-md-10">
63
- <div class="input-group">
64
- <span class="input-group-btn">
65
- <span class="btn btn-primary btn-file">
66
- <?php _backupGuardT('Browse')?>&hellip; <input class="sg-backup-upload-input" type="file" name="files[]" data-url="<?php echo admin_url('admin-ajax.php')."?action=backup_guard_importBackup" ?>" data-max-file-size="<?php echo backupGuardConvertToBytes($maxUploadSize.'B'); ?>">
67
- </span>
68
  </span>
69
- <input type="text" id="sg-import-file-name" class="form-control" readonly>
70
- </div>
71
- <br/>
72
  </div>
73
  </div>
74
  </div>
@@ -91,10 +89,10 @@
91
  <div class="clearfix"></div>
92
  </div>
93
  <div class="modal-footer">
94
- <button type="button" class="pull-left btn btn-default" id="switch-modal-import-pages-back" onclick="sgBackup.previousPage()"><?php _backupGuardT('Back')?></button>
95
- <button type="button" class="btn btn-default" id="sg-close-modal-import" data-dismiss="modal"><?php _backupGuardT("Close")?></button>
96
- <button type="button" class="btn btn-primary" id="switch-modal-import-pages-next" data-remote="importBackup" onclick="sgBackup.nextPage()"><?php _backupGuardT('Next')?></button>
97
- <button type="button" data-remote="importBackup" id="uploadSgbpFile" class="btn btn-primary"><?php _backupGuardT('Import')?></button>
98
  </div>
99
  </div>
100
  </div>
57
  </div>
58
  </div>
59
  <div class="col-md-12" id="modal-import-2">
60
+ <div class="form-group import-modal-popup-content">
61
+ <div class="col-md-9">
62
+ <input type="text" id="sg-import-file-name" class="form-control sg-backup-input" placeholder="<?php _backupGuardT('SGBP file')?>" readonly>
63
+ </div>
64
+ <div class="col-lg-3">
65
+ <span class="input-group-btn">
66
+ <span class="btn btn-primary btn-file backup-browse-btn">
67
+ <?php _backupGuardT('Browse')?>&hellip; <input class="sg-backup-upload-input" type="file" name="files[]" data-url="<?php echo admin_url('admin-ajax.php')."?action=backup_guard_importBackup" ?>" data-max-file-size="<?php echo backupGuardConvertToBytes($maxUploadSize.'B'); ?>">
68
  </span>
69
+ </span>
 
 
70
  </div>
71
  </div>
72
  </div>
89
  <div class="clearfix"></div>
90
  </div>
91
  <div class="modal-footer">
92
+ <button type="button" class="pull-left btn btn-primary" id="switch-modal-import-pages-back" onclick="sgBackup.previousPage()"><?php _backupGuardT('Back')?></button>
93
+ <span class="modal-close-button" id="sg-close-modal-import" data-dismiss="modal"><?php _backupGuardT("Close")?></span>
94
+ <button type="button" class="btn btn-success" id="switch-modal-import-pages-next" data-remote="importBackup" onclick="sgBackup.nextPage()"><?php _backupGuardT('Next')?></button>
95
+ <button type="button" data-remote="importBackup" id="uploadSgbpFile" class="btn btn-success"><?php _backupGuardT('Import')?></button>
96
  </div>
97
  </div>
98
  </div>
public/ajax/modalManualBackup.php CHANGED
@@ -24,7 +24,7 @@
24
  <!-- Multiple Radios -->
25
  <div class="form-group">
26
  <div class="col-md-12">
27
- <input type="text" name="sg-custom-backup-name" id="sg-custom-backup-name" placeholder="Custom backup name (optional)">
28
  </div>
29
  <div class="col-md-12">
30
  <div class="radio">
@@ -130,8 +130,8 @@
130
  </div>
131
  <div class="modal-footer">
132
  <input type="text" name="backup-type" value="<?php echo $backupType?>" hidden>
133
- <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
134
- <button type="button" onclick="sgBackup.manualBackup()" class="btn btn-primary"><?php _backupGuardT('Backup')?></button>
135
  </div>
136
  </form>
137
  </div>
24
  <!-- Multiple Radios -->
25
  <div class="form-group">
26
  <div class="col-md-12">
27
+ <input type="text" name="sg-custom-backup-name" id="sg-custom-backup-name" class="sg-backup-input" placeholder="Custom backup name (optional)">
28
  </div>
29
  <div class="col-md-12">
30
  <div class="radio">
130
  </div>
131
  <div class="modal-footer">
132
  <input type="text" name="backup-type" value="<?php echo $backupType?>" hidden>
133
+ <span class="modal-close-button" data-dismiss="modal">Close</span>
134
+ <button type="button" onclick="sgBackup.manualBackup()" class="btn btn-success"><?php _backupGuardT('Backup')?></button>
135
  </div>
136
  </form>
137
  </div>
public/ajax/modalManualRestore.php CHANGED
@@ -2,8 +2,10 @@
2
  require_once(dirname(__FILE__).'/../boot.php');
3
  require_once(SG_LIB_PATH.'SGArchive.php');
4
  $backupName = $_GET['param'];
 
5
  $backupPath = SG_BACKUP_DIRECTORY.$backupName;
6
  $backupPath= $backupPath.'/'.$backupName.'.sgbp';
 
7
  $archive = new SGArchive($backupPath,'r');
8
  $headers = $archive->getArchiveHeaders();
9
  if($headers["selectivRestoreable"]){
@@ -45,8 +47,8 @@
45
  </div>
46
  </div>
47
  <div class="modal-footer">
48
- <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
49
- <button type="button" onclick="sgBackup.startRestore('<?php echo $backupName ?>')" class="btn btn-primary"><?php _backupGuardT('Restore')?></button>
50
  </div>
51
  </form>
52
  </div>
@@ -62,7 +64,7 @@
62
  </div>
63
  <div class="modal-footer">
64
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
65
- <button type="button" onclick="sgBackup.startRestore('<?php echo $backupName ?>')" class="btn btn-primary"><?php _backupGuardT('Restore')?></button>
66
  </div>
67
  </div>
68
  </div>
2
  require_once(dirname(__FILE__).'/../boot.php');
3
  require_once(SG_LIB_PATH.'SGArchive.php');
4
  $backupName = $_GET['param'];
5
+ $backupName = backupGuardRemoveSlashes($backupName);
6
  $backupPath = SG_BACKUP_DIRECTORY.$backupName;
7
  $backupPath= $backupPath.'/'.$backupName.'.sgbp';
8
+
9
  $archive = new SGArchive($backupPath,'r');
10
  $headers = $archive->getArchiveHeaders();
11
  if($headers["selectivRestoreable"]){
47
  </div>
48
  </div>
49
  <div class="modal-footer">
50
+ <span class="modal-close-button" data-dismiss="modal">Close</span>
51
+ <button type="button" onclick="sgBackup.startRestore('<?php echo addslashes(htmlspecialchars($backupName)) ?>')" class="btn btn-success"><?php _backupGuardT('Restore')?></button>
52
  </div>
53
  </form>
54
  </div>
64
  </div>
65
  <div class="modal-footer">
66
  <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
67
+ <button type="button" onclick="sgBackup.startRestore('<?php echo htmlspecialchars($backupName) ?>')" class="btn btn-primary"><?php _backupGuardT('Restore')?></button>
68
  </div>
69
  </div>
70
  </div>
public/ajax/reviewBannerActions.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once(SG_LIB_PATH.'SGReviewManager.php');
3
+ $type = $_POST['type'];
4
+ if ($type == 'dayCount') {
5
+ $timeDate = new \DateTime('now');
6
+ $installTime = strtotime($timeDate->format('Y-m-d H:i:s'));
7
+ SGConfig::set('installDate', $installTime);
8
+ $timeDate->modify('+'.SG_BACKUP_REVIEW_PERIOD.' day');
9
+
10
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
11
+ SGConfig::set('openNextTime', $timeNow);
12
+
13
+ $usageDays = SGConfig::get('usageDays');
14
+ $usageDays += SG_BACKUP_REVIEW_PERIOD;
15
+ SGConfig::set('usageDays', $usageDays);
16
+ }
17
+ else if ($type == 'backupCount') {
18
+ $backupCountReview = SGConfig::get('backupReviewCount');
19
+ if (empty($backupCountReview)) {
20
+ $backupCountReview = SGReviewManager::getBackupCounts();
21
+ }
22
+ $backupCountReview += SG_BACKUP_REVIEW_BACKUP_COUNT;
23
+ SGConfig::set('backupReviewCount', $backupCountReview);
24
+ }
25
+ else if ($type == 'restoreCount') {
26
+ $restoreReviewCount = SGConfig::get('restoreReviewCount');
27
+ if (empty($restoreReviewCount)) {
28
+ $restoreReviewCount = SGReviewManager::getBackupRestoreCounts();
29
+ }
30
+ $restoreReviewCount += SG_BACKUP_REVIEW_RESTORE_COUNT;
31
+ SGConfig::set('restoreReviewCount', $restoreReviewCount);
32
+ }
public/ajax/settings.php CHANGED
@@ -52,6 +52,13 @@ if (backupGuardIsAjax() && count($_POST)) {
52
  SGConfig::set('SG_DISABLE_ADS', '0');
53
  }
54
 
 
 
 
 
 
 
 
55
  if (isset($_POST['sg-background-reload-method'])) {
56
  SGConfig::set('SG_BACKGROUND_RELOAD_METHOD', (int)$_POST['sg-background-reload-method']);
57
  }
52
  SGConfig::set('SG_DISABLE_ADS', '0');
53
  }
54
 
55
+ if (isset($_POST['sg-download-via-php'])) {
56
+ SGConfig::set('SG_DOWNLOAD_VIA_PHP', '1');
57
+ }
58
+ else {
59
+ SGConfig::set('SG_DOWNLOAD_VIA_PHP', '0');
60
+ }
61
+
62
  if (isset($_POST['sg-background-reload-method'])) {
63
  SGConfig::set('SG_BACKGROUND_RELOAD_METHOD', (int)$_POST['sg-background-reload-method']);
64
  }
public/backups.php CHANGED
@@ -6,10 +6,11 @@ require_once(SG_PUBLIC_INCLUDE_PATH.'sidebar.php');
6
  $backups = SGBackup::getAllBackups();
7
  $pluginCapabilities = backupGuardGetCapabilities();
8
  $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
 
 
9
  ?>
10
  <?php if(SGConfig::get('SG_REVIEW_POPUP_STATE') == SG_SHOW_REVIEW_POPUP): ?>
11
  <!-- Review Box -->
12
- <a href="javascript:void(0)" id="sg-review" class="hidden" data-toggle="modal" data-modal-name="manual-review" data-remote="modalReview"></a>
13
  <script type="text/javascript">sgShowReview = 1;</script>
14
  <?php endif; ?>
15
  <?php if(!SGConfig::get('SG_HIDE_VERIFICATION_POPUP_STATE') && ($pluginCapabilities == BACKUP_GUARD_CAPABILITIES_FREE)): ?>
@@ -87,8 +88,16 @@ $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
87
  <?php _backupGuardT('Migrate')?>
88
  </a>
89
 
90
- <a href="javascript:void(0)" id="sg-import" class="pull-right btn btn-primary" data-toggle="modal" data-modal-name="import" data-remote="modalImport"><i class="glyphicon glyphicon-open"></i> <?php _backupGuardT('Import')?></a>
 
 
 
 
91
 
 
 
 
 
92
  <div class="clearfix"></div><br/>
93
  <table class="table table-striped paginated sg-backup-table">
94
  <thead>
@@ -141,7 +150,7 @@ $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
141
  <a class="btn btn-danger btn-xs sg-cancel-backup" sg-data-backup-id="<?php echo $backup['id']?>" href="javascript:void(0)" title="<?php _backupGuardT('Stop')?>">&nbsp;<i class="glyphicon glyphicon-stop" aria-hidden="true"></i>&nbsp;</a>
142
  <?php endif; ?>
143
  <?php else: ?>
144
- <a href="javascript:void(0)" data-sgbackup-name="<?php echo $backup['name'];?>" data-remote="deleteBackup" class="btn btn-danger btn-xs sg-remove-backup" title="<?php _backupGuardT('Delete')?>">&nbsp;<i class="glyphicon glyphicon-remove" aria-hidden="true"></i>&nbsp;</a>
145
  <div class="btn-group">
146
  <a href="javascript:void(0)" class="btn btn-primary dropdown-toggle btn-xs" data-toggle="dropdown" aria-expanded="false" title="<?php _backupGuardT('Download')?>">
147
  &nbsp;<i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i>&nbsp;
@@ -150,14 +159,14 @@ $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
150
  <ul class="dropdown-menu">
151
  <?php if($backup['files']):?>
152
  <li>
153
- <a href="<?php echo $downloadUrl.'backupName='.@$backup['name'].'&downloadType='.SG_BACKUP_DOWNLOAD_TYPE_SGBP ?>">
154
  <i class="glyphicon glyphicon-hdd" aria-hidden="true"></i> <?php _backupGuardT('Backup')?>
155
  </a>
156
  </li>
157
  <?php endif;?>
158
  <?php if($backup['backup_log']):?>
159
  <li>
160
- <a href="<?php echo $downloadUrl.'backupName='.@$backup['name'].'&downloadType='.SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG ?>">
161
  <i class="glyphicon glyphicon-list-alt" aria-hidden="true"></i> <?php _backupGuardT('Backup log')?>
162
  </a>
163
  </li>
@@ -172,7 +181,7 @@ $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
172
  </ul>
173
  </div>
174
  <?php if(file_exists(SG_BACKUP_DIRECTORY.$backup['name'].'/'.$backup['name'].'.sgbp')):?>
175
- <a href="javascript:void(0)" title="<?php _backupGuardT('Restore')?>" class="btn btn-success btn-xs sg-restore-button" data-toggle="modal" data-modal-name="manual-restore" data-remote="modalManualRestore" data-sgbp-params="<?php echo $backup['name']?>">
176
  &nbsp;<i class="glyphicon glyphicon-repeat" aria-hidden="true"></i>&nbsp;
177
  </a>
178
  <?php endif;?>
6
  $backups = SGBackup::getAllBackups();
7
  $pluginCapabilities = backupGuardGetCapabilities();
8
  $downloadUrl = admin_url('admin-post.php?action=backup_guard_downloadBackup&');
9
+
10
+ $pluginCapabilities = backupGuardGetCapabilities();
11
  ?>
12
  <?php if(SGConfig::get('SG_REVIEW_POPUP_STATE') == SG_SHOW_REVIEW_POPUP): ?>
13
  <!-- Review Box -->
 
14
  <script type="text/javascript">sgShowReview = 1;</script>
15
  <?php endif; ?>
16
  <?php if(!SGConfig::get('SG_HIDE_VERIFICATION_POPUP_STATE') && ($pluginCapabilities == BACKUP_GUARD_CAPABILITIES_FREE)): ?>
88
  <?php _backupGuardT('Migrate')?>
89
  </a>
90
 
91
+ <a href="javascript:void(0)" id="sg-import" class="btn btn-primary sg-margin-left-20" data-toggle="modal" data-modal-name="import" data-remote="modalImport"><i class="glyphicon glyphicon-open"></i> <?php _backupGuardT('Import')?></a>
92
+ <?php if ($pluginCapabilities == BACKUP_GUARD_CAPABILITIES_FREE): ?>
93
+ <a href="<?php echo BACKUP_GUARD_WORDPRESS_SUPPORT_URL; ?>" target="_blank">
94
+ <button type="button" id="sg-report-problem-button" class="sg-button-red pull-right">
95
+ <i class="glyphicon glyphicon-alert"></i>
96
 
97
+ <?php _backupGuardT('Report issue')?>
98
+ </button>
99
+ </a>
100
+ <?php endif; ?>
101
  <div class="clearfix"></div><br/>
102
  <table class="table table-striped paginated sg-backup-table">
103
  <thead>
150
  <a class="btn btn-danger btn-xs sg-cancel-backup" sg-data-backup-id="<?php echo $backup['id']?>" href="javascript:void(0)" title="<?php _backupGuardT('Stop')?>">&nbsp;<i class="glyphicon glyphicon-stop" aria-hidden="true"></i>&nbsp;</a>
151
  <?php endif; ?>
152
  <?php else: ?>
153
+ <a href="javascript:void(0)" data-sgbackup-name="<?php echo htmlspecialchars($backup['name']);?>" data-remote="deleteBackup" class="btn btn-danger btn-xs sg-remove-backup" title="<?php _backupGuardT('Delete')?>">&nbsp;<i class="glyphicon glyphicon-remove" aria-hidden="true"></i>&nbsp;</a>
154
  <div class="btn-group">
155
  <a href="javascript:void(0)" class="btn btn-primary dropdown-toggle btn-xs" data-toggle="dropdown" aria-expanded="false" title="<?php _backupGuardT('Download')?>">
156
  &nbsp;<i class="glyphicon glyphicon-download-alt" aria-hidden="true"></i>&nbsp;
159
  <ul class="dropdown-menu">
160
  <?php if($backup['files']):?>
161
  <li>
162
+ <a href="<?php echo $downloadUrl.'backupName='.htmlspecialchars(@$backup['name']).'&downloadType='.SG_BACKUP_DOWNLOAD_TYPE_SGBP ?>">
163
  <i class="glyphicon glyphicon-hdd" aria-hidden="true"></i> <?php _backupGuardT('Backup')?>
164
  </a>
165
  </li>
166
  <?php endif;?>
167
  <?php if($backup['backup_log']):?>
168
  <li>
169
+ <a href="<?php echo $downloadUrl.'backupName='.htmlspecialchars(@$backup['name']).'&downloadType='.SG_BACKUP_DOWNLOAD_TYPE_BACKUP_LOG ?>">
170
  <i class="glyphicon glyphicon-list-alt" aria-hidden="true"></i> <?php _backupGuardT('Backup log')?>
171
  </a>
172
  </li>
181
  </ul>
182
  </div>
183
  <?php if(file_exists(SG_BACKUP_DIRECTORY.$backup['name'].'/'.$backup['name'].'.sgbp')):?>
184
+ <a href="javascript:void(0)" title="<?php _backupGuardT('Restore')?>" class="btn btn-success btn-xs sg-restore-button" data-toggle="modal" data-modal-name="manual-restore" data-remote="modalManualRestore" data-sgbp-params="<?php echo htmlspecialchars($backup['name']) ?>">
185
  &nbsp;<i class="glyphicon glyphicon-repeat" aria-hidden="true"></i>&nbsp;
186
  </a>
187
  <?php endif;?>
public/cloud.php CHANGED
@@ -29,7 +29,7 @@ $oneDriveInfo = SGConfig::get('SG_ONE_DRIVE_CONNECTION_STRING');
29
  </label>
30
 
31
  <div class="col-md-7 pull-right text-right">
32
- <input id="cloudFolder" name="cloudFolder" type="text" class="form-control input-md" value="<?php echo esc_html(SGConfig::get('SG_STORAGE_BACKUPS_FOLDER_NAME'))?>">
33
  <button type="button" id="sg-save-cloud-folder" class="btn btn-success pull-right"><?php _backupGuardT('Save');?></button>
34
  </div>
35
  </div>
29
  </label>
30
 
31
  <div class="col-md-7 pull-right text-right">
32
+ <input id="cloudFolder" name="cloudFolder" type="text" class="form-control input-md sg-backup-input" value="<?php echo esc_html(SGConfig::get('SG_STORAGE_BACKUPS_FOLDER_NAME'))?>">
33
  <button type="button" id="sg-save-cloud-folder" class="btn btn-success pull-right"><?php _backupGuardT('Save');?></button>
34
  </div>
35
  </div>
public/css/bgstyle.less.css CHANGED
@@ -1,9 +1,17 @@
1
  #sg-custom-backup-name {
2
  width: 100%;
 
 
 
 
 
 
 
 
3
  }
4
 
5
  .backup-guard-label-success {
6
- color: green;
7
  }
8
 
9
  .backup-guard-label-warning {
@@ -60,7 +68,7 @@
60
  margin-top: 10px;
61
  width: calc(100% - 20px) !important;
62
  height: 185px;
63
- background-color: #333;
64
  color: #FFFFFF;
65
  font-size: 12px;
66
  min-width: 650px;
@@ -91,12 +99,13 @@
91
 
92
  .sg-banner-social-button {
93
  display: inline-block;
94
- width: 32px;
95
- height: 32px;
96
  border: none;
97
  border-radius: 50%;
98
  cursor: pointer;
99
  margin-right: 3px;
 
100
  }
101
 
102
  #sg-banner p {
@@ -110,6 +119,7 @@
110
  text-decoration: none;
111
  color: #FFFFFF;
112
  cursor: pointer;
 
113
  }
114
 
115
  #sg-banner ul {
@@ -125,7 +135,7 @@
125
  #sg-right-column ul {
126
  float: right;
127
  padding-right: 16px;
128
- padding-top: 10px;
129
  }
130
 
131
  #sg-right-column li {
@@ -141,51 +151,40 @@
141
  }
142
 
143
  .sg-img-class {
144
- margin-right: 10px;
145
  vertical-align: middle;
146
  }
147
 
148
  #sg-logo {
149
  display: inline-block;
150
  width: 140px;
151
- height: 30px;
152
- background-size: 140px 30px;
 
153
  background-repeat: no-repeat;
154
- background-image: url("../img/logo-horizontal.png");
155
  }
156
 
157
- #sg-facebook {
158
- background: url('../img/fb.png') no-repeat;
159
  }
160
 
161
- #sg-facebook:hover {
162
- background-color: #3C5A96;
163
  }
164
 
165
  #sg-twitter {
166
  background: url("../img/TW.png") no-repeat;
167
  }
168
 
169
- #sg-twitter:hover {
170
- background-color: #2AA3EF;
171
- }
172
-
173
  #sg-google-plus {
174
  background: url("../img/G+.png") no-repeat;
175
  }
176
 
177
- #sg-google-plus:hover {
178
- background-color: #D9453D;
179
- }
180
-
181
  #sg-youtube {
182
  background: url("../img/youtube.png") no-repeat;
183
  }
184
 
185
- #sg-youtube:hover {
186
- background-color: #E32424;
187
- }
188
-
189
  .sg-star-class {
190
  cursor:pointer;
191
  margin-right: 3px;
@@ -196,18 +195,21 @@
196
  }
197
 
198
  #sg-buy-now {
199
- background-color: #951b17;
200
  border: none;
201
- color: #fff;
202
  font-size: 18px;
203
  vertical-align: middle;
204
  cursor: pointer;
205
  display: inline-block;
206
  padding: 6px 15px;
 
207
  }
208
 
209
  #sg-buy-now:hover {
210
- background-color: #2f8912;
 
 
211
  }
212
 
213
  #sg-buy-now-text {
@@ -233,6 +235,7 @@
233
  .sg-banner-rate-us-in {
234
  display: inline-block;
235
  height: 30px;
 
236
  }
237
 
238
  /* Bounce In */
@@ -1502,13 +1505,13 @@
1502
  line-height: inherit;
1503
  }
1504
  .sg-wrapper-less a {
1505
- color: #2780e3;
1506
  text-decoration: none;
1507
  }
1508
  .sg-wrapper-less a:hover,
1509
  .sg-wrapper-less a:focus {
1510
  color: #165ba8;
1511
- text-decoration: underline;
1512
  }
1513
  .sg-wrapper-less a:focus {
1514
  outline: thin dotted;
@@ -2988,7 +2991,7 @@
2988
  margin-bottom: 21px;
2989
  font-size: 22.5px;
2990
  line-height: inherit;
2991
- color: #333333;
2992
  border: 0;
2993
  border-bottom: 1px solid #e5e5e5;
2994
  }
@@ -3137,6 +3140,17 @@
3137
  margin-left: -20px;
3138
  margin-top: 4px \9;
3139
  }
 
 
 
 
 
 
 
 
 
 
 
3140
  .sg-wrapper-less .radio + .radio,
3141
  .sg-wrapper-less .checkbox + .checkbox {
3142
  margin-top: -5px;
@@ -3577,9 +3591,11 @@
3577
  background-color: #ffffff;
3578
  }
3579
  .sg-wrapper-less .btn-primary {
3580
- color: #ffffff;
3581
- background-color: #2780e3;
3582
- border-color: #2780e3;
 
 
3583
  }
3584
  .sg-wrapper-less .btn-primary:hover,
3585
  .sg-wrapper-less .btn-primary:focus,
@@ -3588,8 +3604,8 @@
3588
  .sg-wrapper-less .btn-primary.active,
3589
  .sg-wrapper-less .open > .dropdown-toggle.btn-primary {
3590
  color: #ffffff;
3591
- background-color: #1967be;
3592
- border-color: #1862b5;
3593
  }
3594
  .sg-wrapper-less .btn-primary:active,
3595
  .sg-wrapper-less .btn-primary.active,
@@ -3614,17 +3630,19 @@
3614
  .sg-wrapper-less .btn-primary.disabled.active,
3615
  .sg-wrapper-less .btn-primary[disabled].active,
3616
  .sg-wrapper-less fieldset[disabled] .btn-primary.active {
3617
- background-color: #2780e3;
3618
- border-color: #2780e3;
 
3619
  }
3620
  .sg-wrapper-less .btn-primary .badge {
3621
  color: #2780e3;
3622
  background-color: #ffffff;
3623
  }
3624
  .sg-wrapper-less .btn-success {
3625
- color: #ffffff;
3626
- background-color: #3fb618;
3627
- border-color: #3fb618;
 
3628
  }
3629
  .sg-wrapper-less .btn-success:hover,
3630
  .sg-wrapper-less .btn-success:focus,
@@ -3632,9 +3650,11 @@
3632
  .sg-wrapper-less .btn-success:active,
3633
  .sg-wrapper-less .btn-success.active,
3634
  .sg-wrapper-less .open > .dropdown-toggle.btn-success {
3635
- color: #ffffff;
3636
- background-color: #2f8912;
3637
- border-color: #2c8011;
 
 
3638
  }
3639
  .sg-wrapper-less .btn-success:active,
3640
  .sg-wrapper-less .btn-success.active,
@@ -3659,8 +3679,8 @@
3659
  .sg-wrapper-less .btn-success.disabled.active,
3660
  .sg-wrapper-less .btn-success[disabled].active,
3661
  .sg-wrapper-less fieldset[disabled] .btn-success.active {
3662
- background-color: #3fb618;
3663
- border-color: #3fb618;
3664
  }
3665
  .sg-wrapper-less .btn-success .badge {
3666
  color: #3fb618;
@@ -3758,8 +3778,9 @@
3758
  }
3759
  .sg-wrapper-less .btn-danger {
3760
  color: #ffffff;
3761
- background-color: #ff0039;
3762
- border-color: #ff0039;
 
3763
  }
3764
  .sg-wrapper-less .btn-danger:hover,
3765
  .sg-wrapper-less .btn-danger:focus,
@@ -3767,9 +3788,9 @@
3767
  .sg-wrapper-less .btn-danger:active,
3768
  .sg-wrapper-less .btn-danger.active,
3769
  .sg-wrapper-less .open > .dropdown-toggle.btn-danger {
3770
- color: #ffffff;
3771
- background-color: #cc002e;
3772
- border-color: #c2002b;
3773
  }
3774
  .sg-wrapper-less .btn-danger:active,
3775
  .sg-wrapper-less .btn-danger.active,
@@ -3964,7 +3985,7 @@
3964
  .sg-wrapper-less .dropdown-menu > li > a:focus {
3965
  text-decoration: none;
3966
  color: #ffffff;
3967
- background-color: #2780e3;
3968
  }
3969
  .sg-wrapper-less .dropdown-menu > .active > a,
3970
  .sg-wrapper-less .dropdown-menu > .active > a:hover,
@@ -4211,6 +4232,10 @@
4211
  clip: rect(0, 0, 0, 0);
4212
  pointer-events: none;
4213
  }
 
 
 
 
4214
  .sg-wrapper-less .input-group {
4215
  position: relative;
4216
  display: table;
@@ -6210,6 +6235,12 @@
6210
  .sg-wrapper-less .modal-open {
6211
  overflow: hidden;
6212
  }
 
 
 
 
 
 
6213
  .sg-wrapper-less .modal {
6214
  display: none;
6215
  overflow: hidden;
@@ -6221,6 +6252,10 @@
6221
  z-index: 1050;
6222
  -webkit-overflow-scrolling: touch;
6223
  outline: 0;
 
 
 
 
6224
  }
6225
  .sg-wrapper-less .modal.fade .modal-dialog {
6226
  -webkit-transform: translate(0, -25%);
@@ -6277,7 +6312,6 @@
6277
  }
6278
  .sg-wrapper-less .modal-header {
6279
  padding: 20px;
6280
- border-bottom: 1px solid #e5e5e5;
6281
  min-height: 16.42857143px;
6282
  }
6283
  .sg-wrapper-less .modal-header .close {
@@ -6286,6 +6320,8 @@
6286
  .sg-wrapper-less .modal-title {
6287
  margin: 0;
6288
  line-height: 1.42857143;
 
 
6289
  }
6290
  .sg-wrapper-less .modal-body {
6291
  position: relative;
@@ -6294,7 +6330,7 @@
6294
  .sg-wrapper-less .modal-footer {
6295
  padding: 20px;
6296
  text-align: right;
6297
- border-top: 1px solid #e5e5e5;
6298
  }
6299
  .sg-wrapper-less .modal-footer .btn + .btn {
6300
  margin-left: 5px;
@@ -7084,7 +7120,7 @@
7084
  }
7085
  .sg-wrapper-less .text-success,
7086
  .sg-wrapper-less .text-success:hover {
7087
- color: #3fb618;
7088
  }
7089
  .sg-wrapper-less .text-danger,
7090
  .sg-wrapper-less .text-danger:hover {
@@ -7246,9 +7282,9 @@
7246
  display: block;
7247
  }
7248
  .sg-wrapper-less select {
7249
- background: #ffffff url("../img/sgselect.png") no-repeat !important;
7250
  background-size: 24px 20px;
7251
- background-position: right center !important;
7252
  color: #888;
7253
  outline: none;
7254
  display: inline-block;
@@ -7260,20 +7296,25 @@
7260
  .sg-wrapper-less #sg-wrapper {
7261
  width: 100%;
7262
  min-width: 650px;
7263
- border: 1px #5c5c5c solid;
7264
- background-color: #333333;
7265
  }
7266
  .sg-wrapper-less #sg-sidebar-wrapper {
7267
  width: 210px;
7268
  float: left;
7269
  }
 
 
 
 
 
7270
  .sg-wrapper-less #sg-content-wrapper {
7271
  position: relative;
7272
  float: left;
7273
  width: calc(100% - 210px);
7274
  /*Same as sidebar*/
7275
  border-left: 1px #333333 solid;
7276
- min-height: 675px;
7277
  background-color: #ffffff;
7278
  }
7279
  .sg-wrapper-less .container-fluid {
@@ -7283,7 +7324,7 @@
7283
  .sg-wrapper-less .metro .sidebar {
7284
  margin: 0;
7285
  padding: 0;
7286
- background-color: #3D3D3D;
7287
  width: 100%;
7288
  /*height: 100%;*/
7289
  }
@@ -7295,7 +7336,7 @@
7295
  .sg-wrapper-less .metro .sidebar > ul li {
7296
  display: block;
7297
  border: 0;
7298
- border-bottom: 1px #5c5c5c solid;
7299
  position: relative;
7300
  }
7301
  .sg-wrapper-less .metro .sidebar > ul li.title {
@@ -7321,10 +7362,10 @@
7321
  padding: 10px 20px;
7322
  text-decoration: none;
7323
  color: #eeeeee;
7324
- background-color: #3D3D3D;
7325
  }
7326
  .sg-wrapper-less .metro .sidebar > ul li a:hover {
7327
- background-color: #262626;
7328
  color: #ffffff;
7329
  }
7330
  .sg-wrapper-less .metro .sidebar > ul li a.dropdown-toggle:after {
@@ -7354,8 +7395,8 @@
7354
  color: #555555;
7355
  }
7356
  .sg-wrapper-less .metro .sidebar > ul li.active a {
7357
- background-color: #9a1616;
7358
- color: #ffffff;
7359
  }
7360
  .sg-wrapper-less .metro .sidebar > ul ul {
7361
  margin: 0;
@@ -7891,3 +7932,78 @@
7891
  .form-group-custom {
7892
  display: none;
7893
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  #sg-custom-backup-name {
2
  width: 100%;
3
+ border-radius: 0;
4
+ }
5
+
6
+ .sg-backup-input {
7
+ border: none !important;
8
+ box-shadow: none !important;
9
+ border-bottom: 2px solid #000000 !important;
10
+ padding-left: 0 !important;
11
  }
12
 
13
  .backup-guard-label-success {
14
+ color: #0021C8;
15
  }
16
 
17
  .backup-guard-label-warning {
68
  margin-top: 10px;
69
  width: calc(100% - 20px) !important;
70
  height: 185px;
71
+ background-color: #0021C8;
72
  color: #FFFFFF;
73
  font-size: 12px;
74
  min-width: 650px;
99
 
100
  .sg-banner-social-button {
101
  display: inline-block;
102
+ width: 44px;
103
+ height: 44px;
104
  border: none;
105
  border-radius: 50%;
106
  cursor: pointer;
107
  margin-right: 3px;
108
+ background-size: contain !important;
109
  }
110
 
111
  #sg-banner p {
119
  text-decoration: none;
120
  color: #FFFFFF;
121
  cursor: pointer;
122
+ font-weight: bold;
123
  }
124
 
125
  #sg-banner ul {
135
  #sg-right-column ul {
136
  float: right;
137
  padding-right: 16px;
138
+ padding-top: 2px;
139
  }
140
 
141
  #sg-right-column li {
151
  }
152
 
153
  .sg-img-class {
154
+ margin-right: 3px;
155
  vertical-align: middle;
156
  }
157
 
158
  #sg-logo {
159
  display: inline-block;
160
  width: 140px;
161
+ height: 70px;
162
+ background-size: contain;
163
+ background-position: center;
164
  background-repeat: no-repeat;
165
+ background-image: url("../img/banerLogo.png");
166
  }
167
 
168
+ .sg-logo-li {
169
+ height: 70px !important;
170
  }
171
 
172
+ #sg-facebook {
173
+ background: url('../img/fb.png') no-repeat;
174
  }
175
 
176
  #sg-twitter {
177
  background: url("../img/TW.png") no-repeat;
178
  }
179
 
 
 
 
 
180
  #sg-google-plus {
181
  background: url("../img/G+.png") no-repeat;
182
  }
183
 
 
 
 
 
184
  #sg-youtube {
185
  background: url("../img/youtube.png") no-repeat;
186
  }
187
 
 
 
 
 
188
  .sg-star-class {
189
  cursor:pointer;
190
  margin-right: 3px;
195
  }
196
 
197
  #sg-buy-now {
198
+ background-color: #ffffff;
199
  border: none;
200
+ color: #0021C8 !important;
201
  font-size: 18px;
202
  vertical-align: middle;
203
  cursor: pointer;
204
  display: inline-block;
205
  padding: 6px 15px;
206
+ border-radius: 8px;
207
  }
208
 
209
  #sg-buy-now:hover {
210
+ background-color: #0021C8;
211
+ border: 1px solid #ffffff !important;
212
+ color: #ffffff !important;
213
  }
214
 
215
  #sg-buy-now-text {
235
  .sg-banner-rate-us-in {
236
  display: inline-block;
237
  height: 30px;
238
+ color:rgba(255,255,255, 0.8) !important;
239
  }
240
 
241
  /* Bounce In */
1505
  line-height: inherit;
1506
  }
1507
  .sg-wrapper-less a {
1508
+ color: #0021C8;
1509
  text-decoration: none;
1510
  }
1511
  .sg-wrapper-less a:hover,
1512
  .sg-wrapper-less a:focus {
1513
  color: #165ba8;
1514
+ text-decoration: none;
1515
  }
1516
  .sg-wrapper-less a:focus {
1517
  outline: thin dotted;
2991
  margin-bottom: 21px;
2992
  font-size: 22.5px;
2993
  line-height: inherit;
2994
+ color: #000000;
2995
  border: 0;
2996
  border-bottom: 1px solid #e5e5e5;
2997
  }
3140
  margin-left: -20px;
3141
  margin-top: 4px \9;
3142
  }
3143
+ .sg-wrapper-less input[type=radio]:checked,
3144
+ .sg-wrapper-less .radio input[type="radio"],
3145
+ .sg-wrapper-less .checkbox input[type="checkbox"] {
3146
+ background-color: #efefef;
3147
+ }
3148
+ .sg-wrapper-less input[type=radio]:checked:before {
3149
+ background-color: #0021C8;
3150
+ }
3151
+ .sg-wrapper-less .checkbox input[type="checkbox"]:checked {
3152
+ background-color: #072dc3;
3153
+ }
3154
  .sg-wrapper-less .radio + .radio,
3155
  .sg-wrapper-less .checkbox + .checkbox {
3156
  margin-top: -5px;
3591
  background-color: #ffffff;
3592
  }
3593
  .sg-wrapper-less .btn-primary {
3594
+ color: #0021C8;
3595
+ background-color: #ffffff;
3596
+ border-color: #0021C8;
3597
+ border-radius: 8px;
3598
+ font-weight: bold;
3599
  }
3600
  .sg-wrapper-less .btn-primary:hover,
3601
  .sg-wrapper-less .btn-primary:focus,
3604
  .sg-wrapper-less .btn-primary.active,
3605
  .sg-wrapper-less .open > .dropdown-toggle.btn-primary {
3606
  color: #ffffff;
3607
+ background-color: #0021C8;
3608
+ border-color: #ffffff;
3609
  }
3610
  .sg-wrapper-less .btn-primary:active,
3611
  .sg-wrapper-less .btn-primary.active,
3630
  .sg-wrapper-less .btn-primary.disabled.active,
3631
  .sg-wrapper-less .btn-primary[disabled].active,
3632
  .sg-wrapper-less fieldset[disabled] .btn-primary.active {
3633
+ background-color: #ffffff;
3634
+ border-color: #989898;
3635
+ color: #C9C9C9;
3636
  }
3637
  .sg-wrapper-less .btn-primary .badge {
3638
  color: #2780e3;
3639
  background-color: #ffffff;
3640
  }
3641
  .sg-wrapper-less .btn-success {
3642
+ color: #ffffff !important;
3643
+ background-color: #0021C8;
3644
+ border-color: #0021C8;
3645
+ border-radius: 8px;
3646
  }
3647
  .sg-wrapper-less .btn-success:hover,
3648
  .sg-wrapper-less .btn-success:focus,
3650
  .sg-wrapper-less .btn-success:active,
3651
  .sg-wrapper-less .btn-success.active,
3652
  .sg-wrapper-less .open > .dropdown-toggle.btn-success {
3653
+ color: #0021C8 !important;
3654
+ background-color: #ffffff;
3655
+ border-color: #0021C8;
3656
+ box-shadow: none;
3657
+ text-decoration: none !important;
3658
  }
3659
  .sg-wrapper-less .btn-success:active,
3660
  .sg-wrapper-less .btn-success.active,
3679
  .sg-wrapper-less .btn-success.disabled.active,
3680
  .sg-wrapper-less .btn-success[disabled].active,
3681
  .sg-wrapper-less fieldset[disabled] .btn-success.active {
3682
+ background-color: rgba(0, 33, 200, 0.2);
3683
+ border-color: rgba(0, 33, 200, 0.2);
3684
  }
3685
  .sg-wrapper-less .btn-success .badge {
3686
  color: #3fb618;
3778
  }
3779
  .sg-wrapper-less .btn-danger {
3780
  color: #ffffff;
3781
+ background-color: #C20000;
3782
+ border-color: #C20000;
3783
+ border-radius: 8px;
3784
  }
3785
  .sg-wrapper-less .btn-danger:hover,
3786
  .sg-wrapper-less .btn-danger:focus,
3788
  .sg-wrapper-less .btn-danger:active,
3789
  .sg-wrapper-less .btn-danger.active,
3790
  .sg-wrapper-less .open > .dropdown-toggle.btn-danger {
3791
+ color: #C20000;
3792
+ background-color: #ffffff;
3793
+ border-color: #C20000;
3794
  }
3795
  .sg-wrapper-less .btn-danger:active,
3796
  .sg-wrapper-less .btn-danger.active,
3985
  .sg-wrapper-less .dropdown-menu > li > a:focus {
3986
  text-decoration: none;
3987
  color: #ffffff;
3988
+ background-color: #0021C8;
3989
  }
3990
  .sg-wrapper-less .dropdown-menu > .active > a,
3991
  .sg-wrapper-less .dropdown-menu > .active > a:hover,
4232
  clip: rect(0, 0, 0, 0);
4233
  pointer-events: none;
4234
  }
4235
+
4236
+ .sg-wrapper-less input[type=radio]:checked:before {
4237
+ color: #0021c8 !important;
4238
+ }
4239
  .sg-wrapper-less .input-group {
4240
  position: relative;
4241
  display: table;
6235
  .sg-wrapper-less .modal-open {
6236
  overflow: hidden;
6237
  }
6238
+ .modal-close-button {
6239
+ display: inline-block;
6240
+ margin-right: 15px;
6241
+ color: #000000;
6242
+ cursor: pointer;
6243
+ }
6244
  .sg-wrapper-less .modal {
6245
  display: none;
6246
  overflow: hidden;
6252
  z-index: 1050;
6253
  -webkit-overflow-scrolling: touch;
6254
  outline: 0;
6255
+ max-width: none;
6256
+ width: 100%;
6257
+ background: none;
6258
+ padding: 0;
6259
  }
6260
  .sg-wrapper-less .modal.fade .modal-dialog {
6261
  -webkit-transform: translate(0, -25%);
6312
  }
6313
  .sg-wrapper-less .modal-header {
6314
  padding: 20px;
 
6315
  min-height: 16.42857143px;
6316
  }
6317
  .sg-wrapper-less .modal-header .close {
6320
  .sg-wrapper-less .modal-title {
6321
  margin: 0;
6322
  line-height: 1.42857143;
6323
+ color: #000000;
6324
+ font-weight: bold;
6325
  }
6326
  .sg-wrapper-less .modal-body {
6327
  position: relative;
6330
  .sg-wrapper-less .modal-footer {
6331
  padding: 20px;
6332
  text-align: right;
6333
+ background-color: #f8f8f8;
6334
  }
6335
  .sg-wrapper-less .modal-footer .btn + .btn {
6336
  margin-left: 5px;
7120
  }
7121
  .sg-wrapper-less .text-success,
7122
  .sg-wrapper-less .text-success:hover {
7123
+ color: #0021C8;
7124
  }
7125
  .sg-wrapper-less .text-danger,
7126
  .sg-wrapper-less .text-danger:hover {
7282
  display: block;
7283
  }
7284
  .sg-wrapper-less select {
7285
+ background: #ffffff url("../img/select-arrow.png") no-repeat !important;
7286
  background-size: 24px 20px;
7287
+ background-position: right 5px bottom 45% !important;
7288
  color: #888;
7289
  outline: none;
7290
  display: inline-block;
7296
  .sg-wrapper-less #sg-wrapper {
7297
  width: 100%;
7298
  min-width: 650px;
7299
+ border: 1px #ffffff solid;
7300
+ background-color: #0021C8;
7301
  }
7302
  .sg-wrapper-less #sg-sidebar-wrapper {
7303
  width: 210px;
7304
  float: left;
7305
  }
7306
+
7307
+ .sg-wrapper-less #sg-sidebar-wrapper a:focus {
7308
+ box-shadow: none !important;
7309
+ outline: 0px solid #cccccc !important;
7310
+ }
7311
  .sg-wrapper-less #sg-content-wrapper {
7312
  position: relative;
7313
  float: left;
7314
  width: calc(100% - 210px);
7315
  /*Same as sidebar*/
7316
  border-left: 1px #333333 solid;
7317
+ min-height: 680px;
7318
  background-color: #ffffff;
7319
  }
7320
  .sg-wrapper-less .container-fluid {
7324
  .sg-wrapper-less .metro .sidebar {
7325
  margin: 0;
7326
  padding: 0;
7327
+ background-color: #0021C8;
7328
  width: 100%;
7329
  /*height: 100%;*/
7330
  }
7336
  .sg-wrapper-less .metro .sidebar > ul li {
7337
  display: block;
7338
  border: 0;
7339
+ border-bottom: 1px rgba(255, 255, 255, 0.2) solid;
7340
  position: relative;
7341
  }
7342
  .sg-wrapper-less .metro .sidebar > ul li.title {
7362
  padding: 10px 20px;
7363
  text-decoration: none;
7364
  color: #eeeeee;
7365
+ background-color: #0021C8;
7366
  }
7367
  .sg-wrapper-less .metro .sidebar > ul li a:hover {
7368
+ background-color: #02146E;
7369
  color: #ffffff;
7370
  }
7371
  .sg-wrapper-less .metro .sidebar > ul li a.dropdown-toggle:after {
7395
  color: #555555;
7396
  }
7397
  .sg-wrapper-less .metro .sidebar > ul li.active a {
7398
+ background-color: #ffffff;
7399
+ color: #0021C8;
7400
  }
7401
  .sg-wrapper-less .metro .sidebar > ul ul {
7402
  margin: 0;
7932
  .form-group-custom {
7933
  display: none;
7934
  }
7935
+ .schedule-modal-close {
7936
+ margin-top: 10px;
7937
+ }
7938
+ #manualBackup {
7939
+ margin-bottom: 0;
7940
+ }
7941
+ .backup-browse-btn {
7942
+ border: none !important;
7943
+ color: #000000 !important;
7944
+ font-weight: 500 !important;
7945
+ }
7946
+ .backup-browse-btn:hover {
7947
+ background-color: #ffffff !important;
7948
+ color: #000000 !important;
7949
+ }
7950
+ input.sg-backup-input[readonly] {
7951
+ background-color: rgba(255, 255, 255, 0.2) !important;
7952
+ }
7953
+ .bg-import-browse-button {
7954
+ margin-left: 2px;
7955
+ }
7956
+ .import-modal-popup-content {
7957
+ margin-bottom: 90px !important;
7958
+ }
7959
+ .backup-browse-btn:active {
7960
+ box-shadow: none !important;
7961
+ }
7962
+ .sg-button-red {
7963
+ border: 1px solid #C20000;
7964
+ color: #C20000 !important;
7965
+ display: inline-block;
7966
+ background-color: transparent;
7967
+ border-radius: 8px;
7968
+ cursor: pointer;
7969
+ padding: 10px 18px;
7970
+ text-transform: uppercase;
7971
+ outline: 0;
7972
+ transition: background-color .2s ease-out;
7973
+ text-decoration: none;
7974
+ font-weight: bold !important;
7975
+ }
7976
+
7977
+ .sg-button-red:hover {
7978
+ background-color: #C20000;
7979
+ color: #FFFFFF !important;
7980
+ }
7981
+
7982
+ .sg-red-color {
7983
+ color: #C20000 !important;
7984
+ }
7985
+
7986
+ .sg-black-color {
7987
+ color: black !important;
7988
+ }
7989
+
7990
+ .sg-notice-error-h2 {
7991
+ margin-bottom: 5px;
7992
+ margin-top: 0;
7993
+ }
7994
+
7995
+ .sg-error-notice-wrapper {
7996
+ text-align: center;
7997
+ }
7998
+
7999
+ .sg-notice-contact-wrapper {
8000
+ margin-top: 0px !important;
8001
+ }
8002
+
8003
+ .sg-notice-error-p {
8004
+ margin-top: 2px !important;
8005
+ }
8006
+
8007
+ .sg-error-notice-h2-first {
8008
+ font-size: 1.8em;
8009
+ }
public/css/bootstrap-switch.min.css CHANGED
@@ -19,4 +19,4 @@
19
  * ========================================================================
20
  */
21
 
22
- .bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid;border-color:#ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block !important;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type='radio'],.bootstrap-switch input[type='checkbox']{position:absolute !important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type='radio'].form-control,.bootstrap-switch input[type='checkbox'].form-control{height:auto}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.33}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-readonly,.bootstrap-switch.bootstrap-switch-indeterminate{cursor:default !important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default !important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-bottom-left-radius:0;border-top-left-radius:0;border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-bottom-right-radius:0;border-top-right-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
19
  * ========================================================================
20
  */
21
 
22
+ .bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid;border-color:#ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block !important;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-handle-off{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary{color:#fff;background:#0021C8}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default{color:#989898;background:#C9C9C9}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type='radio'],.bootstrap-switch input[type='checkbox']{position:absolute !important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type='radio'].form-control,.bootstrap-switch input[type='checkbox'].form-control{height:auto}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.33}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-readonly,.bootstrap-switch.bootstrap-switch-indeterminate{cursor:default !important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default !important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-bottom-left-radius:0;border-top-left-radius:0;border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-bottom-right-radius:0;border-top-right-radius:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
public/css/deactivationSurvey.css CHANGED
@@ -196,3 +196,9 @@
196
  min-height: 90px;
197
  max-height: 200px;
198
  }
 
 
 
 
 
 
196
  min-height: 90px;
197
  max-height: 200px;
198
  }
199
+
200
+ @media only screen and (max-width: 740px) {
201
+ .bg-deactivation-survey-popup-container .bg-deactivation-survey-popup-tbl .bg-deactivation-survey-popup-cel .bg-deactivation-survey-popup-content h3 {
202
+ line-height: 1.1;
203
+ }
204
+ }
public/css/popupTheme.css ADDED
@@ -0,0 +1,3333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .sgpb-theme-1-overlay {
2
+ background: url(data:image/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAAAAAAeW/F+AAAAOklEQVR4Ae3QIQrAUADD0Lj2AIV//5uO+RE59asKz4U177rz9VAdqkU1qAbVoBpUg2pR3V/VbrVb7QHULigVcx3ZmQAAAABJRU5ErkJggg==)
3
+ }
4
+
5
+ .sgpb-theme-6-overlay {
6
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCMEM4NDgzQjlDRTNFMTExODE4NUVDOTdFQ0I0RDgxRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGREU5OEVCQzAzMjYxMUUyOTg5OURDMDlDRTJDMTc0RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGREU5OEVCQjAzMjYxMUUyOTg5OURDMDlDRTJDMTc0RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIxQzg0ODNCOUNFM0UxMTE4MTg1RUM5N0VDQjREODFFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwQzg0ODNCOUNFM0UxMTE4MTg1RUM5N0VDQjREODFFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+s3YRAQAAABtJREFUeNpiFODh2cBABGBiIBKMKqSOQoAAAwBokQDs5F/8FAAAAABJRU5ErkJggg==)
7
+ }
8
+
9
+ #sgpb-popup-dialog-main-div-wrapper #sgpb-close-button {
10
+ padding: 0 !important;
11
+ color: #444 !important;
12
+ border: 0 !important;
13
+ margin: 0 !important;
14
+ overflow: visible !important;
15
+ width: auto !important;
16
+ background: none !important;
17
+ text-shadow: 0px 0px 2px #fff !important
18
+ }
19
+
20
+ #sgpb-popup-dialog-main-div-wrapper #sgpb-close-button:active {
21
+ outline: 0 !important
22
+ }
23
+
24
+ .sgpb-popup-dialog-main-div-wrapper iframe {
25
+ border: none !important
26
+ }
27
+
28
+ #popup-dialog-main-div div {
29
+ margin-bottom: 43px
30
+ }
31
+
32
+ .popup-main-wrapper div:after {
33
+ background-color: #E6E5E5;
34
+ content: '';
35
+ display: block;
36
+ position: absolute;
37
+ left: 5px;
38
+ right: 5px;
39
+ bottom: 5px;
40
+ z-index: 99999999999999999999999999999999999999999;
41
+ height: 43px
42
+ }
43
+
44
+ #content-div {
45
+ border: 12px solid #4B4B4B
46
+ }
47
+
48
+ .sgpb-theme-5-content {
49
+ border-bottom: 34px solid #E6E5E5 !important
50
+ }
51
+
52
+ .sgpb-scroll-wrapper {
53
+ width: 100%;
54
+ height: 100%;
55
+ overflow: hidden;
56
+ -webkit-overflow-scrolling: touch
57
+ }
58
+
59
+ .sgpb-scroll-wrapper iframe {
60
+ margin: 0 !important;
61
+ width: 1px !important;
62
+ min-width: 100% !important;
63
+ height: 100% !important
64
+ }
65
+
66
+ .sgpb-video-iframe-wrapper {
67
+ width: 100%;
68
+ height: 100%;
69
+ overflow: hidden;
70
+ -webkit-overflow-scrolling: touch
71
+ }
72
+
73
+ .sgpb-video-iframe-wrapper iframe {
74
+ margin: 0 !important;
75
+ width: 100%;
76
+ height: 100%;
77
+ border: none
78
+ }
79
+
80
+ .sgpb-video-error-message-wrapper h1 {
81
+ text-align: center
82
+ }
83
+
84
+ .sgpb-video-error-message-wrapper h3:last-child {
85
+ padding: 0
86
+ }
87
+
88
+ #sgpb-yes-button,
89
+ #sgpb-no-button {
90
+ text-transform: none !important
91
+ }
92
+
93
+ .sg-fb-buttons-wrapper {
94
+ text-align: center;
95
+ min-height: 25px
96
+ }
97
+
98
+ @media only screen and (max-width: 600px) {
99
+ .sgpb-scroll-wrapper {
100
+ overflow: auto !important
101
+ }
102
+ }
103
+
104
+ @media (min-width: 600px) {
105
+ .sgpb-fb-wrapper-standard {
106
+ min-width: 450px !important;
107
+ overflow: hidden
108
+ }
109
+ }
110
+
111
+ @media (min-width: 521px) and (max-width: 599px) {
112
+ .sgpb-fb-wrapper-standard {
113
+ min-width: 450px !important;
114
+ overflow: scroll
115
+ }
116
+ #sg-facebook-like {
117
+ overflow: hidden
118
+ }
119
+ }
120
+
121
+ @media (max-width: 520px) {
122
+ .sgpb-fb-wrapper-standard {
123
+ min-width: 380px !important;
124
+ max-width: 380px !important;
125
+ overflow: hidden
126
+ }
127
+ .sgpb-fb-wrapper-standard .fb-like {
128
+ max-width: 380px !important
129
+ }
130
+ #sg-facebook-like {
131
+ overflow: hidden
132
+ }
133
+ }
134
+
135
+ @media (max-width: 420px) {
136
+ .sgpb-fb-wrapper-standard {
137
+ min-width: 350px !important;
138
+ max-width: 350px !important;
139
+ overflow: hidden
140
+ }
141
+ }
142
+
143
+ @media (max-width: 400px) {
144
+ .sgpb-fb-wrapper-standard {
145
+ min-width: 330px !important;
146
+ max-width: 330px !important;
147
+ overflow: scroll
148
+ }
149
+ }
150
+
151
+ @media (max-width: 320px) {
152
+ .sgpb-fb-wrapper-standard {
153
+ min-width: 270px !important;
154
+ max-width: 270px !important;
155
+ overflow: scroll
156
+ }
157
+ }
158
+
159
+ .sg-hide-element {
160
+ display: none
161
+ }
162
+
163
+ a.sg-show-popup {
164
+ cursor: pointer !important
165
+ }
166
+
167
+ .sgpb-cursor-pointer {
168
+ cursor: pointer
169
+ }
170
+
171
+
172
+ /*/*/
173
+
174
+ .sgpb-theme-1-content {
175
+ border-radius: 6px;
176
+ padding-bottom: 0;
177
+ box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 0px 14px !important;
178
+ border-bottom-width: 35px !important;
179
+ border-bottom-color: #fff !important
180
+ }
181
+
182
+ .sgpb-theme-4-content {
183
+ padding-bottom: 0;
184
+ border-radius: 7px !important;
185
+ border-bottom-width: 35px !important;
186
+ border-bottom-color: #fff !important
187
+ }
188
+
189
+ .sgpb-popup-close-button-4 {
190
+ height: auto !important
191
+ }
192
+
193
+ .sgpb-popup-dialog-main-div-theme-wrapper-5 {
194
+ border: 8px solid #555;
195
+ outline: 1px solid #8A8A8A;
196
+ background-color: #707070
197
+ }
198
+
199
+ .sgpb-theme-5-content {
200
+ border-radius: 3px !important;
201
+ box-shadow: 0 0 10px #222 !important
202
+ }
203
+
204
+ .sgpb-theme-6-content {
205
+ box-shadow: #646161 0px 0px 8px 3px !important
206
+ }
207
+
208
+ .sgpb-popup-close-button-1:hover,
209
+ .sgpb-popup-close-button-2:hover,
210
+ .sgpb-popup-close-button-5:hover {
211
+ opacity: 0.8
212
+ }
213
+
214
+ .sgpb-popup-close-button-3:hover {
215
+ opacity: 0.9
216
+ }
217
+
218
+ .sgpb-popup-close-button-2 {
219
+ border-radius: 2px
220
+ }
221
+
222
+ .sgpb-main-image-content-wrapper img {
223
+ height: auto;
224
+ max-width: 100%
225
+ }
226
+
227
+ .sgpb-overflow-hidden {
228
+ overflow: hidden !important
229
+ }
230
+
231
+ .sgpb-popup-content-direction-right {
232
+ direction: rtl !important
233
+ }
234
+
235
+ .sgpb-popup-content-direction-right input[type="url"],
236
+ .sgpb-popup-content-direction-right input[type="email"],
237
+ .sgpb-popup-content-direction-right .sg-fb-buttons-wrapper,
238
+ .sgpb-popup-content-direction-right .sgpb-alert {
239
+ text-align: right !important
240
+ }
241
+
242
+
243
+ /**/
244
+
245
+ @charset "UTF-8";
246
+ .sg-animated {
247
+ -webkit-animation-duration: 1s;
248
+ animation-duration: 1s;
249
+ -webkit-animation-fill-mode: none;
250
+ animation-fill-mode: none
251
+ }
252
+
253
+ .sg-animated.infinite {
254
+ -webkit-animation-iteration-count: infinite;
255
+ animation-iteration-count: infinite
256
+ }
257
+
258
+ .sg-animated.hinge {
259
+ -webkit-animation-duration: 2s;
260
+ animation-duration: 2s
261
+ }
262
+
263
+ .sg-animated.bounceIn,
264
+ .sg-animated.bounceOut,
265
+ .sg-animated.flipOutX,
266
+ .sg-animated.flipOutY {
267
+ -webkit-animation-duration: .75s;
268
+ animation-duration: .75s
269
+ }
270
+
271
+ @-webkit-keyframes bounce {
272
+ 20%,
273
+ 53%,
274
+ 80%,
275
+ from,
276
+ to {
277
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
278
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1);
279
+ -webkit-transform: translate3d(0, 0, 0);
280
+ transform: translate3d(0, 0, 0)
281
+ }
282
+ 40%,
283
+ 43% {
284
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
285
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
286
+ -webkit-transform: translate3d(0, -30px, 0);
287
+ transform: translate3d(0, -30px, 0)
288
+ }
289
+ 70% {
290
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
291
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
292
+ -webkit-transform: translate3d(0, -15px, 0);
293
+ transform: translate3d(0, -15px, 0)
294
+ }
295
+ 90% {
296
+ -webkit-transform: translate3d(0, -4px, 0);
297
+ transform: translate3d(0, -4px, 0)
298
+ }
299
+ }
300
+
301
+ @keyframes bounce {
302
+ 20%,
303
+ 53%,
304
+ 80%,
305
+ from,
306
+ to {
307
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
308
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1);
309
+ -webkit-transform: translate3d(0, 0, 0);
310
+ transform: translate3d(0, 0, 0)
311
+ }
312
+ 40%,
313
+ 43% {
314
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
315
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
316
+ -webkit-transform: translate3d(0, -30px, 0);
317
+ transform: translate3d(0, -30px, 0)
318
+ }
319
+ 70% {
320
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
321
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
322
+ -webkit-transform: translate3d(0, -15px, 0);
323
+ transform: translate3d(0, -15px, 0)
324
+ }
325
+ 90% {
326
+ -webkit-transform: translate3d(0, -4px, 0);
327
+ transform: translate3d(0, -4px, 0)
328
+ }
329
+ }
330
+
331
+ .sgpb-bounce {
332
+ -webkit-animation-name: bounce;
333
+ animation-name: bounce;
334
+ -webkit-transform-origin: center bottom;
335
+ transform-origin: center bottom
336
+ }
337
+
338
+ @-webkit-keyframes flash {
339
+ 50%,
340
+ from,
341
+ to {
342
+ opacity: 1
343
+ }
344
+ 25%,
345
+ 75% {
346
+ opacity: 0
347
+ }
348
+ }
349
+
350
+ @keyframes flash {
351
+ 50%,
352
+ from,
353
+ to {
354
+ opacity: 1
355
+ }
356
+ 25%,
357
+ 75% {
358
+ opacity: 0
359
+ }
360
+ }
361
+
362
+ .sgpb-flash {
363
+ -webkit-animation-name: flash;
364
+ animation-name: flash
365
+ }
366
+
367
+ @-webkit-keyframes pulse {
368
+ from,
369
+ to {
370
+ -webkit-transform: scale3d(1, 1, 1);
371
+ transform: scale3d(1, 1, 1)
372
+ }
373
+ 50% {
374
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
375
+ transform: scale3d(1.05, 1.05, 1.05)
376
+ }
377
+ }
378
+
379
+ @keyframes pulse {
380
+ from,
381
+ to {
382
+ -webkit-transform: scale3d(1, 1, 1);
383
+ transform: scale3d(1, 1, 1)
384
+ }
385
+ 50% {
386
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
387
+ transform: scale3d(1.05, 1.05, 1.05)
388
+ }
389
+ }
390
+
391
+ .sgpb-pulse {
392
+ -webkit-animation-name: pulse;
393
+ animation-name: pulse
394
+ }
395
+
396
+ @-webkit-keyframes rubberBand {
397
+ from,
398
+ to {
399
+ -webkit-transform: scale3d(1, 1, 1);
400
+ transform: scale3d(1, 1, 1)
401
+ }
402
+ 30% {
403
+ -webkit-transform: scale3d(1.25, .75, 1);
404
+ transform: scale3d(1.25, .75, 1)
405
+ }
406
+ 40% {
407
+ -webkit-transform: scale3d(.75, 1.25, 1);
408
+ transform: scale3d(.75, 1.25, 1)
409
+ }
410
+ 50% {
411
+ -webkit-transform: scale3d(1.15, .85, 1);
412
+ transform: scale3d(1.15, .85, 1)
413
+ }
414
+ 65% {
415
+ -webkit-transform: scale3d(.95, 1.05, 1);
416
+ transform: scale3d(.95, 1.05, 1)
417
+ }
418
+ 75% {
419
+ -webkit-transform: scale3d(1.05, .95, 1);
420
+ transform: scale3d(1.05, .95, 1)
421
+ }
422
+ }
423
+
424
+ @keyframes rubberBand {
425
+ from,
426
+ to {
427
+ -webkit-transform: scale3d(1, 1, 1);
428
+ transform: scale3d(1, 1, 1)
429
+ }
430
+ 30% {
431
+ -webkit-transform: scale3d(1.25, .75, 1);
432
+ transform: scale3d(1.25, .75, 1)
433
+ }
434
+ 40% {
435
+ -webkit-transform: scale3d(.75, 1.25, 1);
436
+ transform: scale3d(.75, 1.25, 1)
437
+ }
438
+ 50% {
439
+ -webkit-transform: scale3d(1.15, .85, 1);
440
+ transform: scale3d(1.15, .85, 1)
441
+ }
442
+ 65% {
443
+ -webkit-transform: scale3d(.95, 1.05, 1);
444
+ transform: scale3d(.95, 1.05, 1)
445
+ }
446
+ 75% {
447
+ -webkit-transform: scale3d(1.05, .95, 1);
448
+ transform: scale3d(1.05, .95, 1)
449
+ }
450
+ }
451
+
452
+ .sgpb-rubberBand {
453
+ -webkit-animation-name: rubberBand;
454
+ animation-name: rubberBand
455
+ }
456
+
457
+ @-webkit-keyframes shake {
458
+ from,
459
+ to {
460
+ -webkit-transform: translate3d(0, 0, 0);
461
+ transform: translate3d(0, 0, 0)
462
+ }
463
+ 10%,
464
+ 30%,
465
+ 50%,
466
+ 70%,
467
+ 90% {
468
+ -webkit-transform: translate3d(-10px, 0, 0);
469
+ transform: translate3d(-10px, 0, 0)
470
+ }
471
+ 20%,
472
+ 40%,
473
+ 60%,
474
+ 80% {
475
+ -webkit-transform: translate3d(10px, 0, 0);
476
+ transform: translate3d(10px, 0, 0)
477
+ }
478
+ }
479
+
480
+ @keyframes shake {
481
+ from,
482
+ to {
483
+ -webkit-transform: translate3d(0, 0, 0);
484
+ transform: translate3d(0, 0, 0)
485
+ }
486
+ 10%,
487
+ 30%,
488
+ 50%,
489
+ 70%,
490
+ 90% {
491
+ -webkit-transform: translate3d(-10px, 0, 0);
492
+ transform: translate3d(-10px, 0, 0)
493
+ }
494
+ 20%,
495
+ 40%,
496
+ 60%,
497
+ 80% {
498
+ -webkit-transform: translate3d(10px, 0, 0);
499
+ transform: translate3d(10px, 0, 0)
500
+ }
501
+ }
502
+
503
+ .sgpb-shake {
504
+ -webkit-animation-name: shake;
505
+ animation-name: shake
506
+ }
507
+
508
+ @-webkit-keyframes swing {
509
+ 20% {
510
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
511
+ transform: rotate3d(0, 0, 1, 15deg)
512
+ }
513
+ 40% {
514
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
515
+ transform: rotate3d(0, 0, 1, -10deg)
516
+ }
517
+ 60% {
518
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
519
+ transform: rotate3d(0, 0, 1, 5deg)
520
+ }
521
+ 80% {
522
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
523
+ transform: rotate3d(0, 0, 1, -5deg)
524
+ }
525
+ to {
526
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
527
+ transform: rotate3d(0, 0, 1, 0deg)
528
+ }
529
+ }
530
+
531
+ @keyframes swing {
532
+ 20% {
533
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
534
+ transform: rotate3d(0, 0, 1, 15deg)
535
+ }
536
+ 40% {
537
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
538
+ transform: rotate3d(0, 0, 1, -10deg)
539
+ }
540
+ 60% {
541
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
542
+ transform: rotate3d(0, 0, 1, 5deg)
543
+ }
544
+ 80% {
545
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
546
+ transform: rotate3d(0, 0, 1, -5deg)
547
+ }
548
+ to {
549
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
550
+ transform: rotate3d(0, 0, 1, 0deg)
551
+ }
552
+ }
553
+
554
+ .sgpb-swing {
555
+ -webkit-transform-origin: top center;
556
+ transform-origin: top center;
557
+ -webkit-animation-name: swing;
558
+ animation-name: swing
559
+ }
560
+
561
+ @-webkit-keyframes tada {
562
+ from,
563
+ to {
564
+ -webkit-transform: scale3d(1, 1, 1);
565
+ transform: scale3d(1, 1, 1)
566
+ }
567
+ 10%,
568
+ 20% {
569
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
570
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
571
+ }
572
+ 30%,
573
+ 50%,
574
+ 70%,
575
+ 90% {
576
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
577
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
578
+ }
579
+ 40%,
580
+ 60%,
581
+ 80% {
582
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
583
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
584
+ }
585
+ }
586
+
587
+ @keyframes tada {
588
+ from,
589
+ to {
590
+ -webkit-transform: scale3d(1, 1, 1);
591
+ transform: scale3d(1, 1, 1)
592
+ }
593
+ 10%,
594
+ 20% {
595
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
596
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
597
+ }
598
+ 30%,
599
+ 50%,
600
+ 70%,
601
+ 90% {
602
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
603
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
604
+ }
605
+ 40%,
606
+ 60%,
607
+ 80% {
608
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
609
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
610
+ }
611
+ }
612
+
613
+ .sgpb-tada {
614
+ -webkit-animation-name: tada;
615
+ animation-name: tada
616
+ }
617
+
618
+ @-webkit-keyframes wobble {
619
+ from,
620
+ to {
621
+ -webkit-transform: none;
622
+ transform: none
623
+ }
624
+ 15% {
625
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
626
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
627
+ }
628
+ 30% {
629
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
630
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
631
+ }
632
+ 45% {
633
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
634
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
635
+ }
636
+ 60% {
637
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
638
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
639
+ }
640
+ 75% {
641
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
642
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
643
+ }
644
+ }
645
+
646
+ @keyframes wobble {
647
+ from,
648
+ to {
649
+ -webkit-transform: none;
650
+ transform: none
651
+ }
652
+ 15% {
653
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
654
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
655
+ }
656
+ 30% {
657
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
658
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
659
+ }
660
+ 45% {
661
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
662
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
663
+ }
664
+ 60% {
665
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
666
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
667
+ }
668
+ 75% {
669
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
670
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
671
+ }
672
+ }
673
+
674
+ .sgpb-wobble {
675
+ -webkit-animation-name: wobble;
676
+ animation-name: wobble
677
+ }
678
+
679
+ @-webkit-keyframes jello {
680
+ 11.1%,
681
+ from,
682
+ to {
683
+ -webkit-transform: none;
684
+ transform: none
685
+ }
686
+ 22.2% {
687
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
688
+ transform: skewX(-12.5deg) skewY(-12.5deg)
689
+ }
690
+ 33.3% {
691
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
692
+ transform: skewX(6.25deg) skewY(6.25deg)
693
+ }
694
+ 44.4% {
695
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
696
+ transform: skewX(-3.125deg) skewY(-3.125deg)
697
+ }
698
+ 55.5% {
699
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
700
+ transform: skewX(1.5625deg) skewY(1.5625deg)
701
+ }
702
+ 66.6% {
703
+ -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
704
+ transform: skewX(-.78125deg) skewY(-.78125deg)
705
+ }
706
+ 77.7% {
707
+ -webkit-transform: skewX(.390625deg) skewY(.390625deg);
708
+ transform: skewX(.390625deg) skewY(.390625deg)
709
+ }
710
+ 88.8% {
711
+ -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
712
+ transform: skewX(-.1953125deg) skewY(-.1953125deg)
713
+ }
714
+ }
715
+
716
+ @keyframes jello {
717
+ 11.1%,
718
+ from,
719
+ to {
720
+ -webkit-transform: none;
721
+ transform: none
722
+ }
723
+ 22.2% {
724
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
725
+ transform: skewX(-12.5deg) skewY(-12.5deg)
726
+ }
727
+ 33.3% {
728
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
729
+ transform: skewX(6.25deg) skewY(6.25deg)
730
+ }
731
+ 44.4% {
732
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
733
+ transform: skewX(-3.125deg) skewY(-3.125deg)
734
+ }
735
+ 55.5% {
736
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
737
+ transform: skewX(1.5625deg) skewY(1.5625deg)
738
+ }
739
+ 66.6% {
740
+ -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
741
+ transform: skewX(-.78125deg) skewY(-.78125deg)
742
+ }
743
+ 77.7% {
744
+ -webkit-transform: skewX(.390625deg) skewY(.390625deg);
745
+ transform: skewX(.390625deg) skewY(.390625deg)
746
+ }
747
+ 88.8% {
748
+ -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
749
+ transform: skewX(-.1953125deg) skewY(-.1953125deg)
750
+ }
751
+ }
752
+
753
+ .sgpb-jello {
754
+ -webkit-animation-name: jello;
755
+ animation-name: jello;
756
+ -webkit-transform-origin: center;
757
+ transform-origin: center
758
+ }
759
+
760
+ @-webkit-keyframes bounceIn {
761
+ 20%,
762
+ 40%,
763
+ 60%,
764
+ 80%,
765
+ from,
766
+ to {
767
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
768
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
769
+ }
770
+ 0% {
771
+ opacity: 0;
772
+ -webkit-transform: scale3d(.3, .3, .3);
773
+ transform: scale3d(.3, .3, .3)
774
+ }
775
+ 20% {
776
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
777
+ transform: scale3d(1.1, 1.1, 1.1)
778
+ }
779
+ 40% {
780
+ -webkit-transform: scale3d(.9, .9, .9);
781
+ transform: scale3d(.9, .9, .9)
782
+ }
783
+ 60% {
784
+ opacity: 1;
785
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
786
+ transform: scale3d(1.03, 1.03, 1.03)
787
+ }
788
+ 80% {
789
+ -webkit-transform: scale3d(.97, .97, .97);
790
+ transform: scale3d(.97, .97, .97)
791
+ }
792
+ to {
793
+ opacity: 1;
794
+ -webkit-transform: scale3d(1, 1, 1);
795
+ transform: scale3d(1, 1, 1)
796
+ }
797
+ }
798
+
799
+ @keyframes bounceIn {
800
+ 20%,
801
+ 40%,
802
+ 60%,
803
+ 80%,
804
+ from,
805
+ to {
806
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
807
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
808
+ }
809
+ 0% {
810
+ opacity: 0;
811
+ -webkit-transform: scale3d(.3, .3, .3);
812
+ transform: scale3d(.3, .3, .3)
813
+ }
814
+ 20% {
815
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
816
+ transform: scale3d(1.1, 1.1, 1.1)
817
+ }
818
+ 40% {
819
+ -webkit-transform: scale3d(.9, .9, .9);
820
+ transform: scale3d(.9, .9, .9)
821
+ }
822
+ 60% {
823
+ opacity: 1;
824
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
825
+ transform: scale3d(1.03, 1.03, 1.03)
826
+ }
827
+ 80% {
828
+ -webkit-transform: scale3d(.97, .97, .97);
829
+ transform: scale3d(.97, .97, .97)
830
+ }
831
+ to {
832
+ opacity: 1;
833
+ -webkit-transform: scale3d(1, 1, 1);
834
+ transform: scale3d(1, 1, 1)
835
+ }
836
+ }
837
+
838
+ .sgpb-bounceIn {
839
+ -webkit-animation-name: bounceIn;
840
+ animation-name: bounceIn
841
+ }
842
+
843
+ @-webkit-keyframes bounceInDown {
844
+ 60%,
845
+ 75%,
846
+ 90%,
847
+ from,
848
+ to {
849
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
850
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
851
+ }
852
+ 0% {
853
+ opacity: 0;
854
+ -webkit-transform: translate3d(0, -3000px, 0);
855
+ transform: translate3d(0, -3000px, 0)
856
+ }
857
+ 60% {
858
+ opacity: 1;
859
+ -webkit-transform: translate3d(0, 25px, 0);
860
+ transform: translate3d(0, 25px, 0)
861
+ }
862
+ 75% {
863
+ -webkit-transform: translate3d(0, -10px, 0);
864
+ transform: translate3d(0, -10px, 0)
865
+ }
866
+ 90% {
867
+ -webkit-transform: translate3d(0, 5px, 0);
868
+ transform: translate3d(0, 5px, 0)
869
+ }
870
+ to {
871
+ -webkit-transform: none;
872
+ transform: none
873
+ }
874
+ }
875
+
876
+ @keyframes bounceInDown {
877
+ 60%,
878
+ 75%,
879
+ 90%,
880
+ from,
881
+ to {
882
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
883
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
884
+ }
885
+ 0% {
886
+ opacity: 0;
887
+ -webkit-transform: translate3d(0, -3000px, 0);
888
+ transform: translate3d(0, -3000px, 0)
889
+ }
890
+ 60% {
891
+ opacity: 1;
892
+ -webkit-transform: translate3d(0, 25px, 0);
893
+ transform: translate3d(0, 25px, 0)
894
+ }
895
+ 75% {
896
+ -webkit-transform: translate3d(0, -10px, 0);
897
+ transform: translate3d(0, -10px, 0)
898
+ }
899
+ 90% {
900
+ -webkit-transform: translate3d(0, 5px, 0);
901
+ transform: translate3d(0, 5px, 0)
902
+ }
903
+ to {
904
+ -webkit-transform: none;
905
+ transform: none
906
+ }
907
+ }
908
+
909
+ .bounceInDown {
910
+ -webkit-animation-name: bounceInDown;
911
+ animation-name: bounceInDown
912
+ }
913
+
914
+ @-webkit-keyframes bounceInLeft {
915
+ 60%,
916
+ 75%,
917
+ 90%,
918
+ from,
919
+ to {
920
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
921
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
922
+ }
923
+ 0% {
924
+ opacity: 0;
925
+ -webkit-transform: translate3d(-3000px, 0, 0);
926
+ transform: translate3d(-3000px, 0, 0)
927
+ }
928
+ 60% {
929
+ opacity: 1;
930
+ -webkit-transform: translate3d(25px, 0, 0);
931
+ transform: translate3d(25px, 0, 0)
932
+ }
933
+ 75% {
934
+ -webkit-transform: translate3d(-10px, 0, 0);
935
+ transform: translate3d(-10px, 0, 0)
936
+ }
937
+ 90% {
938
+ -webkit-transform: translate3d(5px, 0, 0);
939
+ transform: translate3d(5px, 0, 0)
940
+ }
941
+ to {
942
+ -webkit-transform: none;
943
+ transform: none
944
+ }
945
+ }
946
+
947
+ @keyframes bounceInLeft {
948
+ 60%,
949
+ 75%,
950
+ 90%,
951
+ from,
952
+ to {
953
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
954
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
955
+ }
956
+ 0% {
957
+ opacity: 0;
958
+ -webkit-transform: translate3d(-3000px, 0, 0);
959
+ transform: translate3d(-3000px, 0, 0)
960
+ }
961
+ 60% {
962
+ opacity: 1;
963
+ -webkit-transform: translate3d(25px, 0, 0);
964
+ transform: translate3d(25px, 0, 0)
965
+ }
966
+ 75% {
967
+ -webkit-transform: translate3d(-10px, 0, 0);
968
+ transform: translate3d(-10px, 0, 0)
969
+ }
970
+ 90% {
971
+ -webkit-transform: translate3d(5px, 0, 0);
972
+ transform: translate3d(5px, 0, 0)
973
+ }
974
+ to {
975
+ -webkit-transform: none;
976
+ transform: none
977
+ }
978
+ }
979
+
980
+ .sgpb-bounceInLeft {
981
+ -webkit-animation-name: bounceInLeft;
982
+ animation-name: bounceInLeft
983
+ }
984
+
985
+ @-webkit-keyframes bounceInRight {
986
+ 60%,
987
+ 75%,
988
+ 90%,
989
+ from,
990
+ to {
991
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
992
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
993
+ }
994
+ from {
995
+ opacity: 0;
996
+ -webkit-transform: translate3d(3000px, 0, 0);
997
+ transform: translate3d(3000px, 0, 0)
998
+ }
999
+ 60% {
1000
+ opacity: 1;
1001
+ -webkit-transform: translate3d(-25px, 0, 0);
1002
+ transform: translate3d(-25px, 0, 0)
1003
+ }
1004
+ 75% {
1005
+ -webkit-transform: translate3d(10px, 0, 0);
1006
+ transform: translate3d(10px, 0, 0)
1007
+ }
1008
+ 90% {
1009
+ -webkit-transform: translate3d(-5px, 0, 0);
1010
+ transform: translate3d(-5px, 0, 0)
1011
+ }
1012
+ to {
1013
+ -webkit-transform: none;
1014
+ transform: none
1015
+ }
1016
+ }
1017
+
1018
+ @keyframes bounceInRight {
1019
+ 60%,
1020
+ 75%,
1021
+ 90%,
1022
+ from,
1023
+ to {
1024
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
1025
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
1026
+ }
1027
+ from {
1028
+ opacity: 0;
1029
+ -webkit-transform: translate3d(3000px, 0, 0);
1030
+ transform: translate3d(3000px, 0, 0)
1031
+ }
1032
+ 60% {
1033
+ opacity: 1;
1034
+ -webkit-transform: translate3d(-25px, 0, 0);
1035
+ transform: translate3d(-25px, 0, 0)
1036
+ }
1037
+ 75% {
1038
+ -webkit-transform: translate3d(10px, 0, 0);
1039
+ transform: translate3d(10px, 0, 0)
1040
+ }
1041
+ 90% {
1042
+ -webkit-transform: translate3d(-5px, 0, 0);
1043
+ transform: translate3d(-5px, 0, 0)
1044
+ }
1045
+ to {
1046
+ -webkit-transform: none;
1047
+ transform: none
1048
+ }
1049
+ }
1050
+
1051
+ .sgpb-bounceInRight {
1052
+ -webkit-animation-name: bounceInRight;
1053
+ animation-name: bounceInRight
1054
+ }
1055
+
1056
+ @-webkit-keyframes bounceInUp {
1057
+ 60%,
1058
+ 75%,
1059
+ 90%,
1060
+ from,
1061
+ to {
1062
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
1063
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
1064
+ }
1065
+ from {
1066
+ opacity: 0;
1067
+ -webkit-transform: translate3d(0, 3000px, 0);
1068
+ transform: translate3d(0, 3000px, 0)
1069
+ }
1070
+ 60% {
1071
+ opacity: 1;
1072
+ -webkit-transform: translate3d(0, -20px, 0);
1073
+ transform: translate3d(0, -20px, 0)
1074
+ }
1075
+ 75% {
1076
+ -webkit-transform: translate3d(0, 10px, 0);
1077
+ transform: translate3d(0, 10px, 0)
1078
+ }
1079
+ 90% {
1080
+ -webkit-transform: translate3d(0, -5px, 0);
1081
+ transform: translate3d(0, -5px, 0)
1082
+ }
1083
+ to {
1084
+ -webkit-transform: translate3d(0, 0, 0);
1085
+ transform: translate3d(0, 0, 0)
1086
+ }
1087
+ }
1088
+
1089
+ @keyframes bounceInUp {
1090
+ 60%,
1091
+ 75%,
1092
+ 90%,
1093
+ from,
1094
+ to {
1095
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
1096
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
1097
+ }
1098
+ from {
1099
+ opacity: 0;
1100
+ -webkit-transform: translate3d(0, 3000px, 0);
1101
+ transform: translate3d(0, 3000px, 0)
1102
+ }
1103
+ 60% {
1104
+ opacity: 1;
1105
+ -webkit-transform: translate3d(0, -20px, 0);
1106
+ transform: translate3d(0, -20px, 0)
1107
+ }
1108
+ 75% {
1109
+ -webkit-transform: translate3d(0, 10px, 0);
1110
+ transform: translate3d(0, 10px, 0)
1111
+ }
1112
+ 90% {
1113
+ -webkit-transform: translate3d(0, -5px, 0);
1114
+ transform: translate3d(0, -5px, 0)
1115
+ }
1116
+ to {
1117
+ -webkit-transform: translate3d(0, 0, 0);
1118
+ transform: translate3d(0, 0, 0)
1119
+ }
1120
+ }
1121
+
1122
+ .sgpb-bounceInUp {
1123
+ -webkit-animation-name: bounceInUp;
1124
+ animation-name: bounceInUp
1125
+ }
1126
+
1127
+ @-webkit-keyframes bounceOut {
1128
+ 20% {
1129
+ -webkit-transform: scale3d(.9, .9, .9);
1130
+ transform: scale3d(.9, .9, .9)
1131
+ }
1132
+ 50%,
1133
+ 55% {
1134
+ opacity: 1;
1135
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1136
+ transform: scale3d(1.1, 1.1, 1.1)
1137
+ }
1138
+ to {
1139
+ opacity: 0;
1140
+ -webkit-transform: scale3d(.3, .3, .3);
1141
+ transform: scale3d(.3, .3, .3)
1142
+ }
1143
+ }
1144
+
1145
+ @keyframes bounceOut {
1146
+ 20% {
1147
+ -webkit-transform: scale3d(.9, .9, .9);
1148
+ transform: scale3d(.9, .9, .9)
1149
+ }
1150
+ 50%,
1151
+ 55% {
1152
+ opacity: 1;
1153
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1154
+ transform: scale3d(1.1, 1.1, 1.1)
1155
+ }
1156
+ to {
1157
+ opacity: 0;
1158
+ -webkit-transform: scale3d(.3, .3, .3);
1159
+ transform: scale3d(.3, .3, .3)
1160
+ }
1161
+ }
1162
+
1163
+ .sgpb-bounceOut {
1164
+ -webkit-animation-name: bounceOut;
1165
+ animation-name: bounceOut
1166
+ }
1167
+
1168
+ @-webkit-keyframes bounceOutDown {
1169
+ 20% {
1170
+ -webkit-transform: translate3d(0, 10px, 0);
1171
+ transform: translate3d(0, 10px, 0)
1172
+ }
1173
+ 40%,
1174
+ 45% {
1175
+ opacity: 1;
1176
+ -webkit-transform: translate3d(0, -20px, 0);
1177
+ transform: translate3d(0, -20px, 0)
1178
+ }
1179
+ to {
1180
+ opacity: 0;
1181
+ -webkit-transform: translate3d(0, 2000px, 0);
1182
+ transform: translate3d(0, 2000px, 0)
1183
+ }
1184
+ }
1185
+
1186
+ @keyframes bounceOutDown {
1187
+ 20% {
1188
+ -webkit-transform: translate3d(0, 10px, 0);
1189
+ transform: translate3d(0, 10px, 0)
1190
+ }
1191
+ 40%,
1192
+ 45% {
1193
+ opacity: 1;
1194
+ -webkit-transform: translate3d(0, -20px, 0);
1195
+ transform: translate3d(0, -20px, 0)
1196
+ }
1197
+ to {
1198
+ opacity: 0;
1199
+ -webkit-transform: translate3d(0, 2000px, 0);
1200
+ transform: translate3d(0, 2000px, 0)
1201
+ }
1202
+ }
1203
+
1204
+ .bounceOutDown {
1205
+ -webkit-animation-name: bounceOutDown;
1206
+ animation-name: bounceOutDown
1207
+ }
1208
+
1209
+ @-webkit-keyframes bounceOutLeft {
1210
+ 20% {
1211
+ opacity: 1;
1212
+ -webkit-transform: translate3d(20px, 0, 0);
1213
+ transform: translate3d(20px, 0, 0)
1214
+ }
1215
+ to {
1216
+ opacity: 0;
1217
+ -webkit-transform: translate3d(-2000px, 0, 0);
1218
+ transform: translate3d(-2000px, 0, 0)
1219
+ }
1220
+ }
1221
+
1222
+ @keyframes bounceOutLeft {
1223
+ 20% {
1224
+ opacity: 1;
1225
+ -webkit-transform: translate3d(20px, 0, 0);
1226
+ transform: translate3d(20px, 0, 0)
1227
+ }
1228
+ to {
1229
+ opacity: 0;
1230
+ -webkit-transform: translate3d(-2000px, 0, 0);
1231
+ transform: translate3d(-2000px, 0, 0)
1232
+ }
1233
+ }
1234
+
1235
+ .sgpb-bounceOutLeft {
1236
+ -webkit-animation-name: bounceOutLeft;
1237
+ animation-name: bounceOutLeft
1238
+ }
1239
+
1240
+ @-webkit-keyframes bounceOutRight {
1241
+ 20% {
1242
+ opacity: 1;
1243
+ -webkit-transform: translate3d(-20px, 0, 0);
1244
+ transform: translate3d(-20px, 0, 0)
1245
+ }
1246
+ to {
1247
+ opacity: 0;
1248
+ -webkit-transform: translate3d(2000px, 0, 0);
1249
+ transform: translate3d(2000px, 0, 0)
1250
+ }
1251
+ }
1252
+
1253
+ @keyframes bounceOutRight {
1254
+ 20% {
1255
+ opacity: 1;
1256
+ -webkit-transform: translate3d(-20px, 0, 0);
1257
+ transform: translate3d(-20px, 0, 0)
1258
+ }
1259
+ to {
1260
+ opacity: 0;
1261
+ -webkit-transform: translate3d(2000px, 0, 0);
1262
+ transform: translate3d(2000px, 0, 0)
1263
+ }
1264
+ }
1265
+
1266
+ .bounceOutRight {
1267
+ -webkit-animation-name: bounceOutRight;
1268
+ animation-name: bounceOutRight
1269
+ }
1270
+
1271
+ @-webkit-keyframes bounceOutUp {
1272
+ 20% {
1273
+ -webkit-transform: translate3d(0, -10px, 0);
1274
+ transform: translate3d(0, -10px, 0)
1275
+ }
1276
+ 40%,
1277
+ 45% {
1278
+ opacity: 1;
1279
+ -webkit-transform: translate3d(0, 20px, 0);
1280
+ transform: translate3d(0, 20px, 0)
1281
+ }
1282
+ to {
1283
+ opacity: 0;
1284
+ -webkit-transform: translate3d(0, -2000px, 0);
1285
+ transform: translate3d(0, -2000px, 0)
1286
+ }
1287
+ }
1288
+
1289
+ @keyframes bounceOutUp {
1290
+ 20% {
1291
+ -webkit-transform: translate3d(0, -10px, 0);
1292
+ transform: translate3d(0, -10px, 0)
1293
+ }
1294
+ 40%,
1295
+ 45% {
1296
+ opacity: 1;
1297
+ -webkit-transform: translate3d(0, 20px, 0);
1298
+ transform: translate3d(0, 20px, 0)
1299
+ }
1300
+ to {
1301
+ opacity: 0;
1302
+ -webkit-transform: translate3d(0, -2000px, 0);
1303
+ transform: translate3d(0, -2000px, 0)
1304
+ }
1305
+ }
1306
+
1307
+ .bounceOutUp {
1308
+ -webkit-animation-name: bounceOutUp;
1309
+ animation-name: bounceOutUp
1310
+ }
1311
+
1312
+ @-webkit-keyframes fadeIn {
1313
+ from {
1314
+ opacity: 0
1315
+ }
1316
+ to {
1317
+ opacity: 1
1318
+ }
1319
+ }
1320
+
1321
+ @keyframes fadeIn {
1322
+ from {
1323
+ opacity: 0
1324
+ }
1325
+ to {
1326
+ opacity: 1
1327
+ }
1328
+ }
1329
+
1330
+ .sgpb-fadeIn {
1331
+ -webkit-animation-name: fadeIn;
1332
+ animation-name: fadeIn
1333
+ }
1334
+
1335
+ @-webkit-keyframes fadeInDown {
1336
+ from {
1337
+ opacity: 0;
1338
+ -webkit-transform: translate3d(0, -100%, 0);
1339
+ transform: translate3d(0, -100%, 0)
1340
+ }
1341
+ to {
1342
+ opacity: 1;
1343
+ -webkit-transform: none;
1344
+ transform: none
1345
+ }
1346
+ }
1347
+
1348
+ @keyframes fadeInDown {
1349
+ from {
1350
+ opacity: 0;
1351
+ -webkit-transform: translate3d(0, -100%, 0);
1352
+ transform: translate3d(0, -100%, 0)
1353
+ }
1354
+ to {
1355
+ opacity: 1;
1356
+ -webkit-transform: none;
1357
+ transform: none
1358
+ }
1359
+ }
1360
+
1361
+ .fadeInDown {
1362
+ -webkit-animation-name: fadeInDown;
1363
+ animation-name: fadeInDown
1364
+ }
1365
+
1366
+ @-webkit-keyframes fadeInDownBig {
1367
+ from {
1368
+ opacity: 0;
1369
+ -webkit-transform: translate3d(0, -2000px, 0);
1370
+ transform: translate3d(0, -2000px, 0)
1371
+ }
1372
+ to {
1373
+ opacity: 1;
1374
+ -webkit-transform: none;
1375
+ transform: none
1376
+ }
1377
+ }
1378
+
1379
+ @keyframes fadeInDownBig {
1380
+ from {
1381
+ opacity: 0;
1382
+ -webkit-transform: translate3d(0, -2000px, 0);
1383
+ transform: translate3d(0, -2000px, 0)
1384
+ }
1385
+ to {
1386
+ opacity: 1;
1387
+ -webkit-transform: none;
1388
+ transform: none
1389
+ }
1390
+ }
1391
+
1392
+ .fadeInDownBig {
1393
+ -webkit-animation-name: fadeInDownBig;
1394
+ animation-name: fadeInDownBig
1395
+ }
1396
+
1397
+ @-webkit-keyframes fadeInLeft {
1398
+ from {
1399
+ opacity: 0;
1400
+ -webkit-transform: translate3d(-100%, 0, 0);
1401
+ transform: translate3d(-100%, 0, 0)
1402
+ }
1403
+ to {
1404
+ opacity: 1;
1405
+ -webkit-transform: none;
1406
+ transform: none
1407
+ }
1408
+ }
1409
+
1410
+ @keyframes fadeInLeft {
1411
+ from {
1412
+ opacity: 0;
1413
+ -webkit-transform: translate3d(-100%, 0, 0);
1414
+ transform: translate3d(-100%, 0, 0)
1415
+ }
1416
+ to {
1417
+ opacity: 1;
1418
+ -webkit-transform: none;
1419
+ transform: none
1420
+ }
1421
+ }
1422
+
1423
+ .fadeInLeft {
1424
+ -webkit-animation-name: fadeInLeft;
1425
+ animation-name: fadeInLeft
1426
+ }
1427
+
1428
+ @-webkit-keyframes fadeInLeftBig {
1429
+ from {
1430
+ opacity: 0;
1431
+ -webkit-transform: translate3d(-2000px, 0, 0);
1432
+ transform: translate3d(-2000px, 0, 0)
1433
+ }
1434
+ to {
1435
+ opacity: 1;
1436
+ -webkit-transform: none;
1437
+ transform: none
1438
+ }
1439
+ }
1440
+
1441
+ @keyframes fadeInLeftBig {
1442
+ from {
1443
+ opacity: 0;
1444
+ -webkit-transform: translate3d(-2000px, 0, 0);
1445
+ transform: translate3d(-2000px, 0, 0)
1446
+ }
1447
+ to {
1448
+ opacity: 1;
1449
+ -webkit-transform: none;
1450
+ transform: none
1451
+ }
1452
+ }
1453
+
1454
+ .fadeInLeftBig {
1455
+ -webkit-animation-name: fadeInLeftBig;
1456
+ animation-name: fadeInLeftBig
1457
+ }
1458
+
1459
+ @-webkit-keyframes fadeInRight {
1460
+ from {
1461
+ opacity: 0;
1462
+ -webkit-transform: translate3d(100%, 0, 0);
1463
+ transform: translate3d(100%, 0, 0)
1464
+ }
1465
+ to {
1466
+ opacity: 1;
1467
+ -webkit-transform: none;
1468
+ transform: none
1469
+ }
1470
+ }
1471
+
1472
+ @keyframes fadeInRight {
1473
+ from {
1474
+ opacity: 0;
1475
+ -webkit-transform: translate3d(100%, 0, 0);
1476
+ transform: translate3d(100%, 0, 0)
1477
+ }
1478
+ to {
1479
+ opacity: 1;
1480
+ -webkit-transform: none;
1481
+ transform: none
1482
+ }
1483
+ }
1484
+
1485
+ .fadeInRight {
1486
+ -webkit-animation-name: fadeInRight;
1487
+ animation-name: fadeInRight
1488
+ }
1489
+
1490
+ @-webkit-keyframes fadeInRightBig {
1491
+ from {
1492
+ opacity: 0;
1493
+ -webkit-transform: translate3d(2000px, 0, 0);
1494
+ transform: translate3d(2000px, 0, 0)
1495
+ }
1496
+ to {
1497
+ opacity: 1;
1498
+ -webkit-transform: none;
1499
+ transform: none
1500
+ }
1501
+ }
1502
+
1503
+ @keyframes fadeInRightBig {
1504
+ from {
1505
+ opacity: 0;
1506
+ -webkit-transform: translate3d(2000px, 0, 0);
1507
+ transform: translate3d(2000px, 0, 0)
1508
+ }
1509
+ to {
1510
+ opacity: 1;
1511
+ -webkit-transform: none;
1512
+ transform: none
1513
+ }
1514
+ }
1515
+
1516
+ .fadeInRightBig {
1517
+ -webkit-animation-name: fadeInRightBig;
1518
+ animation-name: fadeInRightBig
1519
+ }
1520
+
1521
+ @-webkit-keyframes fadeInUp {
1522
+ from {
1523
+ opacity: 0;
1524
+ -webkit-transform: translate3d(0, 100%, 0);
1525
+ transform: translate3d(0, 100%, 0)
1526
+ }
1527
+ to {
1528
+ opacity: 1;
1529
+ -webkit-transform: none;
1530
+ transform: none
1531
+ }
1532
+ }
1533
+
1534
+ @keyframes fadeInUp {
1535
+ from {
1536
+ opacity: 0;
1537
+ -webkit-transform: translate3d(0, 100%, 0);
1538
+ transform: translate3d(0, 100%, 0)
1539
+ }
1540
+ to {
1541
+ opacity: 1;
1542
+ -webkit-transform: none;
1543
+ transform: none
1544
+ }
1545
+ }
1546
+
1547
+ .fadeInUp {
1548
+ -webkit-animation-name: fadeInUp;
1549
+ animation-name: fadeInUp
1550
+ }
1551
+
1552
+ @-webkit-keyframes fadeInUpBig {
1553
+ from {
1554
+ opacity: 0;
1555
+ -webkit-transform: translate3d(0, 2000px, 0);
1556
+ transform: translate3d(0, 2000px, 0)
1557
+ }
1558
+ to {
1559
+ opacity: 1;
1560
+ -webkit-transform: none;
1561
+ transform: none
1562
+ }
1563
+ }
1564
+
1565
+ @keyframes fadeInUpBig {
1566
+ from {
1567
+ opacity: 0;
1568
+ -webkit-transform: translate3d(0, 2000px, 0);
1569
+ transform: translate3d(0, 2000px, 0)
1570
+ }
1571
+ to {
1572
+ opacity: 1;
1573
+ -webkit-transform: none;
1574
+ transform: none
1575
+ }
1576
+ }
1577
+
1578
+ .fadeInUpBig {
1579
+ -webkit-animation-name: fadeInUpBig;
1580
+ animation-name: fadeInUpBig
1581
+ }
1582
+
1583
+ @-webkit-keyframes fadeOut {
1584
+ from {
1585
+ opacity: 1
1586
+ }
1587
+ to {
1588
+ opacity: 0
1589
+ }
1590
+ }
1591
+
1592
+ @keyframes fadeOut {
1593
+ from {
1594
+ opacity: 1
1595
+ }
1596
+ to {
1597
+ opacity: 0
1598
+ }
1599
+ }
1600
+
1601
+ .sgpb-fadeOut {
1602
+ -webkit-animation-name: fadeOut;
1603
+ animation-name: fadeOut
1604
+ }
1605
+
1606
+ @-webkit-keyframes fadeOutDown {
1607
+ from {
1608
+ opacity: 1
1609
+ }
1610
+ to {
1611
+ opacity: 0;
1612
+ -webkit-transform: translate3d(0, 100%, 0);
1613
+ transform: translate3d(0, 100%, 0)
1614
+ }
1615
+ }
1616
+
1617
+ @keyframes fadeOutDown {
1618
+ from {
1619
+ opacity: 1
1620
+ }
1621
+ to {
1622
+ opacity: 0;
1623
+ -webkit-transform: translate3d(0, 100%, 0);
1624
+ transform: translate3d(0, 100%, 0)
1625
+ }
1626
+ }
1627
+
1628
+ .fadeOutDown {
1629
+ -webkit-animation-name: fadeOutDown;
1630
+ animation-name: fadeOutDown
1631
+ }
1632
+
1633
+ @-webkit-keyframes fadeOutDownBig {
1634
+ from {
1635
+ opacity: 1
1636
+ }
1637
+ to {
1638
+ opacity: 0;
1639
+ -webkit-transform: translate3d(0, 2000px, 0);
1640
+ transform: translate3d(0, 2000px, 0)
1641
+ }
1642
+ }
1643
+
1644
+ @keyframes fadeOutDownBig {
1645
+ from {
1646
+ opacity: 1
1647
+ }
1648
+ to {
1649
+ opacity: 0;
1650
+ -webkit-transform: translate3d(0, 2000px, 0);
1651
+ transform: translate3d(0, 2000px, 0)
1652
+ }
1653
+ }
1654
+
1655
+ .fadeOutDownBig {
1656
+ -webkit-animation-name: fadeOutDownBig;
1657
+ animation-name: fadeOutDownBig
1658
+ }
1659
+
1660
+ @-webkit-keyframes fadeOutLeft {
1661
+ from {
1662
+ opacity: 1
1663
+ }
1664
+ to {
1665
+ opacity: 0;
1666
+ -webkit-transform: translate3d(-100%, 0, 0);
1667
+ transform: translate3d(-100%, 0, 0)
1668
+ }
1669
+ }
1670
+
1671
+ @keyframes fadeOutLeft {
1672
+ from {
1673
+ opacity: 1
1674
+ }
1675
+ to {
1676
+ opacity: 0;
1677
+ -webkit-transform: translate3d(-100%, 0, 0);
1678
+ transform: translate3d(-100%, 0, 0)
1679
+ }
1680
+ }
1681
+
1682
+ .fadeOutLeft {
1683
+ -webkit-animation-name: fadeOutLeft;
1684
+ animation-name: fadeOutLeft
1685
+ }
1686
+
1687
+ @-webkit-keyframes fadeOutLeftBig {
1688
+ from {
1689
+ opacity: 1
1690
+ }
1691
+ to {
1692
+ opacity: 0;
1693
+ -webkit-transform: translate3d(-2000px, 0, 0);
1694
+ transform: translate3d(-2000px, 0, 0)
1695
+ }
1696
+ }
1697
+
1698
+ @keyframes fadeOutLeftBig {
1699
+ from {
1700
+ opacity: 1
1701
+ }
1702
+ to {
1703
+ opacity: 0;
1704
+ -webkit-transform: translate3d(-2000px, 0, 0);
1705
+ transform: translate3d(-2000px, 0, 0)
1706
+ }
1707
+ }
1708
+
1709
+ .fadeOutLeftBig {
1710
+ -webkit-animation-name: fadeOutLeftBig;
1711
+ animation-name: fadeOutLeftBig
1712
+ }
1713
+
1714
+ @-webkit-keyframes fadeOutRight {
1715
+ from {
1716
+ opacity: 1
1717
+ }
1718
+ to {
1719
+ opacity: 0;
1720
+ -webkit-transform: translate3d(100%, 0, 0);
1721
+ transform: translate3d(100%, 0, 0)
1722
+ }
1723
+ }
1724
+
1725
+ @keyframes fadeOutRight {
1726
+ from {
1727
+ opacity: 1
1728
+ }
1729
+ to {
1730
+ opacity: 0;
1731
+ -webkit-transform: translate3d(100%, 0, 0);
1732
+ transform: translate3d(100%, 0, 0)
1733
+ }
1734
+ }
1735
+
1736
+ .fadeOutRight {
1737
+ -webkit-animation-name: fadeOutRight;
1738
+ animation-name: fadeOutRight
1739
+ }
1740
+
1741
+ @-webkit-keyframes fadeOutRightBig {
1742
+ from {
1743
+ opacity: 1
1744
+ }
1745
+ to {
1746
+ opacity: 0;
1747
+ -webkit-transform: translate3d(2000px, 0, 0);
1748
+ transform: translate3d(2000px, 0, 0)
1749
+ }
1750
+ }
1751
+
1752
+ @keyframes fadeOutRightBig {
1753
+ from {
1754
+ opacity: 1
1755
+ }
1756
+ to {
1757
+ opacity: 0;
1758
+ -webkit-transform: translate3d(2000px, 0, 0);
1759
+ transform: translate3d(2000px, 0, 0)
1760
+ }
1761
+ }
1762
+
1763
+ .fadeOutRightBig {
1764
+ -webkit-animation-name: fadeOutRightBig;
1765
+ animation-name: fadeOutRightBig
1766
+ }
1767
+
1768
+ @-webkit-keyframes fadeOutUp {
1769
+ from {
1770
+ opacity: 1
1771
+ }
1772
+ to {
1773
+ opacity: 0;
1774
+ -webkit-transform: translate3d(0, -100%, 0);
1775
+ transform: translate3d(0, -100%, 0)
1776
+ }
1777
+ }
1778
+
1779
+ @keyframes fadeOutUp {
1780
+ from {
1781
+ opacity: 1
1782
+ }
1783
+ to {
1784
+ opacity: 0;
1785
+ -webkit-transform: translate3d(0, -100%, 0);
1786
+ transform: translate3d(0, -100%, 0)
1787
+ }
1788
+ }
1789
+
1790
+ .fadeOutUp {
1791
+ -webkit-animation-name: fadeOutUp;
1792
+ animation-name: fadeOutUp
1793
+ }
1794
+
1795
+ @-webkit-keyframes fadeOutUpBig {
1796
+ from {
1797
+ opacity: 1
1798
+ }
1799
+ to {
1800
+ opacity: 0;
1801
+ -webkit-transform: translate3d(0, -2000px, 0);
1802
+ transform: translate3d(0, -2000px, 0)
1803
+ }
1804
+ }
1805
+
1806
+ @keyframes fadeOutUpBig {
1807
+ from {
1808
+ opacity: 1
1809
+ }
1810
+ to {
1811
+ opacity: 0;
1812
+ -webkit-transform: translate3d(0, -2000px, 0);
1813
+ transform: translate3d(0, -2000px, 0)
1814
+ }
1815
+ }
1816
+
1817
+ .fadeOutUpBig {
1818
+ -webkit-animation-name: fadeOutUpBig;
1819
+ animation-name: fadeOutUpBig
1820
+ }
1821
+
1822
+ @-webkit-keyframes flip {
1823
+ from {
1824
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1825
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1826
+ -webkit-animation-timing-function: ease-out;
1827
+ animation-timing-function: ease-out
1828
+ }
1829
+ 40% {
1830
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1831
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1832
+ -webkit-animation-timing-function: ease-out;
1833
+ animation-timing-function: ease-out
1834
+ }
1835
+ 50% {
1836
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1837
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1838
+ -webkit-animation-timing-function: ease-in;
1839
+ animation-timing-function: ease-in
1840
+ }
1841
+ 80% {
1842
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1843
+ transform: perspective(400px) scale3d(.95, .95, .95);
1844
+ -webkit-animation-timing-function: ease-in;
1845
+ animation-timing-function: ease-in
1846
+ }
1847
+ to {
1848
+ -webkit-transform: perspective(400px);
1849
+ transform: perspective(400px);
1850
+ -webkit-animation-timing-function: ease-in;
1851
+ animation-timing-function: ease-in
1852
+ }
1853
+ }
1854
+
1855
+ @keyframes flip {
1856
+ from {
1857
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1858
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1859
+ -webkit-animation-timing-function: ease-out;
1860
+ animation-timing-function: ease-out
1861
+ }
1862
+ 40% {
1863
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1864
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1865
+ -webkit-animation-timing-function: ease-out;
1866
+ animation-timing-function: ease-out
1867
+ }
1868
+ 50% {
1869
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1870
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1871
+ -webkit-animation-timing-function: ease-in;
1872
+ animation-timing-function: ease-in
1873
+ }
1874
+ 80% {
1875
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1876
+ transform: perspective(400px) scale3d(.95, .95, .95);
1877
+ -webkit-animation-timing-function: ease-in;
1878
+ animation-timing-function: ease-in
1879
+ }
1880
+ to {
1881
+ -webkit-transform: perspective(400px);
1882
+ transform: perspective(400px);
1883
+ -webkit-animation-timing-function: ease-in;
1884
+ animation-timing-function: ease-in
1885
+ }
1886
+ }
1887
+
1888
+ .sg-animated.sgpb-flip {
1889
+ -webkit-backface-visibility: visible;
1890
+ backface-visibility: visible;
1891
+ -webkit-animation-name: flip;
1892
+ animation-name: flip
1893
+ }
1894
+
1895
+ @-webkit-keyframes flipInX {
1896
+ from {
1897
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1898
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1899
+ -webkit-animation-timing-function: ease-in;
1900
+ animation-timing-function: ease-in;
1901
+ opacity: 0
1902
+ }
1903
+ 40% {
1904
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1905
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1906
+ -webkit-animation-timing-function: ease-in;
1907
+ animation-timing-function: ease-in
1908
+ }
1909
+ 60% {
1910
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1911
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1912
+ opacity: 1
1913
+ }
1914
+ 80% {
1915
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1916
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1917
+ }
1918
+ to {
1919
+ -webkit-transform: perspective(400px);
1920
+ transform: perspective(400px)
1921
+ }
1922
+ }
1923
+
1924
+ @keyframes flipInX {
1925
+ from {
1926
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1927
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1928
+ -webkit-animation-timing-function: ease-in;
1929
+ animation-timing-function: ease-in;
1930
+ opacity: 0
1931
+ }
1932
+ 40% {
1933
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1934
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1935
+ -webkit-animation-timing-function: ease-in;
1936
+ animation-timing-function: ease-in
1937
+ }
1938
+ 60% {
1939
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1940
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1941
+ opacity: 1
1942
+ }
1943
+ 80% {
1944
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1945
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1946
+ }
1947
+ to {
1948
+ -webkit-transform: perspective(400px);
1949
+ transform: perspective(400px)
1950
+ }
1951
+ }
1952
+
1953
+ .sgpb-flipInX {
1954
+ backface-visibility: visible!important;
1955
+ -webkit-animation-name: flipInX;
1956
+ animation-name: flipInX
1957
+ }
1958
+
1959
+ .flipInX,
1960
+ .flipInY {
1961
+ -webkit-backface-visibility: visible!important
1962
+ }
1963
+
1964
+ @-webkit-keyframes flipInY {
1965
+ from {
1966
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1967
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1968
+ -webkit-animation-timing-function: ease-in;
1969
+ animation-timing-function: ease-in;
1970
+ opacity: 0
1971
+ }
1972
+ 40% {
1973
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1974
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1975
+ -webkit-animation-timing-function: ease-in;
1976
+ animation-timing-function: ease-in
1977
+ }
1978
+ 60% {
1979
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1980
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1981
+ opacity: 1
1982
+ }
1983
+ 80% {
1984
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1985
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
1986
+ }
1987
+ to {
1988
+ -webkit-transform: perspective(400px);
1989
+ transform: perspective(400px)
1990
+ }
1991
+ }
1992
+
1993
+ @keyframes flipInY {
1994
+ from {
1995
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1996
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1997
+ -webkit-animation-timing-function: ease-in;
1998
+ animation-timing-function: ease-in;
1999
+ opacity: 0
2000
+ }
2001
+ 40% {
2002
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2003
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2004
+ -webkit-animation-timing-function: ease-in;
2005
+ animation-timing-function: ease-in
2006
+ }
2007
+ 60% {
2008
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2009
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2010
+ opacity: 1
2011
+ }
2012
+ 80% {
2013
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2014
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
2015
+ }
2016
+ to {
2017
+ -webkit-transform: perspective(400px);
2018
+ transform: perspective(400px)
2019
+ }
2020
+ }
2021
+
2022
+ .flipInY {
2023
+ backface-visibility: visible!important;
2024
+ -webkit-animation-name: flipInY;
2025
+ animation-name: flipInY
2026
+ }
2027
+
2028
+ @-webkit-keyframes flipOutX {
2029
+ from {
2030
+ -webkit-transform: perspective(400px);
2031
+ transform: perspective(400px)
2032
+ }
2033
+ 30% {
2034
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2035
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2036
+ opacity: 1
2037
+ }
2038
+ to {
2039
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2040
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2041
+ opacity: 0
2042
+ }
2043
+ }
2044
+
2045
+ @keyframes flipOutX {
2046
+ from {
2047
+ -webkit-transform: perspective(400px);
2048
+ transform: perspective(400px)
2049
+ }
2050
+ 30% {
2051
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2052
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2053
+ opacity: 1
2054
+ }
2055
+ to {
2056
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2057
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2058
+ opacity: 0
2059
+ }
2060
+ }
2061
+
2062
+ .flipOutX {
2063
+ -webkit-animation-name: flipOutX;
2064
+ animation-name: flipOutX;
2065
+ backface-visibility: visible!important
2066
+ }
2067
+
2068
+ .flipOutX,
2069
+ .flipOutY {
2070
+ -webkit-backface-visibility: visible!important
2071
+ }
2072
+
2073
+ @-webkit-keyframes flipOutY {
2074
+ from {
2075
+ -webkit-transform: perspective(400px);
2076
+ transform: perspective(400px)
2077
+ }
2078
+ 30% {
2079
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2080
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2081
+ opacity: 1
2082
+ }
2083
+ to {
2084
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2085
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2086
+ opacity: 0
2087
+ }
2088
+ }
2089
+
2090
+ @keyframes flipOutY {
2091
+ from {
2092
+ -webkit-transform: perspective(400px);
2093
+ transform: perspective(400px)
2094
+ }
2095
+ 30% {
2096
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2097
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2098
+ opacity: 1
2099
+ }
2100
+ to {
2101
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2102
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2103
+ opacity: 0
2104
+ }
2105
+ }
2106
+
2107
+ .flipOutY {
2108
+ backface-visibility: visible!important;
2109
+ -webkit-animation-name: flipOutY;
2110
+ animation-name: flipOutY
2111
+ }
2112
+
2113
+ @-webkit-keyframes lightSpeedIn {
2114
+ from {
2115
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2116
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2117
+ opacity: 0
2118
+ }
2119
+ 60% {
2120
+ -webkit-transform: skewX(20deg);
2121
+ transform: skewX(20deg);
2122
+ opacity: 1
2123
+ }
2124
+ 80% {
2125
+ -webkit-transform: skewX(-5deg);
2126
+ transform: skewX(-5deg);
2127
+ opacity: 1
2128
+ }
2129
+ to {
2130
+ -webkit-transform: none;
2131
+ transform: none;
2132
+ opacity: 1
2133
+ }
2134
+ }
2135
+
2136
+ @keyframes lightSpeedIn {
2137
+ from {
2138
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2139
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2140
+ opacity: 0
2141
+ }
2142
+ 60% {
2143
+ -webkit-transform: skewX(20deg);
2144
+ transform: skewX(20deg);
2145
+ opacity: 1
2146
+ }
2147
+ 80% {
2148
+ -webkit-transform: skewX(-5deg);
2149
+ transform: skewX(-5deg);
2150
+ opacity: 1
2151
+ }
2152
+ to {
2153
+ -webkit-transform: none;
2154
+ transform: none;
2155
+ opacity: 1
2156
+ }
2157
+ }
2158
+
2159
+ .lightSpeedIn {
2160
+ -webkit-animation-name: lightSpeedIn;
2161
+ animation-name: lightSpeedIn;
2162
+ -webkit-animation-timing-function: ease-out;
2163
+ animation-timing-function: ease-out
2164
+ }
2165
+
2166
+ @-webkit-keyframes lightSpeedOut {
2167
+ from {
2168
+ opacity: 1
2169
+ }
2170
+ to {
2171
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2172
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2173
+ opacity: 0
2174
+ }
2175
+ }
2176
+
2177
+ @keyframes lightSpeedOut {
2178
+ from {
2179
+ opacity: 1
2180
+ }
2181
+ to {
2182
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2183
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2184
+ opacity: 0
2185
+ }
2186
+ }
2187
+
2188
+ .lightSpeedOut {
2189
+ -webkit-animation-name: lightSpeedOut;
2190
+ animation-name: lightSpeedOut;
2191
+ -webkit-animation-timing-function: ease-in;
2192
+ animation-timing-function: ease-in
2193
+ }
2194
+
2195
+ @-webkit-keyframes rotateIn {
2196
+ from {
2197
+ -webkit-transform-origin: center;
2198
+ transform-origin: center;
2199
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2200
+ transform: rotate3d(0, 0, 1, -200deg);
2201
+ opacity: 0
2202
+ }
2203
+ to {
2204
+ -webkit-transform-origin: center;
2205
+ transform-origin: center;
2206
+ -webkit-transform: none;
2207
+ transform: none;
2208
+ opacity: 1
2209
+ }
2210
+ }
2211
+
2212
+ @keyframes rotateIn {
2213
+ from {
2214
+ -webkit-transform-origin: center;
2215
+ transform-origin: center;
2216
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2217
+ transform: rotate3d(0, 0, 1, -200deg);
2218
+ opacity: 0
2219
+ }
2220
+ to {
2221
+ -webkit-transform-origin: center;
2222
+ transform-origin: center;
2223
+ -webkit-transform: none;
2224
+ transform: none;
2225
+ opacity: 1
2226
+ }
2227
+ }
2228
+
2229
+ .sgpb-rotateIn {
2230
+ -webkit-animation-name: rotateIn;
2231
+ animation-name: rotateIn
2232
+ }
2233
+
2234
+ @-webkit-keyframes rotateInDownLeft {
2235
+ from {
2236
+ -webkit-transform-origin: left bottom;
2237
+ transform-origin: left bottom;
2238
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2239
+ transform: rotate3d(0, 0, 1, -45deg);
2240
+ opacity: 0
2241
+ }
2242
+ to {
2243
+ -webkit-transform-origin: left bottom;
2244
+ transform-origin: left bottom;
2245
+ -webkit-transform: none;
2246
+ transform: none;
2247
+ opacity: 1
2248
+ }
2249
+ }
2250
+
2251
+ @keyframes rotateInDownLeft {
2252
+ from {
2253
+ -webkit-transform-origin: left bottom;
2254
+ transform-origin: left bottom;
2255
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2256
+ transform: rotate3d(0, 0, 1, -45deg);
2257
+ opacity: 0
2258
+ }
2259
+ to {
2260
+ -webkit-transform-origin: left bottom;
2261
+ transform-origin: left bottom;
2262
+ -webkit-transform: none;
2263
+ transform: none;
2264
+ opacity: 1
2265
+ }
2266
+ }
2267
+
2268
+ .sgpb-rotateInDownLeft {
2269
+ -webkit-animation-name: rotateInDownLeft;
2270
+ animation-name: rotateInDownLeft
2271
+ }
2272
+
2273
+ @-webkit-keyframes rotateInDownRight {
2274
+ from {
2275
+ -webkit-transform-origin: right bottom;
2276
+ transform-origin: right bottom;
2277
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2278
+ transform: rotate3d(0, 0, 1, 45deg);
2279
+ opacity: 0
2280
+ }
2281
+ to {
2282
+ -webkit-transform-origin: right bottom;
2283
+ transform-origin: right bottom;
2284
+ -webkit-transform: none;
2285
+ transform: none;
2286
+ opacity: 1
2287
+ }
2288
+ }
2289
+
2290
+ @keyframes rotateInDownRight {
2291
+ from {
2292
+ -webkit-transform-origin: right bottom;
2293
+ transform-origin: right bottom;
2294
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2295
+ transform: rotate3d(0, 0, 1, 45deg);
2296
+ opacity: 0
2297
+ }
2298
+ to {
2299
+ -webkit-transform-origin: right bottom;
2300
+ transform-origin: right bottom;
2301
+ -webkit-transform: none;
2302
+ transform: none;
2303
+ opacity: 1
2304
+ }
2305
+ }
2306
+
2307
+ .rotateInDownRight {
2308
+ -webkit-animation-name: rotateInDownRight;
2309
+ animation-name: rotateInDownRight
2310
+ }
2311
+
2312
+ @-webkit-keyframes rotateInUpLeft {
2313
+ from {
2314
+ -webkit-transform-origin: left bottom;
2315
+ transform-origin: left bottom;
2316
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2317
+ transform: rotate3d(0, 0, 1, 45deg);
2318
+ opacity: 0
2319
+ }
2320
+ to {
2321
+ -webkit-transform-origin: left bottom;
2322
+ transform-origin: left bottom;
2323
+ -webkit-transform: none;
2324
+ transform: none;
2325
+ opacity: 1
2326
+ }
2327
+ }
2328
+
2329
+ @keyframes rotateInUpLeft {
2330
+ from {
2331
+ -webkit-transform-origin: left bottom;
2332
+ transform-origin: left bottom;
2333
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2334
+ transform: rotate3d(0, 0, 1, 45deg);
2335
+ opacity: 0
2336
+ }
2337
+ to {
2338
+ -webkit-transform-origin: left bottom;
2339
+ transform-origin: left bottom;
2340
+ -webkit-transform: none;
2341
+ transform: none;
2342
+ opacity: 1
2343
+ }
2344
+ }
2345
+
2346
+ .rotateInUpLeft {
2347
+ -webkit-animation-name: rotateInUpLeft;
2348
+ animation-name: rotateInUpLeft
2349
+ }
2350
+
2351
+ @-webkit-keyframes rotateInUpRight {
2352
+ from {
2353
+ -webkit-transform-origin: right bottom;
2354
+ transform-origin: right bottom;
2355
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2356
+ transform: rotate3d(0, 0, 1, -90deg);
2357
+ opacity: 0
2358
+ }
2359
+ to {
2360
+ -webkit-transform-origin: right bottom;
2361
+ transform-origin: right bottom;
2362
+ -webkit-transform: none;
2363
+ transform: none;
2364
+ opacity: 1
2365
+ }
2366
+ }
2367
+
2368
+ @keyframes rotateInUpRight {
2369
+ from {
2370
+ -webkit-transform-origin: right bottom;
2371
+ transform-origin: right bottom;
2372
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2373
+ transform: rotate3d(0, 0, 1, -90deg);
2374
+ opacity: 0
2375
+ }
2376
+ to {
2377
+ -webkit-transform-origin: right bottom;
2378
+ transform-origin: right bottom;
2379
+ -webkit-transform: none;
2380
+ transform: none;
2381
+ opacity: 1
2382
+ }
2383
+ }
2384
+
2385
+ .rotateInUpRight {
2386
+ -webkit-animation-name: rotateInUpRight;
2387
+ animation-name: rotateInUpRight
2388
+ }
2389
+
2390
+ @-webkit-keyframes rotateOut {
2391
+ from {
2392
+ -webkit-transform-origin: center;
2393
+ transform-origin: center;
2394
+ opacity: 1
2395
+ }
2396
+ to {
2397
+ -webkit-transform-origin: center;
2398
+ transform-origin: center;
2399
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2400
+ transform: rotate3d(0, 0, 1, 200deg);
2401
+ opacity: 0
2402
+ }
2403
+ }
2404
+
2405
+ @keyframes rotateOut {
2406
+ from {
2407
+ -webkit-transform-origin: center;
2408
+ transform-origin: center;
2409
+ opacity: 1
2410
+ }
2411
+ to {
2412
+ -webkit-transform-origin: center;
2413
+ transform-origin: center;
2414
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2415
+ transform: rotate3d(0, 0, 1, 200deg);
2416
+ opacity: 0
2417
+ }
2418
+ }
2419
+
2420
+ .sgpb-rotateOut {
2421
+ -webkit-animation-name: rotateOut;
2422
+ animation-name: rotateOut
2423
+ }
2424
+
2425
+ @-webkit-keyframes rotateOutDownLeft {
2426
+ from {
2427
+ -webkit-transform-origin: left bottom;
2428
+ transform-origin: left bottom;
2429
+ opacity: 1
2430
+ }
2431
+ to {
2432
+ -webkit-transform-origin: left bottom;
2433
+ transform-origin: left bottom;
2434
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2435
+ transform: rotate3d(0, 0, 1, 45deg);
2436
+ opacity: 0
2437
+ }
2438
+ }
2439
+
2440
+ @keyframes rotateOutDownLeft {
2441
+ from {
2442
+ -webkit-transform-origin: left bottom;
2443
+ transform-origin: left bottom;
2444
+ opacity: 1
2445
+ }
2446
+ to {
2447
+ -webkit-transform-origin: left bottom;
2448
+ transform-origin: left bottom;
2449
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2450
+ transform: rotate3d(0, 0, 1, 45deg);
2451
+ opacity: 0
2452
+ }
2453
+ }
2454
+
2455
+ .rotateOutDownLeft {
2456
+ -webkit-animation-name: rotateOutDownLeft;
2457
+ animation-name: rotateOutDownLeft
2458
+ }
2459
+
2460
+ @-webkit-keyframes rotateOutDownRight {
2461
+ from {
2462
+ -webkit-transform-origin: right bottom;
2463
+ transform-origin: right bottom;
2464
+ opacity: 1
2465
+ }
2466
+ to {
2467
+ -webkit-transform-origin: right bottom;
2468
+ transform-origin: right bottom;
2469
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2470
+ transform: rotate3d(0, 0, 1, -45deg);
2471
+ opacity: 0
2472
+ }
2473
+ }
2474
+
2475
+ @keyframes rotateOutDownRight {
2476
+ from {
2477
+ -webkit-transform-origin: right bottom;
2478
+ transform-origin: right bottom;
2479
+ opacity: 1
2480
+ }
2481
+ to {
2482
+ -webkit-transform-origin: right bottom;
2483
+ transform-origin: right bottom;
2484
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2485
+ transform: rotate3d(0, 0, 1, -45deg);
2486
+ opacity: 0
2487
+ }
2488
+ }
2489
+
2490
+ .rotateOutDownRight {
2491
+ -webkit-animation-name: rotateOutDownRight;
2492
+ animation-name: rotateOutDownRight
2493
+ }
2494
+
2495
+ @-webkit-keyframes rotateOutUpLeft {
2496
+ from {
2497
+ -webkit-transform-origin: left bottom;
2498
+ transform-origin: left bottom;
2499
+ opacity: 1
2500
+ }
2501
+ to {
2502
+ -webkit-transform-origin: left bottom;
2503
+ transform-origin: left bottom;
2504
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2505
+ transform: rotate3d(0, 0, 1, -45deg);
2506
+ opacity: 0
2507
+ }
2508
+ }
2509
+
2510
+ @keyframes rotateOutUpLeft {
2511
+ from {
2512
+ -webkit-transform-origin: left bottom;
2513
+ transform-origin: left bottom;
2514
+ opacity: 1
2515
+ }
2516
+ to {
2517
+ -webkit-transform-origin: left bottom;
2518
+ transform-origin: left bottom;
2519
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2520
+ transform: rotate3d(0, 0, 1, -45deg);
2521
+ opacity: 0
2522
+ }
2523
+ }
2524
+
2525
+ .rotateOutUpLeft {
2526
+ -webkit-animation-name: rotateOutUpLeft;
2527
+ animation-name: rotateOutUpLeft
2528
+ }
2529
+
2530
+ @-webkit-keyframes rotateOutUpRight {
2531
+ from {
2532
+ -webkit-transform-origin: right bottom;
2533
+ transform-origin: right bottom;
2534
+ opacity: 1
2535
+ }
2536
+ to {
2537
+ -webkit-transform-origin: right bottom;
2538
+ transform-origin: right bottom;
2539
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2540
+ transform: rotate3d(0, 0, 1, 90deg);
2541
+ opacity: 0
2542
+ }
2543
+ }
2544
+
2545
+ @keyframes rotateOutUpRight {
2546
+ from {
2547
+ -webkit-transform-origin: right bottom;
2548
+ transform-origin: right bottom;
2549
+ opacity: 1
2550
+ }
2551
+ to {
2552
+ -webkit-transform-origin: right bottom;
2553
+ transform-origin: right bottom;
2554
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2555
+ transform: rotate3d(0, 0, 1, 90deg);
2556
+ opacity: 0
2557
+ }
2558
+ }
2559
+
2560
+ .rotateOutUpRight {
2561
+ -webkit-animation-name: rotateOutUpRight;
2562
+ animation-name: rotateOutUpRight
2563
+ }
2564
+
2565
+ @-webkit-keyframes hinge {
2566
+ 0% {
2567
+ -webkit-transform-origin: top left;
2568
+ transform-origin: top left;
2569
+ -webkit-animation-timing-function: ease-in-out;
2570
+ animation-timing-function: ease-in-out
2571
+ }
2572
+ 20%,
2573
+ 60% {
2574
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2575
+ transform: rotate3d(0, 0, 1, 80deg);
2576
+ -webkit-transform-origin: top left;
2577
+ transform-origin: top left;
2578
+ -webkit-animation-timing-function: ease-in-out;
2579
+ animation-timing-function: ease-in-out
2580
+ }
2581
+ 40%,
2582
+ 80% {
2583
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2584
+ transform: rotate3d(0, 0, 1, 60deg);
2585
+ -webkit-transform-origin: top left;
2586
+ transform-origin: top left;
2587
+ -webkit-animation-timing-function: ease-in-out;
2588
+ animation-timing-function: ease-in-out;
2589
+ opacity: 1
2590
+ }
2591
+ to {
2592
+ -webkit-transform: translate3d(0, 700px, 0);
2593
+ transform: translate3d(0, 700px, 0);
2594
+ opacity: 0
2595
+ }
2596
+ }
2597
+
2598
+ @keyframes hinge {
2599
+ 0% {
2600
+ -webkit-transform-origin: top left;
2601
+ transform-origin: top left;
2602
+ -webkit-animation-timing-function: ease-in-out;
2603
+ animation-timing-function: ease-in-out
2604
+ }
2605
+ 20%,
2606
+ 60% {
2607
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2608
+ transform: rotate3d(0, 0, 1, 80deg);
2609
+ -webkit-transform-origin: top left;
2610
+ transform-origin: top left;
2611
+ -webkit-animation-timing-function: ease-in-out;
2612
+ animation-timing-function: ease-in-out
2613
+ }
2614
+ 40%,
2615
+ 80% {
2616
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2617
+ transform: rotate3d(0, 0, 1, 60deg);
2618
+ -webkit-transform-origin: top left;
2619
+ transform-origin: top left;
2620
+ -webkit-animation-timing-function: ease-in-out;
2621
+ animation-timing-function: ease-in-out;
2622
+ opacity: 1
2623
+ }
2624
+ to {
2625
+ -webkit-transform: translate3d(0, 700px, 0);
2626
+ transform: translate3d(0, 700px, 0);
2627
+ opacity: 0
2628
+ }
2629
+ }
2630
+
2631
+ .hinge {
2632
+ -webkit-animation-name: hinge;
2633
+ animation-name: hinge
2634
+ }
2635
+
2636
+ @-webkit-keyframes rollIn {
2637
+ from {
2638
+ opacity: 0;
2639
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2640
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2641
+ }
2642
+ to {
2643
+ opacity: 1;
2644
+ -webkit-transform: none;
2645
+ transform: none
2646
+ }
2647
+ }
2648
+
2649
+ @keyframes rollIn {
2650
+ from {
2651
+ opacity: 0;
2652
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2653
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2654
+ }
2655
+ to {
2656
+ opacity: 1;
2657
+ -webkit-transform: none;
2658
+ transform: none
2659
+ }
2660
+ }
2661
+
2662
+ .rollIn {
2663
+ -webkit-animation-name: rollIn;
2664
+ animation-name: rollIn
2665
+ }
2666
+
2667
+ @-webkit-keyframes rollOut {
2668
+ from {
2669
+ opacity: 1
2670
+ }
2671
+ to {
2672
+ opacity: 0;
2673
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2674
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2675
+ }
2676
+ }
2677
+
2678
+ @keyframes rollOut {
2679
+ from {
2680
+ opacity: 1
2681
+ }
2682
+ to {
2683
+ opacity: 0;
2684
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2685
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2686
+ }
2687
+ }
2688
+
2689
+ .rollOut {
2690
+ -webkit-animation-name: rollOut;
2691
+ animation-name: rollOut
2692
+ }
2693
+
2694
+ @-webkit-keyframes zoomIn {
2695
+ from {
2696
+ opacity: 0;
2697
+ -webkit-transform: scale3d(.3, .3, .3);
2698
+ transform: scale3d(.3, .3, .3)
2699
+ }
2700
+ 50% {
2701
+ opacity: 1
2702
+ }
2703
+ }
2704
+
2705
+ @keyframes zoomIn {
2706
+ from {
2707
+ opacity: 0;
2708
+ -webkit-transform: scale3d(.3, .3, .3);
2709
+ transform: scale3d(.3, .3, .3)
2710
+ }
2711
+ 50% {
2712
+ opacity: 1
2713
+ }
2714
+ }
2715
+
2716
+ .zoomIn {
2717
+ -webkit-animation-name: zoomIn;
2718
+ animation-name: zoomIn
2719
+ }
2720
+
2721
+ @-webkit-keyframes zoomInDown {
2722
+ from {
2723
+ opacity: 0;
2724
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2725
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2726
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2727
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2728
+ }
2729
+ 60% {
2730
+ opacity: 1;
2731
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2732
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2733
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2734
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2735
+ }
2736
+ }
2737
+
2738
+ @keyframes zoomInDown {
2739
+ from {
2740
+ opacity: 0;
2741
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2742
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2743
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2744
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2745
+ }
2746
+ 60% {
2747
+ opacity: 1;
2748
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2749
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2750
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2751
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2752
+ }
2753
+ }
2754
+
2755
+ .zoomInDown {
2756
+ -webkit-animation-name: zoomInDown;
2757
+ animation-name: zoomInDown
2758
+ }
2759
+
2760
+ @-webkit-keyframes zoomInLeft {
2761
+ from {
2762
+ opacity: 0;
2763
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2764
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2765
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2766
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2767
+ }
2768
+ 60% {
2769
+ opacity: 1;
2770
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2771
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2772
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2773
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2774
+ }
2775
+ }
2776
+
2777
+ @keyframes zoomInLeft {
2778
+ from {
2779
+ opacity: 0;
2780
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2781
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2782
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2783
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2784
+ }
2785
+ 60% {
2786
+ opacity: 1;
2787
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2788
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2789
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2790
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2791
+ }
2792
+ }
2793
+
2794
+ .zoomInLeft {
2795
+ -webkit-animation-name: zoomInLeft;
2796
+ animation-name: zoomInLeft
2797
+ }
2798
+
2799
+ @-webkit-keyframes zoomInRight {
2800
+ from {
2801
+ opacity: 0;
2802
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2803
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2804
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2805
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2806
+ }
2807
+ 60% {
2808
+ opacity: 1;
2809
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2810
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2811
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2812
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2813
+ }
2814
+ }
2815
+
2816
+ @keyframes zoomInRight {
2817
+ from {
2818
+ opacity: 0;
2819
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2820
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2821
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2822
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2823
+ }
2824
+ 60% {
2825
+ opacity: 1;
2826
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2827
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2828
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2829
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2830
+ }
2831
+ }
2832
+
2833
+ .zoomInRight {
2834
+ -webkit-animation-name: zoomInRight;
2835
+ animation-name: zoomInRight
2836
+ }
2837
+
2838
+ @-webkit-keyframes zoomInUp {
2839
+ from {
2840
+ opacity: 0;
2841
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2842
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2843
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2844
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2845
+ }
2846
+ 60% {
2847
+ opacity: 1;
2848
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2849
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2850
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2851
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2852
+ }
2853
+ }
2854
+
2855
+ @keyframes zoomInUp {
2856
+ from {
2857
+ opacity: 0;
2858
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2859
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2860
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2861
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2862
+ }
2863
+ 60% {
2864
+ opacity: 1;
2865
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2866
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2867
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2868
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2869
+ }
2870
+ }
2871
+
2872
+ .zoomInUp {
2873
+ -webkit-animation-name: zoomInUp;
2874
+ animation-name: zoomInUp
2875
+ }
2876
+
2877
+ @-webkit-keyframes zoomOut {
2878
+ from {
2879
+ opacity: 1
2880
+ }
2881
+ 50% {
2882
+ opacity: 0;
2883
+ -webkit-transform: scale3d(.3, .3, .3);
2884
+ transform: scale3d(.3, .3, .3)
2885
+ }
2886
+ to {
2887
+ opacity: 0
2888
+ }
2889
+ }
2890
+
2891
+ @keyframes zoomOut {
2892
+ from {
2893
+ opacity: 1
2894
+ }
2895
+ 50% {
2896
+ opacity: 0;
2897
+ -webkit-transform: scale3d(.3, .3, .3);
2898
+ transform: scale3d(.3, .3, .3)
2899
+ }
2900
+ to {
2901
+ opacity: 0
2902
+ }
2903
+ }
2904
+
2905
+ .zoomOut {
2906
+ -webkit-animation-name: zoomOut;
2907
+ animation-name: zoomOut
2908
+ }
2909
+
2910
+ @-webkit-keyframes zoomOutDown {
2911
+ 40% {
2912
+ opacity: 1;
2913
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2914
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2915
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2916
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2917
+ }
2918
+ to {
2919
+ opacity: 0;
2920
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2921
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2922
+ -webkit-transform-origin: center bottom;
2923
+ transform-origin: center bottom;
2924
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2925
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2926
+ }
2927
+ }
2928
+
2929
+ @keyframes zoomOutDown {
2930
+ 40% {
2931
+ opacity: 1;
2932
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2933
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2934
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2935
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2936
+ }
2937
+ to {
2938
+ opacity: 0;
2939
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2940
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2941
+ -webkit-transform-origin: center bottom;
2942
+ transform-origin: center bottom;
2943
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2944
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2945
+ }
2946
+ }
2947
+
2948
+ .zoomOutDown {
2949
+ -webkit-animation-name: zoomOutDown;
2950
+ animation-name: zoomOutDown
2951
+ }
2952
+
2953
+ @-webkit-keyframes zoomOutLeft {
2954
+ 40% {
2955
+ opacity: 1;
2956
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2957
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2958
+ }
2959
+ to {
2960
+ opacity: 0;
2961
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2962
+ transform: scale(.1) translate3d(-2000px, 0, 0);
2963
+ -webkit-transform-origin: left center;
2964
+ transform-origin: left center
2965
+ }
2966
+ }
2967
+
2968
+ @keyframes zoomOutLeft {
2969
+ 40% {
2970
+ opacity: 1;
2971
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2972
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2973
+ }
2974
+ to {
2975
+ opacity: 0;
2976
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2977
+ transform: scale(.1) translate3d(-2000px, 0, 0);
2978
+ -webkit-transform-origin: left center;
2979
+ transform-origin: left center
2980
+ }
2981
+ }
2982
+
2983
+ .zoomOutLeft {
2984
+ -webkit-animation-name: zoomOutLeft;
2985
+ animation-name: zoomOutLeft
2986
+ }
2987
+
2988
+ @-webkit-keyframes zoomOutRight {
2989
+ 40% {
2990
+ opacity: 1;
2991
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2992
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
2993
+ }
2994
+ to {
2995
+ opacity: 0;
2996
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2997
+ transform: scale(.1) translate3d(2000px, 0, 0);
2998
+ -webkit-transform-origin: right center;
2999
+ transform-origin: right center
3000
+ }
3001
+ }
3002
+
3003
+ @keyframes zoomOutRight {
3004
+ 40% {
3005
+ opacity: 1;
3006
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
3007
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
3008
+ }
3009
+ to {
3010
+ opacity: 0;
3011
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
3012
+ transform: scale(.1) translate3d(2000px, 0, 0);
3013
+ -webkit-transform-origin: right center;
3014
+ transform-origin: right center
3015
+ }
3016
+ }
3017
+
3018
+ .zoomOutRight {
3019
+ -webkit-animation-name: zoomOutRight;
3020
+ animation-name: zoomOutRight
3021
+ }
3022
+
3023
+ @-webkit-keyframes zoomOutUp {
3024
+ 40% {
3025
+ opacity: 1;
3026
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3027
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3028
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
3029
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
3030
+ }
3031
+ to {
3032
+ opacity: 0;
3033
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3034
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3035
+ -webkit-transform-origin: center bottom;
3036
+ transform-origin: center bottom;
3037
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
3038
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
3039
+ }
3040
+ }
3041
+
3042
+ @keyframes zoomOutUp {
3043
+ 40% {
3044
+ opacity: 1;
3045
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3046
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
3047
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
3048
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
3049
+ }
3050
+ to {
3051
+ opacity: 0;
3052
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3053
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
3054
+ -webkit-transform-origin: center bottom;
3055
+ transform-origin: center bottom;
3056
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
3057
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
3058
+ }
3059
+ }
3060
+
3061
+ .zoomOutUp {
3062
+ -webkit-animation-name: zoomOutUp;
3063
+ animation-name: zoomOutUp
3064
+ }
3065
+
3066
+ @-webkit-keyframes slideInDown {
3067
+ from {
3068
+ -webkit-transform: translate3d(0, -100%, 0);
3069
+ transform: translate3d(0, -100%, 0);
3070
+ visibility: visible
3071
+ }
3072
+ to {
3073
+ -webkit-transform: translate3d(0, 0, 0);
3074
+ transform: translate3d(0, 0, 0)
3075
+ }
3076
+ }
3077
+
3078
+ @keyframes slideInDown {
3079
+ from {
3080
+ -webkit-transform: translate3d(0, -100%, 0);
3081
+ transform: translate3d(0, -100%, 0);
3082
+ visibility: visible
3083
+ }
3084
+ to {
3085
+ -webkit-transform: translate3d(0, 0, 0);
3086
+ transform: translate3d(0, 0, 0)
3087
+ }
3088
+ }
3089
+
3090
+ .sgpb-slideInDown {
3091
+ -webkit-animation-name: slideInDown;
3092
+ animation-name: slideInDown
3093
+ }
3094
+
3095
+ @-webkit-keyframes slideInLeft {
3096
+ from {
3097
+ -webkit-transform: translate3d(-100%, 0, 0);
3098
+ transform: translate3d(-100%, 0, 0);
3099
+ visibility: visible
3100
+ }
3101
+ to {
3102
+ -webkit-transform: translate3d(0, 0, 0);
3103
+ transform: translate3d(0, 0, 0)
3104
+ }
3105
+ }
3106
+
3107
+ @keyframes slideInLeft {
3108
+ from {
3109
+ -webkit-transform: translate3d(-100%, 0, 0);
3110
+ transform: translate3d(-100%, 0, 0);
3111
+ visibility: visible
3112
+ }
3113
+ to {
3114
+ -webkit-transform: translate3d(0, 0, 0);
3115
+ transform: translate3d(0, 0, 0)
3116
+ }
3117
+ }
3118
+
3119
+ .slideInLeft {
3120
+ -webkit-animation-name: slideInLeft;
3121
+ animation-name: slideInLeft
3122
+ }
3123
+
3124
+ @-webkit-keyframes slideInRight {
3125
+ from {
3126
+ -webkit-transform: translate3d(100%, 0, 0);
3127
+ transform: translate3d(100%, 0, 0);
3128
+ visibility: visible
3129
+ }
3130
+ to {
3131
+ -webkit-transform: translate3d(0, 0, 0);
3132
+ transform: translate3d(0, 0, 0)
3133
+ }
3134
+ }
3135
+
3136
+ @keyframes slideInRight {
3137
+ from {
3138
+ -webkit-transform: translate3d(100%, 0, 0);
3139
+ transform: translate3d(100%, 0, 0);
3140
+ visibility: visible
3141
+ }
3142
+ to {
3143
+ -webkit-transform: translate3d(0, 0, 0);
3144
+ transform: translate3d(0, 0, 0)
3145
+ }
3146
+ }
3147
+
3148
+ .slideInRight {
3149
+ -webkit-animation-name: slideInRight;
3150
+ animation-name: slideInRight
3151
+ }
3152
+
3153
+ @-webkit-keyframes slideInUp {
3154
+ from {
3155
+ -webkit-transform: translate3d(0, 100%, 0);
3156
+ transform: translate3d(0, 100%, 0);
3157
+ visibility: visible
3158
+ }
3159
+ to {
3160
+ -webkit-transform: translate3d(0, 0, 0);
3161
+ transform: translate3d(0, 0, 0)
3162
+ }
3163
+ }
3164
+
3165
+ @keyframes slideInUp {
3166
+ from {
3167
+ -webkit-transform: translate3d(0, 100%, 0);
3168
+ transform: translate3d(0, 100%, 0);
3169
+ visibility: visible
3170
+ }
3171
+ to {
3172
+ -webkit-transform: translate3d(0, 0, 0);
3173
+ transform: translate3d(0, 0, 0)
3174
+ }
3175
+ }
3176
+
3177
+ .sgpb-slideInUp {
3178
+ -webkit-animation-name: slideInUp;
3179
+ animation-name: slideInUp
3180
+ }
3181
+
3182
+ @-webkit-keyframes slideOutDown {
3183
+ from {
3184
+ -webkit-transform: translate3d(0, 0, 0);
3185
+ transform: translate3d(0, 0, 0)
3186
+ }
3187
+ to {
3188
+ visibility: hidden;
3189
+ -webkit-transform: translate3d(0, 100%, 0);
3190
+ transform: translate3d(0, 100%, 0)
3191
+ }
3192
+ }
3193
+
3194
+ @keyframes slideOutDown {
3195
+ from {
3196
+ -webkit-transform: translate3d(0, 0, 0);
3197
+ transform: translate3d(0, 0, 0)
3198
+ }
3199
+ to {
3200
+ visibility: hidden;
3201
+ -webkit-transform: translate3d(0, 100%, 0);
3202
+ transform: translate3d(0, 100%, 0)
3203
+ }
3204
+ }
3205
+
3206
+ .sgpb-slideOutDown {
3207
+ -webkit-animation-name: slideOutDown;
3208
+ animation-name: slideOutDown
3209
+ }
3210
+
3211
+ @-webkit-keyframes slideOutLeft {
3212
+ from {
3213
+ -webkit-transform: translate3d(0, 0, 0);
3214
+ transform: translate3d(0, 0, 0)
3215
+ }
3216
+ to {
3217
+ visibility: hidden;
3218
+ -webkit-transform: translate3d(-100%, 0, 0);
3219
+ transform: translate3d(-100%, 0, 0)
3220
+ }
3221
+ }
3222
+
3223
+ @keyframes slideOutLeft {
3224
+ from {
3225
+ -webkit-transform: translate3d(0, 0, 0);
3226
+ transform: translate3d(0, 0, 0)
3227
+ }
3228
+ to {
3229
+ visibility: hidden;
3230
+ -webkit-transform: translate3d(-100%, 0, 0);
3231
+ transform: translate3d(-100%, 0, 0)
3232
+ }
3233
+ }
3234
+
3235
+ .slideOutLeft {
3236
+ -webkit-animation-name: slideOutLeft;
3237
+ animation-name: slideOutLeft
3238
+ }
3239
+
3240
+ @-webkit-keyframes slideOutRight {
3241
+ from {
3242
+ -webkit-transform: translate3d(0, 0, 0);
3243
+ transform: translate3d(0, 0, 0)
3244
+ }
3245
+ to {
3246
+ visibility: hidden;
3247
+ -webkit-transform: translate3d(100%, 0, 0);
3248
+ transform: translate3d(100%, 0, 0)
3249
+ }
3250
+ }
3251
+
3252
+ @keyframes slideOutRight {
3253
+ from {
3254
+ -webkit-transform: translate3d(0, 0, 0);
3255
+ transform: translate3d(0, 0, 0)
3256
+ }
3257
+ to {
3258
+ visibility: hidden;
3259
+ -webkit-transform: translate3d(100%, 0, 0);
3260
+ transform: translate3d(100%, 0, 0)
3261
+ }
3262
+ }
3263
+
3264
+ .slideOutRight {
3265
+ -webkit-animation-name: slideOutRight;
3266
+ animation-name: slideOutRight
3267
+ }
3268
+
3269
+ @-webkit-keyframes slideOutUp {
3270
+ from {
3271
+ -webkit-transform: translate3d(0, 0, 0);
3272
+ transform: translate3d(0, 0, 0)
3273
+ }
3274
+ to {
3275
+ visibility: hidden;
3276
+ -webkit-transform: translate3d(0, -100%, 0);
3277
+ transform: translate3d(0, -100%, 0)
3278
+ }
3279
+ }
3280
+
3281
+ @keyframes slideOutUp {
3282
+ from {
3283
+ -webkit-transform: translate3d(0, 0, 0);
3284
+ transform: translate3d(0, 0, 0)
3285
+ }
3286
+ to {
3287
+ visibility: hidden;
3288
+ -webkit-transform: translate3d(0, -100%, 0);
3289
+ transform: translate3d(0, -100%, 0)
3290
+ }
3291
+ }
3292
+
3293
+ .sgpb-slideOutUp {
3294
+ -webkit-animation-name: slideOutUp;
3295
+ animation-name: slideOutUp
3296
+ }
3297
+
3298
+ .sgpb-iframe-spiner {
3299
+ background: url('data:image/gif;base64,R0lGODlh8ABAAaIHALa2tmNjY8XFxdbW1oyMjO/v7+bm5v///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0QTk5QUJDNTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0QTk5QUJENTA1RDExRTA4NTIwQzAwMjQyRkFEMkEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjRBOTlBQkE1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjRBOTlBQkI1MDVEMTFFMDg1MjBDMDAyNDJGQUQyQTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQJCgAHACwAAAAA8ABAAQAD/3i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsISAABAByINIESK8AhUpFng3IP8jRAHmChgw4KCjxwElUXIjwJKlA48BGjykCDJby5syM9ZUYLKiSmsFbrb8yZMi0QMwY14zIJTlTgpJsTFtelRCVGxNCWCY6VObUJIYMkrcNkBAVQsGAADY2LCt20oC4j4FUZEtNLlyRXi02wyvXLAeAMC86zcu3cHPChv+cNWZYsAdBHuMVlhvRr6O846o+7az50YFBkDGYEB0N78ZCqhdvU0xhtWwtT1GC3s15mkFZlcYUFvt7WmKMYcegDltb9mVGQxYzrxB77HZUCtnTt157G6/qVdvUOB3OO3NOYI/qw78vO2f06tfz769+/fw48ufT7++/fv48+vfz7+///9nAAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkkzwmAAAh+QQJCgAHACwAAAAA8ABAAQAD/3i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsMQAAhAHyINIESK8AhUpFnhnIP9jxHMbHXT0KLHBgJLbBKhU6cAjgQYCAsgMIEDbypsmM6I8MGDmzJ3Vbq4MuWAkAQMNfPrEVkCoSqQWlM7M5lQA1ApSZVJ1iiGmUqBBcWZQCoBbAQNXMxgAAIBow7dwJ4kV4dOtM64hpNpdVjUtBwBZoVWt+SFrAMFVQRhGLNTvBsBSo+FVrHQvs7l5Z1qOy7mzobObKQgAAPbaydNqlW47zRpD4GysT4eGmdXxtNgnbT+A/BU2brsD2ALtqdd37AZsk5dl8Nr4SeTKkyddWi669AYGBszuZp0tvO7L31mfp9yz+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///9jAAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJM7pgAACH5BAkKAAcALAAAAADwAEABAAP/eLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vv+Lx+z+/7/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwhAEBEA3Ig0gRYryKFOEVwBjx/1yBBxs5fmxgQCI3jA44CmgwgIBLAgO0qSSJ0aSCli9d2rSmcuSCkAJ8KsiZExvQijsnEH2ZTWVSCUtdNuWIAWfOmFMzZiCKVVuBkhweDhDasKxZSQPSdg0RoG0Ass3UqhXh1i1cZXLV3s0AoK5baHnnfvD791ngtCAItwUceC+GvoSjBabr13EyuSTqWj7LufMgAwOeWhAAYG02AKhRbybpd1vq1xgUZyvwOrXoBwIU34ZGu3ZpC5D9mqbmG0BSyABYKl7drHiDyAxka6v9XPqC1t0KwFUcwAFo5tq4wxP/rgBh8OPM2/XMvr379/Djy59Pv779+/jz69/Pv7///2sABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw26eSTUEYpJZAJAAAh+QQJCgAHACwAAAAA8ABAAQAD/3i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsIQBARANyINIEWK8ihThFcAY8f/dRo4FHBQIyW2ASZMOOApo8JCixGwnY7LE+FLBx4okr8U8mdMmxZ4HVK7EttNkTQpCYRYFKiEp0aIYWuLUtlMDTW4FDDC9YOBow69gJwEYC4AEgbMEti4jS1YEWrRqkbElOwDEgLdooc1t+wFv3md7x4Lwe1bv3rof7vqNttct3rjJ2JqFG7ay5UYDAAy1CgDxtgCgQXudYCA06M+mT19IrfpaadabJwhgHWC0tAG0y1YAQNtztQK9G/AOoHsBbtaQn9FuwJp5c22pnT9fEB3rgNG0AzgwMCA5t+zwwHtEHg94aO+X06tfz769+/fw48ufT7++/fv48+vfz7+///9nAAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkkzEmAAAh+QQJCgAHACwAAAAA8ABAAQAD/3i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsESBARALyINIEWK8ihQvYhwg0f9cgY4NNnJ08LEbgJMnHYhsYECASwEGtKGc2eBhRZAHCrx8ibPaTJQxQ1pssHMntgI/Tw64UPTl0aQAglZo6jIbVAwti/b0OXPrhKJSsxkYEDaDgbIN06qNVCCA2wAkjEZr+9atiKbR6r4FACJrUWh634KgKgBwYLgfCBvWy/eDX7nO6Na9+3fu5BGQ12revGgAgMIbBghYyk0vWgkGCKhWve0whtWwxR4GTWEA7NWnow043JiCgNuqc0OTXJf0AgBueyuwDdyrNNcMAjcATqD15QWHES+43e0h2uwOzjr/Bv5deXfE3Y5HR3w95/fw48ufT7++/fv48+vfz7+///9uAAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFaZYwIAIfkECQoABwAsAAAAAPAAQAEAA/94utz+MMpJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLCEAQAQB8iDSBFivIoU4RXACNH/gLkCAzw22MhR5LgAKFE64Ahg5ICXAwpoS0mzwcOKJg+AhPkyWwGaKSUyIAlAJgOePLENAIqypQWkMLEZYBpAwAWoPbFRxbCTp1GtNHNWQPo12wAAVjkYKNuwrVtJP1OSEEA3LbS4NUPUrRuNqlMPBvbyfUY1AAjBg50VPozYbjO/IAIjvstUxORoeA2P2Pu2s2dHZx1jMBCzG1CxFARv23qhcbapTEVHkKxaKeQKtPeynZY5aIMBBAgIXVDAdTbWC4IrJ9DA+PG8yZcrb86ZG0jU0qc72C0ue3B43pm/K5Cduzryys1/Xs++vfv38OPLn0+/vv37+PPr38+/v///aQAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbp5JNQRnljAgAh+QQJCgAHACwAAAAA8ABAAQAD/3i63P4wykmrvTjrzbv/YCiOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsISAABAByINIESK8AhUpFng3IP8jRAHmCgww4KCjxwEOCmzkltGBxwANDACYCYBktpcNHlYEuUAmzZkrrWE82cBkAJQMfv7EZrSiRAtKaWIz8JJnhagzb3rE4POnTWwZv0L9iVTbAABWM4gs27Ct20lDLY4YQJets7gURdStG+3lUw9r99pd9hLmB8F8nxUGgZguNL8gAu+FhlcuY8HS8JKY/Laz50YDBAy2YGBAUG0EUqcWW0GAa9fbVMvG8Lp2NgOyVY9+YKD269u5U6eV0Nu3gNPUCgQnYLc46wLGh1dbntN3deuoZzOIPhz7tgIGWB/g/gD5OPLv0Kf3Ds/25/fw48ufT7++/fv48+vfz7+///9uAAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFY5ZAIAIfkEBQoABwAsAAAAAPAAQAEAA/94utz+MMpJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLCEgAAQAciDSBEivAIVKRZ4NyD/I0QB5goMMOCgo8cBJVFyy+jAY4AGDymCzOYSZsaZCkxWVGkN48kGOnkqcPnyms6KEi0QxWbAJU4KS7HVvBBzp7aMJDFkTKptAICnGAwAALCxodmzlAoQWEuAxNix0tSyXSvi7dtoc9kK5eDVLtxnedmC8HsXcOC2Hwj/dXZ474a+fqHJnVs3crTJiCsvRsu58yKRWTUUMFB2m4DTpzUMWL3aNGrUGFjL1vYadegJImW3xlag9unbEgzo3o3Nt4DSCgz8bpBbN23fMGsDHe4aNgPjYJ13Q74AOzzv78CHly7vtefz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///ZAAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbJYwIAOw==') center center no-repeat
3300
+ }
3301
+
3302
+ .sgpb-alert {
3303
+ padding: 15px;
3304
+ border: 1px solid transparent;
3305
+ border-radius: 4px;
3306
+ text-align: center
3307
+ }
3308
+
3309
+ .sgpb-alert-info {
3310
+ color: #31708f;
3311
+ background-color: #d9edf7;
3312
+ border-color: #bce8f1
3313
+ }
3314
+
3315
+ .sgpb-alert-success {
3316
+ color: #3c763d;
3317
+ background-color: #dff0d8;
3318
+ border-color: #d6e9c6
3319
+ }
3320
+
3321
+ .sgpb-alert-danger {
3322
+ color: #a94442;
3323
+ background-color: #f2dede;
3324
+ border-color: #ebccd1
3325
+ }
3326
+
3327
+ .sgpb-alert p {
3328
+ margin-bottom: 0px
3329
+ }
3330
+
3331
+ [id*="__lpform_sgpb-"] {
3332
+ position: fixed !important
3333
+ }
public/css/styles.css CHANGED
@@ -3,7 +3,7 @@
3
  background-color: #333;
4
  margin-top: 20px;
5
  width: calc(100% - 20px);
6
- border: 1px #5c5c5c solid;
7
  position: relative;
8
  }
9
 
@@ -19,7 +19,7 @@
19
 
20
  #bg-wrapper a {
21
  font-size: 15px;
22
- color: #2780e3;
23
  text-decoration: none;
24
  }
25
 
@@ -29,6 +29,15 @@
29
  text-decoration: underline;
30
  }
31
 
 
 
 
 
 
 
 
 
 
32
  .bg-content {
33
  margin-left: 210px;
34
  min-height: 540px;
@@ -37,6 +46,7 @@
37
  position: relative;
38
  }
39
 
 
40
  .bg-content-dark {
41
  background-color: transparent;
42
  }
@@ -53,18 +63,33 @@
53
  }
54
 
55
  .bg-form-control {
 
 
 
 
 
56
  display: block;
57
  width: 100%;
58
- height: 43px !important;
59
- padding: 10px 18px !important;
60
- font-size: 15px !important;
61
- line-height: 1.42857143 !important;
62
- color: #333;
63
- background-color: #fff;
64
- background-image: none;
65
- border: 1px solid #ccc;
66
- border-radius: 0;
67
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
 
 
 
 
 
 
 
 
 
68
  }
69
 
70
  #bg-wrapper .bg-btn {
@@ -163,7 +188,7 @@
163
  position: relative;
164
  display: inline-block;
165
  font-size: 15px;
166
- color: #2780e3;
167
  cursor: pointer;
168
  }
169
 
@@ -210,7 +235,7 @@
210
  /* Login screen related styles */
211
 
212
  .bg-login-container {
213
- width: 300px;
214
  margin: 51px auto;
215
  overflow: auto;
216
  }
@@ -248,7 +273,7 @@
248
  .bg-license-container h1 {
249
  font-size: 22.5px;
250
  font-weight: normal;
251
- margin-bottom: 30px;
252
  margin-top: 0;
253
  }
254
 
@@ -258,9 +283,9 @@
258
  }
259
 
260
  .bg-license-content {
261
- padding: 25px;
262
  background-color: #fff;
263
  overflow: auto;
 
264
  }
265
 
266
  .bg-file-icon {
@@ -285,3 +310,30 @@
285
  background: none !important;
286
  width: 5px !important;
287
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  background-color: #333;
4
  margin-top: 20px;
5
  width: calc(100% - 20px);
6
+ border: 0px #5c5c5c solid;
7
  position: relative;
8
  }
9
 
19
 
20
  #bg-wrapper a {
21
  font-size: 15px;
22
+ color: #0021C8;
23
  text-decoration: none;
24
  }
25
 
29
  text-decoration: underline;
30
  }
31
 
32
+ .bg-try-again {
33
+ color: #0021C8 !important;
34
+ margin-right: 20px;
35
+ }
36
+
37
+ .bg-try-again:hover {
38
+ text-decoration: none !important;
39
+ }
40
+
41
  .bg-content {
42
  margin-left: 210px;
43
  min-height: 540px;
46
  position: relative;
47
  }
48
 
49
+
50
  .bg-content-dark {
51
  background-color: transparent;
52
  }
63
  }
64
 
65
  .bg-form-control {
66
+ box-shadow: none !important;
67
+ border-bottom: 2px solid #000000 !important;
68
+ border-right: 0px solid #000000 !important;
69
+ border-top: 0px solid #000000 !important;
70
+ border-left: 0px solid #000000 !important;
71
  display: block;
72
  width: 100%;
73
+ padding-left: 0px !important;
74
+ padding-top: 16px;
75
+ padding-bottom: 16px;
76
+ font-size: 18px;
77
+ border-radius: 0 !important;
78
+ }
79
+
80
+ .bg-login-content label {
81
+ font-size: 16px;
82
+ line-height: 16px;
83
+ font-weight: bold;
84
+ }
85
+
86
+ .sg-button-wrapper {
87
+ margin-right: 0 !important;
88
+ width: 100% !important;
89
+ }
90
+
91
+ .sg-login-logo {
92
+ margin-left: 20px;
93
  }
94
 
95
  #bg-wrapper .bg-btn {
188
  position: relative;
189
  display: inline-block;
190
  font-size: 15px;
191
+ color: #0021C8;
192
  cursor: pointer;
193
  }
194
 
235
  /* Login screen related styles */
236
 
237
  .bg-login-container {
238
+ width: 330px;
239
  margin: 51px auto;
240
  overflow: auto;
241
  }
273
  .bg-license-container h1 {
274
  font-size: 22.5px;
275
  font-weight: normal;
276
+ margin-bottom: 10px;
277
  margin-top: 0;
278
  }
279
 
283
  }
284
 
285
  .bg-license-content {
 
286
  background-color: #fff;
287
  overflow: auto;
288
+ box-sizing: border-box;
289
  }
290
 
291
  .bg-file-icon {
310
  background: none !important;
311
  width: 5px !important;
312
  }
313
+
314
+ .sg-switch-container .bootstrap-switch-default {
315
+ background-color: #000000 !important;
316
+ color: #FFFFFF !important;
317
+ }
318
+
319
+ p.bg-license-btn-wrapper {
320
+ margin-top: 37px;
321
+ text-align: center !important;
322
+ }
323
+
324
+ #link-btn {
325
+ margin-top: 30px;
326
+ }
327
+
328
+ select#product {
329
+ margin-top: 2px;
330
+ text-indent: 4px;
331
+ }
332
+
333
+ .bg-license-content {
334
+ text-align: center;
335
+ }
336
+
337
+ .bg-license-content.sg-wrapper-less {
338
+ margin-top: 0 !important;
339
+ }
public/img/FAQ.png CHANGED
Binary file
public/img/TW.png CHANGED
Binary file
public/img/banerLogo.png ADDED
Binary file
public/img/contact-us.png CHANGED
Binary file
public/img/discount.png ADDED
Binary file
public/img/fb.png CHANGED
Binary file
public/img/full-demo.png CHANGED
Binary file
public/img/logo-horizontal.png CHANGED
Binary file
public/img/notice-section-bg.png ADDED
Binary file
public/img/reviewBannerLogo.png ADDED
Binary file
public/img/section-1-bg.png ADDED
Binary file
public/img/sgBackupVerticalLogo.png ADDED
Binary file
public/img/sglogo.png CHANGED
Binary file
public/img/user-manual.png CHANGED
Binary file
public/img/youtube.png CHANGED
Binary file
public/include/functions.php CHANGED
@@ -267,7 +267,7 @@ function backupGuardLoggedMessage()
267
  }
268
 
269
  $html = '<span class="bg-logged-msg-container">';
270
- $html .= 'Package: '.backupGuardGetProductName();
271
  $html .= ' | Welcome, <b>'.$user['firstname'].'</b>! ';
272
  $html .= '(<a href="javascript:void(0)" onclick="sgBackup.logout()">Log Out</a>)</span>';
273
  return $html;
267
  }
268
 
269
  $html = '<span class="bg-logged-msg-container">';
270
+ $html .= 'Package: '.backupGuardGetProductName() .' | Version: '.SG_BACKUP_GUARD_VERSION;
271
  $html .= ' | Welcome, <b>'.$user['firstname'].'</b>! ';
272
  $html .= '(<a href="javascript:void(0)" onclick="sgBackup.logout()">Log Out</a>)</span>';
273
  return $html;
public/include/sidebar.php CHANGED
@@ -9,6 +9,7 @@
9
  $buttonUrl = SG_BACKUP_SITE_URL;
10
 
11
  $pluginCapabilities = backupGuardGetCapabilities();
 
12
  if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
13
  $buttonText = 'Upgrade to ';
14
  $buttonUrl = SG_BACKUP_PRODUCTS_URL;
@@ -24,6 +25,10 @@
24
  $upgradeText = $buttonText.$upgradeTo.' by paying only difference between plans.';
25
  $buttonText = $buttonText.$upgradeTo;
26
  }
 
 
 
 
27
  ?>
28
  <div id="sg-sidebar-wrapper" class="metro">
29
  <nav class="sidebar dark">
@@ -64,7 +69,7 @@
64
  </a>
65
  </li>
66
  <li class="<?php echo strpos($page,'support')?'active':''?>">
67
- <a href="<?php echo network_admin_url('admin.php?page=backup_guard_support'); ?>">
68
  <span class="glyphicon glyphicon-envelope" aria-hidden="true"></span><?php _backupGuardT('Support')?>
69
  </a>
70
  </li>
9
  $buttonUrl = SG_BACKUP_SITE_URL;
10
 
11
  $pluginCapabilities = backupGuardGetCapabilities();
12
+
13
  if ($pluginCapabilities != BACKUP_GUARD_CAPABILITIES_FREE) {
14
  $buttonText = 'Upgrade to ';
15
  $buttonUrl = SG_BACKUP_PRODUCTS_URL;
25
  $upgradeText = $buttonText.$upgradeTo.' by paying only difference between plans.';
26
  $buttonText = $buttonText.$upgradeTo;
27
  }
28
+ $supportUrl = network_admin_url('admin.php?page=backup_guard_support');
29
+ if ($pluginCapabilities == BACKUP_GUARD_CAPABILITIES_FREE) {
30
+ $supportUrl = BACKUP_GUARD_WORDPRESS_SUPPORT_URL;
31
+ }
32
  ?>
33
  <div id="sg-sidebar-wrapper" class="metro">
34
  <nav class="sidebar dark">
69
  </a>
70
  </li>
71
  <li class="<?php echo strpos($page,'support')?'active':''?>">
72
+ <a href="<?php echo $supportUrl; ?>">
73
  <span class="glyphicon glyphicon-envelope" aria-hidden="true"></span><?php _backupGuardT('Support')?>
74
  </a>
75
  </li>
public/include/uninstallSurveyPopup.php CHANGED
@@ -1,4 +1,4 @@
1
- <div id="bg-deactivation-survey-popup-container" class="bg-deactivation-survey-popup-container is-dismissible">
2
  <div class="bg-deactivation-survey-popup-overlay"></div>
3
 
4
  <div class="bg-deactivation-survey-popup-tbl">
1
+ <div id="bg-deactivation-survey-popup-container" class="bg-deactivation-survey-popup-container is-dismissible" style="display: none;">
2
  <div class="bg-deactivation-survey-popup-overlay"></div>
3
 
4
  <div class="bg-deactivation-survey-popup-tbl">
public/js/deactivationSurvey.js CHANGED
@@ -27,6 +27,7 @@ jQuery("#bg-skip-and-deactivate").on("click", function () {
27
  };
28
 
29
  jQuery.post(ajaxurl, data, function(response) {
 
30
  window.location.replace(deactivationUrl);
31
  });
32
  });
27
  };
28
 
29
  jQuery.post(ajaxurl, data, function(response) {
30
+ }).always(function() {
31
  window.location.replace(deactivationUrl);
32
  });
33
  });
public/js/jquery.rateyo.js CHANGED
@@ -26,7 +26,7 @@
26
  var DEFAULTS = {
27
 
28
  starWidth : "32px",
29
- normalFill: "gray",
30
  ratedFill : "#f39c12",
31
  numStars : 5,
32
  maxValue : 5,
26
  var DEFAULTS = {
27
 
28
  starWidth : "32px",
29
+ normalFill: "rgba(255, 255, 255, 0.2)",
30
  ratedFill : "#f39c12",
31
  numStars : 5,
32
  maxValue : 5,
public/js/main.js CHANGED
@@ -29,7 +29,8 @@ jQuery(document).ready( function() {
29
  spacing: "3px",
30
  starWidth: "16px",
31
  starHeight: "16px",
32
- rating: 4.5
 
33
  });
34
 
35
  if (typeof SG_AJAX_REQUEST_FREQUENCY === 'undefined'){
29
  spacing: "3px",
30
  starWidth: "16px",
31
  starHeight: "16px",
32
+ rating: 4.5,
33
+ ratedFill: "#ffffff"
34
  });
35
 
36
  if (typeof SG_AJAX_REQUEST_FREQUENCY === 'undefined'){
public/js/popup.js ADDED
@@ -0,0 +1,1518 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function PopupConfig() {
2
+ this.prefix = 'sgpb';
3
+ this.popupId;
4
+ this.popupData;
5
+ this.openDelay = 0;
6
+ this.currentObj = {};
7
+ this.allowed = true;
8
+ this.showButton = true;
9
+ this.buttonPosition = 'topRight';
10
+ this.buttonInside = true;
11
+ this.autoclose = false;
12
+ this.overlayShouldClose = true;
13
+ this.contentShouldClose = false;
14
+ this.escShouldClose = true;
15
+ this.closeButtonImage = 'img/close.png';
16
+ this.popupTheme = 1;
17
+ this.popupType = 'html';
18
+ this.closeButtonWidth = 21;
19
+ this.closeButtonHeight = 21;
20
+ this.closeButtonWidthType = 'px';
21
+ this.closeButtonHeightType = 'px';
22
+ this.closeButtonType = 'IMG';
23
+ this.closeButtonText = 'Close';
24
+ this.closeButtonDelay = 0;
25
+ this.overlayVisible = true;
26
+ this.overlayColor = 'black';
27
+ this.overlayOpacity = 80;
28
+ this.overlayAddClass = 'sgpb-popup-overlay sg-popup-overlay';
29
+ this.contentPadding = 8;
30
+ this.zIndex = 9999;
31
+ this.contentShowBackground = true;
32
+ this.contentBackgroundColor = '#ffffff';
33
+ this.contentBackgroundImage = '';
34
+ this.contentBackgroundMode = 'none';
35
+ this.contentBackgroundPosition = '';
36
+ this.contentBorderStyle = 'solid';
37
+ this.contentBorderRadius = 0;
38
+ this.contentBorderRadiusType = '%';
39
+ this.contentBorderColor = '#f00';
40
+ this.contentBorderWidth = 0;
41
+ this.boxBorderWidth = 0;
42
+ this.contentShadowColor = '#ccc';
43
+ this.contentShadowBlur = 0;
44
+ this.scrollingEnabled = false;
45
+ this.shadowSpread = 0;
46
+ this.contentAddClass = 'class2';
47
+ this.contents = false;
48
+ this.positionRight = false;
49
+ this.positionTop = false;
50
+ this.positionBottom = false;
51
+ this.positionLeft = false;
52
+ this.width = '-1';
53
+ this.height = '-1';
54
+ this.maxWidth = '-1';
55
+ this.maxHeight = '-1';
56
+ this.minWidth = '-1';
57
+ this.minHeight = '-1';
58
+ this.srcElement = '';
59
+ this.openAnimationEffect = '';
60
+ this.openAnimationSpeed = 0;
61
+ this.openAnimationStatus = false;
62
+ this.closeAnimationEffect = '';
63
+ this.closeAnimationSpeed = 0;
64
+ this.closeAnimationStatus = false;
65
+ this.customShouldOpen = false;
66
+ this.customShouldClose = false;
67
+ }
68
+ String.prototype.firstToLowerCase = function() {
69
+ return this.charAt(0).toLowerCase() + this.slice(1);
70
+ };
71
+ String.prototype.firstToUpperCase = function() {
72
+ return this.charAt(0).toUpperCase() + this.slice(1);
73
+ };
74
+ PopupConfig.prototype.magicCall = function(functionName, arrgname) {
75
+ if (functionName.indexOf('get') != -1) {
76
+ var param = functionName.replace(/^get/g, "").firstToLowerCase();
77
+ return this[param];
78
+ } else {
79
+ var param = functionName.replace(/^set/g, "").firstToLowerCase();
80
+ this[param] = arrgname;
81
+ }
82
+ };
83
+ PopupConfig.prototype.addCustomEvent = function(eventName, args) {
84
+ var event = document.createEvent('CustomEvent');
85
+ event.initCustomEvent(eventName, true, true, args);
86
+ window.dispatchEvent(event);
87
+ };
88
+ PopupConfig.prototype.combineConfigObj = function() {
89
+ var that = this;
90
+ var eventSendArgs = {
91
+ 'popupId': that.popupId,
92
+ 'popupData': that.popupData,
93
+ 'currentObj': that.currentObj
94
+ };
95
+ window.sgWindowOldWidth = window.innerWidth;
96
+ window.sgWindowOldHeight = window.innerHeight;
97
+ var config = {
98
+ popupId: that.popupId,
99
+ openDelay: this.openDelay,
100
+ popupTheme: this.popupTheme,
101
+ popupType: this.popupType,
102
+ closeBehavior: {
103
+ allowed: this.allowed,
104
+ showButton: this.showButton,
105
+ buttonPosition: this.buttonPosition,
106
+ buttonInside: this.buttonInside,
107
+ autoclose: this.autoclose,
108
+ overlayShouldClose: this.overlayShouldClose,
109
+ contentShouldClose: this.contentShouldClose,
110
+ escShouldClose: this.escShouldClose,
111
+ right: this.closeButtonPositionRight,
112
+ top: this.closeButtonPositionTop,
113
+ bottom: this.closeButtonPositionBottom,
114
+ left: this.closeButtonPositionLeft
115
+ },
116
+ openAnimation: {
117
+ type: this.openAnimationEffect,
118
+ speed: this.openAnimationSpeed,
119
+ status: this.openAnimationStatus
120
+ },
121
+ closeAnimation: {
122
+ type: this.closeAnimationEffect,
123
+ speed: this.closeAnimationSpeed,
124
+ status: this.closeAnimationStatus
125
+ },
126
+ closeButton: {
127
+ data: this.buttonImage,
128
+ width: this.closeButtonWidth,
129
+ height: this.closeButtonHeight,
130
+ widthType: this.closeButtonWidthType,
131
+ heightType: this.closeButtonHeightType,
132
+ type: this.closeButtonType,
133
+ text: this.closeButtonText
134
+ },
135
+ overlay: {
136
+ visible: this.overlayVisible,
137
+ color: this.overlayColor,
138
+ opacity: this.overlayOpacity,
139
+ addClass: this.overlayAddClass
140
+ },
141
+ contentBox: {
142
+ padding: this.contentPadding,
143
+ zIndex: this.zIndex,
144
+ showBackground: this.contentShowBackground,
145
+ backgroundColor: this.contentBackgroundColor,
146
+ backgroundImage: this.contentBackgroundImage,
147
+ backgroundMode: this.contentBackgroundMode,
148
+ backgroundPosition: this.contentBackgroundPosition,
149
+ borderStyle: this.contentBorderStyle,
150
+ borderRadius: this.contentBorderRadius,
151
+ borderRadiusType: this.contentBorderRadiusType,
152
+ borderColor: this.contentBorderColor,
153
+ borderWidth: this.contentBorderWidth,
154
+ boxBorderWidth: this.boxBorderWidth,
155
+ shadowColor: this.contentShadowColor,
156
+ shadowBlur: this.contentShadowBlur,
157
+ scrollingEnabled: this.scrollingEnabled,
158
+ shadowSpread: this.shadowSpread,
159
+ addClass: this.contentAddClass
160
+ },
161
+ contents: this.contents,
162
+ inline: this.srcElement,
163
+ iframe: false,
164
+ position: {
165
+ right: this.positionRight,
166
+ top: this.positionTop,
167
+ bottom: this.positionBottom,
168
+ left: this.positionLeft
169
+ },
170
+ sizingRanges: [{
171
+ screenFrom: {
172
+ width: 0,
173
+ height: 0
174
+ },
175
+ screenTo: {
176
+ width: 300,
177
+ height: 3000
178
+ },
179
+ width: '100%',
180
+ height: this.height,
181
+ maxWidth: this.maxWidth,
182
+ maxHeight: this.maxHeight,
183
+ minWidth: this.minWidth,
184
+ minHeight: this.minHeight
185
+ }, {
186
+ screenFrom: {
187
+ width: 300,
188
+ height: 0
189
+ },
190
+ screenTo: {
191
+ width: 3000,
192
+ height: 3000
193
+ },
194
+ width: this.width,
195
+ height: this.height,
196
+ maxWidth: this.maxWidth,
197
+ maxHeight: this.maxHeight,
198
+ minWidth: this.minWidth,
199
+ minHeight: this.minHeight
200
+ }],
201
+ shouldOpen: function() {
202
+ return true;
203
+ },
204
+ willOpen: function() {
205
+ that.addCustomEvent('sgpbWillOpen', eventSendArgs);
206
+ },
207
+ didOpen: function(args) {
208
+ var finalArgs = Object.assign(args, eventSendArgs);
209
+ that.addCustomEvent('sgpbDidOpen', finalArgs);
210
+ },
211
+ shouldClose: function() {
212
+ return true;
213
+ },
214
+ willClose: function() {
215
+ that.addCustomEvent('sgpbWillClose', eventSendArgs);
216
+ },
217
+ didClose: function() {
218
+ that.addCustomEvent('sgpbDidClose', eventSendArgs);
219
+ }
220
+ };
221
+ if (this.customShouldOpen) {
222
+ config.shouldOpen = this.customShouldOpen;
223
+ }
224
+ if (this.customShouldClose) {
225
+ config.shouldClose = this.customShouldClose;
226
+ }
227
+ return config;
228
+ };
229
+ var obj = new PopupConfig();
230
+
231
+ function SGPopup(config) {
232
+ var integrations = config.integrations;
233
+ var popupName = config.popupName;
234
+ var initialConfig = config;
235
+ var prefix = config.prefix || 'sgpb';
236
+ var isInited = false;
237
+ var mainDiv = null;
238
+ var contentDiv = null;
239
+ var DIV = null;
240
+ var opened = false;
241
+ var resizeTimeout = null;
242
+ var overlayDiv = null;
243
+ var defaultZIndex = 9999;
244
+ var defaultWidth = "640px";
245
+ var defaultHeight = config.autoHeight;
246
+ var closeButtonImage = null;
247
+ var popupId = config.id;
248
+ var showOnce = config.showOnce || false;
249
+ var events = config.events || [];
250
+ var openDelay = config.openDelay || 0;
251
+ var popupTheme = config.popupTheme;
252
+ var popupType = config.popupType;
253
+ var fitBackgroundImg = null;
254
+ var parentThis = this;
255
+ var openAnimation = config.openAnimation || {
256
+ type: "none",
257
+ speed: 0
258
+ };
259
+ var closeAnimation = config.closeAnimation || {
260
+ type: "none",
261
+ speed: 0
262
+ };
263
+ var closeBehavior = config.closeBehavior || {
264
+ allowed: true,
265
+ showButton: true,
266
+ buttonPosition: 'topLeft',
267
+ buttonInside: true,
268
+ autoclose: false,
269
+ overlayShouldClose: true,
270
+ contentShouldClose: false,
271
+ escShouldClose: true
272
+ };
273
+ var closeButton = config.closeButton || {
274
+ data: 'img/close.png',
275
+ width: 16,
276
+ height: 16,
277
+ widthType: 'px',
278
+ heightType: 'px',
279
+ closeButtonType: 'IMG',
280
+ closeButtonText: 'Close'
281
+ };
282
+ var overlay = config.overlay || {
283
+ visible: true,
284
+ color: "#000",
285
+ opacity: 0.7
286
+ };
287
+ var contentBox = config.contentBox || {
288
+ padding: 8,
289
+ showBackground: true,
290
+ backgroundColor: "#fff",
291
+ borderStyle: "solid",
292
+ borderColor: "#ccc",
293
+ borderRadius: 4,
294
+ borderRadiusType: 'px',
295
+ borderWidth: 1,
296
+ shadowColor: "#ccc",
297
+ shadowSpread: 0,
298
+ shadowBlur: 10,
299
+ scrollingEnabled: true,
300
+ backgroundPosition: ''
301
+ };
302
+ var contents = config.contents || "";
303
+ var inline = config.inline || false;
304
+ var href = config.href || false;
305
+ var position = config.position || {
306
+ left: "center",
307
+ top: "center"
308
+ };
309
+ if ((typeof position.left == "undefined" || (isNaN(parseInt(position.left)) && position.left != "center")) && (typeof position.right == "undefined" || (isNaN(parseInt(position.right)) && position.right != "center"))) {
310
+ position.left = "center";
311
+ }
312
+ if ((typeof position.top == "undefined" || (isNaN(parseInt(position.top)) && position.top != "center")) && (typeof position.bottom == "undefined" || (isNaN(parseInt(position.bottom)) && position.bottom != "center"))) {
313
+ position.top = "center";
314
+ }
315
+ var sizingRanges = config.sizingRanges || [{
316
+ screenFrom: {
317
+ width: -1,
318
+ height: -1
319
+ },
320
+ screenTo: {
321
+ width: -1,
322
+ height: -1
323
+ },
324
+ width: defaultWidth,
325
+ height: defaultHeight,
326
+ maxWidth: -1,
327
+ maxHeight: -1,
328
+ minWidth: -1,
329
+ minHeight: -1
330
+ }];
331
+ var shouldOpen = config.shouldOpen || function() {
332
+ return true;
333
+ };
334
+ var willOpen = config.willOpen || function() {};
335
+ var didOpen = config.didOpen || function() {};
336
+ var shouldClose = config.shouldClose || function() {
337
+ return true;
338
+ };
339
+ var willClose = config.willClose || function() {};
340
+ var didClose = config.didClose || function() {};
341
+ SGPopup.inlinePrevTarget = SGPopup.inlinePrevTarget || {};
342
+
343
+ function resetInlineContent() {
344
+ if (inline) {
345
+ var htmlElement = document.getElementById(inline);
346
+ if (SGPopup.inlinePrevTarget.hasPreviousElement) {
347
+ if (typeof SGPopup.inlinePrevTarget.parentNode != 'undefined') {
348
+ SGPopup.inlinePrevTarget.parentNode.insertBefore(htmlElement, SGPopup.inlinePrevTarget.node.nextSibling);
349
+ }
350
+ } else {
351
+ SGPopup.inlinePrevTarget.node.appendChild(htmlElement);
352
+ }
353
+ }
354
+ }
355
+ var OPEN_ANIMATION_POP = "@-webkit-keyframes popin{from{-webkit-transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes popin{from{-moz-transform:scale(.8);opacity:0}to{-moz-transform:scale(1);opacity:1}}@keyframes popin{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}";
356
+ var OPEN_ANIMATION_FADE = "@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-moz-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}";
357
+ var OPEN_ANIMATION_FLIP = "@-webkit-keyframes flipintoright{from{-webkit-transform:rotateY(90deg) scale(.9)}to{-webkit-transform:rotateY(0)}}@-moz-keyframes flipintoright{from{-moz-transform:rotateY(90deg) scale(.9)}to{-moz-transform:rotateY(0)}}@keyframes flipintoright{from{transform:rotateY(90deg) scale(.9)}to{transform:rotateY(0)}}";
358
+ var OPEN_ANIMATION_SLIDELEFT = "@-webkit-keyframes slideinfromright{from{-webkit-transform:translate3d({start},0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromright{from{-moz-transform:translateX({start})}to{-moz-transform:translateX(0)}}@keyframes slideinfromright{from{transform:translateX({start})}to{transform:translateX(0)}}";
359
+ var OPEN_ANIMATION_SLIDERIGHT = "@-webkit-keyframes slideinfromleft{from{-webkit-transform:translate3d({start},0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideinfromleft{from{-moz-transform:translateX({start})}to{-moz-transform:translateX(0)}}@keyframes slideinfromleft{from{transform:translateX({start})}to{transform:translateX(0)}}";
360
+ var OPEN_ANIMATION_FLOW = "@-webkit-keyframes flowinfromright{0%{-webkit-transform:translateX(100%) scale(.7)}30%,40%{-webkit-transform:translateX(0) scale(.7)}100%{-webkit-transform:translateX(0) scale(1)}}@-moz-keyframes flowinfromright{0%{-moz-transform:translateX(100%) scale(.7)}30%,40%{-moz-transform:translateX(0) scale(.7)}100%{-moz-transform:translateX(0) scale(1)}}@keyframes flowinfromright{0%{transform:translateX(100%) scale(.7)}30%,40%{transform:translateX(0) scale(.7)}100%{transform:translateX(0) scale(1)}}";
361
+ var OPEN_ANIMATION_SLIDEUP = "@-webkit-keyframes slideinfrombottom{from{-webkit-transform:translateY({start})}to{-webkit-transform:translateY(0)}}@-moz-keyframes slideinfrombottom{from{-moz-transform:translateY({start})}to{-moz-transform:translateY(0)}}@keyframes slideinfrombottom{from{transform:translateY({start})}to{transform:translateY(0)}}";
362
+ var OPEN_ANIMATION_SLIDEDOWN = "@-webkit-keyframes slideinfromtop{from{-webkit-transform:translateY({start})}to{-webkit-transform:translateY(0)}}@-moz-keyframes slideinfromtop{from{-moz-transform:translateY({start})}to{-moz-transform:translateY(0)}}@keyframes slideinfromtop{from{transform:translateY({start})}to{transform:translateY(0)}}";
363
+ var CLOSE_ANIMATION_SLIDELEFT = "@-webkit-keyframes slideouttoleft{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d({end},0,0)}}@-moz-keyframes slideouttoleft{from{-moz-transform:translateX(0)}to{-moz-transform:translateX({end})}}@keyframes slideouttoleft{from{transform:translateX(0)}to{transform:translateX({end})}}";
364
+ var CLOSE_ANIMATION_SLIDERIGHT = "@-webkit-keyframes slideouttoright{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d({end},0,0)}}@-moz-keyframes slideouttoright{from{-moz-transform:translateX(0)}to{-moz-transform:translateX({end})}}@keyframes slideouttoright{from{transform:translateX(0)}to{transform:translateX({end})}}";
365
+ var CLOSE_ANIMATION_POP = "@-webkit-keyframes popout{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(.8);opacity:0}}@-moz-keyframes popout{from{-moz-transform:scale(1);opacity:1}to{-moz-transform:scale(.8);opacity:0}}@keyframes popout{from{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}";
366
+ var CLOSE_ANIMATION_FADE = "@-webkit-keyframes fadeout{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeout{from{opacity:1}to{opacity:0}}@keyframes fadeout{from{opacity:1}to{opacity:0}}";
367
+ var CLOSE_ANIMATION_FLIP = "@-webkit-keyframes flipouttoright{from{-webkit-transform:rotateY(0)}to{-webkit-transform:rotateY(90deg) scale(.9)}}@-moz-keyframes flipouttoright{from{-moz-transform:rotateY(0)}to{-moz-transform:rotateY(90deg) scale(.9)}}@keyframes flipouttoright{from{transform:rotateY(0)}to{transform:rotateY(90deg) scale(.9)}}";
368
+ var CLOSE_ANIMATION_FLOW = "@-webkit-keyframes flowouttoright{0%{-webkit-transform:translateX(0) scale(1)}60%,70%{-webkit-transform:translateX(0) scale(.7)}100%{-webkit-transform:translateX(100%) scale(.7)}}@-moz-keyframes flowouttoright{0%{-moz-transform:translateX(0) scale(1)}60%,70%{-moz-transform:translateX(0) scale(.7)}100%{-moz-transform:translateX(100%) scale(.7)}}@keyframes flowouttoright{0%{transform:translateX(0) scale(1)}60%,70%{transform:translateX(0) scale(.7)}100%{transform:translateX(100%) scale(.7)}}";
369
+ var CLOSE_ANIMATION_SLIDEUP = "@-webkit-keyframes slideouttotop{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY({end})}}@-moz-keyframes slideouttotop{from{-moz-transform:translateY(0)}to{-moz-transform:translateY({end})}}@keyframes slideouttotop{from{transform:translateY(0)}to{transform:translateY({end})}}";
370
+ var CLOSE_ANIMATION_SLIDEDOWN = "@-webkit-keyframes slideouttobottom{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY({end})}}@-moz-keyframes slideouttobottom{from{-moz-transform:translateY(0)}to{-moz-transform:translateY({end})}}@keyframes slideouttobottom{from{transform:translateY(0)}to{transform:translateY({end})}}";
371
+
372
+ function addAnimationClass(classString) {
373
+ var style = document.createElement('style');
374
+ style.type = 'text/css';
375
+ style.innerHTML = classString;
376
+ style.id = prefix + "-effect-custom-style";
377
+ document.getElementsByTagName('head')[0].appendChild(style);
378
+ }
379
+
380
+ function setMainDivStyles(sizeConfig) {
381
+ jQuery(window).trigger('sgpbPopupBuilderAdditionalDimensionSettings');
382
+ contentDiv.style.zIndex = defaultZIndex + 10;
383
+ mainDiv.style.boxSizing = 'content-box';
384
+ if (sizeConfig.minHeight != -1) {
385
+ var minHeight = sizeConfig.minHeight;
386
+ var popupMinHeight = window.innerHeight;
387
+ if (typeof minHeight == 'string' && minHeight.indexOf('%') != -1) {
388
+ var popupMinhHeight = (popupMinhHeight / 100) * parseInt(minHeight);
389
+ mainDiv.style.minHeight = popupMinhHeight + 'px';
390
+ } else {
391
+ mainDiv.style.minHeight = parseInt(minHeight) + 'px';
392
+ }
393
+ }
394
+ if (sizeConfig.minWidth != -1) {
395
+ var popupMinhWidth = window.innerWidth;
396
+ var minWidth = sizeConfig.minWidth;
397
+ if (typeof minWidth == 'string' && minWidth.indexOf('%') != -1) {
398
+ var popupMinhWidth = (popupMinhWidth / 100) * parseInt(minWidth);
399
+ mainDiv.style.minWidth = popupMinhWidth + 'px';
400
+ } else {
401
+ mainDiv.style.minWidth = parseInt(minWidth) + 'px';
402
+ }
403
+ }
404
+ if (sizeConfig.maxHeight != -1 && sizeConfig.maxHeight) {
405
+ var maxHeight = sizeConfig.maxHeight;
406
+ var popupMaxHeight = window.innerHeight;
407
+ if (maxHeight.indexOf('%') != -1) {
408
+ var popupMaxHeight = (popupMaxHeight / 100) * parseInt(maxHeight);
409
+ this.calculatedMaxHeight = calculateMaxHeight(popupMaxHeight);
410
+ mainDiv.style.maxHeight = this.calculatedMaxHeight;
411
+ } else {
412
+ this.calculatedMaxHeight = calculateMaxHeight(parseInt(maxHeight));
413
+ mainDiv.style.maxHeight = this.calculatedMaxHeight;
414
+ }
415
+ } else {
416
+ var popupMaxHeight = window.innerHeight;
417
+ mainDiv.style.maxHeight = calculateMaxHeight(popupMaxHeight);
418
+ }
419
+ if (sizeConfig.maxWidth != -1 && sizeConfig.maxWidth) {
420
+ var maxWidth = sizeConfig.maxWidth;
421
+ var popupMaxWidth = window.innerWidth;
422
+ if (maxWidth.indexOf('%') != -1) {
423
+ var popupMaxWidth = (popupMaxWidth / 100) * parseInt(maxWidth);
424
+ this.calculatedMaxWidth = calculateMaxWidth(popupMaxWidth);
425
+ mainDiv.style.maxWidth = this.calculatedMaxWidth;
426
+ } else {
427
+ this.calculatedMaxWidth = calculateMaxWidth(parseInt(maxWidth));
428
+ mainDiv.style.maxWidth = this.calculatedMaxWidth;
429
+ }
430
+ } else {
431
+ var popupMaxWidth = window.innerWidth;
432
+ mainDiv.style.maxWidth = calculateMaxWidth(popupMaxWidth);
433
+ }
434
+ if (contentBox.borderStyle) {
435
+ mainDiv.style.borderStyle = contentBox.borderStyle;
436
+ }
437
+ if (contentBox.borderColor) {
438
+ mainDiv.style.borderColor = contentBox.borderColor;
439
+ }
440
+ if (contentBox.borderRadius) {
441
+ var borderRadiusMeasure = '%';
442
+ if (contentBox.borderRadiusType) {
443
+ var borderRadiusMeasure = contentBox.borderRadiusType;
444
+ }
445
+ mainDiv.style.borderRadius = contentBox.borderRadius + borderRadiusMeasure;
446
+ }
447
+ mainDiv.style.borderWidth = contentBox.borderWidth + "px";
448
+ if (contentBox.padding) {
449
+ mainDiv.style.padding = contentBox.padding + "px";
450
+ }
451
+ var widthToSet = sizeConfig.width || defaultWidth;
452
+ if (widthToSet.indexOf("%") > -1) {
453
+ var widthNum = parseFloat(widthToSet);
454
+ if (widthToSet.indexOf("fullScreen") > -1) {
455
+ widthNum = window.innerWidth;
456
+ }
457
+ var closeButtonWidthToSubtract = parseInt(closeButton.width);
458
+ if (closeBehavior.showButton == false || config.closeButton.type == 'button') {
459
+ closeButtonWidthToSubtract = 0;
460
+ }
461
+ widthToSet = (((widthNum / 100) * window.innerWidth) - (2 * (contentBox.padding ? contentBox.padding : 0)) - parseFloat(mainDiv.style.borderLeftWidth) - parseFloat(mainDiv.style.borderRightWidth) - (parseFloat(contentBox.shadowSpread) / 2) - closeButtonWidthToSubtract) + 'px';
462
+ } else {
463
+ widthToSet = parseFloat(widthToSet) - 2 * (contentBox.padding ? contentBox.padding : 0) + 'px';
464
+ }
465
+ mainDiv.style.width = widthToSet;
466
+ if (config.popupType == 'image') {
467
+ mainDiv.style.backgroundImage = "url(" + contentBox.backgroundImage + ")";
468
+ }
469
+ if (contentBox.showBackground) {
470
+ if (contentBox.backgroundImage) {
471
+ mainDiv.style.backgroundImage = "url(" + contentBox.backgroundImage + ")";
472
+ }
473
+ if (contentBox.backgroundMode == "cover") {
474
+ mainDiv.style.backgroundSize = "cover";
475
+ mainDiv.style.backgroundRepeat = "no-repeat";
476
+ } else if (contentBox.backgroundMode == "contain") {
477
+ mainDiv.style.backgroundSize = "contain";
478
+ mainDiv.style.backgroundRepeat = "no-repeat";
479
+ } else if (contentBox.backgroundMode == "repeat") {
480
+ mainDiv.style.backgroundRepeat = "repeat";
481
+ } else if (contentBox.backgroundMode == 'fit') {
482
+ if (!fitBackgroundImg) {
483
+ fitBackgroundImg = document.createElement('img');
484
+ fitBackgroundImg.style.position = 'fixed';
485
+ fitBackgroundImg.style.bottom = '-9999999999999px';
486
+ fitBackgroundImg.className = 'sgpb-background-image-' + config.popupId;
487
+ document.body.appendChild(fitBackgroundImg);
488
+ fitBackgroundImg.onload = function() {
489
+ changePopupDimensionRelatedImage(this);
490
+ };
491
+ fitBackgroundImg.src = contentBox.backgroundImage;
492
+ mainDiv.style.backgroundSize = '100% 100%';
493
+ mainDiv.style.backgroundRepeat = 'no-repeat';
494
+ }
495
+ } else {
496
+ mainDiv.style.backgroundRepeat = "no-repeat";
497
+ }
498
+ }
499
+ if (window.sgWindowOldWidth != window.innerWidth || window.sgWindowOldHeight != window.innerHeight) {
500
+ window.sgWindowOldWidth = window.innerWidth;
501
+ window.sgWindowOldHeight = window.innerHeight;
502
+ var images = document.getElementsByClassName('sgpb-background-image-' + config.popupId);
503
+ if (images.length) {
504
+ changePopupDimensionRelatedImage(images[0]);
505
+ }
506
+ }
507
+ mainDiv.style.backgroundPosition = contentBox.backgroundPosition;
508
+ var heightToSet = sizeConfig.height || defaultHeight;
509
+ if (typeof heightToSet != 'undefined' && heightToSet.indexOf("%") > -1) {
510
+ var heightNum = parseFloat(heightToSet);
511
+ heightToSet = (((heightNum / 100) * window.innerHeight) - (2 * (contentBox.padding ? contentBox.padding : 0)) - parseInt(mainDiv.style.borderTopWidth) - parseInt(mainDiv.style.borderBottomWidth)) + "px";
512
+ } else {
513
+ heightToSet = parseInt(heightToSet) - 2 * (contentBox.padding ? contentBox.padding : 0) + "px";
514
+ if (sizeConfig.width.indexOf("fullScreen") > -1) {
515
+ heightToSet = (window.innerHeight) + "px";
516
+ }
517
+ }
518
+ mainDiv.style.height = heightToSet;
519
+ if (contentBox.showBackground && contentBox.backgroundColor) {
520
+ mainDiv.style.backgroundColor = contentBox.backgroundColor;
521
+ }
522
+ if (contentBox.shadowColor) {
523
+ mainDiv.style.boxShadow = "0 0 " + contentBox.shadowBlur + "px " + contentBox.shadowSpread + "px " + contentBox.shadowColor;
524
+ }
525
+ if (contentBox.scrollingEnabled) {
526
+ mainDiv.style.overflow = "auto";
527
+ } else {
528
+ mainDiv.style.overflow = "hidden";
529
+ }
530
+ }
531
+
532
+ function changePopupDimensionRelatedImage(image) {
533
+ var result = resizeConfig(image);
534
+ var oldSizeConfig = getSizeConfig();
535
+ oldSizeConfig.width = result.width + 'px';
536
+ oldSizeConfig.height = result.height + 'px';
537
+ oldSizeConfig.modified = true;
538
+ this.sizeConfig = oldSizeConfig;
539
+ windowResizeHandler();
540
+ }
541
+
542
+ function resizeConfig(backgroundImage) {
543
+ var maxWidth = parseInt(this.calculatedMaxWidth);
544
+ var maxHeight = parseInt(this.calculatedMaxHeight);
545
+ var imageWidth = backgroundImage.width;
546
+ var imageHeight = backgroundImage.height;
547
+ var windowMaxHeight = parseInt(calculateMaxHeight(window.innerHeight));
548
+ var windowMaxWidth = parseInt(calculateMaxWidth(window.innerWidth));
549
+ if (isNaN(maxHeight) || maxHeight > windowMaxHeight) {
550
+ maxHeight = windowMaxHeight;
551
+ }
552
+ if (isNaN(maxWidth) || maxWidth > windowMaxWidth) {
553
+ maxWidth = windowMaxWidth;
554
+ }
555
+ var widthDifference = imageWidth - maxWidth;
556
+ var heightDifference = imageHeight - maxHeight;
557
+ if (heightDifference > widthDifference) {
558
+ if (imageHeight > maxHeight) {
559
+ var modifiedHeightPercent = 100 - (maxHeight / imageHeight) * 100;
560
+ var withMustDecrease = (imageWidth * modifiedHeightPercent) / 100;
561
+ var modifiedWidth = imageWidth - withMustDecrease;
562
+ imageWidth = modifiedWidth;
563
+ imageHeight = maxHeight;
564
+ }
565
+ } else if (imageWidth > maxWidth) {
566
+ var modifiedWidthPercent = Math.floor((widthDifference / imageWidth) * 100);
567
+ var heightMustDecrease = Math.floor((imageHeight * modifiedWidthPercent) / 100);
568
+ var modifiedHeight = imageHeight - heightMustDecrease;
569
+ imageWidth -= widthDifference;
570
+ imageHeight -= heightMustDecrease;
571
+ }
572
+ var result = {
573
+ width: imageWidth,
574
+ height: imageHeight
575
+ };
576
+ return result;
577
+ }
578
+
579
+ function calculateMaxWidth(maxWidth) {
580
+ var sizeConfig = getSizeConfig();
581
+ var dimension = sizeConfig.width;
582
+ var contentPadding = (contentBox.padding || 0) * 2;
583
+ var shadowSpread = (contentBox.shadowSpread || 0) * 2;
584
+ var borderWidth = (contentBox.borderWidth || 0) * 2;
585
+ var boxBorderWidth = (contentBox.boxBorderWidth || 0) * 4;
586
+ var closeButtonRight = (parseInt(closeBehavior.right) || 0) * 2;
587
+ var closeButtonLeft = (parseInt(closeBehavior.left) || 0) * 2;
588
+ if (dimension.indexOf('fullScreen') == '-1') {
589
+ maxWidth -= contentPadding;
590
+ maxWidth -= 34;
591
+ maxWidth -= shadowSpread;
592
+ maxWidth -= borderWidth;
593
+ maxWidth -= boxBorderWidth;
594
+ }
595
+ if (!closeBehavior.buttonInside) {
596
+ if (closeButtonRight) {
597
+ maxWidth -= Math.abs(closeButtonRight);
598
+ }
599
+ if (closeButtonLeft) {
600
+ maxWidth -= Math.abs(closeButtonLeft);
601
+ }
602
+ }
603
+ if (maxWidth < 0) {
604
+ return '30px';
605
+ }
606
+ return maxWidth + 'px';
607
+ }
608
+
609
+ function setFitBackground() {
610
+ if (!fitBackgroundImg) return;
611
+ var imgHeight = fitBackgroundImg.height;
612
+ var imgWidth = fitBackgroundImg.width;
613
+ var winHeight = window.innerHeight;
614
+ var winWidth = window.innerWidth;
615
+ var minMargin = 40;
616
+ var popupWidth = 0,
617
+ popupHeight = 0;
618
+ if (imgWidth < (winWidth - 2 * minMargin) && imgHeight < (winHeight - 2 * minMargin)) {
619
+ popupWidth = imgWidth;
620
+ popupHeight = imgHeight;
621
+ } else {
622
+ var widthDif = winWidth - imgWidth;
623
+ var heightDif = winHeight - imgHeight;
624
+ if (widthDif < heightDif) {
625
+ popupWidth = winWidth - 2 * minMargin;
626
+ popupHeight = popupWidth * imgHeight / imgWidth;
627
+ } else {
628
+ popupHeight = winHeight - 2 * minMargin;
629
+ popupWidth = popupHeight * imgWidth / imgHeight;
630
+ }
631
+ }
632
+ var sizeConfig = getSizeConfig();
633
+ var maxWidth = sizeConfig.maxWidth;
634
+ var maxHeight = sizeConfig.maxHeight;
635
+ var border = contentBox.borderWidth || 0;
636
+ var padding = contentBox.padding || 0;
637
+ var shadow = contentBox.shadowSpread || 0;
638
+ popupWidth = parseInt(popupWidth - 2);
639
+ sizeConfig.height = popupHeight + 'px';
640
+ }
641
+
642
+ function calculateMaxHeight(maxHeight) {
643
+ var sizeConfig = getSizeConfig();
644
+ var dimension = sizeConfig.width;
645
+ var contentPadding = (contentBox.padding || 0) * 2;
646
+ var shadowSpread = (contentBox.shadowSpread || 0) * 4;
647
+ var borderHeight = (contentBox.borderWidth || 0) * 2;
648
+ var boxBorderHeight = (contentBox.boxBorderWidth || 0) * 4;
649
+ var closeButtonTop = (parseInt(closeBehavior.top) || 0) * 2;
650
+ var closeButtonBottom = (parseInt(closeBehavior.bottom) || 0) * 2;
651
+ if (dimension.indexOf('fullScreen') != '-1') {} else {
652
+ maxHeight -= contentPadding;
653
+ if (shadowSpread) {
654
+ maxHeight -= shadowSpread;
655
+ maxHeight -= 35;
656
+ }
657
+ maxHeight -= borderHeight;
658
+ maxHeight -= boxBorderHeight;
659
+ if (!closeBehavior.buttonInside) {
660
+ if (closeButtonBottom) {
661
+ maxHeight -= Math.abs(closeButtonBottom);
662
+ }
663
+ if (closeButtonTop) {
664
+ maxHeight -= Math.abs(closeButtonTop);
665
+ }
666
+ }
667
+ }
668
+ if (maxHeight < 0) {
669
+ return '30px';
670
+ }
671
+ return maxHeight + 'px';
672
+ }
673
+
674
+ function positionPopup() {
675
+ contentDiv.style.position = "fixed";
676
+ var border = contentBox.borderWidth || 0;
677
+ var padding = contentBox.padding || 0;
678
+ if (typeof position.left != "undefined" && (!isNaN(parseInt(position.left)) || position.left == "center")) {
679
+ if (position.left == "center") {
680
+ contentDiv.style.left = (window.innerWidth - parseInt(mainDiv.clientWidth) - 2 * border) / 2 + "px";
681
+ } else {
682
+ contentDiv.style.left = parseInt(position.left) + "px";
683
+ }
684
+ } else {
685
+ if (position.right == "center") {
686
+ contentDiv.style.left = (window.innerWidth - parseInt(mainDiv.clientWidth) - 2 * border) / 2 + "px";
687
+ } else {
688
+ contentDiv.style.left = (window.innerWidth - parseInt(position.right) - parseInt(mainDiv.clientWidth) - 2 * border) + "px";
689
+ }
690
+ }
691
+ if (typeof position.top != "undefined" && (!isNaN(parseInt(position.top)) || position.top == "center")) {
692
+ if (position.top == "center") {
693
+ contentDiv.style.top = (window.innerHeight - parseInt(mainDiv.clientHeight) - 2 * border) / 2 + "px";
694
+ } else {
695
+ contentDiv.style.top = position.top + "px";
696
+ }
697
+ } else {
698
+ if (position.bottom == "center") {
699
+ contentDiv.style.top = (window.innerHeight - parseInt(mainDiv.clientHeight) - 2 * border) / 2 + "px";
700
+ } else {
701
+ contentDiv.style.bottom = position.bottom + "px";
702
+ }
703
+ }
704
+ }
705
+
706
+ function getSizeConfig() {
707
+ var windowWidth = window.innerWidth;
708
+ var windowHeight = window.innerHeight;
709
+ var config = null;
710
+ var candidates = [];
711
+ for (var i = 0; i < sizingRanges.length; i++) {
712
+ var tmpConf = sizingRanges[i];
713
+ if ((tmpConf.screenFrom.width == -1 && tmpConf.screenTo.width == -1) || (tmpConf.screenFrom.width == -1 && windowWidth < tmpConf.screenTo.width) || (tmpConf.screenTo.width == -1 && windowWidth > tmpConf.screenFrom.width) || (windowWidth < tmpConf.screenTo.width && windowWidth > tmpConf.screenFrom.width)) {
714
+ candidates.push(tmpConf);
715
+ }
716
+ }
717
+ for (var i = 0; i < candidates.length; i++) {
718
+ var tmpConf = candidates[i];
719
+ if ((tmpConf.screenFrom.height == -1 && tmpConf.screenTo.height == -1) || (tmpConf.screenFrom.height == -1 && windowHeight < tmpConf.screenTo.height) || (tmpConf.screenTo.height == -1 && windowHeight > tmpConf.screenFrom.height) || (windowHeight < tmpConf.screenTo.height && windowHeight > tmpConf.screenFrom.height)) {
720
+ continue;
721
+ } else {
722
+ candidates.splice(i, 1);
723
+ i--;
724
+ }
725
+ }
726
+ config = candidates[0];
727
+ if (!config) {
728
+ config = {
729
+ screenFrom: {
730
+ width: -1,
731
+ height: -1
732
+ },
733
+ screenTo: {
734
+ width: -1,
735
+ height: -1
736
+ },
737
+ width: "640px",
738
+ height: defaultHeight,
739
+ maxWidth: -1,
740
+ maxHeight: -1,
741
+ minWidth: -1,
742
+ minHeight: -1
743
+ }
744
+ }
745
+ return config;
746
+ }
747
+
748
+ function drawOverlay() {
749
+ if (!overlay.visible) {
750
+ return;
751
+ }
752
+ overlayDiv = document.createElement("DIV");
753
+ overlayDiv.style.zIndex = defaultZIndex;
754
+ overlayDiv.style.backgroundColor = overlay.color;
755
+ overlayDiv.style.opacity = overlay.opacity / 100;
756
+ overlayDiv.style.position = "fixed";
757
+ overlayDiv.style.left = "0";
758
+ overlayDiv.style.top = "0";
759
+ overlayDiv.style.width = "100%";
760
+ overlayDiv.style.height = "100%";
761
+ if (overlay.addClass) {
762
+ overlayDiv.className = overlay.addClass;
763
+ }
764
+ if (closeBehavior.overlayShouldClose) {
765
+ overlayDiv.onclick = closePopup;
766
+ }
767
+ document.body.appendChild(overlayDiv);
768
+ }
769
+
770
+ function removeOverlay() {
771
+ if (overlayDiv) {
772
+ overlayDiv.style.display = "none";
773
+ document.body.removeChild(overlayDiv);
774
+ overlayDiv = null;
775
+ }
776
+ }
777
+
778
+ function setCloseButton(mainDiv) {
779
+ if (!closeButton.data) {
780
+ return;
781
+ }
782
+ if (closeBehavior.showButton === false) {
783
+ return;
784
+ }
785
+ closeButtonImage.style.zIndex = defaultZIndex + 20;
786
+ closeButtonImage.style.position = "absolute";
787
+ closeButtonImage.style.float = "left";
788
+ closeButtonImage.style.top = closeBehavior.top;
789
+ closeButtonImage.style.right = closeBehavior.right;
790
+ closeButtonImage.style.bottom = closeBehavior.bottom;
791
+ closeButtonImage.style.left = closeBehavior.left;
792
+ if (closeButton.type == 'button') {
793
+ closeButtonImage.id = prefix + '-close-button';
794
+ closeButtonImage.innerHTML = config.closeButton.text;
795
+ }
796
+ closeButtonImage.style.width = closeButton.width + closeButton.widthType;
797
+ closeButtonImage.style.cursor = "pointer";
798
+ closeButtonImage.style.height = closeButton.height + closeButton.heightType;
799
+ closeButtonImage.src = closeButton.data;
800
+ closeButtonImage.style.backgroundRepeat = "no-repeat";
801
+ closeButtonImage.style.backgroundSize = "cover";
802
+ closeButtonImage.onclick = closePopup;
803
+ positionCloseButton(mainDiv);
804
+ }
805
+
806
+ function positionCloseButton(mainDiv) {
807
+ if (closeBehavior.buttonPosition == "left") {
808
+ closeButtonImage.style.left = (closeButton.width / 2 + parseFloat(closeBehavior.leftPosition)) + "px";
809
+ } else if (closeBehavior.buttonPosition == "right") {
810
+ var border = contentBox.borderWidth || 0;
811
+ var left = 0;
812
+ var mainDivWidth = mainDiv.style.width;
813
+ if (mainDiv.style.maxWidth && parseInt(mainDivWidth) > parseInt(mainDiv.style.maxWidth)) {
814
+ mainDivWidth = mainDiv.style.maxWidth;
815
+ }
816
+ left = parseFloat(mainDivWidth) - Math.ceil(closeButton.width / 2) + 2 * contentBox.padding + 2 * border;
817
+ if (closeBehavior.leftPosition) {
818
+ left = left - parseFloat(closeBehavior.leftPosition);
819
+ }
820
+ closeButtonImage.style.left = left + "px";
821
+ }
822
+ closeButtonImage.style.top = parseFloat(closeBehavior.topPosition) + "px";
823
+ }
824
+
825
+ function onWindowRsize() {
826
+ clearTimeout(resizeTimeout);
827
+ resizeTimeout = setTimeout(function() {
828
+ resizeBox();
829
+ positionPopup();
830
+ positionCloseButton(mainDiv);
831
+ jQuery(window).trigger('sgpbPopupReload')
832
+ }, 0);
833
+ }
834
+
835
+ function windowResizeHandler() {
836
+ resizeBox();
837
+ positionPopup();
838
+ positionCloseButton(mainDiv);
839
+ jQuery(window).trigger('sgpbPopupReload')
840
+ }
841
+
842
+ function setOpenAnimation() {
843
+ if (!openAnimation.status) {
844
+ return false;
845
+ }
846
+ contentDiv.style.animationTimingFunction = "linear";
847
+ var border = contentBox.borderWidth || 0;
848
+ var padding = contentBox.padding || 0;
849
+ if (openAnimation.type == "slideleft") {
850
+ var start = window.innerWidth - parseInt(contentDiv.style.left) + 2 * border;
851
+ addAnimationClass(OPEN_ANIMATION_SLIDELEFT.replace(/\{start\}/g, start + "px"));
852
+ contentDiv.style.animationName = "slideinfromright";
853
+ } else if (openAnimation.type == "slideright") {
854
+ var start = parseInt(mainDiv.style.width) + parseInt(contentDiv.style.left) + 2 * border + 2 * padding;
855
+ addAnimationClass(OPEN_ANIMATION_SLIDERIGHT.replace(/\{start\}/g, "-" + start + "px"));
856
+ contentDiv.style.animationName = "slideinfromleft";
857
+ } else if (openAnimation.type == "pop") {
858
+ addAnimationClass(OPEN_ANIMATION_POP);
859
+ contentDiv.style.transform = "scale(1)";
860
+ contentDiv.style.animationName = "popin";
861
+ contentDiv.style.opacity = "1";
862
+ } else if (openAnimation.type == "fade") {
863
+ addAnimationClass(OPEN_ANIMATION_FADE);
864
+ contentDiv.style.animationName = "fadein";
865
+ contentDiv.style.opacity = "1";
866
+ } else if (openAnimation.type == "flip") {
867
+ addAnimationClass(OPEN_ANIMATION_FLIP);
868
+ contentDiv.style.animationName = "flipintoright";
869
+ contentDiv.style.transform = "translateX(0)";
870
+ } else if (openAnimation.type == "turn") {
871
+ addAnimationClass(OPEN_ANIMATION_FLIP);
872
+ contentDiv.style.animationName = "flipintoright";
873
+ contentDiv.style.transform = "translateX(0)";
874
+ contentDiv.style.transformOrigin = "0";
875
+ } else if (openAnimation.type == "flow") {
876
+ addAnimationClass(OPEN_ANIMATION_FLOW);
877
+ contentDiv.style.animationName = "flowinfromright";
878
+ contentDiv.style.transformOrigin = "50% 30%";
879
+ } else if (openAnimation.type == "slideup") {
880
+ var bottom = 0;
881
+ if (contentDiv.style.bottom) {
882
+ bottom = parseInt(mainDiv.style.height) + 2 * border + parseInt(contentDiv.style.bottom) + 2 * padding;
883
+ } else {
884
+ bottom = window.innerHeight - parseInt(contentDiv.style.top) + 2 * border;
885
+ }
886
+ var start = bottom;
887
+ addAnimationClass(OPEN_ANIMATION_SLIDEUP.replace(/\{start\}/g, start + "px"));
888
+ contentDiv.style.animationName = "slideinfrombottom";
889
+ } else if (openAnimation.type == "slidedown") {
890
+ var top = 0;
891
+ if (contentDiv.style.top) {
892
+ top = parseInt(contentDiv.style.top) + 2 * border + 2 * padding;
893
+ } else {
894
+ top = window.innerHeight - parseInt(contentDiv.style.bottom) - parseInt(mainDiv.style.height);
895
+ }
896
+ var start = top + parseInt(mainDiv.style.height);
897
+ addAnimationClass(OPEN_ANIMATION_SLIDEDOWN.replace(/\{start\}/g, "-" + start + "px"));
898
+ contentDiv.style.animationName = "slideinfromtop";
899
+ } else {
900
+ contentDiv.className += ' sg-animated ' + openAnimation.type;
901
+ }
902
+ contentDiv.style.animationDuration = openAnimation.speed + "ms";
903
+ }
904
+
905
+ function setCloseAnimation() {
906
+ contentDiv.style.animationTimingFunction = "linear";
907
+ var border = contentBox.borderWidth || 0;
908
+ var padding = contentBox.padding || 0;
909
+ if (closeAnimation.type == "slideleft") {
910
+ var end = parseInt(mainDiv.style.width) + parseInt(contentDiv.style.left) + 2 * border + 2 * padding;
911
+ addAnimationClass(CLOSE_ANIMATION_SLIDELEFT.replace(/\{end\}/g, "-" + end + "px"));
912
+ contentDiv.style.animationName = "slideouttoleft";
913
+ } else if (closeAnimation.type == "slideright") {
914
+ var end = window.innerWidth - parseInt(contentDiv.style.left) + 2 * border;
915
+ addAnimationClass(CLOSE_ANIMATION_SLIDERIGHT.replace(/\{end\}/g, end + "px"));
916
+ contentDiv.style.animationName = "slideouttoright";
917
+ } else if (closeAnimation.type == "pop") {
918
+ addAnimationClass(CLOSE_ANIMATION_POP);
919
+ contentDiv.style.animationName = "popout";
920
+ contentDiv.style.transform = "scale(0)";
921
+ contentDiv.style.opacity = "0";
922
+ } else if (closeAnimation.type == "fade") {
923
+ addAnimationClass(CLOSE_ANIMATION_FADE);
924
+ contentDiv.style.animationName = "fadeout";
925
+ contentDiv.style.opacity = "0";
926
+ } else if (closeAnimation.type == "flip") {
927
+ addAnimationClass(CLOSE_ANIMATION_FLIP);
928
+ contentDiv.style.animationName = "flipouttoright";
929
+ contentDiv.style.transform = "rotateY(-90deg) scale(.9)";
930
+ } else if (closeAnimation.type == "turn") {
931
+ addAnimationClass(CLOSE_ANIMATION_FLIP);
932
+ contentDiv.style.animationName = "flipouttoright";
933
+ contentDiv.style.transform = "rotateY(-90deg) scale(.9)";
934
+ contentDiv.style.transformOrigin = "0";
935
+ } else if (closeAnimation.type == "flow") {
936
+ addAnimationClass(CLOSE_ANIMATION_FLOW);
937
+ contentDiv.style.animationName = "flowouttoright";
938
+ contentDiv.style.transformOrigin = "50% 30%";
939
+ } else if (closeAnimation.type == "slideup") {
940
+ var top = 0;
941
+ if (contentDiv.style.top) {
942
+ top = parseInt(contentDiv.style.top) + 2 * border + 2 * padding;
943
+ } else {
944
+ top = window.innerHeight - parseInt(contentDiv.style.bottom) - parseInt(mainDiv.style.height);
945
+ }
946
+ var end = top + parseInt(mainDiv.style.height);
947
+ addAnimationClass(CLOSE_ANIMATION_SLIDEUP.replace(/\{end\}/g, "-" + end + "px"));
948
+ contentDiv.style.animationName = "slideouttotop";
949
+ } else if (closeAnimation.type == "slidedown") {
950
+ var bottom = 0;
951
+ if (contentDiv.style.bottom) {
952
+ bottom = parseInt(mainDiv.style.height) + 2 * border + parseInt(contentDiv.style.bottom) + 2 * padding;
953
+ } else {
954
+ bottom = window.innerHeight - parseInt(contentDiv.style.top) + 2 * border;
955
+ }
956
+ var end = bottom;
957
+ addAnimationClass(CLOSE_ANIMATION_SLIDEDOWN.replace(/\{end\}/g, end + "px"));
958
+ contentDiv.style.animationName = "slideouttobottom";
959
+ } else {
960
+ contentDiv.className = prefix + '-popup-dialog-main-div-theme-wrapper-' + config.popupTheme + ' sg-animated ' + closeAnimation.type;
961
+ }
962
+ contentDiv.style.animationDuration = closeAnimation.speed + "ms";
963
+ window.setTimeout(function() {
964
+ contentDiv.className = prefix + '-popup-dialog-main-div-theme-wrapper-' + config.popupTheme;
965
+ contentDiv.style.animationName = "";
966
+ contentDiv.style.transform = "";
967
+ contentDiv.style.transformOrigin = "";
968
+ contentDiv.style.opacity = "";
969
+ }, parseInt(closeAnimation.speed) + 10);
970
+ }
971
+
972
+ function setOpenEvents() {
973
+ for (var i = 0; i < events.length; i++) {
974
+ var event = events[i];
975
+ switch (event.type) {
976
+ case "load":
977
+ setOpenOnLoadEvent();
978
+ break;
979
+ case "click":
980
+ setOpenOnClickEvent(event);
981
+ break;
982
+ case "hover":
983
+ setOpenOnHoverEvent(event);
984
+ break;
985
+ case "scroll":
986
+ setOpenOnScrollEvent(event);
987
+ break;
988
+ case "exit":
989
+ setOpenOnExitEvent(event);
990
+ break;
991
+ case "inactivity":
992
+ setOpenInactivityEvent(event);
993
+ }
994
+ }
995
+ }
996
+
997
+ function setOpenOnExitEvent(config) {
998
+ switch (config.mode) {
999
+ case "soft":
1000
+ setSoftExitEvents(config);
1001
+ break;
1002
+ case "agressive1":
1003
+ setAgressive1ExitEvents(config);
1004
+ break;
1005
+ case "agressive2":
1006
+ setAgressive2ExitEvents(config);
1007
+ break;
1008
+ case "full":
1009
+ setFullExitEvents(config);
1010
+ break;
1011
+ }
1012
+ }
1013
+
1014
+ function setAgressive1ExitEvents(config) {
1015
+ window.addEventListener("beforeunload", function(e) {
1016
+ (e || window.event).returnValue = config.message;
1017
+ return config.message
1018
+ })
1019
+ }
1020
+
1021
+ function setAgressive2ExitEvents(config) {
1022
+ window.addEventListener("beforeunload", function(e) {
1023
+ openPopup(false, 'onExit');
1024
+ e.returnValue = config.message;
1025
+ return config.message
1026
+ });
1027
+ }
1028
+
1029
+ function setFullExitEvents(config) {
1030
+ setSoftExitEvents(config);
1031
+ setAgressive2ExitEvents(config);
1032
+ }
1033
+
1034
+ function setSoftExitEvents(config) {
1035
+ document.addEventListener("mouseout", function(event) {
1036
+ if (event.toElement == null && event.relatedTarget == null) {
1037
+ openPopup(false, 'onExit');
1038
+ }
1039
+ })
1040
+ }
1041
+
1042
+ function setOpenOnScrollEvent(config) {
1043
+ var scrollPos = parseInt(config.position);
1044
+ if (config.position.indexOf("%") > 0) {
1045
+ scrollPos = document.body.scrollHeight * (scrollPos / 100) - window.innerHeight / 2;
1046
+ }
1047
+ var scrollEventFunction = function() {
1048
+ if (document.body.scrollTop >= scrollPos || document.documentElement.scrollTop >= scrollPos) {
1049
+ openPopup(false, 'onScroll');
1050
+ window.removeEventListener("scroll", scrollEventFunction);
1051
+ }
1052
+ };
1053
+ window.addEventListener("scroll", scrollEventFunction);
1054
+ }
1055
+
1056
+ function setOpenOnLoadEvent() {
1057
+ if (document.readyState === "complete") {
1058
+ openPopup(false, 'onLoad');
1059
+ } else {
1060
+ window.addEventListener("load", function() {
1061
+ openPopup(false, 'onLoad');
1062
+ }, false);
1063
+ }
1064
+ }
1065
+
1066
+ function setOpenOnClickEvent(config) {
1067
+ var target = config.target;
1068
+ if (!target) {
1069
+ return;
1070
+ }
1071
+ var elements = document.getElementsByClassName(target);
1072
+ for (var i = 0; i < elements.length; i++) {
1073
+ elements[i].addEventListener("click", function() {
1074
+ openPopup(false, 'onClick');
1075
+ });
1076
+ }
1077
+ }
1078
+
1079
+ function setOpenOnHoverEvent(config) {
1080
+ var target = config.target;
1081
+ if (!target) {
1082
+ return;
1083
+ }
1084
+ var elements = document.getElementsByClassName(target);
1085
+ for (var i = 0; i < elements.length; i++) {
1086
+ elements[i].addEventListener("mouseover", function() {
1087
+ openPopup(false, 'onHover');
1088
+ });
1089
+ }
1090
+ }
1091
+
1092
+ function setOpenInactivityEvent(config) {
1093
+ var timer;
1094
+ var handler = function() {
1095
+ if (timer) {
1096
+ clearInterval(timer);
1097
+ }
1098
+ timer = setInterval(function() {
1099
+ openPopup();
1100
+ }, config.timeout * 1000);
1101
+ };
1102
+ document.addEventListener("mousemove", handler);
1103
+ document.addEventListener("mousedown", handler);
1104
+ document.addEventListener("keydown", handler);
1105
+ document.addEventListener("scroll", handler);
1106
+ handler();
1107
+ }
1108
+
1109
+ function initPopup() {
1110
+ DIV = document.createElement("div");
1111
+ DIV.id = prefix + "-popup-dialog-main-div-wrapper";
1112
+ DIV.className = prefix + "-popup-dialog-main-div-wrapper";
1113
+ mainDiv = document.createElement("div");
1114
+ mainDiv.id = prefix + "-popup-dialog-main-div";
1115
+ var sizeConfig = getSizeConfig();
1116
+ contentDiv = document.createElement("div");
1117
+ contentDiv.className = prefix + '-popup-dialog-main-div-theme-wrapper-' + config.popupTheme;
1118
+ setMainDivStyles(sizeConfig);
1119
+ if (contentBox.addClass) {
1120
+ mainDiv.className = contentBox.addClass;
1121
+ }
1122
+ DIV.style.display = "none";
1123
+ var popupContent = getInlineContent();
1124
+ if (contents) {
1125
+ var divElement = document.createElement('div');
1126
+ divElement.setAttribute('style', 'height:100%;width:100%;overflow:' + (contentBox.scrollingEnabled ? 'auto' : 'hidden') + ';');
1127
+ divElement.appendChild(contents);
1128
+ mainDiv.appendChild(divElement);
1129
+ } else {
1130
+ mainDiv.innerHTML = '<div style="height:100%;width:100%;overflow:' + (contentBox.scrollingEnabled ? "auto" : "hidden") + ';">' + popupContent.innerHTML + '</div>';
1131
+ }
1132
+ if (0) {
1133
+ closeButtonImage = document.createElement(config.closeButton.type);
1134
+ } else {
1135
+ closeButtonImage = document.createElement("IMG");
1136
+ }
1137
+ if (false) {
1138
+ closeButtonImage.className = prefix + "-popup-close-button-" + config.popupTheme;
1139
+ contentDiv.appendChild(closeButtonImage);
1140
+ }
1141
+ contentDiv.appendChild(mainDiv);
1142
+ DIV.appendChild(contentDiv);
1143
+ document.body.appendChild(DIV);
1144
+ isInited = true;
1145
+ setOpenEvents();
1146
+ }
1147
+
1148
+ function getInlineContent() {
1149
+ var divElement = document.createElement("div");
1150
+ divElement.innerHTML = '';
1151
+ if (inline) {
1152
+ var hrefHtml = document.getElementById(inline);
1153
+ if (hrefHtml.previousElementSibling) {
1154
+ SGPopup.inlinePrevTarget = {
1155
+ hasPreviousElement: true,
1156
+ node: hrefHtml.previousElementSibling
1157
+ }
1158
+ } else {
1159
+ SGPopup.inlinePrevTarget = {
1160
+ hasPreviousElement: false,
1161
+ node: hrefHtml.parentNode
1162
+ }
1163
+ }
1164
+ divElement.appendChild(hrefHtml);
1165
+ return divElement;
1166
+ }
1167
+ return divElement;
1168
+ }
1169
+
1170
+ function openPopup(forced, action) {
1171
+ if (opened) {
1172
+ return;
1173
+ }
1174
+ coockieValue = SGPopup.getCookie(popupId);
1175
+ if (coockieValue) {
1176
+ return;
1177
+ }
1178
+ if (showOnce) {
1179
+ SGPopup.setCookie(popupId, "true", parseInt(showOnce));
1180
+ }
1181
+ if (forced !== true) {
1182
+ if (shouldOpen && typeof shouldOpen == "function") {
1183
+ if (shouldOpen() === false) {
1184
+ return;
1185
+ }
1186
+ }
1187
+ }
1188
+ if (!isInited) {
1189
+ initPopup();
1190
+ }
1191
+ opened = true;
1192
+ var self = this;
1193
+ window.addEventListener("resize", onWindowRsize);
1194
+ if (closeBehavior.contentShouldClose) {
1195
+ mainDiv.onclick = closePopup;
1196
+ }
1197
+ setTimeout(function() {
1198
+ if (willOpen && typeof willOpen == "function") {
1199
+ willOpen();
1200
+ }
1201
+ drawOverlay();
1202
+ DIV.style.display = "";
1203
+ positionPopup();
1204
+ setOpenAnimation();
1205
+ setCloseButton(mainDiv);
1206
+ if (didOpen) {
1207
+ var callbackArgs = parentThis.getCallbackArgs();
1208
+ if (typeof didOpen == "function") {
1209
+ didOpen(callbackArgs);
1210
+ }
1211
+ }
1212
+ }, openDelay);
1213
+ if (closeBehavior.autoclose && closeBehavior.autoclose > 0) {
1214
+ setTimeout(closePopup, closeBehavior.autoclose * 1000);
1215
+ }
1216
+ if (closeBehavior.escShouldClose) {
1217
+ document.onkeydown = function(e) {
1218
+ e = e || window.event;
1219
+ if (e.keyCode == 27) {
1220
+ closePopup();
1221
+ }
1222
+ };
1223
+ }
1224
+ }
1225
+
1226
+ function closePopup(forced) {
1227
+ if (forced !== true) {
1228
+ if (shouldClose && typeof shouldClose == "function") {
1229
+ if (shouldClose() === false) {
1230
+ return;
1231
+ }
1232
+ }
1233
+ }
1234
+ if (closeBehavior.allowed === false && forced !== true) {
1235
+ return;
1236
+ }
1237
+ if (willClose && typeof willClose == "function") {
1238
+ willClose();
1239
+ }
1240
+ window.removeEventListener("resize", onWindowRsize);
1241
+ var closeFunction = function() {
1242
+ if (!DIV) {
1243
+ return;
1244
+ }
1245
+ DIV.style.display = "none";
1246
+ removeOverlay();
1247
+ if (didClose && typeof didClose == "function") {
1248
+ didClose();
1249
+ opened = false;
1250
+ }
1251
+ if (resetInlineContent && typeof resetInlineContent == "function") {
1252
+ resetInlineContent();
1253
+ }
1254
+ };
1255
+ if (closeAnimation.type != "none" && closeAnimation.speed > 0) {
1256
+ setCloseAnimation();
1257
+ setTimeout(closeFunction, closeAnimation.speed);
1258
+ } else {
1259
+ closeFunction();
1260
+ }
1261
+ }
1262
+ var resizeBox = function() {
1263
+ var sizeConfig = getSizeConfig();
1264
+ setMainDivStyles(sizeConfig)
1265
+ };
1266
+ this.getCallbackArgs = function() {
1267
+ var args = {
1268
+ event: this.customEvent
1269
+ }
1270
+ return args;
1271
+ };
1272
+ this.open = function(forced) {
1273
+ openPopup(forced);
1274
+ };
1275
+ this.init = function() {
1276
+ initPopup();
1277
+ };
1278
+ this.close = function(forced) {
1279
+ closePopup(forced);
1280
+ };
1281
+ this.resize = function() {
1282
+ resizeBox();
1283
+ };
1284
+ this.setOpenDelay = function(delay) {
1285
+ openDelay = delay;
1286
+ if (isInited) {
1287
+ initPopup();
1288
+ }
1289
+ };
1290
+ this.getOpenDelay = function() {
1291
+ return openDelay;
1292
+ };
1293
+ this.setOpenAnimation = function(animation) {
1294
+ openAnimation = animation;
1295
+ if (isInited) {
1296
+ initPopup();
1297
+ }
1298
+ };
1299
+ this.getOpenAnimation = function() {
1300
+ return openAnimation;
1301
+ };
1302
+ this.setCloseAnimation = function(animation) {
1303
+ closeAnimation = animation;
1304
+ if (isInited) {
1305
+ initPopup();
1306
+ }
1307
+ };
1308
+ this.getCloseAnimation = function() {
1309
+ return closeAnimation;
1310
+ };
1311
+ this.setCloseBehavior = function(config) {
1312
+ closeBehavior = config;
1313
+ if (isInited) {
1314
+ initPopup();
1315
+ }
1316
+ };
1317
+ this.getCloseBehavior = function() {
1318
+ return closeBehavior;
1319
+ };
1320
+ this.setCloseButton = function(button) {
1321
+ closeButton = button;
1322
+ };
1323
+ this.getCloseButton = function() {
1324
+ return closeButton;
1325
+ };
1326
+ this.setOverlay = function(config) {
1327
+ overlay = config;
1328
+ if (isInited) {
1329
+ initPopup();
1330
+ }
1331
+ };
1332
+ this.getOverlay = function() {
1333
+ return overlay;
1334
+ };
1335
+ this.setContentBox = function(config) {
1336
+ contentBox = config;
1337
+ if (isInited) {
1338
+ initPopup();
1339
+ }
1340
+ };
1341
+ this.getContentBox = function() {
1342
+ return contentBox;
1343
+ };
1344
+ this.setContents = function(content) {
1345
+ contents = content;
1346
+ if (isInited) {
1347
+ initPopup();
1348
+ }
1349
+ };
1350
+ this.getContents = function() {
1351
+ return contents;
1352
+ };
1353
+ this.setPosition = function(config) {
1354
+ position = config;
1355
+ };
1356
+ this.getPosition = function() {
1357
+ return position;
1358
+ };
1359
+ this.setSizingRanges = function(ranges) {
1360
+ sizingRanges = ranges;
1361
+ if (isInited) {
1362
+ initPopup();
1363
+ }
1364
+ };
1365
+ this.getSizingRanges = function() {
1366
+ return sizingRanges;
1367
+ };
1368
+ this.setShouldOpen = function(func) {
1369
+ shouldOpen = func;
1370
+ if (isInited) {
1371
+ initPopup();
1372
+ }
1373
+ };
1374
+ this.getShouldOpen = function() {
1375
+ return shouldOpen;
1376
+ };
1377
+ this.setWillOpen = function(func) {
1378
+ willOpen = func;
1379
+ if (isInited) {
1380
+ initPopup();
1381
+ }
1382
+ };
1383
+ this.getWillOpen = function() {
1384
+ return willOpen;
1385
+ };
1386
+ this.setDidOpen = function(func) {
1387
+ didOpen = func;
1388
+ if (isInited) {
1389
+ initPopup();
1390
+ }
1391
+ };
1392
+ this.getDidOpen = function() {
1393
+ return didOpen;
1394
+ };
1395
+ this.setShouldClose = function(func) {
1396
+ shouldClose = func;
1397
+ if (isInited) {
1398
+ initPopup();
1399
+ }
1400
+ };
1401
+ this.getShouldClose = function() {
1402
+ return shouldClose;
1403
+ };
1404
+ this.setWillClose = function(func) {
1405
+ willClose = func;
1406
+ if (isInited) {
1407
+ initPopup();
1408
+ }
1409
+ };
1410
+ this.getWillClose = function() {
1411
+ return willClose;
1412
+ };
1413
+ this.setDidClose = function(func) {
1414
+ didClose = func;
1415
+ if (isInited) {
1416
+ initPopup();
1417
+ }
1418
+ };
1419
+ this.getDidClose = function() {
1420
+ return didClose;
1421
+ };
1422
+ }
1423
+ SGPopup.sendGetRequest = function(url, responseHandler, params) {
1424
+ var req;
1425
+ if (window.XMLHttpRequest) {
1426
+ req = new XMLHttpRequest();
1427
+ } else if (window.ActiveXObject) {
1428
+ req = new ActiveXObject("Microsoft.XMLHTTP");
1429
+ }
1430
+ req.onreadystatechange = function() {
1431
+ if (req.readyState == 4) {
1432
+ if (req.status < 400) {
1433
+ responseHandler(req, params);
1434
+ } else {}
1435
+ }
1436
+ };
1437
+ req.open("GET", url, true);
1438
+ req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
1439
+ req.send(null);
1440
+ };
1441
+ SGPopup.getCookie = function(cname) {
1442
+ var name = cname + "=";
1443
+ var ca = document.cookie.split(';');
1444
+ for (var i = 0; i < ca.length; i++) {
1445
+ var c = ca[i];
1446
+ while (c.charAt(0) == ' ') {
1447
+ c = c.substring(1);
1448
+ }
1449
+ if (c.indexOf(name) == 0) {
1450
+ return c.substring(name.length, c.length);
1451
+ }
1452
+ }
1453
+ return "";
1454
+ };
1455
+ SGPopup.setCookie = function(cname, cvalue, exdays) {
1456
+ var exdate = new Date();
1457
+ if (!exdays || isNaN(exdays)) {
1458
+ exdays = 365 * 50;
1459
+ }
1460
+ exdate.setDate(exdate.getDate() + exdays);
1461
+ var value = cvalue + ((exdays == null) ? ";" : "; expires=" + exdate.toUTCString());
1462
+ document.cookie = cname + "=" + value;
1463
+ };
1464
+ SGPopup.getPopup = function(el) {
1465
+ var id = null;
1466
+ while (el && el != document) {
1467
+ if (el.hasAttribute("data-sg-popup-hash-id")) {
1468
+ id = el.getAttribute("data-sg-popup-hash-id");
1469
+ break;
1470
+ }
1471
+ el = el.parentNode;
1472
+ }
1473
+ if (id) {
1474
+ return SGPopupLoader.popups[id];
1475
+ }
1476
+ };
1477
+ SGPopup.openSGPopup = function() {
1478
+ var ids = SGPopupLoader.ids;
1479
+ var linkTag = document.createElement("link");
1480
+ linkTag.rel = "stylesheet";
1481
+ linkTag.type = "text/css";
1482
+ linkTag.href = SG_APP_URL + 'public/assets/lib/SGPopup.css';
1483
+ document.head.appendChild(linkTag);
1484
+ var responseFunction = function(response, id) {
1485
+ var config = JSON.parse(response.responseText);
1486
+ var popup = new SGPopup(config);
1487
+ SGPopupLoader.popups[id] = popup;
1488
+ popup.init();
1489
+ };
1490
+ for (var i = 0; i < ids.length; i++) {
1491
+ SGPopup.sendGetRequest(SG_APP_URL + 'api/popups/' + ids[i], responseFunction, ids[i]);
1492
+ }
1493
+ };
1494
+
1495
+ var hiddenDivId = 'sg-backup-review-wrapper';
1496
+ var popupConfigObj = new PopupConfig();
1497
+ popupConfigObj.magicCall('setContentPadding', 0);
1498
+ popupConfigObj.magicCall('setContentBorderRadius', 4);
1499
+ popupConfigObj.magicCall('setContentBorderRadiusType', 'px');
1500
+ popupConfigObj.magicCall('setContentBorderWidth', 5);
1501
+ popupConfigObj.magicCall('setContentBorderColor', '#506274');
1502
+ popupConfigObj.magicCall('setShadowSpread', 1);
1503
+ popupConfigObj.magicCall('setContentShadowBlur', 4);
1504
+ popupConfigObj.magicCall('setContentShadowColor', '#cccccc');
1505
+ popupConfigObj.magicCall('setMinWidth', 400);
1506
+ popupConfigObj.magicCall('setSrcElement', hiddenDivId);
1507
+ popupConfigObj.magicCall('setOverlayColor', 'black');
1508
+ popupConfigObj.magicCall('setOverlayOpacity', 40);
1509
+ var config = popupConfigObj.combineConfigObj();
1510
+
1511
+ jQuery(document).ready(function() {
1512
+ if (!jQuery('#'+hiddenDivId).length) {
1513
+ return false;
1514
+ }
1515
+ var popup = new SGPopup(config);
1516
+ window.backupGuardReviewPopup = popup;
1517
+ popup.open();
1518
+ });
public/js/sgbackup.js CHANGED
@@ -459,6 +459,10 @@ sgBackup.downloadFromPC = function(){
459
  dataType: 'json',
460
  maxChunkSize: 2000000,
461
  add: function (e, data) {
 
 
 
 
462
  jQuery('#uploadSgbpFile').click(function(){
463
  if(jQuery('#modal-import-2').is(":visible")) {
464
  sgData = data;
459
  dataType: 'json',
460
  maxChunkSize: 2000000,
461
  add: function (e, data) {
462
+ if (data.originalFiles.length) {
463
+ var fileName = data.originalFiles[0].name;
464
+ jQuery('#sg-import-file-name').val(fileName);
465
+ }
466
  jQuery('#uploadSgbpFile').click(function(){
467
  if(jQuery('#modal-import-2').is(":visible")) {
468
  sgData = data;
public/js/sgschedule.js CHANGED
@@ -48,8 +48,12 @@ sgBackup.initIntervalSelection = function() {
48
  else if(jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_MONTHLY) {
49
  jQuery('#sg-schedule-day-of-month-select').show();
50
  }
 
 
 
51
 
52
  jQuery('#sg-schedule-interval').on('change', function(){
 
53
  if (jQuery(this).val() == BG_SCHEDULE_INTERVAL_WEEKLY) {
54
  jQuery('#sg-schedule-day-of-month-select').hide();
55
  jQuery('#sg-schedule-day-of-week-select').show();
@@ -58,6 +62,9 @@ sgBackup.initIntervalSelection = function() {
58
  jQuery('#sg-schedule-day-of-week-select').hide();
59
  jQuery('#sg-schedule-day-of-month-select').show();
60
  }
 
 
 
61
  else {
62
  sgBackup.toggleDaySelection();
63
  }
48
  else if(jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_MONTHLY) {
49
  jQuery('#sg-schedule-day-of-month-select').show();
50
  }
51
+ else if(jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_HOURLY) {
52
+ jQuery('#sg-schedule-timezone').hide();
53
+ }
54
 
55
  jQuery('#sg-schedule-interval').on('change', function(){
56
+ jQuery('#sg-schedule-timezone').show();
57
  if (jQuery(this).val() == BG_SCHEDULE_INTERVAL_WEEKLY) {
58
  jQuery('#sg-schedule-day-of-month-select').hide();
59
  jQuery('#sg-schedule-day-of-week-select').show();
62
  jQuery('#sg-schedule-day-of-week-select').hide();
63
  jQuery('#sg-schedule-day-of-month-select').show();
64
  }
65
+ else if(jQuery('#sg-schedule-interval').val() == BG_SCHEDULE_INTERVAL_HOURLY) {
66
+ jQuery('#sg-schedule-timezone').hide();
67
+ }
68
  else {
69
  sgBackup.toggleDaySelection();
70
  }
public/js/sgsettings.js CHANGED
@@ -108,7 +108,7 @@ sgBackup.sgsettings = function(){
108
  if(jQuery('.sg-email-switch').is(":checked")){
109
  var emails = jQuery('#sg-email').val().split(",");
110
 
111
- $.each(emails, function( index, value ) {
112
  value = jQuery.trim(value);
113
  if(!sgBackup.isValidEmailAddress(value)){
114
  error.push(BG_SETTINGS_STRINGS.invalidEmailAddress);
108
  if(jQuery('.sg-email-switch').is(":checked")){
109
  var emails = jQuery('#sg-email').val().split(",");
110
 
111
+ jQuery.each(emails, function( index, value ) {
112
  value = jQuery.trim(value);
113
  if(!sgBackup.isValidEmailAddress(value)){
114
  error.push(BG_SETTINGS_STRINGS.invalidEmailAddress);
public/restore_wordpress.php CHANGED
@@ -146,7 +146,7 @@ if ($action == 'finalize') {
146
  .sg-logo {
147
  text-align: center;
148
  padding: 20px 0;
149
- background-color: #333;
150
  }
151
  .sg-wrapper-less .sg-progress {
152
  height: 4px;
@@ -156,6 +156,13 @@ if ($action == 'finalize') {
156
  margin-top: 10px;
157
  text-align: center;
158
  }
 
 
 
 
 
 
 
159
  </style>
160
  </head>
161
  <body>
@@ -166,8 +173,8 @@ if ($action == 'finalize') {
166
  <img width="172px" src="<?php echo SG_PUBLIC_URL; ?>img/sglogo.png">
167
  </div>
168
  <div class="sg-progress-box">
169
- <p>Restoring <span id="progressItem">files</span>: <span id="progressTxt">0%</span></p>
170
- <p class="text-warning"><small>NOTE: Please don't close your browser until finished.</small></p>
171
  <div class="sg-progress progress">
172
  <div id="progressBar" class="progress-bar progress-bar-danger" style="width: 0%;"></div>
173
  </div>
146
  .sg-logo {
147
  text-align: center;
148
  padding: 20px 0;
149
+ background-color: #0021C8;
150
  }
151
  .sg-wrapper-less .sg-progress {
152
  height: 4px;
156
  margin-top: 10px;
157
  text-align: center;
158
  }
159
+ .restore-warning {
160
+ color: #C20000;
161
+ }
162
+ .restore-progress-p {
163
+ font-size: 21px;
164
+ font-weight: bold;
165
+ }
166
  </style>
167
  </head>
168
  <body>
173
  <img width="172px" src="<?php echo SG_PUBLIC_URL; ?>img/sglogo.png">
174
  </div>
175
  <div class="sg-progress-box">
176
+ <p class="restore-progress-p">Restoring <span id="progressItem">files</span>: <span id="progressTxt">0%</span></p>
177
+ <p class="restore-warning"><small>NOTE: Please don't close your browser until finished.</small></p>
178
  <div class="sg-progress progress">
179
  <div id="progressBar" class="progress-bar progress-bar-danger" style="width: 0%;"></div>
180
  </div>
public/schedule.php CHANGED
@@ -49,7 +49,7 @@ $scheduleParams = backupGuardParseBackupOptions($scheduleParams);
49
  <div class="form-group">
50
  <label class="col-md-4 sg-control-label" for="sg-schedule-label"><?php _backupGuardT('Schedule label')?></label>
51
  <div class="col-md-8">
52
- <input class="form-control" name="sg-schedule-label" id="sg-schedule-label" value="<?php echo esc_html($scheduleParams['label'])?>">
53
  </div>
54
  </div>
55
  <!-- Schedule interval -->
49
  <div class="form-group">
50
  <label class="col-md-4 sg-control-label" for="sg-schedule-label"><?php _backupGuardT('Schedule label')?></label>
51
  <div class="col-md-8">
52
+ <input class="form-control sg-backup-input" name="sg-schedule-label" id="sg-schedule-label" value="<?php echo esc_html($scheduleParams['label'])?>">
53
  </div>
54
  </div>
55
  <!-- Schedule interval -->
public/settings.php CHANGED
@@ -6,6 +6,7 @@ $userEmail = SGConfig::get('SG_NOTIFICATIONS_EMAIL_ADDRESS');
6
  $isDeleteBackupAfterUploadEnabled = SGConfig::get('SG_DELETE_BACKUP_AFTER_UPLOAD');
7
  $isDeleteBackupFromCloudEnabled = SGConfig::get('SG_DELETE_BACKUP_FROM_CLOUD');
8
  $isDisabelAdsEnabled = SGConfig::get('SG_DISABLE_ADS');
 
9
  $isAlertBeforeUpdateEnabled = SGConfig::get('SG_ALERT_BEFORE_UPDATE');
10
  $isShowStatisticsWidgetEnabled = SGConfig::get('SG_SHOW_STATISTICS_WIDGET');
11
  $isReloadingsEnabled = SGConfig::get('SG_BACKUP_WITH_RELOADINGS');
@@ -135,18 +136,28 @@ $ftpPassiveMode = SGConfig::get('SG_FTP_PASSIVE_MODE');
135
  </div>
136
  </div>
137
  <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
138
 
139
  <div class="form-group">
140
  <label class="col-md-5 sg-control-label" for='sg-paths-to-exclude'><?php _backupGuardT("Exclude paths (separated by commas)")?></label>
141
  <div class="col-md-5 pull-right text-right">
142
- <input class="form-control" id='sg-paths-to-exclude' name='sg-paths-to-exclude' type="text" value="<?php echo SGConfig::get('SG_PATHS_TO_EXCLUDE')?SGConfig::get('SG_PATHS_TO_EXCLUDE'):''?>" placeholder="e.g. wp-content/cache, wp-content/w3tc-cache">
143
  </div>
144
  </div>
145
 
146
  <div class="form-group">
147
  <label class="col-md-5 sg-control-label" for='sg-tables-to-exclude'><?php _backupGuardT("Tables to exclude (separated by commas)")?></label>
148
  <div class="col-md-5 pull-right text-right">
149
- <input class="form-control" id='sg-tables-to-exclude' name='sg-tables-to-exclude' type="text" value="<?php echo SGConfig::get('SG_TABLES_TO_EXCLUDE')?SGConfig::get('SG_TABLES_TO_EXCLUDE'):''?>" placeholder="e.g. wp_comments, wp_commentmeta">
150
  </div>
151
  </div>
152
 
@@ -155,14 +166,14 @@ $ftpPassiveMode = SGConfig::get('SG_FTP_PASSIVE_MODE');
155
  <label class="col-md-5 sg-control-label" for='amount-of-backups-to-keep'><?php _backupGuardT("Backup retention")?>
156
  </label>
157
  <div class="col-md-5 pull-right text-right">
158
- <input class="form-control" id='amount-of-backups-to-keep' name='amount-of-backups-to-keep' type="text" value="<?php echo (int)SGConfig::get('SG_AMOUNT_OF_BACKUPS_TO_KEEP')?(int)SGConfig::get('SG_AMOUNT_OF_BACKUPS_TO_KEEP'):SG_NUMBER_OF_BACKUPS_TO_KEEP?>" <?php echo (!SGBoot::isFeatureAvailable('NUMBER_OF_BACKUPS_TO_KEEP'))? 'disabled' : '' ?>>
159
  </div>
160
  </div>
161
  <?php endif; ?>
162
  <div class="form-group">
163
  <label class="col-md-5 sg-control-label" for='sg-number-of-rows-to-backup'><?php _backupGuardT("Number of rows to backup at once")?></label>
164
  <div class="col-md-5 pull-right text-right">
165
- <input class="form-control" id='sg-number-of-rows-to-backup' name='sg-number-of-rows-to-backup' type="text" value="<?php echo (int)SGConfig::get('SG_BACKUP_DATABASE_INSERT_LIMIT')?(int)SGConfig::get('SG_BACKUP_DATABASE_INSERT_LIMIT'):SG_BACKUP_DATABASE_INSERT_LIMIT?>">
166
  </div>
167
  </div>
168
 
6
  $isDeleteBackupAfterUploadEnabled = SGConfig::get('SG_DELETE_BACKUP_AFTER_UPLOAD');
7
  $isDeleteBackupFromCloudEnabled = SGConfig::get('SG_DELETE_BACKUP_FROM_CLOUD');
8
  $isDisabelAdsEnabled = SGConfig::get('SG_DISABLE_ADS');
9
+ $isDownloadViaPhp = SGConfig::get('SG_DOWNLOAD_VIA_PHP');
10
  $isAlertBeforeUpdateEnabled = SGConfig::get('SG_ALERT_BEFORE_UPDATE');
11
  $isShowStatisticsWidgetEnabled = SGConfig::get('SG_SHOW_STATISTICS_WIDGET');
12
  $isReloadingsEnabled = SGConfig::get('SG_BACKUP_WITH_RELOADINGS');
136
  </div>
137
  </div>
138
  <?php endif; ?>
139
+ <div class="form-group">
140
+ <label class="col-md-8 sg-control-label">
141
+ <?php _backupGuardT('Download via PHP'); ?>
142
+ </label>
143
+ <div class="col-md-3 pull-right text-right">
144
+ <label class="sg-switch-container">
145
+ <input type="checkbox" name="sg-download-via-php" sgFeatureName="DOWNLOAD_VIA_PHP" class="sg-switch" <?php echo $isDownloadViaPhp?'checked="checked"':''?>>
146
+ </label>
147
+ </div>
148
+ </div>
149
 
150
  <div class="form-group">
151
  <label class="col-md-5 sg-control-label" for='sg-paths-to-exclude'><?php _backupGuardT("Exclude paths (separated by commas)")?></label>
152
  <div class="col-md-5 pull-right text-right">
153
+ <input class="form-control sg-backup-input" id='sg-paths-to-exclude' name='sg-paths-to-exclude' type="text" value="<?php echo SGConfig::get('SG_PATHS_TO_EXCLUDE')?SGConfig::get('SG_PATHS_TO_EXCLUDE'):''?>" placeholder="e.g. wp-content/cache, wp-content/w3tc-cache">
154
  </div>
155
  </div>
156
 
157
  <div class="form-group">
158
  <label class="col-md-5 sg-control-label" for='sg-tables-to-exclude'><?php _backupGuardT("Tables to exclude (separated by commas)")?></label>
159
  <div class="col-md-5 pull-right text-right">
160
+ <input class="form-control sg-backup-input" id='sg-tables-to-exclude' name='sg-tables-to-exclude' type="text" value="<?php echo SGConfig::get('SG_TABLES_TO_EXCLUDE')?SGConfig::get('SG_TABLES_TO_EXCLUDE'):''?>" placeholder="e.g. wp_comments, wp_commentmeta">
161
  </div>
162
  </div>
163
 
166
  <label class="col-md-5 sg-control-label" for='amount-of-backups-to-keep'><?php _backupGuardT("Backup retention")?>
167
  </label>
168
  <div class="col-md-5 pull-right text-right">
169
+ <input class="form-control sg-backup-input" id='amount-of-backups-to-keep' name='amount-of-backups-to-keep' type="text" value="<?php echo (int)SGConfig::get('SG_AMOUNT_OF_BACKUPS_TO_KEEP')?(int)SGConfig::get('SG_AMOUNT_OF_BACKUPS_TO_KEEP'):SG_NUMBER_OF_BACKUPS_TO_KEEP?>" <?php echo (!SGBoot::isFeatureAvailable('NUMBER_OF_BACKUPS_TO_KEEP'))? 'disabled' : '' ?>>
170
  </div>
171
  </div>
172
  <?php endif; ?>
173
  <div class="form-group">
174
  <label class="col-md-5 sg-control-label" for='sg-number-of-rows-to-backup'><?php _backupGuardT("Number of rows to backup at once")?></label>
175
  <div class="col-md-5 pull-right text-right">
176
+ <input class="form-control sg-backup-input" id='sg-number-of-rows-to-backup' name='sg-number-of-rows-to-backup' type="text" value="<?php echo (int)SGConfig::get('SG_BACKUP_DATABASE_INSERT_LIMIT')?(int)SGConfig::get('SG_BACKUP_DATABASE_INSERT_LIMIT'):SG_BACKUP_DATABASE_INSERT_LIMIT?>">
177
  </div>
178
  </div>
179
 
public/templates/notices/banner.php CHANGED
@@ -57,14 +57,12 @@
57
 
58
  <div id="sg-right-column">
59
  <ul>
60
- <li>
61
  <a id="sg-logo" target="_blank" href="<?php echo SG_BACKUP_SITE_URL; ?>"></a>
62
  </li>
63
- <li></li>
64
  <li id="sg-social-buttons">
65
  <a class="sg-banner-social-button" id="sg-facebook" target="_blank" href="https://www.facebook.com/backupguard"></a>
66
  <a class="sg-banner-social-button" id="sg-twitter" target="_blank" href="https://twitter.com/backupguard"></a>
67
- <a class="sg-banner-social-button" id="sg-google-plus" target="_blank" href="https://plus.google.com/118362709330885027766"></a>
68
  <a class="sg-banner-social-button" id="sg-youtube" target="_blank" href="https://www.youtube.com/channel/UCZhNYAcWl0VKHevWeakOvwQ"></a>
69
  </li>
70
  <br>
57
 
58
  <div id="sg-right-column">
59
  <ul>
60
+ <li class="sg-logo-li">
61
  <a id="sg-logo" target="_blank" href="<?php echo SG_BACKUP_SITE_URL; ?>"></a>
62
  </li>
 
63
  <li id="sg-social-buttons">
64
  <a class="sg-banner-social-button" id="sg-facebook" target="_blank" href="https://www.facebook.com/backupguard"></a>
65
  <a class="sg-banner-social-button" id="sg-twitter" target="_blank" href="https://twitter.com/backupguard"></a>
 
66
  <a class="sg-banner-social-button" id="sg-youtube" target="_blank" href="https://www.youtube.com/channel/UCZhNYAcWl0VKHevWeakOvwQ"></a>
67
  </li>
68
  <br>
public/templates/notices/timeout_free_error.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="sg-error-notice-wrapper">
2
+ <h2 class="sg-red-color sg-notice-error-h2">
3
+ PHP EXECUTION TIMEOUT ERROR
4
+ </h2>
5
+ <p class="sg-red-color sg-notice-error-p">
6
+ Oops... Seems there was an issue during the backup process.
7
+ <br>
8
+ Let our support representatives know about it by pressing here:
9
+ </p>
10
+ <div class="sg-wrapper-less sg-notice-contact-wrapper">
11
+ <a href="<?php echo BACKUP_GUARD_WORDPRESS_SUPPORT_URL; ?>" class="btn btn-success" target="_blank">Contact us</a>
12
+ </div>
13
+ </div>