Popup Builder – Responsive WordPress Pop up - Version 2.2.2

Version Description

Download this release

Release Info

Developer Sygnoos
Plugin Icon 128x128 Popup Builder – Responsive WordPress Pop up
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

Files changed (55) hide show
  1. classes/PopupInstaller.php +107 -107
  2. classes/SGFblikePopup.php +109 -109
  3. classes/SGHtmlPopup.php +60 -60
  4. classes/SGImagePopup.php +53 -53
  5. classes/SGPopup.php +333 -333
  6. classes/SGShortcodePopup.php +54 -54
  7. classes/sgDataTable/ListTable.php +1313 -1313
  8. classes/sgDataTable/SGPopupTable.php +55 -55
  9. classes/sgDataTable/Table.php +171 -165
  10. files/main_section/fblike.php +18 -18
  11. files/main_section/html.php +18 -18
  12. files/main_section/image.php +9 -9
  13. files/main_section/shortcode.php +1 -1
  14. files/options_section/fblike.php +25 -25
  15. files/options_section/html.php +24 -24
  16. files/options_section/image.php +24 -24
  17. files/options_section/shortcode.php +24 -24
  18. files/sg_admin_post.php +112 -112
  19. files/sg_functions.php +350 -350
  20. files/sg_popup_ajax.php +107 -103
  21. files/sg_popup_create.php +68 -98
  22. files/sg_popup_create_new.php +1018 -975
  23. files/sg_popup_main.php +30 -35
  24. files/sg_popup_media_button.php +95 -90
  25. files/sg_popup_page_selection.php +67 -67
  26. files/sg_popup_save.php +357 -349
  27. img/proOptions.png +0 -0
  28. javascript/jquery.sgcolorbox-min.js +1020 -1020
  29. javascript/sg_datapickers.js +53 -53
  30. javascript/sg_popup_backend.js +1 -1
  31. javascript/sg_popup_core.js +5 -5
  32. javascript/sg_popup_frontend.js +26 -5
  33. javascript/sg_popup_javascript.php +53 -59
  34. javascript/sg_popup_support_plugins.js +34 -26
  35. popup-builder.php +283 -267
  36. readme.txt +14 -2
  37. style/animate.css +2761 -2761
  38. style/jQueryDialog/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
  39. style/jQueryDialog/images/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
  40. style/jQueryDialog/images/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
  41. style/jQueryDialog/images/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
  42. style/jQueryDialog/images/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
  43. style/jQueryDialog/images/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
  44. style/jQueryDialog/images/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
  45. style/jQueryDialog/images/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
  46. style/jQueryDialog/images/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
  47. style/jQueryDialog/images/ui-icons_222222_256x240.png +0 -0
  48. style/jQueryDialog/images/ui-icons_3572ac_256x240.png +0 -0
  49. style/jQueryDialog/images/ui-icons_8c291d_256x240.png +0 -0
  50. style/jQueryDialog/images/ui-icons_b83400_256x240.png +0 -0
  51. style/jQueryDialog/images/ui-icons_fbdb93_256x240.png +0 -0
  52. style/jQueryDialog/images/ui-icons_ffffff_256x240.png +0 -0
  53. style/jQueryDialog/jquery-ui.css +476 -0
  54. style/sg_popup_style.css +1115 -1118
  55. style/sg_popup_style.php +28 -38
classes/PopupInstaller.php CHANGED
@@ -1,108 +1,108 @@
1
- <?php
2
- class PopupInstaller
3
- {
4
- public static $maintablename = "sg_popup";
5
-
6
- public static function createTables($blogsId)
7
- {
8
- global $wpdb;
9
- update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
10
- $sgPopupBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_popup (
11
- `id` int(11) NOT NULL AUTO_INCREMENT,
12
- `type` varchar(255) NOT NULL,
13
- `title` varchar(255) NOT NULL,
14
- `options` text NOT NULL,
15
- PRIMARY KEY (id)
16
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
17
- $sgPopupImageBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_image_popup (
18
- `id` int(11) NOT NULL,
19
- `url` varchar(255) NOT NULL
20
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
21
- $sgPopupHtmlBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_html_popup (
22
- `id` int(11) NOT NULL,
23
- `content` text NOT NULL
24
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
25
- $sgPopupFblikeBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_fblike_popup (
26
- `id` int(11) NOT NULL,
27
- `content` text NOT NULL,
28
- `options` text NOT NULL
29
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
30
- $sgPopupShortcodeBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_shortCode_popup (
31
- `id` int(12) NOT NULL,
32
- `url` text NOT NULL
33
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
34
-
35
- $wpdb->query($sgPopupBase);
36
- $wpdb->query($sgPopupImageBase);
37
- $wpdb->query($sgPopupHtmlBase);
38
- $wpdb->query($sgPopupFblikeBase);
39
- $wpdb->query($sgPopupShortcodeBase);
40
- }
41
-
42
- public static function install()
43
- {
44
- $obj = new self();
45
- $obj->createTables("");
46
-
47
- if(is_multisite()) {
48
- $sites = wp_get_sites();
49
- foreach($sites as $site) {
50
- $blogsId = $site['blog_id']."_";
51
- global $wpdb;
52
- $obj->createTables($blogsId);
53
- }
54
- }
55
- }
56
-
57
- public static function uninstallTables($blogsId)
58
- {
59
- global $wpdb;
60
- $delete = "DELETE FROM ".$wpdb->prefix.$blogsId."postmeta WHERE meta_key = 'sg_promotional_popup' ";
61
- $wpdb->query($delete);
62
-
63
- $popupTable = $wpdb->prefix.$blogsId."sg_popup";
64
- $popupSql = "DROP TABLE ". $popupTable;
65
-
66
- $popupImageTable = $wpdb->prefix.$blogsId."sg_image_popup";
67
- $popupImageSql = "DROP TABLE ". $popupImageTable;
68
-
69
- $popupHtmlTable = $wpdb->prefix.$blogsId."sg_html_popup";
70
- $popupHtmlSql = "DROP TABLE ". $popupHtmlTable;
71
-
72
- $popupFblikeTable = $wpdb->prefix.$blogsId."sg_fblike_popup";
73
- $popupFblikeSql = "DROP TABLE ". $popupFblikeTable;
74
-
75
- $popupShortcodeTable = $wpdb->prefix.$blogId."sg_shortCode_popup";
76
- $popupShortcodeSql = "DROP TABLE ". $popupShortcodeTable;
77
-
78
- $wpdb->query($popupSql);
79
- $wpdb->query($popupImageSql);
80
- $wpdb->query($popupHtmlSql);
81
- $wpdb->query($popupFblikeSql);
82
- $wpdb->query($popupShortcodeSql);
83
- }
84
-
85
- public static function deleteSgPopupOptions($blogsId)
86
- {
87
- global $wpdb;
88
- $deleteSG = "DELETE FROM ".$wpdb->prefix.$blogsId."options WHERE option_name LIKE '%SG_POPUP%'";
89
- $wpdb->query($deleteSG);
90
- }
91
-
92
- public static function uninstall() {
93
- global $wpdb;
94
- $obj = new self();
95
- $obj->uninstallTables("");
96
- $obj->deleteSgPopupOptions("");
97
-
98
- if(is_multisite()) {
99
- $stites = wp_get_sites();
100
- foreach($stites as $site) {
101
- $blogsId = $site['blog_id']."_";
102
- global $wpdb;
103
- $obj->uninstallTables($blogsId);
104
- $obj->deleteSgPopupOptions($blogsId);
105
- }
106
- }
107
- }
108
  }
1
+ <?php
2
+ class PopupInstaller
3
+ {
4
+ public static $maintablename = "sg_popup";
5
+
6
+ public static function createTables($blogsId)
7
+ {
8
+ global $wpdb;
9
+ update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
10
+ $sgPopupBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_popup (
11
+ `id` int(11) NOT NULL AUTO_INCREMENT,
12
+ `type` varchar(255) NOT NULL,
13
+ `title` varchar(255) NOT NULL,
14
+ `options` LONGTEXT NOT NULL,
15
+ PRIMARY KEY (id)
16
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
17
+ $sgPopupImageBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_image_popup (
18
+ `id` int(11) NOT NULL,
19
+ `url` varchar(255) NOT NULL
20
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
21
+ $sgPopupHtmlBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_html_popup (
22
+ `id` int(11) NOT NULL,
23
+ `content` text NOT NULL
24
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
25
+ $sgPopupFblikeBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_fblike_popup (
26
+ `id` int(11) NOT NULL,
27
+ `content` text NOT NULL,
28
+ `options` text NOT NULL
29
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
30
+ $sgPopupShortcodeBase = "CREATE TABLE IF NOT EXISTS ". $wpdb->prefix.$blogsId."sg_shortCode_popup (
31
+ `id` int(12) NOT NULL,
32
+ `url` text NOT NULL
33
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
34
+
35
+ $wpdb->query($sgPopupBase);
36
+ $wpdb->query($sgPopupImageBase);
37
+ $wpdb->query($sgPopupHtmlBase);
38
+ $wpdb->query($sgPopupFblikeBase);
39
+ $wpdb->query($sgPopupShortcodeBase);
40
+ }
41
+
42
+ public static function install()
43
+ {
44
+ $obj = new self();
45
+ $obj->createTables("");
46
+
47
+ if(is_multisite()) {
48
+ $sites = wp_get_sites();
49
+ foreach($sites as $site) {
50
+ $blogsId = $site['blog_id']."_";
51
+ global $wpdb;
52
+ $obj->createTables($blogsId);
53
+ }
54
+ }
55
+ }
56
+
57
+ public static function uninstallTables($blogsId)
58
+ {
59
+ global $wpdb;
60
+ $delete = "DELETE FROM ".$wpdb->prefix.$blogsId."postmeta WHERE meta_key = 'sg_promotional_popup' ";
61
+ $wpdb->query($delete);
62
+
63
+ $popupTable = $wpdb->prefix.$blogsId."sg_popup";
64
+ $popupSql = "DROP TABLE ". $popupTable;
65
+
66
+ $popupImageTable = $wpdb->prefix.$blogsId."sg_image_popup";
67
+ $popupImageSql = "DROP TABLE ". $popupImageTable;
68
+
69
+ $popupHtmlTable = $wpdb->prefix.$blogsId."sg_html_popup";
70
+ $popupHtmlSql = "DROP TABLE ". $popupHtmlTable;
71
+
72
+ $popupFblikeTable = $wpdb->prefix.$blogsId."sg_fblike_popup";
73
+ $popupFblikeSql = "DROP TABLE ". $popupFblikeTable;
74
+
75
+ $popupShortcodeTable = $wpdb->prefix.$blogId."sg_shortCode_popup";
76
+ $popupShortcodeSql = "DROP TABLE ". $popupShortcodeTable;
77
+
78
+ $wpdb->query($popupSql);
79
+ $wpdb->query($popupImageSql);
80
+ $wpdb->query($popupHtmlSql);
81
+ $wpdb->query($popupFblikeSql);
82
+ $wpdb->query($popupShortcodeSql);
83
+ }
84
+
85
+ public static function deleteSgPopupOptions($blogsId)
86
+ {
87
+ global $wpdb;
88
+ $deleteSG = "DELETE FROM ".$wpdb->prefix.$blogsId."options WHERE option_name LIKE '%SG_POPUP%'";
89
+ $wpdb->query($deleteSG);
90
+ }
91
+
92
+ public static function uninstall() {
93
+ global $wpdb;
94
+ $obj = new self();
95
+ $obj->uninstallTables("");
96
+ $obj->deleteSgPopupOptions("");
97
+
98
+ if(is_multisite()) {
99
+ $stites = wp_get_sites();
100
+ foreach($stites as $site) {
101
+ $blogsId = $site['blog_id']."_";
102
+ global $wpdb;
103
+ $obj->uninstallTables($blogsId);
104
+ $obj->deleteSgPopupOptions($blogsId);
105
+ }
106
+ }
107
+ }
108
  }
classes/SGFblikePopup.php CHANGED
@@ -1,109 +1,109 @@
1
- <?php
2
- require_once(dirname(__FILE__).'/SGPopup.php');
3
-
4
- class SGFblikePopup extends SGPopup
5
- {
6
- public $content;
7
- public $fblikeOptions;
8
-
9
- public function setContent($content)
10
- {
11
- $this->content = $content;
12
- }
13
-
14
- public function getContent()
15
- {
16
- return $this->content;
17
- }
18
-
19
- public function setFblikeOptions($options)
20
- {
21
- $this->fblikeOptions = $options;
22
- }
23
-
24
- public function getFblikeOptions()
25
- {
26
- return $this->fblikeOptions;
27
- }
28
-
29
- public static function create($data, $obj = null)
30
- {
31
- $obj = new self();
32
- $options = json_decode($data['options'], true);
33
- $fblikeOptions = $options['fblikeOptions'];
34
-
35
- $obj->setFblikeOptions($fblikeOptions);
36
- $obj->setContent($data['fblike']);
37
-
38
- return parent::create($data, $obj);
39
- }
40
-
41
- public function save($data = array())
42
- {
43
-
44
- $editMode = $this->getId()?true:false;
45
-
46
- $res = parent::save($data);
47
- if ($res===false) return false;
48
-
49
- $sgFblikeContent = $this->getContent();
50
- $fblikeOptions = $this->getFblikeOptions();
51
-
52
- global $wpdb;
53
- if ($editMode) {
54
- $sgFblikeContent = stripslashes($sgFblikeContent);
55
- $sql = $wpdb->prepare("UPDATE ".$wpdb->prefix."sg_fblike_popup SET content=%s, options=%s WHERE id=%d", $sgFblikeContent, $fblikeOptions, $this->getId());
56
- $res = $wpdb->query($sql);
57
- }
58
- else {
59
-
60
- $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix."sg_fblike_popup (id, content, options) VALUES (%d, %s, %s)",$this->getId(),$sgFblikeContent, $fblikeOptions);
61
- $res = $wpdb->query($sql);
62
- }
63
- return $res;
64
- }
65
-
66
- protected function setCustomOptions($id)
67
- {
68
- global $wpdb;
69
- $st = $wpdb->prepare("SELECT content, options FROM ".$wpdb->prefix."sg_fblike_popup WHERE id = %d", $id);
70
- $arr = $wpdb->get_row($st,ARRAY_A);
71
- $this->setContent($arr['content']);
72
- $this->setFblikeOptions($arr['options']);
73
- }
74
-
75
- protected function getExtraRenderOptions()
76
- {
77
- $options = json_decode($this->getFblikeOptions(), true);
78
- $url = $options['fblike-like-url'];
79
- $layout = $options['fblike-layout'];
80
-
81
- $content = $this->getContent();
82
- $content = $this->improveContent($content);
83
- $content .= "<div id=\"sg-facebook-like\"><script type=\"text/javascript\">
84
- (function(d, s, id) {
85
- var js, fjs = d.getElementsByTagName(s)[0];
86
- if (d.getElementById(id)) return;
87
- js = d.createElement(s); js.id = id;
88
- js.src = \"//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5\";
89
- fjs.parentNode.insertBefore(js, fjs);
90
- }(document, 'script', 'facebook-jssdk'));
91
- </script>";
92
- $content .= '<div class = "sg-fb-buttons-wrapper"><div class="fb-like" data-href="'.$url.'" data-layout="'.$layout.'" data-action="like" data-show-faces="true" data-share="true"></div></div></div>';
93
- $content .= '<style>
94
- .sg-fb-buttons-wrapper{
95
- text-align: center;
96
- min-height: 25px;
97
- }
98
- #sgcboxLoadedContent iframe {
99
- max-width: none !important;
100
- }
101
- </style>';
102
- return array('html'=>$content);
103
- }
104
-
105
- public function render()
106
- {
107
- return parent::render();
108
- }
109
- }
1
+ <?php
2
+ require_once(dirname(__FILE__).'/SGPopup.php');
3
+
4
+ class SGFblikePopup extends SGPopup
5
+ {
6
+ public $content;
7
+ public $fblikeOptions;
8
+
9
+ public function setContent($content)
10
+ {
11
+ $this->content = $content;
12
+ }
13
+
14
+ public function getContent()
15
+ {
16
+ return $this->content;
17
+ }
18
+
19
+ public function setFblikeOptions($options)
20
+ {
21
+ $this->fblikeOptions = $options;
22
+ }
23
+
24
+ public function getFblikeOptions()
25
+ {
26
+ return $this->fblikeOptions;
27
+ }
28
+
29
+ public static function create($data, $obj = null)
30
+ {
31
+ $obj = new self();
32
+ $options = json_decode($data['options'], true);
33
+ $fblikeOptions = $options['fblikeOptions'];
34
+
35
+ $obj->setFblikeOptions($fblikeOptions);
36
+ $obj->setContent($data['fblike']);
37
+
38
+ return parent::create($data, $obj);
39
+ }
40
+
41
+ public function save($data = array())
42
+ {
43
+
44
+ $editMode = $this->getId()?true:false;
45
+
46
+ $res = parent::save($data);
47
+ if ($res===false) return false;
48
+
49
+ $sgFblikeContent = $this->getContent();
50
+ $fblikeOptions = $this->getFblikeOptions();
51
+
52
+ global $wpdb;
53
+ if ($editMode) {
54
+ $sgFblikeContent = stripslashes($sgFblikeContent);
55
+ $sql = $wpdb->prepare("UPDATE ".$wpdb->prefix."sg_fblike_popup SET content=%s, options=%s WHERE id=%d", $sgFblikeContent, $fblikeOptions, $this->getId());
56
+ $res = $wpdb->query($sql);
57
+ }
58
+ else {
59
+
60
+ $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix."sg_fblike_popup (id, content, options) VALUES (%d, %s, %s)",$this->getId(),$sgFblikeContent, $fblikeOptions);
61
+ $res = $wpdb->query($sql);
62
+ }
63
+ return $res;
64
+ }
65
+
66
+ protected function setCustomOptions($id)
67
+ {
68
+ global $wpdb;
69
+ $st = $wpdb->prepare("SELECT content, options FROM ".$wpdb->prefix."sg_fblike_popup WHERE id = %d", $id);
70
+ $arr = $wpdb->get_row($st,ARRAY_A);
71
+ $this->setContent($arr['content']);
72
+ $this->setFblikeOptions($arr['options']);
73
+ }
74
+
75
+ protected function getExtraRenderOptions()
76
+ {
77
+ $options = json_decode($this->getFblikeOptions(), true);
78
+ $url = $options['fblike-like-url'];
79
+ $layout = $options['fblike-layout'];
80
+
81
+ $content = $this->getContent();
82
+ $content = $this->improveContent($content);
83
+ $content .= "<div id=\"sg-facebook-like\"><script type=\"text/javascript\">
84
+ (function(d, s, id) {
85
+ var js, fjs = d.getElementsByTagName(s)[0];
86
+ if (d.getElementById(id)) return;
87
+ js = d.createElement(s); js.id = id;
88
+ js.src = \"//connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v2.5\";
89
+ fjs.parentNode.insertBefore(js, fjs);
90
+ }(document, 'script', 'facebook-jssdk'));
91
+ </script>";
92
+ $content .= '<div class = "sg-fb-buttons-wrapper"><div class="fb-like" data-href="'.$url.'" data-layout="'.$layout.'" data-action="like" data-show-faces="true" data-share="true"></div></div></div>';
93
+ $content .= '<style>
94
+ .sg-fb-buttons-wrapper{
95
+ text-align: center;
96
+ min-height: 25px;
97
+ }
98
+ #sgcboxLoadedContent iframe {
99
+ max-width: none !important;
100
+ }
101
+ </style>';
102
+ return array('html'=>$content);
103
+ }
104
+
105
+ public function render()
106
+ {
107
+ return parent::render();
108
+ }
109
+ }
classes/SGHtmlPopup.php CHANGED
@@ -1,60 +1,60 @@
1
- <?php
2
- require_once(dirname(__FILE__).'/SGPopup.php');
3
-
4
- class SGHtmlPopup extends SGPopup {
5
- public $content;
6
-
7
- public function setContent($content) {
8
- $this->content = $content;
9
- }
10
- public function getContent() {
11
- return $this->content;
12
- }
13
- public static function create($data, $obj = null) {
14
- $obj = new self();
15
-
16
- $obj->setContent($data['html']);
17
-
18
- return parent::create($data, $obj);
19
- }
20
- public function save($data = array()) {
21
-
22
- $editMode = $this->getId()?true:false;
23
-
24
- $res = parent::save($data);
25
- if ($res===false) return false;
26
-
27
- $sgHtmlPopup = $this->getContent();
28
-
29
- global $wpdb;
30
- if ($editMode) {
31
- $sgHtmlPopup = stripslashes($sgHtmlPopup);
32
- $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_html_popup SET content=%s WHERE id=%d",$sgHtmlPopup,$this->getId());
33
- $res = $wpdb->query($sql);
34
- }
35
- else {
36
-
37
- $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_html_popup (id, content) VALUES (%d,%s)",$this->getId(),$sgHtmlPopup);
38
- $res = $wpdb->query($sql);
39
- }
40
- return $res;
41
- }
42
-
43
- protected function setCustomOptions($id) {
44
- global $wpdb;
45
- $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_html_popup WHERE id = %d",$id);
46
- $arr = $wpdb->get_row($st,ARRAY_A);
47
- $this->setContent($arr['content']);
48
- }
49
-
50
- protected function getExtraRenderOptions() {
51
- $content = $this->getContent();
52
- $content = $this->improveContent($content);
53
-
54
- return array('html' => $content);
55
- }
56
-
57
- public function render() {
58
- return parent::render();
59
- }
60
- }
1
+ <?php
2
+ require_once(dirname(__FILE__).'/SGPopup.php');
3
+
4
+ class SGHtmlPopup extends SGPopup {
5
+ public $content;
6
+
7
+ public function setContent($content) {
8
+ $this->content = $content;
9
+ }
10
+ public function getContent() {
11
+ return $this->content;
12
+ }
13
+ public static function create($data, $obj = null) {
14
+ $obj = new self();
15
+
16
+ $obj->setContent($data['html']);
17
+
18
+ return parent::create($data, $obj);
19
+ }
20
+ public function save($data = array()) {
21
+
22
+ $editMode = $this->getId()?true:false;
23
+
24
+ $res = parent::save($data);
25
+ if ($res===false) return false;
26
+
27
+ $sgHtmlPopup = $this->getContent();
28
+
29
+ global $wpdb;
30
+ if ($editMode) {
31
+ $sgHtmlPopup = stripslashes($sgHtmlPopup);
32
+ $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_html_popup SET content=%s WHERE id=%d",$sgHtmlPopup,$this->getId());
33
+ $res = $wpdb->query($sql);
34
+ }
35
+ else {
36
+
37
+ $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_html_popup (id, content) VALUES (%d,%s)",$this->getId(),$sgHtmlPopup);
38
+ $res = $wpdb->query($sql);
39
+ }
40
+ return $res;
41
+ }
42
+
43
+ protected function setCustomOptions($id) {
44
+ global $wpdb;
45
+ $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_html_popup WHERE id = %d",$id);
46
+ $arr = $wpdb->get_row($st,ARRAY_A);
47
+ $this->setContent($arr['content']);
48
+ }
49
+
50
+ protected function getExtraRenderOptions() {
51
+ $content = $this->getContent();
52
+ $content = $this->improveContent($content);
53
+
54
+ return array('html' => $content);
55
+ }
56
+
57
+ public function render() {
58
+ return parent::render();
59
+ }
60
+ }
classes/SGImagePopup.php CHANGED
@@ -1,54 +1,54 @@
1
- <?php
2
- require_once(dirname(__FILE__).'/SGPopup.php');
3
-
4
- class SGImagePopup extends SGPopup {
5
- private $url;
6
-
7
- public function setUrl($url) {
8
- $this->url = $url;
9
- }
10
- public function getUrl() {
11
- return $this->url;
12
- }
13
- public static function create($data, $obj = null) {
14
- $obj = new self();
15
-
16
- $obj->setUrl($data['image']);
17
-
18
- parent::create($data, $obj);
19
- }
20
-
21
- public function save($data = array()) {
22
-
23
- $editMode = $this->getId()?true:false;
24
-
25
- $res = parent::save($data);
26
- if ($res===false) return false;
27
-
28
- global $wpdb;
29
- if ($editMode) {
30
- $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_image_popup SET url=%s WHERE id=%d",$this->getUrl(),$this->getId());
31
- $res = $wpdb->query($sql);
32
- }
33
- else {
34
-
35
- $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_image_popup (id, url) VALUES (%d,%s)",$this->getId(),$this->getUrl());
36
- $res = $wpdb->query($sql);
37
- }
38
- return $res;
39
- }
40
-
41
- protected function setCustomOptions($id) {
42
- global $wpdb;
43
- $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_image_popup WHERE id = %d",$id);
44
- $arr = $wpdb->get_row($st,ARRAY_A);
45
- $this->setUrl($arr['url']);
46
- }
47
- protected function getExtraRenderOptions() {
48
- return array('image'=>$this->getUrl());
49
- }
50
-
51
- public function render() {
52
- return parent::render();
53
- }
54
  }
1
+ <?php
2
+ require_once(dirname(__FILE__).'/SGPopup.php');
3
+
4
+ class SGImagePopup extends SGPopup {
5
+ private $url;
6
+
7
+ public function setUrl($url) {
8
+ $this->url = $url;
9
+ }
10
+ public function getUrl() {
11
+ return $this->url;
12
+ }
13
+ public static function create($data, $obj = null) {
14
+ $obj = new self();
15
+
16
+ $obj->setUrl($data['image']);
17
+
18
+ parent::create($data, $obj);
19
+ }
20
+
21
+ public function save($data = array()) {
22
+
23
+ $editMode = $this->getId()?true:false;
24
+
25
+ $res = parent::save($data);
26
+ if ($res===false) return false;
27
+
28
+ global $wpdb;
29
+ if ($editMode) {
30
+ $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_image_popup SET url=%s WHERE id=%d",$this->getUrl(),$this->getId());
31
+ $res = $wpdb->query($sql);
32
+ }
33
+ else {
34
+
35
+ $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_image_popup (id, url) VALUES (%d,%s)",$this->getId(),$this->getUrl());
36
+ $res = $wpdb->query($sql);
37
+ }
38
+ return $res;
39
+ }
40
+
41
+ protected function setCustomOptions($id) {
42
+ global $wpdb;
43
+ $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_image_popup WHERE id = %d",$id);
44
+ $arr = $wpdb->get_row($st,ARRAY_A);
45
+ $this->setUrl($arr['url']);
46
+ }
47
+ protected function getExtraRenderOptions() {
48
+ return array('image'=>$this->getUrl());
49
+ }
50
+
51
+ public function render() {
52
+ return parent::render();
53
+ }
54
  }
classes/SGPopup.php CHANGED
@@ -1,333 +1,333 @@
1
- <?php
2
-
3
- abstract class SGPopup {
4
- protected $id;
5
- protected $type;
6
- protected $title;
7
- protected $width;
8
- protected $height;
9
- protected $delay;
10
- protected $effectDuration;
11
- protected $effect;
12
- protected $initialWidth;
13
- protected $initialHeight;
14
- protected $options;
15
- public static $registeredScripts = false;
16
-
17
- public function setType($type){
18
- $this->type = $type;
19
- }
20
- public function getType() {
21
- return $this->type;
22
- }
23
- public function setTitle($title){
24
- $this->title = $title;
25
- }
26
- public function getTitle() {
27
- return $this->title;
28
- }
29
- public function setId($id){
30
- $this->id = $id;
31
- }
32
- public function getId() {
33
- return $this->id;
34
- }
35
- public function setWidth($width){
36
- $this->width = $width;
37
- }
38
- public function getWidth() {
39
- return $this->width;
40
- }
41
- public function setHeight($height){
42
- $this->height = $height;
43
- }
44
- public function getHeight() {
45
- return $this->height;
46
- }
47
- public function setDelay($delay){
48
- $this->delay = $delay;
49
- }
50
- public function getDelay() {
51
- return $this->delay;
52
- }
53
- public function setEffectDuration($effectDuration){
54
- $this->effectDuration = $effectDuration;
55
- }
56
- public function getEffectDuration() {
57
- return $this->effectDuration;
58
- }
59
- public function setEffect($effect){
60
- $this->effect = $effect;
61
- }
62
- public function getEffect() {
63
- return $this->effect;
64
- }
65
- public function setInitialWidth($initialWidth){
66
- $this->initialWidth = $initialWidth;
67
- }
68
- public function getInitialWidth() {
69
- return $this->initialWidth;
70
- }
71
- public function setInitialHeight($initialHeight){
72
- $this->initialHeight = $initialHeight;
73
- }
74
- public function getInitialHeight() {
75
- return $this->initialHeight;
76
- }
77
- public function setOptions($options) {
78
- $this->options = $options;
79
- }
80
- public function getOptions() {
81
- return $this->options;
82
- }
83
- public static function findById($id) {
84
-
85
- global $wpdb;
86
- $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_popup WHERE id = %d",$id);
87
- $arr = $wpdb->get_row($st,ARRAY_A);
88
- if(!$arr) return false;
89
- return self::popupObjectFromArray($arr);
90
-
91
- }
92
-
93
- abstract protected function setCustomOptions($id);
94
-
95
- abstract protected function getExtraRenderOptions();
96
-
97
- private static function popupObjectFromArray($arr, $obj = null) {
98
-
99
- $jsonData = json_decode($arr['options'], true);
100
-
101
- $type = sgSafeStr($arr['type']);
102
-
103
- if ($obj===null) {
104
- $className = "SG".ucfirst(strtolower($type)).'Popup';
105
- require_once(dirname(__FILE__).'/'.$className.'.php');
106
- $obj = new $className();
107
- }
108
-
109
- $obj->setType(sgSafeStr($type));
110
- $obj->setTitle(sgSafeStr($arr['title']));
111
- if (@$arr['id']) $obj->setId($arr['id']);
112
- $obj->setWidth(sgSafeStr(@$jsonData['width']));
113
- $obj->setHeight(sgSafeStr(@$jsonData['height']));
114
- $obj->setDelay(sgSafeStr(@$jsonData['delay']));
115
- $obj->setEffectDuration(sgSafeStr(@$jsonData['duration']));
116
- $obj->setEffect(sgSafeStr($jsonData['effect']));
117
- $obj->setInitialWidth(sgSafeStr(@$jsonData['initialWidth']));
118
- $obj->setInitialHeight(sgSafeStr(@$jsonData['initialHeight']));
119
- $obj->setOptions(sgSafeStr($arr['options']));
120
-
121
- if (@$arr['id']) $obj->setCustomOptions($arr['id']);
122
-
123
- return $obj;
124
- }
125
-
126
- public static function create($data, $obj)
127
- {
128
- self::popupObjectFromArray($data, $obj);
129
- return $obj->save();
130
- }
131
- public function save($data = array()) {
132
-
133
- $id = $this->getId();
134
- $type = $this->getType();
135
- $title = $this->getTitle();
136
- $options = $this->getOptions();
137
-
138
- global $wpdb;
139
-
140
- if($id == '') {
141
- $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_popup(type,title,options) VALUES (%s,%s,%s)",$type,$title,$options);
142
- $res = $wpdb->query($sql);
143
-
144
-
145
- if ($res) {
146
- $id = $wpdb->insert_id;
147
- $this->setId($id);
148
- }
149
- return $res;
150
-
151
- }
152
- else {
153
- $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_popup SET type=%s,title=%s,options=%s WHERE id=%d",$type,$title,$options,$id);
154
- $res = $wpdb->query($sql);
155
- if(!$wpdb->show_errors()) {
156
- $res = 1;
157
- }
158
-
159
- return $res;
160
- }
161
- }
162
- public static function findAll($orderBy = null, $limit = null, $offset = null) {
163
-
164
- global $wpdb;
165
-
166
- $query = "SELECT * FROM ". $wpdb->prefix ."sg_popup";
167
-
168
- if ($orderBy) {
169
- $query .= " ORDER BY ".$orderBy;
170
- }
171
-
172
- if ($limit) {
173
- $query .= " LIMIT ".intval($offset).','.intval($limit);
174
- }
175
-
176
- //$st = $wpdb->prepare($query, array());
177
- $popups = $wpdb->get_results($query, ARRAY_A);
178
-
179
- $arr = array();
180
- foreach ($popups as $popup) {
181
- $arr[] = self::popupObjectFromArray($popup);
182
- }
183
-
184
- return $arr;
185
- }
186
- public static function delete($id) {
187
- $pop = self::findById($id);
188
- $type = $pop->getType();
189
- $table = 'sg_'.$type.'_Popup';
190
-
191
- global $wpdb;
192
- $wpdb->query(
193
- $wpdb->prepare(
194
- "DELETE FROM ". $wpdb->prefix ."$table WHERE id = %d"
195
- ,$id
196
- )
197
- );
198
- $wpdb->query(
199
- $wpdb->prepare(
200
- "DELETE FROM ". $wpdb->prefix ."sg_popup WHERE id = %d"
201
- ,$id
202
- )
203
- );
204
-
205
- $wpdb->query(
206
- $wpdb->prepare(
207
- "DELETE FROM ". $wpdb->prefix ."postmeta WHERE meta_value = %d and meta_key = 'wp_sg_popup'"
208
- ,$id
209
- )
210
- );
211
- }
212
-
213
- public static function setPopupForPost($post_id, $popupId) {
214
- update_post_meta($post_id, 'wp_sg_popup' , $popupId);
215
- }
216
-
217
- public function getRemoveOptions() {
218
- return array();
219
- }
220
-
221
- public function improveContent($content) {
222
- if(SG_POPUP_PRO) {
223
- require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php");
224
- return SgPopupPro::sgPopupExtraSanitize($content);
225
- }
226
- return $content;
227
- }
228
-
229
- public function render() {
230
- $parentOption = array('id'=>$this->getId(),'title'=>$this->getTitle(),'type'=>$this->getType(),'effect'=>$this->getEffect(),'width',$this->getWidth(),'height'=>$this->getHeight(),'delay'=>$this->getDelay(),'duration'=>$this->getEffectDuration(),'initialWidth',$this->getInitialWidth(),'initialHeight'=>$this->getInitialHeight());
231
- $getexrArray = $this->getExtraRenderOptions();
232
- $options = json_decode($this->getOptions(),true);
233
- if(empty($options)) $options = array();
234
- $sgPopupVars = 'SG_POPUP_DATA['.$this->getId().'] ='.json_encode(array_merge($parentOption, $options, $getexrArray)).';';
235
-
236
- return $sgPopupVars;
237
- }
238
- public static function getTotalRowCount() {
239
- global $wpdb;
240
- $res = $wpdb->get_var( "SELECT COUNT(id) FROM ". $wpdb->prefix ."sg_popup" );
241
- return $res;
242
- }
243
-
244
- public static function getPagePopupId($page,$popup) {
245
- global $wpdb;
246
- $sql = $wpdb->prepare("SELECT meta_value FROM ". $wpdb->prefix ."postmeta WHERE post_id = %d AND meta_key = %s",$page,$popup);
247
- $row = $wpdb->get_row($sql);
248
- $id = 0;
249
- if($row) {
250
- $id = (int)@$row->meta_value;
251
- }
252
- return $id;
253
- }
254
-
255
- public static function showPopupForCounrty($contryIsoName, $popupId) {
256
- $obj = SGPopup::findById($popupId);
257
- if(!$obj) {
258
- return true;
259
- }
260
- $isInArray = true;
261
- $options = json_decode($obj->getOptions(), true);
262
-
263
- $countryStatus = $options['countryStatus'];
264
- $countryIso = $options['countryIso'];
265
- $allowCountries = $options['allowCountries'];
266
- $countryIsoArray = explode(',', $countryIso);
267
- if($countryStatus) {
268
- if($allowCountries == 'allow') {
269
- $isInArray = in_array($contryIsoName, $countryIsoArray);
270
- }
271
- if($allowCountries == 'disallow') {
272
- $isInArray = !in_array($contryIsoName, $countryIsoArray);
273
- }
274
- }
275
-
276
- return $isInArray;
277
- }
278
-
279
- public static function addPopupForAllPages($id = '', $selectedData = '') {
280
- global $wpdb;
281
-
282
- $values = array();
283
- $insertPreapre = array();
284
-
285
- //Remove page if it is in use for another popup
286
- self::deleteAllPagesPopup($selectedData);
287
-
288
- $insertQuery = "INSERT INTO ". $wpdb->prefix ."sg_popup_in_pages(popupId, pageId) VALUES ";
289
-
290
- foreach ($selectedData as $value) {
291
- $insertPreapre[] .= $wpdb->prepare( "(%d,%d)", $id, $value );
292
- }
293
- $insertQuery .= implode( ",\n", $insertPreapre );
294
-
295
- $res = $wpdb->query($insertQuery);
296
- }
297
-
298
- public static function removePopupFromPages($popupId)
299
- {
300
- global $wpdb;
301
- $query = $wpdb->prepare('DELETE FROM '.$wpdb->prefix.'sg_popup_in_pages WHERE popupId = %d', $popupId);
302
- $wpdb->query($query);
303
- }
304
-
305
- public static function deleteAllPagesPopup($selectedPages) {
306
- global $wpdb;
307
-
308
- $deletePrepare = array();
309
- $deleteQuery = "DELETE FROM ". $wpdb->prefix ."sg_popup_in_pages WHERE pageId IN (";
310
-
311
- foreach ($selectedPages as $value) {
312
- $deletePrepare[] .= $wpdb->prepare("%d", $value );
313
- }
314
-
315
- $deleteQuery .= implode( ",\n", $deletePrepare ).")";
316
-
317
- $deleteRes = $wpdb->query($deleteQuery);
318
- }
319
-
320
- public static function findInAllSelectedPages($pageId) {
321
- global $wpdb;
322
-
323
- $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_popup_in_pages WHERE pageId = %d", $pageId);
324
- $arr = $wpdb->get_row($st, ARRAY_A);
325
- if(!$arr) return false;
326
- return $arr['popupId'];
327
- }
328
-
329
- }
330
-
331
- function sgSafeStr ($param) {
332
- return ($param===null?'':$param);
333
- }
1
+ <?php
2
+
3
+ abstract class SGPopup {
4
+ protected $id;
5
+ protected $type;
6
+ protected $title;
7
+ protected $width;
8
+ protected $height;
9
+ protected $delay;
10
+ protected $effectDuration;
11
+ protected $effect;
12
+ protected $initialWidth;
13
+ protected $initialHeight;
14
+ protected $options;
15
+ public static $registeredScripts = false;
16
+
17
+ public function setType($type){
18
+ $this->type = $type;
19
+ }
20
+ public function getType() {
21
+ return $this->type;
22
+ }
23
+ public function setTitle($title){
24
+ $this->title = $title;
25
+ }
26
+ public function getTitle() {
27
+ return $this->title;
28
+ }
29
+ public function setId($id){
30
+ $this->id = $id;
31
+ }
32
+ public function getId() {
33
+ return $this->id;
34
+ }
35
+ public function setWidth($width){
36
+ $this->width = $width;
37
+ }
38
+ public function getWidth() {
39
+ return $this->width;
40
+ }
41
+ public function setHeight($height){
42
+ $this->height = $height;
43
+ }
44
+ public function getHeight() {
45
+ return $this->height;
46
+ }
47
+ public function setDelay($delay){
48
+ $this->delay = $delay;
49
+ }
50
+ public function getDelay() {
51
+ return $this->delay;
52
+ }
53
+ public function setEffectDuration($effectDuration){
54
+ $this->effectDuration = $effectDuration;
55
+ }
56
+ public function getEffectDuration() {
57
+ return $this->effectDuration;
58
+ }
59
+ public function setEffect($effect){
60
+ $this->effect = $effect;
61
+ }
62
+ public function getEffect() {
63
+ return $this->effect;
64
+ }
65
+ public function setInitialWidth($initialWidth){
66
+ $this->initialWidth = $initialWidth;
67
+ }
68
+ public function getInitialWidth() {
69
+ return $this->initialWidth;
70
+ }
71
+ public function setInitialHeight($initialHeight){
72
+ $this->initialHeight = $initialHeight;
73
+ }
74
+ public function getInitialHeight() {
75
+ return $this->initialHeight;
76
+ }
77
+ public function setOptions($options) {
78
+ $this->options = $options;
79
+ }
80
+ public function getOptions() {
81
+ return $this->options;
82
+ }
83
+ public static function findById($id) {
84
+
85
+ global $wpdb;
86
+ $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_popup WHERE id = %d",$id);
87
+ $arr = $wpdb->get_row($st,ARRAY_A);
88
+ if(!$arr) return false;
89
+ return self::popupObjectFromArray($arr);
90
+
91
+ }
92
+
93
+ abstract protected function setCustomOptions($id);
94
+
95
+ abstract protected function getExtraRenderOptions();
96
+
97
+ private static function popupObjectFromArray($arr, $obj = null) {
98
+
99
+ $jsonData = json_decode($arr['options'], true);
100
+
101
+ $type = sgSafeStr($arr['type']);
102
+
103
+ if ($obj===null) {
104
+ $className = "SG".ucfirst(strtolower($type)).'Popup';
105
+ require_once(dirname(__FILE__).'/'.$className.'.php');
106
+ $obj = new $className();
107
+ }
108
+
109
+ $obj->setType(sgSafeStr($type));
110
+ $obj->setTitle(sgSafeStr($arr['title']));
111
+ if (@$arr['id']) $obj->setId($arr['id']);
112
+ $obj->setWidth(sgSafeStr(@$jsonData['width']));
113
+ $obj->setHeight(sgSafeStr(@$jsonData['height']));
114
+ $obj->setDelay(sgSafeStr(@$jsonData['delay']));
115
+ $obj->setEffectDuration(sgSafeStr(@$jsonData['duration']));
116
+ $obj->setEffect(sgSafeStr($jsonData['effect']));
117
+ $obj->setInitialWidth(sgSafeStr(@$jsonData['initialWidth']));
118
+ $obj->setInitialHeight(sgSafeStr(@$jsonData['initialHeight']));
119
+ $obj->setOptions(sgSafeStr($arr['options']));
120
+
121
+ if (@$arr['id']) $obj->setCustomOptions($arr['id']);
122
+
123
+ return $obj;
124
+ }
125
+
126
+ public static function create($data, $obj)
127
+ {
128
+ self::popupObjectFromArray($data, $obj);
129
+ return $obj->save();
130
+ }
131
+ public function save($data = array()) {
132
+
133
+ $id = $this->getId();
134
+ $type = $this->getType();
135
+ $title = $this->getTitle();
136
+ $options = $this->getOptions();
137
+
138
+ global $wpdb;
139
+
140
+ if($id == '') {
141
+ $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_popup(type,title,options) VALUES (%s,%s,%s)",$type,$title,$options);
142
+ $res = $wpdb->query($sql);
143
+
144
+
145
+ if ($res) {
146
+ $id = $wpdb->insert_id;
147
+ $this->setId($id);
148
+ }
149
+ return $res;
150
+
151
+ }
152
+ else {
153
+ $sql = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_popup SET type=%s,title=%s,options=%s WHERE id=%d",$type,$title,$options,$id);
154
+ $res = $wpdb->query($sql);
155
+ if(!$wpdb->show_errors()) {
156
+ $res = 1;
157
+ }
158
+
159
+ return $res;
160
+ }
161
+ }
162
+ public static function findAll($orderBy = null, $limit = null, $offset = null) {
163
+
164
+ global $wpdb;
165
+
166
+ $query = "SELECT * FROM ". $wpdb->prefix ."sg_popup";
167
+
168
+ if ($orderBy) {
169
+ $query .= " ORDER BY ".$orderBy;
170
+ }
171
+
172
+ if ($limit) {
173
+ $query .= " LIMIT ".intval($offset).','.intval($limit);
174
+ }
175
+
176
+ //$st = $wpdb->prepare($query, array());
177
+ $popups = $wpdb->get_results($query, ARRAY_A);
178
+
179
+ $arr = array();
180
+ foreach ($popups as $popup) {
181
+ $arr[] = self::popupObjectFromArray($popup);
182
+ }
183
+
184
+ return $arr;
185
+ }
186
+ public static function delete($id) {
187
+ $pop = self::findById($id);
188
+ $type = $pop->getType();
189
+ $table = 'sg_'.$type.'_Popup';
190
+
191
+ global $wpdb;
192
+ $wpdb->query(
193
+ $wpdb->prepare(
194
+ "DELETE FROM ". $wpdb->prefix ."$table WHERE id = %d"
195
+ ,$id
196
+ )
197
+ );
198
+ $wpdb->query(
199
+ $wpdb->prepare(
200
+ "DELETE FROM ". $wpdb->prefix ."sg_popup WHERE id = %d"
201
+ ,$id
202
+ )
203
+ );
204
+
205
+ $wpdb->query(
206
+ $wpdb->prepare(
207
+ "DELETE FROM ". $wpdb->prefix ."postmeta WHERE meta_value = %d and meta_key = 'wp_sg_popup'"
208
+ ,$id
209
+ )
210
+ );
211
+ }
212
+
213
+ public static function setPopupForPost($post_id, $popupId) {
214
+ update_post_meta($post_id, 'wp_sg_popup' , $popupId);
215
+ }
216
+
217
+ public function getRemoveOptions() {
218
+ return array();
219
+ }
220
+
221
+ public function improveContent($content) {
222
+ if(SG_POPUP_PRO) {
223
+ require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php");
224
+ return SgPopupPro::sgPopupExtraSanitize($content);
225
+ }
226
+ return $content;
227
+ }
228
+
229
+ public function render() {
230
+ $parentOption = array('id'=>$this->getId(),'title'=>$this->getTitle(),'type'=>$this->getType(),'effect'=>$this->getEffect(),'width',$this->getWidth(),'height'=>$this->getHeight(),'delay'=>$this->getDelay(),'duration'=>$this->getEffectDuration(),'initialWidth',$this->getInitialWidth(),'initialHeight'=>$this->getInitialHeight());
231
+ $getexrArray = $this->getExtraRenderOptions();
232
+ $options = json_decode($this->getOptions(),true);
233
+ if(empty($options)) $options = array();
234
+ $sgPopupVars = 'SG_POPUP_DATA['.$this->getId().'] ='.json_encode(array_merge($parentOption, $options, $getexrArray)).';';
235
+
236
+ return $sgPopupVars;
237
+ }
238
+ public static function getTotalRowCount() {
239
+ global $wpdb;
240
+ $res = $wpdb->get_var( "SELECT COUNT(id) FROM ". $wpdb->prefix ."sg_popup" );
241
+ return $res;
242
+ }
243
+
244
+ public static function getPagePopupId($page,$popup) {
245
+ global $wpdb;
246
+ $sql = $wpdb->prepare("SELECT meta_value FROM ". $wpdb->prefix ."postmeta WHERE post_id = %d AND meta_key = %s",$page,$popup);
247
+ $row = $wpdb->get_row($sql);
248
+ $id = 0;
249
+ if($row) {
250
+ $id = (int)@$row->meta_value;
251
+ }
252
+ return $id;
253
+ }
254
+
255
+ public static function showPopupForCounrty($contryIsoName, $popupId) {
256
+ $obj = SGPopup::findById($popupId);
257
+ if(!$obj) {
258
+ return true;
259
+ }
260
+ $isInArray = true;
261
+ $options = json_decode($obj->getOptions(), true);
262
+
263
+ $countryStatus = $options['countryStatus'];
264
+ $countryIso = $options['countryIso'];
265
+ $allowCountries = $options['allowCountries'];
266
+ $countryIsoArray = explode(',', $countryIso);
267
+ if($countryStatus) {
268
+ if($allowCountries == 'allow') {
269
+ $isInArray = in_array($contryIsoName, $countryIsoArray);
270
+ }
271
+ if($allowCountries == 'disallow') {
272
+ $isInArray = !in_array($contryIsoName, $countryIsoArray);
273
+ }
274
+ }
275
+
276
+ return $isInArray;
277
+ }
278
+
279
+ public static function addPopupForAllPages($id = '', $selectedData = '') {
280
+ global $wpdb;
281
+
282
+ $values = array();
283
+ $insertPreapre = array();
284
+
285
+ //Remove page if it is in use for another popup
286
+ self::deleteAllPagesPopup($selectedData);
287
+
288
+ $insertQuery = "INSERT INTO ". $wpdb->prefix ."sg_popup_in_pages(popupId, pageId) VALUES ";
289
+
290
+ foreach ($selectedData as $value) {
291
+ $insertPreapre[] .= $wpdb->prepare( "(%d,%d)", $id, $value );
292
+ }
293
+ $insertQuery .= implode( ",\n", $insertPreapre );
294
+
295
+ $res = $wpdb->query($insertQuery);
296
+ }
297
+
298
+ public static function removePopupFromPages($popupId)
299
+ {
300
+ global $wpdb;
301
+ $query = $wpdb->prepare('DELETE FROM '.$wpdb->prefix.'sg_popup_in_pages WHERE popupId = %d', $popupId);
302
+ $wpdb->query($query);
303
+ }
304
+
305
+ public static function deleteAllPagesPopup($selectedPages) {
306
+ global $wpdb;
307
+
308
+ $deletePrepare = array();
309
+ $deleteQuery = "DELETE FROM ". $wpdb->prefix ."sg_popup_in_pages WHERE pageId IN (";
310
+
311
+ foreach ($selectedPages as $value) {
312
+ $deletePrepare[] .= $wpdb->prepare("%d", $value );
313
+ }
314
+
315
+ $deleteQuery .= implode( ",\n", $deletePrepare ).")";
316
+
317
+ $deleteRes = $wpdb->query($deleteQuery);
318
+ }
319
+
320
+ public static function findInAllSelectedPages($pageId) {
321
+ global $wpdb;
322
+
323
+ $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_popup_in_pages WHERE pageId = %d", $pageId);
324
+ $arr = $wpdb->get_row($st, ARRAY_A);
325
+ if(!$arr) return false;
326
+ return $arr['popupId'];
327
+ }
328
+
329
+ }
330
+
331
+ function sgSafeStr ($param) {
332
+ return ($param===null?'':$param);
333
+ }
classes/SGShortcodePopup.php CHANGED
@@ -1,55 +1,55 @@
1
- <?php
2
- require_once(dirname(__FILE__).'/SGPopup.php');
3
- class SGShortcodePopup extends SGPopup {
4
- private $shortcode;
5
-
6
- public function setShortcode($shortcode) {
7
- $this->shortcode = $shortcode;
8
- }
9
- public function getShortcode() {
10
- return $this->shortcode;
11
- }
12
- public static function create($data, $obj = null) {
13
- $obj = new self();
14
-
15
- $obj->setShortcode($data['shortcode']);
16
-
17
- parent::create($data, $obj);
18
- }
19
- public function save($data = array()) {
20
-
21
- $editMode = $this->getId()?true:false;
22
-
23
- $res = parent::save($data);
24
-
25
- if ($res===false) return false;
26
- global $wpdb;
27
- if ($editMode) {
28
-
29
- $sqlUp = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_shortCode_popup SET url=%s WHERE id=%d",$this->getShortcode(),$this->getId());
30
- $res = $wpdb->query($sqlUp);
31
- }
32
- else {
33
- $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_shortCode_popup (id, url) VALUES (%d,%s)",$this->getId(),$this->getShortcode());
34
- $res = $wpdb->query($sql);
35
- }
36
- return $res;
37
- }
38
- protected function setCustomOptions($id) {
39
- global $wpdb;
40
-
41
- $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_shortCode_popup WHERE id = %d",$id);
42
- $arr = $wpdb->get_row($st,ARRAY_A);
43
-
44
- $this->setShortcode($arr['url']);
45
- }
46
- protected function getExtraRenderOptions() {
47
- return array(
48
- 'shortcode'=>do_shortcode($this->getShortcode())
49
- );
50
- }
51
-
52
- public function render() {
53
- return parent::render();
54
- }
55
  }
1
+ <?php
2
+ require_once(dirname(__FILE__).'/SGPopup.php');
3
+ class SGShortcodePopup extends SGPopup {
4
+ private $shortcode;
5
+
6
+ public function setShortcode($shortcode) {
7
+ $this->shortcode = $shortcode;
8
+ }
9
+ public function getShortcode() {
10
+ return $this->shortcode;
11
+ }
12
+ public static function create($data, $obj = null) {
13
+ $obj = new self();
14
+
15
+ $obj->setShortcode($data['shortcode']);
16
+
17
+ parent::create($data, $obj);
18
+ }
19
+ public function save($data = array()) {
20
+
21
+ $editMode = $this->getId()?true:false;
22
+
23
+ $res = parent::save($data);
24
+
25
+ if ($res===false) return false;
26
+ global $wpdb;
27
+ if ($editMode) {
28
+
29
+ $sqlUp = $wpdb->prepare("UPDATE ". $wpdb->prefix ."sg_shortCode_popup SET url=%s WHERE id=%d",$this->getShortcode(),$this->getId());
30
+ $res = $wpdb->query($sqlUp);
31
+ }
32
+ else {
33
+ $sql = $wpdb->prepare( "INSERT INTO ". $wpdb->prefix ."sg_shortCode_popup (id, url) VALUES (%d,%s)",$this->getId(),$this->getShortcode());
34
+ $res = $wpdb->query($sql);
35
+ }
36
+ return $res;
37
+ }
38
+ protected function setCustomOptions($id) {
39
+ global $wpdb;
40
+
41
+ $st = $wpdb->prepare("SELECT * FROM ". $wpdb->prefix ."sg_shortCode_popup WHERE id = %d",$id);
42
+ $arr = $wpdb->get_row($st,ARRAY_A);
43
+
44
+ $this->setShortcode($arr['url']);
45
+ }
46
+ protected function getExtraRenderOptions() {
47
+ return array(
48
+ 'shortcode'=>do_shortcode($this->getShortcode())
49
+ );
50
+ }
51
+
52
+ public function render() {
53
+ return parent::render();
54
+ }
55
  }
classes/sgDataTable/ListTable.php CHANGED
@@ -1,1313 +1,1313 @@
1
- <?php
2
- /**
3
- * Base class for displaying a list of items in an ajaxified HTML table.
4
- *
5
- * @since 3.1.0
6
- * @access private
7
- *
8
- * @package WordPress
9
- * @subpackage List_Table
10
- */
11
- class SGPB_ListTable {
12
-
13
- /**
14
- * The current list of items
15
- *
16
- * @since 3.1.0
17
- * @var array
18
- * @access public
19
- */
20
- public $items;
21
-
22
- /**
23
- * Various information about the current table
24
- *
25
- * @since 3.1.0
26
- * @var array
27
- * @access protected
28
- */
29
- protected $_args;
30
-
31
- /**
32
- * Various information needed for displaying the pagination
33
- *
34
- * @since 3.1.0
35
- * @var array
36
- */
37
- protected $_pagination_args = array();
38
-
39
- /**
40
- * The current screen
41
- *
42
- * @since 3.1.0
43
- * @var object
44
- * @access protected
45
- */
46
- protected $screen;
47
-
48
- /**
49
- * Cached bulk actions
50
- *
51
- * @since 3.1.0
52
- * @var array
53
- * @access private
54
- */
55
- private $_actions;
56
-
57
- /**
58
- * Cached pagination output
59
- *
60
- * @since 3.1.0
61
- * @var string
62
- * @access private
63
- */
64
- private $_pagination;
65
-
66
- /**
67
- * The view switcher modes.
68
- *
69
- * @since 4.1.0
70
- * @var array
71
- * @access protected
72
- */
73
- protected $modes = array();
74
-
75
- /**
76
- * Stores the value returned by ->get_column_info()
77
- *
78
- * @var array
79
- */
80
- protected $_column_headers;
81
-
82
- protected $compat_fields = array( '_args', '_pagination_args', 'screen', '_actions', '_pagination' );
83
-
84
- protected $compat_methods = array( 'set_pagination_args', 'get_views', 'get_bulk_actions', 'bulk_actions',
85
- 'row_actions', 'months_dropdown', 'view_switcher', 'comments_bubble', 'get_items_per_page', 'pagination',
86
- 'get_sortable_columns', 'get_column_info', 'get_table_classes', 'display_tablenav', 'extra_tablenav',
87
- 'single_row_columns' );
88
-
89
- /**
90
- * Constructor.
91
- *
92
- * The child class should call this constructor from its own constructor to override
93
- * the default $args.
94
- *
95
- * @since 3.1.0
96
- * @access public
97
- *
98
- * @param array|string $args {
99
- * Array or string of arguments.
100
- *
101
- * @type string $plural Plural value used for labels and the objects being listed.
102
- * This affects things such as CSS class-names and nonces used
103
- * in the list table, e.g. 'posts'. Default empty.
104
- * @type string $singular Singular label for an object being listed, e.g. 'post'.
105
- * Default empty
106
- * @type bool $ajax Whether the list table supports AJAX. This includes loading
107
- * and sorting data, for example. If true, the class will call
108
- * the {@see _js_vars()} method in the footer to provide variables
109
- * to any scripts handling AJAX events. Default false.
110
- * @type string $screen String containing the hook name used to determine the current
111
- * screen. If left null, the current screen will be automatically set.
112
- * Default null.
113
- * }
114
- */
115
- public function __construct( $args = array() ) {
116
- $args = wp_parse_args( $args, array(
117
- 'plural' => '',
118
- 'singular' => '',
119
- 'ajax' => false,
120
- 'screen' => null,
121
- ) );
122
-
123
- $this->screen = convert_to_screen( $args['screen'] );
124
-
125
- add_filter( "manage_{$this->screen->id}_columns", array( $this, 'get_columns' ), 0 );
126
-
127
- if ( !$args['plural'] )
128
- $args['plural'] = $this->screen->base;
129
-
130
- $args['plural'] = sanitize_key( $args['plural'] );
131
- $args['singular'] = sanitize_key( $args['singular'] );
132
-
133
- $this->_args = $args;
134
-
135
- if ( $args['ajax'] ) {
136
- // wp_enqueue_script( 'list-table' );
137
- add_action( 'admin_footer', array( $this, '_js_vars' ) );
138
- }
139
-
140
- if ( empty( $this->modes ) ) {
141
- $this->modes = array(
142
- 'list' => __( 'List View' ),
143
- 'excerpt' => __( 'Excerpt View' )
144
- );
145
- }
146
- }
147
-
148
- /**
149
- * Make private properties readable for backwards compatibility.
150
- *
151
- * @since 4.0.0
152
- * @access public
153
- *
154
- * @param string $name Property to get.
155
- * @return mixed Property.
156
- */
157
- public function __get( $name ) {
158
- if ( in_array( $name, $this->compat_fields ) ) {
159
- return $this->$name;
160
- }
161
- }
162
-
163
- /**
164
- * Make private properties settable for backwards compatibility.
165
- *
166
- * @since 4.0.0
167
- * @access public
168
- *
169
- * @param string $name Property to check if set.
170
- * @param mixed $value Property value.
171
- * @return mixed Newly-set property.
172
- */
173
- public function __set( $name, $value ) {
174
- if ( in_array( $name, $this->compat_fields ) ) {
175
- return $this->$name = $value;
176
- }
177
- }
178
-
179
- /**
180
- * Make private properties checkable for backwards compatibility.
181
- *
182
- * @since 4.0.0
183
- * @access public
184
- *
185
- * @param string $name Property to check if set.
186
- * @return bool Whether the property is set.
187
- */
188
- public function __isset( $name ) {
189
- if ( in_array( $name, $this->compat_fields ) ) {
190
- return isset( $this->$name );
191
- }
192
- }
193
-
194
- /**
195
- * Make private properties un-settable for backwards compatibility.
196
- *
197
- * @since 4.0.0
198
- * @access public
199
- *
200
- * @param string $name Property to unset.
201
- */
202
- public function __unset( $name ) {
203
- if ( in_array( $name, $this->compat_fields ) ) {
204
- unset( $this->$name );
205
- }
206
- }
207
-
208
- /**
209
- * Make private/protected methods readable for backwards compatibility.
210
- *
211
- * @since 4.0.0
212
- * @access public
213
- *
214
- * @param callable $name Method to call.
215
- * @param array $arguments Arguments to pass when calling.
216
- * @return mixed|bool Return value of the callback, false otherwise.
217
- */
218
- public function __call( $name, $arguments ) {
219
- if ( in_array( $name, $this->compat_methods ) ) {
220
- return call_user_func_array( array( $this, $name ), $arguments );
221
- }
222
- return false;
223
- }
224
-
225
- /**
226
- * Checks the current user's permissions
227
- *
228
- * @since 3.1.0
229
- * @access public
230
- * @abstract
231
- */
232
- public function ajax_user_can() {
233
- die( 'function WPCListTable::ajax_user_can() must be over-ridden in a sub-class.' );
234
- }
235
-
236
- /**
237
- * Prepares the list of items for displaying.
238
- * @uses WPCListTable::set_pagination_args()
239
- *
240
- * @since 3.1.0
241
- * @access public
242
- * @abstract
243
- */
244
- public function prepare_items() {
245
- die( 'function WPCListTable::prepare_items() must be over-ridden in a sub-class.' );
246
- }
247
-
248
- /**
249
- * An internal method that sets all the necessary pagination arguments
250
- *
251
- * @param array $args An associative array with information about the pagination
252
- * @access protected
253
- *
254
- * @param array|string $args
255
- */
256
- protected function set_pagination_args( $args ) {
257
- $args = wp_parse_args( $args, array(
258
- 'total_items' => 0,
259
- 'total_pages' => 0,
260
- 'per_page' => 0,
261
- ) );
262
-
263
- if ( !$args['total_pages'] && $args['per_page'] > 0 )
264
- $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
265
-
266
- // Redirect if page number is invalid and headers are not already sent.
267
- if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
268
- wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
269
- exit;
270
- }
271
-
272
- $this->_pagination_args = $args;
273
- }
274
-
275
- /**
276
- * Access the pagination args.
277
- *
278
- * @since 3.1.0
279
- * @access public
280
- *
281
- * @param string $key Pagination argument to retrieve. Common values include 'total_items',
282
- * 'total_pages', 'per_page', or 'infinite_scroll'.
283
- * @return int Number of items that correspond to the given pagination argument.
284
- */
285
- public function get_pagination_arg( $key ) {
286
- if ( 'page' == $key )
287
- return $this->get_pagenum();
288
-
289
- if ( isset( $this->_pagination_args[$key] ) )
290
- return $this->_pagination_args[$key];
291
- }
292
-
293
- /**
294
- * Whether the table has items to display or not
295
- *
296
- * @since 3.1.0
297
- * @access public
298
- *
299
- * @return bool
300
- */
301
- public function has_items() {
302
- return !empty( $this->items );
303
- }
304
-
305
- /**
306
- * Message to be displayed when there are no items
307
- *
308
- * @since 3.1.0
309
- * @access public
310
- */
311
- public function no_items() {
312
- _e( 'No items found.' );
313
- }
314
-
315
- /**
316
- * Display the search box.
317
- *
318
- * @since 3.1.0
319
- * @access public
320
- *
321
- * @param string $text The search button text
322
- * @param string $input_id The search input id
323
- */
324
- public function search_box( $text, $input_id ) {
325
- if ( empty( $_REQUEST['s'] ) && !$this->has_items() )
326
- return;
327
- $input_id = $input_id . '-search-input';
328
-
329
- if ( ! empty( $_REQUEST['orderby'] ) )
330
- echo '<input type="hidden" name="orderby" value="' . esc_attr( $_REQUEST['orderby'] ) . '" />';
331
- if ( ! empty( $_REQUEST['order'] ) )
332
- echo '<input type="hidden" name="order" value="' . esc_attr( $_REQUEST['order'] ) . '" />';
333
- if ( ! empty( $_REQUEST['post_mime_type'] ) )
334
- echo '<input type="hidden" name="post_mime_type" value="' . esc_attr( $_REQUEST['post_mime_type'] ) . '" />';
335
- if ( ! empty( $_REQUEST['detached'] ) )
336
- echo '<input type="hidden" name="detached" value="' . esc_attr( $_REQUEST['detached'] ) . '" />';
337
- ?>
338
- <p class="search-box">
339
- <label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
340
- <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>" />
341
- <?php submit_button( $text, 'button', '', false, array('id' => 'search-submit') ); ?>
342
- </p>
343
- <?php
344
- }
345
-
346
- /**
347
- * Get an associative array ( id => link ) with the list
348
- * of views available on this table.
349
- *
350
- * @since 3.1.0
351
- * @access protected
352
- *
353
- * @return array
354
- */
355
- protected function get_views() {
356
- return array();
357
- }
358
-
359
- /**
360
- * Display the list of views available on this table.
361
- *
362
- * @since 3.1.0
363
- * @access public
364
- */
365
- public function views() {
366
- $views = $this->get_views();
367
- /**
368
- * Filter the list of available list table views.
369
- *
370
- * The dynamic portion of the hook name, `$this->screen->id`, refers
371
- * to the ID of the current screen, usually a string.
372
- *
373
- * @since 3.5.0
374
- *
375
- * @param array $views An array of available list table views.
376
- */
377
- $views = apply_filters( "views_{$this->screen->id}", $views );
378
-
379
- if ( empty( $views ) )
380
- return;
381
-
382
- echo "<ul class='subsubsub'>\n";
383
- foreach ( $views as $class => $view ) {
384
- $views[ $class ] = "\t<li class='$class'>$view";
385
- }
386
- echo implode( " |</li>\n", $views ) . "</li>\n";
387
- echo "</ul>";
388
- }
389
-
390
- /**
391
- * Get an associative array ( option_name => option_title ) with the list
392
- * of bulk actions available on this table.
393
- *
394
- * @since 3.1.0
395
- * @access protected
396
- *
397
- * @return array
398
- */
399
- protected function get_bulk_actions() {
400
- return array();
401
- }
402
-
403
- /**
404
- * Display the bulk actions dropdown.
405
- *
406
- * @since 3.1.0
407
- * @access protected
408
- *
409
- * @param string $which The location of the bulk actions: 'top' or 'bottom'.
410
- * This is designated as optional for backwards-compatibility.
411
- */
412
- protected function bulk_actions( $which = '' ) {
413
- if ( is_null( $this->_actions ) ) {
414
- $no_new_actions = $this->_actions = $this->get_bulk_actions();
415
- /**
416
- * Filter the list table Bulk Actions drop-down.
417
- *
418
- * The dynamic portion of the hook name, `$this->screen->id`, refers
419
- * to the ID of the current screen, usually a string.
420
- *
421
- * This filter can currently only be used to remove bulk actions.
422
- *
423
- * @since 3.5.0
424
- *
425
- * @param array $actions An array of the available bulk actions.
426
- */
427
- $this->_actions = apply_filters( "bulk_actions-{$this->screen->id}", $this->_actions );
428
- $this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions );
429
- $two = '';
430
- } else {
431
- $two = '2';
432
- }
433
-
434
- if ( empty( $this->_actions ) )
435
- return;
436
-
437
- echo "<label for='bulk-action-selector-" . esc_attr( $which ) . "' class='screen-reader-text'>" . __( 'Select bulk action' ) . "</label>";
438
- echo "<select name='action$two' id='bulk-action-selector-" . esc_attr( $which ) . "'>\n";
439
- echo "<option value='-1' selected='selected'>" . __( 'Bulk Actions' ) . "</option>\n";
440
-
441
- foreach ( $this->_actions as $name => $title ) {
442
- $class = 'edit' == $name ? ' class="hide-if-no-js"' : '';
443
-
444
- echo "\t<option value='$name'$class>$title</option>\n";
445
- }
446
-
447
- echo "</select>\n";
448
-
449
- submit_button( __( 'Apply' ), 'action', '', false, array( 'id' => "doaction$two" ) );
450
- echo "\n";
451
- }
452
-
453
- /**
454
- * Get the current action selected from the bulk actions dropdown.
455
- *
456
- * @since 3.1.0
457
- * @access public
458
- *
459
- * @return string|false The action name or False if no action was selected
460
- */
461
- public function current_action() {
462
- if ( isset( $_REQUEST['filter_action'] ) && ! empty( $_REQUEST['filter_action'] ) )
463
- return false;
464
-
465
- if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] )
466
- return $_REQUEST['action'];
467
-
468
- if ( isset( $_REQUEST['action2'] ) && -1 != $_REQUEST['action2'] )
469
- return $_REQUEST['action2'];
470
-
471
- return false;
472
- }
473
-
474
- /**
475
- * Generate row actions div
476
- *
477
- * @since 3.1.0
478
- * @access protected
479
- *
480
- * @param array $actions The list of actions
481
- * @param bool $always_visible Whether the actions should be always visible
482
- * @return string
483
- */
484
- protected function row_actions( $actions, $always_visible = false ) {
485
- $action_count = count( $actions );
486
- $i = 0;
487
-
488
- if ( !$action_count )
489
- return '';
490
-
491
- $out = '<div class="' . ( $always_visible ? 'row-actions visible' : 'row-actions' ) . '">';
492
- foreach ( $actions as $action => $link ) {
493
- ++$i;
494
- ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
495
- $out .= "<span class='$action'>$link$sep</span>";
496
- }
497
- $out .= '</div>';
498
-
499
- $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>';
500
-
501
- return $out;
502
- }
503
-
504
- /**
505
- * Display a monthly dropdown for filtering items
506
- *
507
- * @since 3.1.0
508
- * @access protected
509
- *
510
- * @global wpdb $wpdb
511
- * @global WP_Locale $wp_locale
512
- *
513
- * @param string $post_type
514
- */
515
- protected function months_dropdown( $post_type ) {
516
- global $wpdb, $wp_locale;
517
-
518
- /**
519
- * Filter whether to remove the 'Months' drop-down from the post list table.
520
- *
521
- * @since 4.2.0
522
- *
523
- * @param bool $disable Whether to disable the drop-down. Default false.
524
- * @param string $post_type The post type.
525
- */
526
- if ( apply_filters( 'disable_months_dropdown', false, $post_type ) ) {
527
- return;
528
- }
529
-
530
- $months = $wpdb->get_results( $wpdb->prepare( "
531
- SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
532
- FROM $wpdb->posts
533
- WHERE post_type = %s
534
- ORDER BY post_date DESC
535
- ", $post_type ) );
536
-
537
- /**
538
- * Filter the 'Months' drop-down results.
539
- *
540
- * @since 3.7.0
541
- *
542
- * @param object $months The months drop-down query results.
543
- * @param string $post_type The post type.
544
- */
545
- $months = apply_filters( 'months_dropdown_results', $months, $post_type );
546
-
547
- $month_count = count( $months );
548
-
549
- if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
550
- return;
551
-
552
- $m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0;
553
- ?>
554
- <label for="filter-by-date" class="screen-reader-text"><?php _e( 'Filter by date' ); ?></label>
555
- <select name="m" id="filter-by-date">
556
- <option<?php selected( $m, 0 ); ?> value="0"><?php _e( 'All dates' ); ?></option>
557
- <?php
558
- foreach ( $months as $arc_row ) {
559
- if ( 0 == $arc_row->year )
560
- continue;
561
-
562
- $month = zeroise( $arc_row->month, 2 );
563
- $year = $arc_row->year;
564
-
565
- printf( "<option %s value='%s'>%s</option>\n",
566
- selected( $m, $year . $month, false ),
567
- esc_attr( $arc_row->year . $month ),
568
- /* translators: 1: month name, 2: 4-digit year */
569
- sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month ), $year )
570
- );
571
- }
572
- ?>
573
- </select>
574
- <?php
575
- }
576
-
577
- /**
578
- * Display a view switcher
579
- *
580
- * @since 3.1.0
581
- * @access protected
582
- *
583
- * @param string $current_mode
584
- */
585
- protected function view_switcher( $current_mode ) {
586
- ?>
587
- <input type="hidden" name="mode" value="<?php echo esc_attr( $current_mode ); ?>" />
588
- <div class="view-switch">
589
- <?php
590
- foreach ( $this->modes as $mode => $title ) {
591
- $classes = array( 'view-' . $mode );
592
- if ( $current_mode == $mode )
593
- $classes[] = 'current';
594
- printf(
595
- "<a href='%s' class='%s' id='view-switch-$mode'><span class='screen-reader-text'>%s</span></a>\n",
596
- esc_url( add_query_arg( 'mode', $mode ) ),
597
- implode( ' ', $classes ),
598
- $title
599
- );
600
- }
601
- ?>
602
- </div>
603
- <?php
604
- }
605
-
606
- /**
607
- * Display a comment count bubble
608
- *
609
- * @since 3.1.0
610
- * @access protected
611
- *
612
- * @param int $post_id The post ID.
613
- * @param int $pending_comments Number of pending comments.
614
- */
615
- protected function comments_bubble( $post_id, $pending_comments ) {
616
- $approved_comments = get_comments_number();
617
-
618
- $approved_comments_number = number_format_i18n( $approved_comments );
619
- $pending_comments_number = number_format_i18n( $pending_comments );
620
-
621
- $approved_only_phrase = sprintf( _n( '%s comment', '%s comments', $approved_comments ), $approved_comments_number );
622
- $approved_phrase = sprintf( _n( '%s approved comment', '%s approved comments', $approved_comments ), $approved_comments_number );
623
- $pending_phrase = sprintf( _n( '%s pending comment', '%s pending comments', $pending_comments ), $pending_comments_number );
624
-
625
- // No comments at all.
626
- if ( ! $approved_comments && ! $pending_comments ) {
627
- printf( '<span aria-hidden="true">—</span><span class="screen-reader-text">%s</span>',
628
- __( 'No comments' )
629
- );
630
- // Approved comments have different display depending on some conditions.
631
- } elseif ( $approved_comments ) {
632
- printf( '<a href="%s" class="post-com-count post-com-count-approved"><span class="comment-count-approved" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
633
- esc_url( add_query_arg( array( 'p' => $post_id, 'comment_status' => 'approved' ), admin_url( 'edit-comments.php' ) ) ),
634
- $approved_comments_number,
635
- $pending_comments ? $approved_phrase : $approved_only_phrase
636
- );
637
- } else {
638
- printf( '<span class="post-com-count post-com-count-no-comments"><span class="comment-count comment-count-no-comments" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></span>',
639
- $approved_comments_number,
640
- $pending_comments ? __( 'No approved comments' ) : __( 'No comments' )
641
- );
642
- }
643
-
644
- if ( $pending_comments ) {
645
- printf( '<a href="%s" class="post-com-count post-com-count-pending"><span class="comment-count-pending" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
646
- esc_url( add_query_arg( array( 'p' => $post_id, 'comment_status' => 'moderated' ), admin_url( 'edit-comments.php' ) ) ),
647
- $pending_comments_number,
648
- $pending_phrase
649
- );
650
- }
651
- }
652
-
653
- /**
654
- * Get the current page number
655
- *
656
- * @since 3.1.0
657
- * @access public
658
- *
659
- * @return int
660
- */
661
- public function get_pagenum() {
662
- $pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0;
663
-
664
- if ( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] )
665
- $pagenum = $this->_pagination_args['total_pages'];
666
-
667
- return max( 1, $pagenum );
668
- }
669
-
670
- /**
671
- * Get number of items to display on a single page
672
- *
673
- * @since 3.1.0
674
- * @access protected
675
- *
676
- * @param string $option
677
- * @param int $default
678
- * @return int
679
- */
680
- protected function get_items_per_page( $option, $default = 20 ) {
681
- $per_page = (int) get_user_option( $option );
682
- if ( empty( $per_page ) || $per_page < 1 )
683
- $per_page = $default;
684
-
685
- /**
686
- * Filter the number of items to be displayed on each page of the list table.
687
- *
688
- * The dynamic hook name, $option, refers to the `per_page` option depending
689
- * on the type of list table in use. Possible values include: 'edit_comments_per_page',
690
- * 'sites_network_per_page', 'site_themes_network_per_page', 'themes_network_per_page',
691
- * 'users_network_per_page', 'edit_post_per_page', 'edit_page_per_page',
692
- * 'edit_{$post_type}_per_page', etc.
693
- *
694
- * @since 2.9.0
695
- *
696
- * @param int $per_page Number of items to be displayed. Default 20.
697
- */
698
- return (int) apply_filters( $option, $per_page );
699
- }
700
-
701
- /**
702
- * Display the pagination.
703
- *
704
- * @since 3.1.0
705
- * @access protected
706
- *
707
- * @param string $which
708
- */
709
- protected function pagination( $which ) {
710
- if ( empty( $this->_pagination_args ) ) {
711
- return;
712
- }
713
-
714
- $total_items = $this->_pagination_args['total_items'];
715
- $total_pages = $this->_pagination_args['total_pages'];
716
- $infinite_scroll = false;
717
- if ( isset( $this->_pagination_args['infinite_scroll'] ) ) {
718
- $infinite_scroll = $this->_pagination_args['infinite_scroll'];
719
- }
720
-
721
- $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
722
-
723
- $current = $this->get_pagenum();
724
-
725
- $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
726
-
727
- $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
728
-
729
- $page_links = array();
730
-
731
- $total_pages_before = '<span class="paging-input">';
732
- $total_pages_after = '</span>';
733
-
734
- $disable_first = $disable_last = $disable_prev = $disable_next = false;
735
-
736
- if ( $current == 1 ) {
737
- $disable_first = true;
738
- $disable_prev = true;
739
- }
740
- if ( $current == 2 ) {
741
- $disable_first = true;
742
- }
743
- if ( $current == $total_pages ) {
744
- $disable_last = true;
745
- $disable_next = true;
746
- }
747
- if ( $current == $total_pages - 1 ) {
748
- $disable_last = true;
749
- }
750
-
751
- if ( $disable_first ) {
752
- $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&laquo;</span>';
753
- } else {
754
- $page_links[] = sprintf( "<a class='first-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
755
- esc_url( remove_query_arg( 'paged', $current_url ) ),
756
- __( 'First page' ),
757
- '&laquo;'
758
- );
759
- }
760
-
761
- if ( $disable_prev ) {
762
- $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&lsaquo;</span>';
763
- } else {
764
- $page_links[] = sprintf( "<a class='prev-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
765
- esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
766
- __( 'Previous page' ),
767
- '&lsaquo;'
768
- );
769
- }
770
-
771
- if ( 'bottom' == $which ) {
772
- $html_current_page = $current;
773
- $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input">';
774
- } else {
775
- $html_current_page = sprintf( "%s<input class='current-page' id='current-page-selector' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' />",
776
- '<label for="current-page-selector" class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
777
- $current,
778
- strlen( $total_pages )
779
- );
780
- }
781
- $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
782
- $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
783
-
784
- if ( $disable_next ) {
785
- $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&rsaquo;</span>';
786
- } else {
787
- $page_links[] = sprintf( "<a class='next-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
788
- esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
789
- __( 'Next page' ),
790
- '&rsaquo;'
791
- );
792
- }
793
-
794
- if ( $disable_last ) {
795
- $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&raquo;</span>';
796
- } else {
797
- $page_links[] = sprintf( "<a class='last-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
798
- esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
799
- __( 'Last page' ),
800
- '&raquo;'
801
- );
802
- }
803
-
804
- $pagination_links_class = 'pagination-links';
805
- if ( ! empty( $infinite_scroll ) ) {
806
- $pagination_links_class = ' hide-if-js';
807
- }
808
- $output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
809
-
810
- if ( $total_pages ) {
811
- $page_class = $total_pages < 2 ? ' one-page' : '';
812
- } else {
813
- $page_class = ' no-pages';
814
- }
815
- $this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
816
-
817
- echo $this->_pagination;
818
- }
819
-
820
- /**
821
- * Get a list of columns. The format is:
822
- * 'internal-name' => 'Title'
823
- *
824
- * @since 3.1.0
825
- * @access public
826
- * @abstract
827
- *
828
- * @return array
829
- */
830
- public function get_columns() {
831
- die( 'function WPCListTable::get_columns() must be over-ridden in a sub-class.' );
832
- }
833
-
834
- /**
835
- * Get a list of sortable columns. The format is:
836
- * 'internal-name' => 'orderby'
837
- * or
838
- * 'internal-name' => array( 'orderby', true )
839
- *
840
- * The second format will make the initial sorting order be descending
841
- *
842
- * @since 3.1.0
843
- * @access protected
844
- *
845
- * @return array
846
- */
847
- protected function get_sortable_columns() {
848
- return array();
849
- }
850
-
851
- /**
852
- * Gets the name of the default primary column.
853
- *
854
- * @since 4.3.0
855
- * @access protected
856
- *
857
- * @return string Name of the default primary column, in this case, an empty string.
858
- */
859
- protected function get_default_primary_column_name() {
860
- $columns = $this->get_columns();
861
- $column = '';
862
-
863
- // We need a primary defined so responsive views show something,
864
- // so let's fall back to the first non-checkbox column.
865
- foreach( $columns as $col => $column_name ) {
866
- if ( 'cb' === $col ) {
867
- continue;
868
- }
869
-
870
- $column = $col;
871
- break;
872
- }
873
-
874
- return $column;
875
- }
876
-
877
- /**
878
- * Gets the name of the primary column.
879
- *
880
- * @since 4.3.0
881
- * @access protected
882
- *
883
- * @return string The name of the primary column.
884
- */
885
- protected function get_primary_column_name() {
886
- $columns = $this->get_columns();
887
- $default = $this->get_default_primary_column_name();
888
-
889
- // If the primary column doesn't exist fall back to the
890
- // first non-checkbox column.
891
- if ( ! isset( $columns[ $default ] ) ) {
892
- $default = WPCListTable::get_default_primary_column_name();
893
- }
894
-
895
- /**
896
- * Filter the name of the primary column for the current list table.
897
- *
898
- * @since 4.3.0
899
- *
900
- * @param string $default Column name default for the specific list table, e.g. 'name'.
901
- * @param string $context Screen ID for specific list table, e.g. 'plugins'.
902
- */
903
- $column = apply_filters( 'list_table_primary_column', $default, $this->screen->id );
904
-
905
- if ( empty( $column ) || ! isset( $columns[ $column ] ) ) {
906
- $column = $default;
907
- }
908
-
909
- return $column;
910
- }
911
-
912
- /**
913
- * Get a list of all, hidden and sortable columns, with filter applied
914
- *
915
- * @since 3.1.0
916
- * @access protected
917
- *
918
- * @return array
919
- */
920
- protected function get_column_info() {
921
- // $_column_headers is already set / cached
922
- if ( isset( $this->_column_headers ) && is_array( $this->_column_headers ) ) {
923
- // Back-compat for list tables that have been manually setting $_column_headers for horse reasons.
924
- // In 4.3, we added a fourth argument for primary column.
925
- $column_headers = array( array(), array(), array(), $this->get_primary_column_name() );
926
- foreach ( $this->_column_headers as $key => $value ) {
927
- $column_headers[ $key ] = $value;
928
- }
929
-
930
- return $column_headers;
931
- }
932
-
933
- $columns = get_column_headers( $this->screen );
934
- $hidden = get_hidden_columns( $this->screen );
935
-
936
- $sortable_columns = $this->get_sortable_columns();
937
- /**
938
- * Filter the list table sortable columns for a specific screen.
939
- *
940
- * The dynamic portion of the hook name, `$this->screen->id`, refers
941
- * to the ID of the current screen, usually a string.
942
- *
943
- * @since 3.5.0
944
- *
945
- * @param array $sortable_columns An array of sortable columns.
946
- */
947
- $_sortable = apply_filters( "manage_{$this->screen->id}_sortable_columns", $sortable_columns );
948
-
949
- $sortable = array();
950
- foreach ( $_sortable as $id => $data ) {
951
- if ( empty( $data ) )
952
- continue;
953
-
954
- $data = (array) $data;
955
- if ( !isset( $data[1] ) )
956
- $data[1] = false;
957
-
958
- $sortable[$id] = $data;
959
- }
960
-
961
- $primary = $this->get_primary_column_name();
962
- $this->_column_headers = array( $columns, $hidden, $sortable, $primary );
963
-
964
- return $this->_column_headers;
965
- }
966
-
967
- /**
968
- * Return number of visible columns
969
- *
970
- * @since 3.1.0
971
- * @access public
972
- *
973
- * @return int
974
- */
975
- public function get_column_count() {
976
- list ( $columns, $hidden ) = $this->get_column_info();
977
- $hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
978
- return count( $columns ) - count( $hidden );
979
- }
980
-
981
- /**
982
- * Print column headers, accounting for hidden and sortable columns.
983
- *
984
- * @since 3.1.0
985
- * @access public
986
- *
987
- * @staticvar int $cb_counter
988
- *
989
- * @param bool $with_id Whether to set the id attribute or not
990
- */
991
- public function print_column_headers( $with_id = true ) {
992
- list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
993
-
994
- $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
995
- $current_url = remove_query_arg( 'paged', $current_url );
996
-
997
- if ( isset( $_GET['orderby'] ) )
998
- $current_orderby = $_GET['orderby'];
999
- else
1000
- $current_orderby = '';
1001
-
1002
- if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
1003
- $current_order = 'desc';
1004
- else
1005
- $current_order = 'asc';
1006
-
1007
- if ( ! empty( $columns['cb'] ) ) {
1008
- static $cb_counter = 1;
1009
- $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __( 'Select All' ) . '</label>'
1010
- . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox" />';
1011
- $cb_counter++;
1012
- }
1013
-
1014
- foreach ( $columns as $column_key => $column_display_name ) {
1015
- $class = array( 'manage-column', "column-$column_key" );
1016
-
1017
- if ( in_array( $column_key, $hidden ) ) {
1018
- $class[] = 'hidden';
1019
- }
1020
-
1021
- if ( 'cb' == $column_key )
1022
- $class[] = 'check-column';
1023
- elseif ( in_array( $column_key, array( 'posts', 'comments', 'links' ) ) )
1024
- $class[] = 'num';
1025
-
1026
- if ( $column_key === $primary ) {
1027
- $class[] = 'column-primary';
1028
- }
1029
-
1030
- if ( isset( $sortable[$column_key] ) ) {
1031
- list( $orderby, $desc_first ) = $sortable[$column_key];
1032
-
1033
- if ( $current_orderby == $orderby ) {
1034
- $order = 'asc' == $current_order ? 'desc' : 'asc';
1035
- $class[] = 'sorted';
1036
- $class[] = $current_order;
1037
- } else {
1038
- $order = $desc_first ? 'desc' : 'asc';
1039
- $class[] = 'sortable';
1040
- $class[] = $desc_first ? 'asc' : 'desc';
1041
- }
1042
-
1043
- $column_display_name = '<a href="' . esc_url( add_query_arg( compact( 'orderby', 'order' ), $current_url ) ) . '"><span>' . $column_display_name . '</span><span class="sorting-indicator"></span></a>';
1044
- }
1045
-
1046
- $tag = ( 'cb' === $column_key ) ? 'td' : 'th';
1047
- $scope = ( 'th' === $tag ) ? 'scope="col"' : '';
1048
- $id = $with_id ? "id='$column_key'" : '';
1049
-
1050
- if ( !empty( $class ) )
1051
- $class = "class='" . join( ' ', $class ) . "'";
1052
-
1053
- echo "<$tag $scope $id $class>$column_display_name</$tag>";
1054
- }
1055
- }
1056
-
1057
- /**
1058
- * Display the table
1059
- *
1060
- * @since 3.1.0
1061
- * @access public
1062
- */
1063
- public function display() {
1064
- $singular = $this->_args['singular'];
1065
-
1066
- $this->display_tablenav( 'top' );
1067
- ?>
1068
- <table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
1069
- <thead>
1070
- <tr>
1071
- <?php $this->print_column_headers(); ?>
1072
- </tr>
1073
- </thead>
1074
-
1075
- <tbody id="the-list"<?php
1076
- if ( $singular ) {
1077
- echo " data-wp-lists='list:$singular'";
1078
- } ?>>
1079
- <?php $this->display_rows_or_placeholder(); ?>
1080
- </tbody>
1081
-
1082
- <tfoot>
1083
- <tr>
1084
- <?php $this->print_column_headers( false ); ?>
1085
- </tr>
1086
- </tfoot>
1087
-
1088
- </table>
1089
- <?php
1090
- $this->display_tablenav( 'bottom' );
1091
- }
1092
-
1093
- /**
1094
- * Get a list of CSS classes for the list table table tag.
1095
- *
1096
- * @since 3.1.0
1097
- * @access protected
1098
- *
1099
- * @return array List of CSS classes for the table tag.
1100
- */
1101
- protected function get_table_classes() {
1102
- return array( 'widefat', 'fixed', 'striped', $this->_args['plural'] );
1103
- }
1104
-
1105
- /**
1106
- * Generate the table navigation above or below the table
1107
- *
1108
- * @since 3.1.0
1109
- * @access protected
1110
- * @param string $which
1111
- */
1112
- protected function display_tablenav( $which ) {
1113
- if ( 'top' == $which )
1114
- wp_nonce_field( 'bulk-' . $this->_args['plural'] );
1115
- ?>
1116
- <div class="tablenav <?php echo esc_attr( $which ); ?>">
1117
-
1118
- <div class="alignleft actions bulkactions">
1119
- <?php $this->bulk_actions( $which ); ?>
1120
- </div>
1121
- <?php
1122
- $this->extra_tablenav( $which );
1123
- $this->pagination( $which );
1124
- ?>
1125
-
1126
- <br class="clear" />
1127
- </div>
1128
- <?php
1129
- }
1130
-
1131
- /**
1132
- * Extra controls to be displayed between bulk actions and pagination
1133
- *
1134
- * @since 3.1.0
1135
- * @access protected
1136
- *
1137
- * @param string $which
1138
- */
1139
- protected function extra_tablenav( $which ) {}
1140
-
1141
- /**
1142
- * Generate the tbody element for the list table.
1143
- *
1144
- * @since 3.1.0
1145
- * @access public
1146
- */
1147
- public function display_rows_or_placeholder() {
1148
- if ( $this->has_items() ) {
1149
- $this->display_rows();
1150
- } else {
1151
- echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
1152
- $this->no_items();
1153
- echo '</td></tr>';
1154
- }
1155
- }
1156
-
1157
- /**
1158
- * Generate the table rows
1159
- *
1160
- * @since 3.1.0
1161
- * @access public
1162
- */
1163
- public function display_rows() {
1164
- foreach ( $this->items as $item )
1165
- $this->single_row( $item );
1166
- }
1167
-
1168
- /**
1169
- * Generates content for a single row of the table
1170
- *
1171
- * @since 3.1.0
1172
- * @access public
1173
- *
1174
- * @param object $item The current item
1175
- */
1176
- public function single_row( $item ) {
1177
- echo '<tr>';
1178
- $this->single_row_columns( $item );
1179
- echo '</tr>';
1180
- }
1181
-
1182
- /**
1183
- *
1184
- * @param object $item
1185
- * @param string $column_name
1186
- */
1187
- protected function column_default( $item, $column_name ) {}
1188
-
1189
- /**
1190
- *
1191
- * @param object $item
1192
- */
1193
- protected function column_cb( $item ) {}
1194
-
1195
- /**
1196
- * Generates the columns for a single row of the table
1197
- *
1198
- * @since 3.1.0
1199
- * @access protected
1200
- *
1201
- * @param object $item The current item
1202
- */
1203
- protected function single_row_columns( $item ) {
1204
- list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
1205
-
1206
- foreach ( $columns as $column_name => $column_display_name ) {
1207
- $classes = "$column_name column-$column_name";
1208
- if ( $primary === $column_name ) {
1209
- $classes .= ' has-row-actions column-primary';
1210
- }
1211
-
1212
- if ( in_array( $column_name, $hidden ) ) {
1213
- $classes .= ' hidden';
1214
- }
1215
-
1216
- // Comments column uses HTML in the display name with screen reader text.
1217
- // Instead of using esc_attr(), we strip tags to get closer to a user-friendly string.
1218
- $data = 'data-colname="' . wp_strip_all_tags( $column_display_name ) . '"';
1219
-
1220
- $attributes = "class='$classes' $data";
1221
-
1222
- if ( 'cb' == $column_name ) {
1223
- echo '<th scope="row" class="check-column">';
1224
- echo $this->column_cb( $item );
1225
- echo '</th>';
1226
- } elseif ( method_exists( $this, '_column_' . $column_name ) ) {
1227
- echo call_user_func(
1228
- array( $this, '_column_' . $column_name ),
1229
- $item,
1230
- $classes,
1231
- $data,
1232
- $primary
1233
- );
1234
- } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
1235
- echo "<td $attributes>";
1236
- echo call_user_func( array( $this, 'column_' . $column_name ), $item );
1237
- echo $this->handle_row_actions( $item, $column_name, $primary );
1238
- echo "</td>";
1239
- } else {
1240
- echo "<td $attributes>";
1241
- echo $this->column_default( $item, $column_name );
1242
- echo $this->handle_row_actions( $item, $column_name, $primary );
1243
- echo "</td>";
1244
- }
1245
- }
1246
- }
1247
-
1248
- /**
1249
- * Generates and display row actions links for the list table.
1250
- *
1251
- * @since 4.3.0
1252
- * @access protected
1253
- *
1254
- * @param object $item The item being acted upon.
1255
- * @param string $column_name Current column name.
1256
- * @param string $primary Primary column name.
1257
- * @return string The row actions output. In this case, an empty string.
1258
- */
1259
- protected function handle_row_actions( $item, $column_name, $primary ) {
1260
- return $column_name == $primary ? '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>' : '';
1261
- }
1262
-
1263
- /**
1264
- * Handle an incoming ajax request (called from admin-ajax.php)
1265
- *
1266
- * @since 3.1.0
1267
- * @access public
1268
- */
1269
- public function ajax_response() {
1270
- $this->prepare_items();
1271
-
1272
- ob_start();
1273
- if ( ! empty( $_REQUEST['no_placeholder'] ) ) {
1274
- $this->display_rows();
1275
- } else {
1276
- $this->display_rows_or_placeholder();
1277
- }
1278
-
1279
- $rows = ob_get_clean();
1280
-
1281
- $response = array( 'rows' => $rows );
1282
-
1283
- if ( isset( $this->_pagination_args['total_items'] ) ) {
1284
- $response['total_items_i18n'] = sprintf(
1285
- _n( '%s item', '%s items', $this->_pagination_args['total_items'] ),
1286
- number_format_i18n( $this->_pagination_args['total_items'] )
1287
- );
1288
- }
1289
- if ( isset( $this->_pagination_args['total_pages'] ) ) {
1290
- $response['total_pages'] = $this->_pagination_args['total_pages'];
1291
- $response['total_pages_i18n'] = number_format_i18n( $this->_pagination_args['total_pages'] );
1292
- }
1293
-
1294
- die( wp_json_encode( $response ) );
1295
- }
1296
-
1297
- /**
1298
- * Send required variables to JavaScript land
1299
- *
1300
- * @access public
1301
- */
1302
- public function _js_vars() {
1303
- $args = array(
1304
- 'class' => get_class( $this ),
1305
- 'screen' => array(
1306
- 'id' => $this->screen->id,
1307
- 'base' => $this->screen->base,
1308
- )
1309
- );
1310
-
1311
- printf( "<script type='text/javascript'>list_args = %s;</script>\n", wp_json_encode( $args ) );
1312
- }
1313
- }
1
+ <?php
2
+ /**
3
+ * Base class for displaying a list of items in an ajaxified HTML table.
4
+ *
5
+ * @since 3.1.0
6
+ * @access private
7
+ *
8
+ * @package WordPress
9
+ * @subpackage List_Table
10
+ */
11
+ class SGPB_ListTable {
12
+
13
+ /**
14
+ * The current list of items
15
+ *
16
+ * @since 3.1.0
17
+ * @var array
18
+ * @access public
19
+ */
20
+ public $items;
21
+
22
+ /**
23
+ * Various information about the current table
24
+ *
25
+ * @since 3.1.0
26
+ * @var array
27
+ * @access protected
28
+ */
29
+ protected $_args;
30
+
31
+ /**
32
+ * Various information needed for displaying the pagination
33
+ *
34
+ * @since 3.1.0
35
+ * @var array
36
+ */
37
+ protected $_pagination_args = array();
38
+
39
+ /**
40
+ * The current screen
41
+ *
42
+ * @since 3.1.0
43
+ * @var object
44
+ * @access protected
45
+ */
46
+ protected $screen;
47
+
48
+ /**
49
+ * Cached bulk actions
50
+ *
51
+ * @since 3.1.0
52
+ * @var array
53
+ * @access private
54
+ */
55
+ private $_actions;
56
+
57
+ /**
58
+ * Cached pagination output
59
+ *
60
+ * @since 3.1.0
61
+ * @var string
62
+ * @access private
63
+ */
64
+ private $_pagination;
65
+
66
+ /**
67
+ * The view switcher modes.
68
+ *
69
+ * @since 4.1.0
70
+ * @var array
71
+ * @access protected
72
+ */
73
+ protected $modes = array();
74
+
75
+ /**
76
+ * Stores the value returned by ->get_column_info()
77
+ *
78
+ * @var array
79
+ */
80
+ protected $_column_headers;
81
+
82
+ protected $compat_fields = array( '_args', '_pagination_args', 'screen', '_actions', '_pagination' );
83
+
84
+ protected $compat_methods = array( 'set_pagination_args', 'get_views', 'get_bulk_actions', 'bulk_actions',
85
+ 'row_actions', 'months_dropdown', 'view_switcher', 'comments_bubble', 'get_items_per_page', 'pagination',
86
+ 'get_sortable_columns', 'get_column_info', 'get_table_classes', 'display_tablenav', 'extra_tablenav',
87
+ 'single_row_columns' );
88
+
89
+ /**
90
+ * Constructor.
91
+ *
92
+ * The child class should call this constructor from its own constructor to override
93
+ * the default $args.
94
+ *
95
+ * @since 3.1.0
96
+ * @access public
97
+ *
98
+ * @param array|string $args {
99
+ * Array or string of arguments.
100
+ *
101
+ * @type string $plural Plural value used for labels and the objects being listed.
102
+ * This affects things such as CSS class-names and nonces used
103
+ * in the list table, e.g. 'posts'. Default empty.
104
+ * @type string $singular Singular label for an object being listed, e.g. 'post'.
105
+ * Default empty
106
+ * @type bool $ajax Whether the list table supports AJAX. This includes loading
107
+ * and sorting data, for example. If true, the class will call
108
+ * the {@see _js_vars()} method in the footer to provide variables
109
+ * to any scripts handling AJAX events. Default false.
110
+ * @type string $screen String containing the hook name used to determine the current
111
+ * screen. If left null, the current screen will be automatically set.
112
+ * Default null.
113
+ * }
114
+ */
115
+ public function __construct( $args = array() ) {
116
+ $args = wp_parse_args( $args, array(
117
+ 'plural' => '',
118
+ 'singular' => '',
119
+ 'ajax' => false,
120
+ 'screen' => null,
121
+ ) );
122
+
123
+ $this->screen = convert_to_screen( $args['screen'] );
124
+
125
+ add_filter( "manage_{$this->screen->id}_columns", array( $this, 'get_columns' ), 0 );
126
+
127
+ if ( !$args['plural'] )
128
+ $args['plural'] = $this->screen->base;
129
+
130
+ $args['plural'] = sanitize_key( $args['plural'] );
131
+ $args['singular'] = sanitize_key( $args['singular'] );
132
+
133
+ $this->_args = $args;
134
+
135
+ if ( $args['ajax'] ) {
136
+ // wp_enqueue_script( 'list-table' );
137
+ add_action( 'admin_footer', array( $this, '_js_vars' ) );
138
+ }
139
+
140
+ if ( empty( $this->modes ) ) {
141
+ $this->modes = array(
142
+ 'list' => __( 'List View' ),
143
+ 'excerpt' => __( 'Excerpt View' )
144
+ );
145
+ }
146
+ }
147
+
148
+ /**
149
+ * Make private properties readable for backwards compatibility.
150
+ *
151
+ * @since 4.0.0
152
+ * @access public
153
+ *
154
+ * @param string $name Property to get.
155
+ * @return mixed Property.
156
+ */
157
+ public function __get( $name ) {
158
+ if ( in_array( $name, $this->compat_fields ) ) {
159
+ return $this->$name;
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Make private properties settable for backwards compatibility.
165
+ *
166
+ * @since 4.0.0
167
+ * @access public
168
+ *
169
+ * @param string $name Property to check if set.
170
+ * @param mixed $value Property value.
171
+ * @return mixed Newly-set property.
172
+ */
173
+ public function __set( $name, $value ) {
174
+ if ( in_array( $name, $this->compat_fields ) ) {
175
+ return $this->$name = $value;
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Make private properties checkable for backwards compatibility.
181
+ *
182
+ * @since 4.0.0
183
+ * @access public
184
+ *
185
+ * @param string $name Property to check if set.
186
+ * @return bool Whether the property is set.
187
+ */
188
+ public function __isset( $name ) {
189
+ if ( in_array( $name, $this->compat_fields ) ) {
190
+ return isset( $this->$name );
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Make private properties un-settable for backwards compatibility.
196
+ *
197
+ * @since 4.0.0
198
+ * @access public
199
+ *
200
+ * @param string $name Property to unset.
201
+ */
202
+ public function __unset( $name ) {
203
+ if ( in_array( $name, $this->compat_fields ) ) {
204
+ unset( $this->$name );
205
+ }
206
+ }
207
+
208
+ /**
209
+ * Make private/protected methods readable for backwards compatibility.
210
+ *
211
+ * @since 4.0.0
212
+ * @access public
213
+ *
214
+ * @param callable $name Method to call.
215
+ * @param array $arguments Arguments to pass when calling.
216
+ * @return mixed|bool Return value of the callback, false otherwise.
217
+ */
218
+ public function __call( $name, $arguments ) {
219
+ if ( in_array( $name, $this->compat_methods ) ) {
220
+ return call_user_func_array( array( $this, $name ), $arguments );
221
+ }
222
+ return false;
223
+ }
224
+
225
+ /**
226
+ * Checks the current user's permissions
227
+ *
228
+ * @since 3.1.0
229
+ * @access public
230
+ * @abstract
231
+ */
232
+ public function ajax_user_can() {
233
+ die( 'function WPCListTable::ajax_user_can() must be over-ridden in a sub-class.' );
234
+ }
235
+
236
+ /**
237
+ * Prepares the list of items for displaying.
238
+ * @uses WPCListTable::set_pagination_args()
239
+ *
240
+ * @since 3.1.0
241
+ * @access public
242
+ * @abstract
243
+ */
244
+ public function prepare_items() {
245
+ die( 'function WPCListTable::prepare_items() must be over-ridden in a sub-class.' );
246
+ }
247
+
248
+ /**
249
+ * An internal method that sets all the necessary pagination arguments
250
+ *
251
+ * @param array $args An associative array with information about the pagination
252
+ * @access protected
253
+ *
254
+ * @param array|string $args
255
+ */
256
+ protected function set_pagination_args( $args ) {
257
+ $args = wp_parse_args( $args, array(
258
+ 'total_items' => 0,
259
+ 'total_pages' => 0,
260
+ 'per_page' => 0,
261
+ ) );
262
+
263
+ if ( !$args['total_pages'] && $args['per_page'] > 0 )
264
+ $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
265
+
266
+ // Redirect if page number is invalid and headers are not already sent.
267
+ if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
268
+ wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
269
+ exit;
270
+ }
271
+
272
+ $this->_pagination_args = $args;
273
+ }
274
+
275
+ /**
276
+ * Access the pagination args.
277
+ *
278
+ * @since 3.1.0
279
+ * @access public
280
+ *
281
+ * @param string $key Pagination argument to retrieve. Common values include 'total_items',
282
+ * 'total_pages', 'per_page', or 'infinite_scroll'.
283
+ * @return int Number of items that correspond to the given pagination argument.
284
+ */
285
+ public function get_pagination_arg( $key ) {
286
+ if ( 'page' == $key )
287
+ return $this->get_pagenum();
288
+
289
+ if ( isset( $this->_pagination_args[$key] ) )
290
+ return $this->_pagination_args[$key];
291
+ }
292
+
293
+ /**
294
+ * Whether the table has items to display or not
295
+ *
296
+ * @since 3.1.0
297
+ * @access public
298
+ *
299
+ * @return bool
300
+ */
301
+ public function has_items() {
302
+ return !empty( $this->items );
303
+ }
304
+
305
+ /**
306
+ * Message to be displayed when there are no items
307
+ *
308
+ * @since 3.1.0
309
+ * @access public
310
+ */
311
+ public function no_items() {
312
+ _e( 'No items found.' );
313
+ }
314
+
315
+ /**
316
+ * Display the search box.
317
+ *
318
+ * @since 3.1.0
319
+ * @access public
320
+ *
321
+ * @param string $text The search button text
322
+ * @param string $input_id The search input id
323
+ */
324
+ public function search_box( $text, $input_id ) {
325
+ if ( empty( $_REQUEST['s'] ) && !$this->has_items() )
326
+ return;
327
+ $input_id = $input_id . '-search-input';
328
+
329
+ if ( ! empty( $_REQUEST['orderby'] ) )
330
+ echo '<input type="hidden" name="orderby" value="' . esc_attr( $_REQUEST['orderby'] ) . '" />';
331
+ if ( ! empty( $_REQUEST['order'] ) )
332
+ echo '<input type="hidden" name="order" value="' . esc_attr( $_REQUEST['order'] ) . '" />';
333
+ if ( ! empty( $_REQUEST['post_mime_type'] ) )
334
+ echo '<input type="hidden" name="post_mime_type" value="' . esc_attr( $_REQUEST['post_mime_type'] ) . '" />';
335
+ if ( ! empty( $_REQUEST['detached'] ) )
336
+ echo '<input type="hidden" name="detached" value="' . esc_attr( $_REQUEST['detached'] ) . '" />';
337
+ ?>
338
+ <p class="search-box">
339
+ <label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
340
+ <input type="search" id="<?php echo $input_id ?>" name="s" value="<?php _admin_search_query(); ?>" />
341
+ <?php submit_button( $text, 'button', '', false, array('id' => 'search-submit') ); ?>
342
+ </p>
343
+ <?php
344
+ }
345
+
346
+ /**
347
+ * Get an associative array ( id => link ) with the list
348
+ * of views available on this table.
349
+ *
350
+ * @since 3.1.0
351
+ * @access protected
352
+ *
353
+ * @return array
354
+ */
355
+ protected function get_views() {
356
+ return array();
357
+ }
358
+
359
+ /**
360
+ * Display the list of views available on this table.
361
+ *
362
+ * @since 3.1.0
363
+ * @access public
364
+ */
365
+ public function views() {
366
+ $views = $this->get_views();
367
+ /**
368
+ * Filter the list of available list table views.
369
+ *
370
+ * The dynamic portion of the hook name, `$this->screen->id`, refers
371
+ * to the ID of the current screen, usually a string.
372
+ *
373
+ * @since 3.5.0
374
+ *
375
+ * @param array $views An array of available list table views.
376
+ */
377
+ $views = apply_filters( "views_{$this->screen->id}", $views );
378
+
379
+ if ( empty( $views ) )
380
+ return;
381
+
382
+ echo "<ul class='subsubsub'>\n";
383
+ foreach ( $views as $class => $view ) {
384
+ $views[ $class ] = "\t<li class='$class'>$view";
385
+ }
386
+ echo implode( " |</li>\n", $views ) . "</li>\n";
387
+ echo "</ul>";
388
+ }
389
+
390
+ /**
391
+ * Get an associative array ( option_name => option_title ) with the list
392
+ * of bulk actions available on this table.
393
+ *
394
+ * @since 3.1.0
395
+ * @access protected
396
+ *
397
+ * @return array
398
+ */
399
+ protected function get_bulk_actions() {
400
+ return array();
401
+ }
402
+
403
+ /**
404
+ * Display the bulk actions dropdown.
405
+ *
406
+ * @since 3.1.0
407
+ * @access protected
408
+ *
409
+ * @param string $which The location of the bulk actions: 'top' or 'bottom'.
410
+ * This is designated as optional for backwards-compatibility.
411
+ */
412
+ protected function bulk_actions( $which = '' ) {
413
+ if ( is_null( $this->_actions ) ) {
414
+ $no_new_actions = $this->_actions = $this->get_bulk_actions();
415
+ /**
416
+ * Filter the list table Bulk Actions drop-down.
417
+ *
418
+ * The dynamic portion of the hook name, `$this->screen->id`, refers
419
+ * to the ID of the current screen, usually a string.
420
+ *
421
+ * This filter can currently only be used to remove bulk actions.
422
+ *
423
+ * @since 3.5.0
424
+ *
425
+ * @param array $actions An array of the available bulk actions.
426
+ */
427
+ $this->_actions = apply_filters( "bulk_actions-{$this->screen->id}", $this->_actions );
428
+ $this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions );
429
+ $two = '';
430
+ } else {
431
+ $two = '2';
432
+ }
433
+
434
+ if ( empty( $this->_actions ) )
435
+ return;
436
+
437
+ echo "<label for='bulk-action-selector-" . esc_attr( $which ) . "' class='screen-reader-text'>" . __( 'Select bulk action' ) . "</label>";
438
+ echo "<select name='action$two' id='bulk-action-selector-" . esc_attr( $which ) . "'>\n";
439
+ echo "<option value='-1' selected='selected'>" . __( 'Bulk Actions' ) . "</option>\n";
440
+
441
+ foreach ( $this->_actions as $name => $title ) {
442
+ $class = 'edit' == $name ? ' class="hide-if-no-js"' : '';
443
+
444
+ echo "\t<option value='$name'$class>$title</option>\n";
445
+ }
446
+
447
+ echo "</select>\n";
448
+
449
+ submit_button( __( 'Apply' ), 'action', '', false, array( 'id' => "doaction$two" ) );
450
+ echo "\n";
451
+ }
452
+
453
+ /**
454
+ * Get the current action selected from the bulk actions dropdown.
455
+ *
456
+ * @since 3.1.0
457
+ * @access public
458
+ *
459
+ * @return string|false The action name or False if no action was selected
460
+ */
461
+ public function current_action() {
462
+ if ( isset( $_REQUEST['filter_action'] ) && ! empty( $_REQUEST['filter_action'] ) )
463
+ return false;
464
+
465
+ if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] )
466
+ return $_REQUEST['action'];
467
+
468
+ if ( isset( $_REQUEST['action2'] ) && -1 != $_REQUEST['action2'] )
469
+ return $_REQUEST['action2'];
470
+
471
+ return false;
472
+ }
473
+
474
+ /**
475
+ * Generate row actions div
476
+ *
477
+ * @since 3.1.0
478
+ * @access protected
479
+ *
480
+ * @param array $actions The list of actions
481
+ * @param bool $always_visible Whether the actions should be always visible
482
+ * @return string
483
+ */
484
+ protected function row_actions( $actions, $always_visible = false ) {
485
+ $action_count = count( $actions );
486
+ $i = 0;
487
+
488
+ if ( !$action_count )
489
+ return '';
490
+
491
+ $out = '<div class="' . ( $always_visible ? 'row-actions visible' : 'row-actions' ) . '">';
492
+ foreach ( $actions as $action => $link ) {
493
+ ++$i;
494
+ ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
495
+ $out .= "<span class='$action'>$link$sep</span>";
496
+ }
497
+ $out .= '</div>';
498
+
499
+ $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>';
500
+
501
+ return $out;
502
+ }
503
+
504
+ /**
505
+ * Display a monthly dropdown for filtering items
506
+ *
507
+ * @since 3.1.0
508
+ * @access protected
509
+ *
510
+ * @global wpdb $wpdb
511
+ * @global WP_Locale $wp_locale
512
+ *
513
+ * @param string $post_type
514
+ */
515
+ protected function months_dropdown( $post_type ) {
516
+ global $wpdb, $wp_locale;
517
+
518
+ /**
519
+ * Filter whether to remove the 'Months' drop-down from the post list table.
520
+ *
521
+ * @since 4.2.0
522
+ *
523
+ * @param bool $disable Whether to disable the drop-down. Default false.
524
+ * @param string $post_type The post type.
525
+ */
526
+ if ( apply_filters( 'disable_months_dropdown', false, $post_type ) ) {
527
+ return;
528
+ }
529
+
530
+ $months = $wpdb->get_results( $wpdb->prepare( "
531
+ SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
532
+ FROM $wpdb->posts
533
+ WHERE post_type = %s
534
+ ORDER BY post_date DESC
535
+ ", $post_type ) );
536
+
537
+ /**
538
+ * Filter the 'Months' drop-down results.
539
+ *
540
+ * @since 3.7.0
541
+ *
542
+ * @param object $months The months drop-down query results.
543
+ * @param string $post_type The post type.
544
+ */
545
+ $months = apply_filters( 'months_dropdown_results', $months, $post_type );
546
+
547
+ $month_count = count( $months );
548
+
549
+ if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
550
+ return;
551
+
552
+ $m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0;
553
+ ?>
554
+ <label for="filter-by-date" class="screen-reader-text"><?php _e( 'Filter by date' ); ?></label>
555
+ <select name="m" id="filter-by-date">
556
+ <option<?php selected( $m, 0 ); ?> value="0"><?php _e( 'All dates' ); ?></option>
557
+ <?php
558
+ foreach ( $months as $arc_row ) {
559
+ if ( 0 == $arc_row->year )
560
+ continue;
561
+
562
+ $month = zeroise( $arc_row->month, 2 );
563
+ $year = $arc_row->year;
564
+
565
+ printf( "<option %s value='%s'>%s</option>\n",
566
+ selected( $m, $year . $month, false ),
567
+ esc_attr( $arc_row->year . $month ),
568
+ /* translators: 1: month name, 2: 4-digit year */
569
+ sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month ), $year )
570
+ );
571
+ }
572
+ ?>
573
+ </select>
574
+ <?php
575
+ }
576
+
577
+ /**
578
+ * Display a view switcher
579
+ *
580
+ * @since 3.1.0
581
+ * @access protected
582
+ *
583
+ * @param string $current_mode
584
+ */
585
+ protected function view_switcher( $current_mode ) {
586
+ ?>
587
+ <input type="hidden" name="mode" value="<?php echo esc_attr( $current_mode ); ?>" />
588
+ <div class="view-switch">
589
+ <?php
590
+ foreach ( $this->modes as $mode => $title ) {
591
+ $classes = array( 'view-' . $mode );
592
+ if ( $current_mode == $mode )
593
+ $classes[] = 'current';
594
+ printf(
595
+ "<a href='%s' class='%s' id='view-switch-$mode'><span class='screen-reader-text'>%s</span></a>\n",
596
+ esc_url( add_query_arg( 'mode', $mode ) ),
597
+ implode( ' ', $classes ),
598
+ $title
599
+ );
600
+ }
601
+ ?>
602
+ </div>
603
+ <?php
604
+ }
605
+
606
+ /**
607
+ * Display a comment count bubble
608
+ *
609
+ * @since 3.1.0
610
+ * @access protected
611
+ *
612
+ * @param int $post_id The post ID.
613
+ * @param int $pending_comments Number of pending comments.
614
+ */
615
+ protected function comments_bubble( $post_id, $pending_comments ) {
616
+ $approved_comments = get_comments_number();
617
+
618
+ $approved_comments_number = number_format_i18n( $approved_comments );
619
+ $pending_comments_number = number_format_i18n( $pending_comments );
620
+
621
+ $approved_only_phrase = sprintf( _n( '%s comment', '%s comments', $approved_comments ), $approved_comments_number );
622
+ $approved_phrase = sprintf( _n( '%s approved comment', '%s approved comments', $approved_comments ), $approved_comments_number );
623
+ $pending_phrase = sprintf( _n( '%s pending comment', '%s pending comments', $pending_comments ), $pending_comments_number );
624
+
625
+ // No comments at all.
626
+ if ( ! $approved_comments && ! $pending_comments ) {
627
+ printf( '<span aria-hidden="true">—</span><span class="screen-reader-text">%s</span>',
628
+ __( 'No comments' )
629
+ );
630
+ // Approved comments have different display depending on some conditions.
631
+ } elseif ( $approved_comments ) {
632
+ printf( '<a href="%s" class="post-com-count post-com-count-approved"><span class="comment-count-approved" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
633
+ esc_url( add_query_arg( array( 'p' => $post_id, 'comment_status' => 'approved' ), admin_url( 'edit-comments.php' ) ) ),
634
+ $approved_comments_number,
635
+ $pending_comments ? $approved_phrase : $approved_only_phrase
636
+ );
637
+ } else {
638
+ printf( '<span class="post-com-count post-com-count-no-comments"><span class="comment-count comment-count-no-comments" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></span>',
639
+ $approved_comments_number,
640
+ $pending_comments ? __( 'No approved comments' ) : __( 'No comments' )
641
+ );
642
+ }
643
+
644
+ if ( $pending_comments ) {
645
+ printf( '<a href="%s" class="post-com-count post-com-count-pending"><span class="comment-count-pending" aria-hidden="true">%s</span><span class="screen-reader-text">%s</span></a>',
646
+ esc_url( add_query_arg( array( 'p' => $post_id, 'comment_status' => 'moderated' ), admin_url( 'edit-comments.php' ) ) ),
647
+ $pending_comments_number,
648
+ $pending_phrase
649
+ );
650
+ }
651
+ }
652
+
653
+ /**
654
+ * Get the current page number
655
+ *
656
+ * @since 3.1.0
657
+ * @access public
658
+ *
659
+ * @return int
660
+ */
661
+ public function get_pagenum() {
662
+ $pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0;
663
+
664
+ if ( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] )
665
+ $pagenum = $this->_pagination_args['total_pages'];
666
+
667
+ return max( 1, $pagenum );
668
+ }
669
+
670
+ /**
671
+ * Get number of items to display on a single page
672
+ *
673
+ * @since 3.1.0
674
+ * @access protected
675
+ *
676
+ * @param string $option
677
+ * @param int $default
678
+ * @return int
679
+ */
680
+ protected function get_items_per_page( $option, $default = 20 ) {
681
+ $per_page = (int) get_user_option( $option );
682
+ if ( empty( $per_page ) || $per_page < 1 )
683
+ $per_page = $default;
684
+
685
+ /**
686
+ * Filter the number of items to be displayed on each page of the list table.
687
+ *
688
+ * The dynamic hook name, $option, refers to the `per_page` option depending
689
+ * on the type of list table in use. Possible values include: 'edit_comments_per_page',
690
+ * 'sites_network_per_page', 'site_themes_network_per_page', 'themes_network_per_page',
691
+ * 'users_network_per_page', 'edit_post_per_page', 'edit_page_per_page',
692
+ * 'edit_{$post_type}_per_page', etc.
693
+ *
694
+ * @since 2.9.0
695
+ *
696
+ * @param int $per_page Number of items to be displayed. Default 20.
697
+ */
698
+ return (int) apply_filters( $option, $per_page );
699
+ }
700
+
701
+ /**
702
+ * Display the pagination.
703
+ *
704
+ * @since 3.1.0
705
+ * @access protected
706
+ *
707
+ * @param string $which
708
+ */
709
+ protected function pagination( $which ) {
710
+ if ( empty( $this->_pagination_args ) ) {
711
+ return;
712
+ }
713
+
714
+ $total_items = $this->_pagination_args['total_items'];
715
+ $total_pages = $this->_pagination_args['total_pages'];
716
+ $infinite_scroll = false;
717
+ if ( isset( $this->_pagination_args['infinite_scroll'] ) ) {
718
+ $infinite_scroll = $this->_pagination_args['infinite_scroll'];
719
+ }
720
+
721
+ $output = '<span class="displaying-num">' . sprintf( _n( '%s item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
722
+
723
+ $current = $this->get_pagenum();
724
+
725
+ $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
726
+
727
+ $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
728
+
729
+ $page_links = array();
730
+
731
+ $total_pages_before = '<span class="paging-input">';
732
+ $total_pages_after = '</span>';
733
+
734
+ $disable_first = $disable_last = $disable_prev = $disable_next = false;
735
+
736
+ if ( $current == 1 ) {
737
+ $disable_first = true;
738
+ $disable_prev = true;
739
+ }
740
+ if ( $current == 2 ) {
741
+ $disable_first = true;
742
+ }
743
+ if ( $current == $total_pages ) {
744
+ $disable_last = true;
745
+ $disable_next = true;
746
+ }
747
+ if ( $current == $total_pages - 1 ) {
748
+ $disable_last = true;
749
+ }
750
+
751
+ if ( $disable_first ) {
752
+ $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&laquo;</span>';
753
+ } else {
754
+ $page_links[] = sprintf( "<a class='first-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
755
+ esc_url( remove_query_arg( 'paged', $current_url ) ),
756
+ __( 'First page' ),
757
+ '&laquo;'
758
+ );
759
+ }
760
+
761
+ if ( $disable_prev ) {
762
+ $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&lsaquo;</span>';
763
+ } else {
764
+ $page_links[] = sprintf( "<a class='prev-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
765
+ esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ),
766
+ __( 'Previous page' ),
767
+ '&lsaquo;'
768
+ );
769
+ }
770
+
771
+ if ( 'bottom' == $which ) {
772
+ $html_current_page = $current;
773
+ $total_pages_before = '<span class="screen-reader-text">' . __( 'Current Page' ) . '</span><span id="table-paging" class="paging-input">';
774
+ } else {
775
+ $html_current_page = sprintf( "%s<input class='current-page' id='current-page-selector' type='text' name='paged' value='%s' size='%d' aria-describedby='table-paging' />",
776
+ '<label for="current-page-selector" class="screen-reader-text">' . __( 'Current Page' ) . '</label>',
777
+ $current,
778
+ strlen( $total_pages )
779
+ );
780
+ }
781
+ $html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
782
+ $page_links[] = $total_pages_before . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . $total_pages_after;
783
+
784
+ if ( $disable_next ) {
785
+ $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&rsaquo;</span>';
786
+ } else {
787
+ $page_links[] = sprintf( "<a class='next-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
788
+ esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ),
789
+ __( 'Next page' ),
790
+ '&rsaquo;'
791
+ );
792
+ }
793
+
794
+ if ( $disable_last ) {
795
+ $page_links[] = '<span class="tablenav-pages-navspan" aria-hidden="true">&raquo;</span>';
796
+ } else {
797
+ $page_links[] = sprintf( "<a class='last-page' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>",
798
+ esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
799
+ __( 'Last page' ),
800
+ '&raquo;'
801
+ );
802
+ }
803
+
804
+ $pagination_links_class = 'pagination-links';
805
+ if ( ! empty( $infinite_scroll ) ) {
806
+ $pagination_links_class = ' hide-if-js';
807
+ }
808
+ $output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
809
+
810
+ if ( $total_pages ) {
811
+ $page_class = $total_pages < 2 ? ' one-page' : '';
812
+ } else {
813
+ $page_class = ' no-pages';
814
+ }
815
+ $this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
816
+
817
+ echo $this->_pagination;
818
+ }
819
+
820
+ /**
821
+ * Get a list of columns. The format is:
822
+ * 'internal-name' => 'Title'
823
+ *
824
+ * @since 3.1.0
825
+ * @access public
826
+ * @abstract
827
+ *
828
+ * @return array
829
+ */
830
+ public function get_columns() {
831
+ die( 'function WPCListTable::get_columns() must be over-ridden in a sub-class.' );
832
+ }
833
+
834
+ /**
835
+ * Get a list of sortable columns. The format is:
836
+ * 'internal-name' => 'orderby'
837
+ * or
838
+ * 'internal-name' => array( 'orderby', true )
839
+ *
840
+ * The second format will make the initial sorting order be descending
841
+ *
842
+ * @since 3.1.0
843
+ * @access protected
844
+ *
845
+ * @return array
846
+ */
847
+ protected function get_sortable_columns() {
848
+ return array();
849
+ }
850
+
851
+ /**
852
+ * Gets the name of the default primary column.
853
+ *
854
+ * @since 4.3.0
855
+ * @access protected
856
+ *
857
+ * @return string Name of the default primary column, in this case, an empty string.
858
+ */
859
+ protected function get_default_primary_column_name() {
860
+ $columns = $this->get_columns();
861
+ $column = '';
862
+
863
+ // We need a primary defined so responsive views show something,
864
+ // so let's fall back to the first non-checkbox column.
865
+ foreach( $columns as $col => $column_name ) {
866
+ if ( 'cb' === $col ) {
867
+ continue;
868
+ }
869
+
870
+ $column = $col;
871
+ break;
872
+ }
873
+
874
+ return $column;
875
+ }
876
+
877
+ /**
878
+ * Gets the name of the primary column.
879
+ *
880
+ * @since 4.3.0
881
+ * @access protected
882
+ *
883
+ * @return string The name of the primary column.
884
+ */
885
+ protected function get_primary_column_name() {
886
+ $columns = $this->get_columns();
887
+ $default = $this->get_default_primary_column_name();
888
+
889
+ // If the primary column doesn't exist fall back to the
890
+ // first non-checkbox column.
891
+ if ( ! isset( $columns[ $default ] ) ) {
892
+ $default = WPCListTable::get_default_primary_column_name();
893
+ }
894
+
895
+ /**
896
+ * Filter the name of the primary column for the current list table.
897
+ *
898
+ * @since 4.3.0
899
+ *
900
+ * @param string $default Column name default for the specific list table, e.g. 'name'.
901
+ * @param string $context Screen ID for specific list table, e.g. 'plugins'.
902
+ */
903
+ $column = apply_filters( 'list_table_primary_column', $default, $this->screen->id );
904
+
905
+ if ( empty( $column ) || ! isset( $columns[ $column ] ) ) {
906
+ $column = $default;
907
+ }
908
+
909
+ return $column;
910
+ }
911
+
912
+ /**
913
+ * Get a list of all, hidden and sortable columns, with filter applied
914
+ *
915
+ * @since 3.1.0
916
+ * @access protected
917
+ *
918
+ * @return array
919
+ */
920
+ protected function get_column_info() {
921
+ // $_column_headers is already set / cached
922
+ if ( isset( $this->_column_headers ) && is_array( $this->_column_headers ) ) {
923
+ // Back-compat for list tables that have been manually setting $_column_headers for horse reasons.
924
+ // In 4.3, we added a fourth argument for primary column.
925
+ $column_headers = array( array(), array(), array(), $this->get_primary_column_name() );
926
+ foreach ( $this->_column_headers as $key => $value ) {
927
+ $column_headers[ $key ] = $value;
928
+ }
929
+
930
+ return $column_headers;
931
+ }
932
+
933
+ $columns = get_column_headers( $this->screen );
934
+ $hidden = get_hidden_columns( $this->screen );
935
+
936
+ $sortable_columns = $this->get_sortable_columns();
937
+ /**
938
+ * Filter the list table sortable columns for a specific screen.
939
+ *
940
+ * The dynamic portion of the hook name, `$this->screen->id`, refers
941
+ * to the ID of the current screen, usually a string.
942
+ *
943
+ * @since 3.5.0
944
+ *
945
+ * @param array $sortable_columns An array of sortable columns.
946
+ */
947
+ $_sortable = apply_filters( "manage_{$this->screen->id}_sortable_columns", $sortable_columns );
948
+
949
+ $sortable = array();
950
+ foreach ( $_sortable as $id => $data ) {
951
+ if ( empty( $data ) )
952
+ continue;
953
+
954
+ $data = (array) $data;
955
+ if ( !isset( $data[1] ) )
956
+ $data[1] = false;
957
+
958
+ $sortable[$id] = $data;
959
+ }
960
+
961
+ $primary = $this->get_primary_column_name();
962
+ $this->_column_headers = array( $columns, $hidden, $sortable, $primary );
963
+
964
+ return $this->_column_headers;
965
+ }
966
+
967
+ /**
968
+ * Return number of visible columns
969
+ *
970
+ * @since 3.1.0
971
+ * @access public
972
+ *
973
+ * @return int
974
+ */
975
+ public function get_column_count() {
976
+ list ( $columns, $hidden ) = $this->get_column_info();
977
+ $hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) );
978
+ return count( $columns ) - count( $hidden );
979
+ }
980
+
981
+ /**
982
+ * Print column headers, accounting for hidden and sortable columns.
983
+ *
984
+ * @since 3.1.0
985
+ * @access public
986
+ *
987
+ * @staticvar int $cb_counter
988
+ *
989
+ * @param bool $with_id Whether to set the id attribute or not
990
+ */
991
+ public function print_column_headers( $with_id = true ) {
992
+ list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
993
+
994
+ $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
995
+ $current_url = remove_query_arg( 'paged', $current_url );
996
+
997
+ if ( isset( $_GET['orderby'] ) )
998
+ $current_orderby = $_GET['orderby'];
999
+ else
1000
+ $current_orderby = '';
1001
+
1002
+ if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] )
1003
+ $current_order = 'desc';
1004
+ else
1005
+ $current_order = 'asc';
1006
+
1007
+ if ( ! empty( $columns['cb'] ) ) {
1008
+ static $cb_counter = 1;
1009
+ $columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __( 'Select All' ) . '</label>'
1010
+ . '<input id="cb-select-all-' . $cb_counter . '" type="checkbox" />';
1011
+ $cb_counter++;
1012
+ }
1013
+
1014
+ foreach ( $columns as $column_key => $column_display_name ) {
1015
+ $class = array( 'manage-column', "column-$column_key" );
1016
+
1017
+ if ( in_array( $column_key, $hidden ) ) {
1018
+ $class[] = 'hidden';
1019
+ }
1020
+
1021
+ if ( 'cb' == $column_key )
1022
+ $class[] = 'check-column';
1023
+ elseif ( in_array( $column_key, array( 'posts', 'comments', 'links' ) ) )
1024
+ $class[] = 'num';
1025
+
1026
+ if ( $column_key === $primary ) {
1027
+ $class[] = 'column-primary';
1028
+ }
1029
+
1030
+ if ( isset( $sortable[$column_key] ) ) {
1031
+ list( $orderby, $desc_first ) = $sortable[$column_key];
1032
+
1033
+ if ( $current_orderby == $orderby ) {
1034
+ $order = 'asc' == $current_order ? 'desc' : 'asc';
1035
+ $class[] = 'sorted';
1036
+ $class[] = $current_order;
1037
+ } else {
1038
+ $order = $desc_first ? 'desc' : 'asc';
1039
+ $class[] = 'sortable';
1040
+ $class[] = $desc_first ? 'asc' : 'desc';
1041
+ }
1042
+
1043
+ $column_display_name = '<a href="' . esc_url( add_query_arg( compact( 'orderby', 'order' ), $current_url ) ) . '"><span>' . $column_display_name . '</span><span class="sorting-indicator"></span></a>';
1044
+ }
1045
+
1046
+ $tag = ( 'cb' === $column_key ) ? 'td' : 'th';
1047
+ $scope = ( 'th' === $tag ) ? 'scope="col"' : '';
1048
+ $id = $with_id ? "id='$column_key'" : '';
1049
+
1050
+ if ( !empty( $class ) )
1051
+ $class = "class='" . join( ' ', $class ) . "'";
1052
+
1053
+ echo "<$tag $scope $id $class>$column_display_name</$tag>";
1054
+ }
1055
+ }
1056
+
1057
+ /**
1058
+ * Display the table
1059
+ *
1060
+ * @since 3.1.0
1061
+ * @access public
1062
+ */
1063
+ public function display() {
1064
+ $singular = $this->_args['singular'];
1065
+
1066
+ $this->display_tablenav( 'top' );
1067
+ ?>
1068
+ <table class="wp-list-table <?php echo implode( ' ', $this->get_table_classes() ); ?>">
1069
+ <thead>
1070
+ <tr>
1071
+ <?php $this->print_column_headers(); ?>
1072
+ </tr>
1073
+ </thead>
1074
+
1075
+ <tbody id="the-list"<?php
1076
+ if ( $singular ) {
1077
+ echo " data-wp-lists='list:$singular'";
1078
+ } ?>>
1079
+ <?php $this->display_rows_or_placeholder(); ?>
1080
+ </tbody>
1081
+
1082
+ <tfoot>
1083
+ <tr>
1084
+ <?php $this->print_column_headers( false ); ?>
1085
+ </tr>
1086
+ </tfoot>
1087
+
1088
+ </table>
1089
+ <?php
1090
+ $this->display_tablenav( 'bottom' );
1091
+ }
1092
+
1093
+ /**
1094
+ * Get a list of CSS classes for the list table table tag.
1095
+ *
1096
+ * @since 3.1.0
1097
+ * @access protected
1098
+ *
1099
+ * @return array List of CSS classes for the table tag.
1100
+ */
1101
+ protected function get_table_classes() {
1102
+ return array( 'widefat', 'fixed', 'striped', $this->_args['plural'] );
1103
+ }
1104
+
1105
+ /**
1106
+ * Generate the table navigation above or below the table
1107
+ *
1108
+ * @since 3.1.0
1109
+ * @access protected
1110
+ * @param string $which
1111
+ */
1112
+ protected function display_tablenav( $which ) {
1113
+ if ( 'top' == $which )
1114
+ wp_nonce_field( 'bulk-' . $this->_args['plural'] );
1115
+ ?>
1116
+ <div class="tablenav <?php echo esc_attr( $which ); ?>">
1117
+
1118
+ <div class="alignleft actions bulkactions">
1119
+ <?php $this->bulk_actions( $which ); ?>
1120
+ </div>
1121
+ <?php
1122
+ $this->extra_tablenav( $which );
1123
+ $this->pagination( $which );
1124
+ ?>
1125
+
1126
+ <br class="clear" />
1127
+ </div>
1128
+ <?php
1129
+ }
1130
+
1131
+ /**
1132
+ * Extra controls to be displayed between bulk actions and pagination
1133
+ *
1134
+ * @since 3.1.0
1135
+ * @access protected
1136
+ *
1137
+ * @param string $which
1138
+ */
1139
+ protected function extra_tablenav( $which ) {}
1140
+
1141
+ /**
1142
+ * Generate the tbody element for the list table.
1143
+ *
1144
+ * @since 3.1.0
1145
+ * @access public
1146
+ */
1147
+ public function display_rows_or_placeholder() {
1148
+ if ( $this->has_items() ) {
1149
+ $this->display_rows();
1150
+ } else {
1151
+ echo '<tr class="no-items"><td class="colspanchange" colspan="' . $this->get_column_count() . '">';
1152
+ $this->no_items();
1153
+ echo '</td></tr>';
1154
+ }
1155
+ }
1156
+
1157
+ /**
1158
+ * Generate the table rows
1159
+ *
1160
+ * @since 3.1.0
1161
+ * @access public
1162
+ */
1163
+ public function display_rows() {
1164
+ foreach ( $this->items as $item )
1165
+ $this->single_row( $item );
1166
+ }
1167
+
1168
+ /**
1169
+ * Generates content for a single row of the table
1170
+ *
1171
+ * @since 3.1.0
1172
+ * @access public
1173
+ *
1174
+ * @param object $item The current item
1175
+ */
1176
+ public function single_row( $item ) {
1177
+ echo '<tr>';
1178
+ $this->single_row_columns( $item );
1179
+ echo '</tr>';
1180
+ }
1181
+
1182
+ /**
1183
+ *
1184
+ * @param object $item
1185
+ * @param string $column_name
1186
+ */
1187
+ protected function column_default( $item, $column_name ) {}
1188
+
1189
+ /**
1190
+ *
1191
+ * @param object $item
1192
+ */
1193
+ protected function column_cb( $item ) {}
1194
+
1195
+ /**
1196
+ * Generates the columns for a single row of the table
1197
+ *
1198
+ * @since 3.1.0
1199
+ * @access protected
1200
+ *
1201
+ * @param object $item The current item
1202
+ */
1203
+ protected function single_row_columns( $item ) {
1204
+ list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
1205
+
1206
+ foreach ( $columns as $column_name => $column_display_name ) {
1207
+ $classes = "$column_name column-$column_name";
1208
+ if ( $primary === $column_name ) {
1209
+ $classes .= ' has-row-actions column-primary';
1210
+ }
1211
+
1212
+ if ( in_array( $column_name, $hidden ) ) {
1213
+ $classes .= ' hidden';
1214
+ }
1215
+
1216
+ // Comments column uses HTML in the display name with screen reader text.
1217
+ // Instead of using esc_attr(), we strip tags to get closer to a user-friendly string.
1218
+ $data = 'data-colname="' . wp_strip_all_tags( $column_display_name ) . '"';
1219
+
1220
+ $attributes = "class='$classes' $data";
1221
+
1222
+ if ( 'cb' == $column_name ) {
1223
+ echo '<th scope="row" class="check-column">';
1224
+ echo $this->column_cb( $item );
1225
+ echo '</th>';
1226
+ } elseif ( method_exists( $this, '_column_' . $column_name ) ) {
1227
+ echo call_user_func(
1228
+ array( $this, '_column_' . $column_name ),
1229
+ $item,
1230
+ $classes,
1231
+ $data,
1232
+ $primary
1233
+ );
1234
+ } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
1235
+ echo "<td $attributes>";
1236
+ echo call_user_func( array( $this, 'column_' . $column_name ), $item );
1237
+ echo $this->handle_row_actions( $item, $column_name, $primary );
1238
+ echo "</td>";
1239
+ } else {
1240
+ echo "<td $attributes>";
1241
+ echo $this->column_default( $item, $column_name );
1242
+ echo $this->handle_row_actions( $item, $column_name, $primary );
1243
+ echo "</td>";
1244
+ }
1245
+ }
1246
+ }
1247
+
1248
+ /**
1249
+ * Generates and display row actions links for the list table.
1250
+ *
1251
+ * @since 4.3.0
1252
+ * @access protected
1253
+ *
1254
+ * @param object $item The item being acted upon.
1255
+ * @param string $column_name Current column name.
1256
+ * @param string $primary Primary column name.
1257
+ * @return string The row actions output. In this case, an empty string.
1258
+ */
1259
+ protected function handle_row_actions( $item, $column_name, $primary ) {
1260
+ return $column_name == $primary ? '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>' : '';
1261
+ }
1262
+
1263
+ /**
1264
+ * Handle an incoming ajax request (called from admin-ajax.php)
1265
+ *
1266
+ * @since 3.1.0
1267
+ * @access public
1268
+ */
1269
+ public function ajax_response() {
1270
+ $this->prepare_items();
1271
+
1272
+ ob_start();
1273
+ if ( ! empty( $_REQUEST['no_placeholder'] ) ) {
1274
+ $this->display_rows();
1275
+ } else {
1276
+ $this->display_rows_or_placeholder();
1277
+ }
1278
+
1279
+ $rows = ob_get_clean();
1280
+
1281
+ $response = array( 'rows' => $rows );
1282
+
1283
+ if ( isset( $this->_pagination_args['total_items'] ) ) {
1284
+ $response['total_items_i18n'] = sprintf(
1285
+ _n( '%s item', '%s items', $this->_pagination_args['total_items'] ),
1286
+ number_format_i18n( $this->_pagination_args['total_items'] )
1287
+ );
1288
+ }
1289
+ if ( isset( $this->_pagination_args['total_pages'] ) ) {
1290
+ $response['total_pages'] = $this->_pagination_args['total_pages'];
1291
+ $response['total_pages_i18n'] = number_format_i18n( $this->_pagination_args['total_pages'] );
1292
+ }
1293
+
1294
+ die( wp_json_encode( $response ) );
1295
+ }
1296
+
1297
+ /**
1298
+ * Send required variables to JavaScript land
1299
+ *
1300
+ * @access public
1301
+ */
1302
+ public function _js_vars() {
1303
+ $args = array(
1304
+ 'class' => get_class( $this ),
1305
+ 'screen' => array(
1306
+ 'id' => $this->screen->id,
1307
+ 'base' => $this->screen->base,
1308
+ )
1309
+ );
1310
+
1311
+ printf( "<script type='text/javascript'>list_args = %s;</script>\n", wp_json_encode( $args ) );
1312
+ }
1313
+ }
classes/sgDataTable/SGPopupTable.php CHANGED
@@ -1,55 +1,55 @@
1
- <?php
2
- require_once('Table.php');
3
-
4
- class SGPB_PopupsView extends SGPB_Table
5
- {
6
- public function __construct()
7
- {
8
- global $wpdb;
9
- parent::__construct('');
10
-
11
- $this->setRowsPerPage(SG_APP_POPUP_TABLE_LIMIT);
12
- $this->setTablename($wpdb->prefix.'sg_popup');
13
- $this->setColumns(array(
14
- 'id',
15
- 'title',
16
- 'type'
17
- ));
18
- $this->setDisplayColumns(array(
19
- 'id' => 'ID',
20
- 'title' => 'Title',
21
- 'type' => 'Type',
22
- 'shortcode' => 'Auto shortcode',
23
- 'options' => 'Options'
24
- ));
25
- $this->setSortableColumns(array(
26
- 'id' => array('id', false),
27
- 'title' => array('title', true),
28
- $this->setInitialSort(array(
29
- 'id' => 'DESC'
30
- ))
31
- ));
32
- }
33
-
34
- public function customizeRow(&$row)
35
- {
36
- $id = $row[0];
37
- $type = $row[2];
38
- $editUrl = admin_url()."admin.php?page=edit-popup&id=".$id."&type=".$type."";
39
- $row[3] = "<input type='text' onfocus='this.select();' readonly value='[sg_popup id=".$id."]' class='large-text code'>";
40
- $row[4] = '<a href="'.@$editUrl.'">'.__('Edit', 'sgpt').'</a>&nbsp;&nbsp;<a href="#" data-sg-popup-id="'.$id.'" class="sg-js-delete-link">'.__('Delete', 'sgpt').'</a>
41
- <a href="'.admin_url().'admin-post.php?action=popup_clone&id='.$id.'" data-sg-popup-id="'.$id.'" class="sg-js-popup-clone">Clone</a>';
42
- }
43
-
44
- public function customizeQuery(&$query)
45
- {
46
- $searchQuery = '';
47
- global $wpdb;
48
- if(isset($_POST['s']) && !empty($_POST['s']))
49
- {
50
- $searchCriteria = $_POST['s'];
51
- $searchQuery = " WHERE title LIKE '%$searchCriteria%' ";
52
- }
53
- $query .= $searchQuery;
54
- }
55
- }
1
+ <?php
2
+ require_once('Table.php');
3
+
4
+ class SGPB_PopupsView extends SGPB_Table
5
+ {
6
+ public function __construct()
7
+ {
8
+ global $wpdb;
9
+ parent::__construct('');
10
+
11
+ $this->setRowsPerPage(SG_APP_POPUP_TABLE_LIMIT);
12
+ $this->setTablename($wpdb->prefix.'sg_popup');
13
+ $this->setColumns(array(
14
+ 'id',
15
+ 'title',
16
+ 'type'
17
+ ));
18
+ $this->setDisplayColumns(array(
19
+ 'id' => 'ID',
20
+ 'title' => 'Title',
21
+ 'type' => 'Type',
22
+ 'shortcode' => 'Auto shortcode',
23
+ 'options' => 'Options'
24
+ ));
25
+ $this->setSortableColumns(array(
26
+ 'id' => array('id', false),
27
+ 'title' => array('title', true),
28
+ $this->setInitialSort(array(
29
+ 'id' => 'DESC'
30
+ ))
31
+ ));
32
+ }
33
+
34
+ public function customizeRow(&$row)
35
+ {
36
+ $id = $row[0];
37
+ $type = $row[2];
38
+ $editUrl = admin_url()."admin.php?page=edit-popup&id=".$id."&type=".$type."";
39
+ $row[3] = "<input type='text' onfocus='this.select();' readonly value='[sg_popup id=".$id."]' class='large-text code'>";
40
+ $row[4] = '<a href="'.@$editUrl.'">'.__('Edit', 'sgpt').'</a>&nbsp;&nbsp;<a href="#" data-sg-popup-id="'.$id.'" class="sg-js-delete-link">'.__('Delete', 'sgpt').'</a>
41
+ <a href="'.admin_url().'admin-post.php?action=popup_clone&id='.$id.'" data-sg-popup-id="'.$id.'" class="sg-js-popup-clone">Clone</a>';
42
+ }
43
+
44
+ public function customizeQuery(&$query)
45
+ {
46
+ $searchQuery = '';
47
+ global $wpdb;
48
+ if(isset($_POST['s']) && !empty($_POST['s']))
49
+ {
50
+ $searchCriteria = $_POST['s'];
51
+ $searchQuery = " WHERE title LIKE '%$searchCriteria%' ";
52
+ }
53
+ $query .= $searchQuery;
54
+ }
55
+ }
classes/sgDataTable/Table.php CHANGED
@@ -1,165 +1,171 @@
1
- <?php
2
-
3
- require_once('ListTable.php');
4
-
5
- class SGPB_Table extends SGPB_ListTable
6
- {
7
- protected $id = '';
8
- protected $columns = array();
9
- protected $displayColumns = array();
10
- protected $sortableColumns = array();
11
- protected $tablename = '';
12
- protected $rowsPerPage = 10;
13
- protected $initialOrder = array();
14
-
15
- public function __construct($id)
16
- {
17
- $this->id = $id;
18
- parent::__construct(array(
19
- 'singular'=> 'wp_'.$id, //singular label
20
- 'plural' => 'wp_'.$id.'s', //plural label
21
- 'ajax' => false
22
- ));
23
- }
24
-
25
- public function setId($id)
26
- {
27
- $this->id = $id;
28
- }
29
-
30
- public function setRowsPerPage($rowsPerPage)
31
- {
32
- $this->rowsPerPage = $rowsPerPage;
33
- }
34
-
35
- public function setColumns($columns)
36
- {
37
- $this->columns = $columns;
38
- }
39
-
40
- public function setDisplayColumns($displayColumns)
41
- {
42
- $this->displayColumns = $displayColumns;
43
- }
44
-
45
- public function setSortableColumns($sortableColumns)
46
- {
47
- $this->sortableColumns = $sortableColumns;
48
- }
49
-
50
- public function setTablename($tablename)
51
- {
52
- $this->tablename = $tablename;
53
- }
54
-
55
- public function setInitialSort($orderableColumns)
56
- {
57
- $this->initialOrder = $orderableColumns;
58
- }
59
-
60
- public function get_columns()
61
- {
62
- return $this->displayColumns;
63
- }
64
-
65
- public function prepare_items()
66
- {
67
- global $wpdb;
68
- $table = $this->tablename;
69
-
70
- $query = "SELECT ".implode(', ', $this->columns)." FROM ".$table;
71
- $this->customizeQuery($query);
72
-
73
- $totalItems = count($wpdb->get_results($query)); //return the total number of affected rows
74
-
75
- $perPage = $this->rowsPerPage;
76
-
77
- $totalPages = ceil($totalItems/$perPage);
78
-
79
- $orderby = isset($_GET["orderby"]) ? $_GET["orderby"] : 'ASC';
80
- $order = isset($_GET["order"]) ? $_GET["order"] : '';
81
-
82
- if(isset($this->initialOrder) && empty($order)){
83
- foreach($this->initialOrder as $key=>$val){
84
- $order = $val;
85
- $orderby = $key;
86
- }
87
- }
88
-
89
- if (!empty($orderby) && !empty($order)) {
90
- $query .= ' ORDER BY '.$orderby.' '.$order;
91
- }
92
-
93
- $paged = isset($_GET["paged"]) ? (int)$_GET["paged"] : '';
94
-
95
- if (empty($paged) || !is_numeric($paged) || $paged<=0) {
96
- $paged = 1;
97
- }
98
-
99
- //adjust the query to take pagination into account
100
- if(!empty($paged) && !empty($perPage)) {
101
- $offset = ($paged-1) * $perPage;
102
- $query .= ' LIMIT '.(int)$offset.','.(int)$perPage;
103
- }
104
-
105
- $this->set_pagination_args(array(
106
- "total_items" => $totalItems,
107
- "total_pages" => $totalPages,
108
- "per_page" => $perPage,
109
- ));
110
-
111
- $columns = $this->get_columns();
112
- $hidden = array();
113
- $sortable = $this->get_sortable_columns();
114
- $this->_column_headers = array($columns, $hidden, $sortable);
115
- $this->items = $wpdb->get_results($query, ARRAY_N);
116
- }
117
-
118
- public function get_sortable_columns() {
119
- return $this->sortableColumns;
120
- }
121
-
122
- public function display_rows()
123
- {
124
- //get the records registered in the prepare_items method
125
- $records = $this->items;
126
-
127
- //get the columns registered in the get_columns and get_sortable_columns methods
128
- list($columns, $hidden) = $this->get_column_info();
129
-
130
- if (!empty($records)) {
131
- foreach($records as $rec) {
132
- echo '<tr>';
133
-
134
- $this->customizeRow($rec);
135
- for ($i = 0; $i<count($rec); $i++) {
136
- echo '<td>'.stripslashes($rec[$i]).'</td>';
137
- }
138
-
139
- echo '</tr>';
140
- }
141
- }
142
- }
143
-
144
- public function customizeRow(&$row)
145
- {
146
-
147
- }
148
-
149
- public function customizeQuery(&$query)
150
- {
151
-
152
- }
153
-
154
- public function __toString()
155
- {
156
- $this->prepare_items(); ?>
157
- <form method="post">
158
- <input type="hidden" name="page" value="my_list_test" />
159
- <?php $this->search_box('search', 'search_id'); ?>
160
- </form>
161
- <?php
162
- $this->display();
163
- return '';
164
- }
165
- }
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once('ListTable.php');
4
+
5
+ class SGPB_Table extends SGPB_ListTable
6
+ {
7
+ protected $id = '';
8
+ protected $columns = array();
9
+ protected $displayColumns = array();
10
+ protected $sortableColumns = array();
11
+ protected $tablename = '';
12
+ protected $rowsPerPage = 10;
13
+ protected $initialOrder = array();
14
+
15
+ public function __construct($id)
16
+ {
17
+ $this->id = $id;
18
+ parent::__construct(array(
19
+ 'singular'=> 'wp_'.$id, //singular label
20
+ 'plural' => 'wp_'.$id.'s', //plural label
21
+ 'ajax' => false
22
+ ));
23
+ }
24
+
25
+ public function setId($id)
26
+ {
27
+ $this->id = $id;
28
+ }
29
+
30
+ public function setRowsPerPage($rowsPerPage)
31
+ {
32
+ $this->rowsPerPage = $rowsPerPage;
33
+ }
34
+
35
+ public function setColumns($columns)
36
+ {
37
+ $this->columns = $columns;
38
+ }
39
+
40
+ public function setDisplayColumns($displayColumns)
41
+ {
42
+ $this->displayColumns = $displayColumns;
43
+ }
44
+
45
+ public function setSortableColumns($sortableColumns)
46
+ {
47
+ $this->sortableColumns = $sortableColumns;
48
+ }
49
+
50
+ public function setTablename($tablename)
51
+ {
52
+ $this->tablename = $tablename;
53
+ }
54
+
55
+ public function setInitialSort($orderableColumns)
56
+ {
57
+ $this->initialOrder = $orderableColumns;
58
+ }
59
+
60
+ public function get_columns()
61
+ {
62
+ return $this->displayColumns;
63
+ }
64
+
65
+ public function prepare_items()
66
+ {
67
+ global $wpdb;
68
+ $table = $this->tablename;
69
+
70
+ $query = "SELECT ".implode(', ', $this->columns)." FROM ".$table;
71
+ $this->customizeQuery($query);
72
+
73
+ $totalItems = count($wpdb->get_results($query)); //return the total number of affected rows
74
+
75
+ $perPage = $this->rowsPerPage;
76
+
77
+ $totalPages = ceil($totalItems/$perPage);
78
+
79
+ $orderby = isset($_GET["orderby"]) ? $_GET["orderby"] : 'ASC';
80
+ $order = isset($_GET["order"]) ? $_GET["order"] : '';
81
+
82
+ if(isset($this->initialOrder) && empty($order)){
83
+ foreach($this->initialOrder as $key=>$val){
84
+ $order = $val;
85
+ $orderby = $key;
86
+ }
87
+ }
88
+
89
+ if (!empty($orderby) && !empty($order)) {
90
+ if($orderby != 'id' && $orderby != 'title') {
91
+ $orderby = 'id';
92
+ }
93
+ if($order != 'asc' && $order != 'desc') {
94
+ $order = 'desc';
95
+ }
96
+ $query .= ' ORDER BY '.$orderby.' '.$order;
97
+ }
98
+
99
+ $paged = isset($_GET["paged"]) ? (int)$_GET["paged"] : '';
100
+
101
+ if (empty($paged) || !is_numeric($paged) || $paged<=0) {
102
+ $paged = 1;
103
+ }
104
+
105
+ //adjust the query to take pagination into account
106
+ if(!empty($paged) && !empty($perPage)) {
107
+ $offset = ($paged-1) * $perPage;
108
+ $query .= ' LIMIT '.(int)$offset.','.(int)$perPage;
109
+ }
110
+
111
+ $this->set_pagination_args(array(
112
+ "total_items" => $totalItems,
113
+ "total_pages" => $totalPages,
114
+ "per_page" => $perPage,
115
+ ));
116
+
117
+ $columns = $this->get_columns();
118
+ $hidden = array();
119
+ $sortable = $this->get_sortable_columns();
120
+ $this->_column_headers = array($columns, $hidden, $sortable);
121
+ $this->items = $wpdb->get_results($query, ARRAY_N);
122
+ }
123
+
124
+ public function get_sortable_columns() {
125
+ return $this->sortableColumns;
126
+ }
127
+
128
+ public function display_rows()
129
+ {
130
+ //get the records registered in the prepare_items method
131
+ $records = $this->items;
132
+
133
+ //get the columns registered in the get_columns and get_sortable_columns methods
134
+ list($columns, $hidden) = $this->get_column_info();
135
+
136
+ if (!empty($records)) {
137
+ foreach($records as $rec) {
138
+ echo '<tr>';
139
+
140
+ $this->customizeRow($rec);
141
+ for ($i = 0; $i<count($rec); $i++) {
142
+ echo '<td>'.stripslashes($rec[$i]).'</td>';
143
+ }
144
+
145
+ echo '</tr>';
146
+ }
147
+ }
148
+ }
149
+
150
+ public function customizeRow(&$row)
151
+ {
152
+
153
+ }
154
+
155
+ public function customizeQuery(&$query)
156
+ {
157
+
158
+ }
159
+
160
+ public function __toString()
161
+ {
162
+ $this->prepare_items(); ?>
163
+ <form method="post">
164
+ <input type="hidden" name="page" value="my_list_test" />
165
+ <?php $this->search_box('search', 'search_id'); ?>
166
+ </form>
167
+ <?php
168
+ $this->display();
169
+ return '';
170
+ }
171
+ }
files/main_section/fblike.php CHANGED
@@ -1,19 +1,19 @@
1
- <div class="sg-wp-editor-container">
2
- <?php
3
- if(!SG_POPUP_PRO) {
4
- echo SGFunctions::noticeForShortcode();
5
- }
6
-
7
- $content = @$sgPopupDataFblike;
8
- $editorId = 'sg_popup_fblike';
9
- $settings = array(
10
- 'wpautop' => false,
11
- 'tinymce' => array(
12
- 'width' => '100%',
13
- ),
14
- 'textarea_rows' => '6',
15
- 'media_buttons' => true
16
- );
17
- wp_editor($content, $editorId, $settings);
18
- ?>
19
  </div>
1
+ <div class="sg-wp-editor-container">
2
+ <?php
3
+ if(!SG_POPUP_PRO) {
4
+ echo SGFunctions::noticeForShortcode();
5
+ }
6
+
7
+ $content = @$sgPopupDataFblike;
8
+ $editorId = 'sg_popup_fblike';
9
+ $settings = array(
10
+ 'wpautop' => false,
11
+ 'tinymce' => array(
12
+ 'width' => '100%',
13
+ ),
14
+ 'textarea_rows' => '6',
15
+ 'media_buttons' => true
16
+ );
17
+ wp_editor($content, $editorId, $settings);
18
+ ?>
19
  </div>
files/main_section/html.php CHANGED
@@ -1,19 +1,19 @@
1
- <div class="sg-wp-editor-container">
2
- <?php
3
- if(!SG_POPUP_PRO) {
4
- echo SGFunctions::noticeForShortcode();
5
- }
6
-
7
- $content = @$sgPopupDataHtml;
8
- $editorId = 'sg_popup_html';
9
- $settings = array(
10
- 'wpautop' => false,
11
- 'tinymce' => array(
12
- 'width' => '100%',
13
- ),
14
- 'textarea_rows' => '6',
15
- 'media_buttons' => true
16
- );
17
- wp_editor($content, $editorId, $settings);
18
- ?>
19
  </div>
1
+ <div class="sg-wp-editor-container">
2
+ <?php
3
+ if(!SG_POPUP_PRO) {
4
+ echo SGFunctions::noticeForShortcode();
5
+ }
6
+
7
+ $content = @$sgPopupDataHtml;
8
+ $editorId = 'sg_popup_html';
9
+ $settings = array(
10
+ 'wpautop' => false,
11
+ 'tinymce' => array(
12
+ 'width' => '100%',
13
+ ),
14
+ 'textarea_rows' => '6',
15
+ 'media_buttons' => true
16
+ );
17
+ wp_editor($content, $editorId, $settings);
18
+ ?>
19
  </div>
files/main_section/image.php CHANGED
@@ -1,10 +1,10 @@
1
- <div class="sg-wp-editor-container">
2
- <h1 class="image-popup-headline">Please choose your picture</h1>
3
- <div class="image-uploader-wrapper">
4
- <input class="input-width-static" id="js-upload-image" type="text" size="36" name="ad_image" value="<?php echo esc_attr($sgPopupDataImage); ?>">
5
- <input id="js-upload-image-button" class="button" type="button" value="Select image">
6
- </div>
7
- <div class="show-image-contenier">
8
- <span class="no-image">(No image selected)</span>
9
- </div>
10
  </div>
1
+ <div class="sg-wp-editor-container">
2
+ <h1 class="image-popup-headline">Please choose your picture</h1>
3
+ <div class="image-uploader-wrapper">
4
+ <input class="input-width-static" id="js-upload-image" type="text" size="36" name="ad_image" value="<?php echo esc_attr($sgPopupDataImage); ?>">
5
+ <input id="js-upload-image-button" class="button" type="button" value="Select image">
6
+ </div>
7
+ <div class="show-image-contenier">
8
+ <span class="no-image">(No image selected)</span>
9
+ </div>
10
  </div>
files/main_section/shortcode.php CHANGED
@@ -1,2 +1,2 @@
1
- <span class="liquid-width">Enter shortcode:</span>
2
  <input class="input-width-static" type="text" name="shortcode" value="<?php echo esc_attr(@$sgPopupDataShortcode);?>"><br>
1
+ <span class="liquid-width">Enter shortcode:</span>
2
  <input class="input-width-static" type="text" name="shortcode" value="<?php echo esc_attr(@$sgPopupDataShortcode);?>"><br>
files/options_section/fblike.php CHANGED
@@ -1,26 +1,26 @@
1
- <div id="special-options">
2
- <div id="post-body" class="metabox-holder columns-2">
3
- <div id="postbox-container-2" class="postbox-container">
4
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
- <div class="postbox popup-builder-special-postbox">
6
- <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
- <h3 class="hndle ui-sortable-handle js-special-title">
8
- <span>
9
- <?php
10
- global $POPUP_TITLES;
11
- $popupTypeTitle = $POPUP_TITLES[$popupType];
12
- echo $popupTypeTitle." <span>options</span>";
13
- ?>
14
- </span>
15
- </h3>
16
- <div class="special-options-content">
17
- <span class="liquid-width">Url:</span>
18
- <input class="input-width-static" type="text" name="fblike-like-url" value="<?php echo esc_attr(@$sgFblikeurl); ?>">
19
- <span class="liquid-width">Layout:</span>
20
- <?php echo sgCreateSelect($sgFbLikeButtons,'fblike-layout',esc_html(@$sgFbLikeLayout)); ?>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
25
- </div>
26
  </div>
1
+ <div id="special-options">
2
+ <div id="post-body" class="metabox-holder columns-2">
3
+ <div id="postbox-container-2" class="postbox-container">
4
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
+ <div class="postbox popup-builder-special-postbox">
6
+ <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
+ <h3 class="hndle ui-sortable-handle js-special-title">
8
+ <span>
9
+ <?php
10
+ global $POPUP_TITLES;
11
+ $popupTypeTitle = $POPUP_TITLES[$popupType];
12
+ echo $popupTypeTitle." <span>options</span>";
13
+ ?>
14
+ </span>
15
+ </h3>
16
+ <div class="special-options-content">
17
+ <span class="liquid-width">Url:</span>
18
+ <input class="input-width-static" type="text" name="fblike-like-url" value="<?php echo esc_attr(@$sgFblikeurl); ?>">
19
+ <span class="liquid-width">Layout:</span>
20
+ <?php echo sgCreateSelect($sgFbLikeButtons,'fblike-layout',esc_html(@$sgFbLikeLayout)); ?>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
  </div>
files/options_section/html.php CHANGED
@@ -1,25 +1,25 @@
1
- <div id="special-options">
2
- <div id="post-body" class="metabox-holder columns-2">
3
- <div id="postbox-container-2" class="postbox-container">
4
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
- <div class="postbox popup-builder-special-postbox">
6
- <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
- <h3 class="hndle ui-sortable-handle js-special-title">
8
- <span>
9
- <?php
10
- global $POPUP_TITLES;
11
- $popupTypeTitle = $POPUP_TITLES[$popupType];
12
- echo $popupTypeTitle." <span>options</span>";
13
- ?>
14
- </span>
15
- </h3>
16
- <div class="inside">
17
- <div class="special-options-content">
18
- <p>No options</p>
19
- </div>
20
- </div>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
25
  </div>
1
+ <div id="special-options">
2
+ <div id="post-body" class="metabox-holder columns-2">
3
+ <div id="postbox-container-2" class="postbox-container">
4
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
+ <div class="postbox popup-builder-special-postbox">
6
+ <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
+ <h3 class="hndle ui-sortable-handle js-special-title">
8
+ <span>
9
+ <?php
10
+ global $POPUP_TITLES;
11
+ $popupTypeTitle = $POPUP_TITLES[$popupType];
12
+ echo $popupTypeTitle." <span>options</span>";
13
+ ?>
14
+ </span>
15
+ </h3>
16
+ <div class="inside">
17
+ <div class="special-options-content">
18
+ <p>No options</p>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
  </div>
files/options_section/image.php CHANGED
@@ -1,25 +1,25 @@
1
- <div id="special-options">
2
- <div id="post-body" class="metabox-holder columns-2">
3
- <div id="postbox-container-2" class="postbox-container">
4
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
- <div class="postbox popup-builder-special-postbox">
6
- <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
- <h3 class="hndle ui-sortable-handle js-special-title">
8
- <span>
9
- <?php
10
- global $POPUP_TITLES;
11
- $popupTypeTitle = $POPUP_TITLES[$popupType];
12
- echo $popupTypeTitle." <span>options</span>";
13
- ?>
14
- </span>
15
- </h3>
16
- <div class="inside">
17
- <div class="special-options-content">
18
- <p>No options</p>
19
- </div>
20
- </div>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
25
  </div>
1
+ <div id="special-options">
2
+ <div id="post-body" class="metabox-holder columns-2">
3
+ <div id="postbox-container-2" class="postbox-container">
4
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
+ <div class="postbox popup-builder-special-postbox">
6
+ <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
+ <h3 class="hndle ui-sortable-handle js-special-title">
8
+ <span>
9
+ <?php
10
+ global $POPUP_TITLES;
11
+ $popupTypeTitle = $POPUP_TITLES[$popupType];
12
+ echo $popupTypeTitle." <span>options</span>";
13
+ ?>
14
+ </span>
15
+ </h3>
16
+ <div class="inside">
17
+ <div class="special-options-content">
18
+ <p>No options</p>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
  </div>
files/options_section/shortcode.php CHANGED
@@ -1,25 +1,25 @@
1
- <div id="special-options">
2
- <div id="post-body" class="metabox-holder columns-2">
3
- <div id="postbox-container-2" class="postbox-container">
4
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
- <div class="postbox popup-builder-special-postbox">
6
- <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
- <h3 class="hndle ui-sortable-handle js-special-title">
8
- <span>
9
- <?php
10
- global $POPUP_TITLES;
11
- $popupTypeTitle = $POPUP_TITLES[$popupType];
12
- echo $popupTypeTitle." <span>options</span>";
13
- ?>
14
- </span>
15
- </h3>
16
- <div class="inside">
17
- <div class="special-options-content">
18
- <p>No options</p>
19
- </div>
20
- </div>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
25
  </div>
1
+ <div id="special-options">
2
+ <div id="post-body" class="metabox-holder columns-2">
3
+ <div id="postbox-container-2" class="postbox-container">
4
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
5
+ <div class="postbox popup-builder-special-postbox">
6
+ <div class="handlediv js-special-title" title="Click to toggle"><br></div>
7
+ <h3 class="hndle ui-sortable-handle js-special-title">
8
+ <span>
9
+ <?php
10
+ global $POPUP_TITLES;
11
+ $popupTypeTitle = $POPUP_TITLES[$popupType];
12
+ echo $popupTypeTitle." <span>options</span>";
13
+ ?>
14
+ </span>
15
+ </h3>
16
+ <div class="inside">
17
+ <div class="special-options-content">
18
+ <p>No options</p>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
  </div>
files/sg_admin_post.php CHANGED
@@ -1,112 +1,112 @@
1
- <?php
2
- function sgGetCsvFile() {
3
- global $wpdb;
4
- $content = '';
5
- $sql = "SHOW COLUMNS FROM ". $wpdb->prefix ."sg_subscribers";
6
- $rows = $wpdb->get_results($sql, ARRAY_A);
7
- foreach ($rows as $value) {
8
- $content .= $value['Field'].",";
9
- }
10
- $content .= "\n";
11
-
12
- $sql = "Select * from ". $wpdb->prefix ."sg_subscribers";
13
- $subscribers = $wpdb->get_results($sql, ARRAY_A);
14
-
15
- foreach($subscribers as $values) {
16
- foreach ($values as $value) {
17
- $content .= $value.',';
18
- }
19
- $content .= "\n";
20
- }
21
-
22
- header("Pragma: public");
23
- header("Expires: 0");
24
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
25
- header("Cache-Control: private", false);
26
- header("Content-Type: application/octet-stream");
27
- header("Content-Disposition: attachment; filename=\"subscribersList.csv\";" );
28
- header("Content-Transfer-Encoding: binary");
29
- echo $content;
30
- }
31
-
32
- add_action('admin_post_csv_file', 'sgGetCsvFile');
33
-
34
- function sgDeleteSubscribe() {
35
- global $wpdb;
36
- $id = $_GET['id'];
37
- $wpdb->query(
38
- $wpdb->prepare(
39
- "DELETE FROM ". $wpdb->prefix ."sg_subscribers WHERE id = %d"
40
- ,$id
41
- )
42
- );
43
- wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=subscribers");
44
- }
45
-
46
- add_action('admin_post_subscribe_delete', 'sgDeleteSubscribe');
47
-
48
- function sgPopupClone() {
49
- $id = $_GET['id'];
50
- $obj = SGPopup::findById($id);
51
- $title = $obj->getTitle();
52
- $title .= "(clone)";
53
- $obj->setId("");
54
- $obj->setTitle($title);
55
- $obj->save();
56
- wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=PopupBuilder");
57
- }
58
-
59
- add_action('admin_post_popup_clone', 'sgPopupClone');
60
-
61
- function sgPopupDataExport() {
62
- global $wpdb;
63
-
64
- $exportArray = array();
65
- $mainTable = PopupInstaller::$maintablename;
66
-
67
- $popupDataSql = "SELECT * FROM ".$wpdb->prefix.$mainTable;
68
- $getAllPopupData = $wpdb->get_results($popupDataSql, ARRAY_A);
69
- foreach ($getAllPopupData as $popupData) {
70
- $type = $popupData['type'];
71
- $id = $popupData['id'];
72
- if ($type == 'ageRestriction') {
73
- $type = "age_restriction";
74
- }
75
- else if($type == 'exitIntent') {
76
- $type = "exit_intent";
77
- }
78
- else if($type == 'contactForm') {
79
- $type = "contact_form";
80
- }
81
- $table = "sg_".$type."_popup";
82
- $tableName = $wpdb->prefix.$table;
83
-
84
- $chieldPopupDataSql = "SELECT * FROM ".$tableName;
85
- $chieldPopupData = $wpdb->get_results($chieldPopupDataSql, ARRAY_A);
86
-
87
- $getRowsSql = "SHOW COLUMNS FROM ".$tableName;
88
- $chiledRows = $wpdb->get_results($getRowsSql, ARRAY_A);
89
-
90
- unset($chieldPopupData[0]['id']);
91
- //unset($chiledRows[0]);
92
-
93
- $exportArray[] = array(
94
- 'mainPopupData' => $popupData,
95
- 'childData' => $chieldPopupData,
96
- 'chiledColums' => $chiledRows,
97
- 'childTableName' => $table
98
- );
99
- }
100
-
101
- header("Pragma: public");
102
- header("Expires: 0");
103
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
104
- header("Cache-Control: private", false);
105
- header("Content-Type: application/octet-stream");
106
- header("Content-Disposition: attachment; filename=\"sgexportdata.txt\";" );
107
- header("Content-Transfer-Encoding: binary");
108
- echo serialize($exportArray);
109
- }
110
-
111
- add_action('admin_post_popup_export', 'sgPopupDataExport');
112
-
1
+ <?php
2
+ function sgGetCsvFile() {
3
+ global $wpdb;
4
+ $content = '';
5
+ $sql = "SHOW COLUMNS FROM ". $wpdb->prefix ."sg_subscribers";
6
+ $rows = $wpdb->get_results($sql, ARRAY_A);
7
+ foreach ($rows as $value) {
8
+ $content .= $value['Field'].",";
9
+ }
10
+ $content .= "\n";
11
+
12
+ $sql = "Select * from ". $wpdb->prefix ."sg_subscribers";
13
+ $subscribers = $wpdb->get_results($sql, ARRAY_A);
14
+
15
+ foreach($subscribers as $values) {
16
+ foreach ($values as $value) {
17
+ $content .= $value.',';
18
+ }
19
+ $content .= "\n";
20
+ }
21
+
22
+ header("Pragma: public");
23
+ header("Expires: 0");
24
+ header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
25
+ header("Cache-Control: private", false);
26
+ header("Content-Type: application/octet-stream");
27
+ header("Content-Disposition: attachment; filename=\"subscribersList.csv\";" );
28
+ header("Content-Transfer-Encoding: binary");
29
+ echo $content;
30
+ }
31
+
32
+ add_action('admin_post_csv_file', 'sgGetCsvFile');
33
+
34
+ function sgDeleteSubscribe() {
35
+ global $wpdb;
36
+ $id = $_GET['id'];
37
+ $wpdb->query(
38
+ $wpdb->prepare(
39
+ "DELETE FROM ". $wpdb->prefix ."sg_subscribers WHERE id = %d"
40
+ ,$id
41
+ )
42
+ );
43
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=subscribers");
44
+ }
45
+
46
+ add_action('admin_post_subscribe_delete', 'sgDeleteSubscribe');
47
+
48
+ function sgPopupClone() {
49
+ $id = $_GET['id'];
50
+ $obj = SGPopup::findById($id);
51
+ $title = $obj->getTitle();
52
+ $title .= "(clone)";
53
+ $obj->setId("");
54
+ $obj->setTitle($title);
55
+ $obj->save();
56
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=PopupBuilder");
57
+ }
58
+
59
+ add_action('admin_post_popup_clone', 'sgPopupClone');
60
+
61
+ function sgPopupDataExport() {
62
+ global $wpdb;
63
+
64
+ $exportArray = array();
65
+ $mainTable = PopupInstaller::$maintablename;
66
+
67
+ $popupDataSql = "SELECT * FROM ".$wpdb->prefix.$mainTable;
68
+ $getAllPopupData = $wpdb->get_results($popupDataSql, ARRAY_A);
69
+ foreach ($getAllPopupData as $popupData) {
70
+ $type = $popupData['type'];
71
+ $id = $popupData['id'];
72
+ if ($type == 'ageRestriction') {
73
+ $type = "age_restriction";
74
+ }
75
+ else if($type == 'exitIntent') {
76
+ $type = "exit_intent";
77
+ }
78
+ else if($type == 'contactForm') {
79
+ $type = "contact_form";
80
+ }
81
+ $table = "sg_".$type."_popup";
82
+ $tableName = $wpdb->prefix.$table;
83
+
84
+ $chieldPopupDataSql = "SELECT * FROM ".$tableName;
85
+ $chieldPopupData = $wpdb->get_results($chieldPopupDataSql, ARRAY_A);
86
+
87
+ $getRowsSql = "SHOW COLUMNS FROM ".$tableName;
88
+ $chiledRows = $wpdb->get_results($getRowsSql, ARRAY_A);
89
+
90
+ unset($chieldPopupData[0]['id']);
91
+ //unset($chiledRows[0]);
92
+
93
+ $exportArray[] = array(
94
+ 'mainPopupData' => $popupData,
95
+ 'childData' => $chieldPopupData,
96
+ 'chiledColums' => $chiledRows,
97
+ 'childTableName' => $table
98
+ );
99
+ }
100
+
101
+ header("Pragma: public");
102
+ header("Expires: 0");
103
+ header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
104
+ header("Cache-Control: private", false);
105
+ header("Content-Type: application/octet-stream");
106
+ header("Content-Disposition: attachment; filename=\"sgexportdata.txt\";" );
107
+ header("Content-Transfer-Encoding: binary");
108
+ echo serialize($exportArray);
109
+ }
110
+
111
+ add_action('admin_post_popup_export', 'sgPopupDataExport');
112
+
files/sg_functions.php CHANGED
@@ -1,350 +1,350 @@
1
- <?php
2
- class SGFunctions
3
- {
4
- public static function showInfo()
5
- {
6
- $sgInfo = '';
7
- $divisor = "<span class=\"info-vertical-divisor\">|</span>";
8
- $sgInfo .= "<span>If you like the plugin, please <a href=\"https://wordpress.org/support/view/plugin-reviews/popup-builder?filter=5\" target=\"_blank\">rate it 5 stars</a></span>".$divisor;
9
- $sgInfo .= "<a href=\"https://wordpress.org/support/plugin/popup-builder\" target=\"_blank\">Support</a>".$divisor;
10
- $sgInfo .= "<a href=\"https://www.youtube.com/watch?v=3ZwRKPhHMzY\" target=\"_blank\">How to create a popup</a>";
11
- echo $sgInfo;
12
- }
13
-
14
- public static function addReview() {
15
- return '<div class="updated updated notice is-dismissible reviewPanel sg-review-panel">
16
- <div class="reviewPanelContent">
17
- <span class="reviewPanelSpan">
18
- Dear user, we always do our best to help you and your opinion is very important for us!
19
- </span></br>
20
- <span class="reviewPanelSpan">
21
- So if you liked our <b>Social Media Plugin</b> and if our support was helpful for you, we\'ll be thankful if you go ahead and leave a review.
22
- </span>
23
- <span class="reviewPanelSpan">
24
- Please <a class="reviewPanelHref" href="https://wordpress.org/support/view/plugin-reviews/popup-builder?filter=5" target=\"_blank\">rate it 5 stars.</a>
25
- </span>
26
- </div>
27
- <span class="reviewPanelClose">Dont show again</span>
28
- <button type="button" class="notice-dismiss closeButton"></button>
29
- </div>';
30
- }
31
-
32
-
33
- public static function noticeForShortcode() {
34
- $notice = '<span class="shortcode-use-info">NOTE: Shortcodes doesn\'t work inside the HTML Popup. Please use <a href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=shortcode">Shortcode Popup</a> instead.</span>';
35
- return $notice;
36
- }
37
-
38
- public static function sgCreateRadioElements($radioElements, $checkedValue)
39
- {
40
- $content = '';
41
- for ($i = 0; $i < count($radioElements); $i++) {
42
- $checked = '';
43
- $br = '';
44
- $radioElement = @$radioElements[$i];
45
- $name = @$radioElement['name'];
46
- $label = @$radioElement['label'];
47
- $value = @$radioElement['value'];
48
- $brValue = @$radioElement['newline'];
49
- $additionalHtml = @$radioElement['additionalHtml'];
50
- if($checkedValue == $value) {
51
- $checked = 'checked';
52
- }
53
- if($brValue) {
54
- $br = "<br>";
55
- }
56
- $content .= '<input class="radio-btn-fix" type="radio" name="'.$name.'" value="'.$value.'" '.$checked.'>';
57
- $content .= $additionalHtml.$br;
58
- }
59
- return $content;
60
- }
61
-
62
- public static function getUserIpAdress() {
63
- $ipaddress = '';
64
- if (getenv('HTTP_CLIENT_IP'))
65
- $ipaddress = getenv('HTTP_CLIENT_IP');
66
- else if(getenv('HTTP_X_FORWARDED_FOR'))
67
- $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
68
- else if(getenv('HTTP_X_FORWARDED'))
69
- $ipaddress = getenv('HTTP_X_FORWARDED');
70
- else if(getenv('HTTP_FORWARDED_FOR'))
71
- $ipaddress = getenv('HTTP_FORWARDED_FOR');
72
- else if(getenv('HTTP_FORWARDED'))
73
- $ipaddress = getenv('HTTP_FORWARDED');
74
- else if(getenv('REMOTE_ADDR'))
75
- $ipaddress = getenv('REMOTE_ADDR');
76
- else
77
- $ipaddress = 'UNKNOWN';
78
- return $ipaddress;
79
- }
80
-
81
- public static function allowPageCountry($popupId) {
82
- $ip = SGFunctions::getUserIpAdress();
83
- $details = wp_remote_get('https://www.sygnoos.com/ip2data/?ip='.$ip);
84
- if(!is_array($details)) {
85
- return true;
86
- }
87
- $dataIp = json_decode($details['body'], true);
88
- if(!is_array($dataIp)) {
89
- return true;
90
- }
91
- $counrty = @$dataIp['country'];
92
- $returnData = SGPopup::showPopupForCounrty($counrty, $popupId);
93
- return $returnData;
94
- }
95
-
96
- public static function countrisSelect() {
97
-
98
- return '<select id="sameWidthinputs" name="countris" class="optionsCountry" data-role="tagsinput">
99
- <option value="AF">Afghanistan</option>
100
- <option value="AX">Åland Islands</option>
101
- <option value="AL">Albania</option>
102
- <option value="DZ">Algeria</option>
103
- <option value="AS">American Samoa</option>
104
- <option value="AD">Andorra</option>
105
- <option value="AO">Angola</option>
106
- <option value="AI">Anguilla</option>
107
- <option value="AQ">Antarctica</option>
108
- <option value="AG">Antigua and Barbuda</option>
109
- <option value="AR">Argentina</option>
110
- <option value="AM">Armenia</option>
111
- <option value="AW">Aruba</option>
112
- <option value="AU">Australia</option>
113
- <option value="AT">Austria</option>
114
- <option value="AZ">Azerbaijan</option>
115
- <option value="BS">Bahamas</option>
116
- <option value="BH">Bahrain</option>
117
- <option value="BD">Bangladesh</option>
118
- <option value="BB">Barbados</option>
119
- <option value="BY">Belarus</option>
120
- <option value="BE">Belgium</option>
121
- <option value="BZ">Belize</option>
122
- <option value="BJ">Benin</option>
123
- <option value="BM">Bermuda</option>
124
- <option value="BT">Bhutan</option>
125
- <option value="BO">Bolivia, Plurinational State of</option>
126
- <option value="BQ">Bonaire, Sint Eustatius and Saba</option>
127
- <option value="BA">Bosnia and Herzegovina</option>
128
- <option value="BW">Botswana</option>
129
- <option value="BV">Bouvet Island</option>
130
- <option value="BR">Brazil</option>
131
- <option value="IO">British Indian Ocean Territory</option>
132
- <option value="BN">Brunei Darussalam</option>
133
- <option value="BG">Bulgaria</option>
134
- <option value="BF">Burkina Faso</option>
135
- <option value="BI">Burundi</option>
136
- <option value="KH">Cambodia</option>
137
- <option value="CM">Cameroon</option>
138
- <option value="CA">Canada</option>
139
- <option value="CV">Cape Verde</option>
140
- <option value="KY">Cayman Islands</option>
141
- <option value="CF">Central African Republic</option>
142
- <option value="TD">Chad</option>
143
- <option value="CL">Chile</option>
144
- <option value="CN">China</option>
145
- <option value="CX">Christmas Island</option>
146
- <option value="CC">Cocos (Keeling) Islands</option>
147
- <option value="CO">Colombia</option>
148
- <option value="KM">Comoros</option>
149
- <option value="CG">Congo</option>
150
- <option value="CD">Congo, the Democratic Republic of the</option>
151
- <option value="CK">Cook Islands</option>
152
- <option value="CR">Costa Rica</option>
153
- <option value="CI">Côte d\'Ivoire</option>
154
- <option value="HR">Croatia</option>
155
- <option value="CU">Cuba</option>
156
- <option value="CW">Curaçao</option>
157
- <option value="CY">Cyprus</option>
158
- <option value="CZ">Czech Republic</option>
159
- <option value="DK">Denmark</option>
160
- <option value="DJ">Djibouti</option>
161
- <option value="DM">Dominica</option>
162
- <option value="DO">Dominican Republic</option>
163
- <option value="EC">Ecuador</option>
164
- <option value="EG">Egypt</option>
165
- <option value="SV">El Salvador</option>
166
- <option value="GQ">Equatorial Guinea</option>
167
- <option value="ER">Eritrea</option>
168
- <option value="EE">Estonia</option>
169
- <option value="ET">Ethiopia</option>
170
- <option value="FK">Falkland Islands (Malvinas)</option>
171
- <option value="FO">Faroe Islands</option>
172
- <option value="FJ">Fiji</option>
173
- <option value="FI">Finland</option>
174
- <option value="FR">France</option>
175
- <option value="GF">French Guiana</option>
176
- <option value="PF">French Polynesia</option>
177
- <option value="TF">French Southern Territories</option>
178
- <option value="GA">Gabon</option>
179
- <option value="GM">Gambia</option>
180
- <option value="GE">Georgia</option>
181
- <option value="DE">Germany</option>
182
- <option value="GH">Ghana</option>
183
- <option value="GI">Gibraltar</option>
184
- <option value="GR">Greece</option>
185
- <option value="GL">Greenland</option>
186
- <option value="GD">Grenada</option>
187
- <option value="GP">Guadeloupe</option>
188
- <option value="GU">Guam</option>
189
- <option value="GT">Guatemala</option>
190
- <option value="GG">Guernsey</option>
191
- <option value="GN">Guinea</option>
192
- <option value="GW">Guinea-Bissau</option>
193
- <option value="GY">Guyana</option>
194
- <option value="HT">Haiti</option>
195
- <option value="HM">Heard Island and McDonald Islands</option>
196
- <option value="VA">Holy See (Vatican City State)</option>
197
- <option value="HN">Honduras</option>
198
- <option value="HK">Hong Kong</option>
199
- <option value="HU">Hungary</option>
200
- <option value="IS">Iceland</option>
201
- <option value="IN">India</option>
202
- <option value="ID">Indonesia</option>
203
- <option value="IR">Iran, Islamic Republic of</option>
204
- <option value="IQ">Iraq</option>
205
- <option value="IE">Ireland</option>
206
- <option value="IM">Isle of Man</option>
207
- <option value="IL">Israel</option>
208
- <option value="IT">Italy</option>
209
- <option value="JM">Jamaica</option>
210
- <option value="JP">Japan</option>
211
- <option value="JE">Jersey</option>
212
- <option value="JO">Jordan</option>
213
- <option value="KZ">Kazakhstan</option>
214
- <option value="KE">Kenya</option>
215
- <option value="KI">Kiribati</option>
216
- <option value="KP">Korea, Democratic People\'s Republic of</option>
217
- <option value="KR">Korea, Republic of</option>
218
- <option value="KW">Kuwait</option>
219
- <option value="KG">Kyrgyzstan</option>
220
- <option value="LA">Lao People\'s Democratic Republic</option>
221
- <option value="LV">Latvia</option>
222
- <option value="LB">Lebanon</option>
223
- <option value="LS">Lesotho</option>
224
- <option value="LR">Liberia</option>
225
- <option value="LY">Libya</option>
226
- <option value="LI">Liechtenstein</option>
227
- <option value="LT">Lithuania</option>
228
- <option value="LU">Luxembourg</option>
229
- <option value="MO">Macao</option>
230
- <option value="MK">Macedonia, the former Yugoslav Republic of</option>
231
- <option value="MG">Madagascar</option>
232
- <option value="MW">Malawi</option>
233
- <option value="MY">Malaysia</option>
234
- <option value="MV">Maldives</option>
235
- <option value="ML">Mali</option>
236
- <option value="MT">Malta</option>
237
- <option value="MH">Marshall Islands</option>
238
- <option value="MQ">Martinique</option>
239
- <option value="MR">Mauritania</option>
240
- <option value="MU">Mauritius</option>
241
- <option value="YT">Mayotte</option>
242
- <option value="MX">Mexico</option>
243
- <option value="FM">Micronesia, Federated States of</option>
244
- <option value="MD">Moldova, Republic of</option>
245
- <option value="MC">Monaco</option>
246
- <option value="MN">Mongolia</option>
247
- <option value="ME">Montenegro</option>
248
- <option value="MS">Montserrat</option>
249
- <option value="MA">Morocco</option>
250
- <option value="MZ">Mozambique</option>
251
- <option value="MM">Myanmar</option>
252
- <option value="NA">Namibia</option>
253
- <option value="NR">Nauru</option>
254
- <option value="NP">Nepal</option>
255
- <option value="NL">Netherlands</option>
256
- <option value="NC">New Caledonia</option>
257
- <option value="NZ">New Zealand</option>
258
- <option value="NI">Nicaragua</option>
259
- <option value="NE">Niger</option>
260
- <option value="NG">Nigeria</option>
261
- <option value="NU">Niue</option>
262
- <option value="NF">Norfolk Island</option>
263
- <option value="MP">Northern Mariana Islands</option>
264
- <option value="NO">Norway</option>
265
- <option value="OM">Oman</option>
266
- <option value="PK">Pakistan</option>
267
- <option value="PW">Palau</option>
268
- <option value="PS">Palestinian Territory, Occupied</option>
269
- <option value="PA">Panama</option>
270
- <option value="PG">Papua New Guinea</option>
271
- <option value="PY">Paraguay</option>
272
- <option value="PE">Peru</option>
273
- <option value="PH">Philippines</option>
274
- <option value="PN">Pitcairn</option>
275
- <option value="PL">Poland</option>
276
- <option value="PT">Portugal</option>
277
- <option value="PR">Puerto Rico</option>
278
- <option value="QA">Qatar</option>
279
- <option value="RE">Réunion</option>
280
- <option value="RO">Romania</option>
281
- <option value="RU">Russian Federation</option>
282
- <option value="RW">Rwanda</option>
283
- <option value="BL">Saint Barthélemy</option>
284
- <option value="SH">Saint Helena, Ascension and Tristan da Cunha</option>
285
- <option value="KN">Saint Kitts and Nevis</option>
286
- <option value="LC">Saint Lucia</option>
287
- <option value="MF">Saint Martin (French part)</option>
288
- <option value="PM">Saint Pierre and Miquelon</option>
289
- <option value="VC">Saint Vincent and the Grenadines</option>
290
- <option value="WS">Samoa</option>
291
- <option value="SM">San Marino</option>
292
- <option value="ST">Sao Tome and Principe</option>
293
- <option value="SA">Saudi Arabia</option>
294
- <option value="SN">Senegal</option>
295
- <option value="RS">Serbia</option>
296
- <option value="SC">Seychelles</option>
297
- <option value="SL">Sierra Leone</option>
298
- <option value="SG">Singapore</option>
299
- <option value="SX">Sint Maarten (Dutch part)</option>
300
- <option value="SK">Slovakia</option>
301
- <option value="SI">Slovenia</option>
302
- <option value="SB">Solomon Islands</option>
303
- <option value="SO">Somalia</option>
304
- <option value="ZA">South Africa</option>
305
- <option value="GS">South Georgia and the South Sandwich Islands</option>
306
- <option value="SS">South Sudan</option>
307
- <option value="ES">Spain</option>
308
- <option value="LK">Sri Lanka</option>
309
- <option value="SD">Sudan</option>
310
- <option value="SR">Suriname</option>
311
- <option value="SJ">Svalbard and Jan Mayen</option>
312
- <option value="SZ">Swaziland</option>
313
- <option value="SE">Sweden</option>
314
- <option value="CH">Switzerland</option>
315
- <option value="SY">Syrian Arab Republic</option>
316
- <option value="TW">Taiwan, Province of China</option>
317
- <option value="TJ">Tajikistan</option>
318
- <option value="TZ">Tanzania, United Republic of</option>
319
- <option value="TH">Thailand</option>
320
- <option value="TL">Timor-Leste</option>
321
- <option value="TG">Togo</option>
322
- <option value="TK">Tokelau</option>
323
- <option value="TO">Tonga</option>
324
- <option value="TT">Trinidad and Tobago</option>
325
- <option value="TN">Tunisia</option>
326
- <option value="TR">Turkey</option>
327
- <option value="TM">Turkmenistan</option>
328
- <option value="TC">Turks and Caicos Islands</option>
329
- <option value="TV">Tuvalu</option>
330
- <option value="UG">Uganda</option>
331
- <option value="UA">Ukraine</option>
332
- <option value="AE">United Arab Emirates</option>
333
- <option value="GB">United Kingdom</option>
334
- <option value="US">United States</option>
335
- <option value="UM">United States Minor Outlying Islands</option>
336
- <option value="UY">Uruguay</option>
337
- <option value="UZ">Uzbekistan</option>
338
- <option value="VU">Vanuatu</option>
339
- <option value="VE">Venezuela, Bolivarian Republic of</option>
340
- <option value="VN">Viet Nam</option>
341
- <option value="VG">Virgin Islands, British</option>
342
- <option value="VI">Virgin Islands, U.S.</option>
343
- <option value="WF">Wallis and Futuna</option>
344
- <option value="EH">Western Sahara</option>
345
- <option value="YE">Yemen</option>
346
- <option value="ZM">Zambia</option>
347
- <option value="ZW">Zimbabwe</option>
348
- </select>';
349
- }
350
- }
1
+ <?php
2
+ class SGFunctions
3
+ {
4
+ public static function showInfo()
5
+ {
6
+ $sgInfo = '';
7
+ $divisor = "<span class=\"info-vertical-divisor\">|</span>";
8
+ $sgInfo .= "<span>If you like the plugin, please <a href=\"https://wordpress.org/support/view/plugin-reviews/popup-builder?filter=5\" target=\"_blank\">rate it 5 stars</a></span>".$divisor;
9
+ $sgInfo .= "<a href=\"https://wordpress.org/support/plugin/popup-builder\" target=\"_blank\">Support</a>".$divisor;
10
+ $sgInfo .= "<a href=\"https://www.youtube.com/watch?v=3ZwRKPhHMzY\" target=\"_blank\">How to create a popup</a>";
11
+ echo $sgInfo;
12
+ }
13
+
14
+ public static function addReview()
15
+ {
16
+ return '<div class="updated updated notice is-dismissible reviewPanel">
17
+ <div class="reviewPanelContent">
18
+ <span class="reviewPanelSpan">
19
+ Dear user, we always do our best to help you and your opinion is very important for us!
20
+ </span></br>
21
+ <span class="reviewPanelSpan">
22
+ So if you liked our <b>Popup Builder Plugin</b> and if our support was helpful for you, we\'ll be thankful if you go ahead and leave a review.
23
+ </span>
24
+ <span class="reviewPanelSpan">
25
+ Please <a class="reviewPanelHref" href="https://wordpress.org/support/view/plugin-reviews/popup-builder?filter=5" target=\"_blank\">rate it 5 stars.</a>
26
+ </span>
27
+ </div>
28
+ <span class="reviewPanelClose">Dont show again</span>
29
+ <button type="button" class="notice-dismiss closeButton"></button>
30
+ </div>';
31
+ }
32
+
33
+ public static function noticeForShortcode() {
34
+ $notice = '<span class="shortcode-use-info">NOTE: Shortcodes doesn\'t work inside the HTML Popup. Please use <a href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=shortcode">Shortcode Popup</a> instead.</span>';
35
+ return $notice;
36
+ }
37
+
38
+ public static function sgCreateRadioElements($radioElements, $checkedValue)
39
+ {
40
+ $content = '';
41
+ for ($i = 0; $i < count($radioElements); $i++) {
42
+ $checked = '';
43
+ $br = '';
44
+ $radioElement = @$radioElements[$i];
45
+ $name = @$radioElement['name'];
46
+ $label = @$radioElement['label'];
47
+ $value = @$radioElement['value'];
48
+ $brValue = @$radioElement['newline'];
49
+ $additionalHtml = @$radioElement['additionalHtml'];
50
+ if($checkedValue == $value) {
51
+ $checked = 'checked';
52
+ }
53
+ if($brValue) {
54
+ $br = "<br>";
55
+ }
56
+ $content .= '<input class="radio-btn-fix" type="radio" name="'.$name.'" value="'.$value.'" '.$checked.'>';
57
+ $content .= $additionalHtml.$br;
58
+ }
59
+ return $content;
60
+ }
61
+
62
+ public static function getUserIpAdress() {
63
+ $ipaddress = '';
64
+ if (getenv('HTTP_CLIENT_IP'))
65
+ $ipaddress = getenv('HTTP_CLIENT_IP');
66
+ else if(getenv('HTTP_X_FORWARDED_FOR'))
67
+ $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
68
+ else if(getenv('HTTP_X_FORWARDED'))
69
+ $ipaddress = getenv('HTTP_X_FORWARDED');
70
+ else if(getenv('HTTP_FORWARDED_FOR'))
71
+ $ipaddress = getenv('HTTP_FORWARDED_FOR');
72
+ else if(getenv('HTTP_FORWARDED'))
73
+ $ipaddress = getenv('HTTP_FORWARDED');
74
+ else if(getenv('REMOTE_ADDR'))
75
+ $ipaddress = getenv('REMOTE_ADDR');
76
+ else
77
+ $ipaddress = 'UNKNOWN';
78
+ return $ipaddress;
79
+ }
80
+
81
+ public static function allowPageCountry($popupId) {
82
+ $ip = SGFunctions::getUserIpAdress();
83
+ $details = wp_remote_get('https://www.sygnoos.com/ip2data/?ip='.$ip);
84
+ if(!is_array($details)) {
85
+ return true;
86
+ }
87
+ $dataIp = json_decode($details['body'], true);
88
+ if(!is_array($dataIp)) {
89
+ return true;
90
+ }
91
+ $counrty = @$dataIp['country'];
92
+ $returnData = SGPopup::showPopupForCounrty($counrty, $popupId);
93
+ return $returnData;
94
+ }
95
+
96
+ public static function countrisSelect() {
97
+
98
+ return '<select id="sameWidthinputs" name="countris" class="optionsCountry" data-role="tagsinput">
99
+ <option value="AF">Afghanistan</option>
100
+ <option value="AX">Åland Islands</option>
101
+ <option value="AL">Albania</option>
102
+ <option value="DZ">Algeria</option>
103
+ <option value="AS">American Samoa</option>
104
+ <option value="AD">Andorra</option>
105
+ <option value="AO">Angola</option>
106
+ <option value="AI">Anguilla</option>
107
+ <option value="AQ">Antarctica</option>
108
+ <option value="AG">Antigua and Barbuda</option>
109
+ <option value="AR">Argentina</option>
110
+ <option value="AM">Armenia</option>
111
+ <option value="AW">Aruba</option>
112
+ <option value="AU">Australia</option>
113
+ <option value="AT">Austria</option>
114
+ <option value="AZ">Azerbaijan</option>
115
+ <option value="BS">Bahamas</option>
116
+ <option value="BH">Bahrain</option>
117
+ <option value="BD">Bangladesh</option>
118
+ <option value="BB">Barbados</option>
119
+ <option value="BY">Belarus</option>
120
+ <option value="BE">Belgium</option>
121
+ <option value="BZ">Belize</option>
122
+ <option value="BJ">Benin</option>
123
+ <option value="BM">Bermuda</option>
124
+ <option value="BT">Bhutan</option>
125
+ <option value="BO">Bolivia, Plurinational State of</option>
126
+ <option value="BQ">Bonaire, Sint Eustatius and Saba</option>
127
+ <option value="BA">Bosnia and Herzegovina</option>
128
+ <option value="BW">Botswana</option>
129
+ <option value="BV">Bouvet Island</option>
130
+ <option value="BR">Brazil</option>
131
+ <option value="IO">British Indian Ocean Territory</option>
132
+ <option value="BN">Brunei Darussalam</option>
133
+ <option value="BG">Bulgaria</option>
134
+ <option value="BF">Burkina Faso</option>
135
+ <option value="BI">Burundi</option>
136
+ <option value="KH">Cambodia</option>
137
+ <option value="CM">Cameroon</option>
138
+ <option value="CA">Canada</option>
139
+ <option value="CV">Cape Verde</option>
140
+ <option value="KY">Cayman Islands</option>
141
+ <option value="CF">Central African Republic</option>
142
+ <option value="TD">Chad</option>
143
+ <option value="CL">Chile</option>
144
+ <option value="CN">China</option>
145
+ <option value="CX">Christmas Island</option>
146
+ <option value="CC">Cocos (Keeling) Islands</option>
147
+ <option value="CO">Colombia</option>
148
+ <option value="KM">Comoros</option>
149
+ <option value="CG">Congo</option>
150
+ <option value="CD">Congo, the Democratic Republic of the</option>
151
+ <option value="CK">Cook Islands</option>
152
+ <option value="CR">Costa Rica</option>
153
+ <option value="CI">Côte d\'Ivoire</option>
154
+ <option value="HR">Croatia</option>
155
+ <option value="CU">Cuba</option>
156
+ <option value="CW">Curaçao</option>
157
+ <option value="CY">Cyprus</option>
158
+ <option value="CZ">Czech Republic</option>
159
+ <option value="DK">Denmark</option>
160
+ <option value="DJ">Djibouti</option>
161
+ <option value="DM">Dominica</option>
162
+ <option value="DO">Dominican Republic</option>
163
+ <option value="EC">Ecuador</option>
164
+ <option value="EG">Egypt</option>
165
+ <option value="SV">El Salvador</option>
166
+ <option value="GQ">Equatorial Guinea</option>
167
+ <option value="ER">Eritrea</option>
168
+ <option value="EE">Estonia</option>
169
+ <option value="ET">Ethiopia</option>
170
+ <option value="FK">Falkland Islands (Malvinas)</option>
171
+ <option value="FO">Faroe Islands</option>
172
+ <option value="FJ">Fiji</option>
173
+ <option value="FI">Finland</option>
174
+ <option value="FR">France</option>
175
+ <option value="GF">French Guiana</option>
176
+ <option value="PF">French Polynesia</option>
177
+ <option value="TF">French Southern Territories</option>
178
+ <option value="GA">Gabon</option>
179
+ <option value="GM">Gambia</option>
180
+ <option value="GE">Georgia</option>
181
+ <option value="DE">Germany</option>
182
+ <option value="GH">Ghana</option>
183
+ <option value="GI">Gibraltar</option>
184
+ <option value="GR">Greece</option>
185
+ <option value="GL">Greenland</option>
186
+ <option value="GD">Grenada</option>
187
+ <option value="GP">Guadeloupe</option>
188
+ <option value="GU">Guam</option>
189
+ <option value="GT">Guatemala</option>
190
+ <option value="GG">Guernsey</option>
191
+ <option value="GN">Guinea</option>
192
+ <option value="GW">Guinea-Bissau</option>
193
+ <option value="GY">Guyana</option>
194
+ <option value="HT">Haiti</option>
195
+ <option value="HM">Heard Island and McDonald Islands</option>
196
+ <option value="VA">Holy See (Vatican City State)</option>
197
+ <option value="HN">Honduras</option>
198
+ <option value="HK">Hong Kong</option>
199
+ <option value="HU">Hungary</option>
200
+ <option value="IS">Iceland</option>
201
+ <option value="IN">India</option>
202
+ <option value="ID">Indonesia</option>
203
+ <option value="IR">Iran, Islamic Republic of</option>
204
+ <option value="IQ">Iraq</option>
205
+ <option value="IE">Ireland</option>
206
+ <option value="IM">Isle of Man</option>
207
+ <option value="IL">Israel</option>
208
+ <option value="IT">Italy</option>
209
+ <option value="JM">Jamaica</option>
210
+ <option value="JP">Japan</option>
211
+ <option value="JE">Jersey</option>
212
+ <option value="JO">Jordan</option>
213
+ <option value="KZ">Kazakhstan</option>
214
+ <option value="KE">Kenya</option>
215
+ <option value="KI">Kiribati</option>
216
+ <option value="KP">Korea, Democratic People\'s Republic of</option>
217
+ <option value="KR">Korea, Republic of</option>
218
+ <option value="KW">Kuwait</option>
219
+ <option value="KG">Kyrgyzstan</option>
220
+ <option value="LA">Lao People\'s Democratic Republic</option>
221
+ <option value="LV">Latvia</option>
222
+ <option value="LB">Lebanon</option>
223
+ <option value="LS">Lesotho</option>
224
+ <option value="LR">Liberia</option>
225
+ <option value="LY">Libya</option>
226
+ <option value="LI">Liechtenstein</option>
227
+ <option value="LT">Lithuania</option>
228
+ <option value="LU">Luxembourg</option>
229
+ <option value="MO">Macao</option>
230
+ <option value="MK">Macedonia, the former Yugoslav Republic of</option>
231
+ <option value="MG">Madagascar</option>
232
+ <option value="MW">Malawi</option>
233
+ <option value="MY">Malaysia</option>
234
+ <option value="MV">Maldives</option>
235
+ <option value="ML">Mali</option>
236
+ <option value="MT">Malta</option>
237
+ <option value="MH">Marshall Islands</option>
238
+ <option value="MQ">Martinique</option>
239
+ <option value="MR">Mauritania</option>
240
+ <option value="MU">Mauritius</option>
241
+ <option value="YT">Mayotte</option>
242
+ <option value="MX">Mexico</option>
243
+ <option value="FM">Micronesia, Federated States of</option>
244
+ <option value="MD">Moldova, Republic of</option>
245
+ <option value="MC">Monaco</option>
246
+ <option value="MN">Mongolia</option>
247
+ <option value="ME">Montenegro</option>
248
+ <option value="MS">Montserrat</option>
249
+ <option value="MA">Morocco</option>
250
+ <option value="MZ">Mozambique</option>
251
+ <option value="MM">Myanmar</option>
252
+ <option value="NA">Namibia</option>
253
+ <option value="NR">Nauru</option>
254
+ <option value="NP">Nepal</option>
255
+ <option value="NL">Netherlands</option>
256
+ <option value="NC">New Caledonia</option>
257
+ <option value="NZ">New Zealand</option>
258
+ <option value="NI">Nicaragua</option>
259
+ <option value="NE">Niger</option>
260
+ <option value="NG">Nigeria</option>
261
+ <option value="NU">Niue</option>
262
+ <option value="NF">Norfolk Island</option>
263
+ <option value="MP">Northern Mariana Islands</option>
264
+ <option value="NO">Norway</option>
265
+ <option value="OM">Oman</option>
266
+ <option value="PK">Pakistan</option>
267
+ <option value="PW">Palau</option>
268
+ <option value="PS">Palestinian Territory, Occupied</option>
269
+ <option value="PA">Panama</option>
270
+ <option value="PG">Papua New Guinea</option>
271
+ <option value="PY">Paraguay</option>
272
+ <option value="PE">Peru</option>
273
+ <option value="PH">Philippines</option>
274
+ <option value="PN">Pitcairn</option>
275
+ <option value="PL">Poland</option>
276
+ <option value="PT">Portugal</option>
277
+ <option value="PR">Puerto Rico</option>
278
+ <option value="QA">Qatar</option>
279
+ <option value="RE">Réunion</option>
280
+ <option value="RO">Romania</option>
281
+ <option value="RU">Russian Federation</option>
282
+ <option value="RW">Rwanda</option>
283
+ <option value="BL">Saint Barthélemy</option>
284
+ <option value="SH">Saint Helena, Ascension and Tristan da Cunha</option>
285
+ <option value="KN">Saint Kitts and Nevis</option>
286
+ <option value="LC">Saint Lucia</option>
287
+ <option value="MF">Saint Martin (French part)</option>
288
+ <option value="PM">Saint Pierre and Miquelon</option>
289
+ <option value="VC">Saint Vincent and the Grenadines</option>
290
+ <option value="WS">Samoa</option>
291
+ <option value="SM">San Marino</option>
292
+ <option value="ST">Sao Tome and Principe</option>
293
+ <option value="SA">Saudi Arabia</option>
294
+ <option value="SN">Senegal</option>
295
+ <option value="RS">Serbia</option>
296
+ <option value="SC">Seychelles</option>
297
+ <option value="SL">Sierra Leone</option>
298
+ <option value="SG">Singapore</option>
299
+ <option value="SX">Sint Maarten (Dutch part)</option>
300
+ <option value="SK">Slovakia</option>
301
+ <option value="SI">Slovenia</option>
302
+ <option value="SB">Solomon Islands</option>
303
+ <option value="SO">Somalia</option>
304
+ <option value="ZA">South Africa</option>
305
+ <option value="GS">South Georgia and the South Sandwich Islands</option>
306
+ <option value="SS">South Sudan</option>
307
+ <option value="ES">Spain</option>
308
+ <option value="LK">Sri Lanka</option>
309
+ <option value="SD">Sudan</option>
310
+ <option value="SR">Suriname</option>
311
+ <option value="SJ">Svalbard and Jan Mayen</option>
312
+ <option value="SZ">Swaziland</option>
313
+ <option value="SE">Sweden</option>
314
+ <option value="CH">Switzerland</option>
315
+ <option value="SY">Syrian Arab Republic</option>
316
+ <option value="TW">Taiwan, Province of China</option>
317
+ <option value="TJ">Tajikistan</option>
318
+ <option value="TZ">Tanzania, United Republic of</option>
319
+ <option value="TH">Thailand</option>
320
+ <option value="TL">Timor-Leste</option>
321
+ <option value="TG">Togo</option>
322
+ <option value="TK">Tokelau</option>
323
+ <option value="TO">Tonga</option>
324
+ <option value="TT">Trinidad and Tobago</option>
325
+ <option value="TN">Tunisia</option>
326
+ <option value="TR">Turkey</option>
327
+ <option value="TM">Turkmenistan</option>
328
+ <option value="TC">Turks and Caicos Islands</option>
329
+ <option value="TV">Tuvalu</option>
330
+ <option value="UG">Uganda</option>
331
+ <option value="UA">Ukraine</option>
332
+ <option value="AE">United Arab Emirates</option>
333
+ <option value="GB">United Kingdom</option>
334
+ <option value="US">United States</option>
335
+ <option value="UM">United States Minor Outlying Islands</option>
336
+ <option value="UY">Uruguay</option>
337
+ <option value="UZ">Uzbekistan</option>
338
+ <option value="VU">Vanuatu</option>
339
+ <option value="VE">Venezuela, Bolivarian Republic of</option>
340
+ <option value="VN">Viet Nam</option>
341
+ <option value="VG">Virgin Islands, British</option>
342
+ <option value="VI">Virgin Islands, U.S.</option>
343
+ <option value="WF">Wallis and Futuna</option>
344
+ <option value="EH">Western Sahara</option>
345
+ <option value="YE">Yemen</option>
346
+ <option value="ZM">Zambia</option>
347
+ <option value="ZW">Zimbabwe</option>
348
+ </select>';
349
+ }
350
+ }
files/sg_popup_ajax.php CHANGED
@@ -1,103 +1,107 @@
1
- <?php
2
-
3
- function sgPopupDelete()
4
- {
5
- $id = (int)@$_POST['popup_id'];
6
- if (!$id) {
7
- return;
8
- }
9
- require_once(SG_APP_POPUP_CLASSES.'/SGPopup.php');
10
- SGPopup::delete($id);
11
- }
12
-
13
- add_action('wp_ajax_delete_popup', 'sgPopupDelete');
14
-
15
- function sgFrontend() {
16
- global $wpdb;
17
- parse_str($_POST['subsribers'], $subsribers);
18
- $email = $subsribers['subs-email-name'];
19
- $firstName = $subsribers['subs-first-name'];
20
- $lastName = $subsribers['subs-last-name'];
21
- $title = $subsribers['subs-popup-title'];
22
-
23
- $query = $wpdb->prepare("SELECT id FROM ". $wpdb->prefix ."sg_subscribers WHERE email = %s AND subscriptionType = %s", $email, $title);
24
- $list = $wpdb->get_row($query, ARRAY_A);
25
- if(!isset($list['id'])) {
26
- $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix."sg_subscribers (firstName, lastName, email, subscriptionType) VALUES (%s, %s, %s, %s)", $firstName, $lastName, $email, $title);
27
- $res = $wpdb->query($sql);
28
- }
29
- die();
30
- }
31
-
32
- add_action('wp_ajax_nopriv_subs_send_mail', 'sgFrontend');
33
- add_action('wp_ajax_subs_send_mail', 'sgFrontend');
34
-
35
- function sgContactForm() {
36
- global $wpdb;
37
- parse_str($_POST['contactParams'], $params);
38
- $adminMail = get_option('admin_email');
39
- $name = $params['contact-name'];
40
- $subject = $params['contact-subject'];
41
- $userMessage = $params['content-message'];
42
- $mail = $params['contact-email'];
43
-
44
- $message = '';
45
- $message .= '<b>Name</b>: '.$name."<br>";
46
- $message .= '<b>E-mail</b>: '.$mail."<br>";
47
- $message .= '<b>Subject</b>: '.$subject."<br>";
48
- $message .= '<b>Message</b>: '.$userMessage."<br>";
49
- $headers = 'MIME-Version: 1.0'."\r\n";
50
- $headers = 'From: '.$adminMail.''."\r\n";
51
- $headers .= 'Content-type: text/html; charset=UTF-8'."\r\n"; //set UTF-8
52
- wp_mail($adminMail, 'Popup contact form', $message, $headers);
53
- die();
54
- }
55
-
56
- add_action('wp_ajax_nopriv_contact_send_mail', 'sgContactForm');
57
- add_action('wp_ajax_contact_send_mail', 'sgContactForm');
58
-
59
- function sgImportPopups() {
60
- global $wpdb;
61
- $url = $_POST['attachmentUrl'];
62
-
63
- $contents = unserialize(file_get_contents($url));
64
-
65
- foreach ($contents as $content) {
66
- //Main popup table data
67
- $popupData = $content['mainPopupData'];
68
- $popupType = $popupData['type'];
69
- $popupTitle = $popupData['title'];
70
- $popupOptions = $popupData['options'];
71
-
72
- //Insert popup
73
- $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix.PopupInstaller::$maintablename."(type, title, options) VALUES (%s, %s, %s)", $popupType, $popupTitle, $popupOptions);
74
- $res = $wpdb->query($sql);
75
- //Get last insert popup id
76
- $lastInsertId = $wpdb->insert_id;
77
-
78
- //Child popup data
79
- $childPopupTableName = $content['childTableName']; // change it Tbale to Table
80
- $childPopupData = $content['childData']; //change it child
81
-
82
- //Foreach throw child popups
83
- foreach ($childPopupData as $childPopup) {
84
- //Child popup table columns
85
- $columns = implode(array_keys($childPopup), ', ');
86
- $values = "'".implode(array_values($childPopup), "','")."'";
87
- $queryValues = str_repeat("'%s', ", count(array_keys($childPopup)));
88
- $queryValues = rtrim($queryValues, ', ');
89
- $queryStr = 'INSERT INTO '.$wpdb->prefix.$childPopupTableName.'(id, '.$columns.') VALUES ('.$lastInsertId.', '.$values.')';
90
- $sql = $wpdb->prepare($queryStr, $values);
91
- $resa = $wpdb->query($sql);
92
- echo 'ChildRes: '.$resa;
93
- }
94
- echo 'MainRes: '.$res;
95
- }
96
- }
97
-
98
- add_action('wp_ajax_import_popups', 'sgImportPopups');
99
-
100
- function sgCloseReviewPanel() {
101
- update_option('SG_COLOSE_REVIEW_BLOCK', true);
102
- }
103
- add_action('wp_ajax_close_review_panel', 'sgCloseReviewPanel');
 
 
 
 
1
+ <?php
2
+
3
+ function sgPopupDelete()
4
+ {
5
+ $id = (int)@$_POST['popup_id'];
6
+ if (!$id) {
7
+ return;
8
+ }
9
+ require_once(SG_APP_POPUP_CLASSES.'/SGPopup.php');
10
+ SGPopup::delete($id);
11
+ }
12
+
13
+ add_action('wp_ajax_delete_popup', 'sgPopupDelete');
14
+
15
+ function sgFrontend()
16
+ {
17
+ global $wpdb;
18
+ parse_str($_POST['subsribers'], $subsribers);
19
+ $email = $subsribers['subs-email-name'];
20
+ $firstName = $subsribers['subs-first-name'];
21
+ $lastName = $subsribers['subs-last-name'];
22
+ $title = $subsribers['subs-popup-title'];
23
+
24
+ $query = $wpdb->prepare("SELECT id FROM ". $wpdb->prefix ."sg_subscribers WHERE email = %s AND subscriptionType = %s", $email, $title);
25
+ $list = $wpdb->get_row($query, ARRAY_A);
26
+ if(!isset($list['id'])) {
27
+ $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix."sg_subscribers (firstName, lastName, email, subscriptionType) VALUES (%s, %s, %s, %s)", $firstName, $lastName, $email, $title);
28
+ $res = $wpdb->query($sql);
29
+ }
30
+ die();
31
+ }
32
+
33
+ add_action('wp_ajax_nopriv_subs_send_mail', 'sgFrontend');
34
+ add_action('wp_ajax_subs_send_mail', 'sgFrontend');
35
+
36
+ function sgContactForm()
37
+ {
38
+ global $wpdb;
39
+ parse_str($_POST['contactParams'], $params);
40
+ $adminMail = sanitize_text_field($_POST['receiveMail']);
41
+ $name = $params['contact-name'];
42
+ $subject = $params['contact-subject'];
43
+ $userMessage = $params['content-message'];
44
+ $mail = $params['contact-email'];
45
+
46
+ $message = '';
47
+ $message .= '<b>Name</b>: '.$name."<br>";
48
+ $message .= '<b>E-mail</b>: '.$mail."<br>";
49
+ $message .= '<b>Subject</b>: '.$subject."<br>";
50
+ $message .= '<b>Message</b>: '.$userMessage."<br>";
51
+ $headers = 'MIME-Version: 1.0'."\r\n";
52
+ $headers = 'From: '.$adminMail.''."\r\n";
53
+ $headers .= 'Content-type: text/html; charset=UTF-8'."\r\n"; //set UTF-8
54
+
55
+ $sendStatus = wp_mail($adminMail, 'Popup contact form', $message, $headers); //return true or false
56
+ echo $sendStatus;
57
+ die();
58
+ }
59
+
60
+ add_action('wp_ajax_nopriv_contact_send_mail', 'sgContactForm');
61
+ add_action('wp_ajax_contact_send_mail', 'sgContactForm');
62
+
63
+ function sgImportPopups(){
64
+ global $wpdb;
65
+ $url = $_POST['attachmentUrl'];
66
+
67
+ $contents = unserialize(file_get_contents($url));
68
+
69
+ foreach ($contents as $content) {
70
+ //Main popup table data
71
+ $popupData = $content['mainPopupData'];
72
+ $popupType = $popupData['type'];
73
+ $popupTitle = $popupData['title'];
74
+ $popupOptions = $popupData['options'];
75
+
76
+ //Insert popup
77
+ $sql = $wpdb->prepare("INSERT INTO ".$wpdb->prefix.PopupInstaller::$maintablename."(type, title, options) VALUES (%s, %s, %s)", $popupType, $popupTitle, $popupOptions);
78
+ $res = $wpdb->query($sql);
79
+ //Get last insert popup id
80
+ $lastInsertId = $wpdb->insert_id;
81
+
82
+ //Child popup data
83
+ $childPopupTableName = $content['childTableName']; // change it Tbale to Table
84
+ $childPopupData = $content['childData']; //change it child
85
+
86
+ //Foreach throw child popups
87
+ foreach ($childPopupData as $childPopup) {
88
+ //Child popup table columns
89
+ $columns = implode(array_keys($childPopup), ', ');
90
+ $values = "'".implode(array_values($childPopup), "','")."'";
91
+ $queryValues = str_repeat("'%s', ", count(array_keys($childPopup)));
92
+ $queryValues = rtrim($queryValues, ', ');
93
+ $queryStr = 'INSERT INTO '.$wpdb->prefix.$childPopupTableName.'(id, '.$columns.') VALUES ('.$lastInsertId.', '.$values.')';
94
+ $sql = $wpdb->prepare($queryStr, $values);
95
+ $resa = $wpdb->query($sql);
96
+ echo 'ChildRes: '.$resa;
97
+ }
98
+ echo 'MainRes: '.$res;
99
+ }
100
+ }
101
+
102
+ add_action('wp_ajax_import_popups', 'sgImportPopups');
103
+
104
+ function sgCloseReviewPanel() {
105
+ update_option('SG_COLOSE_REVIEW_BLOCK', true);
106
+ }
107
+ add_action('wp_ajax_close_review_panel', 'sgCloseReviewPanel');
files/sg_popup_create.php CHANGED
@@ -1,98 +1,68 @@
1
- <?php
2
- $getReview = get_option("SG_COLOSE_REVIEW_BLOCK");
3
- if(!$getReview) {
4
- echo SGFunctions::addReview();
5
- }
6
- ?>
7
- <h2>Add New Popup</h2>
8
- <div class="popups-wrapper">
9
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=image">
10
- <div class="popups-div image-popup">
11
- </div>
12
- </a>
13
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=html">
14
- <div class="popups-div html-popup">
15
- </div>
16
- </a>
17
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=fblike">
18
- <div class="popups-div fblike-popup">
19
- </div>
20
- </a>
21
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=shortcode">
22
- <div class="popups-div shortcode-popup">
23
- </div>
24
- </a>
25
- <?php if(SG_POPUP_PRO): ?>
26
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=iframe">
27
- <div class="popups-div iframe-popup">
28
- </div>
29
- </a>
30
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=video">
31
- <div class="popups-div video-popup">
32
- </div>
33
- </a>
34
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=ageRestriction">
35
- <div class="popups-div age-restriction">
36
- </div>
37
- </a>
38
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=countdown">
39
- <div class="popups-div countdown">
40
- </div>
41
- </a>
42
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=social">
43
- <div class="popups-div sg-social">
44
- </div>
45
- </a>
46
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=exitIntent">
47
- <div class="popups-div sg-exit-intent">
48
- </div>
49
- </a>
50
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=subscription">
51
- <div class="popups-div sg-subscription">
52
- </div>
53
- </a>
54
- <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=contactForm">
55
- <div class="popups-div sg-contact-form">
56
- </div>
57
- </a>
58
- <?php endif; ?>
59
- <?php if (SG_POPUP_PRO == 0): ?>
60
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
61
- <div class="popups-div iframe-popup-pro">
62
- </div>
63
- </a>
64
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
65
- <div class="popups-div video-popup-pro">
66
- </div>
67
- </a>
68
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
69
- <div class="popups-div age-restriction-pro">
70
- </div>
71
- </a>
72
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
73
- <div class="popups-div countdown-pro">
74
- </div>
75
- </a>
76
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
77
- <div class="popups-div social-pro">
78
- </div>
79
- </a>
80
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
81
- <div class="popups-div exit-intent-pro">
82
- </div>
83
- </a>
84
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
85
- <div class="popups-div subscription-pro">
86
- </div>
87
- </a>
88
- <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
89
- <div class="popups-div contact-pro">
90
- </div>
91
- </a>
92
- <?php endif; ?>
93
- </div>
94
- <div class="clear">
95
- <?php
96
- SGFunctions::showInfo();
97
- ?>
98
- </div>
1
+ <?php
2
+ if(!SG_SHOW_POPUP_REVIEW) {
3
+ echo SGFunctions::addReview();
4
+ }
5
+ ?>
6
+ <h2>Add New Popup</h2>
7
+ <div class="popups-wrapper">
8
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=image">
9
+ <div class="popups-div image-popup">
10
+ </div>
11
+ </a>
12
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=html">
13
+ <div class="popups-div html-popup">
14
+ </div>
15
+ </a>
16
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=fblike">
17
+ <div class="popups-div fblike-popup">
18
+ </div>
19
+ </a>
20
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=shortcode">
21
+ <div class="popups-div shortcode-popup">
22
+ </div>
23
+ </a>
24
+ <?php if(SG_POPUP_PRO): ?>
25
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=iframe">
26
+ <div class="popups-div iframe-popup">
27
+ </div>
28
+ </a>
29
+ <a class="create-popup-link" href="<?php echo SG_APP_POPUP_ADMIN_URL?>admin.php?page=edit-popup&type=video">
30
+ <div class="popups-div video-popup">
31
+ </div>
32
+ </a>
33
+ <?php endif; ?>
34
+ <?php if (SG_POPUP_PRO == 0): ?>
35
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
36
+ <div class="popups-div iframe-popup-pro">
37
+ </div>
38
+ </a>
39
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
40
+ <div class="popups-div video-popup-pro">
41
+ </div>
42
+ </a>
43
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
44
+ <div class="popups-div age-restriction-pro">
45
+ </div>
46
+ </a>
47
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
48
+ <div class="popups-div countdown-pro">
49
+ </div>
50
+ </a>
51
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
52
+ <div class="popups-div social-pro">
53
+ </div>
54
+ </a>
55
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
56
+ <div class="popups-div exit-intent-pro">
57
+ </div>
58
+ </a>
59
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
60
+ <div class="popups-div subscription-pro">
61
+ </div>
62
+ </a>
63
+ <a class="create-popup-link" href="<?php echo SG_POPUP_PRO_URL;?>" target="_blank">
64
+ <div class="popups-div contact-pro">
65
+ </div>
66
+ </a>
67
+ <?php endif; ?>
68
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
files/sg_popup_create_new.php CHANGED
@@ -1,976 +1,1019 @@
1
- <?php
2
- $popupType = @$_GET['type'];
3
- if (!$popupType) {
4
- $popupType = 'html';
5
- }
6
- $popupName = "SG".ucfirst(strtolower($popupType));
7
- $popupClassName = $popupName."Popup";
8
- require_once(SG_APP_POPUP_PATH ."/classes/".$popupClassName.".php");
9
- $obj = new $popupClassName();
10
-
11
- global $removeOptions;
12
- $removeOptions = $obj->getRemoveOptions();
13
-
14
- if (isset($_GET['id'])) {
15
- $id = (int)$_GET['id'];
16
- $result = call_user_func(array($popupClassName, 'findById'), $id);
17
- if (!$result) {
18
- wp_redirect(SG_APP_POPUP_ADMIN_URL."page=edit-popup&type=".$popupType."");
19
- }
20
-
21
- switch ($popupType) {
22
- case 'iframe':
23
- $sgPopupDataIframe = $result->getUrl();
24
- break;
25
- case 'video':
26
- $sgPopupDataVideo = $result->getRealUrl();
27
- $sgVideoOptions = $result->getVideoOptions();
28
- break;
29
- case 'image':
30
- $sgPopupDataImage = $result->getUrl();
31
- break;
32
- case 'html':
33
- $sgPopupDataHtml = $result->getContent();
34
- break;
35
- case 'fblike':
36
- $sgPopupDataFblike = $result->getContent();
37
- $sgFlikeOptions = $result->getFblikeOptions();
38
- break;
39
- case 'shortcode':
40
- $sgPopupDataShortcode = $result->getShortcode();
41
- break;
42
- case 'ageRestriction':
43
- $sgPopupAgeRestriction = ($result->getContent());
44
- $sgYesButton = sgSafeStr($result->getYesButton());
45
- $sgNoButton = sgSafeStr($result->getNoButton());
46
- $sgRestrictionUrl = sgSafeStr($result->getRestrictionUrl());
47
- break;
48
- case 'countdown':
49
- $sgCoundownContent = $result->getCountdownContent();
50
- $countdownOptions = json_decode(sgSafeStr($result->getCountdownOptions()),true);
51
- $sgCountdownNumbersBgColor = $countdownOptions['countdownNumbersBgColor'];
52
- $sgCountdownNumbersTextColor = $countdownOptions['countdownNumbersTextColor'];
53
- $sgDueDate = $countdownOptions['sg-due-date'];
54
- @$sgGetCountdownType = $countdownOptions['sg-countdown-type'];
55
- $sgCountdownLang = $countdownOptions['counts-language'];
56
- @$sgCountdownPosition = $countdownOptions['coundown-position'];
57
- @$sgSelectedTimeZone = $countdownOptions['sg-time-zone'];
58
- break;
59
- case 'social':
60
- $sgSocialContent = ($result->getSocialContent());
61
- $sgSocialButtons = sgSafeStr($result->getButtons());
62
- $sgSocialOptions = sgSafeStr($result->getSocialOptions());
63
- break;
64
- case 'exitIntent':
65
- $sgExitIntentContent = $result->getContent();
66
- $exitIntentOptions = $result->getExitIntentOptions();
67
- break;
68
- case 'subscription':
69
- $sgSunbscriptionContent = $result->getContent();
70
- $subscriptionOptions = $result->getSubscriptionOptions();
71
- break;
72
- case 'contactForm':
73
- $params = $result->getParams();
74
- $sgContactFormContent = $result->getContent();
75
- break;
76
- }
77
-
78
- $title = $result->getTitle();
79
- $jsonData = json_decode($result->getOptions(), true);
80
- $sgEscKey = @$jsonData['escKey'];
81
- $sgScrolling = @$jsonData['scrolling'];
82
- $sgCloseButton = @$jsonData['closeButton'];
83
- $sgReposition = @$jsonData['reposition'];
84
- $sgOverlayClose = @$jsonData['overlayClose'];
85
- $sgOverlayColor = @$jsonData['sgOverlayColor'];
86
- $sgContentClick = @$jsonData['contentClick'];
87
- $sgOpacity = @$jsonData['opacity'];
88
- $sgPopupFixed = @$jsonData['popupFixed'];
89
- $sgFixedPostion = @$jsonData['fixedPostion'];
90
- $sgOnScrolling = @$jsonData['onScrolling'];
91
- $beforeScrolingPrsent = @$jsonData['beforeScrolingPrsent'];
92
- $duration = @$jsonData['duration'];
93
- $delay = @$jsonData['delay'];
94
- $sgThemeCloseText = @$jsonData['theme-close-text'];
95
- $effect =@$jsonData['effect'];
96
- $sgInitialWidth = @$jsonData['initialWidth'];
97
- $sgInitialHeight = @$jsonData['initialHeight'];
98
- $sgWidth = @$jsonData['width'];
99
- $sgHeight = @$jsonData['height'];
100
- $sgMaxWidth = @$jsonData['maxWidth'];
101
- $sgMaxHeight = @$jsonData['maxHeight'];
102
- $sgForMobile = @$jsonData['forMobile'];
103
- $sgOpenOnMobile = @$jsonData['openMobile'];
104
- $sgAllPages = @$jsonData['allPages'];
105
- $sgRepeatPopup = @$jsonData['repeatPopup'];
106
- $sgDisablePopup = @$jsonData['disablePopup'];
107
- $sgDisablePopupOverlay = @$jsonData['disablePopupOverlay'];
108
- $sgPopupClosingTimer = @$jsonData['popupClosingTimer'];
109
- $sgAutoClosePopup = @$jsonData['autoClosePopup'];
110
- $sgCountryStatus = @$jsonData['countryStatus'];
111
- $sgAllPagesStatus = @$jsonData['showAllPages'];
112
- $allSelectedPages = @$jsonData['allSelectedPages'];
113
- $sgAllPostStatus = @$jsonData['showAllPosts'];
114
- $allSelectedPosts = @$jsonData['allSelectedPosts'];
115
- $sgAllowCountries = @$jsonData['allowCountries'];
116
- $sgCountryName = @$jsonData['countryName'];
117
- $sgCountryIso = @$jsonData['countryIso'];
118
- $sgColorboxTheme = @$jsonData['theme'];
119
- $sgOverlayCustomClasss = @$jsonData['sgOverlayCustomClasss'];
120
- $sgContentCustomClasss = @$jsonData['sgContentCustomClasss'];
121
- $sgOnceExpiresTime = @$jsonData['onceExpiresTime'];
122
- $sgRestrictionAction = @$jsonData['restrictionAction'];
123
- $yesButtonBackgroundColor = @sgSafeStr($jsonData['yesButtonBackgroundColor']);
124
- $noButtonBackgroundColor = @sgSafeStr($jsonData['noButtonBackgroundColor']);
125
- $yesButtonTextColor = @sgSafeStr($jsonData['yesButtonTextColor']);
126
- $noButtonTextColor = @sgSafeStr($jsonData['noButtonTextColor']);
127
- $yesButtonRadius = @sgSafeStr($jsonData['yesButtonRadius']);
128
- $noButtonRadius = @sgSafeStr($jsonData['noButtonRadius']);
129
- $sgSocialOptions = json_decode(@$sgSocialOptions,true);
130
- $sgShareUrl = $sgSocialOptions['sgShareUrl'];
131
- $shareUrlType = @sgSafeStr($sgSocialOptions['shareUrlType']);
132
- $fbShareLabel = @sgSafeStr($sgSocialOptions['fbShareLabel']);
133
- $lindkinLabel = @sgSafeStr($sgSocialOptions['lindkinLabel']);
134
- $googLelabel = @sgSafeStr($sgSocialOptions['googLelabel']);
135
- $twitterLabel = @sgSafeStr($sgSocialOptions['twitterLabel']);
136
- $pinterestLabel = @sgSafeStr($sgSocialOptions['pinterestLabel']);
137
- $sgMailSubject = @sgSafeStr($sgSocialOptions['sgMailSubject']);
138
- $sgMailLable = @sgSafeStr($sgSocialOptions['sgMailLable']);
139
- $sgSocialButtons = json_decode(@$sgSocialButtons,true);
140
- $sgTwitterStatus = @sgSafeStr($sgSocialButtons['sgTwitterStatus']);
141
- $sgFbStatus = @sgSafeStr($sgSocialButtons['sgFbStatus']);
142
- $sgEmailStatus = @sgSafeStr($sgSocialButtons['sgEmailStatus']);
143
- $sgLinkedinStatus = @sgSafeStr($sgSocialButtons['sgLinkedinStatus']);
144
- $sgGoogleStatus = @sgSafeStr($sgSocialButtons['sgGoogleStatus']);
145
- $sgPinterestStatus = @sgSafeStr($sgSocialButtons['sgPinterestStatus']);
146
- $sgSocialTheme = @sgSafeStr($sgSocialOptions['sgSocialTheme']);
147
- $sgSocialButtonsSize = @sgSafeStr($sgSocialOptions['sgSocialButtonsSize']);
148
- $sgSocialLabel = @sgSafeStr($sgSocialOptions['sgSocialLabel']);
149
- $sgSocialShareCount = @sgSafeStr($sgSocialOptions['sgSocialShareCount']);
150
- $sgRoundButton = @sgSafeStr($sgSocialOptions['sgRoundButton']);
151
- $sgPushToBottom = @sgSafeStr($jsonData['pushToBottom']);
152
- $exitIntentOptions = json_decode(@$exitIntentOptions, true);
153
- $sgExitIntentTpype = @$exitIntentOptions['exit-intent-type'];
154
- $sgExitIntntExpire = @$exitIntentOptions['exit-intent-expire-time'];
155
- $sgExitIntentAlert = @$exitIntentOptions['exit-intent-alert'];
156
- $sgVideoOptions = json_decode(@$sgVideoOptions, true);
157
- $sgVideoAutoplay = $sgVideoOptions['video-autoplay'];
158
- $sgFlikeOptions = json_decode(@$sgFlikeOptions, true);
159
- $sgFblikeurl = @$sgFlikeOptions['fblike-like-url'];
160
- $sgFbLikeLayout = @$sgFlikeOptions['fblike-layout'];
161
- $subscriptionOptions = json_decode(@$subscriptionOptions, true);
162
- $sgSubsFirstNameStatus = $subscriptionOptions['subs-first-name-status'];
163
- $sgSubsLastNameStatus = $subscriptionOptions['subs-last-name-status'];
164
- $sgSubscriptionEmail = @$subscriptionOptions['subscription-email'];
165
- $sgSubsFirstName = @$subscriptionOptions['subs-first-name'];
166
- $sgSubsLastName = @$subscriptionOptions['subs-last-name'];
167
- $sgSubsButtonBgcolor = @$subscriptionOptions['subs-button-bgcolor'];
168
- $sgSubsBtnWidth = @$subscriptionOptions['subs-btn-width'];
169
- $sgSubsBtnHeight = @$subscriptionOptions['subs-btn-height'];
170
- $sgSubsTextHeight = @$subscriptionOptions['subs-text-height'];
171
- $sgSubsBtnTitle = @$subscriptionOptions['subs-btn-title'];
172
- $sgSubsTextInputBgcolor = @$subscriptionOptions['subs-text-input-bgcolor'];
173
- $sgSubsTextBordercolor = @$subscriptionOptions['subs-text-bordercolor'];
174
- $sgSubsTextWidth = @$subscriptionOptions['subs-text-width'];
175
- $sgSubsButtonColor = @$subscriptionOptions['subs-button-color'];
176
- $sgSubsInputsColor = @$subscriptionOptions['subs-inputs-color'];
177
- $sgSubsPlaceholderColor = @$subscriptionOptions['subs-placeholder-color'];
178
- $sgSubsValidateMessage = @$subscriptionOptions['subs-validation-message'];
179
- $sgSuccessMessage = @$subscriptionOptions['subs-success-message'];
180
- $sgSubsBtnProgressTitle = @$subscriptionOptions['subs-btn-progress-title'];
181
- $sgSubsTextBorderWidth = @$subscriptionOptions['subs-text-border-width'];
182
- $contactFormOptions = json_decode(@$params, true);
183
- $sgContactNameLabel = @$contactFormOptions['contact-name'];
184
- $sgContactSubjectLabel = @$contactFormOptions['contact-subject'];
185
- $sgContactEmailLabel = @$contactFormOptions['contact-email'];
186
- $sgContactMessageLabel = @$contactFormOptions['contact-message'];
187
- $sgContactValidationMessage = @$contactFormOptions['contact-validation-message'];
188
- $sgContactSuccessMessage = @$contactFormOptions['contact-success-message'];
189
- $sgContactInputsWidth = @$contactFormOptions['contact-inputs-width'];
190
- $sgContactInputsHeight = @$contactFormOptions['contact-inputs-height'];
191
- $sgContactInputsBorderWidth = @$contactFormOptions['contact-inputs-border-width'];
192
- $sgContactTextInputBgcolor = @$contactFormOptions['contact-text-input-bgcolor'];
193
- $sgContactTextBordercolor = @$contactFormOptions['contact-text-bordercolor'];
194
- $sgContactInputsColor = @$contactFormOptions['contact-inputs-color'];
195
- $sgContactPlaceholderColor = @$contactFormOptions['contact-placeholder-color'];
196
- $sgContactBtnWidth = @$contactFormOptions['contact-btn-width'];
197
- $sgContactBtnHeight = @$contactFormOptions['contact-btn-height'];
198
- $sgContactBtnTitle = @$contactFormOptions['contact-btn-title'];
199
- $sgContactBtnProgressTitle = @$contactFormOptions['contact-btn-progress-title'];
200
- $sgContactButtonBgcolor = @$contactFormOptions['contact-button-bgcolor'];
201
- $sgContactButtonColor = @$contactFormOptions['contact-button-color'];
202
- $sgContactAreaWidth = @$contactFormOptions['contact-area-width'];
203
- $sgContactAreaHeight = @$contactFormOptions['contact-area-height'];
204
- $sgContactResize = @$contactFormOptions['sg-contact-resize'];
205
- $sgContactValidateEmail = @$contactFormOptions['contact-validate-email'];
206
- }
207
-
208
- $sgPopup = array(
209
- 'escKey'=> true,
210
- 'closeButton' => true,
211
- 'scrolling'=> true,
212
- 'opacity'=>0.8,
213
- 'reposition' => true,
214
- 'width' => false,
215
- 'height' => false,
216
- 'initialWidth' => '300',
217
- 'initialHeight' => '100',
218
- 'maxWidth' => false,
219
- 'maxHeight' => false,
220
- 'overlayClose' => true,
221
- 'contentClick'=>false,
222
- 'fixed' => false,
223
- 'top' => false,
224
- 'right' => false,
225
- 'bottom' => false,
226
- 'left' => false,
227
- 'duration' => 1,
228
- 'delay' => 0,
229
- 'theme-close-text' => 'Close'
230
- );
231
-
232
- $popupProDefaultValues = array(
233
- 'closeType' => false,
234
- 'onScrolling' => false,
235
- 'video-autoplay' => false,
236
- 'forMobile' => false,
237
- 'openMobile' => false,
238
- 'repetPopup' => false,
239
- 'disablePopup' => false,
240
- 'disablePopupOverlay' => false,
241
- 'autoClosePopup' => false,
242
- 'fbStatus' => true,
243
- 'twitterStatus' => true,
244
- 'emailStatus' => true,
245
- 'linkedinStatus' => true,
246
- 'googleStatus' => true,
247
- 'pinterestStatus' => true,
248
- 'sgSocialLabel'=>true,
249
- 'roundButtons'=>false,
250
- 'sgShareUrl' => 'http://',
251
- 'pushToBottom' => true,
252
- 'allPages' => false,
253
- 'allPosts' => false,
254
- 'onceExpiresTime' => 7,
255
- 'overlay-custom-classs' => 'sg-popup-overlay',
256
- 'content-custom-classs' => 'sg-popup-content',
257
- 'countryStatus' => false,
258
- 'allowCountries' => 'allow',
259
- 'countdownNumbersTextColor' => '',
260
- 'countdownNumbersBgColor' => '',
261
- 'countDownLang' => 'English',
262
- 'countdown-position' => true,
263
- 'time-zone' => 'Etc/GMT',
264
- 'due-date' => date('M d Y', strtotime(' +1 day')),
265
- 'exit-intent-type' => "soft",
266
- 'exit-intent-expire-time' => '1',
267
- 'subs-first-name-status' => true,
268
- 'subs-last-name-status' => true,
269
- 'subscription-email' => 'Email *',
270
- 'subs-first-name' => 'First name',
271
- 'subs-last-name' => 'Last name',
272
- 'subs-button-bgcolor' => '#239744',
273
- 'subs-button-color' => '#FFFFFF',
274
- 'subs-text-input-bgcolor' => '#FFFFFF',
275
- 'subs-inputs-color' => '#000000',
276
- 'subs-placeholder-color' => '#CCCCCC',
277
- 'subs-text-bordercolor' => '#CCCCCC',
278
- 'subs-btn-title' => 'Subscribe',
279
- 'subs-text-height' => '30px',
280
- 'subs-btn-height' => '30px',
281
- 'subs-text-width' => '200px',
282
- 'subs-btn-width' => '200px',
283
- 'subs-text-border-width' => '2px',
284
- 'subs-success-message' =>'You have successfully subscribed to the newsletter',
285
- 'subs-validation-message' => 'This field is required.',
286
- 'subs-btn-progress-title' => 'Please wait ...',
287
- 'contact-name' => 'Name *',
288
- 'contact-email' => 'E-mail *',
289
- 'contact-message' => 'Message *',
290
- 'contact-subject' => 'Subject *',
291
- 'contact-success-message' => 'Your message has been successfully sent.',
292
- 'contact-btn-title' => 'Contact',
293
- 'contact-validate-email' => 'Please enter a valid email.'
294
- );
295
-
296
- $escKey = sgBoolToChecked($sgPopup['escKey']);
297
- $closeButton = sgBoolToChecked($sgPopup['closeButton']);
298
- $scrolling = sgBoolToChecked($sgPopup['scrolling']);
299
- $reposition = sgBoolToChecked($sgPopup['reposition']);
300
- $overlayClose = sgBoolToChecked($sgPopup['overlayClose']);
301
- $contentClick = sgBoolToChecked($sgPopup['contentClick']);
302
-
303
- $closeType = sgBoolToChecked($popupProDefaultValues['closeType']);
304
- $onScrolling = sgBoolToChecked($popupProDefaultValues['onScrolling']);
305
- $forMobile = sgBoolToChecked($popupProDefaultValues['forMobile']);
306
- $openMobile = sgBoolToChecked($popupProDefaultValues['openMobile']);
307
- $repetPopup = sgBoolToChecked($popupProDefaultValues['repetPopup']);
308
- $disablePopup = sgBoolToChecked($popupProDefaultValues['disablePopup']);
309
- $disablePopupOverlay = sgBoolToChecked($popupProDefaultValues['disablePopupOverlay']);
310
- $autoClosePopup = sgBoolToChecked($popupProDefaultValues['autoClosePopup']);
311
- $fbStatus = sgBoolToChecked($popupProDefaultValues['fbStatus']);
312
- $twitterStatus = sgBoolToChecked($popupProDefaultValues['twitterStatus']);
313
- $emailStatus = sgBoolToChecked($popupProDefaultValues['emailStatus']);
314
- $linkedinStatus = sgBoolToChecked($popupProDefaultValues['linkedinStatus']);
315
- $googleStatus = sgBoolToChecked($popupProDefaultValues['googleStatus']);
316
- $pinterestStatus = sgBoolToChecked($popupProDefaultValues['pinterestStatus']);
317
- $socialLabel = sgBoolToChecked($popupProDefaultValues['sgSocialLabel']);
318
- $roundButtons = sgBoolToChecked($popupProDefaultValues['roundButtons']);
319
- $shareUrl = $popupProDefaultValues['sgShareUrl'];
320
- $pushToBottom = sgBoolToChecked($popupProDefaultValues['pushToBottom']);
321
- $allPages = sgBoolToChecked($popupProDefaultValues['allPages']);
322
- $allPosts = sgBoolToChecked($popupProDefaultValues['allPosts']);
323
- $onceExpiresTime = $popupProDefaultValues['onceExpiresTime'];
324
- $countryStatus = sgBoolToChecked($popupProDefaultValues['countryStatus']);
325
- $allowCountries = $popupProDefaultValues['allowCountries'];
326
- $countdownNumbersTextColor = $popupProDefaultValues['countdownNumbersTextColor'];
327
- $countdownNumbersBgColor = $popupProDefaultValues['countdownNumbersBgColor'];
328
- $countdownLang = $popupProDefaultValues['countDownLang'];
329
- $countdownPosition = $popupProDefaultValues['countdown-position'];
330
- $timeZone = $popupProDefaultValues['time-zone'];
331
- $dueDate = $popupProDefaultValues['due-date'];
332
- $exitIntentType = $popupProDefaultValues['exit-intent-type'];
333
- $exitIntentExpireTime = $popupProDefaultValues['exit-intent-expire-time'];
334
- $subsFirstNameStatus = sgBoolToChecked($popupProDefaultValues['subs-first-name-status']);
335
- $subsLastNameStatus = sgBoolToChecked($popupProDefaultValues['subs-last-name-status']);
336
- $subscriptionEmail = $popupProDefaultValues['subscription-email'];
337
- $subsFirstName = $popupProDefaultValues['subs-first-name'];
338
- $subsLastName = $popupProDefaultValues['subs-last-name'];
339
- $subsButtonBgcolor = $popupProDefaultValues['subs-button-bgcolor'];
340
- $subsButtonColor = $popupProDefaultValues['subs-button-color'];
341
- $subsInputsColor = $popupProDefaultValues['subs-inputs-color'];
342
- $subsBtnTitle = $popupProDefaultValues['subs-btn-title'];
343
- $subsPlaceholderColor = $popupProDefaultValues['subs-placeholder-color'];
344
- $subsTextHeight = $popupProDefaultValues['subs-text-height'];
345
- $subsBtnHeight = $popupProDefaultValues['subs-btn-height'];
346
- $subsSuccessMessage = $popupProDefaultValues['subs-success-message'];
347
- $subsValidationMessage = $popupProDefaultValues['subs-validation-message'];
348
- $subsTextWidth = $popupProDefaultValues['subs-text-width'];
349
- $subsBtnWidth = $popupProDefaultValues['subs-btn-width'];
350
- $subsBtnProgressTitle = $popupProDefaultValues['subs-btn-progress-title'];
351
- $subsTextBorderWidth = $popupProDefaultValues['subs-text-border-width'];
352
- $subsTextBordercolor = $popupProDefaultValues['subs-text-bordercolor'];
353
- $subsTextInputBgcolor = $popupProDefaultValues['subs-text-input-bgcolor'];
354
- $contactName = $popupProDefaultValues['contact-name'];
355
- $contactEmail = $popupProDefaultValues['contact-email'];
356
- $contactMessage = $popupProDefaultValues['contact-message'];
357
- $contactSubject = $popupProDefaultValues['contact-subject'];
358
- $contactSuccessMessage = $popupProDefaultValues['contact-success-message'];
359
- $contactBtnTitle = $popupProDefaultValues['contact-btn-title'];
360
- $contactValidateEmail = $popupProDefaultValues['contact-validate-email'];
361
- $overlayCustomClasss = $popupProDefaultValues['overlay-custom-classs'];
362
- $contentCustomClasss = $popupProDefaultValues['content-custom-classs'];
363
-
364
- function sgBoolToChecked($var)
365
- {
366
- return ($var?'checked':'');
367
- }
368
-
369
- function sgRemoveOption($option)
370
- {
371
- global $removeOptions;
372
- return isset($removeOptions[$option]);
373
- }
374
-
375
- $width = $sgPopup['width'];
376
- $height = $sgPopup['height'];
377
- $opacityValue = $sgPopup['opacity'];
378
- $top = $sgPopup['top'];
379
- $right = $sgPopup['right'];
380
- $bottom = $sgPopup['bottom'];
381
- $left = $sgPopup['left'];
382
- $initialWidth = $sgPopup['initialWidth'];
383
- $initialHeight = $sgPopup['initialHeight'];
384
- $maxWidth = $sgPopup['maxWidth'];
385
- $maxHeight = $sgPopup['maxHeight'];
386
- $deafultFixed = $sgPopup['fixed'];
387
- $defaultDuration = $sgPopup['duration'];
388
- $defaultDelay = $sgPopup['delay'];
389
- $themeCloseText = $sgPopup['theme-close-text'];
390
-
391
- $sgCloseButton = @sgSetChecked($sgCloseButton, $closeButton);
392
- $sgEscKey = @sgSetChecked($sgEscKey, $escKey);
393
- $sgContentClick = @sgSetChecked($sgContentClick, $contentClick);
394
- $sgOverlayClose = @sgSetChecked($sgOverlayClose, $overlayClose);
395
- $sgReposition = @sgSetChecked($sgReposition, $reposition);
396
- $sgScrolling = @sgSetChecked($sgScrolling, $scrolling);
397
-
398
- $sgCloseType = @sgSetChecked($sgCloseType, $closeType);
399
- $sgOnScrolling = @sgSetChecked($sgOnScrolling, $onScrolling);
400
- $sgForMobile = @sgSetChecked($sgForMobile, $forMobile);
401
- $sgOpenOnMobile = @sgSetChecked($sgOpenOnMobile, $openMobile);
402
- $sgRepeatPopup = @sgSetChecked($sgRepeatPopup, $repetPopup);
403
- $sgDisablePopup = @sgSetChecked($sgDisablePopup, $disablePopup);
404
- $sgDisablePopupOverlay = @sgSetChecked($sgDisablePopupOverlay, $disablePopupOverlay);
405
- $sgAutoClosePopup = @sgSetChecked($sgAutoClosePopup, $autoClosePopup);
406
- $sgFbStatus = @sgSetChecked($sgFbStatus, $fbStatus);
407
- $sgTwitterStatus = @sgSetChecked($sgTwitterStatus, $twitterStatus);
408
- $sgEmailStatus = @sgSetChecked($sgEmailStatus, $emailStatus);
409
- $sgLinkedinStatus = @sgSetChecked($sgLinkedinStatus, $linkedinStatus);
410
- $sgGoogleStatus = @sgSetChecked($sgGoogleStatus, $googleStatus);
411
- $sgPinterestStatus = @sgSetChecked($sgPinterestStatus, $pinterestStatus);
412
- $sgRoundButtons = @sgSetChecked($sgRoundButton, $roundButtons);
413
- $sgSocialLabel = @sgSetChecked($sgSocialLabel, $socialLabel);
414
- $sgPopupFixed = @sgSetChecked($sgPopupFixed, $deafultFixed);
415
- $sgPushToBottom = @sgSetChecked($sgPushToBottom, $pushToBottom);
416
- $sgAllPages = @sgSetChecked($sgAllPagesStatus, $allPages);
417
- $sgAllPosts = @sgSetChecked($sgAllPostStatus, $allPosts);
418
- $sgCountdownPosition = @sgSetChecked($sgCountdownPosition, $countdownPosition);
419
- $sgVideoAutoplay = @sgSetChecked($sgVideoAutoplay, $videoAutoplay);
420
- $sgSubsLastNameStatus = @sgSetChecked($sgSubsLastNameStatus, $subsLastNameStatus);
421
- $sgSubsFirstNameStatus = @sgSetChecked($sgSubsFirstNameStatus, $subsFirstNameStatus);
422
- $sgCountryStatus = @sgSetChecked($sgCountryStatus, $countryStatus);
423
-
424
- function sgSetChecked($optionsParam,$defaultOption)
425
- {
426
- if (isset($optionsParam)) {
427
- if ($optionsParam == '') {
428
- return '';
429
- }
430
- else {
431
- return 'checked';
432
- }
433
- }
434
- else {
435
- return $defaultOption;
436
- }
437
- }
438
-
439
- $sgOpacity = @sgGetValue($sgOpacity, $opacityValue);
440
- $sgWidth = @sgGetValue($sgWidth, $width);
441
- $sgHeight = @sgGetValue($sgHeight, $height);
442
- $sgInitialWidth = @sgGetValue($sgInitialWidth, $initialWidth);
443
- $sgInitialHeight = @sgGetValue($sgInitialHeight, $initialHeight);
444
- $sgMaxWidth = @sgGetValue($sgMaxWidth, $maxWidth);
445
- $sgMaxHeight = @sgGetValue($sgMaxHeight, $maxHeight);
446
- $sgThemeCloseText = @sgGetValue($sgThemeCloseText, $themeCloseText);
447
- $duration = @sgGetValue($duration, $defaultDuration);
448
- $sgOnceExpiresTime = @sgGetValue($sgOnceExpiresTime, $onceExpiresTime);
449
- $delay = @sgGetValue($delay, $defaultDelay);
450
- $sgPopupDataIframe = @sgGetValue($sgPopupDataIframe, 'http://');
451
- $sgShareUrl = @sgGetValue($sgShareUrl, $shareUrl);
452
- $sgPopupDataHtml = @sgGetValue($sgPopupDataHtml, '');
453
- $sgPopupDataImage = @sgGetValue($sgPopupDataImage, '');
454
- $sgAllowCountries = @sgGetValue($sgAllowCountries, $allowCountries);
455
- $sgCountdownNumbersTextColor = @sgGetValue($sgCountdownNumbersTextColor, $countdownNumbersTextColor);
456
- $sgCountdownNumbersBgColor = @sgGetValue($sgCountdownNumbersBgColor, $countdownNumbersBgColor);
457
- $sgCountdownLang = @sgGetValue($sgCountdownLang, $countdownLang);
458
- $sgSelectedTimeZone = @sgGetValue($sgSelectedTimeZone, $timeZone);
459
- $sgDueDate = @sgGetValue($sgDueDate, $dueDate);
460
- $sgExitIntentTpype = @sgGetValue($sgExitIntentTpype, $exitIntentType);
461
- $sgExitIntntExpire = @sgGetValue($sgExitIntntExpire, $exitIntentExpireTime);
462
- $sgSubsTextWidth = @sgGetValue($sgSubsTextWidth, $subsTextWidth);
463
- $sgSubsBtnWidth = @sgGetValue($sgSubsBtnWidth, $subsBtnWidth);
464
- $sgSubsTextInputBgcolor = @sgGetValue($sgSubsTextInputBgcolor, $subsTextInputBgcolor);
465
- $sgSubsButtonBgcolor = @sgGetValue($sgSubsButtonBgcolor, $subsButtonBgcolor);
466
- $sgSubsTextBordercolor = @sgGetValue($sgSubsTextBordercolor, $subsTextBordercolor);
467
- $sgSubscriptionEmail = @sgGetValue($sgSubscriptionEmail, $subscriptionEmail);
468
- $sgSubsFirstName = @sgGetValue($sgSubsFirstName, $subsFirstName);
469
- $sgSubsLastName = @sgGetValue($sgSubsLastName, $subsLastName);
470
- $sgSubsButtonColor = @sgGetValue($sgSubsButtonColor, $subsButtonColor);
471
- $sgSubsInputsColor = @sgGetValue($sgSubsInputsColor, $subsInputsColor);
472
- $sgSubsBtnTitle = @sgGetValue($sgSubsBtnTitle, $subsBtnTitle);
473
- $sgSubsPlaceholderColor = @sgGetValue($sgSubsPlaceholderColor, $subsPlaceholderColor);
474
- $sgSubsTextHeight = @sgGetValue($sgSubsTextHeight, $subsTextHeight);
475
- $sgSubsBtnHeight = @sgGetValue($sgSubsBtnHeight, $subsBtnHeight);
476
- $sgSuccessMessage = @sgGetValue($sgSuccessMessage, $subsSuccessMessage);
477
- $sgSubsValidateMessage = @sgGetValue($sgSubsValidateMessage, $subsValidationMessage);
478
- $sgSubsBtnProgressTitle = @sgGetValue($sgSubsBtnProgressTitle, $subsBtnProgressTitle);
479
- $sgSubsTextBorderWidth = @sgGetValue($sgSubsTextBorderWidth, $subsTextBorderWidth);
480
- $sgContactNameLabel = @sgGetValue($sgContactNameLabel, $contactName);
481
- $sgContactSubjectLabel = @sgGetValue($sgContactSubjectLabel, $contactSubject);
482
- $sgContactEmailLabel = @sgGetValue($sgContactEmailLabel, $contactEmail);
483
- $sgContactMessageLabel = @sgGetValue($sgContactMessageLabel, $contactMessage);
484
- $sgContactValidationMessage = @sgGetValue($sgContactValidationMessage, $subsValidationMessage);
485
- $sgContactSuccessMessage = @sgGetValue($sgContactSuccessMessage, $contactSuccessMessage);
486
- $sgContactInputsWidth = @sgGetValue($sgContactInputsWidth, $subsTextWidth);
487
- $sgContactInputsHeight = @sgGetValue($sgContactInputsHeight, $subsTextHeight);
488
- $sgContactInputsBorderWidth = @sgGetValue($sgContactInputsBorderWidth, $subsTextBorderWidth);
489
- $sgContactTextInputBgcolor = @sgGetValue($sgContactTextInputBgcolor, $subsTextInputBgcolor);
490
- $sgContactTextBordercolor = @sgGetValue($sgContactTextBordercolor, $subsTextBordercolor);
491
- $sgContactInputsColor = @sgGetValue($sgContactInputsColor, $subsInputsColor);
492
- $sgContactPlaceholderColor = @sgGetValue($sgContactPlaceholderColor, $subsPlaceholderColor);
493
- $sgContactBtnWidth = @sgGetValue($sgContactBtnWidth, $subsBtnWidth);
494
- $sgContactBtnHeight = @sgGetValue($sgContactBtnHeight, $subsBtnHeight);
495
- $sgContactBtnTitle = @sgGetValue($sgContactBtnTitle, $contactBtnTitle);
496
- $sgContactBtnProgressTitle = @sgGetValue($sgContactBtnProgressTitle, $subsBtnProgressTitle);
497
- $sgContactButtonBgcolor = @sgGetValue($sgContactButtonBgcolor, $subsButtonBgcolor);
498
- $sgContactButtonColor = @sgGetValue($sgContactButtonColor, $subsButtonColor);
499
- $sgContactAreaWidth = @sgGetValue($sgContactAreaWidth, $subsTextWidth);
500
- $sgContactAreaHeight = @sgGetValue($sgContactAreaHeight, '');
501
- $sgContactValidateEmail = @sgGetValue($sgContactValidateEmail, $contactValidateEmail);
502
- $sgOverlayCustomClasss = @sgGetValue($sgOverlayCustomClasss, $overlayCustomClasss);
503
- $sgContentCustomClasss = @sgGetValue($sgContentCustomClasss, $contentCustomClasss);
504
-
505
- function sgGetValue($getedVal,$defValue)
506
- {
507
- if (!isset($getedVal)) {
508
- return $defValue;
509
- }
510
- else {
511
- return $getedVal;
512
- }
513
- }
514
-
515
- $radioElements = array(
516
- array(
517
- 'name'=>'shareUrlType',
518
- 'value'=>'activeUrl',
519
- 'additionalHtml'=>''.'<span>'.'Use active URL'.'</span></span>
520
- <span class="span-width-static"></span><span class="dashicons dashicons-info scrollingImg sameImageStyle sg-active-url"></span><span class="info-active-url samefontStyle">If this option is active Share URL will be current page URL.</span>'
521
- ),
522
- array(
523
- 'name'=>'shareUrlType',
524
- 'value'=>'shareUrl',
525
- 'additionalHtml'=>''.'<span>'.'Share url'.'</span></span>'.' <input class="input-width-static sg-active-url" type="text" name="sgShareUrl" value="'.@$sgShareUrl.'">'
526
- )
527
- );
528
-
529
- $countriesRadio = array(
530
- array(
531
- 'name'=>'allowCountries',
532
- 'value'=>'allow',
533
- 'additionalHtml'=>'<span class="countries-radio-text allow-countries">Allow</span>',
534
- 'newline' => false
535
- ),
536
- array(
537
- 'name'=>'allowCountries',
538
- 'value'=>'disallow',
539
- 'additionalHtml'=>'<span class="countries-radio-text">Disallow</span>',
540
- 'newline' => true
541
- )
542
- );
543
-
544
- function sgCreateRadioElements($radioElements,$checkedValue)
545
- {
546
- $content = '';
547
- for ($i = 0; $i < count($radioElements); $i++) {
548
- $checked = '';
549
- $radioElement = @$radioElements[$i];
550
- $name = @$radioElement['name'];
551
- $label = @$radioElement['label'];
552
- $value = @$radioElement['value'];
553
- $additionalHtml = @$radioElement['additionalHtml'];
554
- if ($checkedValue == $value) {
555
- $checked = 'checked';
556
- }
557
- $content .= '<span class="liquid-width"><input class="radio-btn-fix" type="radio" name="'.$name.'" value="'.$value.'" '.$checked.'>';
558
- $content .= $additionalHtml."<br>";
559
- }
560
- return $content;
561
- }
562
-
563
- $radiobuttons = array(
564
- array(
565
- "title" => "Soft mode:",
566
- "value" => "soft",
567
- "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
568
- <span class='infoReposition samefontStyle'>
569
- If the user navigate away from the site the popup will appear.
570
- </span>"
571
- ),
572
- array(
573
- "title" => "Aggressive mode:",
574
- "value" => "aggressive",
575
- "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
576
- <span class='infoReposition samefontStyle'>
577
- If the user try to navigate elsewhere he/she will be interrupted and forced to read the message and choose to leave or stay.
578
- After the alert box popup will appear.
579
- </span>"
580
- ),
581
- array(
582
- "title" => "Soft and Aggressive modes:",
583
- "value" => "softAndAgressive",
584
- "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
585
- <span class='infoReposition samefontStyle'>
586
- This will enable the both modes. Depends which action will be triggered first.
587
- </span>"
588
- ),
589
- array(
590
- "title" => "Aggressive without popup:",
591
- "value" => "agresiveWithoutPopup",
592
- "info" => "<span class='dashicons dashicons-info repositionImg sameImageStyle'></span>
593
- <span class='infoReposition samefontStyle'>
594
- Tha same as aggressive mode but without a popup.
595
- </span>"
596
- ),
597
-
598
- );
599
-
600
-
601
- function createRadiobuttons($elements, $name, $newLine, $selectedInput, $class)
602
- {
603
- $str = "";
604
-
605
- foreach ($elements as $key => $elment) {
606
- $breakLine = "";
607
- $infoIcon = "";
608
- $title = "";
609
- $value = "";
610
- $infoIcon = "";
611
- $checked = "";
612
-
613
- if(isset($elment["title"])) {
614
- $title = $elment["title"];
615
- }
616
- if(isset($elment["value"])) {
617
- $value = $elment["value"];
618
- }
619
- if($newLine) {
620
- $breakLine = "<br>";
621
- }
622
- if(isset($elment["info"])) {
623
- $infoIcon = $elment['info'];
624
- }
625
- if($elment["value"] == $selectedInput) {
626
- $checked = "checked";
627
- }
628
- $str .= "<span class=".$class.">".$elment['title']."</span>
629
- <input type=\"radio\" name=".$name." value=".$value." $checked>".$infoIcon.$breakLine;
630
- }
631
-
632
- echo $str;
633
- }
634
-
635
- $sgPopupEffects = array(
636
- 'No effect' => 'No Effect',
637
- 'flip' => 'flip',
638
- 'shake' => 'shake',
639
- 'wobble' => 'wobble',
640
- 'swing' => 'swing',
641
- 'flash' => 'flash',
642
- 'bounce' => 'bounce',
643
- 'pulse' => 'pulse',
644
- 'rubberBand' => 'rubberBand',
645
- 'tada' => 'tada',
646
- 'jello' => 'jello',
647
- 'rotateIn' => 'rotateIn',
648
- 'fadeIn' => 'fadeIn'
649
- );
650
-
651
- $sgPopupTheme = array(
652
- 'colorbox1.css',
653
- 'colorbox2.css',
654
- 'colorbox3.css',
655
- 'colorbox4.css',
656
- 'colorbox5.css'
657
- );
658
-
659
- $sgFbLikeButtons = array(
660
- 'standard' => 'Standard',
661
- 'box_count' => 'Box with count',
662
- 'button_count' => 'Button with count',
663
- 'button' => 'Button'
664
- );
665
-
666
- $sgTheme = array(
667
- 'flat' => 'flat',
668
- 'classic' => 'classic',
669
- 'minima' => 'minima',
670
- 'plain' => 'plain'
671
- );
672
-
673
- $sgThemeSize = array(
674
- '8' => '8',
675
- '10' => '10',
676
- '12' => '12',
677
- '14' => '14',
678
- '16' => '16',
679
- '18' => '18',
680
- '20' => '20',
681
- '24' => '24'
682
- );
683
-
684
- $sgSocialCount = array(
685
- 'true' => 'True',
686
- 'false' => 'False',
687
- 'inside' => 'Inside'
688
- );
689
-
690
- $sgCountdownType = array(
691
- 1 => 'DD:HH:MM:SS',
692
- 2 => 'DD:HH:MM'
693
- );
694
-
695
- $sgCountdownlang = array(
696
- 'English' => 'English',
697
- 'German' => 'German',
698
- 'Spanish' => 'Spanish',
699
- 'Arabic' => 'Arabic',
700
- 'Italian' => 'Italian',
701
- 'Italian' => 'Italian',
702
- 'Dutch' => 'Dutch',
703
- 'Norwegian' => 'Norwegian',
704
- 'Portuguese' => 'Portuguese',
705
- 'Russian' => 'Russian',
706
- 'Swedish' => 'Swedish',
707
- 'Chinese' => 'Chinese'
708
- );
709
-
710
- $sgExitIntentSelectOptions = array(
711
- "perSesion" => "per Session",
712
- "1" => "per minute",
713
- "10080" => "per 7 days",
714
- "43200" => "per month",
715
- "always" => "always"
716
- );
717
- $sgTextAreaResizeOptions = array(
718
- 'both' => 'Both',
719
- 'horizontal' => 'Horizontal',
720
- 'vertical' => 'Vertical',
721
- 'none' => 'None',
722
- 'inherit' => 'Inherit'
723
- );
724
-
725
- if (SG_POPUP_PRO) {
726
- require_once(SG_APP_POPUP_FILES ."/sg_params_arrays.php");
727
- }
728
-
729
- function sgCreateSelect($options,$name,$selecteOption)
730
- {
731
- $selected ='';
732
- $str = "";
733
- $checked = "";
734
- if ($name == 'theme' || $name == 'restrictionAction') {
735
-
736
- $popup_style_name = 'popup_theme_name';
737
- $firstOption = array_shift($options);
738
- $i = 1;
739
- foreach ($options as $key) {
740
- $checked ='';
741
-
742
- if ($key == $selecteOption) {
743
- $checked = "checked";
744
- }
745
- $i++;
746
- $str .= "<input type='radio' name=\"$name\" value=\"$key\" $checked class='popup_theme_name' sgPoupNumber=".$i.">";
747
-
748
- }
749
- if ($checked == ''){
750
- $checked = "checked";
751
- }
752
- $str = "<input type='radio' name=\"$name\" value=\"".$firstOption."\" $checked class='popup_theme_name' sgPoupNumber='1'>".$str;
753
- return $str;
754
- }
755
- else {
756
- @$popup_style_name = ($popup_style_name) ? $popup_style_name : '';
757
- $str .= "<select name=$name class=$popup_style_name input-width-static >";
758
- foreach ($options as $key=>$option) {
759
- if ($key == $selecteOption) {
760
- $selected = "selected";
761
- }
762
- else {
763
- $selected ='';
764
- }
765
- $str .= "<option value='".$key."' ".$selected." >$option</potion>";
766
- }
767
-
768
- $str .="</select>" ;
769
- return $str;
770
-
771
- }
772
-
773
- }
774
-
775
- $getReview = get_option("SG_COLOSE_REVIEW_BLOCK");
776
- if(!$getReview) {
777
- echo SGFunctions::addReview();
778
- }
779
-
780
- if (isset($_GET['saved']) && $_GET['saved']==1) {
781
- echo '<div id="default-message" class="updated notice notice-success is-dismissible" ><p>Popup updated.</p></div>';
782
- }
783
- if (isset($_GET["titleError"])): ?>
784
- <div class="error notice" id="title-error-message">
785
- <p>Invalid Title</p>
786
- </div>
787
- <?php endif; ?>
788
-
789
-
790
- <form method="POST" action="<?php echo SG_APP_POPUP_ADMIN_URL;?>admin-post.php" id="add-form">
791
- <input type="hidden" name="action" value="save_popup">
792
- <div class="crud-wrapper">
793
- <div class="cereate-title-wrapper">
794
- <div class="sg-title-crud">
795
- <?php if (isset($id)): ?>
796
- <h2>Edit popup</h2>
797
- <?php else: ?>
798
- <h2>Create new popup</h2>
799
- <?php endif; ?>
800
- </div>
801
- <div class="button-wrapper">
802
- <p class="submit">
803
- <?php if (!SG_POPUP_PRO): ?>
804
- <input class="crud-to-pro" type="button" value="Upgrade to PRO version" onclick="window.open('<?php echo SG_POPUP_PRO_URL;?>')"><div class="clear"></div>
805
- <?php endif; ?>
806
- <input type="submit" id="sg-save-button" class="button-primary" value="<?php echo 'Save Changes'; ?>">
807
- </p>
808
- </div>
809
- </div>
810
- <div class="clear"></div>
811
- <div class="general-wrapper">
812
- <div id="titlediv">
813
- <div id="titlewrap">
814
- <input id="title" class="sg-js-popup-title" type="text" name="title" size="30" value="<?php echo esc_attr(@$title)?>" spellcheck="true" autocomplete="off" required = "required" placeholder='Enter title here'>
815
- </div>
816
- </div>
817
- <div id="left-main-div">
818
- <div id="sg-general">
819
- <div id="post-body" class="metabox-holder columns-2">
820
- <div id="postbox-container-2" class="postbox-container">
821
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
822
- <div class="postbox popupBuilder_general_postbox sgSameWidthPostBox" style="display: block;">
823
- <div class="handlediv generalTitle" title="Click to toggle"><br></div>
824
- <h3 class="hndle ui-sortable-handle generalTitle" style="cursor: pointer"><span>General</span></h3>
825
- <div class="generalContent sgSameWidthPostBox">
826
- <?php require_once("main_section/".$popupType.".php");?>
827
- <input type="hidden" name="type" value="<?php echo $popupType;?>">
828
- <span class="liquid-width" id="theme-span">Popup theme:</span>
829
- <?php echo sgCreateSelect($sgPopupTheme,'theme',esc_html(@$sgColorboxTheme));?>
830
- <div class="theme1 sg-hide"></div>
831
- <div class="theme2 sg-hide"></div>
832
- <div class="theme3 sg-hide"></div>
833
- <div class="theme4 sg-hide"></div>
834
- <div class="theme5 sg-hide"></div>
835
- <div class="theme-colse-text sg-hide">
836
- <span class="liquid-width">Close button text:</span>
837
- <input type="text" name="theme-close-text" value="<?php echo esc_attr($sgThemeCloseText);?>">
838
- </div>
839
- </div>
840
- </div>
841
-
842
- </div>
843
- </div>
844
- </div>
845
- </div>
846
- <div id="effect">
847
- <div id="post-body" class="metabox-holder columns-2">
848
- <div id="postbox-container-2" class="postbox-container">
849
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
850
- <div class="postbox popupBuilder_effect_postbox sgSameWidthPostBox" style="display: block;">
851
- <div class="handlediv effectTitle" title="Click to toggle"><br></div>
852
- <h3 class="hndle ui-sortable-handle effectTitle" style="cursor: pointer"><span>Effects</span></h3>
853
- <div class="effectsContent">
854
- <span class="liquid-width">Effect type:</span>
855
- <?php echo sgCreateSelect($sgPopupEffects,'effect',esc_html(@$effect));?>
856
- <span class="js-preview-effect"></span>
857
- <div class="effectWrapper"><div id="effectShow" ></div></div>
858
-
859
- <span class="liquid-width">Effect duration:</span>
860
- <input class="input-width-static" type="text" name="duration" value="<?php echo esc_attr($duration); ?>" pattern = "\d+" title="It must be number" /><span class="dashicons dashicons-info contentClick infoImageDuration sameImageStyle"></span><span class="infoDuration samefontStyle">Specify how long the popup appearance animation should take (in sec).</span></br>
861
-
862
- <span class="liquid-width">Popup opening delay:</span>
863
- <input class="input-width-static" type="text" name="delay" value="<?php echo esc_attr($delay);?>" pattern = "\d+" title="It must be number"/><span class="dashicons dashicons-info contentClick infoImageDelay sameImageStyle"></span><span class="infoDelay samefontStyle">Specify how long the popup appearance should be delayed after loading the page (in sec).</span></br>
864
- </div>
865
- </div>
866
-
867
- </div>
868
- </div>
869
- </div>
870
- </div>
871
- <?php require_once("options_section/".$popupType.".php");?>
872
- </div>
873
- <div id="right-main-div">
874
- <div id="right-main">
875
- <div id="dimentions">
876
- <div id="post-body" class="metabox-holder columns-2">
877
- <div id="postbox-container-2" class="postbox-container">
878
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
879
- <div class="postbox popupBuilder_dimention_postbox sgSameWidthPostBox" style="display: block;">
880
- <div class="handlediv dimentionsTitle" title="Click to toggle"><br></div>
881
- <h3 class="hndle ui-sortable-handle dimentionsTitle" style="cursor: pointer"><span>Dimensions</span></h3>
882
- <div class="dimensionsContent">
883
- <span class="liquid-width">Width:</span>
884
- <input class="input-width-static" type="text" name="width" value="<?php echo esc_attr($sgWidth); ?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
885
- <span class="liquid-width">Height:</span>
886
- <input class="input-width-static" type="text" name="height" value="<?php echo esc_attr($sgHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
887
- <span class="liquid-width">Max width:</span>
888
- <input class="input-width-static" type="text" name="maxWidth" value="<?php echo esc_attr($sgMaxWidth);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
889
- <span class="liquid-width">Max height:</span>
890
- <input class="input-width-static" type="text" name="maxHeight" value="<?php echo esc_attr(@$sgMaxHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
891
- <span class="liquid-width">Initial width:</span>
892
- <input class="input-width-static" type="text" name="initialWidth" value="<?php echo esc_attr($sgInitialWidth);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
893
- <span class="liquid-width">Initial height:</span>
894
- <input class="input-width-static" type="text" name="initialHeight" value="<?php echo esc_attr($sgInitialHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
895
- </div>
896
- </div>
897
-
898
- </div>
899
- </div>
900
- </div>
901
- </div>
902
- <div id="options">
903
- <div id="post-body" class="metabox-holder columns-2">
904
- <div id="postbox-container-2" class="postbox-container">
905
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
906
- <div class="postbox popupBuilder_options_postbox sgSameWidthPostBox" style="display: block;">
907
- <div class="handlediv optionsTitle" title="Click to toggle"><br></div>
908
- <h3 class="hndle ui-sortable-handle optionsTitle" style="cursor: pointer"><span>Options</span></h3>
909
- <div class="optionsContent">
910
- <span class="liquid-width">Dismiss on &quot;esc&quot; key:</span><input class="input-width-static" type="checkbox" name="escKey" <?php echo $sgEscKey;?>/>
911
- <span class="dashicons dashicons-info escKeyImg sameImageStyle"></span><span class="infoEscKey samefontStyle">The popup will be dismissed when user presses on 'esc' key.</span></br>
912
-
913
- <span class="liquid-width" id="createDescribeClose">Show &quot;close&quot; button:</span><input class="input-width-static" type="checkbox" name="closeButton" <?php echo $sgCloseButton;?> />
914
- <span class="dashicons dashicons-info CloseImg sameImageStyle"></span><span class="infoCloseButton samefontStyle">The popup will contain 'close' button.</span><br>
915
-
916
- <span class="liquid-width">Enable content scrolling:</span><input class="input-width-static" type="checkbox" name="scrolling" <?php echo $sgScrolling;?> />
917
- <span class="dashicons dashicons-info scrollingImg sameImageStyle"></span><span class="infoScrolling samefontStyle">If the containt is larger then the specified dimentions, then the content will be scrollable.</span><br>
918
-
919
- <span class="liquid-width">Enable responsiveness:</span><input class="input-width-static" type="checkbox" name="reposition" <?php echo $sgReposition;?> />
920
- <span class="dashicons dashicons-info repositionImg sameImageStyle"></span><span class="infoReposition samefontStyle">The popup will be resized/repositioned automatically when window is being resized.</span><br>
921
-
922
- <span class="liquid-width">Dismiss on overlay click:</span><input class="input-width-static" type="checkbox" name="overlayClose" <?php echo $sgOverlayClose;?> />
923
- <span class="dashicons dashicons-info overlayImg sameImageStyle"></span><span class="infoOverlayClose samefontStyle">The popup will be dismissed when user clicks beyond of the popup area.</span><br>
924
-
925
- <span class="liquid-width">Dismiss on content click:</span><input class="input-width-static" type="checkbox" name="contentClick" <?php echo $sgContentClick;?> />
926
- <span class="dashicons dashicons-info contentClick sameImageStyle"></span><span class="infoContentClick samefontStyle">The popup will be dismissed when user clicks inside popup area.</span><br>
927
-
928
- <span class="liquid-width">Change overlay color:</span><div id="color-picker"><input class="sgOverlayColor" id="sgOverlayColor" type="text" name="sgOverlayColor" value="<?php echo esc_attr(@$sgOverlayColor); ?>" /></div><br>
929
-
930
- <span class="liquid-width" id="createDescribeOpacitcy">Background overlay opacity:</span><div class="slider-wrapper">
931
- <input type="text" class="js-decimal" value="<?php echo esc_attr($sgOpacity);?>" rel="<?php echo esc_attr($sgOpacity);?>" name="opacity"/>
932
- <div id="js-display-decimal" class="display-box"></div>
933
- </div><br>
934
-
935
- <span class="liquid-width">Overlay custom class:</span><input class="input-width-static" type="text" name="sgOverlayCustomClasss" value="<?php echo esc_attr(@$sgOverlayCustomClasss);?>">
936
- <br>
937
-
938
- <span class="liquid-width">Content custom class:</span><input class="input-width-static" type="text" name="sgContentCustomClasss" value="<?php echo esc_attr(@$sgContentCustomClasss);?>">
939
- <br>
940
-
941
- <span class="liquid-width" id="createDescribeFixed">Popup location:</span><input class="input-width-static js-checkbox-acordion" type="checkbox" name="popupFixed" <?php echo $sgPopupFixed;?> />
942
- <div class="js-popop-fixeds">
943
- <span class="fix-wrapper-style" >&nbsp;</span>
944
- <div class="fixed-wrapper">
945
- <div class="js-fixed-position-style" id="fixed-position1" data-sgvalue="1"></div>
946
- <div class="js-fixed-position-style" id="fixed-position2"data-sgvalue="2"></div>
947
- <div class="js-fixed-position-style" id="fixed-position3" data-sgvalue="3"></div>
948
- <div class="js-fixed-position-style" id="fixed-position4" data-sgvalue="4"></div>
949
- <div class="js-fixed-position-style" id="fixed-position5" data-sgvalue="5"></div>
950
- <div class="js-fixed-position-style" id="fixed-position6" data-sgvalue="6"></div>
951
- <div class="js-fixed-position-style" id="fixed-position7" data-sgvalue="7"></div>
952
- <div class="js-fixed-position-style" id="fixed-position8" data-sgvalue="8"></div>
953
- <div class="js-fixed-position-style" id="fixed-position9" data-sgvalue="9"></div>
954
- </div>
955
- </div>
956
- <input type="hidden" name="fixedPostion" class="js-fixed-postion" value="<?php echo esc_attr(@$sgFixedPostion);?>">
957
- </div>
958
- </div>
959
-
960
- </div>
961
- </div>
962
- </div>
963
- </div>
964
- <?php if (SG_POPUP_PRO) : require_once("options_section/pro.php"); ?>
965
- <?php else: ?>
966
- <div class="pro-options" onclick="window.open('http://sygnoos.com/wordpress-popup/')"></div>
967
- <?php endif; ?>
968
- </div>
969
- </div>
970
- <div class="clear"></div>
971
- <input type="hidden" class="button-primary" value="<?php echo esc_attr(@$id);?>" name="hidden_popup_number" />
972
- </div>
973
- </div>
974
- </form>
975
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
976
  SGFunctions::showInfo();
1
+ <?php
2
+ $popupType = @$_GET['type'];
3
+ if (!$popupType) {
4
+ $popupType = 'html';
5
+ }
6
+ $popupName = "SG".ucfirst(strtolower($popupType));
7
+ $popupClassName = $popupName."Popup";
8
+ require_once(SG_APP_POPUP_PATH ."/classes/".$popupClassName.".php");
9
+ $obj = new $popupClassName();
10
+
11
+ global $removeOptions;
12
+ $removeOptions = $obj->getRemoveOptions();
13
+
14
+ if (isset($_GET['id'])) {
15
+ $id = (int)$_GET['id'];
16
+ $result = call_user_func(array($popupClassName, 'findById'), $id);
17
+ if (!$result) {
18
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."page=edit-popup&type=".$popupType."");
19
+ }
20
+
21
+ switch ($popupType) {
22
+ case 'iframe':
23
+ $sgPopupDataIframe = $result->getUrl();
24
+ break;
25
+ case 'video':
26
+ $sgPopupDataVideo = $result->getRealUrl();
27
+ $sgVideoOptions = $result->getVideoOptions();
28
+ break;
29
+ case 'image':
30
+ $sgPopupDataImage = $result->getUrl();
31
+ break;
32
+ case 'html':
33
+ $sgPopupDataHtml = $result->getContent();
34
+ break;
35
+ case 'fblike':
36
+ $sgPopupDataFblike = $result->getContent();
37
+ $sgFlikeOptions = $result->getFblikeOptions();
38
+ break;
39
+ case 'shortcode':
40
+ $sgPopupDataShortcode = $result->getShortcode();
41
+ break;
42
+ case 'ageRestriction':
43
+ $sgPopupAgeRestriction = ($result->getContent());
44
+ $sgYesButton = sgSafeStr($result->getYesButton());
45
+ $sgNoButton = sgSafeStr($result->getNoButton());
46
+ $sgRestrictionUrl = sgSafeStr($result->getRestrictionUrl());
47
+ break;
48
+ case 'countdown':
49
+ $sgCoundownContent = $result->getCountdownContent();
50
+ $countdownOptions = json_decode(sgSafeStr($result->getCountdownOptions()),true);
51
+ $sgCountdownNumbersBgColor = $countdownOptions['countdownNumbersBgColor'];
52
+ $sgCountdownNumbersTextColor = $countdownOptions['countdownNumbersTextColor'];
53
+ $sgDueDate = $countdownOptions['sg-due-date'];
54
+ @$sgGetCountdownType = $countdownOptions['sg-countdown-type'];
55
+ $sgCountdownLang = $countdownOptions['counts-language'];
56
+ @$sgCountdownPosition = $countdownOptions['coundown-position'];
57
+ @$sgSelectedTimeZone = $countdownOptions['sg-time-zone'];
58
+ break;
59
+ case 'social':
60
+ $sgSocialContent = ($result->getSocialContent());
61
+ $sgSocialButtons = sgSafeStr($result->getButtons());
62
+ $sgSocialOptions = sgSafeStr($result->getSocialOptions());
63
+ break;
64
+ case 'exitIntent':
65
+ $sgExitIntentContent = $result->getContent();
66
+ $exitIntentOptions = $result->getExitIntentOptions();
67
+ break;
68
+ case 'subscription':
69
+ $sgSunbscriptionContent = $result->getContent();
70
+ $subscriptionOptions = $result->getSubscriptionOptions();
71
+ break;
72
+ case 'contactForm':
73
+ $params = $result->getParams();
74
+ $sgContactFormContent = $result->getContent();
75
+ break;
76
+ }
77
+
78
+ $title = $result->getTitle();
79
+ $jsonData = json_decode($result->getOptions(), true);
80
+ $sgEscKey = @$jsonData['escKey'];
81
+ $sgScrolling = @$jsonData['scrolling'];
82
+ $sgCloseButton = @$jsonData['closeButton'];
83
+ $sgReposition = @$jsonData['reposition'];
84
+ $sgOverlayClose = @$jsonData['overlayClose'];
85
+ $sgOverlayColor = @$jsonData['sgOverlayColor'];
86
+ $sgContentBackgroundColor = @$jsonData['sg-content-background-color'];
87
+ $sgContentClick = @$jsonData['contentClick'];
88
+ $sgOpacity = @$jsonData['opacity'];
89
+ $sgPopupFixed = @$jsonData['popupFixed'];
90
+ $sgFixedPostion = @$jsonData['fixedPostion'];
91
+ $sgOnScrolling = @$jsonData['onScrolling'];
92
+ $beforeScrolingPrsent = @$jsonData['beforeScrolingPrsent'];
93
+ $duration = @$jsonData['duration'];
94
+ $delay = @$jsonData['delay'];
95
+ $sgThemeCloseText = @$jsonData['theme-close-text'];
96
+ $effect =@$jsonData['effect'];
97
+ $sgInitialWidth = @$jsonData['initialWidth'];
98
+ $sgInitialHeight = @$jsonData['initialHeight'];
99
+ $sgWidth = @$jsonData['width'];
100
+ $sgHeight = @$jsonData['height'];
101
+ $sgMaxWidth = @$jsonData['maxWidth'];
102
+ $sgMaxHeight = @$jsonData['maxHeight'];
103
+ $sgForMobile = @$jsonData['forMobile'];
104
+ $sgOpenOnMobile = @$jsonData['openMobile'];
105
+ $sgAllPages = @$jsonData['allPages'];
106
+ $sgRepeatPopup = @$jsonData['repeatPopup'];
107
+ $sgPopupAppearNumberLimit = @$jsonData['popup-appear-number-limit'];
108
+ $sgDisablePopup = @$jsonData['disablePopup'];
109
+ $sgDisablePopupOverlay = @$jsonData['disablePopupOverlay'];
110
+ $sgPopupClosingTimer = @$jsonData['popupClosingTimer'];
111
+ $sgAutoClosePopup = @$jsonData['autoClosePopup'];
112
+ $sgCountryStatus = @$jsonData['countryStatus'];
113
+ $sgAllPagesStatus = @$jsonData['showAllPages'];
114
+ $allSelectedPages = @$jsonData['allSelectedPages'];
115
+ $sgAllPostStatus = @$jsonData['showAllPosts'];
116
+ $allSelectedPosts = @$jsonData['allSelectedPosts'];
117
+ $sgAllowCountries = @$jsonData['allowCountries'];
118
+ $sgLogedUser = @$jsonData['loggedin-user'];
119
+ $sgUserSeperate = @$jsonData['sg-user-status'];
120
+ $sgCountryName = @$jsonData['countryName'];
121
+ $sgCountryIso = @$jsonData['countryIso'];
122
+ $sgPopupTimerStatus = @$jsonData['popup-timer-status'];
123
+ $sgPopupFinishTimer = @$jsonData['popup-finish-timer'];
124
+ $sgPopupStartTimer = @$jsonData['popup-start-timer'];
125
+ $sgColorboxTheme = @$jsonData['theme'];
126
+ $sgOverlayCustomClasss = @$jsonData['sgOverlayCustomClasss'];
127
+ $sgContentCustomClasss = @$jsonData['sgContentCustomClasss'];
128
+ $sgOnceExpiresTime = @$jsonData['onceExpiresTime'];
129
+ $sgRestrictionAction = @$jsonData['restrictionAction'];
130
+ $yesButtonBackgroundColor = @sgSafeStr($jsonData['yesButtonBackgroundColor']);
131
+ $noButtonBackgroundColor = @sgSafeStr($jsonData['noButtonBackgroundColor']);
132
+ $yesButtonTextColor = @sgSafeStr($jsonData['yesButtonTextColor']);
133
+ $noButtonTextColor = @sgSafeStr($jsonData['noButtonTextColor']);
134
+ $yesButtonRadius = @sgSafeStr($jsonData['yesButtonRadius']);
135
+ $noButtonRadius = @sgSafeStr($jsonData['noButtonRadius']);
136
+ $sgSocialOptions = json_decode(@$sgSocialOptions,true);
137
+ $sgShareUrl = $sgSocialOptions['sgShareUrl'];
138
+ $shareUrlType = @sgSafeStr($sgSocialOptions['shareUrlType']);
139
+ $fbShareLabel = @sgSafeStr($sgSocialOptions['fbShareLabel']);
140
+ $lindkinLabel = @sgSafeStr($sgSocialOptions['lindkinLabel']);
141
+ $googLelabel = @sgSafeStr($sgSocialOptions['googLelabel']);
142
+ $twitterLabel = @sgSafeStr($sgSocialOptions['twitterLabel']);
143
+ $pinterestLabel = @sgSafeStr($sgSocialOptions['pinterestLabel']);
144
+ $sgMailSubject = @sgSafeStr($sgSocialOptions['sgMailSubject']);
145
+ $sgMailLable = @sgSafeStr($sgSocialOptions['sgMailLable']);
146
+ $sgSocialButtons = json_decode(@$sgSocialButtons,true);
147
+ $sgTwitterStatus = @sgSafeStr($sgSocialButtons['sgTwitterStatus']);
148
+ $sgFbStatus = @sgSafeStr($sgSocialButtons['sgFbStatus']);
149
+ $sgEmailStatus = @sgSafeStr($sgSocialButtons['sgEmailStatus']);
150
+ $sgLinkedinStatus = @sgSafeStr($sgSocialButtons['sgLinkedinStatus']);
151
+ $sgGoogleStatus = @sgSafeStr($sgSocialButtons['sgGoogleStatus']);
152
+ $sgPinterestStatus = @sgSafeStr($sgSocialButtons['sgPinterestStatus']);
153
+ $sgSocialTheme = @sgSafeStr($sgSocialOptions['sgSocialTheme']);
154
+ $sgSocialButtonsSize = @sgSafeStr($sgSocialOptions['sgSocialButtonsSize']);
155
+ $sgSocialLabel = @sgSafeStr($sgSocialOptions['sgSocialLabel']);
156
+ $sgSocialShareCount = @sgSafeStr($sgSocialOptions['sgSocialShareCount']);
157
+ $sgRoundButton = @sgSafeStr($sgSocialOptions['sgRoundButton']);
158
+ $sgPushToBottom = @sgSafeStr($jsonData['pushToBottom']);
159
+ $exitIntentOptions = json_decode(@$exitIntentOptions, true);
160
+ $sgExitIntentTpype = @$exitIntentOptions['exit-intent-type'];
161
+ $sgExitIntntExpire = @$exitIntentOptions['exit-intent-expire-time'];
162
+ $sgExitIntentAlert = @$exitIntentOptions['exit-intent-alert'];
163
+ $sgVideoOptions = json_decode(@$sgVideoOptions, true);
164
+ $sgVideoAutoplay = $sgVideoOptions['video-autoplay'];
165
+ $sgFlikeOptions = json_decode(@$sgFlikeOptions, true);
166
+ $sgFblikeurl = @$sgFlikeOptions['fblike-like-url'];
167
+ $sgFbLikeLayout = @$sgFlikeOptions['fblike-layout'];
168
+ $subscriptionOptions = json_decode(@$subscriptionOptions, true);
169
+ $sgSubsFirstNameStatus = $subscriptionOptions['subs-first-name-status'];
170
+ $sgSubsLastNameStatus = $subscriptionOptions['subs-last-name-status'];
171
+ $sgSubscriptionEmail = @$subscriptionOptions['subscription-email'];
172
+ $sgSubsFirstName = @$subscriptionOptions['subs-first-name'];
173
+ $sgSubsLastName = @$subscriptionOptions['subs-last-name'];
174
+ $sgSubsButtonBgcolor = @$subscriptionOptions['subs-button-bgcolor'];
175
+ $sgSubsBtnWidth = @$subscriptionOptions['subs-btn-width'];
176
+ $sgSubsBtnHeight = @$subscriptionOptions['subs-btn-height'];
177
+ $sgSubsTextHeight = @$subscriptionOptions['subs-text-height'];
178
+ $sgSubsBtnTitle = @$subscriptionOptions['subs-btn-title'];
179
+ $sgSubsTextInputBgcolor = @$subscriptionOptions['subs-text-input-bgcolor'];
180
+ $sgSubsTextBordercolor = @$subscriptionOptions['subs-text-bordercolor'];
181
+ $sgSubsTextWidth = @$subscriptionOptions['subs-text-width'];
182
+ $sgSubsButtonColor = @$subscriptionOptions['subs-button-color'];
183
+ $sgSubsInputsColor = @$subscriptionOptions['subs-inputs-color'];
184
+ $sgSubsPlaceholderColor = @$subscriptionOptions['subs-placeholder-color'];
185
+ $sgSubsValidateMessage = @$subscriptionOptions['subs-validation-message'];
186
+ $sgSuccessMessage = @$subscriptionOptions['subs-success-message'];
187
+ $sgSubsBtnProgressTitle = @$subscriptionOptions['subs-btn-progress-title'];
188
+ $sgSubsTextBorderWidth = @$subscriptionOptions['subs-text-border-width'];
189
+ $contactFormOptions = json_decode(@$params, true);
190
+ $sgContactNameLabel = @$contactFormOptions['contact-name'];
191
+ $sgContactSubjectLabel = @$contactFormOptions['contact-subject'];
192
+ $sgContactEmailLabel = @$contactFormOptions['contact-email'];
193
+ $sgContactMessageLabel = @$contactFormOptions['contact-message'];
194
+ $sgContactValidationMessage = @$contactFormOptions['contact-validation-message'];
195
+ $sgContactSuccessMessage = @$contactFormOptions['contact-success-message'];
196
+ $sgContactInputsWidth = @$contactFormOptions['contact-inputs-width'];
197
+ $sgContactInputsHeight = @$contactFormOptions['contact-inputs-height'];
198
+ $sgContactInputsBorderWidth = @$contactFormOptions['contact-inputs-border-width'];
199
+ $sgContactTextInputBgcolor = @$contactFormOptions['contact-text-input-bgcolor'];
200
+ $sgContactTextBordercolor = @$contactFormOptions['contact-text-bordercolor'];
201
+ $sgContactInputsColor = @$contactFormOptions['contact-inputs-color'];
202
+ $sgContactPlaceholderColor = @$contactFormOptions['contact-placeholder-color'];
203
+ $sgContactBtnWidth = @$contactFormOptions['contact-btn-width'];
204
+ $sgContactBtnHeight = @$contactFormOptions['contact-btn-height'];
205
+ $sgContactBtnTitle = @$contactFormOptions['contact-btn-title'];
206
+ $sgContactBtnProgressTitle = @$contactFormOptions['contact-btn-progress-title'];
207
+ $sgContactButtonBgcolor = @$contactFormOptions['contact-button-bgcolor'];
208
+ $sgContactButtonColor = @$contactFormOptions['contact-button-color'];
209
+ $sgContactAreaWidth = @$contactFormOptions['contact-area-width'];
210
+ $sgContactAreaHeight = @$contactFormOptions['contact-area-height'];
211
+ $sgContactResize = @$contactFormOptions['sg-contact-resize'];
212
+ $sgContactValidateEmail = @$contactFormOptions['contact-validate-email'];
213
+ $sgContactResiveEmail = @$contactFormOptions['contact-receive-email'];
214
+ $sgContactFailMessage = @$contactFormOptions['contact-fail-message'];
215
+ }
216
+
217
+ $sgPopup = array(
218
+ 'escKey'=> true,
219
+ 'closeButton' => true,
220
+ 'scrolling'=> true,
221
+ 'opacity'=>0.8,
222
+ 'reposition' => true,
223
+ 'width' => false,
224
+ 'height' => false,
225
+ 'initialWidth' => '300',
226
+ 'initialHeight' => '100',
227
+ 'maxWidth' => false,
228
+ 'maxHeight' => false,
229
+ 'overlayClose' => true,
230
+ 'contentClick'=>false,
231
+ 'fixed' => false,
232
+ 'top' => false,
233
+ 'right' => false,
234
+ 'bottom' => false,
235
+ 'left' => false,
236
+ 'duration' => 1,
237
+ 'delay' => 0,
238
+ 'theme-close-text' => 'Close'
239
+ );
240
+
241
+ $popupProDefaultValues = array(
242
+ 'closeType' => false,
243
+ 'onScrolling' => false,
244
+ 'video-autoplay' => false,
245
+ 'forMobile' => false,
246
+ 'openMobile' => false,
247
+ 'repetPopup' => false,
248
+ 'disablePopup' => false,
249
+ 'disablePopupOverlay' => false,
250
+ 'autoClosePopup' => false,
251
+ 'fbStatus' => true,
252
+ 'twitterStatus' => true,
253
+ 'emailStatus' => true,
254
+ 'linkedinStatus' => true,
255
+ 'googleStatus' => true,
256
+ 'pinterestStatus' => true,
257
+ 'sgSocialLabel'=>true,
258
+ 'roundButtons'=>false,
259
+ 'sgShareUrl' => 'http://',
260
+ 'pushToBottom' => true,
261
+ 'allPages' => false,
262
+ 'allPosts' => false,
263
+ 'onceExpiresTime' => 7,
264
+ 'popup-appear-number-limit' => 1,
265
+ 'overlay-custom-classs' => 'sg-popup-overlay',
266
+ 'content-custom-classs' => 'sg-popup-content',
267
+ 'countryStatus' => false,
268
+ 'sg-user-status' => false,
269
+ 'allowCountries' => 'allow',
270
+ 'loggedin-user' => 'true',
271
+ 'countdownNumbersTextColor' => '',
272
+ 'countdownNumbersBgColor' => '',
273
+ 'countDownLang' => 'English',
274
+ 'popup-timer-status' => false,
275
+ 'countdown-position' => true,
276
+ 'time-zone' => 'Etc/GMT',
277
+ 'due-date' => date('M d Y', strtotime(' +1 day')),
278
+ 'popup-start-timer' => date('M d Y'),
279
+ 'exit-intent-type' => "soft",
280
+ 'exit-intent-expire-time' => '1',
281
+ 'subs-first-name-status' => true,
282
+ 'subs-last-name-status' => true,
283
+ 'subscription-email' => 'Email *',
284
+ 'subs-first-name' => 'First name',
285
+ 'subs-last-name' => 'Last name',
286
+ 'subs-button-bgcolor' => '#239744',
287
+ 'subs-button-color' => '#FFFFFF',
288
+ 'subs-text-input-bgcolor' => '#FFFFFF',
289
+ 'subs-inputs-color' => '#000000',
290
+ 'subs-placeholder-color' => '#CCCCCC',
291
+ 'subs-text-bordercolor' => '#CCCCCC',
292
+ 'subs-btn-title' => 'Subscribe',
293
+ 'subs-text-height' => '30px',
294
+ 'subs-btn-height' => '30px',
295
+ 'subs-text-width' => '200px',
296
+ 'subs-btn-width' => '200px',
297
+ 'subs-text-border-width' => '2px',
298
+ 'subs-success-message' =>'You have successfully subscribed to the newsletter',
299
+ 'subs-validation-message' => 'This field is required.',
300
+ 'subs-btn-progress-title' => 'Please wait...',
301
+ 'contact-name' => 'Name *',
302
+ 'contact-email' => 'E-mail *',
303
+ 'contact-message' => 'Message *',
304
+ 'contact-subject' => 'Subject *',
305
+ 'contact-success-message' => 'Your message has been successfully sent.',
306
+ 'contact-btn-title' => 'Contact',
307
+ 'contact-validate-email' => 'Please enter a valid email.',
308
+ 'contact-receive-email' => get_option('admin_email'),
309
+ 'contact-fail-message' => 'Unable to send.'
310
+ );
311
+
312
+ $escKey = sgBoolToChecked($sgPopup['escKey']);
313
+ $closeButton = sgBoolToChecked($sgPopup['closeButton']);
314
+ $scrolling = sgBoolToChecked($sgPopup['scrolling']);
315
+ $reposition = sgBoolToChecked($sgPopup['reposition']);
316
+ $overlayClose = sgBoolToChecked($sgPopup['overlayClose']);
317
+ $contentClick = sgBoolToChecked($sgPopup['contentClick']);
318
+
319
+ $closeType = sgBoolToChecked($popupProDefaultValues['closeType']);
320
+ $onScrolling = sgBoolToChecked($popupProDefaultValues['onScrolling']);
321
+ $userSeperate = sgBoolToChecked($popupProDefaultValues['sg-user-status']);
322
+ $forMobile = sgBoolToChecked($popupProDefaultValues['forMobile']);
323
+ $openMobile = sgBoolToChecked($popupProDefaultValues['openMobile']);
324
+ $popupTimerStatus = sgBoolToChecked($popupProDefaultValues['popup-timer-status']);
325
+ $repetPopup = sgBoolToChecked($popupProDefaultValues['repetPopup']);
326
+ $disablePopup = sgBoolToChecked($popupProDefaultValues['disablePopup']);
327
+ $disablePopupOverlay = sgBoolToChecked($popupProDefaultValues['disablePopupOverlay']);
328
+ $autoClosePopup = sgBoolToChecked($popupProDefaultValues['autoClosePopup']);
329
+ $fbStatus = sgBoolToChecked($popupProDefaultValues['fbStatus']);
330
+ $twitterStatus = sgBoolToChecked($popupProDefaultValues['twitterStatus']);
331
+ $emailStatus = sgBoolToChecked($popupProDefaultValues['emailStatus']);
332
+ $linkedinStatus = sgBoolToChecked($popupProDefaultValues['linkedinStatus']);
333
+ $googleStatus = sgBoolToChecked($popupProDefaultValues['googleStatus']);
334
+ $pinterestStatus = sgBoolToChecked($popupProDefaultValues['pinterestStatus']);
335
+ $socialLabel = sgBoolToChecked($popupProDefaultValues['sgSocialLabel']);
336
+ $roundButtons = sgBoolToChecked($popupProDefaultValues['roundButtons']);
337
+ $shareUrl = $popupProDefaultValues['sgShareUrl'];
338
+ $pushToBottom = sgBoolToChecked($popupProDefaultValues['pushToBottom']);
339
+ $allPages = sgBoolToChecked($popupProDefaultValues['allPages']);
340
+ $allPosts = sgBoolToChecked($popupProDefaultValues['allPosts']);
341
+ $onceExpiresTime = $popupProDefaultValues['onceExpiresTime'];
342
+ $popupAppearNumberLimit = $popupProDefaultValues['popup-appear-number-limit'];
343
+ $countryStatus = sgBoolToChecked($popupProDefaultValues['countryStatus']);
344
+ $allowCountries = $popupProDefaultValues['allowCountries'];
345
+ $logedUser = $popupProDefaultValues['loggedin-user'];
346
+ $countdownNumbersTextColor = $popupProDefaultValues['countdownNumbersTextColor'];
347
+ $countdownNumbersBgColor = $popupProDefaultValues['countdownNumbersBgColor'];
348
+ $countdownLang = $popupProDefaultValues['countDownLang'];
349
+ $countdownPosition = $popupProDefaultValues['countdown-position'];
350
+ $timeZone = $popupProDefaultValues['time-zone'];
351
+ $dueDate = $popupProDefaultValues['due-date'];
352
+ $popupStartTimer = $popupProDefaultValues['popup-start-timer'];
353
+ $exitIntentType = $popupProDefaultValues['exit-intent-type'];
354
+ $exitIntentExpireTime = $popupProDefaultValues['exit-intent-expire-time'];
355
+ $subsFirstNameStatus = sgBoolToChecked($popupProDefaultValues['subs-first-name-status']);
356
+ $subsLastNameStatus = sgBoolToChecked($popupProDefaultValues['subs-last-name-status']);
357
+ $subscriptionEmail = $popupProDefaultValues['subscription-email'];
358
+ $subsFirstName = $popupProDefaultValues['subs-first-name'];
359
+ $subsLastName = $popupProDefaultValues['subs-last-name'];
360
+ $subsButtonBgcolor = $popupProDefaultValues['subs-button-bgcolor'];
361
+ $subsButtonColor = $popupProDefaultValues['subs-button-color'];
362
+ $subsInputsColor = $popupProDefaultValues['subs-inputs-color'];
363
+ $subsBtnTitle = $popupProDefaultValues['subs-btn-title'];
364
+ $subsPlaceholderColor = $popupProDefaultValues['subs-placeholder-color'];
365
+ $subsTextHeight = $popupProDefaultValues['subs-text-height'];
366
+ $subsBtnHeight = $popupProDefaultValues['subs-btn-height'];
367
+ $subsSuccessMessage = $popupProDefaultValues['subs-success-message'];
368
+ $subsValidationMessage = $popupProDefaultValues['subs-validation-message'];
369
+ $subsTextWidth = $popupProDefaultValues['subs-text-width'];
370
+ $subsBtnWidth = $popupProDefaultValues['subs-btn-width'];
371
+ $subsBtnProgressTitle = $popupProDefaultValues['subs-btn-progress-title'];
372
+ $subsTextBorderWidth = $popupProDefaultValues['subs-text-border-width'];
373
+ $subsTextBordercolor = $popupProDefaultValues['subs-text-bordercolor'];
374
+ $subsTextInputBgcolor = $popupProDefaultValues['subs-text-input-bgcolor'];
375
+ $contactName = $popupProDefaultValues['contact-name'];
376
+ $contactEmail = $popupProDefaultValues['contact-email'];
377
+ $contactMessage = $popupProDefaultValues['contact-message'];
378
+ $contactSubject = $popupProDefaultValues['contact-subject'];
379
+ $contactSuccessMessage = $popupProDefaultValues['contact-success-message'];
380
+ $contactBtnTitle = $popupProDefaultValues['contact-btn-title'];
381
+ $contactValidateEmail = $popupProDefaultValues['contact-validate-email'];
382
+ $contactResiveEmail = $popupProDefaultValues['contact-receive-email'];
383
+ $contactFailMessage = $popupProDefaultValues['contact-fail-message'];
384
+ $overlayCustomClasss = $popupProDefaultValues['overlay-custom-classs'];
385
+ $contentCustomClasss = $popupProDefaultValues['content-custom-classs'];
386
+
387
+ function sgBoolToChecked($var)
388
+ {
389
+ return ($var?'checked':'');
390
+ }
391
+
392
+ function sgRemoveOption($option)
393
+ {
394
+ global $removeOptions;
395
+ return isset($removeOptions[$option]);
396
+ }
397
+
398
+ $width = $sgPopup['width'];
399
+ $height = $sgPopup['height'];
400
+ $opacityValue = $sgPopup['opacity'];
401
+ $top = $sgPopup['top'];
402
+ $right = $sgPopup['right'];
403
+ $bottom = $sgPopup['bottom'];
404
+ $left = $sgPopup['left'];
405
+ $initialWidth = $sgPopup['initialWidth'];
406
+ $initialHeight = $sgPopup['initialHeight'];
407
+ $maxWidth = $sgPopup['maxWidth'];
408
+ $maxHeight = $sgPopup['maxHeight'];
409
+ $deafultFixed = $sgPopup['fixed'];
410
+ $defaultDuration = $sgPopup['duration'];
411
+ $defaultDelay = $sgPopup['delay'];
412
+ $themeCloseText = $sgPopup['theme-close-text'];
413
+
414
+ $sgCloseButton = @sgSetChecked($sgCloseButton, $closeButton);
415
+ $sgEscKey = @sgSetChecked($sgEscKey, $escKey);
416
+ $sgContentClick = @sgSetChecked($sgContentClick, $contentClick);
417
+ $sgOverlayClose = @sgSetChecked($sgOverlayClose, $overlayClose);
418
+ $sgReposition = @sgSetChecked($sgReposition, $reposition);
419
+ $sgScrolling = @sgSetChecked($sgScrolling, $scrolling);
420
+
421
+ $sgCloseType = @sgSetChecked($sgCloseType, $closeType);
422
+ $sgOnScrolling = @sgSetChecked($sgOnScrolling, $onScrolling);
423
+ $sgForMobile = @sgSetChecked($sgForMobile, $forMobile);
424
+ $sgOpenOnMobile = @sgSetChecked($sgOpenOnMobile, $openMobile);
425
+ $sgUserSeperate = @sgSetChecked($sgUserSeperate, $userSeperate);
426
+ $sgPopupTimerStatus = @sgSetChecked($sgPopupTimerStatus, $popupTimerStatus);
427
+ $sgRepeatPopup = @sgSetChecked($sgRepeatPopup, $repetPopup);
428
+ $sgDisablePopup = @sgSetChecked($sgDisablePopup, $disablePopup);
429
+ $sgDisablePopupOverlay = @sgSetChecked($sgDisablePopupOverlay, $disablePopupOverlay);
430
+ $sgAutoClosePopup = @sgSetChecked($sgAutoClosePopup, $autoClosePopup);
431
+ $sgFbStatus = @sgSetChecked($sgFbStatus, $fbStatus);
432
+ $sgTwitterStatus = @sgSetChecked($sgTwitterStatus, $twitterStatus);
433
+ $sgEmailStatus = @sgSetChecked($sgEmailStatus, $emailStatus);
434
+ $sgLinkedinStatus = @sgSetChecked($sgLinkedinStatus, $linkedinStatus);
435
+ $sgGoogleStatus = @sgSetChecked($sgGoogleStatus, $googleStatus);
436
+ $sgPinterestStatus = @sgSetChecked($sgPinterestStatus, $pinterestStatus);
437
+ $sgRoundButtons = @sgSetChecked($sgRoundButton, $roundButtons);
438
+ $sgSocialLabel = @sgSetChecked($sgSocialLabel, $socialLabel);
439
+ $sgPopupFixed = @sgSetChecked($sgPopupFixed, $deafultFixed);
440
+ $sgPushToBottom = @sgSetChecked($sgPushToBottom, $pushToBottom);
441
+ $sgAllPages = @sgSetChecked($sgAllPagesStatus, $allPages);
442
+ $sgAllPosts = @sgSetChecked($sgAllPostStatus, $allPosts);
443
+ $sgCountdownPosition = @sgSetChecked($sgCountdownPosition, $countdownPosition);
444
+ $sgVideoAutoplay = @sgSetChecked($sgVideoAutoplay, $videoAutoplay);
445
+ $sgSubsLastNameStatus = @sgSetChecked($sgSubsLastNameStatus, $subsLastNameStatus);
446
+ $sgSubsFirstNameStatus = @sgSetChecked($sgSubsFirstNameStatus, $subsFirstNameStatus);
447
+ $sgCountryStatus = @sgSetChecked($sgCountryStatus, $countryStatus);
448
+
449
+ function sgSetChecked($optionsParam,$defaultOption)
450
+ {
451
+ if (isset($optionsParam)) {
452
+ if ($optionsParam == '') {
453
+ return '';
454
+ }
455
+ else {
456
+ return 'checked';
457
+ }
458
+ }
459
+ else {
460
+ return $defaultOption;
461
+ }
462
+ }
463
+
464
+ $sgOpacity = @sgGetValue($sgOpacity, $opacityValue);
465
+ $sgWidth = @sgGetValue($sgWidth, $width);
466
+ $sgHeight = @sgGetValue($sgHeight, $height);
467
+ $sgInitialWidth = @sgGetValue($sgInitialWidth, $initialWidth);
468
+ $sgInitialHeight = @sgGetValue($sgInitialHeight, $initialHeight);
469
+ $sgMaxWidth = @sgGetValue($sgMaxWidth, $maxWidth);
470
+ $sgMaxHeight = @sgGetValue($sgMaxHeight, $maxHeight);
471
+ $sgThemeCloseText = @sgGetValue($sgThemeCloseText, $themeCloseText);
472
+ $duration = @sgGetValue($duration, $defaultDuration);
473
+ $sgOnceExpiresTime = @sgGetValue($sgOnceExpiresTime, $onceExpiresTime);
474
+ $sgPopupAppearNumberLimit = @sgGetValue($sgPopupAppearNumberLimit, $popupAppearNumberLimit);
475
+ $delay = @sgGetValue($delay, $defaultDelay);
476
+ $sgPopupStartTimer = @sgGetValue($sgPopupStartTimer, $popupStartTimer);
477
+ $sgPopupFinishTimer = @sgGetValue($sgPopupFinishTimer, '');
478
+ $sgPopupDataIframe = @sgGetValue($sgPopupDataIframe, 'http://');
479
+ $sgShareUrl = @sgGetValue($sgShareUrl, $shareUrl);
480
+ $sgPopupDataHtml = @sgGetValue($sgPopupDataHtml, '');
481
+ $sgPopupDataImage = @sgGetValue($sgPopupDataImage, '');
482
+ $sgAllowCountries = @sgGetValue($sgAllowCountries, $allowCountries);
483
+ $sgLogedUser = @sgGetValue($sgLogedUser, $logedUser);
484
+ $sgCountdownNumbersTextColor = @sgGetValue($sgCountdownNumbersTextColor, $countdownNumbersTextColor);
485
+ $sgCountdownNumbersBgColor = @sgGetValue($sgCountdownNumbersBgColor, $countdownNumbersBgColor);
486
+ $sgCountdownLang = @sgGetValue($sgCountdownLang, $countdownLang);
487
+ $sgSelectedTimeZone = @sgGetValue($sgSelectedTimeZone, $timeZone);
488
+ $sgDueDate = @sgGetValue($sgDueDate, $dueDate);
489
+ $sgExitIntentTpype = @sgGetValue($sgExitIntentTpype, $exitIntentType);
490
+ $sgExitIntntExpire = @sgGetValue($sgExitIntntExpire, $exitIntentExpireTime);
491
+ $sgSubsTextWidth = @sgGetValue($sgSubsTextWidth, $subsTextWidth);
492
+ $sgSubsBtnWidth = @sgGetValue($sgSubsBtnWidth, $subsBtnWidth);
493
+ $sgSubsTextInputBgcolor = @sgGetValue($sgSubsTextInputBgcolor, $subsTextInputBgcolor);
494
+ $sgSubsButtonBgcolor = @sgGetValue($sgSubsButtonBgcolor, $subsButtonBgcolor);
495
+ $sgSubsTextBordercolor = @sgGetValue($sgSubsTextBordercolor, $subsTextBordercolor);
496
+ $sgSubscriptionEmail = @sgGetValue($sgSubscriptionEmail, $subscriptionEmail);
497
+ $sgSubsFirstName = @sgGetValue($sgSubsFirstName, $subsFirstName);
498
+ $sgSubsLastName = @sgGetValue($sgSubsLastName, $subsLastName);
499
+ $sgSubsButtonColor = @sgGetValue($sgSubsButtonColor, $subsButtonColor);
500
+ $sgSubsInputsColor = @sgGetValue($sgSubsInputsColor, $subsInputsColor);
501
+ $sgSubsBtnTitle = @sgGetValue($sgSubsBtnTitle, $subsBtnTitle);
502
+ $sgSubsPlaceholderColor = @sgGetValue($sgSubsPlaceholderColor, $subsPlaceholderColor);
503
+ $sgSubsTextHeight = @sgGetValue($sgSubsTextHeight, $subsTextHeight);
504
+ $sgSubsBtnHeight = @sgGetValue($sgSubsBtnHeight, $subsBtnHeight);
505
+ $sgSuccessMessage = @sgGetValue($sgSuccessMessage, $subsSuccessMessage);
506
+ $sgSubsValidateMessage = @sgGetValue($sgSubsValidateMessage, $subsValidationMessage);
507
+ $sgSubsBtnProgressTitle = @sgGetValue($sgSubsBtnProgressTitle, $subsBtnProgressTitle);
508
+ $sgSubsTextBorderWidth = @sgGetValue($sgSubsTextBorderWidth, $subsTextBorderWidth);
509
+ $sgContactNameLabel = @sgGetValue($sgContactNameLabel, $contactName);
510
+ $sgContactSubjectLabel = @sgGetValue($sgContactSubjectLabel, $contactSubject);
511
+ $sgContactEmailLabel = @sgGetValue($sgContactEmailLabel, $contactEmail);
512
+ $sgContactMessageLabel = @sgGetValue($sgContactMessageLabel, $contactMessage);
513
+ $sgContactValidationMessage = @sgGetValue($sgContactValidationMessage, $subsValidationMessage);
514
+ $sgContactSuccessMessage = @sgGetValue($sgContactSuccessMessage, $contactSuccessMessage);
515
+ $sgContactInputsWidth = @sgGetValue($sgContactInputsWidth, $subsTextWidth);
516
+ $sgContactInputsHeight = @sgGetValue($sgContactInputsHeight, $subsTextHeight);
517
+ $sgContactInputsBorderWidth = @sgGetValue($sgContactInputsBorderWidth, $subsTextBorderWidth);
518
+ $sgContactTextInputBgcolor = @sgGetValue($sgContactTextInputBgcolor, $subsTextInputBgcolor);
519
+ $sgContactTextBordercolor = @sgGetValue($sgContactTextBordercolor, $subsTextBordercolor);
520
+ $sgContactInputsColor = @sgGetValue($sgContactInputsColor, $subsInputsColor);
521
+ $sgContactPlaceholderColor = @sgGetValue($sgContactPlaceholderColor, $subsPlaceholderColor);
522
+ $sgContactBtnWidth = @sgGetValue($sgContactBtnWidth, $subsBtnWidth);
523
+ $sgContactBtnHeight = @sgGetValue($sgContactBtnHeight, $subsBtnHeight);
524
+ $sgContactBtnTitle = @sgGetValue($sgContactBtnTitle, $contactBtnTitle);
525
+ $sgContactBtnProgressTitle = @sgGetValue($sgContactBtnProgressTitle, $subsBtnProgressTitle);
526
+ $sgContactButtonBgcolor = @sgGetValue($sgContactButtonBgcolor, $subsButtonBgcolor);
527
+ $sgContactButtonColor = @sgGetValue($sgContactButtonColor, $subsButtonColor);
528
+ $sgContactAreaWidth = @sgGetValue($sgContactAreaWidth, $subsTextWidth);
529
+ $sgContactAreaHeight = @sgGetValue($sgContactAreaHeight, '');
530
+ $sgContactValidateEmail = @sgGetValue($sgContactValidateEmail, $contactValidateEmail);
531
+ $sgContactResiveEmail = @sgGetValue($sgContactResiveEmail, $contactResiveEmail);
532
+ $sgContactFailMessage = @sgGetValue($sgContactFailMessage, $contactFailMessage);
533
+ $sgOverlayCustomClasss = @sgGetValue($sgOverlayCustomClasss, $overlayCustomClasss);
534
+ $sgContentCustomClasss = @sgGetValue($sgContentCustomClasss, $contentCustomClasss);
535
+
536
+ function sgGetValue($getedVal,$defValue)
537
+ {
538
+ if (!isset($getedVal)) {
539
+ return $defValue;
540
+ }
541
+ else {
542
+ return $getedVal;
543
+ }
544
+ }
545
+
546
+ $radioElements = array(
547
+ array(
548
+ 'name'=>'shareUrlType',
549
+ 'value'=>'activeUrl',
550
+ 'additionalHtml'=>''.'<span>'.'Use active URL'.'</span></span>
551
+ <span class="span-width-static"></span><span class="dashicons dashicons-info scrollingImg sameImageStyle sg-active-url"></span><span class="info-active-url samefontStyle">If this option is active Share URL will be current page URL.</span>'
552
+ ),
553
+ array(
554
+ 'name'=>'shareUrlType',
555
+ 'value'=>'shareUrl',
556
+ 'additionalHtml'=>''.'<span>'.'Share url'.'</span></span>'.' <input class="input-width-static sg-active-url" type="text" name="sgShareUrl" value="'.@$sgShareUrl.'">'
557
+ )
558
+ );
559
+
560
+ $countriesRadio = array(
561
+ array(
562
+ 'name'=>'allowCountries',
563
+ 'value'=>'allow',
564
+ 'additionalHtml'=>'<span class="countries-radio-text allow-countries">Allow</span>',
565
+ 'newline' => false
566
+ ),
567
+ array(
568
+ 'name'=>'allowCountries',
569
+ 'value'=>'disallow',
570
+ 'additionalHtml'=>'<span class="countries-radio-text">Disallow</span>',
571
+ 'newline' => true
572
+ )
573
+ );
574
+
575
+ $usersGroup = array(
576
+ array(
577
+ 'name'=>'loggedin-user',
578
+ 'value'=>'true',
579
+ 'additionalHtml'=>'<span class="countries-radio-text allow-countries">logged in</span>',
580
+ 'newline' => false
581
+ ),
582
+ array(
583
+ 'name'=>'loggedin-user',
584
+ 'value'=>'false',
585
+ 'additionalHtml'=>'<span class="countries-radio-text">not logged in</span>',
586
+ 'newline' => true
587
+ )
588
+ );
589
+
590
+ function sgCreateRadioElements($radioElements,$checkedValue)
591
+ {
592
+ $content = '';
593
+ for ($i = 0; $i < count($radioElements); $i++) {
594
+ $checked = '';
595
+ $radioElement = @$radioElements[$i];
596
+ $name = @$radioElement['name'];
597
+ $label = @$radioElement['label'];
598
+ $value = @$radioElement['value'];
599
+ $additionalHtml = @$radioElement['additionalHtml'];
600
+ if ($checkedValue == $value) {
601
+ $checked = 'checked';
602
+ }
603
+ $content .= '<span class="liquid-width"><input class="radio-btn-fix" type="radio" name="'.$name.'" value="'.$value.'" '.$checked.'>';
604
+ $content .= $additionalHtml."<br>";
605
+ }
606
+ return $content;
607
+ }
608
+
609
+ $radiobuttons = array(
610
+ array(
611
+ "title" => "Soft mode:",
612
+ "value" => "soft",
613
+ "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
614
+ <span class='infoReposition samefontStyle'>
615
+ If the user navigate away from the site the popup will appear.
616
+ </span>"
617
+ ),
618
+ array(
619
+ "title" => "Aggressive mode:",
620
+ "value" => "aggressive",
621
+ "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
622
+ <span class='infoReposition samefontStyle'>
623
+ If the user try to navigate elsewhere he/she will be interrupted and forced to read the message and choose to leave or stay.
624
+ After the alert box popup will appear.
625
+ </span>"
626
+ ),
627
+ array(
628
+ "title" => "Soft and Aggressive modes:",
629
+ "value" => "softAndAgressive",
630
+ "info" => "<span class=\"dashicons dashicons-info repositionImg sameImageStyle\"></span>
631
+ <span class='infoReposition samefontStyle'>
632
+ This will enable the both modes. Depends which action will be triggered first.
633
+ </span>"
634
+ ),
635
+ array(
636
+ "title" => "Aggressive without popup:",
637
+ "value" => "agresiveWithoutPopup",
638
+ "info" => "<span class='dashicons dashicons-info repositionImg sameImageStyle'></span>
639
+ <span class='infoReposition samefontStyle'>
640
+ Tha same as aggressive mode but without a popup.
641
+ </span>"
642
+ ),
643
+
644
+ );
645
+
646
+
647
+ function createRadiobuttons($elements, $name, $newLine, $selectedInput, $class)
648
+ {
649
+ $str = "";
650
+
651
+ foreach ($elements as $key => $elment) {
652
+ $breakLine = "";
653
+ $infoIcon = "";
654
+ $title = "";
655
+ $value = "";
656
+ $infoIcon = "";
657
+ $checked = "";
658
+
659
+ if(isset($elment["title"])) {
660
+ $title = $elment["title"];
661
+ }
662
+ if(isset($elment["value"])) {
663
+ $value = $elment["value"];
664
+ }
665
+ if($newLine) {
666
+ $breakLine = "<br>";
667
+ }
668
+ if(isset($elment["info"])) {
669
+ $infoIcon = $elment['info'];
670
+ }
671
+ if($elment["value"] == $selectedInput) {
672
+ $checked = "checked";
673
+ }
674
+ $str .= "<span class=".$class.">".$elment['title']."</span>
675
+ <input type=\"radio\" name=".$name." value=".$value." $checked>".$infoIcon.$breakLine;
676
+ }
677
+
678
+ echo $str;
679
+ }
680
+
681
+ $sgPopupEffects = array(
682
+ 'No effect' => 'No Effect',
683
+ 'flip' => 'flip',
684
+ 'shake' => 'shake',
685
+ 'wobble' => 'wobble',
686
+ 'swing' => 'swing',
687
+ 'flash' => 'flash',
688
+ 'bounce' => 'bounce',
689
+ 'pulse' => 'pulse',
690
+ 'rubberBand' => 'rubberBand',
691
+ 'tada' => 'tada',
692
+ 'jello' => 'jello',
693
+ 'rotateIn' => 'rotateIn',
694
+ 'fadeIn' => 'fadeIn'
695
+ );
696
+
697
+ $sgPopupTheme = array(
698
+ 'colorbox1.css',
699
+ 'colorbox2.css',
700
+ 'colorbox3.css',
701
+ 'colorbox4.css',
702
+ 'colorbox5.css'
703
+ );
704
+
705
+ $sgFbLikeButtons = array(
706
+ 'standard' => 'Standard',
707
+ 'box_count' => 'Box with count',
708
+ 'button_count' => 'Button with count',
709
+ 'button' => 'Button'
710
+ );
711
+
712
+ $sgTheme = array(
713
+ 'flat' => 'flat',
714
+ 'classic' => 'classic',
715
+ 'minima' => 'minima',
716
+ 'plain' => 'plain'
717
+ );
718
+
719
+ $sgThemeSize = array(
720
+ '8' => '8',
721
+ '10' => '10',
722
+ '12' => '12',
723
+ '14' => '14',
724
+ '16' => '16',
725
+ '18' => '18',
726
+ '20' => '20',
727
+ '24' => '24'
728
+ );
729
+
730
+ $sgSocialCount = array(
731
+ 'true' => 'True',
732
+ 'false' => 'False',
733
+ 'inside' => 'Inside'
734
+ );
735
+
736
+ $sgCountdownType = array(
737
+ 1 => 'DD:HH:MM:SS',
738
+ 2 => 'DD:HH:MM'
739
+ );
740
+
741
+ $sgCountdownlang = array(
742
+ 'English' => 'English',
743
+ 'German' => 'German',
744
+ 'Spanish' => 'Spanish',
745
+ 'Arabic' => 'Arabic',
746
+ 'Italian' => 'Italian',
747
+ 'Italian' => 'Italian',
748
+ 'Dutch' => 'Dutch',
749
+ 'Norwegian' => 'Norwegian',
750
+ 'Portuguese' => 'Portuguese',
751
+ 'Russian' => 'Russian',
752
+ 'Swedish' => 'Swedish',
753
+ 'Chinese' => 'Chinese'
754
+ );
755
+
756
+ $sgExitIntentSelectOptions = array(
757
+ "perSesion" => "per Session",
758
+ "1" => "per minute",
759
+ "10080" => "per 7 days",
760
+ "43200" => "per month",
761
+ "always" => "always"
762
+ );
763
+ $sgTextAreaResizeOptions = array(
764
+ 'both' => 'Both',
765
+ 'horizontal' => 'Horizontal',
766
+ 'vertical' => 'Vertical',
767
+ 'none' => 'None',
768
+ 'inherit' => 'Inherit'
769
+ );
770
+
771
+ if (SG_POPUP_PRO) {
772
+ require_once(SG_APP_POPUP_FILES ."/sg_params_arrays.php");
773
+ }
774
+
775
+ function sgCreateSelect($options,$name,$selecteOption)
776
+ {
777
+ $selected ='';
778
+ $str = "";
779
+ $checked = "";
780
+ if ($name == 'theme' || $name == 'restrictionAction') {
781
+
782
+ $popup_style_name = 'popup_theme_name';
783
+ $firstOption = array_shift($options);
784
+ $i = 1;
785
+ foreach ($options as $key) {
786
+ $checked ='';
787
+
788
+ if ($key == $selecteOption) {
789
+ $checked = "checked";
790
+ }
791
+ $i++;
792
+ $str .= "<input type='radio' name=\"$name\" value=\"$key\" $checked class='popup_theme_name' sgPoupNumber=".$i.">";
793
+
794
+ }
795
+ if ($checked == ''){
796
+ $checked = "checked";
797
+ }
798
+ $str = "<input type='radio' name=\"$name\" value=\"".$firstOption."\" $checked class='popup_theme_name' sgPoupNumber='1'>".$str;
799
+ return $str;
800
+ }
801
+ else {
802
+ @$popup_style_name = ($popup_style_name) ? $popup_style_name : '';
803
+ $str .= "<select name=$name class=$popup_style_name input-width-static >";
804
+ foreach ($options as $key=>$option) {
805
+ if ($key == $selecteOption) {
806
+ $selected = "selected";
807
+ }
808
+ else {
809
+ $selected ='';
810
+ }
811
+ $str .= "<option value='".$key."' ".$selected." >$option</potion>";
812
+ }
813
+
814
+ $str .="</select>" ;
815
+ return $str;
816
+
817
+ }
818
+
819
+ }
820
+ if(!SG_SHOW_POPUP_REVIEW) {
821
+ echo SGFunctions::addReview();
822
+ }
823
+ if (isset($_GET['saved']) && $_GET['saved']==1) {
824
+ echo '<div id="default-message" class="updated notice notice-success is-dismissible" ><p>Popup updated.</p></div>';
825
+ }
826
+ if (isset($_GET["titleError"])): ?>
827
+ <div class="error notice" id="title-error-message">
828
+ <p>Invalid Title</p>
829
+ </div>
830
+ <?php endif; ?>
831
+ <form method="POST" action="<?php echo SG_APP_POPUP_ADMIN_URL;?>admin-post.php" id="add-form">
832
+ <input type="hidden" name="action" value="save_popup">
833
+ <div class="crud-wrapper">
834
+ <div class="cereate-title-wrapper">
835
+ <div class="sg-title-crud">
836
+ <?php if (isset($id)): ?>
837
+ <h2>Edit popup</h2>
838
+ <?php else: ?>
839
+ <h2>Create new popup</h2>
840
+ <?php endif; ?>
841
+ </div>
842
+ <div class="button-wrapper">
843
+ <p class="submit">
844
+ <?php if (!SG_POPUP_PRO): ?>
845
+ <input class="crud-to-pro" type="button" value="Upgrade to PRO version" onclick="window.open('<?php echo SG_POPUP_PRO_URL;?>')"><div class="clear"></div>
846
+ <?php endif; ?>
847
+ <input type="submit" id="sg-save-button" class="button-primary" value="<?php echo 'Save Changes'; ?>">
848
+ </p>
849
+ </div>
850
+ </div>
851
+ <div class="clear"></div>
852
+ <div class="general-wrapper">
853
+ <div id="titlediv">
854
+ <div id="titlewrap">
855
+ <input id="title" class="sg-js-popup-title" type="text" name="title" size="30" value="<?php echo esc_attr(@$title)?>" spellcheck="true" autocomplete="off" required = "required" placeholder='Enter title here'>
856
+ </div>
857
+ </div>
858
+ <div id="left-main-div">
859
+ <div id="sg-general">
860
+ <div id="post-body" class="metabox-holder columns-2">
861
+ <div id="postbox-container-2" class="postbox-container">
862
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
863
+ <div class="postbox popupBuilder_general_postbox sgSameWidthPostBox" style="display: block;">
864
+ <div class="handlediv generalTitle" title="Click to toggle"><br></div>
865
+ <h3 class="hndle ui-sortable-handle generalTitle" style="cursor: pointer"><span>General</span></h3>
866
+ <div class="generalContent sgSameWidthPostBox">
867
+ <?php require_once("main_section/".$popupType.".php");?>
868
+ <input type="hidden" name="type" value="<?php echo $popupType;?>">
869
+ <span class="liquid-width" id="theme-span">Popup theme:</span>
870
+ <?php echo sgCreateSelect($sgPopupTheme,'theme',esc_html(@$sgColorboxTheme));?>
871
+ <div class="theme1 sg-hide"></div>
872
+ <div class="theme2 sg-hide"></div>
873
+ <div class="theme3 sg-hide"></div>
874
+ <div class="theme4 sg-hide"></div>
875
+ <div class="theme5 sg-hide"></div>
876
+ <div class="theme-colse-text sg-hide">
877
+ <span class="liquid-width">Close button text:</span>
878
+ <input type="text" name="theme-close-text" value="<?php echo esc_attr($sgThemeCloseText);?>">
879
+ </div>
880
+ </div>
881
+ </div>
882
+
883
+ </div>
884
+ </div>
885
+ </div>
886
+ </div>
887
+ <div id="effect">
888
+ <div id="post-body" class="metabox-holder columns-2">
889
+ <div id="postbox-container-2" class="postbox-container">
890
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
891
+ <div class="postbox popupBuilder_effect_postbox sgSameWidthPostBox" style="display: block;">
892
+ <div class="handlediv effectTitle" title="Click to toggle"><br></div>
893
+ <h3 class="hndle ui-sortable-handle effectTitle" style="cursor: pointer"><span>Effects</span></h3>
894
+ <div class="effectsContent">
895
+ <span class="liquid-width">Effect type:</span>
896
+ <?php echo sgCreateSelect($sgPopupEffects,'effect',esc_html(@$effect));?>
897
+ <span class="js-preview-effect"></span>
898
+ <div class="effectWrapper"><div id="effectShow" ></div></div>
899
+
900
+ <span class="liquid-width">Effect duration:</span>
901
+ <input class="input-width-static" type="text" name="duration" value="<?php echo esc_attr($duration); ?>" pattern = "\d+" title="It must be number" /><span class="dashicons dashicons-info contentClick infoImageDuration sameImageStyle"></span><span class="infoDuration samefontStyle">Specify how long the popup appearance animation should take (in sec).</span></br>
902
+
903
+ <span class="liquid-width">Popup opening delay:</span>
904
+ <input class="input-width-static" type="text" name="delay" value="<?php echo esc_attr($delay);?>" pattern = "\d+" title="It must be number"/><span class="dashicons dashicons-info contentClick infoImageDelay sameImageStyle"></span><span class="infoDelay samefontStyle">Specify how long the popup appearance should be delayed after loading the page (in sec).</span></br>
905
+ </div>
906
+ </div>
907
+
908
+ </div>
909
+ </div>
910
+ </div>
911
+ </div>
912
+ <?php require_once("options_section/".$popupType.".php");?>
913
+ </div>
914
+ <div id="right-main-div">
915
+ <div id="right-main">
916
+ <div id="dimentions">
917
+ <div id="post-body" class="metabox-holder columns-2">
918
+ <div id="postbox-container-2" class="postbox-container">
919
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
920
+ <div class="postbox popupBuilder_dimention_postbox sgSameWidthPostBox" style="display: block;">
921
+ <div class="handlediv dimentionsTitle" title="Click to toggle"><br></div>
922
+ <h3 class="hndle ui-sortable-handle dimentionsTitle" style="cursor: pointer"><span>Dimensions</span></h3>
923
+ <div class="dimensionsContent">
924
+ <span class="liquid-width">Width:</span>
925
+ <input class="input-width-static" type="text" name="width" value="<?php echo esc_attr($sgWidth); ?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
926
+ <span class="liquid-width">Height:</span>
927
+ <input class="input-width-static" type="text" name="height" value="<?php echo esc_attr($sgHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
928
+ <span class="liquid-width">Max width:</span>
929
+ <input class="input-width-static" type="text" name="maxWidth" value="<?php echo esc_attr($sgMaxWidth);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
930
+ <span class="liquid-width">Max height:</span>
931
+ <input class="input-width-static" type="text" name="maxHeight" value="<?php echo esc_attr(@$sgMaxHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
932
+ <span class="liquid-width">Initial width:</span>
933
+ <input class="input-width-static" type="text" name="initialWidth" value="<?php echo esc_attr($sgInitialWidth);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
934
+ <span class="liquid-width">Initial height:</span>
935
+ <input class="input-width-static" type="text" name="initialHeight" value="<?php echo esc_attr($sgInitialHeight);?>" pattern = "\d+(([px]+|\%)|)" title="It must be number + px or %" /><img class='errorInfo' src="<?php echo plugins_url('img/info-error.png', dirname(__FILE__).'../') ?>"><span class="validateError">It must be a number + px or %</span><br>
936
+ </div>
937
+ </div>
938
+
939
+ </div>
940
+ </div>
941
+ </div>
942
+ </div>
943
+ <div id="options">
944
+ <div id="post-body" class="metabox-holder columns-2">
945
+ <div id="postbox-container-2" class="postbox-container">
946
+ <div id="normal-sortables" class="meta-box-sortables ui-sortable">
947
+ <div class="postbox popupBuilder_options_postbox sgSameWidthPostBox" style="display: block;">
948
+ <div class="handlediv optionsTitle" title="Click to toggle"><br></div>
949
+ <h3 class="hndle ui-sortable-handle optionsTitle" style="cursor: pointer"><span>Options</span></h3>
950
+ <div class="optionsContent">
951
+ <span class="liquid-width">Dismiss on &quot;esc&quot; key:</span><input class="input-width-static" type="checkbox" name="escKey" <?php echo $sgEscKey;?>/>
952
+ <span class="dashicons dashicons-info escKeyImg sameImageStyle"></span><span class="infoEscKey samefontStyle">The popup will be dismissed when user presses on 'esc' key.</span></br>
953
+
954
+ <span class="liquid-width" id="createDescribeClose">Show &quot;close&quot; button:</span><input class="input-width-static" type="checkbox" name="closeButton" <?php echo $sgCloseButton;?> />
955
+ <span class="dashicons dashicons-info CloseImg sameImageStyle"></span><span class="infoCloseButton samefontStyle">The popup will contain 'close' button.</span><br>
956
+
957
+ <span class="liquid-width">Enable content scrolling:</span><input class="input-width-static" type="checkbox" name="scrolling" <?php echo $sgScrolling;?> />
958
+ <span class="dashicons dashicons-info scrollingImg sameImageStyle"></span><span class="infoScrolling samefontStyle">If the containt is larger then the specified dimentions, then the content will be scrollable.</span><br>
959
+
960
+ <span class="liquid-width">Enable responsiveness:</span><input class="input-width-static" type="checkbox" name="reposition" <?php echo $sgReposition;?> />
961
+ <span class="dashicons dashicons-info repositionImg sameImageStyle"></span><span class="infoReposition samefontStyle">The popup will be resized/repositioned automatically when window is being resized.</span><br>
962
+
963
+ <span class="liquid-width">Dismiss on overlay click:</span><input class="input-width-static" type="checkbox" name="overlayClose" <?php echo $sgOverlayClose;?> />
964
+ <span class="dashicons dashicons-info overlayImg sameImageStyle"></span><span class="infoOverlayClose samefontStyle">The popup will be dismissed when user clicks beyond of the popup area.</span><br>
965
+
966
+ <span class="liquid-width">Dismiss on content click:</span><input class="input-width-static" type="checkbox" name="contentClick" <?php echo $sgContentClick;?> />
967
+ <span class="dashicons dashicons-info contentClick sameImageStyle"></span><span class="infoContentClick samefontStyle">The popup will be dismissed when user clicks inside popup area.</span><br>
968
+
969
+ <span class="liquid-width">Change overlay color:</span><div id="color-picker"><input class="sgOverlayColor" id="sgOverlayColor" type="text" name="sgOverlayColor" value="<?php echo esc_attr(@$sgOverlayColor); ?>" /></div><br>
970
+
971
+ <span class="liquid-width">Change background color:</span><div id="color-picker"><input class="sgOverlayColor" id="sgOverlayColor" type="text" name="sg-content-background-color" value="<?php echo esc_attr(@$sgContentBackgroundColor); ?>" /></div><br>
972
+
973
+ <span class="liquid-width" id="createDescribeOpacitcy">Background overlay opacity:</span><div class="slider-wrapper">
974
+ <input type="text" class="js-decimal" value="<?php echo esc_attr($sgOpacity);?>" rel="<?php echo esc_attr($sgOpacity);?>" name="opacity"/>
975
+ <div id="js-display-decimal" class="display-box"></div>
976
+ </div><br>
977
+
978
+ <span class="liquid-width">Overlay custom class:</span><input class="input-width-static" type="text" name="sgOverlayCustomClasss" value="<?php echo esc_attr(@$sgOverlayCustomClasss);?>">
979
+ <br>
980
+
981
+ <span class="liquid-width">Content custom class:</span><input class="input-width-static" type="text" name="sgContentCustomClasss" value="<?php echo esc_attr(@$sgContentCustomClasss);?>">
982
+ <br>
983
+
984
+ <span class="liquid-width" id="createDescribeFixed">Popup location:</span><input class="input-width-static js-checkbox-acordion" type="checkbox" name="popupFixed" <?php echo $sgPopupFixed;?> />
985
+ <div class="js-popop-fixeds">
986
+ <span class="fix-wrapper-style" >&nbsp;</span>
987
+ <div class="fixed-wrapper">
988
+ <div class="js-fixed-position-style" id="fixed-position1" data-sgvalue="1"></div>
989
+ <div class="js-fixed-position-style" id="fixed-position2"data-sgvalue="2"></div>
990
+ <div class="js-fixed-position-style" id="fixed-position3" data-sgvalue="3"></div>
991
+ <div class="js-fixed-position-style" id="fixed-position4" data-sgvalue="4"></div>
992
+ <div class="js-fixed-position-style" id="fixed-position5" data-sgvalue="5"></div>
993
+ <div class="js-fixed-position-style" id="fixed-position6" data-sgvalue="6"></div>
994
+ <div class="js-fixed-position-style" id="fixed-position7" data-sgvalue="7"></div>
995
+ <div class="js-fixed-position-style" id="fixed-position8" data-sgvalue="8"></div>
996
+ <div class="js-fixed-position-style" id="fixed-position9" data-sgvalue="9"></div>
997
+ </div>
998
+ </div>
999
+ <input type="hidden" name="fixedPostion" class="js-fixed-postion" value="<?php echo esc_attr(@$sgFixedPostion);?>">
1000
+ </div>
1001
+ </div>
1002
+
1003
+ </div>
1004
+ </div>
1005
+ </div>
1006
+ </div>
1007
+ <?php if (SG_POPUP_PRO) : require_once("options_section/pro.php"); ?>
1008
+ <?php else: ?>
1009
+ <div class="pro-options" onclick="window.open('http://sygnoos.com/wordpress-popup/')"></div>
1010
+ <?php endif; ?>
1011
+ </div>
1012
+ </div>
1013
+ <div class="clear"></div>
1014
+ <input type="hidden" class="button-primary" value="<?php echo esc_attr(@$id);?>" name="hidden_popup_number" />
1015
+ </div>
1016
+ </div>
1017
+ </form>
1018
+ <?php
1019
  SGFunctions::showInfo();
files/sg_popup_main.php CHANGED
@@ -1,36 +1,31 @@
1
- <?php
2
- $getReview = get_option("SG_COLOSE_REVIEW_BLOCK");
3
-
4
- require_once(SG_APP_POPUP_CLASSES.'/sgDataTable/SGPopupTable.php');
5
- $allData = SGPopup::findAll();
6
- ?>
7
- <div>
8
- <?php
9
- if(!$getReview) {
10
- echo SGFunctions::addReview();
11
- }
12
-
13
- ?>
14
- </div>
15
- <div class="wrap">
16
- <div class="headers-wrapper">
17
- <h2 class="add-new-buttons">Popups <a href="<?php echo admin_url();?>admin.php?page=create-popup" class="add-new-h2">Add New</a></h2>
18
- <?php if(!SG_POPUP_PRO): ?>
19
- <input type="button" class="main-update-to-pro" value="Upgrade to PRO version" onclick="window.open('<?php echo SG_POPUP_PRO_URL;?>')">
20
- <?php endif; ?>
21
- <?php if(SG_POPUP_PRO): ?>
22
- <div class="export-import-buttons-wrraper">
23
- <?php if(!empty($allData)):?>
24
- <a href= "admin-post.php?action=popup_export" ><input type="button" value="Export" class="button"></a>
25
- <?php endif;?>
26
- <input id="js-upload-export-file" class="button" type="button" value="Import"><img src="<?php echo plugins_url('img/wpAjax.gif', dirname(__FILE__).'../'); ?>" alt="gif" class="sg-hide-element js-sg-import-gif">
27
- </div>
28
- <div class="clear"></div>
29
- <?php endif; ?>
30
- </div>
31
- <?php
32
- $table = new SGPB_PopupsView();
33
- echo $table;
34
- SGFunctions::showInfo();
35
- ?>
36
  </div>
1
+ <?php
2
+ require_once(SG_APP_POPUP_CLASSES.'/sgDataTable/SGPopupTable.php');
3
+ $allData = SGPopup::findAll();
4
+
5
+ if(!SG_SHOW_POPUP_REVIEW) {
6
+ echo SGFunctions::addReview();
7
+ }
8
+
9
+ ?>
10
+ <div class="wrap">
11
+ <div class="headers-wrapper">
12
+ <h2 class="add-new-buttons">Popups <a href="<?php echo admin_url();?>admin.php?page=create-popup" class="add-new-h2">Add New</a></h2>
13
+ <?php if(!SG_POPUP_PRO): ?>
14
+ <input type="button" class="main-update-to-pro" value="Upgrade to PRO version" onclick="window.open('<?php echo SG_POPUP_PRO_URL;?>')">
15
+ <?php endif; ?>
16
+ <?php if(SG_POPUP_PRO): ?>
17
+ <div class="export-import-buttons-wrraper">
18
+ <?php if(!empty($allData)):?>
19
+ <a href= "admin-post.php?action=popup_export" ><input type="button" value="Export" class="button"></a>
20
+ <?php endif;?>
21
+ <input id="js-upload-export-file" class="button" type="button" value="Import"><img src="<?php echo plugins_url('img/wpAjax.gif', dirname(__FILE__).'../'); ?>" alt="gif" class="sg-hide-element js-sg-import-gif">
22
+ </div>
23
+ <div class="clear"></div>
24
+ <?php endif; ?>
25
+ </div>
26
+ <?php
27
+ $table = new SGPB_PopupsView();
28
+ echo $table;
29
+ SGFunctions::showInfo();
30
+ ?>
 
 
 
 
 
31
  </div>
files/sg_popup_media_button.php CHANGED
@@ -1,91 +1,96 @@
1
- <?php
2
- function sgPopupMediaButton()
3
- {
4
- global $pagenow, $typenow;
5
-
6
- $buttonTitle = 'Insert popup';
7
- $output = '';
8
-
9
- $pages = array(
10
- 'post.php',
11
- 'page.php',
12
- 'post-new.php',
13
- 'post-edit.php',
14
- 'widgets.php'
15
- );
16
-
17
- $checkPage = in_array(
18
- $pagenow,
19
- $pages
20
- );
21
-
22
- if ($checkPage && $typenow != 'download') {
23
- $img = '<span class="dashicons dashicons-welcome-widgets-menus" id="sg-popup-media-button" style="padding: 3px 2px 0px 0px"></span>';
24
- $output = '<a href="#TB_inline?width=600&height=550&inlineId=sg-popup-thickbox" class="thickbox button" title="'.$buttonTitle.'" style="padding-left: .4em;">'. $img.$buttonTitle.'</a>';
25
- }
26
- echo $output;
27
- }
28
-
29
- add_action('media_buttons', 'sgPopupMediaButton', 11);
30
-
31
- function sgPopupMediaButtonThickboxs()
32
- {
33
- global $pagenow, $typenow;
34
-
35
- $pages = array(
36
- 'post.php',
37
- 'page.php',
38
- 'post-new.php',
39
- 'post-edit.php',
40
- 'widgets.php'
41
- );
42
-
43
- $checkPage = in_array(
44
- $pagenow,
45
- $pages
46
- );
47
-
48
- if ($checkPage && $typenow != 'download') : ?>
49
- <script type="text/javascript">
50
- jQuery(document).ready(function ($) {
51
- $('#sg-ptp-popup-insert').on('click', function () {
52
- var id = $('#sg-insert-popup-id').val();
53
- if ('' === id) {
54
- alert('Select your popup');
55
- return;
56
- }
57
- selectionText = '';
58
- if (typeof(tinyMCE.editors.content) != "undefined") {
59
- selectionText = (tinyMCE.activeEditor.selection.getContent()) ? tinyMCE.activeEditor.selection.getContent() : '';
60
- }
61
- window.send_to_editor('[sg_popup id="' + id + '"]'+selectionText+"[/sg_popup]");
62
- });
63
- });
64
- </script>
65
-
66
- <div id="sg-popup-thickbox" style="display: none;">
67
- <div class="wrap">
68
- <p>Insert the shortcode for showing a Popup.</p>
69
- <div>
70
- <select id="sg-insert-popup-id">
71
- <option value="">Please select...</option>
72
- <?php
73
- global $wpdb;
74
- $proposedTypes = array();
75
- $orderBy = 'id DESC';
76
- $allPopups = SGPopup::findAll($orderBy);
77
- foreach ($allPopups as $allPopup) : ?>
78
- <option value="<?=$allPopup->getId()?>"><?php echo $allPopup->getTitle();?><?php echo " - ".$allPopup->getType();?></option>;
79
- <?php endforeach; ?>
80
- </select>
81
- </div>
82
- <p class="submit">
83
- <input type="button" id="sg-ptp-popup-insert" class="button-primary dashicons-welcome-widgets-menus" value="Insert"/>
84
- <a id="sg_popup_cancel" class="button-secondary" onclick="tb_remove();" title="Cancel">Cancel</a>
85
- </p>
86
- </div>
87
- </div>
88
- <?php endif;
89
- }
90
-
 
 
 
 
 
91
  add_action('admin_footer', 'sgPopupMediaButtonThickboxs');
1
+ <?php
2
+ function sgPopupMediaButton()
3
+ {
4
+ global $pagenow, $typenow;
5
+
6
+ $buttonTitle = 'Insert popup';
7
+ $output = '';
8
+
9
+ $pages = array(
10
+ 'post.php',
11
+ 'page.php',
12
+ 'post-new.php',
13
+ 'post-edit.php',
14
+ 'widgets.php'
15
+ );
16
+
17
+ $checkPage = in_array(
18
+ $pagenow,
19
+ $pages
20
+ );
21
+
22
+ if ($checkPage && $typenow != 'download') {
23
+
24
+ wp_enqueue_script('jquery-ui-dialog');
25
+ wp_register_style('sg_jQuery_ui', SG_APP_POPUP_URL . "/style/jQueryDialog/jquery-ui.css");
26
+ wp_enqueue_style('sg_jQuery_ui');
27
+ $img = '<span class="dashicons dashicons-welcome-widgets-menus" id="sg-popup-media-button" style="padding: 3px 2px 0px 0px"></span>';
28
+ $output = '<a href="javascript:void(0);" onclick="jQuery(\'#sgpb-thickbox\').dialog({ width: 450, modal: true });" class="button" title="'.$buttonTitle.'" style="padding-left: .4em;">'. $img.$buttonTitle.'</a>';
29
+ }
30
+ echo $output;
31
+ }
32
+
33
+ add_action('media_buttons', 'sgPopupMediaButton', 11);
34
+
35
+ function sgPopupMediaButtonThickboxs()
36
+ {
37
+ global $pagenow, $typenow;
38
+
39
+ $pages = array(
40
+ 'post.php',
41
+ 'page.php',
42
+ 'post-new.php',
43
+ 'post-edit.php',
44
+ 'widgets.php'
45
+ );
46
+
47
+ $checkPage = in_array(
48
+ $pagenow,
49
+ $pages
50
+ );
51
+
52
+ if ($checkPage && $typenow != 'download') : ?>
53
+ <script type="text/javascript">
54
+ jQuery(document).ready(function ($) {
55
+ $('#sg-ptp-popup-insert').on('click', function () {
56
+ var id = $('#sg-insert-popup-id').val();
57
+ if ('' === id) {
58
+ alert('Select your popup');
59
+ return;
60
+ }
61
+ selectionText = '';
62
+ if (typeof(tinyMCE.editors.content) != "undefined") {
63
+ selectionText = (tinyMCE.activeEditor.selection.getContent()) ? tinyMCE.activeEditor.selection.getContent() : '';
64
+ }
65
+ window.send_to_editor('[sg_popup id="' + id + '"]'+selectionText+"[/sg_popup]");
66
+ jQuery('#sgpb-thickbox').dialog( "close" );
67
+ });
68
+ });
69
+ </script>
70
+
71
+ <div id="sgpb-thickbox" style="display: none;">
72
+ <div class="wrap">
73
+ <p>Insert the shortcode for showing a Popup.</p>
74
+ <div>
75
+ <select id="sg-insert-popup-id">
76
+ <option value="">Please select...</option>
77
+ <?php
78
+ global $wpdb;
79
+ $proposedTypes = array();
80
+ $orderBy = 'id DESC';
81
+ $allPopups = SGPopup::findAll($orderBy);
82
+ foreach ($allPopups as $allPopup) : ?>
83
+ <option value="<?=$allPopup->getId()?>"><?php echo $allPopup->getTitle();?><?php echo " - ".$allPopup->getType();?></option>;
84
+ <?php endforeach; ?>
85
+ </select>
86
+ </div>
87
+ <p class="submit">
88
+ <input type="button" id="sg-ptp-popup-insert" class="button-primary dashicons-welcome-widgets-menus" value="Insert"/>
89
+ <a id="sg_popup_cancel" class="button-secondary" onclick="jQuery('#sgpb-thickbox').dialog( 'close' )" title="Cancel">Cancel</a>
90
+ </p>
91
+ </div>
92
+ </div>
93
+ <?php endif;
94
+ }
95
+
96
  add_action('admin_footer', 'sgPopupMediaButtonThickboxs');
files/sg_popup_page_selection.php CHANGED
@@ -1,68 +1,68 @@
1
- <?php
2
- function sgPopupMeta()
3
- {
4
- $screens = array('post', 'page');
5
- foreach ( $screens as $screen ) {
6
- add_meta_box( 'prfx_meta', __('Select popup on page load', 'prfx-textdomain'), 'sgPopupCallback', $screen, 'normal');
7
- }
8
- }
9
- add_action('add_meta_boxes', 'sgPopupMeta');
10
-
11
- function sgPopupCallback($post)
12
- {
13
- wp_nonce_field( basename( __FILE__ ), 'prfx_nonce' );
14
- $prfx_stored_meta = get_post_meta( $post->ID );
15
- ?>
16
- <p class="preview-paragaraph">
17
- <?php
18
- global $wpdb;
19
- $proposedTypes = array();
20
- $orderBy = 'id DESC';
21
- $proposedTypes = SGPopup::findAll($orderBy);
22
- function sgCreateSelect($options,$name,$selecteOption) {
23
- $selected ='';
24
- $str = "";
25
- $str .= "<select class=\"choose-popup-type\" name=\"$name\">";
26
- $str .= "<option value=''>Not selected</potion>";
27
- foreach($options as $option)
28
- {
29
- if ($option) {
30
- $title = $option->getTitle();
31
- $type = $option->getType();
32
- $id = $option->getId();
33
- if ($selecteOption == $id) {
34
- $selected = "selected";
35
- }
36
- else {
37
- $selected ='';
38
- }
39
- $str .= "<option value='".$id."' disable='".$id."' ".$selected." >$title - $type</potion>";
40
- }
41
- }
42
- $str .="</select>" ;
43
- return $str;
44
- }
45
- global $post;
46
- $page = (int)$post->ID;
47
- $popup = "sg_promotional_popup";
48
- $popupId = SGPopup::getPagePopupId($page,$popup);
49
- echo sgCreateSelect($proposedTypes,'sg_promotional_popup',$popupId);
50
- $SG_APP_POPUP_URL = SG_APP_POPUP_URL;
51
- ?>
52
- </p>
53
- <input type="hidden" value="<?php echo $SG_APP_POPUP_URL;?>" id="SG_APP_POPUP_URL">
54
- <?php
55
- }
56
-
57
- function sgSelectPopupSaved($post_id)
58
- {
59
- if(empty($_POST['sg_promotional_popup'])) {
60
- delete_post_meta($post_id, 'sg_promotional_popup');
61
- return false;
62
- }
63
- else {
64
- update_post_meta($post_id, 'sg_promotional_popup' , $_POST['sg_promotional_popup']);
65
- }
66
- }
67
-
68
  add_action('save_post','sgSelectPopupSaved');
1
+ <?php
2
+ function sgPopupMeta()
3
+ {
4
+ $screens = array('post', 'page');
5
+ foreach ( $screens as $screen ) {
6
+ add_meta_box( 'prfx_meta', __('Select popup on page load', 'prfx-textdomain'), 'sgPopupCallback', $screen, 'normal');
7
+ }
8
+ }
9
+ add_action('add_meta_boxes', 'sgPopupMeta');
10
+
11
+ function sgPopupCallback($post)
12
+ {
13
+ wp_nonce_field( basename( __FILE__ ), 'prfx_nonce' );
14
+ $prfx_stored_meta = get_post_meta( $post->ID );
15
+ ?>
16
+ <p class="preview-paragaraph">
17
+ <?php
18
+ global $wpdb;
19
+ $proposedTypes = array();
20
+ $orderBy = 'id DESC';
21
+ $proposedTypes = SGPopup::findAll($orderBy);
22
+ function sgCreateSelect($options,$name,$selecteOption) {
23
+ $selected ='';
24
+ $str = "";
25
+ $str .= "<select class=\"choose-popup-type\" name=\"$name\">";
26
+ $str .= "<option value=''>Not selected</potion>";
27
+ foreach($options as $option)
28
+ {
29
+ if ($option) {
30
+ $title = $option->getTitle();
31
+ $type = $option->getType();
32
+ $id = $option->getId();
33
+ if ($selecteOption == $id) {
34
+ $selected = "selected";
35
+ }
36
+ else {
37
+ $selected ='';
38
+ }
39
+ $str .= "<option value='".$id."' disable='".$id."' ".$selected." >$title - $type</potion>";
40
+ }
41
+ }
42
+ $str .="</select>" ;
43
+ return $str;
44
+ }
45
+ global $post;
46
+ $page = (int)$post->ID;
47
+ $popup = "sg_promotional_popup";
48
+ $popupId = SGPopup::getPagePopupId($page,$popup);
49
+ echo sgCreateSelect($proposedTypes,'sg_promotional_popup',$popupId);
50
+ $SG_APP_POPUP_URL = SG_APP_POPUP_URL;
51
+ ?>
52
+ </p>
53
+ <input type="hidden" value="<?php echo $SG_APP_POPUP_URL;?>" id="SG_APP_POPUP_URL">
54
+ <?php
55
+ }
56
+
57
+ function sgSelectPopupSaved($post_id)
58
+ {
59
+ if(empty($_POST['sg_promotional_popup'])) {
60
+ delete_post_meta($post_id, 'sg_promotional_popup');
61
+ return false;
62
+ }
63
+ else {
64
+ update_post_meta($post_id, 'sg_promotional_popup' , $_POST['sg_promotional_popup']);
65
+ }
66
+ }
67
+
68
  add_action('save_post','sgSelectPopupSaved');
files/sg_popup_save.php CHANGED
@@ -1,349 +1,357 @@
1
- <?php
2
- add_action('admin_post_save_popup', 'sgPopupSave');
3
-
4
- function sgSanitize($optionsKey)
5
- {
6
- if (isset($_POST[$optionsKey])) {
7
- if ($optionsKey == "sg_popup_html"||
8
- $optionsKey == "sg_ageRestriction"||
9
- $optionsKey == "sg_countdown"||
10
- $optionsKey == "sg_social" ||
11
- $optionsKey == "sg-exit-intent" ||
12
- $optionsKey == "sg_popup_fblike" ||
13
- $optionsKey == "sg_subscription" ||
14
- $optionsKey == "sg_contactForm" ||
15
- $optionsKey == "all-selected-page" ||
16
- $optionsKey == "all-selected-posts"
17
- ) {
18
- if(SG_POPUP_PRO) {
19
- $sgPopupData = $_POST[$optionsKey];
20
- require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php");
21
- return SgPopupPro::sgPopupDataSanitize($sgPopupData);
22
- }
23
- return wp_kses_post($_POST[$optionsKey]);
24
- }
25
- return sanitize_text_field($_POST[$optionsKey]);
26
- }
27
- else {
28
- return "";
29
- }
30
- }
31
-
32
- function sgPopupSave()
33
- {
34
- global $wpdb;
35
- $socialButtons = array();
36
- $socialOptions = array();
37
- $countdownOptions = array();
38
- $fblikeOptions = array();
39
- $subscriptionOptions = array();
40
- $options = array();
41
- $contactFormOptions = array();
42
- $showAllPages = sgSanitize('allPages');
43
- $showAllPosts = sgSanitize('allPosts');
44
- $allSelectedPages = sgSanitize('all-selected-page');
45
- $allSelectedPosts = sgSanitize('all-selected-posts');
46
-
47
-
48
- $socialOptions = array(
49
- 'sgSocialTheme' => sgSanitize('sgSocialTheme'),
50
- 'sgSocialButtonsSize' => sgSanitize('sgSocialButtonsSize'),
51
- 'sgSocialLabel' => sgSanitize('sgSocialLabel'),
52
- 'sgSocialShareCount' => sgSanitize('sgSocialShareCount'),
53
- 'sgRoundButton' => sgSanitize('sgRoundButton'),
54
- 'fbShareLabel' => sgSanitize('fbShareLabel'),
55
- 'lindkinLabel' => sgSanitize('lindkinLabel'),
56
- 'sgShareUrl' => sgSanitize('sgShareUrl'),
57
- 'shareUrlType' => sgSanitize('shareUrlType'),
58
- 'googLelabel' => sgSanitize('googLelabel'),
59
- 'twitterLabel' => sgSanitize('twitterLabel'),
60
- 'pinterestLabel' => sgSanitize('pinterestLabel'),
61
- 'sgMailSubject' => sgSanitize('sgMailSubject'),
62
- 'sgMailLable' => sgSanitize('sgMailLable')
63
- );
64
-
65
- $socialButtons = array(
66
- 'sgTwitterStatus' => sgSanitize('sgTwitterStatus'),
67
- 'sgFbStatus' => sgSanitize('sgFbStatus'),
68
- 'sgEmailStatus' => sgSanitize('sgEmailStatus'),
69
- 'sgLinkedinStatus' => sgSanitize('sgLinkedinStatus'),
70
- 'sgGoogleStatus' => sgSanitize('sgGoogleStatus'),
71
- 'sgPinterestStatus' => sgSanitize('sgPinterestStatus'),
72
- 'pushToBottom' => sgSanitize('pushToBottom')
73
- );
74
-
75
- $countdownOptions = array(
76
- 'pushToBottom' => sgSanitize('pushToBottom'),
77
- 'countdownNumbersBgColor' => sgSanitize('countdownNumbersBgColor'),
78
- 'countdownNumbersTextColor' => sgSanitize('countdownNumbersTextColor'),
79
- 'sg-due-date' => sgSanitize('sg-due-date'),
80
- 'countdown-position' => sgSanitize('countdown-position'),
81
- 'counts-language'=> sgSanitize('counts-language'),
82
- 'sg-time-zone' => sgSanitize('sg-time-zone'),
83
- 'sg-countdown-type' => sgSanitize('sg-countdown-type'),
84
- );
85
-
86
- $videoOptions = array(
87
- 'video-autoplay' => sgSanitize('video-autoplay')
88
- );
89
-
90
- $exitIntentOptions = array(
91
- 'exit-intent-type' => sgSanitize('exit-intent-type'),
92
- 'exit-intent-expire-time' => sgSanitize('exit-intent-expire-time'),
93
- 'exit-intent-alert' => sgSanitize('exit-intent-alert')
94
- );
95
-
96
- $subscriptionOptions = array(
97
- 'subs-first-name-status' => sgSanitize('subs-first-name-status'),
98
- 'subs-last-name-status' => sgSanitize('subs-last-name-status'),
99
- 'subscription-email' => sgSanitize('subscription-email'),
100
- 'subs-first-name' => sgSanitize('subs-first-name'),
101
- 'subs-last-name' => sgSanitize('subs-last-name'),
102
- 'subs-text-width' => sgSanitize('subs-text-width'),
103
- 'subs-button-bgcolor' => sgSanitize('subs-button-bgcolor'),
104
- 'subs-btn-width' => sgSanitize('subs-btn-width'),
105
- 'subs-btn-title' => sgSanitize('subs-btn-title'),
106
- 'subs-text-input-bgcolor' => sgSanitize('subs-text-input-bgcolor'),
107
- 'subs-text-bordercolor' => sgSanitize('subs-text-bordercolor'),
108
- 'subs-button-color' => sgSanitize('subs-button-color'),
109
- 'subs-inputs-color' => sgSanitize('subs-inputs-color'),
110
- 'subs-btn-height' => sgSanitize('subs-btn-height'),
111
- 'subs-text-height' => sgSanitize('subs-text-height'),
112
- 'subs-placeholder-color' => sgSanitize('subs-placeholder-color'),
113
- 'subs-validation-message' => sgSanitize('subs-validation-message'),
114
- 'subs-success-message' => sgSanitize('subs-success-message'),
115
- 'subs-btn-progress-title' => sgSanitize('subs-btn-progress-title'),
116
- 'subs-text-border-width' => sgSanitize('subs-text-border-width'),
117
- );
118
-
119
- $contactFormOptions = array(
120
- 'contact-name' => sgSanitize('contact-name'),
121
- 'contact-subject' => sgSanitize('contact-subject'),
122
- 'contact-email' => sgSanitize('contact-email'),
123
- 'contact-message' => sgSanitize('contact-message'),
124
- 'contact-validation-message' => sgSanitize('contact-validation-message'),
125
- 'contact-success-message' => sgSanitize('contact-success-message'),
126
- 'contact-inputs-width' => sgSanitize('contact-inputs-width'),
127
- 'contact-inputs-height' => sgSanitize('contact-inputs-height'),
128
- 'contact-inputs-border-width' => sgSanitize('contact-inputs-border-width'),
129
- 'contact-text-input-bgcolor' => sgSanitize('contact-text-input-bgcolor'),
130
- 'contact-text-bordercolor' => sgSanitize('contact-text-bordercolor'),
131
- 'contact-inputs-color' => sgSanitize('contact-inputs-color'),
132
- 'contact-placeholder-color' => sgSanitize('contact-placeholder-color'),
133
- 'contact-btn-width' => sgSanitize('contact-btn-width'),
134
- 'contact-btn-height' => sgSanitize('contact-btn-height'),
135
- 'contact-btn-title' => sgSanitize('contact-btn-title'),
136
- 'contact-btn-progress-title' => sgSanitize('contact-btn-progress-title'),
137
- 'contact-button-bgcolor' => sgSanitize('contact-button-bgcolor'),
138
- 'contact-button-color' => sgSanitize('contact-button-color'),
139
- 'contact-area-width' => sgSanitize('contact-area-width'),
140
- 'contact-area-height' => sgSanitize('contact-area-height'),
141
- 'sg-contact-resize' => sgSanitize('sg-contact-resize'),
142
- 'contact-validate-email' => sgSanitize('contact-validate-email')
143
- );
144
-
145
- $fblikeOptions = array(
146
- 'fblike-like-url' => sgSanitize('fblike-like-url'),
147
- 'fblike-layout' => sgSanitize('fblike-layout')
148
- );
149
-
150
- $options = array(
151
- 'width' => sgSanitize('width'),
152
- 'height' => sgSanitize('height'),
153
- 'delay' => (int)sgSanitize('delay'),
154
- 'duration' => (int)sgSanitize('duration'),
155
- 'effect' => sgSanitize('effect'),
156
- 'escKey' => sgSanitize('escKey'),
157
- 'scrolling' => sgSanitize('scrolling'),
158
- 'reposition' => sgSanitize('reposition'),
159
- 'overlayClose' => sgSanitize('overlayClose'),
160
- 'contentClick' => sgSanitize('contentClick'),
161
- 'opacity' => sgSanitize('opacity'),
162
- 'sgOverlayColor' => sgSanitize('sgOverlayColor'),
163
- 'popupFixed' => sgSanitize('popupFixed'),
164
- 'fixedPostion' => sgSanitize('fixedPostion'),
165
- 'maxWidth' => sgSanitize('maxWidth'),
166
- 'maxHeight' => sgSanitize('maxHeight'),
167
- 'initialWidth' => sgSanitize('initialWidth'),
168
- 'initialHeight' => sgSanitize('initialHeight'),
169
- 'closeButton' => sgSanitize('closeButton'),
170
- 'theme' => sgSanitize('theme'),
171
- 'onScrolling' => sgSanitize('onScrolling'),
172
- 'beforeScrolingPrsent' => (int)sgSanitize('beforeScrolingPrsent'),
173
- 'forMobile' => sgSanitize('forMobile'),
174
- 'openMobile' => sgSanitize('openMobile'), // open only for mobile
175
- 'repeatPopup' => sgSanitize('repeatPopup'),
176
- 'autoClosePopup' => sgSanitize('autoClosePopup'),
177
- 'countryStatus' => sgSanitize('countryStatus'),
178
- 'showAllPages' => $showAllPages,
179
- 'allSelectedPages' => $allSelectedPages,
180
- 'showAllPosts' => $showAllPosts,
181
- 'allSelectedPosts' => $allSelectedPosts,
182
- 'allowCountries' => sgSanitize('allowCountries'),
183
- 'countryName' => sgSanitize('countryName'),
184
- 'countryIso' => sgSanitize('countryIso'),
185
- 'disablePopup' => sgSanitize('disablePopup'),
186
- 'disablePopupOverlay' => sgSanitize('disablePopupOverlay'),
187
- 'popupClosingTimer' => sgSanitize('popupClosingTimer'),
188
- 'yesButtonLabel' => sgSanitize('yesButtonLabel'),
189
- 'noButtonLabel' => sgSanitize('noButtonLabel'),
190
- 'restrictionUrl' => sgSanitize('restrictionUrl'),
191
- 'yesButtonBackgroundColor' => sgSanitize('yesButtonBackgroundColor'),
192
- 'noButtonBackgroundColor' => sgSanitize('noButtonBackgroundColor'),
193
- 'yesButtonTextColor' => sgSanitize('yesButtonTextColor'),
194
- 'noButtonTextColor' => sgSanitize('noButtonTextColor'),
195
- 'yesButtonRadius' => (int)sgSanitize('yesButtonRadius'),
196
- 'noButtonRadius' => (int)sgSanitize('noButtonRadius'),
197
- 'pushToBottom' => sgSanitize('pushToBottom'),
198
- 'onceExpiresTime' => sgSanitize('onceExpiresTime'),
199
- 'sgOverlayCustomClasss' => sgSanitize('sgOverlayCustomClasss'),
200
- 'sgContentCustomClasss' => sgSanitize('sgContentCustomClasss'),
201
- 'theme-close-text' => sgSanitize('theme-close-text'),
202
- 'socialButtons' => json_encode($socialButtons),
203
- 'socialOptions' => json_encode($socialOptions),
204
- 'countdownOptions' => json_encode($countdownOptions),
205
- 'exitIntentOptions' => json_encode($exitIntentOptions),
206
- 'videoOptions' => json_encode($videoOptions),
207
- 'fblikeOptions' => json_encode($fblikeOptions)
208
- );
209
-
210
- $html = stripslashes(sgSanitize("sg_popup_html"));
211
- $fblike = stripslashes(sgSanitize("sg_popup_fblike"));
212
- $ageRestriction = stripslashes(sgSanitize('sg_ageRestriction'));
213
- $social = stripslashes(sgSanitize('sg_social'));
214
- $image = sgSanitize('ad_image');
215
- $countdown = stripslashes(sgSanitize('sg_countdown'));
216
- $subscription = stripslashes(sgSanitize('sg_subscription'));
217
- $sgContactForm = stripslashes(sgSanitize('sg_contactForm'));
218
- $iframe = sgSanitize('iframe');
219
- $video = sgSanitize('video');
220
- $shortCode = stripslashes(sgSanitize('shortcode'));
221
- $exitIntent = stripslashes(sgSanitize('sg-exit-intent'));
222
- $type = sgSanitize('type');
223
- $title = sgSanitize('title');
224
- $id = sgSanitize('hidden_popup_number');
225
- $jsonDataArray = json_encode($options);
226
-
227
- $data = array(
228
- 'id' => $id,
229
- 'title' => $title,
230
- 'type' => $type,
231
- 'image' => $image,
232
- 'html' => $html,
233
- 'fblike' => $fblike,
234
- 'iframe' => $iframe,
235
- 'video' => $video,
236
- 'shortcode' => $shortCode,
237
- 'ageRestriction' => $ageRestriction,
238
- 'countdown' => $countdown,
239
- 'exitIntent' => $exitIntent,
240
- 'sg_subscription' => $subscription,
241
- 'sg_contactForm' => $sgContactForm,
242
- 'social' => $social,
243
- 'options' => $jsonDataArray,
244
- 'subscriptionOptions' => json_encode($subscriptionOptions),
245
- 'contactFormOptions' => json_encode($contactFormOptions)
246
- );
247
-
248
- function setPopupForAllPages($id, $data) {
249
- SGPopup::addPopupForAllPages($id, $data);
250
- }
251
-
252
- function setOptionPopupType($id, $type) {
253
- update_option("SG_POPUP_".strtoupper($type)."_".$id,$id);
254
- }
255
-
256
- if (empty($title)) {
257
- wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&type=$type&titleError=1");
258
- exit();
259
- }
260
- $popupName = "SG".ucfirst(strtolower($_POST['type']));
261
- $popupClassName = $popupName."Popup";
262
-
263
- require_once(SG_APP_POPUP_PATH ."/classes/".$popupClassName.".php");
264
- if ($id == "") {
265
- global $wpdb;
266
- call_user_func(array($popupClassName, 'create'), $data);
267
- $lastId = $wpdb->get_var("SELECT LAST_INSERT_ID() FROM ". $wpdb->prefix."sg_popup");
268
-
269
- SGPopup::removePopupFromPages($lastId);
270
- if(!empty($showAllPages)) {
271
- setPopupForAllPages($lastId, $allSelectedPages);
272
- }
273
- if(!empty($showAllPosts)) {
274
- setPopupForAllPages($lastId, $allSelectedPosts);
275
- }
276
- setOptionPopupType($lastId, $type);
277
- wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&id=".$lastId."&type=$type&saved=1");
278
- exit();
279
- }
280
- else {
281
- $popup = SGPopup::findById($id);
282
- $popup->setTitle($title);
283
- $popup->setId($id);
284
- $popup->setType($type);
285
- $popup->setOptions($jsonDataArray);
286
-
287
- switch ($popupName) {
288
- case 'SGImage':
289
- $popup->setUrl($image);
290
- break;
291
- case 'SGIframe':
292
- $popup->setUrl($iframe);
293
- break;
294
- case 'SGVideo':
295
- $popup->setUrl($video);
296
- $popup->setRealUrl($video);
297
- $popup->setVideoOptions(json_encode($videoOptions));
298
- break;
299
- case 'SGHtml':
300
- $popup->setContent($html);
301
- break;
302
- case 'SGFblike':
303
- $popup->setContent($fblike);
304
- $popup->setFblikeOptions(json_encode($fblikeOptions));
305
- break;
306
- case 'SGShortcode':
307
- $popup->setShortcode($shortCode);
308
- break;
309
- case 'SGAgerestriction':
310
- $popup->setContent($ageRestriction);
311
- $popup->setYesButton($options['yesButtonLabel']);
312
- $popup->setNoButton($options['noButtonLabel']);
313
- $popup->setRestrictionUrl($options['restrictionUrl']);
314
- break;
315
- case 'SGCountdown':
316
- $popup->setCountdownContent($countdown);
317
- $popup->setCountdownOptions(json_encode($countdownOptions));
318
- break;
319
- case 'SGSocial':
320
- $popup->setSocialContent($social);
321
- $popup->setButtons(json_encode($socialButtons));
322
- $popup->setSocialOptions(json_encode($socialOptions));
323
- break;
324
- case 'SGExitintent':
325
- $popup->setContent($exitIntent);
326
- $popup->setExitIntentOptions(json_encode($exitIntentOptions));
327
- break;
328
- case 'SGSubscription':
329
- $popup->setContent($subscription);
330
- $popup->setSubscriptionOptions(json_encode($subscriptionOptions));
331
- break;
332
- case 'SGContactform':
333
- $popup->setContent($sgContactForm);
334
- $popup->steParams(json_encode($contactFormOptions));
335
- break;
336
- }
337
- SGPopup::removePopupFromPages($id);
338
- if($showAllPages) {
339
- setPopupForAllPages($id, $allSelectedPages);
340
- }
341
- if($showAllPosts) {
342
- setPopupForAllPages($id, $allSelectedPosts);
343
- }
344
- setOptionPopupType($id, $type);
345
- $popup->save();
346
- wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&id=$id&type=$type&saved=1");
347
- exit();
348
- }
349
- }
 
 
 
 
 
 
 
 
1
+ <?php
2
+ add_action('admin_post_save_popup', 'sgPopupSave');
3
+
4
+ function sgSanitize($optionsKey)
5
+ {
6
+ if (isset($_POST[$optionsKey])) {
7
+ if ($optionsKey == "sg_popup_html"||
8
+ $optionsKey == "sg_ageRestriction"||
9
+ $optionsKey == "sg_countdown"||
10
+ $optionsKey == "sg_social" ||
11
+ $optionsKey == "sg-exit-intent" ||
12
+ $optionsKey == "sg_popup_fblike" ||
13
+ $optionsKey == "sg_subscription" ||
14
+ $optionsKey == "sg_contactForm" ||
15
+ $optionsKey == "all-selected-page" ||
16
+ $optionsKey == "all-selected-posts"
17
+ ) {
18
+ if(SG_POPUP_PRO) {
19
+ $sgPopupData = $_POST[$optionsKey];
20
+ require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php");
21
+ return SgPopupPro::sgPopupDataSanitize($sgPopupData);
22
+ }
23
+ return wp_kses_post($_POST[$optionsKey]);
24
+ }
25
+ return sanitize_text_field($_POST[$optionsKey]);
26
+ }
27
+ else {
28
+ return "";
29
+ }
30
+ }
31
+
32
+ function sgPopupSave()
33
+ {
34
+ global $wpdb;
35
+ $socialButtons = array();
36
+ $socialOptions = array();
37
+ $countdownOptions = array();
38
+ $fblikeOptions = array();
39
+ $subscriptionOptions = array();
40
+ $options = array();
41
+ $contactFormOptions = array();
42
+ $showAllPages = sgSanitize('allPages');
43
+ $showAllPosts = sgSanitize('allPosts');
44
+ $allSelectedPages = explode(",", sgSanitize('all-selected-page'));
45
+ $allSelectedPosts = explode(",", sgSanitize('all-selected-posts'));
46
+
47
+ $socialOptions = array(
48
+ 'sgSocialTheme' => sgSanitize('sgSocialTheme'),
49
+ 'sgSocialButtonsSize' => sgSanitize('sgSocialButtonsSize'),
50
+ 'sgSocialLabel' => sgSanitize('sgSocialLabel'),
51
+ 'sgSocialShareCount' => sgSanitize('sgSocialShareCount'),
52
+ 'sgRoundButton' => sgSanitize('sgRoundButton'),
53
+ 'fbShareLabel' => sgSanitize('fbShareLabel'),
54
+ 'lindkinLabel' => sgSanitize('lindkinLabel'),
55
+ 'sgShareUrl' => sgSanitize('sgShareUrl'),
56
+ 'shareUrlType' => sgSanitize('shareUrlType'),
57
+ 'googLelabel' => sgSanitize('googLelabel'),
58
+ 'twitterLabel' => sgSanitize('twitterLabel'),
59
+ 'pinterestLabel' => sgSanitize('pinterestLabel'),
60
+ 'sgMailSubject' => sgSanitize('sgMailSubject'),
61
+ 'sgMailLable' => sgSanitize('sgMailLable')
62
+ );
63
+
64
+ $socialButtons = array(
65
+ 'sgTwitterStatus' => sgSanitize('sgTwitterStatus'),
66
+ 'sgFbStatus' => sgSanitize('sgFbStatus'),
67
+ 'sgEmailStatus' => sgSanitize('sgEmailStatus'),
68
+ 'sgLinkedinStatus' => sgSanitize('sgLinkedinStatus'),
69
+ 'sgGoogleStatus' => sgSanitize('sgGoogleStatus'),
70
+ 'sgPinterestStatus' => sgSanitize('sgPinterestStatus'),
71
+ 'pushToBottom' => sgSanitize('pushToBottom')
72
+ );
73
+
74
+ $countdownOptions = array(
75
+ 'pushToBottom' => sgSanitize('pushToBottom'),
76
+ 'countdownNumbersBgColor' => sgSanitize('countdownNumbersBgColor'),
77
+ 'countdownNumbersTextColor' => sgSanitize('countdownNumbersTextColor'),
78
+ 'sg-due-date' => sgSanitize('sg-due-date'),
79
+ 'countdown-position' => sgSanitize('countdown-position'),
80
+ 'counts-language'=> sgSanitize('counts-language'),
81
+ 'sg-time-zone' => sgSanitize('sg-time-zone'),
82
+ 'sg-countdown-type' => sgSanitize('sg-countdown-type'),
83
+ );
84
+
85
+ $videoOptions = array(
86
+ 'video-autoplay' => sgSanitize('video-autoplay')
87
+ );
88
+
89
+ $exitIntentOptions = array(
90
+ 'exit-intent-type' => sgSanitize('exit-intent-type'),
91
+ 'exit-intent-expire-time' => sgSanitize('exit-intent-expire-time'),
92
+ 'exit-intent-alert' => sgSanitize('exit-intent-alert')
93
+ );
94
+
95
+ $subscriptionOptions = array(
96
+ 'subs-first-name-status' => sgSanitize('subs-first-name-status'),
97
+ 'subs-last-name-status' => sgSanitize('subs-last-name-status'),
98
+ 'subscription-email' => sgSanitize('subscription-email'),
99
+ 'subs-first-name' => sgSanitize('subs-first-name'),
100
+ 'subs-last-name' => sgSanitize('subs-last-name'),
101
+ 'subs-text-width' => sgSanitize('subs-text-width'),
102
+ 'subs-button-bgcolor' => sgSanitize('subs-button-bgcolor'),
103
+ 'subs-btn-width' => sgSanitize('subs-btn-width'),
104
+ 'subs-btn-title' => sgSanitize('subs-btn-title'),
105
+ 'subs-text-input-bgcolor' => sgSanitize('subs-text-input-bgcolor'),
106
+ 'subs-text-bordercolor' => sgSanitize('subs-text-bordercolor'),
107
+ 'subs-button-color' => sgSanitize('subs-button-color'),
108
+ 'subs-inputs-color' => sgSanitize('subs-inputs-color'),
109
+ 'subs-btn-height' => sgSanitize('subs-btn-height'),
110
+ 'subs-text-height' => sgSanitize('subs-text-height'),
111
+ 'subs-placeholder-color' => sgSanitize('subs-placeholder-color'),
112
+ 'subs-validation-message' => sgSanitize('subs-validation-message'),
113
+ 'subs-success-message' => sgSanitize('subs-success-message'),
114
+ 'subs-btn-progress-title' => sgSanitize('subs-btn-progress-title'),
115
+ 'subs-text-border-width' => sgSanitize('subs-text-border-width'),
116
+ );
117
+
118
+ $contactFormOptions = array(
119
+ 'contact-name' => sgSanitize('contact-name'),
120
+ 'contact-subject' => sgSanitize('contact-subject'),
121
+ 'contact-email' => sgSanitize('contact-email'),
122
+ 'contact-message' => sgSanitize('contact-message'),
123
+ 'contact-validation-message' => sgSanitize('contact-validation-message'),
124
+ 'contact-success-message' => sgSanitize('contact-success-message'),
125
+ 'contact-inputs-width' => sgSanitize('contact-inputs-width'),
126
+ 'contact-inputs-height' => sgSanitize('contact-inputs-height'),
127
+ 'contact-inputs-border-width' => sgSanitize('contact-inputs-border-width'),
128
+ 'contact-text-input-bgcolor' => sgSanitize('contact-text-input-bgcolor'),
129
+ 'contact-text-bordercolor' => sgSanitize('contact-text-bordercolor'),
130
+ 'contact-inputs-color' => sgSanitize('contact-inputs-color'),
131
+ 'contact-placeholder-color' => sgSanitize('contact-placeholder-color'),
132
+ 'contact-btn-width' => sgSanitize('contact-btn-width'),
133
+ 'contact-btn-height' => sgSanitize('contact-btn-height'),
134
+ 'contact-btn-title' => sgSanitize('contact-btn-title'),
135
+ 'contact-btn-progress-title' => sgSanitize('contact-btn-progress-title'),
136
+ 'contact-button-bgcolor' => sgSanitize('contact-button-bgcolor'),
137
+ 'contact-button-color' => sgSanitize('contact-button-color'),
138
+ 'contact-area-width' => sgSanitize('contact-area-width'),
139
+ 'contact-area-height' => sgSanitize('contact-area-height'),
140
+ 'sg-contact-resize' => sgSanitize('sg-contact-resize'),
141
+ 'contact-validate-email' => sgSanitize('contact-validate-email'),
142
+ 'contact-receive-email' => sgSanitize('contact-receive-email'),
143
+ 'contact-fail-message' => sgSanitize('contact-fail-message')
144
+ );
145
+
146
+ $fblikeOptions = array(
147
+ 'fblike-like-url' => sgSanitize('fblike-like-url'),
148
+ 'fblike-layout' => sgSanitize('fblike-layout')
149
+ );
150
+
151
+ $options = array(
152
+ 'width' => sgSanitize('width'),
153
+ 'height' => sgSanitize('height'),
154
+ 'delay' => (int)sgSanitize('delay'),
155
+ 'duration' => (int)sgSanitize('duration'),
156
+ 'effect' => sgSanitize('effect'),
157
+ 'escKey' => sgSanitize('escKey'),
158
+ 'scrolling' => sgSanitize('scrolling'),
159
+ 'reposition' => sgSanitize('reposition'),
160
+ 'overlayClose' => sgSanitize('overlayClose'),
161
+ 'contentClick' => sgSanitize('contentClick'),
162
+ 'opacity' => sgSanitize('opacity'),
163
+ 'sgOverlayColor' => sgSanitize('sgOverlayColor'),
164
+ 'sg-content-background-color' => sgSanitize('sg-content-background-color'),
165
+ 'popupFixed' => sgSanitize('popupFixed'),
166
+ 'fixedPostion' => sgSanitize('fixedPostion'),
167
+ 'maxWidth' => sgSanitize('maxWidth'),
168
+ 'maxHeight' => sgSanitize('maxHeight'),
169
+ 'initialWidth' => sgSanitize('initialWidth'),
170
+ 'initialHeight' => sgSanitize('initialHeight'),
171
+ 'closeButton' => sgSanitize('closeButton'),
172
+ 'theme' => sgSanitize('theme'),
173
+ 'onScrolling' => sgSanitize('onScrolling'),
174
+ 'beforeScrolingPrsent' => (int)sgSanitize('beforeScrolingPrsent'),
175
+ 'forMobile' => sgSanitize('forMobile'),
176
+ 'openMobile' => sgSanitize('openMobile'), // open only for mobile
177
+ 'repeatPopup' => sgSanitize('repeatPopup'),
178
+ 'popup-appear-number-limit' => sgSanitize('popup-appear-number-limit'),
179
+ 'autoClosePopup' => sgSanitize('autoClosePopup'),
180
+ 'countryStatus' => sgSanitize('countryStatus'),
181
+ 'showAllPages' => $showAllPages,
182
+ 'allSelectedPages' => $allSelectedPages,
183
+ 'showAllPosts' => $showAllPosts,
184
+ 'allSelectedPosts' => $allSelectedPosts,
185
+ 'sg-user-status' => sgSanitize('sg-user-status'),
186
+ 'loggedin-user' => sgSanitize('loggedin-user'),
187
+ 'popup-timer-status' => sgSanitize('popup-timer-status'),
188
+ 'popup-start-timer' => sgSanitize('popup-start-timer'),
189
+ 'popup-finish-timer' => sgSanitize('popup-finish-timer'),
190
+ 'allowCountries' => sgSanitize('allowCountries'),
191
+ 'countryName' => sgSanitize('countryName'),
192
+ 'countryIso' => sgSanitize('countryIso'),
193
+ 'disablePopup' => sgSanitize('disablePopup'),
194
+ 'disablePopupOverlay' => sgSanitize('disablePopupOverlay'),
195
+ 'popupClosingTimer' => sgSanitize('popupClosingTimer'),
196
+ 'yesButtonLabel' => sgSanitize('yesButtonLabel'),
197
+ 'noButtonLabel' => sgSanitize('noButtonLabel'),
198
+ 'restrictionUrl' => sgSanitize('restrictionUrl'),
199
+ 'yesButtonBackgroundColor' => sgSanitize('yesButtonBackgroundColor'),
200
+ 'noButtonBackgroundColor' => sgSanitize('noButtonBackgroundColor'),
201
+ 'yesButtonTextColor' => sgSanitize('yesButtonTextColor'),
202
+ 'noButtonTextColor' => sgSanitize('noButtonTextColor'),
203
+ 'yesButtonRadius' => (int)sgSanitize('yesButtonRadius'),
204
+ 'noButtonRadius' => (int)sgSanitize('noButtonRadius'),
205
+ 'pushToBottom' => sgSanitize('pushToBottom'),
206
+ 'onceExpiresTime' => sgSanitize('onceExpiresTime'),
207
+ 'sgOverlayCustomClasss' => sgSanitize('sgOverlayCustomClasss'),
208
+ 'sgContentCustomClasss' => sgSanitize('sgContentCustomClasss'),
209
+ 'theme-close-text' => sgSanitize('theme-close-text'),
210
+ 'socialButtons' => json_encode($socialButtons),
211
+ 'socialOptions' => json_encode($socialOptions),
212
+ 'countdownOptions' => json_encode($countdownOptions),
213
+ 'exitIntentOptions' => json_encode($exitIntentOptions),
214
+ 'videoOptions' => json_encode($videoOptions),
215
+ 'fblikeOptions' => json_encode($fblikeOptions)
216
+ );
217
+
218
+ $html = stripslashes(sgSanitize("sg_popup_html"));
219
+ $fblike = stripslashes(sgSanitize("sg_popup_fblike"));
220
+ $ageRestriction = stripslashes(sgSanitize('sg_ageRestriction'));
221
+ $social = stripslashes(sgSanitize('sg_social'));
222
+ $image = sgSanitize('ad_image');
223
+ $countdown = stripslashes(sgSanitize('sg_countdown'));
224
+ $subscription = stripslashes(sgSanitize('sg_subscription'));
225
+ $sgContactForm = stripslashes(sgSanitize('sg_contactForm'));
226
+ $iframe = sgSanitize('iframe');
227
+ $video = sgSanitize('video');
228
+ $shortCode = stripslashes(sgSanitize('shortcode'));
229
+ $exitIntent = stripslashes(sgSanitize('sg-exit-intent'));
230
+ $type = sgSanitize('type');
231
+ $title = stripslashes(sgSanitize('title'));
232
+ $id = sgSanitize('hidden_popup_number');
233
+ $jsonDataArray = json_encode($options);
234
+
235
+ $data = array(
236
+ 'id' => $id,
237
+ 'title' => $title,
238
+ 'type' => $type,
239
+ 'image' => $image,
240
+ 'html' => $html,
241
+ 'fblike' => $fblike,
242
+ 'iframe' => $iframe,
243
+ 'video' => $video,
244
+ 'shortcode' => $shortCode,
245
+ 'ageRestriction' => $ageRestriction,
246
+ 'countdown' => $countdown,
247
+ 'exitIntent' => $exitIntent,
248
+ 'sg_subscription' => $subscription,
249
+ 'sg_contactForm' => $sgContactForm,
250
+ 'social' => $social,
251
+ 'options' => $jsonDataArray,
252
+ 'subscriptionOptions' => json_encode($subscriptionOptions),
253
+ 'contactFormOptions' => json_encode($contactFormOptions)
254
+ );
255
+
256
+ function setPopupForAllPages($id, $data) {
257
+ SGPopup::addPopupForAllPages($id, $data);
258
+ }
259
+
260
+ function setOptionPopupType($id, $type) {
261
+ update_option("SG_POPUP_".strtoupper($type)."_".$id,$id);
262
+ }
263
+
264
+ if (empty($title)) {
265
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&type=$type&titleError=1");
266
+ exit();
267
+ }
268
+ $popupName = "SG".ucfirst(strtolower($_POST['type']));
269
+ $popupClassName = $popupName."Popup";
270
+
271
+ require_once(SG_APP_POPUP_PATH ."/classes/".$popupClassName.".php");
272
+ if ($id == "") {
273
+ global $wpdb;
274
+ call_user_func(array($popupClassName, 'create'), $data);
275
+ $lastId = $wpdb->get_var("SELECT LAST_INSERT_ID() FROM ". $wpdb->prefix."sg_popup");
276
+
277
+ SGPopup::removePopupFromPages($lastId);
278
+ if(!empty($showAllPages)) {
279
+ setPopupForAllPages($lastId, $allSelectedPages);
280
+ }
281
+ if(!empty($showAllPosts)) {
282
+ setPopupForAllPages($lastId, $allSelectedPosts);
283
+ }
284
+ setOptionPopupType($lastId, $type);
285
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&id=".$lastId."&type=$type&saved=1");
286
+ exit();
287
+ }
288
+ else {
289
+ $popup = SGPopup::findById($id);
290
+ $popup->setTitle($title);
291
+ $popup->setId($id);
292
+ $popup->setType($type);
293
+ $popup->setOptions($jsonDataArray);
294
+
295
+ switch ($popupName) {
296
+ case 'SGImage':
297
+ $popup->setUrl($image);
298
+ break;
299
+ case 'SGIframe':
300
+ $popup->setUrl($iframe);
301
+ break;
302
+ case 'SGVideo':
303
+ $popup->setUrl($video);
304
+ $popup->setRealUrl($video);
305
+ $popup->setVideoOptions(json_encode($videoOptions));
306
+ break;
307
+ case 'SGHtml':
308
+ $popup->setContent($html);
309
+ break;
310
+ case 'SGFblike':
311
+ $popup->setContent($fblike);
312
+ $popup->setFblikeOptions(json_encode($fblikeOptions));
313
+ break;
314
+ case 'SGShortcode':
315
+ $popup->setShortcode($shortCode);
316
+ break;
317
+ case 'SGAgerestriction':
318
+ $popup->setContent($ageRestriction);
319
+ $popup->setYesButton($options['yesButtonLabel']);
320
+ $popup->setNoButton($options['noButtonLabel']);
321
+ $popup->setRestrictionUrl($options['restrictionUrl']);
322
+ break;
323
+ case 'SGCountdown':
324
+ $popup->setCountdownContent($countdown);
325
+ $popup->setCountdownOptions(json_encode($countdownOptions));
326
+ break;
327
+ case 'SGSocial':
328
+ $popup->setSocialContent($social);
329
+ $popup->setButtons(json_encode($socialButtons));
330
+ $popup->setSocialOptions(json_encode($socialOptions));
331
+ break;
332
+ case 'SGExitintent':
333
+ $popup->setContent($exitIntent);
334
+ $popup->setExitIntentOptions(json_encode($exitIntentOptions));
335
+ break;
336
+ case 'SGSubscription':
337
+ $popup->setContent($subscription);
338
+ $popup->setSubscriptionOptions(json_encode($subscriptionOptions));
339
+ break;
340
+ case 'SGContactform':
341
+ $popup->setContent($sgContactForm);
342
+ $popup->steParams(json_encode($contactFormOptions));
343
+ break;
344
+ }
345
+ SGPopup::removePopupFromPages($id);
346
+ if($showAllPages) {
347
+ setPopupForAllPages($id, $allSelectedPages);
348
+ }
349
+ if($showAllPosts) {
350
+ setPopupForAllPages($id, $allSelectedPosts);
351
+ }
352
+ setOptionPopupType($id, $type);
353
+ $popup->save();
354
+ wp_redirect(SG_APP_POPUP_ADMIN_URL."admin.php?page=edit-popup&id=$id&type=$type&saved=1");
355
+ exit();
356
+ }
357
+ }
img/proOptions.png CHANGED
Binary file
javascript/jquery.sgcolorbox-min.js CHANGED
@@ -1,1020 +1,1020 @@
1
- (function ($, document, window) {
2
- var
3
- defaults = {
4
- html: false,
5
- photo: false,
6
- iframe: false,
7
- inline: false,
8
- transition: "elastic",
9
- speed: 300,
10
- fadeOut: 300,
11
- width: false,
12
- initialWidth: "600",
13
- innerWidth: false,
14
- maxWidth: false,
15
- height: false,
16
- initialHeight: "450",
17
- innerHeight: false,
18
- maxHeight: false,
19
- scalePhotos: true,
20
- scrolling: true,
21
- opacity: 0.9,
22
- preloading: true,
23
- className: false,
24
- overlayClose: true,
25
- escKey: true,
26
- arrowKey: true,
27
- top: false,
28
- bottom: false,
29
- left: false,
30
- right: false,
31
- fixed: false,
32
- data: undefined,
33
- closeButton: true,
34
- fastIframe: true,
35
- open: false,
36
- reposition: true,
37
- loop: true,
38
- slideshow: false,
39
- slideshowAuto: true,
40
- slideshowSpeed: 2500,
41
- slideshowStart: "start slideshow",
42
- slideshowStop: "stop slideshow",
43
- photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,
44
- customClass: 'colorbox1', /* For default themes load*/
45
- retinaImage: false,
46
- retinaUrl: false,
47
- retinaSuffix: '@2x.$1',
48
- current: "image {current} of {total}",
49
- previous: "previous",
50
- next: "next",
51
- close: "close",
52
- xhrError: "This content failed to load.",
53
- imgError: "This image failed to load.",
54
- contentCustomClassName: "sg-popup-content",
55
- overlayCutsomClassName: "sg-popup-overlay",
56
- returnFocus: true,
57
- trapFocus: true,
58
- onOpen: false,
59
- onLoad: false,
60
- onComplete: false,
61
- onCleanup: false,
62
- onClosed: false,
63
-
64
- rel: function () {
65
- return this.rel;
66
- },
67
- href: function () {
68
-
69
- return $(this).attr('href');
70
- },
71
- title: function () {
72
- return this.title;
73
- },
74
- createImg: function () {
75
- var img = new Image();
76
- var attrs = $(this).data('cbox-img-attrs');
77
-
78
- if (typeof attrs === 'object') {
79
- $.each(attrs, function (key, val) {
80
- img[key] = val;
81
- });
82
- }
83
-
84
- return img;
85
- },
86
- createIframe: function () {
87
- var iframe = document.createElement('iframe');
88
- var attrs = $(this).data('cbox-iframe-attrs');
89
-
90
- if (typeof attrs === 'object') {
91
- $.each(attrs, function (key, val) {
92
- iframe[key] = val;
93
- });
94
- }
95
-
96
- if ('frameBorder' in iframe) {
97
- iframe.frameBorder = 0;
98
- }
99
- if ('allowTransparency' in iframe) {
100
- iframe.allowTransparency = "true";
101
- }
102
- iframe.name = (new Date()).getTime();
103
- iframe.allowFullscreen = true;
104
-
105
- return iframe;
106
- }
107
- },
108
- colorbox = 'sgcolorbox',
109
- prefix = 'sgcbox',
110
- boxElement = prefix + 'Element',
111
- event_open = prefix + '_open',
112
- event_load = prefix + '_load',
113
- event_complete = prefix + '_complete',
114
- event_cleanup = prefix + '_cleanup',
115
- event_closed = prefix + '_closed',
116
- event_purge = prefix + '_purge',
117
- $overlay,
118
- $box,
119
- $wrap,
120
- $content,
121
- $topBorder,
122
- $leftBorder,
123
- $rightBorder,
124
- $bottomBorder,
125
- $related,
126
- $window,
127
- $loaded,
128
- $loadingBay,
129
- $loadingOverlay,
130
- $title,
131
- $current,
132
- $slideshow,
133
- $next,
134
- $prev,
135
- $close,
136
- $groupControls,
137
- $events = $('<a/>'),
138
- settings,
139
- interfaceHeight,
140
- interfaceWidth,
141
- loadedHeight,
142
- loadedWidth,
143
- index,
144
- photo,
145
- open,
146
- active,
147
- closing,
148
- loadingTimer,
149
- publicMethod,
150
- div = "div",
151
- requests = 0,
152
- previousCSS = {},
153
- init;
154
- function $tag(tag, id, css) {
155
- var element = document.createElement(tag);
156
-
157
- if (id) {
158
- element.id = prefix + id;
159
- }
160
-
161
- if (css) {
162
- element.style.cssText = css;
163
- }
164
-
165
- return $(element);
166
- }
167
- function winheight() {
168
- return window.innerHeight ? window.innerHeight : $(window).height();
169
- }
170
-
171
- function Settings(element, options) {
172
- if (options !== Object(options)) {
173
- options = {};
174
- }
175
-
176
- this.cache = {};
177
- this.el = element;
178
-
179
- this.value = function (key) {
180
- var dataAttr;
181
-
182
- if (this.cache[key] === undefined) {
183
- dataAttr = $(this.el).attr('data-cbox-' + key);
184
-
185
- if (dataAttr !== undefined) {
186
- this.cache[key] = dataAttr;
187
- } else if (options[key] !== undefined) {
188
- this.cache[key] = options[key];
189
- } else if (defaults[key] !== undefined) {
190
- this.cache[key] = defaults[key];
191
- }
192
- }
193
-
194
- return this.cache[key];
195
- };
196
-
197
- this.get = function (key) {
198
- var value = this.value(key);
199
- return $.isFunction(value) ? value.call(this.el, this) : value;
200
- };
201
- }
202
- function getIndex(increment) {
203
- var
204
- max = $related.length,
205
- newIndex = (index + increment) % max;
206
-
207
- return (newIndex < 0) ? max + newIndex : newIndex;
208
- }
209
- function setSize(size, dimension) {
210
- return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
211
- }
212
- function isImage(settings, url) {
213
- return settings.get('photo') || settings.get('photoRegex').test(url);
214
- }
215
-
216
- function retinaUrl(settings, url) {
217
- return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
218
- }
219
-
220
- function trapFocus(e) {
221
- if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
222
- e.stopPropagation();
223
- $box.focus();
224
- }
225
- }
226
-
227
- function setClass(str) {
228
- if (setClass.str !== str) {
229
- $box.add($overlay).removeClass(setClass.str).addClass(str);
230
- setClass.str = str;
231
- }
232
- }
233
-
234
- function getRelated(rel) {
235
- index = 0;
236
-
237
- if (rel && rel !== false && rel !== 'nofollow') {
238
- $related = $('.' + boxElement).filter(function () {
239
- var options = $.data(this, colorbox);
240
- var settings = new Settings(this, options);
241
- return (settings.get('rel') === rel);
242
- });
243
- index = $related.index(settings.el);
244
- if (index === -1) {
245
- $related = $related.add(settings.el);
246
- index = $related.length - 1;
247
- }
248
- } else {
249
- $related = $(settings.el);
250
- }
251
- }
252
-
253
- function trigger(event) {
254
-
255
- $(document).trigger(event);
256
-
257
- $events.triggerHandler(event);
258
- }
259
-
260
- var slideshow = (function () {
261
- var active,
262
- className = prefix + "Slideshow_",
263
- click = "click." + prefix,
264
- timeOut;
265
-
266
- function clear() {
267
- clearTimeout(timeOut);
268
- }
269
-
270
- function set() {
271
- if (settings.get('loop') || $related[index + 1]) {
272
- clear();
273
- timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
274
- }
275
- }
276
-
277
- function start() {
278
- $slideshow
279
- .html(settings.get('slideshowStop'))
280
- .unbind(click)
281
- .one(click, stop);
282
-
283
- $events
284
- .bind(event_complete, set)
285
- .bind(event_load, clear);
286
-
287
- $box.removeClass(className + "off").addClass(className + "on");
288
- }
289
-
290
- function stop() {
291
- clear();
292
-
293
- $events
294
- .unbind(event_complete, set)
295
- .unbind(event_load, clear);
296
-
297
- $slideshow
298
- .html(settings.get('slideshowStart'))
299
- .unbind(click)
300
- .one(click, function () {
301
- publicMethod.next();
302
- start();
303
- });
304
-
305
- $box.removeClass(className + "on").addClass(className + "off");
306
- }
307
-
308
- function reset() {
309
- active = false;
310
- $slideshow.hide();
311
- clear();
312
- $events
313
- .unbind(event_complete, set)
314
- .unbind(event_load, clear);
315
- $box.removeClass(className + "off " + className + "on");
316
- }
317
-
318
- return function () {
319
- if (active) {
320
- if (!settings.get('slideshow')) {
321
- $events.unbind(event_cleanup, reset);
322
- reset();
323
- }
324
- } else {
325
- if (settings.get('slideshow') && $related[1]) {
326
- active = true;
327
- $events.one(event_cleanup, reset);
328
- if (settings.get('slideshowAuto')) {
329
- start();
330
- } else {
331
- stop();
332
- }
333
- $slideshow.show();
334
- }
335
- }
336
- };
337
-
338
- }());
339
- function launch(element) {
340
- var options;
341
-
342
- if (!closing) {
343
-
344
- options = $(element).data(colorbox);
345
-
346
- settings = new Settings(element, options);
347
-
348
- getRelated(settings.get('rel'));
349
-
350
- if (!open) {
351
- open = active = true;
352
-
353
- setClass(settings.get('className'));
354
- $box.css({visibility: 'hidden', display: 'block', opacity: ''});
355
-
356
- $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
357
- $content.css({width: '', height: ''}).append($loaded);
358
- interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
359
- interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
360
- loadedHeight = $loaded.outerHeight(true);
361
- loadedWidth = $loaded.outerWidth(true);
362
- var initialWidth = setSize(settings.get('initialWidth'), 'x');
363
- var initialHeight = setSize(settings.get('initialHeight'), 'y');
364
- var maxWidth = settings.get('maxWidth');
365
- var maxHeight = settings.get('maxHeight');
366
-
367
- settings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0);
368
- settings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0);
369
-
370
- $loaded.css({width: '', height: settings.h});
371
- publicMethod.position();
372
-
373
- trigger(event_open);
374
- settings.get('onOpen');
375
-
376
- $groupControls.add($title).hide();
377
-
378
- // $box.focus(); issue for fierfox long content click
379
-
380
- if (settings.get('trapFocus')) {
381
- if (document.addEventListener) {
382
-
383
- document.addEventListener('focus', trapFocus, true);
384
-
385
- $events.one(event_closed, function () {
386
- document.removeEventListener('focus', trapFocus, true);
387
- });
388
- }
389
- }
390
- if (settings.get('returnFocus')) {
391
- $events.one(event_closed, function () {
392
- $(settings.el).focus();
393
- });
394
- }
395
- }
396
-
397
- var opacity = parseFloat(settings.get('opacity'));
398
- $overlay.css({
399
- opacity: opacity === opacity ? opacity : '',
400
- cursor: settings.get('overlayClose') ? 'pointer' : '',
401
- visibility: 'visible'
402
- }).show();
403
-
404
- if (settings.get('closeButton')) {
405
- $close.html(settings.get('close')).appendTo($content);
406
- } else {
407
- $close.appendTo('<div/>');
408
- }
409
-
410
- load();
411
- }
412
- }
413
- function appendHTML(options) { /* options Received from publicMethod */
414
- if (!$box) {
415
- init = false;
416
- $window = $(window);
417
- $box = $tag(div).attr({
418
- id: colorbox,
419
- 'class': $.support.opacity === false ? prefix + 'IE' : '',
420
- role: 'dialog',
421
- tabindex: '-1'
422
- }).hide();
423
- $overlay = $tag(div, "Overlay").hide();
424
- $loadingOverlay = $([$tag(div, "LoadingOverlay")[0], $tag(div, "LoadingGraphic")[0]]);
425
- $wrap = $tag(div, "Wrapper");
426
- $content = $tag(div, "Content").append(
427
- $title = $tag(div, "Title"),
428
- $current = $tag(div, "Current"),
429
- $prev = $('<button type="button"/>').attr({id: prefix + 'Previous'}),
430
- $next = $('<button type="button"/>').attr({id: prefix + 'Next'}),
431
- $slideshow = $tag('button', "Slideshow"),
432
- $loadingOverlay
433
- );
434
-
435
- $close = $('<button type="button"/>').attr({id: prefix + 'Close'});
436
-
437
- $wrap.append(
438
- $tag(div).append(
439
- $tag(div, "TopLeft"),
440
- $topBorder = $tag(div, "TopCenter"),
441
- $tag(div, "TopRight")
442
- ),
443
- $tag(div, false, 'clear:left').append(
444
- $leftBorder = $tag(div, "MiddleLeft"),
445
- $content,
446
- $rightBorder = $tag(div, "MiddleRight")
447
- ),
448
- $tag(div, false, 'clear:left').append(
449
- $tag(div, "BottomLeft"),
450
- $bottomBorder = $tag(div, "BottomCenter"),
451
- $tag(div, "BottomRight")
452
- )
453
- ).find('div div').css({'float': 'left'});
454
-
455
- $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');
456
-
457
- $groupControls = $next.add($prev).add($current).add($slideshow);
458
- }
459
- if (document.body && !$box.parent().length) {
460
- $(document.body).append($overlay, $box.append($wrap, $loadingBay));
461
- }
462
- /* Start to set custom class and add to html */
463
- if(typeof options === 'object') {
464
- var customClass = defaults['customClass'];
465
- if(typeof options['className'] !== 'undefined' && options['className']){
466
- customClass = options['className'];
467
- }
468
- if(typeof options['overlayCutsomClassName'] !== 'undefined' && options['overlayCutsomClassName']) {
469
- overlayCutsomClassName = options['overlayCutsomClassName'];
470
- }
471
- else {
472
- overlayCutsomClassName = defaults['overlayCutsomClassName'];
473
- }
474
- if(typeof options['contentCustomClassName'] !== 'undefined' && options['contentCustomClassName']) {
475
- contentCustomClassName = options['contentCustomClassName'];
476
- }
477
- else {
478
- contentCustomClassName = defaults['contentCustomClassName'];
479
- }
480
-
481
- $box.addClass(customClass).addClass(contentCustomClassName);
482
- $overlay.addClass(customClass).addClass(overlayCutsomClassName);
483
- }
484
- /* End action */
485
- }
486
- function addBindings() {
487
- function clickHandler(e) {
488
- if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
489
- e.preventDefault();
490
- launch(this);
491
- }
492
- }
493
-
494
- if ($box) {
495
- if (!init) {
496
- init = true;
497
- $next.click(function () {
498
- publicMethod.next();
499
- });
500
- $prev.click(function () {
501
- publicMethod.prev();
502
- });
503
- $close.click(function () {
504
- publicMethod.close();
505
- });
506
- $overlay.click(function () {
507
- if (settings.get('overlayClose')) {
508
- publicMethod.close();
509
- }
510
- });
511
- $(document).bind('keydown.' + prefix, function (e) {
512
- var key = e.keyCode;
513
- if (open && settings.get('escKey') && key === 27) {
514
- e.preventDefault();
515
- publicMethod.close();
516
- }
517
- if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
518
- if (key === 37) {
519
- e.preventDefault();
520
- $prev.click();
521
- } else if (key === 39) {
522
- e.preventDefault();
523
- $next.click();
524
- }
525
- }
526
- });
527
-
528
- if ($.isFunction($.fn.on)) {
529
-
530
- $(document).on('click.' + prefix, '.' + boxElement, clickHandler);
531
- } else {
532
- $('.' + boxElement).live('click.' + prefix, clickHandler);
533
- }
534
- }
535
- return true;
536
- }
537
- return false;
538
- }
539
- if ($[colorbox]) {
540
- return;
541
- }
542
- $(appendHTML);
543
- publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
544
- var settings;
545
- var $obj = this;
546
-
547
- options = options || {};
548
-
549
- if ($.isFunction($obj)) {
550
- $obj = $('<a/>');
551
- options.open = true;
552
- }
553
-
554
- if (!$obj[0]) {
555
- return $obj;
556
- }
557
-
558
- appendHTML(options); /* Send options for received custom class name*/
559
-
560
- if (addBindings()) {
561
-
562
- if (callback) {
563
- options.onComplete = callback;
564
- }
565
-
566
- $obj.each(function () {
567
- var old = $.data(this, colorbox) || {};
568
- $.data(this, colorbox, $.extend(old, options));
569
- }).addClass(boxElement);
570
-
571
- settings = new Settings($obj[0], options);
572
-
573
- if (settings.get('open')) {
574
- launch($obj[0]);
575
- }
576
- }
577
-
578
- return $obj;
579
- };
580
-
581
- publicMethod.position = function (speed, loadedCallback) {
582
- var
583
- css,
584
- top = 0,
585
- left = 0,
586
- offset = $box.offset(),
587
- scrollTop,
588
- scrollLeft;
589
-
590
- $window.unbind('resize.' + prefix);
591
- $box.css({top: -9e4, left: -9e4});
592
-
593
- scrollTop = $window.scrollTop();
594
- scrollLeft = $window.scrollLeft();
595
-
596
- if (settings.get('fixed')) {
597
- offset.top -= scrollTop;
598
- offset.left -= scrollLeft;
599
- $box.css({position: 'fixed'});
600
- } else {
601
- top = scrollTop;
602
- left = scrollLeft;
603
- $box.css({position: 'absolute'});
604
- }
605
- if (settings.get('right') !== false) {
606
- left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
607
- } else if (settings.get('left') !== false) {
608
- left += setSize(settings.get('left'), 'x');
609
- } else {
610
- left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
611
- }
612
-
613
- if (settings.get('bottom') !== false) {
614
- top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
615
- } else if (settings.get('top') !== false) {
616
- top += setSize(settings.get('top'), 'y');
617
- } else {
618
- top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
619
- }
620
-
621
- $box.css({top: offset.top, left: offset.left, visibility: 'visible'});
622
- $wrap[0].style.width = $wrap[0].style.height = "9999px";
623
-
624
- function modalDimensions() {
625
- $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width, 10) - interfaceWidth) + 'px';
626
- $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height, 10) - interfaceHeight) + 'px';
627
- }
628
-
629
- css = {
630
- width: settings.w + loadedWidth + interfaceWidth,
631
- height: settings.h + loadedHeight + interfaceHeight,
632
- top: top,
633
- left: left
634
- };
635
- if (speed) {
636
- var tempSpeed = 0;
637
- $.each(css, function (i) {
638
- if (css[i] !== previousCSS[i]) {
639
- tempSpeed = speed;
640
- return;
641
- }
642
- });
643
- speed = tempSpeed;
644
- }
645
-
646
- previousCSS = css;
647
-
648
- if (!speed) {
649
- $box.css(css);
650
- }
651
-
652
- $box.dequeue().animate(css, {
653
- duration: speed || 0,
654
- complete: function () {
655
- modalDimensions();
656
-
657
- active = false;
658
- $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
659
- $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
660
-
661
- if (settings.get('reposition')) {
662
- setTimeout(function () {
663
- $window.bind('resize.' + prefix, publicMethod.position);
664
- }, 1);
665
- }
666
-
667
- if ($.isFunction(loadedCallback)) {
668
- loadedCallback();
669
- }
670
- },
671
- step: modalDimensions
672
- });
673
- };
674
-
675
- publicMethod.resize = function (options) {
676
- var scrolltop;
677
-
678
- if (open) {
679
- options = options || {};
680
-
681
- if (options.width) {
682
- settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
683
- }
684
-
685
- if (options.innerWidth) {
686
- settings.w = setSize(options.innerWidth, 'x');
687
- }
688
-
689
- $loaded.css({width: settings.w});
690
-
691
- if (options.height) {
692
- settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
693
- }
694
-
695
- if (options.innerHeight) {
696
- settings.h = setSize(options.innerHeight, 'y');
697
- }
698
-
699
- if (!options.innerHeight && !options.height) {
700
- scrolltop = $loaded.scrollTop();
701
- $loaded.css({height: "auto"});
702
- settings.h = $loaded.height();
703
- }
704
-
705
- $loaded.css({height: settings.h});
706
-
707
- if (scrolltop) {
708
- $loaded.scrollTop(scrolltop);
709
- }
710
-
711
- publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
712
- }
713
- };
714
-
715
- publicMethod.prep = function (object) {
716
- if (!open) {
717
- return;
718
- }
719
-
720
- var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');
721
-
722
- $loaded.remove();
723
-
724
- $loaded = $tag(div, 'LoadedContent').append(object);
725
-
726
- function getWidth() {
727
- settings.w = settings.w || $loaded.width();
728
- settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
729
- return settings.w;
730
- }
731
-
732
- function getHeight() {
733
- settings.h = settings.h || $loaded.height();
734
- settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
735
- return settings.h;
736
- }
737
-
738
- $loaded.hide()
739
- .appendTo($loadingBay.show())
740
- .css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
741
- .css({height: getHeight()})
742
- .prependTo($content);
743
-
744
- $loadingBay.hide();
745
-
746
- $(photo).css({'float': 'none'});
747
-
748
- setClass(settings.get('className'));
749
-
750
- callback = function () {
751
- var total = $related.length,
752
- iframe,
753
- complete;
754
-
755
- if (!open) {
756
- return;
757
- }
758
-
759
- function removeFilter() {
760
- if ($.support.opacity === false) {
761
- $box[0].style.removeAttribute('filter');
762
- }
763
- }
764
-
765
- complete = function () {
766
- clearTimeout(loadingTimer);
767
- $loadingOverlay.hide();
768
- trigger(event_complete);
769
- settings.get('onComplete');
770
- };
771
- $title.html(settings.get('title')).show();
772
- $loaded.show();
773
-
774
- if (total > 1) {
775
- if (typeof settings.get('current') === "string") {
776
- $current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
777
- }
778
-
779
- $next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
780
- $prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));
781
-
782
- slideshow();
783
- if (settings.get('preloading')) {
784
- $.each([getIndex(-1), getIndex(1)], function () {
785
- var img,
786
- i = $related[this],
787
- settings = new Settings(i, $.data(i, colorbox)),
788
- src = settings.get('href');
789
-
790
- if (src && isImage(settings, src)) {
791
- src = retinaUrl(settings, src);
792
- img = document.createElement('img');
793
- img.src = src;
794
- }
795
- });
796
- }
797
- } else {
798
- $groupControls.hide();
799
- }
800
-
801
- if (settings.get('iframe')) {
802
-
803
- iframe = settings.get('createIframe');
804
-
805
- if (!settings.get('scrolling')) {
806
- iframe.scrolling = "no";
807
- }
808
-
809
- $(iframe)
810
- .attr({
811
- src: settings.get('href'),
812
- 'class': prefix + 'Iframe'
813
- })
814
- .one('load', complete)
815
- .appendTo($loaded);
816
-
817
- $events.one(event_purge, function () {
818
- iframe.src = "//about:blank";
819
- });
820
-
821
- if (settings.get('fastIframe')) {
822
- $(iframe).trigger('load');
823
- }
824
- } else {
825
- complete();
826
- }
827
-
828
- if (settings.get('transition') === 'fade') {
829
- $box.fadeTo(speed, 1, removeFilter);
830
- } else {
831
- removeFilter();
832
- }
833
- };
834
-
835
- if (settings.get('transition') === 'fade') {
836
- $box.fadeTo(speed, 0, function () {
837
- publicMethod.position(0, callback);
838
- });
839
- } else {
840
- publicMethod.position(speed, callback);
841
- }
842
- };
843
-
844
- function load() {
845
- var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;
846
-
847
- active = true;
848
-
849
- photo = false;
850
-
851
- trigger(event_purge);
852
- trigger(event_load);
853
- settings.get('onLoad');
854
-
855
- settings.h = settings.get('height') ?
856
- setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
857
- settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');
858
-
859
- settings.w = settings.get('width') ?
860
- setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
861
- settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');
862
- settings.mw = settings.w;
863
- settings.mh = settings.h;
864
- if (settings.get('maxWidth')) {
865
- settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
866
- settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
867
- }
868
- if (settings.get('maxHeight')) {
869
- settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
870
- settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
871
- }
872
-
873
- href = settings.get('href');
874
-
875
- loadingTimer = setTimeout(function () {
876
- $loadingOverlay.show();
877
- }, 100);
878
-
879
- if (settings.get('inline')) {
880
- var $target = $(href);
881
- $inline = $('<div>').hide().insertBefore($target);
882
-
883
- $events.one(event_purge, function () {
884
- $inline.replaceWith($target);
885
- });
886
-
887
- prep($target);
888
- } else if (settings.get('iframe')) {
889
- prep(" ");
890
- } else if (settings.get('html')) {
891
- prep(settings.get('html'));
892
- } else if (isImage(settings, href)) {
893
-
894
- href = retinaUrl(settings, href);
895
-
896
- photo = settings.get('createImg');
897
-
898
- $(photo)
899
- .addClass(prefix + 'Photo')
900
- .bind('error.' + prefix, function () {
901
- prep($tag(div, 'Error').html(settings.get('imgError')));
902
- })
903
- .one('load', function () {
904
- if (request !== requests) {
905
- return;
906
- }
907
- setTimeout(function () {
908
- var percent;
909
-
910
- if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
911
- photo.height = photo.height / window.devicePixelRatio;
912
- photo.width = photo.width / window.devicePixelRatio;
913
- }
914
-
915
- if (settings.get('scalePhotos')) {
916
- setResize = function () {
917
- photo.height -= photo.height * percent;
918
- photo.width -= photo.width * percent;
919
- };
920
- if (settings.mw && photo.width > settings.mw) {
921
- percent = (photo.width - settings.mw) / photo.width;
922
- setResize();
923
- }
924
- if (settings.mh && photo.height > settings.mh) {
925
- percent = (photo.height - settings.mh) / photo.height;
926
- setResize();
927
- }
928
- }
929
-
930
- if (settings.h) {
931
- photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
932
- }
933
-
934
- if ($related[1] && (settings.get('loop') || $related[index + 1])) {
935
- photo.style.cursor = 'pointer';
936
-
937
- $(photo).bind('click.' + prefix, function () {
938
- publicMethod.next();
939
- });
940
- }
941
-
942
- photo.style.width = photo.width + 'px';
943
- photo.style.height = photo.height + 'px';
944
- prep(photo);
945
- }, 1);
946
- });
947
-
948
- photo.src = href;
949
-
950
- } else if (href) {
951
- $loadingBay.load(href, settings.get('data'), function (data, status) {
952
- if (request === requests) {
953
- prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
954
- }
955
- });
956
- }
957
- }
958
- publicMethod.next = function () {
959
- if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
960
- index = getIndex(1);
961
- launch($related[index]);
962
- }
963
- };
964
-
965
- publicMethod.prev = function () {
966
- if (!active && $related[1] && (settings.get('loop') || index)) {
967
- index = getIndex(-1);
968
- launch($related[index]);
969
- }
970
- };
971
- publicMethod.close = function () {
972
- if (open && !closing) {
973
-
974
- closing = true;
975
- open = false;
976
- trigger(event_cleanup);
977
- settings.get('onCleanup');
978
- $window.unbind('.' + prefix);
979
- $overlay.fadeTo(settings.get('fadeOut') || 0, 0);
980
-
981
- $box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
982
- $box.hide();
983
- $overlay.hide();
984
- trigger(event_purge);
985
- $loaded.remove();
986
-
987
- setTimeout(function () {
988
- closing = false;
989
- trigger(event_closed);
990
- settings.get('onClosed');
991
- }, 1);
992
- });
993
- }
994
- };
995
-
996
- publicMethod.remove = function () {
997
- if (!$box) {
998
- return;
999
- }
1000
-
1001
- $box.stop();
1002
- $[colorbox].close();
1003
- $box.stop(false, true).remove();
1004
- $overlay.remove();
1005
- closing = false;
1006
- $box = null;
1007
- $('.' + boxElement)
1008
- .removeData(colorbox)
1009
- .removeClass(boxElement);
1010
-
1011
- $(document).unbind('click.' + prefix).unbind('keydown.' + prefix);
1012
- };
1013
-
1014
- publicMethod.element = function () {
1015
- return $(settings.el);
1016
- };
1017
-
1018
- publicMethod.settings = defaults;
1019
-
1020
- }(jQuery, document, window));
1
+ (function ($, document, window) {
2
+ var
3
+ defaults = {
4
+ html: false,
5
+ photo: false,
6
+ iframe: false,
7
+ inline: false,
8
+ transition: "elastic",
9
+ speed: 300,
10
+ fadeOut: 300,
11
+ width: false,
12
+ initialWidth: "600",
13
+ innerWidth: false,
14
+ maxWidth: false,
15
+ height: false,
16
+ initialHeight: "450",
17
+ innerHeight: false,
18
+ maxHeight: false,
19
+ scalePhotos: true,
20
+ scrolling: true,
21
+ opacity: 0.9,
22
+ preloading: true,
23
+ className: false,
24
+ overlayClose: true,
25
+ escKey: true,
26
+ arrowKey: true,
27
+ top: false,
28
+ bottom: false,
29
+ left: false,
30
+ right: false,
31
+ fixed: false,
32
+ data: undefined,
33
+ closeButton: true,
34
+ fastIframe: true,
35
+ open: false,
36
+ reposition: true,
37
+ loop: true,
38
+ slideshow: false,
39
+ slideshowAuto: true,
40
+ slideshowSpeed: 2500,
41
+ slideshowStart: "start slideshow",
42
+ slideshowStop: "stop slideshow",
43
+ photoRegex: /\.(gif|png|jp(e|g|eg)|bmp|ico|webp|jxr|svg)((#|\?).*)?$/i,
44
+ customClass: 'colorbox1', /* For default themes load*/
45
+ retinaImage: false,
46
+ retinaUrl: false,
47
+ retinaSuffix: '@2x.$1',
48
+ current: "image {current} of {total}",
49
+ previous: "previous",
50
+ next: "next",
51
+ close: "close",
52
+ xhrError: "This content failed to load.",
53
+ imgError: "This image failed to load.",
54
+ contentCustomClassName: "sg-popup-content",
55
+ overlayCutsomClassName: "sg-popup-overlay",
56
+ returnFocus: true,
57
+ trapFocus: true,
58
+ onOpen: false,
59
+ onLoad: false,
60
+ onComplete: false,
61
+ onCleanup: false,
62
+ onClosed: false,
63
+
64
+ rel: function () {
65
+ return this.rel;
66
+ },
67
+ href: function () {
68
+
69
+ return $(this).attr('href');
70
+ },
71
+ title: function () {
72
+ return this.title;
73
+ },
74
+ createImg: function () {
75
+ var img = new Image();
76
+ var attrs = $(this).data('cbox-img-attrs');
77
+
78
+ if (typeof attrs === 'object') {
79
+ $.each(attrs, function (key, val) {
80
+ img[key] = val;
81
+ });
82
+ }
83
+
84
+ return img;
85
+ },
86
+ createIframe: function () {
87
+ var iframe = document.createElement('iframe');
88
+ var attrs = $(this).data('cbox-iframe-attrs');
89
+
90
+ if (typeof attrs === 'object') {
91
+ $.each(attrs, function (key, val) {
92
+ iframe[key] = val;
93
+ });
94
+ }
95
+
96
+ if ('frameBorder' in iframe) {
97
+ iframe.frameBorder = 0;
98
+ }
99
+ if ('allowTransparency' in iframe) {
100
+ iframe.allowTransparency = "true";
101
+ }
102
+ iframe.name = (new Date()).getTime();
103
+ iframe.allowFullscreen = true;
104
+
105
+ return iframe;
106
+ }
107
+ },
108
+ colorbox = 'sgcolorbox',
109
+ prefix = 'sgcbox',
110
+ boxElement = prefix + 'Element',
111
+ event_open = prefix + '_open',
112
+ event_load = prefix + '_load',
113
+ event_complete = prefix + '_complete',
114
+ event_cleanup = prefix + '_cleanup',
115
+ event_closed = prefix + '_closed',
116
+ event_purge = prefix + '_purge',
117
+ $overlay,
118
+ $box,
119
+ $wrap,
120
+ $content,
121
+ $topBorder,
122
+ $leftBorder,
123
+ $rightBorder,
124
+ $bottomBorder,
125
+ $related,
126
+ $window,
127
+ $loaded,
128
+ $loadingBay,
129
+ $loadingOverlay,
130
+ $title,
131
+ $current,
132
+ $slideshow,
133
+ $next,
134
+ $prev,
135
+ $close,
136
+ $groupControls,
137
+ $events = $('<a/>'),
138
+ settings,
139
+ interfaceHeight,
140
+ interfaceWidth,
141
+ loadedHeight,
142
+ loadedWidth,
143
+ index,
144
+ photo,
145
+ open,
146
+ active,
147
+ closing,
148
+ loadingTimer,
149
+ publicMethod,
150
+ div = "div",
151
+ requests = 0,
152
+ previousCSS = {},
153
+ init;
154
+ function $tag(tag, id, css) {
155
+ var element = document.createElement(tag);
156
+
157
+ if (id) {
158
+ element.id = prefix + id;
159
+ }
160
+
161
+ if (css) {
162
+ element.style.cssText = css;
163
+ }
164
+
165
+ return $(element);
166
+ }
167
+ function winheight() {
168
+ return window.innerHeight ? window.innerHeight : $(window).height();
169
+ }
170
+
171
+ function Settings(element, options) {
172
+ if (options !== Object(options)) {
173
+ options = {};
174
+ }
175
+
176
+ this.cache = {};
177
+ this.el = element;
178
+
179
+ this.value = function (key) {
180
+ var dataAttr;
181
+
182
+ if (this.cache[key] === undefined) {
183
+ dataAttr = $(this.el).attr('data-cbox-' + key);
184
+
185
+ if (dataAttr !== undefined) {
186
+ this.cache[key] = dataAttr;
187
+ } else if (options[key] !== undefined) {
188
+ this.cache[key] = options[key];
189
+ } else if (defaults[key] !== undefined) {
190
+ this.cache[key] = defaults[key];
191
+ }
192
+ }
193
+
194
+ return this.cache[key];
195
+ };
196
+
197
+ this.get = function (key) {
198
+ var value = this.value(key);
199
+ return $.isFunction(value) ? value.call(this.el, this) : value;
200
+ };
201
+ }
202
+ function getIndex(increment) {
203
+ var
204
+ max = $related.length,
205
+ newIndex = (index + increment) % max;
206
+
207
+ return (newIndex < 0) ? max + newIndex : newIndex;
208
+ }
209
+ function setSize(size, dimension) {
210
+ return Math.round((/%/.test(size) ? ((dimension === 'x' ? $window.width() : winheight()) / 100) : 1) * parseInt(size, 10));
211
+ }
212
+ function isImage(settings, url) {
213
+ return settings.get('photo') || settings.get('photoRegex').test(url);
214
+ }
215
+
216
+ function retinaUrl(settings, url) {
217
+ return settings.get('retinaUrl') && window.devicePixelRatio > 1 ? url.replace(settings.get('photoRegex'), settings.get('retinaSuffix')) : url;
218
+ }
219
+
220
+ function trapFocus(e) {
221
+ if ('contains' in $box[0] && !$box[0].contains(e.target) && e.target !== $overlay[0]) {
222
+ e.stopPropagation();
223
+ $box.focus();
224
+ }
225
+ }
226
+
227
+ function setClass(str) {
228
+ if (setClass.str !== str) {
229
+ $box.add($overlay).removeClass(setClass.str).addClass(str);
230
+ setClass.str = str;
231
+ }
232
+ }
233
+
234
+ function getRelated(rel) {
235
+ index = 0;
236
+
237
+ if (rel && rel !== false && rel !== 'nofollow') {
238
+ $related = $('.' + boxElement).filter(function () {
239
+ var options = $.data(this, colorbox);
240
+ var settings = new Settings(this, options);
241
+ return (settings.get('rel') === rel);
242
+ });
243
+ index = $related.index(settings.el);
244
+ if (index === -1) {
245
+ $related = $related.add(settings.el);
246
+ index = $related.length - 1;
247
+ }
248
+ } else {
249
+ $related = $(settings.el);
250
+ }
251
+ }
252
+
253
+ function trigger(event) {
254
+
255
+ $(document).trigger(event);
256
+
257
+ $events.triggerHandler(event);
258
+ }
259
+
260
+ var slideshow = (function () {
261
+ var active,
262
+ className = prefix + "Slideshow_",
263
+ click = "click." + prefix,
264
+ timeOut;
265
+
266
+ function clear() {
267
+ clearTimeout(timeOut);
268
+ }
269
+
270
+ function set() {
271
+ if (settings.get('loop') || $related[index + 1]) {
272
+ clear();
273
+ timeOut = setTimeout(publicMethod.next, settings.get('slideshowSpeed'));
274
+ }
275
+ }
276
+
277
+ function start() {
278
+ $slideshow
279
+ .html(settings.get('slideshowStop'))
280
+ .unbind(click)
281
+ .one(click, stop);
282
+
283
+ $events
284
+ .bind(event_complete, set)
285
+ .bind(event_load, clear);
286
+
287
+ $box.removeClass(className + "off").addClass(className + "on");
288
+ }
289
+
290
+ function stop() {
291
+ clear();
292
+
293
+ $events
294
+ .unbind(event_complete, set)
295
+ .unbind(event_load, clear);
296
+
297
+ $slideshow
298
+ .html(settings.get('slideshowStart'))
299
+ .unbind(click)
300
+ .one(click, function () {
301
+ publicMethod.next();
302
+ start();
303
+ });
304
+
305
+ $box.removeClass(className + "on").addClass(className + "off");
306
+ }
307
+
308
+ function reset() {
309
+ active = false;
310
+ $slideshow.hide();
311
+ clear();
312
+ $events
313
+ .unbind(event_complete, set)
314
+ .unbind(event_load, clear);
315
+ $box.removeClass(className + "off " + className + "on");
316
+ }
317
+
318
+ return function () {
319
+ if (active) {
320
+ if (!settings.get('slideshow')) {
321
+ $events.unbind(event_cleanup, reset);
322
+ reset();
323
+ }
324
+ } else {
325
+ if (settings.get('slideshow') && $related[1]) {
326
+ active = true;
327
+ $events.one(event_cleanup, reset);
328
+ if (settings.get('slideshowAuto')) {
329
+ start();
330
+ } else {
331
+ stop();
332
+ }
333
+ $slideshow.show();
334
+ }
335
+ }
336
+ };
337
+
338
+ }());
339
+ function launch(element) {
340
+ var options;
341
+
342
+ if (!closing) {
343
+
344
+ options = $(element).data(colorbox);
345
+
346
+ settings = new Settings(element, options);
347
+
348
+ getRelated(settings.get('rel'));
349
+
350
+ if (!open) {
351
+ open = active = true;
352
+
353
+ setClass(settings.get('className'));
354
+ $box.css({visibility: 'hidden', display: 'block', opacity: ''});
355
+
356
+ $loaded = $tag(div, 'LoadedContent', 'width:0; height:0; overflow:hidden; visibility:hidden');
357
+ $content.css({width: '', height: ''}).append($loaded);
358
+ interfaceHeight = $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();
359
+ interfaceWidth = $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
360
+ loadedHeight = $loaded.outerHeight(true);
361
+ loadedWidth = $loaded.outerWidth(true);
362
+ var initialWidth = setSize(settings.get('initialWidth'), 'x');
363
+ var initialHeight = setSize(settings.get('initialHeight'), 'y');
364
+ var maxWidth = settings.get('maxWidth');
365
+ var maxHeight = settings.get('maxHeight');
366
+
367
+ settings.w = Math.max((maxWidth !== false ? Math.min(initialWidth, setSize(maxWidth, 'x')) : initialWidth) - loadedWidth - interfaceWidth, 0);
368
+ settings.h = Math.max((maxHeight !== false ? Math.min(initialHeight, setSize(maxHeight, 'y')) : initialHeight) - loadedHeight - interfaceHeight, 0);
369
+
370
+ $loaded.css({width: '', height: settings.h});
371
+ publicMethod.position();
372
+
373
+ trigger(event_open);
374
+ settings.get('onOpen');
375
+
376
+ $groupControls.add($title).hide();
377
+
378
+ // $box.focus(); issue for fierfox long content click
379
+
380
+ if (settings.get('trapFocus')) {
381
+ if (document.addEventListener) {
382
+
383
+ document.addEventListener('focus', trapFocus, true);
384
+
385
+ $events.one(event_closed, function () {
386
+ document.removeEventListener('focus', trapFocus, true);
387
+ });
388
+ }
389
+ }
390
+ if (settings.get('returnFocus')) {
391
+ $events.one(event_closed, function () {
392
+ $(settings.el).focus();
393
+ });
394
+ }
395
+ }
396
+
397
+ var opacity = parseFloat(settings.get('opacity'));
398
+ $overlay.css({
399
+ opacity: opacity === opacity ? opacity : '',
400
+ cursor: settings.get('overlayClose') ? 'pointer' : '',
401
+ visibility: 'visible'
402
+ }).show();
403
+
404
+ if (settings.get('closeButton')) {
405
+ $close.html(settings.get('close')).appendTo($content);
406
+ } else {
407
+ $close.appendTo('<div/>');
408
+ }
409
+
410
+ load();
411
+ }
412
+ }
413
+ function appendHTML(options) { /* options Received from publicMethod */
414
+ if (!$box) {
415
+ init = false;
416
+ $window = $(window);
417
+ $box = $tag(div).attr({
418
+ id: colorbox,
419
+ 'class': $.support.opacity === false ? prefix + 'IE' : '',
420
+ role: 'dialog',
421
+ tabindex: '-1'
422
+ }).hide();
423
+ $overlay = $tag(div, "Overlay").hide();
424
+ $loadingOverlay = $([$tag(div, "LoadingOverlay")[0], $tag(div, "LoadingGraphic")[0]]);
425
+ $wrap = $tag(div, "Wrapper");
426
+ $content = $tag(div, "Content").append(
427
+ $title = $tag(div, "Title"),
428
+ $current = $tag(div, "Current"),
429
+ $prev = $('<button type="button"/>').attr({id: prefix + 'Previous'}),
430
+ $next = $('<button type="button"/>').attr({id: prefix + 'Next'}),
431
+ $slideshow = $tag('button', "Slideshow"),
432
+ $loadingOverlay
433
+ );
434
+
435
+ $close = $('<button type="button"/>').attr({id: prefix + 'Close'});
436
+
437
+ $wrap.append(
438
+ $tag(div).append(
439
+ $tag(div, "TopLeft"),
440
+ $topBorder = $tag(div, "TopCenter"),
441
+ $tag(div, "TopRight")
442
+ ),
443
+ $tag(div, false, 'clear:left').append(
444
+ $leftBorder = $tag(div, "MiddleLeft"),
445
+ $content,
446
+ $rightBorder = $tag(div, "MiddleRight")
447
+ ),
448
+ $tag(div, false, 'clear:left').append(
449
+ $tag(div, "BottomLeft"),
450
+ $bottomBorder = $tag(div, "BottomCenter"),
451
+ $tag(div, "BottomRight")
452
+ )
453
+ ).find('div div').css({'float': 'left'});
454
+
455
+ $loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none; max-width:none;');
456
+
457
+ $groupControls = $next.add($prev).add($current).add($slideshow);
458
+ }
459
+ if (document.body && !$box.parent().length) {
460
+ $(document.body).append($overlay, $box.append($wrap, $loadingBay));
461
+ }
462
+ /* Start to set custom class and add to html */
463
+ if(typeof options === 'object') {
464
+ var customClass = defaults['customClass'];
465
+ if(typeof options['className'] !== 'undefined' && options['className']){
466
+ customClass = options['className'];
467
+ }
468
+ if(typeof options['overlayCutsomClassName'] !== 'undefined' && options['overlayCutsomClassName']) {
469
+ overlayCutsomClassName = options['overlayCutsomClassName'];
470
+ }
471
+ else {
472
+ overlayCutsomClassName = defaults['overlayCutsomClassName'];
473
+ }
474
+ if(typeof options['contentCustomClassName'] !== 'undefined' && options['contentCustomClassName']) {
475
+ contentCustomClassName = options['contentCustomClassName'];
476
+ }
477
+ else {
478
+ contentCustomClassName = defaults['contentCustomClassName'];
479
+ }
480
+
481
+ $box.addClass(customClass).addClass(contentCustomClassName);
482
+ $overlay.addClass(customClass).addClass(overlayCutsomClassName);
483
+ }
484
+ /* End action */
485
+ }
486
+ function addBindings() {
487
+ function clickHandler(e) {
488
+ if (!(e.which > 1 || e.shiftKey || e.altKey || e.metaKey || e.ctrlKey)) {
489
+ e.preventDefault();
490
+ launch(this);
491
+ }
492
+ }
493
+
494
+ if ($box) {
495
+ if (!init) {
496
+ init = true;
497
+ $next.click(function () {
498
+ publicMethod.next();
499
+ });
500
+ $prev.click(function () {
501
+ publicMethod.prev();
502
+ });
503
+ $close.click(function () {
504
+ publicMethod.close();
505
+ });
506
+ $overlay.click(function () {
507
+ if (settings.get('overlayClose')) {
508
+ publicMethod.close();
509
+ }
510
+ });
511
+ $(document).bind('keydown.' + prefix, function (e) {
512
+ var key = e.keyCode;
513
+ if (open && settings.get('escKey') && key === 27) {
514
+ e.preventDefault();
515
+ publicMethod.close();
516
+ }
517
+ if (open && settings.get('arrowKey') && $related[1] && !e.altKey) {
518
+ if (key === 37) {
519
+ e.preventDefault();
520
+ $prev.click();
521
+ } else if (key === 39) {
522
+ e.preventDefault();
523
+ $next.click();
524
+ }
525
+ }
526
+ });
527
+
528
+ if ($.isFunction($.fn.on)) {
529
+
530
+ $(document).on('click.' + prefix, '.' + boxElement, clickHandler);
531
+ } else {
532
+ $('.' + boxElement).live('click.' + prefix, clickHandler);
533
+ }
534
+ }
535
+ return true;
536
+ }
537
+ return false;
538
+ }
539
+ if ($[colorbox]) {
540
+ return;
541
+ }
542
+ $(appendHTML);
543
+ publicMethod = $.fn[colorbox] = $[colorbox] = function (options, callback) {
544
+ var settings;
545
+ var $obj = this;
546
+
547
+ options = options || {};
548
+
549
+ if ($.isFunction($obj)) {
550
+ $obj = $('<a/>');
551
+ options.open = true;
552
+ }
553
+
554
+ if (!$obj[0]) {
555
+ return $obj;
556
+ }
557
+
558
+ appendHTML(options); /* Send options for received custom class name*/
559
+
560
+ if (addBindings()) {
561
+
562
+ if (callback) {
563
+ options.onComplete = callback;
564
+ }
565
+
566
+ $obj.each(function () {
567
+ var old = $.data(this, colorbox) || {};
568
+ $.data(this, colorbox, $.extend(old, options));
569
+ }).addClass(boxElement);
570
+
571
+ settings = new Settings($obj[0], options);
572
+
573
+ if (settings.get('open')) {
574
+ launch($obj[0]);
575
+ }
576
+ }
577
+
578
+ return $obj;
579
+ };
580
+
581
+ publicMethod.position = function (speed, loadedCallback) {
582
+ var
583
+ css,
584
+ top = 0,
585
+ left = 0,
586
+ offset = $box.offset(),
587
+ scrollTop,
588
+ scrollLeft;
589
+
590
+ $window.unbind('resize.' + prefix);
591
+ $box.css({top: -9e4, left: -9e4});
592
+
593
+ scrollTop = $window.scrollTop();
594
+ scrollLeft = $window.scrollLeft();
595
+
596
+ if (settings.get('fixed')) {
597
+ offset.top -= scrollTop;
598
+ offset.left -= scrollLeft;
599
+ $box.css({position: 'fixed'});
600
+ } else {
601
+ top = scrollTop;
602
+ left = scrollLeft;
603
+ $box.css({position: 'absolute'});
604
+ }
605
+ if (settings.get('right') !== false) {
606
+ left += Math.max($window.width() - settings.w - loadedWidth - interfaceWidth - setSize(settings.get('right'), 'x'), 0);
607
+ } else if (settings.get('left') !== false) {
608
+ left += setSize(settings.get('left'), 'x');
609
+ } else {
610
+ left += Math.round(Math.max($window.width() - settings.w - loadedWidth - interfaceWidth, 0) / 2);
611
+ }
612
+
613
+ if (settings.get('bottom') !== false) {
614
+ top += Math.max(winheight() - settings.h - loadedHeight - interfaceHeight - setSize(settings.get('bottom'), 'y'), 0);
615
+ } else if (settings.get('top') !== false) {
616
+ top += setSize(settings.get('top'), 'y');
617
+ } else {
618
+ top += Math.round(Math.max(winheight() - settings.h - loadedHeight - interfaceHeight, 0) / 2);
619
+ }
620
+
621
+ $box.css({top: offset.top, left: offset.left, visibility: 'visible'});
622
+ $wrap[0].style.width = $wrap[0].style.height = "9999px";
623
+
624
+ function modalDimensions() {
625
+ $topBorder[0].style.width = $bottomBorder[0].style.width = $content[0].style.width = (parseInt($box[0].style.width, 10) - interfaceWidth) + 'px';
626
+ $content[0].style.height = $leftBorder[0].style.height = $rightBorder[0].style.height = (parseInt($box[0].style.height, 10) - interfaceHeight) + 'px';
627
+ }
628
+
629
+ css = {
630
+ width: settings.w + loadedWidth + interfaceWidth,
631
+ height: settings.h + loadedHeight + interfaceHeight,
632
+ top: top,
633
+ left: left
634
+ };
635
+ if (speed) {
636
+ var tempSpeed = 0;
637
+ $.each(css, function (i) {
638
+ if (css[i] !== previousCSS[i]) {
639
+ tempSpeed = speed;
640
+ return;
641
+ }
642
+ });
643
+ speed = tempSpeed;
644
+ }
645
+
646
+ previousCSS = css;
647
+
648
+ if (!speed) {
649
+ $box.css(css);
650
+ }
651
+
652
+ $box.dequeue().animate(css, {
653
+ duration: speed || 0,
654
+ complete: function () {
655
+ modalDimensions();
656
+
657
+ active = false;
658
+ $wrap[0].style.width = (settings.w + loadedWidth + interfaceWidth) + "px";
659
+ $wrap[0].style.height = (settings.h + loadedHeight + interfaceHeight) + "px";
660
+
661
+ if (settings.get('reposition')) {
662
+ setTimeout(function () {
663
+ $window.bind('resize.' + prefix, publicMethod.position);
664
+ }, 1);
665
+ }
666
+
667
+ if ($.isFunction(loadedCallback)) {
668
+ loadedCallback();
669
+ }
670
+ },
671
+ step: modalDimensions
672
+ });
673
+ };
674
+
675
+ publicMethod.resize = function (options) {
676
+ var scrolltop;
677
+
678
+ if (open) {
679
+ options = options || {};
680
+
681
+ if (options.width) {
682
+ settings.w = setSize(options.width, 'x') - loadedWidth - interfaceWidth;
683
+ }
684
+
685
+ if (options.innerWidth) {
686
+ settings.w = setSize(options.innerWidth, 'x');
687
+ }
688
+
689
+ $loaded.css({width: settings.w});
690
+
691
+ if (options.height) {
692
+ settings.h = setSize(options.height, 'y') - loadedHeight - interfaceHeight;
693
+ }
694
+
695
+ if (options.innerHeight) {
696
+ settings.h = setSize(options.innerHeight, 'y');
697
+ }
698
+
699
+ if (!options.innerHeight && !options.height) {
700
+ scrolltop = $loaded.scrollTop();
701
+ $loaded.css({height: "auto"});
702
+ settings.h = $loaded.height();
703
+ }
704
+
705
+ $loaded.css({height: settings.h});
706
+
707
+ if (scrolltop) {
708
+ $loaded.scrollTop(scrolltop);
709
+ }
710
+
711
+ publicMethod.position(settings.get('transition') === "none" ? 0 : settings.get('speed'));
712
+ }
713
+ };
714
+
715
+ publicMethod.prep = function (object) {
716
+ if (!open) {
717
+ return;
718
+ }
719
+
720
+ var callback, speed = settings.get('transition') === "none" ? 0 : settings.get('speed');
721
+
722
+ $loaded.remove();
723
+
724
+ $loaded = $tag(div, 'LoadedContent').append(object);
725
+
726
+ function getWidth() {
727
+ settings.w = settings.w || $loaded.width();
728
+ settings.w = settings.mw && settings.mw < settings.w ? settings.mw : settings.w;
729
+ return settings.w;
730
+ }
731
+
732
+ function getHeight() {
733
+ settings.h = settings.h || $loaded.height();
734
+ settings.h = settings.mh && settings.mh < settings.h ? settings.mh : settings.h;
735
+ return settings.h;
736
+ }
737
+
738
+ $loaded.hide()
739
+ .appendTo($loadingBay.show())
740
+ .css({width: getWidth(), overflow: settings.get('scrolling') ? 'auto' : 'hidden'})
741
+ .css({height: getHeight()})
742
+ .prependTo($content);
743
+
744
+ $loadingBay.hide();
745
+
746
+ $(photo).css({'float': 'none'});
747
+
748
+ setClass(settings.get('className'));
749
+
750
+ callback = function () {
751
+ var total = $related.length,
752
+ iframe,
753
+ complete;
754
+
755
+ if (!open) {
756
+ return;
757
+ }
758
+
759
+ function removeFilter() {
760
+ if ($.support.opacity === false) {
761
+ $box[0].style.removeAttribute('filter');
762
+ }
763
+ }
764
+
765
+ complete = function () {
766
+ clearTimeout(loadingTimer);
767
+ $loadingOverlay.hide();
768
+ trigger(event_complete);
769
+ settings.get('onComplete');
770
+ };
771
+ $title.html(settings.get('title')).show();
772
+ $loaded.show();
773
+
774
+ if (total > 1) {
775
+ if (typeof settings.get('current') === "string") {
776
+ $current.html(settings.get('current').replace('{current}', index + 1).replace('{total}', total)).show();
777
+ }
778
+
779
+ $next[(settings.get('loop') || index < total - 1) ? "show" : "hide"]().html(settings.get('next'));
780
+ $prev[(settings.get('loop') || index) ? "show" : "hide"]().html(settings.get('previous'));
781
+
782
+ slideshow();
783
+ if (settings.get('preloading')) {
784
+ $.each([getIndex(-1), getIndex(1)], function () {
785
+ var img,
786
+ i = $related[this],
787
+ settings = new Settings(i, $.data(i, colorbox)),
788
+ src = settings.get('href');
789
+
790
+ if (src && isImage(settings, src)) {
791
+ src = retinaUrl(settings, src);
792
+ img = document.createElement('img');
793
+ img.src = src;
794
+ }
795
+ });
796
+ }
797
+ } else {
798
+ $groupControls.hide();
799
+ }
800
+
801
+ if (settings.get('iframe')) {
802
+
803
+ iframe = settings.get('createIframe');
804
+
805
+ if (!settings.get('scrolling')) {
806
+ iframe.scrolling = "no";
807
+ }
808
+
809
+ $(iframe)
810
+ .attr({
811
+ src: settings.get('href'),
812
+ 'class': prefix + 'Iframe'
813
+ })
814
+ .one('load', complete)
815
+ .appendTo($loaded);
816
+
817
+ $events.one(event_purge, function () {
818
+ iframe.src = "//about:blank";
819
+ });
820
+
821
+ if (settings.get('fastIframe')) {
822
+ $(iframe).trigger('load');
823
+ }
824
+ } else {
825
+ complete();
826
+ }
827
+
828
+ if (settings.get('transition') === 'fade') {
829
+ $box.fadeTo(speed, 1, removeFilter);
830
+ } else {
831
+ removeFilter();
832
+ }
833
+ };
834
+
835
+ if (settings.get('transition') === 'fade') {
836
+ $box.fadeTo(speed, 0, function () {
837
+ publicMethod.position(0, callback);
838
+ });
839
+ } else {
840
+ publicMethod.position(speed, callback);
841
+ }
842
+ };
843
+
844
+ function load() {
845
+ var href, setResize, prep = publicMethod.prep, $inline, request = ++requests;
846
+
847
+ active = true;
848
+
849
+ photo = false;
850
+
851
+ trigger(event_purge);
852
+ trigger(event_load);
853
+ settings.get('onLoad');
854
+
855
+ settings.h = settings.get('height') ?
856
+ setSize(settings.get('height'), 'y') - loadedHeight - interfaceHeight :
857
+ settings.get('innerHeight') && setSize(settings.get('innerHeight'), 'y');
858
+
859
+ settings.w = settings.get('width') ?
860
+ setSize(settings.get('width'), 'x') - loadedWidth - interfaceWidth :
861
+ settings.get('innerWidth') && setSize(settings.get('innerWidth'), 'x');
862
+ settings.mw = settings.w;
863
+ settings.mh = settings.h;
864
+ if (settings.get('maxWidth')) {
865
+ settings.mw = setSize(settings.get('maxWidth'), 'x') - loadedWidth - interfaceWidth;
866
+ settings.mw = settings.w && settings.w < settings.mw ? settings.w : settings.mw;
867
+ }
868
+ if (settings.get('maxHeight')) {
869
+ settings.mh = setSize(settings.get('maxHeight'), 'y') - loadedHeight - interfaceHeight;
870
+ settings.mh = settings.h && settings.h < settings.mh ? settings.h : settings.mh;
871
+ }
872
+
873
+ href = settings.get('href');
874
+
875
+ loadingTimer = setTimeout(function () {
876
+ $loadingOverlay.show();
877
+ }, 100);
878
+
879
+ if (settings.get('inline')) {
880
+ var $target = $(href);
881
+ $inline = $('<div>').hide().insertBefore($target);
882
+
883
+ $events.one(event_purge, function () {
884
+ $inline.replaceWith($target);
885
+ });
886
+
887
+ prep($target);
888
+ } else if (settings.get('iframe')) {
889
+ prep(" ");
890
+ } else if (settings.get('html')) {
891
+ prep(settings.get('html'));
892
+ } else if (isImage(settings, href)) {
893
+
894
+ href = retinaUrl(settings, href);
895
+
896
+ photo = settings.get('createImg');
897
+
898
+ $(photo)
899
+ .addClass(prefix + 'Photo')
900
+ .bind('error.' + prefix, function () {
901
+ prep($tag(div, 'Error').html(settings.get('imgError')));
902
+ })
903
+ .one('load', function () {
904
+ if (request !== requests) {
905
+ return;
906
+ }
907
+ setTimeout(function () {
908
+ var percent;
909
+
910
+ if (settings.get('retinaImage') && window.devicePixelRatio > 1) {
911
+ photo.height = photo.height / window.devicePixelRatio;
912
+ photo.width = photo.width / window.devicePixelRatio;
913
+ }
914
+
915
+ if (settings.get('scalePhotos')) {
916
+ setResize = function () {
917
+ photo.height -= photo.height * percent;
918
+ photo.width -= photo.width * percent;
919
+ };
920
+ if (settings.mw && photo.width > settings.mw) {
921
+ percent = (photo.width - settings.mw) / photo.width;
922
+ setResize();
923
+ }
924
+ if (settings.mh && photo.height > settings.mh) {
925
+ percent = (photo.height - settings.mh) / photo.height;
926
+ setResize();
927
+ }
928
+ }
929
+
930
+ if (settings.h) {
931
+ photo.style.marginTop = Math.max(settings.mh - photo.height, 0) / 2 + 'px';
932
+ }
933
+
934
+ if ($related[1] && (settings.get('loop') || $related[index + 1])) {
935
+ photo.style.cursor = 'pointer';
936
+
937
+ $(photo).bind('click.' + prefix, function () {
938
+ publicMethod.next();
939
+ });
940
+ }
941
+
942
+ photo.style.width = photo.width + 'px';
943
+ photo.style.height = photo.height + 'px';
944
+ prep(photo);
945
+ }, 1);
946
+ });
947
+
948
+ photo.src = href;
949
+
950
+ } else if (href) {
951
+ $loadingBay.load(href, settings.get('data'), function (data, status) {
952
+ if (request === requests) {
953
+ prep(status === 'error' ? $tag(div, 'Error').html(settings.get('xhrError')) : $(this).contents());
954
+ }
955
+ });
956
+ }
957
+ }
958
+ publicMethod.next = function () {
959
+ if (!active && $related[1] && (settings.get('loop') || $related[index + 1])) {
960
+ index = getIndex(1);
961
+ launch($related[index]);
962
+ }
963
+ };
964
+
965
+ publicMethod.prev = function () {
966
+ if (!active && $related[1] && (settings.get('loop') || index)) {
967
+ index = getIndex(-1);
968
+ launch($related[index]);
969
+ }
970
+ };
971
+ publicMethod.close = function () {
972
+ if (open && !closing) {
973
+
974
+ closing = true;
975
+ open = false;
976
+ trigger(event_cleanup);
977
+ settings.get('onCleanup');
978
+ $window.unbind('.' + prefix);
979
+ $overlay.fadeTo(settings.get('fadeOut') || 0, 0);
980
+
981
+ $box.stop().fadeTo(settings.get('fadeOut') || 0, 0, function () {
982
+ $box.hide();
983
+ $overlay.hide();
984
+ trigger(event_purge);
985
+ $loaded.remove();
986
+
987
+ setTimeout(function () {
988
+ closing = false;
989
+ trigger(event_closed);
990
+ settings.get('onClosed');
991
+ }, 1);
992
+ });
993
+ }
994
+ };
995
+
996
+ publicMethod.remove = function () {
997
+ if (!$box) {
998
+ return;
999
+ }
1000
+
1001
+ $box.stop();
1002
+ $[colorbox].close();
1003
+ $box.stop(false, true).remove();
1004
+ $overlay.remove();
1005
+ closing = false;
1006
+ $box = null;
1007
+ $('.' + boxElement)
1008
+ .removeData(colorbox)
1009
+ .removeClass(boxElement);
1010
+
1011
+ $(document).unbind('click.' + prefix).unbind('keydown.' + prefix);
1012
+ };
1013
+
1014
+ publicMethod.element = function () {
1015
+ return $(settings.el);
1016
+ };
1017
+
1018
+ publicMethod.settings = defaults;
1019
+
1020
+ }(jQuery, document, window));
javascript/sg_datapickers.js CHANGED
@@ -1,54 +1,54 @@
1
- function SgPickers() {
2
-
3
- }
4
-
5
- SgPickers.prototype.init = function() {
6
- jQuery(".sg-calndar").addClass("input-width-static");
7
-
8
- jQuery('.sg-calndar').bind("click",function() {
9
- jQuery("#ui-datepicker-div").css({'z-index': 9999});
10
- });
11
- }
12
-
13
- SgPickers.prototype.changeColor = function(elemet) {
14
- var selectedName = elemet.attr("name");
15
- var elementVal = elemet.val();
16
- if(selectedName == 'countdownNumbersTextColor') {
17
- jQuery("#sg-counts-text").remove();
18
- jQuery("body").append("<style id=\"sg-counts-text\">.flip-clock-wrapper ul li a div div.inn { color: "+elementVal+"; }</style>");
19
- }
20
- if(selectedName == 'countdownNumbersBgColor') {
21
- jQuery("#sg-counts-style").remove();
22
- jQuery("body").append("<style id=\"sg-counts-style\">.flip-clock-wrapper ul li a div div.inn { background-color: "+elementVal+"; }</style>");
23
- }
24
- }
25
-
26
- SgPickers.prototype.colorPicekr = function() {
27
- var that = this;
28
- sgColorPicker = jQuery('.sgOverlayColor').wpColorPicker({
29
- change: function() {
30
- var sgColorpicker = jQuery(this);
31
- that.changeColor(sgColorpicker);
32
- }
33
- });
34
- jQuery(".wp-picker-holder").bind('click',function() {
35
- var selectedInput = jQuery(this).prev().find('.sgOverlayColor');
36
- that.changeColor(selectedInput);
37
- });
38
- }
39
-
40
- SgPickers.prototype.datepicker = function() {
41
- var that = this;
42
- sgCalendar = jQuery('.sg-calndar').datepicker({
43
- dateFormat : 'M dd yy',
44
- minDate: 0
45
- });
46
- }
47
-
48
- jQuery(document).ready(function($){
49
-
50
- pickersObj = new SgPickers();
51
- pickersObj.init();
52
- pickersObj.colorPicekr();
53
- pickersObj.datepicker();
54
  });
1
+ function SgPickers() {
2
+
3
+ }
4
+
5
+ SgPickers.prototype.init = function() {
6
+ jQuery(".sg-calndar").addClass("input-width-static");
7
+
8
+ jQuery('.sg-calndar').bind("click",function() {
9
+ jQuery("#ui-datepicker-div").css({'z-index': 9999});
10
+ });
11
+ }
12
+
13
+ SgPickers.prototype.changeColor = function(elemet) {
14
+ var selectedName = elemet.attr("name");
15
+ var elementVal = elemet.val();
16
+ if(selectedName == 'countdownNumbersTextColor') {
17
+ jQuery("#sg-counts-text").remove();
18
+ jQuery("body").append("<style id=\"sg-counts-text\">.flip-clock-wrapper ul li a div div.inn { color: "+elementVal+"; }</style>");
19
+ }
20
+ if(selectedName == 'countdownNumbersBgColor') {
21
+ jQuery("#sg-counts-style").remove();
22
+ jQuery("body").append("<style id=\"sg-counts-style\">.flip-clock-wrapper ul li a div div.inn { background-color: "+elementVal+"; }</style>");
23
+ }
24
+ }
25
+
26
+ SgPickers.prototype.colorPicekr = function() {
27
+ var that = this;
28
+ sgColorPicker = jQuery('.sgOverlayColor').wpColorPicker({
29
+ change: function() {
30
+ var sgColorpicker = jQuery(this);
31
+ that.changeColor(sgColorpicker);
32
+ }
33
+ });
34
+ jQuery(".wp-picker-holder").bind('click',function() {
35
+ var selectedInput = jQuery(this).prev().find('.sgOverlayColor');
36
+ that.changeColor(selectedInput);
37
+ });
38
+ }
39
+
40
+ SgPickers.prototype.datepicker = function() {
41
+ var that = this;
42
+ sgCalendar = jQuery('.sg-calndar').datepicker({
43
+ dateFormat : 'M dd yy',
44
+ minDate: 0
45
+ });
46
+ }
47
+
48
+ jQuery(document).ready(function($){
49
+
50
+ pickersObj = new SgPickers();
51
+ pickersObj.init();
52
+ pickersObj.colorPicekr();
53
+ pickersObj.datepicker();
54
  });
javascript/sg_popup_backend.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function($){
2
  this.titleNotEmpty(); /* Check title is Empty */
3
  this.showThemePicture(); /* Show themes pictures */
4
  this.showEffects(); /* Show effect type */
5
  this.pageAcordion(); /* For page acordion divs */
6
  this.fixedPostionSelection(); /* Fuctionality for selected postion */
7
  this.showInfo(); /* Show description options */
8
  this.opasictyRange(); /* Opcity range */
9
  this.subOptionContents();
10
  this.addCountris();
11
  this.checkedOpenDiv();
12
  this.popupReview();
13
  }
14
  var data = {
15
  action: 'close_review_panel',
16
  }
17
  jQuery.post(ajaxurl, data, function(response,d) {
18
  });
19
  jQuery( ".reviewPanel" ).hide(300);
20
  });
 
21
  this.titleNotEmpty(); /* Check title is Empty */
22
  this.showThemePicture(); /* Show themes pictures */
23
  this.showEffects(); /* Show effect type */
24
  this.pageAcordion(); /* For page acordion divs */
25
  this.fixedPostionSelection(); /* Fuctionality for selected postion */
26
  this.showInfo(); /* Show description options */
27
  this.opasictyRange(); /* Opcity range */
28
  this.subOptionContents();
29
  this.addCountris();
30
  this.showCloseTextFieldForTheme();
31
  this.popupReview();
32
  this.popupTimer();
33
  });
 
1
  this.titleNotEmpty(); /* Check title is Empty */
2
  this.showThemePicture(); /* Show themes pictures */
3
  this.showEffects(); /* Show effect type */
4
  this.pageAcordion(); /* For page acordion divs */
5
  this.fixedPostionSelection(); /* Fuctionality for selected postion */
6
  this.showInfo(); /* Show description options */
7
  this.opasictyRange(); /* Opcity range */
8
  this.subOptionContents();
9
  this.addCountris();
10
  this.checkedOpenDiv();
11
  this.popupReview();
12
  }
13
  var data = {
14
  action: 'close_review_panel',
15
  }
16
  jQuery.post(ajaxurl, data, function(response,d) {
17
  });
18
  jQuery( ".reviewPanel" ).hide(300);
19
  });
20
+ jQuery(document).ready(function($){
21
  this.titleNotEmpty(); /* Check title is Empty */
22
  this.showThemePicture(); /* Show themes pictures */
23
  this.showEffects(); /* Show effect type */
24
  this.pageAcordion(); /* For page acordion divs */
25
  this.fixedPostionSelection(); /* Fuctionality for selected postion */
26
  this.showInfo(); /* Show description options */
27
  this.opasictyRange(); /* Opcity range */
28
  this.subOptionContents();
29
  this.addCountris();
30
  this.showCloseTextFieldForTheme();
31
  this.popupReview();
32
  this.popupTimer();
33
  });
javascript/sg_popup_core.js CHANGED
@@ -1,6 +1,6 @@
1
- function sgAddEvent(element, eventName, fn) {
2
- if (element.addEventListener)
3
- element.addEventListener(eventName, fn, false);
4
- else if (element.attachEvent)
5
- element.attachEvent('on' + eventName, fn);
6
  }
1
+ function sgAddEvent(element, eventName, fn) {
2
+ if (element.addEventListener)
3
+ element.addEventListener(eventName, fn, false);
4
+ else if (element.attachEvent)
5
+ element.attachEvent('on' + eventName, fn);
6
  }
javascript/sg_popup_frontend.js CHANGED
@@ -7,6 +7,7 @@ function SGPopup() {
7
  this.initialPositionLeft = '';
8
  this.isOnLoad = '';
9
  this.openOnce = '';
 
10
  this.popupData = new Array();
11
  this.popupEscKey = true;
12
  this.popupOverlayClose = true;
@@ -28,7 +29,7 @@ SGPopup.prototype.init = function() {
28
  SGPopup.prototype.onCompleate = function() {
29
 
30
  jQuery("#sgcolorbox").bind("sgColorboxOnCompleate", function() {
31
-
32
  /* Scroll only inside popup */
33
  jQuery('#sgcboxLoadedContent').isolatedScroll();
34
  });
@@ -60,7 +61,7 @@ SGPopup.prototype.canOpenPopup = function(id, openOnce, isOnLoad) {
60
  if (!isOnLoad) {
61
  return true;
62
  }
63
- if(openOnce) {
64
  return this.canOpenOnce(id);
65
  }
66
 
@@ -92,6 +93,7 @@ SGPopup.prototype.showPopup = function(id, isOnLoad) {
92
  this.popupData = SG_POPUP_DATA[id];
93
  this.isOnLoad = isOnLoad;
94
  this.openOnce = this.varToBool(this.popupData['repeatPopup']);
 
95
 
96
  if(typeof that.removeCookie !== 'undefined') {
97
  that.removeCookie(this.openOnce);
@@ -145,6 +147,7 @@ SGPopup.prototype.sgShowColorboxWithOptions = function() {
145
  var popupShortCode = that.popupData['shortcode'];
146
  var popupVideo = that.popupData['video'];
147
  var popupOverlayColor = that.popupData['sgOverlayColor'];
 
148
  var popupWidth = that.popupData['width'];
149
  var popupHeight = that.popupData['height'];
150
  var popupOpacity = that.popupData['opacity'];
@@ -173,7 +176,7 @@ SGPopup.prototype.sgShowColorboxWithOptions = function() {
173
  if (popupShortCode && popupHtml == false) {
174
  popupHtml = popupShortCode;
175
  }
176
-
177
  if(popupHtml && popupWidth == '' && popupHeight == '' && popupMaxWidth =='' && popupMaxHeight == '') {
178
  jQuery(popupHtml).find('img:first').attr('onload', 'jQuery.sgcolorbox.resize();');
179
  }
@@ -291,6 +294,9 @@ SGPopup.prototype.sgShowColorboxWithOptions = function() {
291
  onLoad: function(){
292
  },
293
  onComplete: function(){
 
 
 
294
  jQuery('#sgcolorbox').trigger("sgColorboxOnCompleate", [pushToBottom]);
295
  if(popupWidth == '' && popupHeight == '') {
296
  jQuery.sgcolorbox.resize();
@@ -303,7 +309,6 @@ SGPopup.prototype.sgShowColorboxWithOptions = function() {
303
  if(jQuery('#sg-facebook-like').length && typeof FB !== 'undefined') {
304
  FB.XFBML.parse();
305
  }
306
-
307
  },
308
  onClosed: function() {
309
  jQuery('#sgcolorbox').trigger("sgPopupClose", []);
@@ -332,8 +337,24 @@ SGPopup.prototype.sgShowColorboxWithOptions = function() {
332
 
333
  jQuery.sgcolorbox(SG_POPUP_SETTINGS);
334
  if (that.popupData['id'] && that.isOnLoad==true && that.openOnce != '') {
 
335
  jQuery.cookie.defaults = {path:'/'};
336
- jQuery.cookie("sgPopupNumbers",that.popupData['id'], { expires: onceExpiresTime});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  }
338
 
339
  if (that.popupContentClick) {
7
  this.initialPositionLeft = '';
8
  this.isOnLoad = '';
9
  this.openOnce = '';
10
+ this.numberLimit = '';
11
  this.popupData = new Array();
12
  this.popupEscKey = true;
13
  this.popupOverlayClose = true;
29
  SGPopup.prototype.onCompleate = function() {
30
 
31
  jQuery("#sgcolorbox").bind("sgColorboxOnCompleate", function() {
32
+
33
  /* Scroll only inside popup */
34
  jQuery('#sgcboxLoadedContent').isolatedScroll();
35
  });
61
  if (!isOnLoad) {
62
  return true;
63
  }
64
+ if(openOnce && typeof jQuery.cookie('sgPopupDetails') != 'undefined') {
65
  return this.canOpenOnce(id);
66
  }
67
 
93
  this.popupData = SG_POPUP_DATA[id];
94
  this.isOnLoad = isOnLoad;
95
  this.openOnce = this.varToBool(this.popupData['repeatPopup']);
96
+ this.numberLimit = this.popupData['popup-appear-number-limit'];
97
 
98
  if(typeof that.removeCookie !== 'undefined') {
99
  that.removeCookie(this.openOnce);
147
  var popupShortCode = that.popupData['shortcode'];
148
  var popupVideo = that.popupData['video'];
149
  var popupOverlayColor = that.popupData['sgOverlayColor'];
150
+ var contentBackgroundColor = that.popupData['sg-content-background-color'];
151
  var popupWidth = that.popupData['width'];
152
  var popupHeight = that.popupData['height'];
153
  var popupOpacity = that.popupData['opacity'];
176
  if (popupShortCode && popupHtml == false) {
177
  popupHtml = popupShortCode;
178
  }
179
+
180
  if(popupHtml && popupWidth == '' && popupHeight == '' && popupMaxWidth =='' && popupMaxHeight == '') {
181
  jQuery(popupHtml).find('img:first').attr('onload', 'jQuery.sgcolorbox.resize();');
182
  }
294
  onLoad: function(){
295
  },
296
  onComplete: function(){
297
+ if(contentBackgroundColor) {
298
+ jQuery("#sgcboxLoadedContent").css({'background-color' : contentBackgroundColor})
299
+ }
300
  jQuery('#sgcolorbox').trigger("sgColorboxOnCompleate", [pushToBottom]);
301
  if(popupWidth == '' && popupHeight == '') {
302
  jQuery.sgcolorbox.resize();
309
  if(jQuery('#sg-facebook-like').length && typeof FB !== 'undefined') {
310
  FB.XFBML.parse();
311
  }
 
312
  },
313
  onClosed: function() {
314
  jQuery('#sgcolorbox').trigger("sgPopupClose", []);
337
 
338
  jQuery.sgcolorbox(SG_POPUP_SETTINGS);
339
  if (that.popupData['id'] && that.isOnLoad==true && that.openOnce != '') {
340
+ sgCookieData = '';
341
  jQuery.cookie.defaults = {path:'/'};
342
+ var currentCookie = jQuery.cookie('sgPopupDetails');
343
+
344
+ if(typeof currentCookie == 'undefined') {
345
+ openCounter = 1;
346
+ }
347
+ else {
348
+ var currentCookie = JSON.parse(jQuery.cookie('sgPopupDetails'));
349
+ openCounter = currentCookie.openCounter+=1;
350
+ }
351
+ sgCookieData = {
352
+ 'popupId': that.popupData['id'],
353
+ 'openCounter': openCounter,
354
+ 'openLimit': that.numberLimit
355
+ }
356
+
357
+ jQuery.cookie("sgPopupDetails",JSON.stringify(sgCookieData), { expires: onceExpiresTime});
358
  }
359
 
360
  if (that.popupContentClick) {
javascript/sg_popup_javascript.php CHANGED
@@ -1,59 +1,53 @@
1
- <?php
2
-
3
- function sg_set_admin_url($hook) {
4
- if ('popup-builder_page_create-popup' == $hook) {
5
- echo '<script type="text/javascript">SG_ADMIN_URL = "'.admin_url()."admin.php?page=create-popup".'";</script>';
6
- }
7
- }
8
-
9
- function sg_popup_admin_scripts($hook) {
10
- if ( 'popup-builder_page_edit-popup' == $hook || 'popup-builder_page_create-popup' == $hook || 'popup-builder_page_subscribers' == $hook) {
11
-
12
- wp_enqueue_media();
13
- wp_register_script('javascript', SG_APP_POPUP_URL . '/javascript/sg_popup_backend.js', array('jquery'));
14
- wp_enqueue_script('jquery');
15
- wp_enqueue_script('javascript');
16
-
17
- }
18
- else if('toplevel_page_PopupBuilder' == $hook){
19
- wp_register_script('javascript', SG_APP_POPUP_URL . '/javascript/sg_popup_backend.js', array('jquery'));
20
- wp_enqueue_script('javascript');
21
- if(SG_POPUP_PRO) {
22
- wp_register_script('sg_popup_pro', SG_APP_POPUP_URL . '/javascript/sg_popup_backend_pro.js');
23
- wp_enqueue_script('sg_popup_pro');
24
- wp_enqueue_media();
25
- }
26
- wp_enqueue_script('jquery');
27
- }
28
- if('popup-builder_page_edit-popup' == $hook) {
29
- wp_register_script('sg_popup_rangeslider', SG_APP_POPUP_URL . '/javascript/sg_popup_rangeslider.js', array('jquery'));
30
- wp_enqueue_script('sg_popup_rangeslider');
31
- wp_enqueue_script('jquery');
32
- if (SG_POPUP_PRO) {
33
- wp_register_script('jssocials.min', SG_APP_POPUP_URL . '/javascript/jssocials.min.js');
34
- wp_enqueue_script('jssocials.min');
35
- wp_register_script('sg_social_backend', SG_APP_POPUP_URL . '/javascript/sg_social_backend.js',array('jquery'));
36
- wp_enqueue_script('sg_social_backend');
37
- wp_register_script('sg_popup_tagsinput', SG_APP_POPUP_URL . '/javascript/bootstrap-tagsinput.js', array('jquery'));
38
- wp_enqueue_script('sg_popup_tagsinput');
39
-
40
- }
41
-
42
-
43
- wp_enqueue_script('jquery-ui-datepicker');
44
-
45
- wp_enqueue_style( 'wp-color-picker' );
46
- wp_enqueue_script( 'sg_libs_handle', plugins_url('javascript/sg_datapickers.js',dirname(__FILE__)), array('wp-color-picker'));
47
- }
48
- }
49
-
50
- function SgFrontendScripts() {
51
- wp_enqueue_script('sg_popup_core', plugins_url('/sg_popup_core.js', __FILE__), '1.0.0', true);
52
- echo "<script type='text/javascript'>SG_POPUP_DATA = [];SG_APP_POPUP_URL = '".SG_APP_POPUP_URL."';SG_POPUO_VERSION='".SG_POPUP_VERSION."_".SG_POPUP_PRO."'</script>";
53
- }
54
-
55
- add_action('admin_enqueue_scripts', 'sg_set_admin_url');
56
- add_action('admin_enqueue_scripts', 'sg_popup_admin_scripts');
57
- add_action('wp_enqueue_scripts', 'SgFrontendScripts');
58
-
59
-
1
+ <?php
2
+
3
+ function sg_set_admin_url($hook) {
4
+ if ('popup-builder_page_create-popup' == $hook) {
5
+ echo '<script type="text/javascript">SG_ADMIN_URL = "'.admin_url()."admin.php?page=create-popup".'";</script>';
6
+ }
7
+ }
8
+
9
+ function sg_popup_admin_scripts($hook) {
10
+ if ( 'popup-builder_page_edit-popup' == $hook || 'popup-builder_page_create-popup' == $hook || 'popup-builder_page_subscribers' == $hook) {
11
+
12
+ wp_enqueue_media();
13
+ wp_register_script('javascript', SG_APP_POPUP_URL . '/javascript/sg_popup_backend.js', array('jquery'));
14
+ wp_enqueue_script('jquery');
15
+ wp_enqueue_script('javascript');
16
+
17
+ }
18
+ else if('toplevel_page_PopupBuilder' == $hook){
19
+ wp_register_script('javascript', SG_APP_POPUP_URL . '/javascript/sg_popup_backend.js', array('jquery'));
20
+ wp_enqueue_script('javascript');
21
+ if(SG_POPUP_PRO) {
22
+ wp_register_script('sg_popup_pro', SG_APP_POPUP_URL . '/javascript/sg_popup_backend_pro.js');
23
+ wp_enqueue_script('sg_popup_pro');
24
+ wp_enqueue_media();
25
+ }
26
+ wp_enqueue_script('jquery');
27
+ }
28
+ if('popup-builder_page_edit-popup' == $hook) {
29
+ wp_register_script('sg_popup_rangeslider', SG_APP_POPUP_URL . '/javascript/sg_popup_rangeslider.js', array('jquery'));
30
+ wp_enqueue_script('sg_popup_rangeslider');
31
+ wp_enqueue_script('jquery');
32
+ if (SG_POPUP_PRO) {
33
+ wp_register_script('sg_popup_pro', SG_APP_POPUP_URL . '/javascript/sg_popup_backend_pro.js');
34
+ wp_enqueue_script('sg_popup_pro');
35
+ }
36
+
37
+ wp_enqueue_script('jquery-ui-datepicker');
38
+
39
+ wp_enqueue_style( 'wp-color-picker' );
40
+ wp_enqueue_script( 'sg_libs_handle', plugins_url('javascript/sg_datapickers.js',dirname(__FILE__)), array('wp-color-picker'));
41
+ }
42
+ }
43
+
44
+ function SgFrontendScripts() {
45
+ wp_enqueue_script('sg_popup_core', plugins_url('/sg_popup_core.js', __FILE__), '1.0.0', true);
46
+ echo "<script type='text/javascript'>SG_POPUP_DATA = [];SG_APP_POPUP_URL = '".SG_APP_POPUP_URL."';SG_POPUO_VERSION='".SG_POPUP_VERSION."_".SG_POPUP_PRO."'</script>";
47
+ }
48
+
49
+ add_action('admin_enqueue_scripts', 'sg_set_admin_url');
50
+ add_action('admin_enqueue_scripts', 'sg_popup_admin_scripts');
51
+ add_action('wp_enqueue_scripts', 'SgFrontendScripts');
52
+
53
+
 
 
 
 
 
 
javascript/sg_popup_support_plugins.js CHANGED
@@ -1,26 +1,34 @@
1
- jQuery(document).ready(function() {
2
- jQuery('#sgcolorbox').bind("sgColorboxOnCompleate", function() {
3
-
4
- if(jQuery('div.wpcf7 > form').length) { /* Contact form 7 */
5
- jQuery('div.wpcf7 > form').wpcf7InitForm();
6
- }
7
-
8
- if(jQuery('.myStat').length) { /* Percent to Infograph */
9
- jQuery('.myStat').circliful();
10
- }
11
-
12
- if(jQuery("form[name ^= 'form']").length > 0) { /* for Form Maker plugin */
13
- formMakerId = jQuery("form[name ^= 'form']").attr('name').match(/\d/g);
14
- if(jQuery(".captcha_refresh").length > 0) {
15
- jQuery(".captcha_refresh").bind('click', function() {
16
- captcha_refresh("wd_captcha", formMakerId);
17
- });
18
- captcha_refresh("wd_captcha", formMakerId);
19
- }
20
- }
21
-
22
- if(typeof wpcr3 != "undefined") { /* WP Customer Reviews */
23
- wpcr3.init();
24
- }
25
- });
26
- });
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function() {
2
+ jQuery('#sgcolorbox').bind("sgColorboxOnCompleate", function() {
3
+
4
+ if(jQuery('div.wpcf7 > form').length) { /* Contact form 7 */
5
+ jQuery('div.wpcf7 > form').wpcf7InitForm();
6
+ }
7
+
8
+ if(jQuery('.myStat').length) { /* Percent to Infograph */
9
+ jQuery('.myStat').circliful();
10
+ }
11
+
12
+ if(jQuery("form[name ^= 'form']").length > 0) { /* for Form Maker plugin */
13
+ formMakerId = jQuery("form[name ^= 'form']").attr('name').match(/\d/g);
14
+ if(jQuery(".captcha_refresh").length > 0) {
15
+ jQuery(".captcha_refresh").bind('click', function() {
16
+ captcha_refresh("wd_captcha", formMakerId);
17
+ });
18
+ captcha_refresh("wd_captcha", formMakerId);
19
+ }
20
+ }
21
+
22
+ if(typeof wpcr3 != "undefined") { /* WP Customer Reviews */
23
+ wpcr3.init();
24
+ }
25
+
26
+ if(jQuery('.pdfemb-viewer').length != 0) { /* PDF Embedder pluguin */
27
+ PDFJS.workerSrc = pdfemb_trans.worker_src;
28
+ PDFJS.cMapUrl = pdfemb_trans.cmap_url;
29
+ PDFJS.cMapPacked = true;
30
+ jQuery('.pdfemb-viewer').pdfEmbedder();
31
+ }
32
+
33
+ });
34
+ });
popup-builder.php CHANGED
@@ -1,267 +1,283 @@
1
- <?php
2
- /**
3
- * Plugin Name: Popup Builder
4
- * Plugin URI: http://sygnoos.com
5
- * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
- * Version: 2.2.1
7
- * Author: Sygnoos
8
- * Author URI: http://www.sygnoos.com
9
- * License: GPLv2
10
- */
11
-
12
- //create some difine Pats
13
- define("SG_APP_POPUP_PATH", dirname(__FILE__));
14
- define('SG_APP_POPUP_URL', plugins_url('', __FILE__));
15
- define('SG_APP_POPUP_ADMIN_URL', admin_url());
16
- define('SG_APP_POPUP_FILE', plugin_basename(__FILE__));
17
- define('SG_APP_POPUP_FILES', SG_APP_POPUP_PATH . '/files');
18
- define('SG_APP_POPUP_CLASSES', SG_APP_POPUP_PATH . '/classes');
19
- define('SG_APP_POPUP_JS', SG_APP_POPUP_PATH . '/javascript');
20
- define('SG_APP_POPUP_TABLE_LIMIT', 15);
21
- define('SG_POPUP_PRO', 0);
22
- define('SG_POPUP_VERSION', 2.21);
23
- define('SG_POPUP_PRO_URL', 'http://sygnoos.com/wordpress-popup/');
24
-
25
- $POPUP_TITLES = array(
26
- 'image' => 'Image',
27
- 'html' => 'HTML',
28
- 'fblike' => 'Facebook',
29
- 'iframe' => 'Iframe',
30
- 'video' => 'Video',
31
- 'shortcode' => 'Shortcode',
32
- 'ageRestriction' => 'Age Restriction',
33
- 'countdown' => 'Countdown',
34
- 'social' => 'Social',
35
- 'exitIntent' => 'Exit Intent',
36
- 'subscription' => 'Subscription',
37
- 'contactForm' => 'Contact Form'
38
- );
39
-
40
- require_once(SG_APP_POPUP_CLASSES .'/SGPopup.php');
41
- require_once(SG_APP_POPUP_FILES .'/sg_functions.php');
42
- require_once(SG_APP_POPUP_CLASSES .'/PopupInstaller.php'); //cretae tables
43
-
44
- if (SG_POPUP_PRO) {
45
- require_once( SG_APP_POPUP_CLASSES .'/PopupProInstaller.php'); //uninstall tables
46
- }
47
- require_once(SG_APP_POPUP_PATH .'/style/sg_popup_style.php' ); //include our css file
48
- require_once(SG_APP_POPUP_JS .'/sg_popup_javascript.php' ); //include our js file
49
- require_once(SG_APP_POPUP_FILES .'/sg_popup_page_selection.php' ); // include here in page button for select popup every page
50
-
51
- register_activation_hook(__FILE__, 'sgPopupActivate');
52
- register_uninstall_hook(__FILE__, 'sgPopupDeactivate');
53
-
54
- add_action('wpmu_new_blog', 'sgNewBlogPopup', 10, 6);
55
-
56
- function sgNewBlogPopup()
57
- {
58
- PopupInstaller::install();
59
- if (SG_POPUP_PRO) {
60
- PopupProInstaller::install();
61
- }
62
- }
63
-
64
- function sgPopupActivate()
65
- {
66
- update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
67
- PopupInstaller::install();
68
- if (SG_POPUP_PRO) {
69
- PopupProInstaller::install();
70
- }
71
- }
72
-
73
- function sgPopupDeactivate()
74
- {
75
- PopupInstaller::uninstall();
76
- if (SG_POPUP_PRO) {
77
- PopupProInstaller::uninstall();
78
- }
79
-
80
- }
81
-
82
-
83
- add_action("admin_menu","sgAddMenu");
84
- function sgAddMenu()
85
- {
86
- add_menu_page("Popup Builder", "Popup Builder", "manage_options","PopupBuilder","sgPopupMenu","dashicons-welcome-widgets-menus");
87
- add_submenu_page("PopupBuilder", "All Popups", "All Popups", 'manage_options', "PopupBuilder", "sgPopupMenu");
88
- add_submenu_page("PopupBuilder", "Add New", "Add New", 'manage_options', "create-popup", "sgCreatePopup");
89
- add_submenu_page("PopupBuilder", "Edit Popup", "Edit Popup", 'manage_options', "edit-popup", "sgEditPopup");
90
- if (SG_POPUP_PRO) {
91
- add_submenu_page("PopupBuilder", "Subscribers", "Subscribers", 'manage_options', "subscribers", "sgSubscribers");
92
- }
93
- }
94
-
95
- function sgPopupMenu()
96
- {
97
- require_once( SG_APP_POPUP_FILES . '/sg_popup_main.php');
98
- }
99
-
100
- function sgCreatePopup()
101
- {
102
- require_once( SG_APP_POPUP_FILES . '/sg_popup_create.php'); // here is inculde file in the first sub menu
103
- }
104
-
105
- function sgEditPopup()
106
- {
107
- require_once( SG_APP_POPUP_FILES . '/sg_popup_create_new.php');
108
- }
109
-
110
- function sgSubscribers()
111
- {
112
- require_once( SG_APP_POPUP_FILES . '/sg_subscribers.php');
113
- }
114
-
115
- function sgRegisterScripts()
116
- {
117
- SGPopup::$registeredScripts = true;
118
- wp_register_style('sg_animate', SG_APP_POPUP_URL . '/style/animate.css');
119
- wp_enqueue_style('sg_animate');
120
- wp_register_script('sg_popup_frontend', SG_APP_POPUP_URL . '/javascript/sg_popup_frontend.js', array('jquery'));
121
- wp_enqueue_script('sg_popup_frontend');
122
- wp_enqueue_script('jquery');
123
- wp_register_script('sg_colorbox', SG_APP_POPUP_URL . '/javascript/jquery.sgcolorbox-min.js', array('jquery'), '5.0');
124
- wp_enqueue_script('sg_colorbox');
125
- wp_register_script('sg_popup_support_plugins', SG_APP_POPUP_URL . '/javascript/sg_popup_support_plugins.js', array('jquery'));
126
- wp_enqueue_script('sg_popup_support_plugins');
127
- if (SG_POPUP_PRO) {
128
- wp_register_script('sgPopupPro', SG_APP_POPUP_URL . '/javascript/sg_popup_pro.js?ver=4.2.3');
129
- wp_enqueue_script('sgPopupPro');
130
- wp_register_script('sg_cookie', SG_APP_POPUP_URL . '/javascript/jquery_cookie.js', array('jquery'));
131
- wp_enqueue_script('sg_cookie');
132
- }
133
- }
134
-
135
- function sgRenderPopupScript($id)
136
- {
137
- if (SGPopup::$registeredScripts==false) {
138
- sgRegisterScripts();
139
- }
140
- wp_register_style('sg_colorbox_theme', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox1.css");
141
- wp_register_style('sg_colorbox_theme2', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox2.css");
142
- wp_register_style('sg_colorbox_theme3', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox3.css");
143
- wp_register_style('sg_colorbox_theme4', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox4.css");
144
- wp_register_style('sg_colorbox_theme5', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox5.css", array(), '5.0');
145
- wp_enqueue_style('sg_colorbox_theme');
146
- wp_enqueue_style('sg_colorbox_theme2');
147
- wp_enqueue_style('sg_colorbox_theme3');
148
- wp_enqueue_style('sg_colorbox_theme4');
149
- wp_enqueue_style('sg_colorbox_theme5');
150
- sgFindPopupData($id);
151
- }
152
-
153
- function sgFindPopupData($id)
154
- {
155
- $obj = SGPopup::findById($id);
156
- if (!empty($obj)) {
157
- $content = $obj->render();
158
- }
159
- echo "<script type='text/javascript'>";
160
- echo $content;
161
- echo "</script>";
162
- }
163
-
164
- function sgShowShortCode($args, $content)
165
- {
166
- ob_start();
167
- $obj = SGPopup::findById($args['id']);
168
- if (!$obj) {
169
- return $content;
170
- }
171
- if(!empty($content)) {
172
- sgRenderPopupScript($args['id']);
173
- echo "<a href='javascript:void(0)' class='sg-show-popup' data-sgpopupid=".$args['id'].">".$content."</a>";
174
- }
175
- else {
176
- echo redenderScriptMode($args['id']);
177
- }
178
- $shortcodeContent = ob_get_contents();
179
- ob_end_clean();
180
- return $shortcodeContent;
181
- }
182
- add_shortCode('sg_popup', 'sgShowShortCode');
183
-
184
- function sgRenderPopupOpen($popupId)
185
- {
186
- sgRenderPopupScript($popupId);
187
-
188
- echo "<script type=\"text/javascript\">
189
-
190
- sgAddEvent(window, 'load',function() {
191
- sgOnScrolling = (SG_POPUP_DATA [$popupId]['onScrolling']) ? SG_POPUP_DATA [$popupId]['onScrolling']: ''; ;
192
- beforeScrolingPrsent = (SG_POPUP_DATA [$popupId]['onScrolling']) ? SG_POPUP_DATA [$popupId]['beforeScrolingPrsent']: '';
193
- autoClosePopup = (SG_POPUP_DATA [$popupId]['autoClosePopup']) ? SG_POPUP_DATA [$popupId]['autoClosePopup']: '';
194
- popupClosingTimer = (SG_POPUP_DATA [$popupId]['popupClosingTimer']) ? SG_POPUP_DATA [$popupId]['popupClosingTimer']: '';
195
- sgPoupFrontendObj = new SGPopup();
196
- if(sgOnScrolling) {
197
- sgPoupFrontendObj.onScrolling($popupId);
198
- }
199
- else {
200
-
201
- sgPoupFrontendObj.showPopup($popupId,true);
202
- }
203
- });
204
- </script>";
205
- }
206
-
207
- function showPopupInPage($popupId) {
208
-
209
- if(!SGFunctions::allowPageCountry($popupId)) { /* Sended popupId and function return true or false */
210
- return;
211
- }
212
-
213
- redenderScriptMode($popupId);
214
- }
215
-
216
- function redenderScriptMode($popupId)
217
- {
218
-
219
- $exitIntentPopupId = get_option('SG_POPUP_EXITINTENT_'.$popupId);
220
-
221
- if(isset($exitIntentPopupId) && $exitIntentPopupId == $popupId) {
222
- sgRenderPopupScript($popupId);
223
- require_once(SG_APP_POPUP_CLASSES.'/SGExitintentPopup.php');
224
- $exitObj = new SGExitintentPopup();
225
- echo $exitObj->getExitIntentInitScript($popupId);
226
- return;
227
- }
228
- sgRenderPopupOpen($popupId);
229
- }
230
-
231
- function sgOnloadPopup()
232
- {
233
- $page = get_queried_object_id();
234
- $popup = "sg_promotional_popup";
235
- //If popup is set on page load
236
- $popupId = SGPopup::getPagePopupId($page, $popup);
237
- //If popup is set for all pages
238
- if($popupId != 0) {
239
- showPopupInPage($popupId);
240
- }
241
- else if(SG_POPUP_PRO){
242
- require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php");
243
- $popupId = SgPopupPro::allowPopupInAllPages($page);
244
- if($popupId) {
245
- showPopupInPage($popupId);
246
- }
247
- }
248
- return false;
249
- }
250
-
251
- add_action('wp_head','sgOnloadPopup');
252
- require_once( SG_APP_POPUP_FILES . '/sg_popup_media_button.php');
253
- require_once( SG_APP_POPUP_FILES . '/sg_popup_save.php'); // saving form data
254
- require_once( SG_APP_POPUP_FILES . '/sg_popup_ajax.php');
255
- require_once( SG_APP_POPUP_FILES . '/sg_admin_post.php');
256
-
257
-
258
- function sgPopupPluginLoaded()
259
- {
260
- $versionPopup = get_option('SG_POPUP_VERSION');
261
- if (!$versionPopup || $versionPopup < SG_POPUP_VERSION ) {
262
- update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
263
- PopupInstaller::install();
264
- }
265
- }
266
-
267
- add_action('plugins_loaded', 'sgPopupPluginLoaded');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: Popup Builder
4
+ * Plugin URI: http://sygnoos.com
5
+ * Description: The most complete popup plugin. Html, image, iframe, shortcode, video and many other popup types. Manage popup dimensions, effects, themes and more.
6
+ * Version: 2.2.2
7
+ * Author: Sygnoos
8
+ * Author URI: http://www.sygnoos.com
9
+ * License: GPLv2
10
+ */
11
+
12
+ //create some difine Pats
13
+ define("SG_APP_POPUP_PATH", dirname(__FILE__));
14
+ define('SG_APP_POPUP_URL', plugins_url('', __FILE__));
15
+ define('SG_APP_POPUP_ADMIN_URL', admin_url());
16
+ define('SG_APP_POPUP_FILE', plugin_basename(__FILE__));
17
+ define('SG_APP_POPUP_FILES', SG_APP_POPUP_PATH . '/files');
18
+ define('SG_APP_POPUP_CLASSES', SG_APP_POPUP_PATH . '/classes');
19
+ define('SG_APP_POPUP_JS', SG_APP_POPUP_PATH . '/javascript');
20
+ define('SG_APP_POPUP_TABLE_LIMIT', 15);
21
+ define('SG_POPUP_PRO', 0);
22
+ define('SG_POPUP_VERSION', 2.22);
23
+ define('SG_POPUP_PRO_URL', 'http://sygnoos.com/wordpress-popup/');
24
+ define("SG_SHOW_POPUP_REVIEW", get_option("SG_COLOSE_REVIEW_BLOCK"));
25
+
26
+ $POPUP_TITLES = array(
27
+ 'image' => 'Image',
28
+ 'html' => 'HTML',
29
+ 'fblike' => 'Facebook',
30
+ 'iframe' => 'Iframe',
31
+ 'video' => 'Video',
32
+ 'shortcode' => 'Shortcode',
33
+ 'ageRestriction' => 'Age Restriction',
34
+ 'countdown' => 'Countdown',
35
+ 'social' => 'Social',
36
+ 'exitIntent' => 'Exit Intent',
37
+ 'subscription' => 'Subscription',
38
+ 'contactForm' => 'Contact Form'
39
+ );
40
+
41
+ require_once(SG_APP_POPUP_CLASSES .'/SGPopup.php');
42
+ require_once(SG_APP_POPUP_FILES .'/sg_functions.php');
43
+
44
+ require_once(SG_APP_POPUP_CLASSES .'/PopupInstaller.php'); //cretae tables
45
+
46
+ if (SG_POPUP_PRO) {
47
+ require_once( SG_APP_POPUP_CLASSES .'/PopupProInstaller.php'); //uninstall tables
48
+ require_once(SG_APP_POPUP_FILES ."/sg_popup_pro.php"); // Pro functions
49
+ }
50
+ require_once(SG_APP_POPUP_PATH .'/style/sg_popup_style.php' ); //include our css file
51
+ require_once(SG_APP_POPUP_JS .'/sg_popup_javascript.php' ); //include our js file
52
+ require_once(SG_APP_POPUP_FILES .'/sg_popup_page_selection.php' ); // include here in page button for select popup every page
53
+
54
+ register_activation_hook(__FILE__, 'sgPopupActivate');
55
+ register_uninstall_hook(__FILE__, 'sgPopupDeactivate');
56
+
57
+ add_action('wpmu_new_blog', 'sgNewBlogPopup', 10, 6);
58
+
59
+ function sgNewBlogPopup()
60
+ {
61
+ PopupInstaller::install();
62
+ if (SG_POPUP_PRO) {
63
+ PopupProInstaller::install();
64
+ }
65
+ }
66
+
67
+ function sgPopupActivate()
68
+ {
69
+ update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
70
+ PopupInstaller::install();
71
+ if (SG_POPUP_PRO) {
72
+ PopupProInstaller::install();
73
+ }
74
+ }
75
+
76
+ function sgPopupDeactivate()
77
+ {
78
+ PopupInstaller::uninstall();
79
+ if (SG_POPUP_PRO) {
80
+ PopupProInstaller::uninstall();
81
+ }
82
+
83
+ }
84
+
85
+
86
+ add_action("admin_menu","sgAddMenu");
87
+ function sgAddMenu()
88
+ {
89
+ add_menu_page("Popup Builder", "Popup Builder", "manage_options","PopupBuilder","sgPopupMenu","dashicons-welcome-widgets-menus");
90
+ add_submenu_page("PopupBuilder", "All Popups", "All Popups", 'manage_options', "PopupBuilder", "sgPopupMenu");
91
+ add_submenu_page("PopupBuilder", "Add New", "Add New", 'manage_options', "create-popup", "sgCreatePopup");
92
+ add_submenu_page("PopupBuilder", "Edit Popup", "Edit Popup", 'manage_options', "edit-popup", "sgEditPopup");
93
+ if (SG_POPUP_PRO) {
94
+ add_submenu_page("PopupBuilder", "Subscribers", "Subscribers", 'manage_options', "subscribers", "sgSubscribers");
95
+ }
96
+ }
97
+
98
+ function sgPopupMenu()
99
+ {
100
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_main.php');
101
+ }
102
+
103
+ function sgCreatePopup()
104
+ {
105
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_create.php'); // here is inculde file in the first sub menu
106
+ }
107
+
108
+ function sgEditPopup()
109
+ {
110
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_create_new.php');
111
+ }
112
+
113
+ function sgSubscribers()
114
+ {
115
+ require_once( SG_APP_POPUP_FILES . '/sg_subscribers.php');
116
+ }
117
+
118
+ function sgRegisterScripts()
119
+ {
120
+ SGPopup::$registeredScripts = true;
121
+ wp_register_style('sg_animate', SG_APP_POPUP_URL . '/style/animate.css');
122
+ wp_enqueue_style('sg_animate');
123
+ wp_register_script('sg_popup_frontend', SG_APP_POPUP_URL . '/javascript/sg_popup_frontend.js', array('jquery'));
124
+ wp_enqueue_script('sg_popup_frontend');
125
+ wp_enqueue_script('jquery');
126
+ wp_register_script('sg_colorbox', SG_APP_POPUP_URL . '/javascript/jquery.sgcolorbox-min.js', array('jquery'), '5.0');
127
+ wp_enqueue_script('sg_colorbox');
128
+ if (SG_POPUP_PRO) {
129
+ wp_register_script('sgPopupPro', SG_APP_POPUP_URL . '/javascript/sg_popup_pro.js?ver=4.2.3');
130
+ wp_enqueue_script('sgPopupPro');
131
+ wp_register_script('sg_popup_support_plugins', SG_APP_POPUP_URL . '/javascript/sg_popup_support_plugins.js', array('jquery'));
132
+ wp_enqueue_script('sg_popup_support_plugins');
133
+ wp_register_script('sg_cookie', SG_APP_POPUP_URL . '/javascript/jquery_cookie.js', array('jquery'));
134
+ wp_enqueue_script('sg_cookie');
135
+ }
136
+ }
137
+
138
+ function sgRenderPopupScript($id)
139
+ {
140
+ if (SGPopup::$registeredScripts==false) {
141
+ sgRegisterScripts();
142
+ }
143
+ wp_register_style('sg_colorbox_theme', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox1.css");
144
+ wp_register_style('sg_colorbox_theme2', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox2.css");
145
+ wp_register_style('sg_colorbox_theme3', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox3.css");
146
+ wp_register_style('sg_colorbox_theme4', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox4.css");
147
+ wp_register_style('sg_colorbox_theme5', SG_APP_POPUP_URL . "/style/sgcolorbox/colorbox5.css", array(), '5.0');
148
+ wp_enqueue_style('sg_colorbox_theme');
149
+ wp_enqueue_style('sg_colorbox_theme2');
150
+ wp_enqueue_style('sg_colorbox_theme3');
151
+ wp_enqueue_style('sg_colorbox_theme4');
152
+ wp_enqueue_style('sg_colorbox_theme5');
153
+ sgFindPopupData($id);
154
+ }
155
+
156
+ function sgFindPopupData($id)
157
+ {
158
+ $obj = SGPopup::findById($id);
159
+ if (!empty($obj)) {
160
+ $content = $obj->render();
161
+ }
162
+ echo "<script type='text/javascript'>";
163
+ echo $content;
164
+ echo "</script>";
165
+ }
166
+
167
+ function sgShowShortCode($args, $content)
168
+ {
169
+ ob_start();
170
+ $obj = SGPopup::findById($args['id']);
171
+ if (!$obj) {
172
+ return $content;
173
+ }
174
+ if(!empty($content)) {
175
+ sgRenderPopupScript($args['id']);
176
+ echo "<a href='javascript:void(0)' class='sg-show-popup' data-sgpopupid=".$args['id'].">".$content."</a>";
177
+ }
178
+ else {
179
+ echo redenderScriptMode($args['id']);
180
+ }
181
+ $shortcodeContent = ob_get_contents();
182
+ ob_end_clean();
183
+ return $shortcodeContent;
184
+ }
185
+ add_shortCode('sg_popup', 'sgShowShortCode');
186
+
187
+ function sgRenderPopupOpen($popupId)
188
+ {
189
+ sgRenderPopupScript($popupId);
190
+
191
+ echo "<script type=\"text/javascript\">
192
+
193
+ sgAddEvent(window, 'load',function() {
194
+ sgOnScrolling = (SG_POPUP_DATA [$popupId]['onScrolling']) ? SG_POPUP_DATA [$popupId]['onScrolling']: ''; ;
195
+ beforeScrolingPrsent = (SG_POPUP_DATA [$popupId]['onScrolling']) ? SG_POPUP_DATA [$popupId]['beforeScrolingPrsent']: '';
196
+ autoClosePopup = (SG_POPUP_DATA [$popupId]['autoClosePopup']) ? SG_POPUP_DATA [$popupId]['autoClosePopup']: '';
197
+ popupClosingTimer = (SG_POPUP_DATA [$popupId]['popupClosingTimer']) ? SG_POPUP_DATA [$popupId]['popupClosingTimer']: '';
198
+ sgPoupFrontendObj = new SGPopup();
199
+ if(sgOnScrolling) {
200
+ sgPoupFrontendObj.onScrolling($popupId);
201
+ }
202
+ else {
203
+
204
+ sgPoupFrontendObj.showPopup($popupId,true);
205
+ }
206
+ });
207
+ </script>";
208
+ }
209
+
210
+ function showPopupInPage($popupId) {
211
+
212
+
213
+ if(SG_POPUP_PRO){
214
+
215
+ $isActivePopup = SgPopupPro::popupInTimeRange($popupId);
216
+
217
+ if(!$isActivePopup) {
218
+ return false;
219
+ }
220
+
221
+ $showUser = SgPopupPro::showUserResolution($popupId);
222
+ if(!$showUser) return false;
223
+
224
+ if(!SGFunctions::allowPageCountry($popupId)) { /* Sended popupId and function return true or false */
225
+ return;
226
+ }
227
+ }
228
+
229
+
230
+ redenderScriptMode($popupId);
231
+ }
232
+
233
+ function redenderScriptMode($popupId)
234
+ {
235
+
236
+ $exitIntentPopupId = get_option('SG_POPUP_EXITINTENT_'.$popupId);
237
+
238
+ if(isset($exitIntentPopupId) && $exitIntentPopupId == $popupId) {
239
+ sgRenderPopupScript($popupId);
240
+ require_once(SG_APP_POPUP_CLASSES.'/SGExitintentPopup.php');
241
+ $exitObj = new SGExitintentPopup();
242
+ echo $exitObj->getExitIntentInitScript($popupId);
243
+ return;
244
+ }
245
+ sgRenderPopupOpen($popupId);
246
+ }
247
+
248
+ function sgOnloadPopup()
249
+ {
250
+ $page = get_queried_object_id();
251
+ $popup = "sg_promotional_popup";
252
+ //If popup is set on page load
253
+ $popupId = SGPopup::getPagePopupId($page, $popup);
254
+
255
+ //If popup is set for all pages
256
+ if($popupId != 0) {
257
+ showPopupInPage($popupId);
258
+ }
259
+ if(SG_POPUP_PRO){
260
+ $popupId = SgPopupPro::allowPopupInAllPages($page);
261
+ if($popupId) {
262
+ showPopupInPage($popupId);
263
+ }
264
+ }
265
+ return false;
266
+ }
267
+
268
+ add_action('wp_head','sgOnloadPopup');
269
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_media_button.php');
270
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_save.php'); // saving form data
271
+ require_once( SG_APP_POPUP_FILES . '/sg_popup_ajax.php');
272
+ require_once( SG_APP_POPUP_FILES . '/sg_admin_post.php');
273
+
274
+ function sgPopupPluginLoaded()
275
+ {
276
+ $versionPopup = get_option('SG_POPUP_VERSION');
277
+ if (!$versionPopup || $versionPopup < SG_POPUP_VERSION ) {
278
+ update_option('SG_POPUP_VERSION', SG_POPUP_VERSION);
279
+ PopupInstaller::install();
280
+ }
281
+ }
282
+
283
+ add_action('plugins_loaded', 'sgPopupPluginLoaded');
readme.txt CHANGED
@@ -5,7 +5,7 @@ Author: Sygnoos
5
  Donate link: http://sygnoos.com/wordpress-popup/
6
  Tags: popup, ads, modal, responsive popup, fancybox, lightbox, youtube, video, iframe, vimeo, contact form, html popup, social, age restriction, countdown, facebook, subscription, exit intent popup
7
  Requires at least: 3.8
8
- Tested up to: 4.4.2
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -34,6 +34,7 @@ With popup builder plugin you can insert any type of content, right into your Po
34
  * Customize popup animation effect
35
  * Choose between several popup themes
36
  * Set popup location on the screen
 
37
  * Customize popup overlay color and opacity
38
  * Responsive popup
39
  * Network/Multisite popup
@@ -74,7 +75,13 @@ With popup builder plugin you can insert any type of content, right into your Po
74
 
75
  * Auto close popup after X seconds - useful when activated together with the previous option, you can disable manual popup closing but close it after a certain time.
76
 
77
- * Targeting popup - This popup allows you to show popup depending user location. This kind of popup is useful if your product or service is created for a specific region.
 
 
 
 
 
 
78
 
79
 
80
  <a href="http://sygnoos.com/wordpress-popup/" target="_blank">Get Popup Builder PRO package</a>
@@ -126,6 +133,11 @@ Go to the Popup Builder settings and set your desired options.
126
 
127
  == Changelog ==
128
 
 
 
 
 
 
129
  = Version 2.2.1 =
130
  * Auto resize if dimensions are not defined.
131
 
5
  Donate link: http://sygnoos.com/wordpress-popup/
6
  Tags: popup, ads, modal, responsive popup, fancybox, lightbox, youtube, video, iframe, vimeo, contact form, html popup, social, age restriction, countdown, facebook, subscription, exit intent popup
7
  Requires at least: 3.8
8
+ Tested up to: 4.5
9
  Stable tag: trunk
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
34
  * Customize popup animation effect
35
  * Choose between several popup themes
36
  * Set popup location on the screen
37
+ * Change popup content background color
38
  * Customize popup overlay color and opacity
39
  * Responsive popup
40
  * Network/Multisite popup
75
 
76
  * Auto close popup after X seconds - useful when activated together with the previous option, you can disable manual popup closing but close it after a certain time.
77
 
78
+ * Targeting popup - this popup allows you to show popup depending user location. This kind of popup is useful if your product or service is created for a specific region.
79
+
80
+ * Show popup for logged in users or vice versa - you can make the popup appear only for the users who are logged in. Or you can make the popup visible only for the users who aren't logged in.
81
+
82
+ * Schedule popup - you can schedule the period (in days) when you want the popup to be shown. The users will see the popup during the period of the time you set. (Ex. April 13- May 9)
83
+
84
+ * Popup showing frequency - you can select how many times you want the popup be shown to the same user. This means, you can make the popup appear for 3 times, for example, to the same user.
85
 
86
 
87
  <a href="http://sygnoos.com/wordpress-popup/" target="_blank">Get Popup Builder PRO package</a>
133
 
134
  == Changelog ==
135
 
136
+ = Version 2.2.1 =
137
+ * Fully tested on WordPress 4.5
138
+ * New features added
139
+ * Bug fixes and stability improvements
140
+
141
  = Version 2.2.1 =
142
  * Auto resize if dimensions are not defined.
143
 
style/animate.css CHANGED
@@ -1,2762 +1,2762 @@
1
- @charset "UTF-8";
2
-
3
- /*!
4
- Animate.css - http://daneden.me/animate
5
- Licensed under the MIT license - http://opensource.org/licenses/MIT
6
-
7
- Copyright (c) 2015 Daniel Eden
8
- */
9
-
10
- .sg-animated {
11
- -webkit-animation-duration: 1s;
12
- animation-duration: 1s;
13
- -webkit-animation-fill-mode: both;
14
- animation-fill-mode: both
15
- }
16
- .sg-animated.infinite {
17
- -webkit-animation-iteration-count: infinite;
18
- animation-iteration-count: infinite
19
- }
20
- .sg-animated.hinge {
21
- -webkit-animation-duration: 2s;
22
- animation-duration: 2s
23
- }
24
- .sg-animated.bounceIn,
25
- .sg-animated.bounceOut,
26
- .sg-animated.flipOutX,
27
- .sg-animated.flipOutY {
28
- -webkit-animation-duration: .75s;
29
- animation-duration: .75s
30
- }
31
- @-webkit-keyframes bounce {
32
- 20%, 53%, 80%, from, to {
33
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
34
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
35
- -webkit-transform: translate3d(0, 0, 0);
36
- transform: translate3d(0, 0, 0)
37
- }
38
- 40%,
39
- 43% {
40
- -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
41
- animation-timing-function: cubic-bezier(.755, .050, .855, .060);
42
- -webkit-transform: translate3d(0, -30px, 0);
43
- transform: translate3d(0, -30px, 0)
44
- }
45
- 70% {
46
- -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
47
- animation-timing-function: cubic-bezier(.755, .050, .855, .060);
48
- -webkit-transform: translate3d(0, -15px, 0);
49
- transform: translate3d(0, -15px, 0)
50
- }
51
- 90% {
52
- -webkit-transform: translate3d(0, -4px, 0);
53
- transform: translate3d(0, -4px, 0)
54
- }
55
- }
56
- @keyframes bounce {
57
- 20%, 53%, 80%, from, to {
58
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
59
- animation-timing-function: cubic-bezier(.215, .61, .355, 1);
60
- -webkit-transform: translate3d(0, 0, 0);
61
- transform: translate3d(0, 0, 0)
62
- }
63
- 40%,
64
- 43% {
65
- -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
66
- animation-timing-function: cubic-bezier(.755, .050, .855, .060);
67
- -webkit-transform: translate3d(0, -30px, 0);
68
- transform: translate3d(0, -30px, 0)
69
- }
70
- 70% {
71
- -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
72
- animation-timing-function: cubic-bezier(.755, .050, .855, .060);
73
- -webkit-transform: translate3d(0, -15px, 0);
74
- transform: translate3d(0, -15px, 0)
75
- }
76
- 90% {
77
- -webkit-transform: translate3d(0, -4px, 0);
78
- transform: translate3d(0, -4px, 0)
79
- }
80
- }
81
- .bounce {
82
- -webkit-animation-name: bounce;
83
- animation-name: bounce;
84
- -webkit-transform-origin: center bottom;
85
- transform-origin: center bottom
86
- }
87
- @-webkit-keyframes flash {
88
- 50%, from, to {
89
- opacity: 1
90
- }
91
- 25%,
92
- 75% {
93
- opacity: 0
94
- }
95
- }
96
- @keyframes flash {
97
- 50%, from, to {
98
- opacity: 1
99
- }
100
- 25%,
101
- 75% {
102
- opacity: 0
103
- }
104
- }
105
- .flash {
106
- -webkit-animation-name: flash;
107
- animation-name: flash
108
- }
109
- @-webkit-keyframes pulse {
110
- from, to {
111
- -webkit-transform: scale3d(1, 1, 1);
112
- transform: scale3d(1, 1, 1)
113
- }
114
- 50% {
115
- -webkit-transform: scale3d(1.05, 1.05, 1.05);
116
- transform: scale3d(1.05, 1.05, 1.05)
117
- }
118
- }
119
- @keyframes pulse {
120
- from, to {
121
- -webkit-transform: scale3d(1, 1, 1);
122
- transform: scale3d(1, 1, 1)
123
- }
124
- 50% {
125
- -webkit-transform: scale3d(1.05, 1.05, 1.05);
126
- transform: scale3d(1.05, 1.05, 1.05)
127
- }
128
- }
129
- .pulse {
130
- -webkit-animation-name: pulse;
131
- animation-name: pulse
132
- }
133
- @-webkit-keyframes rubberBand {
134
- from, to {
135
- -webkit-transform: scale3d(1, 1, 1);
136
- transform: scale3d(1, 1, 1)
137
- }
138
- 30% {
139
- -webkit-transform: scale3d(1.25, .75, 1);
140
- transform: scale3d(1.25, .75, 1)
141
- }
142
- 40% {
143
- -webkit-transform: scale3d(.75, 1.25, 1);
144
- transform: scale3d(.75, 1.25, 1)
145
- }
146
- 50% {
147
- -webkit-transform: scale3d(1.15, .85, 1);
148
- transform: scale3d(1.15, .85, 1)
149
- }
150
- 65% {
151
- -webkit-transform: scale3d(.95, 1.05, 1);
152
- transform: scale3d(.95, 1.05, 1)
153
- }
154
- 75% {
155
- -webkit-transform: scale3d(1.05, .95, 1);
156
- transform: scale3d(1.05, .95, 1)
157
- }
158
- }
159
- @keyframes rubberBand {
160
- from, to {
161
- -webkit-transform: scale3d(1, 1, 1);
162
- transform: scale3d(1, 1, 1)
163
- }
164
- 30% {
165
- -webkit-transform: scale3d(1.25, .75, 1);
166
- transform: scale3d(1.25, .75, 1)
167
- }
168
- 40% {
169
- -webkit-transform: scale3d(.75, 1.25, 1);
170
- transform: scale3d(.75, 1.25, 1)
171
- }
172
- 50% {
173
- -webkit-transform: scale3d(1.15, .85, 1);
174
- transform: scale3d(1.15, .85, 1)
175
- }
176
- 65% {
177
- -webkit-transform: scale3d(.95, 1.05, 1);
178
- transform: scale3d(.95, 1.05, 1)
179
- }
180
- 75% {
181
- -webkit-transform: scale3d(1.05, .95, 1);
182
- transform: scale3d(1.05, .95, 1)
183
- }
184
- }
185
- .rubberBand {
186
- -webkit-animation-name: rubberBand;
187
- animation-name: rubberBand
188
- }
189
- @-webkit-keyframes shake {
190
- from, to {
191
- -webkit-transform: translate3d(0, 0, 0);
192
- transform: translate3d(0, 0, 0)
193
- }
194
- 10%,
195
- 30%,
196
- 50%,
197
- 70%,
198
- 90% {
199
- -webkit-transform: translate3d(-10px, 0, 0);
200
- transform: translate3d(-10px, 0, 0)
201
- }
202
- 20%,
203
- 40%,
204
- 60%,
205
- 80% {
206
- -webkit-transform: translate3d(10px, 0, 0);
207
- transform: translate3d(10px, 0, 0)
208
- }
209
- }
210
- @keyframes shake {
211
- from, to {
212
- -webkit-transform: translate3d(0, 0, 0);
213
- transform: translate3d(0, 0, 0)
214
- }
215
- 10%,
216
- 30%,
217
- 50%,
218
- 70%,
219
- 90% {
220
- -webkit-transform: translate3d(-10px, 0, 0);
221
- transform: translate3d(-10px, 0, 0)
222
- }
223
- 20%,
224
- 40%,
225
- 60%,
226
- 80% {
227
- -webkit-transform: translate3d(10px, 0, 0);
228
- transform: translate3d(10px, 0, 0)
229
- }
230
- }
231
- .shake {
232
- -webkit-animation-name: shake;
233
- animation-name: shake
234
- }
235
- @-webkit-keyframes swing {
236
- 20% {
237
- -webkit-transform: rotate3d(0, 0, 1, 15deg);
238
- transform: rotate3d(0, 0, 1, 15deg)
239
- }
240
- 40% {
241
- -webkit-transform: rotate3d(0, 0, 1, -10deg);
242
- transform: rotate3d(0, 0, 1, -10deg)
243
- }
244
- 60% {
245
- -webkit-transform: rotate3d(0, 0, 1, 5deg);
246
- transform: rotate3d(0, 0, 1, 5deg)
247
- }
248
- 80% {
249
- -webkit-transform: rotate3d(0, 0, 1, -5deg);
250
- transform: rotate3d(0, 0, 1, -5deg)
251
- }
252
- to {
253
- -webkit-transform: rotate3d(0, 0, 1, 0deg);
254
- transform: rotate3d(0, 0, 1, 0deg)
255
- }
256
- }
257
- @keyframes swing {
258
- 20% {
259
- -webkit-transform: rotate3d(0, 0, 1, 15deg);
260
- transform: rotate3d(0, 0, 1, 15deg)
261
- }
262
- 40% {
263
- -webkit-transform: rotate3d(0, 0, 1, -10deg);
264
- transform: rotate3d(0, 0, 1, -10deg)
265
- }
266
- 60% {
267
- -webkit-transform: rotate3d(0, 0, 1, 5deg);
268
- transform: rotate3d(0, 0, 1, 5deg)
269
- }
270
- 80% {
271
- -webkit-transform: rotate3d(0, 0, 1, -5deg);
272
- transform: rotate3d(0, 0, 1, -5deg)
273
- }
274
- to {
275
- -webkit-transform: rotate3d(0, 0, 1, 0deg);
276
- transform: rotate3d(0, 0, 1, 0deg)
277
- }
278
- }
279
- .swing {
280
- -webkit-transform-origin: top center;
281
- transform-origin: top center;
282
- -webkit-animation-name: swing;
283
- animation-name: swing
284
- }
285
- @-webkit-keyframes tada {
286
- from, to {
287
- -webkit-transform: scale3d(1, 1, 1);
288
- transform: scale3d(1, 1, 1)
289
- }
290
- 10%,
291
- 20% {
292
- -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
293
- transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
294
- }
295
- 30%,
296
- 50%,
297
- 70%,
298
- 90% {
299
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
300
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
301
- }
302
- 40%,
303
- 60%,
304
- 80% {
305
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
306
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
307
- }
308
- }
309
- @keyframes tada {
310
- from, to {
311
- -webkit-transform: scale3d(1, 1, 1);
312
- transform: scale3d(1, 1, 1)
313
- }
314
- 10%,
315
- 20% {
316
- -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
317
- transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
318
- }
319
- 30%,
320
- 50%,
321
- 70%,
322
- 90% {
323
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
324
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
325
- }
326
- 40%,
327
- 60%,
328
- 80% {
329
- -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
330
- transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
331
- }
332
- }
333
- .tada {
334
- -webkit-animation-name: tada;
335
- animation-name: tada
336
- }
337
- @-webkit-keyframes wobble {
338
- from, to {
339
- -webkit-transform: none;
340
- transform: none
341
- }
342
- 15% {
343
- -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
344
- transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
345
- }
346
- 30% {
347
- -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
348
- transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
349
- }
350
- 45% {
351
- -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
352
- transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
353
- }
354
- 60% {
355
- -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
356
- transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
357
- }
358
- 75% {
359
- -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
360
- transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
361
- }
362
- }
363
- @keyframes wobble {
364
- from, to {
365
- -webkit-transform: none;
366
- transform: none
367
- }
368
- 15% {
369
- -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
370
- transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
371
- }
372
- 30% {
373
- -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
374
- transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
375
- }
376
- 45% {
377
- -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
378
- transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
379
- }
380
- 60% {
381
- -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
382
- transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
383
- }
384
- 75% {
385
- -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
386
- transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
387
- }
388
- }
389
- .wobble {
390
- -webkit-animation-name: wobble;
391
- animation-name: wobble
392
- }
393
- @-webkit-keyframes jello {
394
- 11.1%, from, to {
395
- -webkit-transform: none;
396
- transform: none
397
- }
398
- 22.2% {
399
- -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
400
- transform: skewX(-12.5deg) skewY(-12.5deg)
401
- }
402
- 33.3% {
403
- -webkit-transform: skewX(6.25deg) skewY(6.25deg);
404
- transform: skewX(6.25deg) skewY(6.25deg)
405
- }
406
- 44.4% {
407
- -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
408
- transform: skewX(-3.125deg) skewY(-3.125deg)
409
- }
410
- 55.5% {
411
- -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
412
- transform: skewX(1.5625deg) skewY(1.5625deg)
413
- }
414
- 66.6% {
415
- -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
416
- transform: skewX(-.78125deg) skewY(-.78125deg)
417
- }
418
- 77.7% {
419
- -webkit-transform: skewX(.390625deg) skewY(.390625deg);
420
- transform: skewX(.390625deg) skewY(.390625deg)
421
- }
422
- 88.8% {
423
- -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
424
- transform: skewX(-.1953125deg) skewY(-.1953125deg)
425
- }
426
- }
427
- @keyframes jello {
428
- 11.1%, from, to {
429
- -webkit-transform: none;
430
- transform: none
431
- }
432
- 22.2% {
433
- -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
434
- transform: skewX(-12.5deg) skewY(-12.5deg)
435
- }
436
- 33.3% {
437
- -webkit-transform: skewX(6.25deg) skewY(6.25deg);
438
- transform: skewX(6.25deg) skewY(6.25deg)
439
- }
440
- 44.4% {
441
- -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
442
- transform: skewX(-3.125deg) skewY(-3.125deg)
443
- }
444
- 55.5% {
445
- -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
446
- transform: skewX(1.5625deg) skewY(1.5625deg)
447
- }
448
- 66.6% {
449
- -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
450
- transform: skewX(-.78125deg) skewY(-.78125deg)
451
- }
452
- 77.7% {
453
- -webkit-transform: skewX(.390625deg) skewY(.390625deg);
454
- transform: skewX(.390625deg) skewY(.390625deg)
455
- }
456
- 88.8% {
457
- -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
458
- transform: skewX(-.1953125deg) skewY(-.1953125deg)
459
- }
460
- }
461
- .jello {
462
- -webkit-animation-name: jello;
463
- animation-name: jello;
464
- -webkit-transform-origin: center;
465
- transform-origin: center
466
- }
467
- @-webkit-keyframes bounceIn {
468
- 20%, 40%, 60%, 80%, from, to {
469
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
470
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
471
- }
472
- 0% {
473
- opacity: 0;
474
- -webkit-transform: scale3d(.3, .3, .3);
475
- transform: scale3d(.3, .3, .3)
476
- }
477
- 20% {
478
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
479
- transform: scale3d(1.1, 1.1, 1.1)
480
- }
481
- 40% {
482
- -webkit-transform: scale3d(.9, .9, .9);
483
- transform: scale3d(.9, .9, .9)
484
- }
485
- 60% {
486
- opacity: 1;
487
- -webkit-transform: scale3d(1.03, 1.03, 1.03);
488
- transform: scale3d(1.03, 1.03, 1.03)
489
- }
490
- 80% {
491
- -webkit-transform: scale3d(.97, .97, .97);
492
- transform: scale3d(.97, .97, .97)
493
- }
494
- to {
495
- opacity: 1;
496
- -webkit-transform: scale3d(1, 1, 1);
497
- transform: scale3d(1, 1, 1)
498
- }
499
- }
500
- @keyframes bounceIn {
501
- 20%, 40%, 60%, 80%, from, to {
502
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
503
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
504
- }
505
- 0% {
506
- opacity: 0;
507
- -webkit-transform: scale3d(.3, .3, .3);
508
- transform: scale3d(.3, .3, .3)
509
- }
510
- 20% {
511
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
512
- transform: scale3d(1.1, 1.1, 1.1)
513
- }
514
- 40% {
515
- -webkit-transform: scale3d(.9, .9, .9);
516
- transform: scale3d(.9, .9, .9)
517
- }
518
- 60% {
519
- opacity: 1;
520
- -webkit-transform: scale3d(1.03, 1.03, 1.03);
521
- transform: scale3d(1.03, 1.03, 1.03)
522
- }
523
- 80% {
524
- -webkit-transform: scale3d(.97, .97, .97);
525
- transform: scale3d(.97, .97, .97)
526
- }
527
- to {
528
- opacity: 1;
529
- -webkit-transform: scale3d(1, 1, 1);
530
- transform: scale3d(1, 1, 1)
531
- }
532
- }
533
- .bounceIn {
534
- -webkit-animation-name: bounceIn;
535
- animation-name: bounceIn
536
- }
537
- @-webkit-keyframes bounceInDown {
538
- 60%, 75%, 90%, from, to {
539
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
540
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
541
- }
542
- 0% {
543
- opacity: 0;
544
- -webkit-transform: translate3d(0, -3000px, 0);
545
- transform: translate3d(0, -3000px, 0)
546
- }
547
- 60% {
548
- opacity: 1;
549
- -webkit-transform: translate3d(0, 25px, 0);
550
- transform: translate3d(0, 25px, 0)
551
- }
552
- 75% {
553
- -webkit-transform: translate3d(0, -10px, 0);
554
- transform: translate3d(0, -10px, 0)
555
- }
556
- 90% {
557
- -webkit-transform: translate3d(0, 5px, 0);
558
- transform: translate3d(0, 5px, 0)
559
- }
560
- to {
561
- -webkit-transform: none;
562
- transform: none
563
- }
564
- }
565
- @keyframes bounceInDown {
566
- 60%, 75%, 90%, from, to {
567
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
568
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
569
- }
570
- 0% {
571
- opacity: 0;
572
- -webkit-transform: translate3d(0, -3000px, 0);
573
- transform: translate3d(0, -3000px, 0)
574
- }
575
- 60% {
576
- opacity: 1;
577
- -webkit-transform: translate3d(0, 25px, 0);
578
- transform: translate3d(0, 25px, 0)
579
- }
580
- 75% {
581
- -webkit-transform: translate3d(0, -10px, 0);
582
- transform: translate3d(0, -10px, 0)
583
- }
584
- 90% {
585
- -webkit-transform: translate3d(0, 5px, 0);
586
- transform: translate3d(0, 5px, 0)
587
- }
588
- to {
589
- -webkit-transform: none;
590
- transform: none
591
- }
592
- }
593
- .bounceInDown {
594
- -webkit-animation-name: bounceInDown;
595
- animation-name: bounceInDown
596
- }
597
- @-webkit-keyframes bounceInLeft {
598
- 60%, 75%, 90%, from, to {
599
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
600
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
601
- }
602
- 0% {
603
- opacity: 0;
604
- -webkit-transform: translate3d(-3000px, 0, 0);
605
- transform: translate3d(-3000px, 0, 0)
606
- }
607
- 60% {
608
- opacity: 1;
609
- -webkit-transform: translate3d(25px, 0, 0);
610
- transform: translate3d(25px, 0, 0)
611
- }
612
- 75% {
613
- -webkit-transform: translate3d(-10px, 0, 0);
614
- transform: translate3d(-10px, 0, 0)
615
- }
616
- 90% {
617
- -webkit-transform: translate3d(5px, 0, 0);
618
- transform: translate3d(5px, 0, 0)
619
- }
620
- to {
621
- -webkit-transform: none;
622
- transform: none
623
- }
624
- }
625
- @keyframes bounceInLeft {
626
- 60%, 75%, 90%, from, to {
627
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
628
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
629
- }
630
- 0% {
631
- opacity: 0;
632
- -webkit-transform: translate3d(-3000px, 0, 0);
633
- transform: translate3d(-3000px, 0, 0)
634
- }
635
- 60% {
636
- opacity: 1;
637
- -webkit-transform: translate3d(25px, 0, 0);
638
- transform: translate3d(25px, 0, 0)
639
- }
640
- 75% {
641
- -webkit-transform: translate3d(-10px, 0, 0);
642
- transform: translate3d(-10px, 0, 0)
643
- }
644
- 90% {
645
- -webkit-transform: translate3d(5px, 0, 0);
646
- transform: translate3d(5px, 0, 0)
647
- }
648
- to {
649
- -webkit-transform: none;
650
- transform: none
651
- }
652
- }
653
- .bounceInLeft {
654
- -webkit-animation-name: bounceInLeft;
655
- animation-name: bounceInLeft
656
- }
657
- @-webkit-keyframes bounceInRight {
658
- 60%, 75%, 90%, from, to {
659
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
660
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
661
- }
662
- from {
663
- opacity: 0;
664
- -webkit-transform: translate3d(3000px, 0, 0);
665
- transform: translate3d(3000px, 0, 0)
666
- }
667
- 60% {
668
- opacity: 1;
669
- -webkit-transform: translate3d(-25px, 0, 0);
670
- transform: translate3d(-25px, 0, 0)
671
- }
672
- 75% {
673
- -webkit-transform: translate3d(10px, 0, 0);
674
- transform: translate3d(10px, 0, 0)
675
- }
676
- 90% {
677
- -webkit-transform: translate3d(-5px, 0, 0);
678
- transform: translate3d(-5px, 0, 0)
679
- }
680
- to {
681
- -webkit-transform: none;
682
- transform: none
683
- }
684
- }
685
- @keyframes bounceInRight {
686
- 60%, 75%, 90%, from, to {
687
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
688
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
689
- }
690
- from {
691
- opacity: 0;
692
- -webkit-transform: translate3d(3000px, 0, 0);
693
- transform: translate3d(3000px, 0, 0)
694
- }
695
- 60% {
696
- opacity: 1;
697
- -webkit-transform: translate3d(-25px, 0, 0);
698
- transform: translate3d(-25px, 0, 0)
699
- }
700
- 75% {
701
- -webkit-transform: translate3d(10px, 0, 0);
702
- transform: translate3d(10px, 0, 0)
703
- }
704
- 90% {
705
- -webkit-transform: translate3d(-5px, 0, 0);
706
- transform: translate3d(-5px, 0, 0)
707
- }
708
- to {
709
- -webkit-transform: none;
710
- transform: none
711
- }
712
- }
713
- .bounceInRight {
714
- -webkit-animation-name: bounceInRight;
715
- animation-name: bounceInRight
716
- }
717
- @-webkit-keyframes bounceInUp {
718
- 60%, 75%, 90%, from, to {
719
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
720
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
721
- }
722
- from {
723
- opacity: 0;
724
- -webkit-transform: translate3d(0, 3000px, 0);
725
- transform: translate3d(0, 3000px, 0)
726
- }
727
- 60% {
728
- opacity: 1;
729
- -webkit-transform: translate3d(0, -20px, 0);
730
- transform: translate3d(0, -20px, 0)
731
- }
732
- 75% {
733
- -webkit-transform: translate3d(0, 10px, 0);
734
- transform: translate3d(0, 10px, 0)
735
- }
736
- 90% {
737
- -webkit-transform: translate3d(0, -5px, 0);
738
- transform: translate3d(0, -5px, 0)
739
- }
740
- to {
741
- -webkit-transform: translate3d(0, 0, 0);
742
- transform: translate3d(0, 0, 0)
743
- }
744
- }
745
- @keyframes bounceInUp {
746
- 60%, 75%, 90%, from, to {
747
- -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
748
- animation-timing-function: cubic-bezier(.215, .61, .355, 1)
749
- }
750
- from {
751
- opacity: 0;
752
- -webkit-transform: translate3d(0, 3000px, 0);
753
- transform: translate3d(0, 3000px, 0)
754
- }
755
- 60% {
756
- opacity: 1;
757
- -webkit-transform: translate3d(0, -20px, 0);
758
- transform: translate3d(0, -20px, 0)
759
- }
760
- 75% {
761
- -webkit-transform: translate3d(0, 10px, 0);
762
- transform: translate3d(0, 10px, 0)
763
- }
764
- 90% {
765
- -webkit-transform: translate3d(0, -5px, 0);
766
- transform: translate3d(0, -5px, 0)
767
- }
768
- to {
769
- -webkit-transform: translate3d(0, 0, 0);
770
- transform: translate3d(0, 0, 0)
771
- }
772
- }
773
- .bounceInUp {
774
- -webkit-animation-name: bounceInUp;
775
- animation-name: bounceInUp
776
- }
777
- @-webkit-keyframes bounceOut {
778
- 20% {
779
- -webkit-transform: scale3d(.9, .9, .9);
780
- transform: scale3d(.9, .9, .9)
781
- }
782
- 50%,
783
- 55% {
784
- opacity: 1;
785
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
786
- transform: scale3d(1.1, 1.1, 1.1)
787
- }
788
- to {
789
- opacity: 0;
790
- -webkit-transform: scale3d(.3, .3, .3);
791
- transform: scale3d(.3, .3, .3)
792
- }
793
- }
794
- @keyframes bounceOut {
795
- 20% {
796
- -webkit-transform: scale3d(.9, .9, .9);
797
- transform: scale3d(.9, .9, .9)
798
- }
799
- 50%,
800
- 55% {
801
- opacity: 1;
802
- -webkit-transform: scale3d(1.1, 1.1, 1.1);
803
- transform: scale3d(1.1, 1.1, 1.1)
804
- }
805
- to {
806
- opacity: 0;
807
- -webkit-transform: scale3d(.3, .3, .3);
808
- transform: scale3d(.3, .3, .3)
809
- }
810
- }
811
- .bounceOut {
812
- -webkit-animation-name: bounceOut;
813
- animation-name: bounceOut
814
- }
815
- @-webkit-keyframes bounceOutDown {
816
- 20% {
817
- -webkit-transform: translate3d(0, 10px, 0);
818
- transform: translate3d(0, 10px, 0)
819
- }
820
- 40%,
821
- 45% {
822
- opacity: 1;
823
- -webkit-transform: translate3d(0, -20px, 0);
824
- transform: translate3d(0, -20px, 0)
825
- }
826
- to {
827
- opacity: 0;
828
- -webkit-transform: translate3d(0, 2000px, 0);
829
- transform: translate3d(0, 2000px, 0)
830
- }
831
- }
832
- @keyframes bounceOutDown {
833
- 20% {
834
- -webkit-transform: translate3d(0, 10px, 0);
835
- transform: translate3d(0, 10px, 0)
836
- }
837
- 40%,
838
- 45% {
839
- opacity: 1;
840
- -webkit-transform: translate3d(0, -20px, 0);
841
- transform: translate3d(0, -20px, 0)
842
- }
843
- to {
844
- opacity: 0;
845
- -webkit-transform: translate3d(0, 2000px, 0);
846
- transform: translate3d(0, 2000px, 0)
847
- }
848
- }
849
- .bounceOutDown {
850
- -webkit-animation-name: bounceOutDown;
851
- animation-name: bounceOutDown
852
- }
853
- @-webkit-keyframes bounceOutLeft {
854
- 20% {
855
- opacity: 1;
856
- -webkit-transform: translate3d(20px, 0, 0);
857
- transform: translate3d(20px, 0, 0)
858
- }
859
- to {
860
- opacity: 0;
861
- -webkit-transform: translate3d(-2000px, 0, 0);
862
- transform: translate3d(-2000px, 0, 0)
863
- }
864
- }
865
- @keyframes bounceOutLeft {
866
- 20% {
867
- opacity: 1;
868
- -webkit-transform: translate3d(20px, 0, 0);
869
- transform: translate3d(20px, 0, 0)
870
- }
871
- to {
872
- opacity: 0;
873
- -webkit-transform: translate3d(-2000px, 0, 0);
874
- transform: translate3d(-2000px, 0, 0)
875
- }
876
- }
877
- .bounceOutLeft {
878
- -webkit-animation-name: bounceOutLeft;
879
- animation-name: bounceOutLeft
880
- }
881
- @-webkit-keyframes bounceOutRight {
882
- 20% {
883
- opacity: 1;
884
- -webkit-transform: translate3d(-20px, 0, 0);
885
- transform: translate3d(-20px, 0, 0)
886
- }
887
- to {
888
- opacity: 0;
889
- -webkit-transform: translate3d(2000px, 0, 0);
890
- transform: translate3d(2000px, 0, 0)
891
- }
892
- }
893
- @keyframes bounceOutRight {
894
- 20% {
895
- opacity: 1;
896
- -webkit-transform: translate3d(-20px, 0, 0);
897
- transform: translate3d(-20px, 0, 0)
898
- }
899
- to {
900
- opacity: 0;
901
- -webkit-transform: translate3d(2000px, 0, 0);
902
- transform: translate3d(2000px, 0, 0)
903
- }
904
- }
905
- .bounceOutRight {
906
- -webkit-animation-name: bounceOutRight;
907
- animation-name: bounceOutRight
908
- }
909
- @-webkit-keyframes bounceOutUp {
910
- 20% {
911
- -webkit-transform: translate3d(0, -10px, 0);
912
- transform: translate3d(0, -10px, 0)
913
- }
914
- 40%,
915
- 45% {
916
- opacity: 1;
917
- -webkit-transform: translate3d(0, 20px, 0);
918
- transform: translate3d(0, 20px, 0)
919
- }
920
- to {
921
- opacity: 0;
922
- -webkit-transform: translate3d(0, -2000px, 0);
923
- transform: translate3d(0, -2000px, 0)
924
- }
925
- }
926
- @keyframes bounceOutUp {
927
- 20% {
928
- -webkit-transform: translate3d(0, -10px, 0);
929
- transform: translate3d(0, -10px, 0)
930
- }
931
- 40%,
932
- 45% {
933
- opacity: 1;
934
- -webkit-transform: translate3d(0, 20px, 0);
935
- transform: translate3d(0, 20px, 0)
936
- }
937
- to {
938
- opacity: 0;
939
- -webkit-transform: translate3d(0, -2000px, 0);
940
- transform: translate3d(0, -2000px, 0)
941
- }
942
- }
943
- .bounceOutUp {
944
- -webkit-animation-name: bounceOutUp;
945
- animation-name: bounceOutUp
946
- }
947
- @-webkit-keyframes fadeIn {
948
- from {
949
- opacity: 0
950
- }
951
- to {
952
- opacity: 1
953
- }
954
- }
955
- @keyframes fadeIn {
956
- from {
957
- opacity: 0
958
- }
959
- to {
960
- opacity: 1
961
- }
962
- }
963
- .fadeIn {
964
- -webkit-animation-name: fadeIn;
965
- animation-name: fadeIn
966
- }
967
- @-webkit-keyframes fadeInDown {
968
- from {
969
- opacity: 0;
970
- -webkit-transform: translate3d(0, -100%, 0);
971
- transform: translate3d(0, -100%, 0)
972
- }
973
- to {
974
- opacity: 1;
975
- -webkit-transform: none;
976
- transform: none
977
- }
978
- }
979
- @keyframes fadeInDown {
980
- from {
981
- opacity: 0;
982
- -webkit-transform: translate3d(0, -100%, 0);
983
- transform: translate3d(0, -100%, 0)
984
- }
985
- to {
986
- opacity: 1;
987
- -webkit-transform: none;
988
- transform: none
989
- }
990
- }
991
- .fadeInDown {
992
- -webkit-animation-name: fadeInDown;
993
- animation-name: fadeInDown
994
- }
995
- @-webkit-keyframes fadeInDownBig {
996
- from {
997
- opacity: 0;
998
- -webkit-transform: translate3d(0, -2000px, 0);
999
- transform: translate3d(0, -2000px, 0)
1000
- }
1001
- to {
1002
- opacity: 1;
1003
- -webkit-transform: none;
1004
- transform: none
1005
- }
1006
- }
1007
- @keyframes fadeInDownBig {
1008
- from {
1009
- opacity: 0;
1010
- -webkit-transform: translate3d(0, -2000px, 0);
1011
- transform: translate3d(0, -2000px, 0)
1012
- }
1013
- to {
1014
- opacity: 1;
1015
- -webkit-transform: none;
1016
- transform: none
1017
- }
1018
- }
1019
- .fadeInDownBig {
1020
- -webkit-animation-name: fadeInDownBig;
1021
- animation-name: fadeInDownBig
1022
- }
1023
- @-webkit-keyframes fadeInLeft {
1024
- from {
1025
- opacity: 0;
1026
- -webkit-transform: translate3d(-100%, 0, 0);
1027
- transform: translate3d(-100%, 0, 0)
1028
- }
1029
- to {
1030
- opacity: 1;
1031
- -webkit-transform: none;
1032
- transform: none
1033
- }
1034
- }
1035
- @keyframes fadeInLeft {
1036
- from {
1037
- opacity: 0;
1038
- -webkit-transform: translate3d(-100%, 0, 0);
1039
- transform: translate3d(-100%, 0, 0)
1040
- }
1041
- to {
1042
- opacity: 1;
1043
- -webkit-transform: none;
1044
- transform: none
1045
- }
1046
- }
1047
- .fadeInLeft {
1048
- -webkit-animation-name: fadeInLeft;
1049
- animation-name: fadeInLeft
1050
- }
1051
- @-webkit-keyframes fadeInLeftBig {
1052
- from {
1053
- opacity: 0;
1054
- -webkit-transform: translate3d(-2000px, 0, 0);
1055
- transform: translate3d(-2000px, 0, 0)
1056
- }
1057
- to {
1058
- opacity: 1;
1059
- -webkit-transform: none;
1060
- transform: none
1061
- }
1062
- }
1063
- @keyframes fadeInLeftBig {
1064
- from {
1065
- opacity: 0;
1066
- -webkit-transform: translate3d(-2000px, 0, 0);
1067
- transform: translate3d(-2000px, 0, 0)
1068
- }
1069
- to {
1070
- opacity: 1;
1071
- -webkit-transform: none;
1072
- transform: none
1073
- }
1074
- }
1075
- .fadeInLeftBig {
1076
- -webkit-animation-name: fadeInLeftBig;
1077
- animation-name: fadeInLeftBig
1078
- }
1079
- @-webkit-keyframes fadeInRight {
1080
- from {
1081
- opacity: 0;
1082
- -webkit-transform: translate3d(100%, 0, 0);
1083
- transform: translate3d(100%, 0, 0)
1084
- }
1085
- to {
1086
- opacity: 1;
1087
- -webkit-transform: none;
1088
- transform: none
1089
- }
1090
- }
1091
- @keyframes fadeInRight {
1092
- from {
1093
- opacity: 0;
1094
- -webkit-transform: translate3d(100%, 0, 0);
1095
- transform: translate3d(100%, 0, 0)
1096
- }
1097
- to {
1098
- opacity: 1;
1099
- -webkit-transform: none;
1100
- transform: none
1101
- }
1102
- }
1103
- .fadeInRight {
1104
- -webkit-animation-name: fadeInRight;
1105
- animation-name: fadeInRight
1106
- }
1107
- @-webkit-keyframes fadeInRightBig {
1108
- from {
1109
- opacity: 0;
1110
- -webkit-transform: translate3d(2000px, 0, 0);
1111
- transform: translate3d(2000px, 0, 0)
1112
- }
1113
- to {
1114
- opacity: 1;
1115
- -webkit-transform: none;
1116
- transform: none
1117
- }
1118
- }
1119
- @keyframes fadeInRightBig {
1120
- from {
1121
- opacity: 0;
1122
- -webkit-transform: translate3d(2000px, 0, 0);
1123
- transform: translate3d(2000px, 0, 0)
1124
- }
1125
- to {
1126
- opacity: 1;
1127
- -webkit-transform: none;
1128
- transform: none
1129
- }
1130
- }
1131
- .fadeInRightBig {
1132
- -webkit-animation-name: fadeInRightBig;
1133
- animation-name: fadeInRightBig
1134
- }
1135
- @-webkit-keyframes fadeInUp {
1136
- from {
1137
- opacity: 0;
1138
- -webkit-transform: translate3d(0, 100%, 0);
1139
- transform: translate3d(0, 100%, 0)
1140
- }
1141
- to {
1142
- opacity: 1;
1143
- -webkit-transform: none;
1144
- transform: none
1145
- }
1146
- }
1147
- @keyframes fadeInUp {
1148
- from {
1149
- opacity: 0;
1150
- -webkit-transform: translate3d(0, 100%, 0);
1151
- transform: translate3d(0, 100%, 0)
1152
- }
1153
- to {
1154
- opacity: 1;
1155
- -webkit-transform: none;
1156
- transform: none
1157
- }
1158
- }
1159
- .fadeInUp {
1160
- -webkit-animation-name: fadeInUp;
1161
- animation-name: fadeInUp
1162
- }
1163
- @-webkit-keyframes fadeInUpBig {
1164
- from {
1165
- opacity: 0;
1166
- -webkit-transform: translate3d(0, 2000px, 0);
1167
- transform: translate3d(0, 2000px, 0)
1168
- }
1169
- to {
1170
- opacity: 1;
1171
- -webkit-transform: none;
1172
- transform: none
1173
- }
1174
- }
1175
- @keyframes fadeInUpBig {
1176
- from {
1177
- opacity: 0;
1178
- -webkit-transform: translate3d(0, 2000px, 0);
1179
- transform: translate3d(0, 2000px, 0)
1180
- }
1181
- to {
1182
- opacity: 1;
1183
- -webkit-transform: none;
1184
- transform: none
1185
- }
1186
- }
1187
- .fadeInUpBig {
1188
- -webkit-animation-name: fadeInUpBig;
1189
- animation-name: fadeInUpBig
1190
- }
1191
- @-webkit-keyframes fadeOut {
1192
- from {
1193
- opacity: 1
1194
- }
1195
- to {
1196
- opacity: 0
1197
- }
1198
- }
1199
- @keyframes fadeOut {
1200
- from {
1201
- opacity: 1
1202
- }
1203
- to {
1204
- opacity: 0
1205
- }
1206
- }
1207
- .fadeOut {
1208
- -webkit-animation-name: fadeOut;
1209
- animation-name: fadeOut
1210
- }
1211
- @-webkit-keyframes fadeOutDown {
1212
- from {
1213
- opacity: 1
1214
- }
1215
- to {
1216
- opacity: 0;
1217
- -webkit-transform: translate3d(0, 100%, 0);
1218
- transform: translate3d(0, 100%, 0)
1219
- }
1220
- }
1221
- @keyframes fadeOutDown {
1222
- from {
1223
- opacity: 1
1224
- }
1225
- to {
1226
- opacity: 0;
1227
- -webkit-transform: translate3d(0, 100%, 0);
1228
- transform: translate3d(0, 100%, 0)
1229
- }
1230
- }
1231
- .fadeOutDown {
1232
- -webkit-animation-name: fadeOutDown;
1233
- animation-name: fadeOutDown
1234
- }
1235
- @-webkit-keyframes fadeOutDownBig {
1236
- from {
1237
- opacity: 1
1238
- }
1239
- to {
1240
- opacity: 0;
1241
- -webkit-transform: translate3d(0, 2000px, 0);
1242
- transform: translate3d(0, 2000px, 0)
1243
- }
1244
- }
1245
- @keyframes fadeOutDownBig {
1246
- from {
1247
- opacity: 1
1248
- }
1249
- to {
1250
- opacity: 0;
1251
- -webkit-transform: translate3d(0, 2000px, 0);
1252
- transform: translate3d(0, 2000px, 0)
1253
- }
1254
- }
1255
- .fadeOutDownBig {
1256
- -webkit-animation-name: fadeOutDownBig;
1257
- animation-name: fadeOutDownBig
1258
- }
1259
- @-webkit-keyframes fadeOutLeft {
1260
- from {
1261
- opacity: 1
1262
- }
1263
- to {
1264
- opacity: 0;
1265
- -webkit-transform: translate3d(-100%, 0, 0);
1266
- transform: translate3d(-100%, 0, 0)
1267
- }
1268
- }
1269
- @keyframes fadeOutLeft {
1270
- from {
1271
- opacity: 1
1272
- }
1273
- to {
1274
- opacity: 0;
1275
- -webkit-transform: translate3d(-100%, 0, 0);
1276
- transform: translate3d(-100%, 0, 0)
1277
- }
1278
- }
1279
- .fadeOutLeft {
1280
- -webkit-animation-name: fadeOutLeft;
1281
- animation-name: fadeOutLeft
1282
- }
1283
- @-webkit-keyframes fadeOutLeftBig {
1284
- from {
1285
- opacity: 1
1286
- }
1287
- to {
1288
- opacity: 0;
1289
- -webkit-transform: translate3d(-2000px, 0, 0);
1290
- transform: translate3d(-2000px, 0, 0)
1291
- }
1292
- }
1293
- @keyframes fadeOutLeftBig {
1294
- from {
1295
- opacity: 1
1296
- }
1297
- to {
1298
- opacity: 0;
1299
- -webkit-transform: translate3d(-2000px, 0, 0);
1300
- transform: translate3d(-2000px, 0, 0)
1301
- }
1302
- }
1303
- .fadeOutLeftBig {
1304
- -webkit-animation-name: fadeOutLeftBig;
1305
- animation-name: fadeOutLeftBig
1306
- }
1307
- @-webkit-keyframes fadeOutRight {
1308
- from {
1309
- opacity: 1
1310
- }
1311
- to {
1312
- opacity: 0;
1313
- -webkit-transform: translate3d(100%, 0, 0);
1314
- transform: translate3d(100%, 0, 0)
1315
- }
1316
- }
1317
- @keyframes fadeOutRight {
1318
- from {
1319
- opacity: 1
1320
- }
1321
- to {
1322
- opacity: 0;
1323
- -webkit-transform: translate3d(100%, 0, 0);
1324
- transform: translate3d(100%, 0, 0)
1325
- }
1326
- }
1327
- .fadeOutRight {
1328
- -webkit-animation-name: fadeOutRight;
1329
- animation-name: fadeOutRight
1330
- }
1331
- @-webkit-keyframes fadeOutRightBig {
1332
- from {
1333
- opacity: 1
1334
- }
1335
- to {
1336
- opacity: 0;
1337
- -webkit-transform: translate3d(2000px, 0, 0);
1338
- transform: translate3d(2000px, 0, 0)
1339
- }
1340
- }
1341
- @keyframes fadeOutRightBig {
1342
- from {
1343
- opacity: 1
1344
- }
1345
- to {
1346
- opacity: 0;
1347
- -webkit-transform: translate3d(2000px, 0, 0);
1348
- transform: translate3d(2000px, 0, 0)
1349
- }
1350
- }
1351
- .fadeOutRightBig {
1352
- -webkit-animation-name: fadeOutRightBig;
1353
- animation-name: fadeOutRightBig
1354
- }
1355
- @-webkit-keyframes fadeOutUp {
1356
- from {
1357
- opacity: 1
1358
- }
1359
- to {
1360
- opacity: 0;
1361
- -webkit-transform: translate3d(0, -100%, 0);
1362
- transform: translate3d(0, -100%, 0)
1363
- }
1364
- }
1365
- @keyframes fadeOutUp {
1366
- from {
1367
- opacity: 1
1368
- }
1369
- to {
1370
- opacity: 0;
1371
- -webkit-transform: translate3d(0, -100%, 0);
1372
- transform: translate3d(0, -100%, 0)
1373
- }
1374
- }
1375
- .fadeOutUp {
1376
- -webkit-animation-name: fadeOutUp;
1377
- animation-name: fadeOutUp
1378
- }
1379
- @-webkit-keyframes fadeOutUpBig {
1380
- from {
1381
- opacity: 1
1382
- }
1383
- to {
1384
- opacity: 0;
1385
- -webkit-transform: translate3d(0, -2000px, 0);
1386
- transform: translate3d(0, -2000px, 0)
1387
- }
1388
- }
1389
- @keyframes fadeOutUpBig {
1390
- from {
1391
- opacity: 1
1392
- }
1393
- to {
1394
- opacity: 0;
1395
- -webkit-transform: translate3d(0, -2000px, 0);
1396
- transform: translate3d(0, -2000px, 0)
1397
- }
1398
- }
1399
- .fadeOutUpBig {
1400
- -webkit-animation-name: fadeOutUpBig;
1401
- animation-name: fadeOutUpBig
1402
- }
1403
- @-webkit-keyframes flip {
1404
- from {
1405
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1406
- transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1407
- -webkit-animation-timing-function: ease-out;
1408
- animation-timing-function: ease-out
1409
- }
1410
- 40% {
1411
- -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1412
- transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1413
- -webkit-animation-timing-function: ease-out;
1414
- animation-timing-function: ease-out
1415
- }
1416
- 50% {
1417
- -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1418
- transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1419
- -webkit-animation-timing-function: ease-in;
1420
- animation-timing-function: ease-in
1421
- }
1422
- 80% {
1423
- -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1424
- transform: perspective(400px) scale3d(.95, .95, .95);
1425
- -webkit-animation-timing-function: ease-in;
1426
- animation-timing-function: ease-in
1427
- }
1428
- to {
1429
- -webkit-transform: perspective(400px);
1430
- transform: perspective(400px);
1431
- -webkit-animation-timing-function: ease-in;
1432
- animation-timing-function: ease-in
1433
- }
1434
- }
1435
- @keyframes flip {
1436
- from {
1437
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1438
- transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1439
- -webkit-animation-timing-function: ease-out;
1440
- animation-timing-function: ease-out
1441
- }
1442
- 40% {
1443
- -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1444
- transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1445
- -webkit-animation-timing-function: ease-out;
1446
- animation-timing-function: ease-out
1447
- }
1448
- 50% {
1449
- -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1450
- transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1451
- -webkit-animation-timing-function: ease-in;
1452
- animation-timing-function: ease-in
1453
- }
1454
- 80% {
1455
- -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1456
- transform: perspective(400px) scale3d(.95, .95, .95);
1457
- -webkit-animation-timing-function: ease-in;
1458
- animation-timing-function: ease-in
1459
- }
1460
- to {
1461
- -webkit-transform: perspective(400px);
1462
- transform: perspective(400px);
1463
- -webkit-animation-timing-function: ease-in;
1464
- animation-timing-function: ease-in
1465
- }
1466
- }
1467
- .sg-animated.flip {
1468
- -webkit-backface-visibility: visible;
1469
- backface-visibility: visible;
1470
- -webkit-animation-name: flip;
1471
- animation-name: flip
1472
- }
1473
- @-webkit-keyframes flipInX {
1474
- from {
1475
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1476
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1477
- -webkit-animation-timing-function: ease-in;
1478
- animation-timing-function: ease-in;
1479
- opacity: 0
1480
- }
1481
- 40% {
1482
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1483
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1484
- -webkit-animation-timing-function: ease-in;
1485
- animation-timing-function: ease-in
1486
- }
1487
- 60% {
1488
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1489
- transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1490
- opacity: 1
1491
- }
1492
- 80% {
1493
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1494
- transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1495
- }
1496
- to {
1497
- -webkit-transform: perspective(400px);
1498
- transform: perspective(400px)
1499
- }
1500
- }
1501
- @keyframes flipInX {
1502
- from {
1503
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1504
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1505
- -webkit-animation-timing-function: ease-in;
1506
- animation-timing-function: ease-in;
1507
- opacity: 0
1508
- }
1509
- 40% {
1510
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1511
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1512
- -webkit-animation-timing-function: ease-in;
1513
- animation-timing-function: ease-in
1514
- }
1515
- 60% {
1516
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1517
- transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1518
- opacity: 1
1519
- }
1520
- 80% {
1521
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1522
- transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1523
- }
1524
- to {
1525
- -webkit-transform: perspective(400px);
1526
- transform: perspective(400px)
1527
- }
1528
- }
1529
- .flipInX {
1530
- backface-visibility: visible!important;
1531
- -webkit-animation-name: flipInX;
1532
- animation-name: flipInX
1533
- }
1534
- .flipInX,
1535
- .flipInY {
1536
- -webkit-backface-visibility: visible!important
1537
- }
1538
- @-webkit-keyframes flipInY {
1539
- from {
1540
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1541
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1542
- -webkit-animation-timing-function: ease-in;
1543
- animation-timing-function: ease-in;
1544
- opacity: 0
1545
- }
1546
- 40% {
1547
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1548
- transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1549
- -webkit-animation-timing-function: ease-in;
1550
- animation-timing-function: ease-in
1551
- }
1552
- 60% {
1553
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1554
- transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1555
- opacity: 1
1556
- }
1557
- 80% {
1558
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1559
- transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
1560
- }
1561
- to {
1562
- -webkit-transform: perspective(400px);
1563
- transform: perspective(400px)
1564
- }
1565
- }
1566
- @keyframes flipInY {
1567
- from {
1568
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1569
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1570
- -webkit-animation-timing-function: ease-in;
1571
- animation-timing-function: ease-in;
1572
- opacity: 0
1573
- }
1574
- 40% {
1575
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1576
- transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1577
- -webkit-animation-timing-function: ease-in;
1578
- animation-timing-function: ease-in
1579
- }
1580
- 60% {
1581
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1582
- transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1583
- opacity: 1
1584
- }
1585
- 80% {
1586
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1587
- transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
1588
- }
1589
- to {
1590
- -webkit-transform: perspective(400px);
1591
- transform: perspective(400px)
1592
- }
1593
- }
1594
- .flipInY {
1595
- backface-visibility: visible!important;
1596
- -webkit-animation-name: flipInY;
1597
- animation-name: flipInY
1598
- }
1599
- @-webkit-keyframes flipOutX {
1600
- from {
1601
- -webkit-transform: perspective(400px);
1602
- transform: perspective(400px)
1603
- }
1604
- 30% {
1605
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1606
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1607
- opacity: 1
1608
- }
1609
- to {
1610
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1611
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1612
- opacity: 0
1613
- }
1614
- }
1615
- @keyframes flipOutX {
1616
- from {
1617
- -webkit-transform: perspective(400px);
1618
- transform: perspective(400px)
1619
- }
1620
- 30% {
1621
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1622
- transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1623
- opacity: 1
1624
- }
1625
- to {
1626
- -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1627
- transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1628
- opacity: 0
1629
- }
1630
- }
1631
- .flipOutX {
1632
- -webkit-animation-name: flipOutX;
1633
- animation-name: flipOutX;
1634
- backface-visibility: visible!important
1635
- }
1636
- .flipOutX,
1637
- .flipOutY {
1638
- -webkit-backface-visibility: visible!important
1639
- }
1640
- @-webkit-keyframes flipOutY {
1641
- from {
1642
- -webkit-transform: perspective(400px);
1643
- transform: perspective(400px)
1644
- }
1645
- 30% {
1646
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1647
- transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1648
- opacity: 1
1649
- }
1650
- to {
1651
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1652
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1653
- opacity: 0
1654
- }
1655
- }
1656
- @keyframes flipOutY {
1657
- from {
1658
- -webkit-transform: perspective(400px);
1659
- transform: perspective(400px)
1660
- }
1661
- 30% {
1662
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1663
- transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1664
- opacity: 1
1665
- }
1666
- to {
1667
- -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1668
- transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1669
- opacity: 0
1670
- }
1671
- }
1672
- .flipOutY {
1673
- backface-visibility: visible!important;
1674
- -webkit-animation-name: flipOutY;
1675
- animation-name: flipOutY
1676
- }
1677
- @-webkit-keyframes lightSpeedIn {
1678
- from {
1679
- -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1680
- transform: translate3d(100%, 0, 0) skewX(-30deg);
1681
- opacity: 0
1682
- }
1683
- 60% {
1684
- -webkit-transform: skewX(20deg);
1685
- transform: skewX(20deg);
1686
- opacity: 1
1687
- }
1688
- 80% {
1689
- -webkit-transform: skewX(-5deg);
1690
- transform: skewX(-5deg);
1691
- opacity: 1
1692
- }
1693
- to {
1694
- -webkit-transform: none;
1695
- transform: none;
1696
- opacity: 1
1697
- }
1698
- }
1699
- @keyframes lightSpeedIn {
1700
- from {
1701
- -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1702
- transform: translate3d(100%, 0, 0) skewX(-30deg);
1703
- opacity: 0
1704
- }
1705
- 60% {
1706
- -webkit-transform: skewX(20deg);
1707
- transform: skewX(20deg);
1708
- opacity: 1
1709
- }
1710
- 80% {
1711
- -webkit-transform: skewX(-5deg);
1712
- transform: skewX(-5deg);
1713
- opacity: 1
1714
- }
1715
- to {
1716
- -webkit-transform: none;
1717
- transform: none;
1718
- opacity: 1
1719
- }
1720
- }
1721
- .lightSpeedIn {
1722
- -webkit-animation-name: lightSpeedIn;
1723
- animation-name: lightSpeedIn;
1724
- -webkit-animation-timing-function: ease-out;
1725
- animation-timing-function: ease-out
1726
- }
1727
- @-webkit-keyframes lightSpeedOut {
1728
- from {
1729
- opacity: 1
1730
- }
1731
- to {
1732
- -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1733
- transform: translate3d(100%, 0, 0) skewX(30deg);
1734
- opacity: 0
1735
- }
1736
- }
1737
- @keyframes lightSpeedOut {
1738
- from {
1739
- opacity: 1
1740
- }
1741
- to {
1742
- -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1743
- transform: translate3d(100%, 0, 0) skewX(30deg);
1744
- opacity: 0
1745
- }
1746
- }
1747
- .lightSpeedOut {
1748
- -webkit-animation-name: lightSpeedOut;
1749
- animation-name: lightSpeedOut;
1750
- -webkit-animation-timing-function: ease-in;
1751
- animation-timing-function: ease-in
1752
- }
1753
- @-webkit-keyframes rotateIn {
1754
- from {
1755
- -webkit-transform-origin: center;
1756
- transform-origin: center;
1757
- -webkit-transform: rotate3d(0, 0, 1, -200deg);
1758
- transform: rotate3d(0, 0, 1, -200deg);
1759
- opacity: 0
1760
- }
1761
- to {
1762
- -webkit-transform-origin: center;
1763
- transform-origin: center;
1764
- -webkit-transform: none;
1765
- transform: none;
1766
- opacity: 1
1767
- }
1768
- }
1769
- @keyframes rotateIn {
1770
- from {
1771
- -webkit-transform-origin: center;
1772
- transform-origin: center;
1773
- -webkit-transform: rotate3d(0, 0, 1, -200deg);
1774
- transform: rotate3d(0, 0, 1, -200deg);
1775
- opacity: 0
1776
- }
1777
- to {
1778
- -webkit-transform-origin: center;
1779
- transform-origin: center;
1780
- -webkit-transform: none;
1781
- transform: none;
1782
- opacity: 1
1783
- }
1784
- }
1785
- .rotateIn {
1786
- -webkit-animation-name: rotateIn;
1787
- animation-name: rotateIn
1788
- }
1789
- @-webkit-keyframes rotateInDownLeft {
1790
- from {
1791
- -webkit-transform-origin: left bottom;
1792
- transform-origin: left bottom;
1793
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
1794
- transform: rotate3d(0, 0, 1, -45deg);
1795
- opacity: 0
1796
- }
1797
- to {
1798
- -webkit-transform-origin: left bottom;
1799
- transform-origin: left bottom;
1800
- -webkit-transform: none;
1801
- transform: none;
1802
- opacity: 1
1803
- }
1804
- }
1805
- @keyframes rotateInDownLeft {
1806
- from {
1807
- -webkit-transform-origin: left bottom;
1808
- transform-origin: left bottom;
1809
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
1810
- transform: rotate3d(0, 0, 1, -45deg);
1811
- opacity: 0
1812
- }
1813
- to {
1814
- -webkit-transform-origin: left bottom;
1815
- transform-origin: left bottom;
1816
- -webkit-transform: none;
1817
- transform: none;
1818
- opacity: 1
1819
- }
1820
- }
1821
- .rotateInDownLeft {
1822
- -webkit-animation-name: rotateInDownLeft;
1823
- animation-name: rotateInDownLeft
1824
- }
1825
- @-webkit-keyframes rotateInDownRight {
1826
- from {
1827
- -webkit-transform-origin: right bottom;
1828
- transform-origin: right bottom;
1829
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1830
- transform: rotate3d(0, 0, 1, 45deg);
1831
- opacity: 0
1832
- }
1833
- to {
1834
- -webkit-transform-origin: right bottom;
1835
- transform-origin: right bottom;
1836
- -webkit-transform: none;
1837
- transform: none;
1838
- opacity: 1
1839
- }
1840
- }
1841
- @keyframes rotateInDownRight {
1842
- from {
1843
- -webkit-transform-origin: right bottom;
1844
- transform-origin: right bottom;
1845
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1846
- transform: rotate3d(0, 0, 1, 45deg);
1847
- opacity: 0
1848
- }
1849
- to {
1850
- -webkit-transform-origin: right bottom;
1851
- transform-origin: right bottom;
1852
- -webkit-transform: none;
1853
- transform: none;
1854
- opacity: 1
1855
- }
1856
- }
1857
- .rotateInDownRight {
1858
- -webkit-animation-name: rotateInDownRight;
1859
- animation-name: rotateInDownRight
1860
- }
1861
- @-webkit-keyframes rotateInUpLeft {
1862
- from {
1863
- -webkit-transform-origin: left bottom;
1864
- transform-origin: left bottom;
1865
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1866
- transform: rotate3d(0, 0, 1, 45deg);
1867
- opacity: 0
1868
- }
1869
- to {
1870
- -webkit-transform-origin: left bottom;
1871
- transform-origin: left bottom;
1872
- -webkit-transform: none;
1873
- transform: none;
1874
- opacity: 1
1875
- }
1876
- }
1877
- @keyframes rotateInUpLeft {
1878
- from {
1879
- -webkit-transform-origin: left bottom;
1880
- transform-origin: left bottom;
1881
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1882
- transform: rotate3d(0, 0, 1, 45deg);
1883
- opacity: 0
1884
- }
1885
- to {
1886
- -webkit-transform-origin: left bottom;
1887
- transform-origin: left bottom;
1888
- -webkit-transform: none;
1889
- transform: none;
1890
- opacity: 1
1891
- }
1892
- }
1893
- .rotateInUpLeft {
1894
- -webkit-animation-name: rotateInUpLeft;
1895
- animation-name: rotateInUpLeft
1896
- }
1897
- @-webkit-keyframes rotateInUpRight {
1898
- from {
1899
- -webkit-transform-origin: right bottom;
1900
- transform-origin: right bottom;
1901
- -webkit-transform: rotate3d(0, 0, 1, -90deg);
1902
- transform: rotate3d(0, 0, 1, -90deg);
1903
- opacity: 0
1904
- }
1905
- to {
1906
- -webkit-transform-origin: right bottom;
1907
- transform-origin: right bottom;
1908
- -webkit-transform: none;
1909
- transform: none;
1910
- opacity: 1
1911
- }
1912
- }
1913
- @keyframes rotateInUpRight {
1914
- from {
1915
- -webkit-transform-origin: right bottom;
1916
- transform-origin: right bottom;
1917
- -webkit-transform: rotate3d(0, 0, 1, -90deg);
1918
- transform: rotate3d(0, 0, 1, -90deg);
1919
- opacity: 0
1920
- }
1921
- to {
1922
- -webkit-transform-origin: right bottom;
1923
- transform-origin: right bottom;
1924
- -webkit-transform: none;
1925
- transform: none;
1926
- opacity: 1
1927
- }
1928
- }
1929
- .rotateInUpRight {
1930
- -webkit-animation-name: rotateInUpRight;
1931
- animation-name: rotateInUpRight
1932
- }
1933
- @-webkit-keyframes rotateOut {
1934
- from {
1935
- -webkit-transform-origin: center;
1936
- transform-origin: center;
1937
- opacity: 1
1938
- }
1939
- to {
1940
- -webkit-transform-origin: center;
1941
- transform-origin: center;
1942
- -webkit-transform: rotate3d(0, 0, 1, 200deg);
1943
- transform: rotate3d(0, 0, 1, 200deg);
1944
- opacity: 0
1945
- }
1946
- }
1947
- @keyframes rotateOut {
1948
- from {
1949
- -webkit-transform-origin: center;
1950
- transform-origin: center;
1951
- opacity: 1
1952
- }
1953
- to {
1954
- -webkit-transform-origin: center;
1955
- transform-origin: center;
1956
- -webkit-transform: rotate3d(0, 0, 1, 200deg);
1957
- transform: rotate3d(0, 0, 1, 200deg);
1958
- opacity: 0
1959
- }
1960
- }
1961
- .rotateOut {
1962
- -webkit-animation-name: rotateOut;
1963
- animation-name: rotateOut
1964
- }
1965
- @-webkit-keyframes rotateOutDownLeft {
1966
- from {
1967
- -webkit-transform-origin: left bottom;
1968
- transform-origin: left bottom;
1969
- opacity: 1
1970
- }
1971
- to {
1972
- -webkit-transform-origin: left bottom;
1973
- transform-origin: left bottom;
1974
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1975
- transform: rotate3d(0, 0, 1, 45deg);
1976
- opacity: 0
1977
- }
1978
- }
1979
- @keyframes rotateOutDownLeft {
1980
- from {
1981
- -webkit-transform-origin: left bottom;
1982
- transform-origin: left bottom;
1983
- opacity: 1
1984
- }
1985
- to {
1986
- -webkit-transform-origin: left bottom;
1987
- transform-origin: left bottom;
1988
- -webkit-transform: rotate3d(0, 0, 1, 45deg);
1989
- transform: rotate3d(0, 0, 1, 45deg);
1990
- opacity: 0
1991
- }
1992
- }
1993
- .rotateOutDownLeft {
1994
- -webkit-animation-name: rotateOutDownLeft;
1995
- animation-name: rotateOutDownLeft
1996
- }
1997
- @-webkit-keyframes rotateOutDownRight {
1998
- from {
1999
- -webkit-transform-origin: right bottom;
2000
- transform-origin: right bottom;
2001
- opacity: 1
2002
- }
2003
- to {
2004
- -webkit-transform-origin: right bottom;
2005
- transform-origin: right bottom;
2006
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
2007
- transform: rotate3d(0, 0, 1, -45deg);
2008
- opacity: 0
2009
- }
2010
- }
2011
- @keyframes rotateOutDownRight {
2012
- from {
2013
- -webkit-transform-origin: right bottom;
2014
- transform-origin: right bottom;
2015
- opacity: 1
2016
- }
2017
- to {
2018
- -webkit-transform-origin: right bottom;
2019
- transform-origin: right bottom;
2020
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
2021
- transform: rotate3d(0, 0, 1, -45deg);
2022
- opacity: 0
2023
- }
2024
- }
2025
- .rotateOutDownRight {
2026
- -webkit-animation-name: rotateOutDownRight;
2027
- animation-name: rotateOutDownRight
2028
- }
2029
- @-webkit-keyframes rotateOutUpLeft {
2030
- from {
2031
- -webkit-transform-origin: left bottom;
2032
- transform-origin: left bottom;
2033
- opacity: 1
2034
- }
2035
- to {
2036
- -webkit-transform-origin: left bottom;
2037
- transform-origin: left bottom;
2038
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
2039
- transform: rotate3d(0, 0, 1, -45deg);
2040
- opacity: 0
2041
- }
2042
- }
2043
- @keyframes rotateOutUpLeft {
2044
- from {
2045
- -webkit-transform-origin: left bottom;
2046
- transform-origin: left bottom;
2047
- opacity: 1
2048
- }
2049
- to {
2050
- -webkit-transform-origin: left bottom;
2051
- transform-origin: left bottom;
2052
- -webkit-transform: rotate3d(0, 0, 1, -45deg);
2053
- transform: rotate3d(0, 0, 1, -45deg);
2054
- opacity: 0
2055
- }
2056
- }
2057
- .rotateOutUpLeft {
2058
- -webkit-animation-name: rotateOutUpLeft;
2059
- animation-name: rotateOutUpLeft
2060
- }
2061
- @-webkit-keyframes rotateOutUpRight {
2062
- from {
2063
- -webkit-transform-origin: right bottom;
2064
- transform-origin: right bottom;
2065
- opacity: 1
2066
- }
2067
- to {
2068
- -webkit-transform-origin: right bottom;
2069
- transform-origin: right bottom;
2070
- -webkit-transform: rotate3d(0, 0, 1, 90deg);
2071
- transform: rotate3d(0, 0, 1, 90deg);
2072
- opacity: 0
2073
- }
2074
- }
2075
- @keyframes rotateOutUpRight {
2076
- from {
2077
- -webkit-transform-origin: right bottom;
2078
- transform-origin: right bottom;
2079
- opacity: 1
2080
- }
2081
- to {
2082
- -webkit-transform-origin: right bottom;
2083
- transform-origin: right bottom;
2084
- -webkit-transform: rotate3d(0, 0, 1, 90deg);
2085
- transform: rotate3d(0, 0, 1, 90deg);
2086
- opacity: 0
2087
- }
2088
- }
2089
- .rotateOutUpRight {
2090
- -webkit-animation-name: rotateOutUpRight;
2091
- animation-name: rotateOutUpRight
2092
- }
2093
- @-webkit-keyframes hinge {
2094
- 0% {
2095
- -webkit-transform-origin: top left;
2096
- transform-origin: top left;
2097
- -webkit-animation-timing-function: ease-in-out;
2098
- animation-timing-function: ease-in-out
2099
- }
2100
- 20%,
2101
- 60% {
2102
- -webkit-transform: rotate3d(0, 0, 1, 80deg);
2103
- transform: rotate3d(0, 0, 1, 80deg);
2104
- -webkit-transform-origin: top left;
2105
- transform-origin: top left;
2106
- -webkit-animation-timing-function: ease-in-out;
2107
- animation-timing-function: ease-in-out
2108
- }
2109
- 40%,
2110
- 80% {
2111
- -webkit-transform: rotate3d(0, 0, 1, 60deg);
2112
- transform: rotate3d(0, 0, 1, 60deg);
2113
- -webkit-transform-origin: top left;
2114
- transform-origin: top left;
2115
- -webkit-animation-timing-function: ease-in-out;
2116
- animation-timing-function: ease-in-out;
2117
- opacity: 1
2118
- }
2119
- to {
2120
- -webkit-transform: translate3d(0, 700px, 0);
2121
- transform: translate3d(0, 700px, 0);
2122
- opacity: 0
2123
- }
2124
- }
2125
- @keyframes hinge {
2126
- 0% {
2127
- -webkit-transform-origin: top left;
2128
- transform-origin: top left;
2129
- -webkit-animation-timing-function: ease-in-out;
2130
- animation-timing-function: ease-in-out
2131
- }
2132
- 20%,
2133
- 60% {
2134
- -webkit-transform: rotate3d(0, 0, 1, 80deg);
2135
- transform: rotate3d(0, 0, 1, 80deg);
2136
- -webkit-transform-origin: top left;
2137
- transform-origin: top left;
2138
- -webkit-animation-timing-function: ease-in-out;
2139
- animation-timing-function: ease-in-out
2140
- }
2141
- 40%,
2142
- 80% {
2143
- -webkit-transform: rotate3d(0, 0, 1, 60deg);
2144
- transform: rotate3d(0, 0, 1, 60deg);
2145
- -webkit-transform-origin: top left;
2146
- transform-origin: top left;
2147
- -webkit-animation-timing-function: ease-in-out;
2148
- animation-timing-function: ease-in-out;
2149
- opacity: 1
2150
- }
2151
- to {
2152
- -webkit-transform: translate3d(0, 700px, 0);
2153
- transform: translate3d(0, 700px, 0);
2154
- opacity: 0
2155
- }
2156
- }
2157
- .hinge {
2158
- -webkit-animation-name: hinge;
2159
- animation-name: hinge
2160
- }
2161
- @-webkit-keyframes rollIn {
2162
- from {
2163
- opacity: 0;
2164
- -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2165
- transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2166
- }
2167
- to {
2168
- opacity: 1;
2169
- -webkit-transform: none;
2170
- transform: none
2171
- }
2172
- }
2173
- @keyframes rollIn {
2174
- from {
2175
- opacity: 0;
2176
- -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2177
- transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2178
- }
2179
- to {
2180
- opacity: 1;
2181
- -webkit-transform: none;
2182
- transform: none
2183
- }
2184
- }
2185
- .rollIn {
2186
- -webkit-animation-name: rollIn;
2187
- animation-name: rollIn
2188
- }
2189
- @-webkit-keyframes rollOut {
2190
- from {
2191
- opacity: 1
2192
- }
2193
- to {
2194
- opacity: 0;
2195
- -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2196
- transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2197
- }
2198
- }
2199
- @keyframes rollOut {
2200
- from {
2201
- opacity: 1
2202
- }
2203
- to {
2204
- opacity: 0;
2205
- -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2206
- transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2207
- }
2208
- }
2209
- .rollOut {
2210
- -webkit-animation-name: rollOut;
2211
- animation-name: rollOut
2212
- }
2213
- @-webkit-keyframes zoomIn {
2214
- from {
2215
- opacity: 0;
2216
- -webkit-transform: scale3d(.3, .3, .3);
2217
- transform: scale3d(.3, .3, .3)
2218
- }
2219
- 50% {
2220
- opacity: 1
2221
- }
2222
- }
2223
- @keyframes zoomIn {
2224
- from {
2225
- opacity: 0;
2226
- -webkit-transform: scale3d(.3, .3, .3);
2227
- transform: scale3d(.3, .3, .3)
2228
- }
2229
- 50% {
2230
- opacity: 1
2231
- }
2232
- }
2233
- .zoomIn {
2234
- -webkit-animation-name: zoomIn;
2235
- animation-name: zoomIn
2236
- }
2237
- @-webkit-keyframes zoomInDown {
2238
- from {
2239
- opacity: 0;
2240
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2241
- transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2242
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2243
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2244
- }
2245
- 60% {
2246
- opacity: 1;
2247
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2248
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2249
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2250
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2251
- }
2252
- }
2253
- @keyframes zoomInDown {
2254
- from {
2255
- opacity: 0;
2256
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2257
- transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2258
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2259
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2260
- }
2261
- 60% {
2262
- opacity: 1;
2263
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2264
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2265
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2266
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2267
- }
2268
- }
2269
- .zoomInDown {
2270
- -webkit-animation-name: zoomInDown;
2271
- animation-name: zoomInDown
2272
- }
2273
- @-webkit-keyframes zoomInLeft {
2274
- from {
2275
- opacity: 0;
2276
- -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2277
- transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2278
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2279
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2280
- }
2281
- 60% {
2282
- opacity: 1;
2283
- -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2284
- transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2285
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2286
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2287
- }
2288
- }
2289
- @keyframes zoomInLeft {
2290
- from {
2291
- opacity: 0;
2292
- -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2293
- transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2294
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2295
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2296
- }
2297
- 60% {
2298
- opacity: 1;
2299
- -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2300
- transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2301
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2302
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2303
- }
2304
- }
2305
- .zoomInLeft {
2306
- -webkit-animation-name: zoomInLeft;
2307
- animation-name: zoomInLeft
2308
- }
2309
- @-webkit-keyframes zoomInRight {
2310
- from {
2311
- opacity: 0;
2312
- -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2313
- transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2314
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2315
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2316
- }
2317
- 60% {
2318
- opacity: 1;
2319
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2320
- transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2321
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2322
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2323
- }
2324
- }
2325
- @keyframes zoomInRight {
2326
- from {
2327
- opacity: 0;
2328
- -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2329
- transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2330
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2331
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2332
- }
2333
- 60% {
2334
- opacity: 1;
2335
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2336
- transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2337
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2338
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2339
- }
2340
- }
2341
- .zoomInRight {
2342
- -webkit-animation-name: zoomInRight;
2343
- animation-name: zoomInRight
2344
- }
2345
- @-webkit-keyframes zoomInUp {
2346
- from {
2347
- opacity: 0;
2348
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2349
- transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2350
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2351
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2352
- }
2353
- 60% {
2354
- opacity: 1;
2355
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2356
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2357
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2358
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2359
- }
2360
- }
2361
- @keyframes zoomInUp {
2362
- from {
2363
- opacity: 0;
2364
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2365
- transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2366
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2367
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2368
- }
2369
- 60% {
2370
- opacity: 1;
2371
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2372
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2373
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2374
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2375
- }
2376
- }
2377
- .zoomInUp {
2378
- -webkit-animation-name: zoomInUp;
2379
- animation-name: zoomInUp
2380
- }
2381
- @-webkit-keyframes zoomOut {
2382
- from {
2383
- opacity: 1
2384
- }
2385
- 50% {
2386
- opacity: 0;
2387
- -webkit-transform: scale3d(.3, .3, .3);
2388
- transform: scale3d(.3, .3, .3)
2389
- }
2390
- to {
2391
- opacity: 0
2392
- }
2393
- }
2394
- @keyframes zoomOut {
2395
- from {
2396
- opacity: 1
2397
- }
2398
- 50% {
2399
- opacity: 0;
2400
- -webkit-transform: scale3d(.3, .3, .3);
2401
- transform: scale3d(.3, .3, .3)
2402
- }
2403
- to {
2404
- opacity: 0
2405
- }
2406
- }
2407
- .zoomOut {
2408
- -webkit-animation-name: zoomOut;
2409
- animation-name: zoomOut
2410
- }
2411
- @-webkit-keyframes zoomOutDown {
2412
- 40% {
2413
- opacity: 1;
2414
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2415
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2416
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2417
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2418
- }
2419
- to {
2420
- opacity: 0;
2421
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2422
- transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2423
- -webkit-transform-origin: center bottom;
2424
- transform-origin: center bottom;
2425
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2426
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2427
- }
2428
- }
2429
- @keyframes zoomOutDown {
2430
- 40% {
2431
- opacity: 1;
2432
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2433
- transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2434
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2435
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2436
- }
2437
- to {
2438
- opacity: 0;
2439
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2440
- transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2441
- -webkit-transform-origin: center bottom;
2442
- transform-origin: center bottom;
2443
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2444
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2445
- }
2446
- }
2447
- .zoomOutDown {
2448
- -webkit-animation-name: zoomOutDown;
2449
- animation-name: zoomOutDown
2450
- }
2451
- @-webkit-keyframes zoomOutLeft {
2452
- 40% {
2453
- opacity: 1;
2454
- -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2455
- transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2456
- }
2457
- to {
2458
- opacity: 0;
2459
- -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2460
- transform: scale(.1) translate3d(-2000px, 0, 0);
2461
- -webkit-transform-origin: left center;
2462
- transform-origin: left center
2463
- }
2464
- }
2465
- @keyframes zoomOutLeft {
2466
- 40% {
2467
- opacity: 1;
2468
- -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2469
- transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2470
- }
2471
- to {
2472
- opacity: 0;
2473
- -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2474
- transform: scale(.1) translate3d(-2000px, 0, 0);
2475
- -webkit-transform-origin: left center;
2476
- transform-origin: left center
2477
- }
2478
- }
2479
- .zoomOutLeft {
2480
- -webkit-animation-name: zoomOutLeft;
2481
- animation-name: zoomOutLeft
2482
- }
2483
- @-webkit-keyframes zoomOutRight {
2484
- 40% {
2485
- opacity: 1;
2486
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2487
- transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
2488
- }
2489
- to {
2490
- opacity: 0;
2491
- -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2492
- transform: scale(.1) translate3d(2000px, 0, 0);
2493
- -webkit-transform-origin: right center;
2494
- transform-origin: right center
2495
- }
2496
- }
2497
- @keyframes zoomOutRight {
2498
- 40% {
2499
- opacity: 1;
2500
- -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2501
- transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
2502
- }
2503
- to {
2504
- opacity: 0;
2505
- -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2506
- transform: scale(.1) translate3d(2000px, 0, 0);
2507
- -webkit-transform-origin: right center;
2508
- transform-origin: right center
2509
- }
2510
- }
2511
- .zoomOutRight {
2512
- -webkit-animation-name: zoomOutRight;
2513
- animation-name: zoomOutRight
2514
- }
2515
- @-webkit-keyframes zoomOutUp {
2516
- 40% {
2517
- opacity: 1;
2518
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2519
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2520
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2521
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2522
- }
2523
- to {
2524
- opacity: 0;
2525
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2526
- transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2527
- -webkit-transform-origin: center bottom;
2528
- transform-origin: center bottom;
2529
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2530
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2531
- }
2532
- }
2533
- @keyframes zoomOutUp {
2534
- 40% {
2535
- opacity: 1;
2536
- -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2537
- transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2538
- -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2539
- animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2540
- }
2541
- to {
2542
- opacity: 0;
2543
- -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2544
- transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2545
- -webkit-transform-origin: center bottom;
2546
- transform-origin: center bottom;
2547
- -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2548
- animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2549
- }
2550
- }
2551
- .zoomOutUp {
2552
- -webkit-animation-name: zoomOutUp;
2553
- animation-name: zoomOutUp
2554
- }
2555
- @-webkit-keyframes slideInDown {
2556
- from {
2557
- -webkit-transform: translate3d(0, -100%, 0);
2558
- transform: translate3d(0, -100%, 0);
2559
- visibility: visible
2560
- }
2561
- to {
2562
- -webkit-transform: translate3d(0, 0, 0);
2563
- transform: translate3d(0, 0, 0)
2564
- }
2565
- }
2566
- @keyframes slideInDown {
2567
- from {
2568
- -webkit-transform: translate3d(0, -100%, 0);
2569
- transform: translate3d(0, -100%, 0);
2570
- visibility: visible
2571
- }
2572
- to {
2573
- -webkit-transform: translate3d(0, 0, 0);
2574
- transform: translate3d(0, 0, 0)
2575
- }
2576
- }
2577
- .slideInDown {
2578
- -webkit-animation-name: slideInDown;
2579
- animation-name: slideInDown
2580
- }
2581
- @-webkit-keyframes slideInLeft {
2582
- from {
2583
- -webkit-transform: translate3d(-100%, 0, 0);
2584
- transform: translate3d(-100%, 0, 0);
2585
- visibility: visible
2586
- }
2587
- to {
2588
- -webkit-transform: translate3d(0, 0, 0);
2589
- transform: translate3d(0, 0, 0)
2590
- }
2591
- }
2592
- @keyframes slideInLeft {
2593
- from {
2594
- -webkit-transform: translate3d(-100%, 0, 0);
2595
- transform: translate3d(-100%, 0, 0);
2596
- visibility: visible
2597
- }
2598
- to {
2599
- -webkit-transform: translate3d(0, 0, 0);
2600
- transform: translate3d(0, 0, 0)
2601
- }
2602
- }
2603
- .slideInLeft {
2604
- -webkit-animation-name: slideInLeft;
2605
- animation-name: slideInLeft
2606
- }
2607
- @-webkit-keyframes slideInRight {
2608
- from {
2609
- -webkit-transform: translate3d(100%, 0, 0);
2610
- transform: translate3d(100%, 0, 0);
2611
- visibility: visible
2612
- }
2613
- to {
2614
- -webkit-transform: translate3d(0, 0, 0);
2615
- transform: translate3d(0, 0, 0)
2616
- }
2617
- }
2618
- @keyframes slideInRight {
2619
- from {
2620
- -webkit-transform: translate3d(100%, 0, 0);
2621
- transform: translate3d(100%, 0, 0);
2622
- visibility: visible
2623
- }
2624
- to {
2625
- -webkit-transform: translate3d(0, 0, 0);
2626
- transform: translate3d(0, 0, 0)
2627
- }
2628
- }
2629
- .slideInRight {
2630
- -webkit-animation-name: slideInRight;
2631
- animation-name: slideInRight
2632
- }
2633
- @-webkit-keyframes slideInUp {
2634
- from {
2635
- -webkit-transform: translate3d(0, 100%, 0);
2636
- transform: translate3d(0, 100%, 0);
2637
- visibility: visible
2638
- }
2639
- to {
2640
- -webkit-transform: translate3d(0, 0, 0);
2641
- transform: translate3d(0, 0, 0)
2642
- }
2643
- }
2644
- @keyframes slideInUp {
2645
- from {
2646
- -webkit-transform: translate3d(0, 100%, 0);
2647
- transform: translate3d(0, 100%, 0);
2648
- visibility: visible
2649
- }
2650
- to {
2651
- -webkit-transform: translate3d(0, 0, 0);
2652
- transform: translate3d(0, 0, 0)
2653
- }
2654
- }
2655
- .slideInUp {
2656
- -webkit-animation-name: slideInUp;
2657
- animation-name: slideInUp
2658
- }
2659
- @-webkit-keyframes slideOutDown {
2660
- from {
2661
- -webkit-transform: translate3d(0, 0, 0);
2662
- transform: translate3d(0, 0, 0)
2663
- }
2664
- to {
2665
- visibility: hidden;
2666
- -webkit-transform: translate3d(0, 100%, 0);
2667
- transform: translate3d(0, 100%, 0)
2668
- }
2669
- }
2670
- @keyframes slideOutDown {
2671
- from {
2672
- -webkit-transform: translate3d(0, 0, 0);
2673
- transform: translate3d(0, 0, 0)
2674
- }
2675
- to {
2676
- visibility: hidden;
2677
- -webkit-transform: translate3d(0, 100%, 0);
2678
- transform: translate3d(0, 100%, 0)
2679
- }
2680
- }
2681
- .slideOutDown {
2682
- -webkit-animation-name: slideOutDown;
2683
- animation-name: slideOutDown
2684
- }
2685
- @-webkit-keyframes slideOutLeft {
2686
- from {
2687
- -webkit-transform: translate3d(0, 0, 0);
2688
- transform: translate3d(0, 0, 0)
2689
- }
2690
- to {
2691
- visibility: hidden;
2692
- -webkit-transform: translate3d(-100%, 0, 0);
2693
- transform: translate3d(-100%, 0, 0)
2694
- }
2695
- }
2696
- @keyframes slideOutLeft {
2697
- from {
2698
- -webkit-transform: translate3d(0, 0, 0);
2699
- transform: translate3d(0, 0, 0)
2700
- }
2701
- to {
2702
- visibility: hidden;
2703
- -webkit-transform: translate3d(-100%, 0, 0);
2704
- transform: translate3d(-100%, 0, 0)
2705
- }
2706
- }
2707
- .slideOutLeft {
2708
- -webkit-animation-name: slideOutLeft;
2709
- animation-name: slideOutLeft
2710
- }
2711
- @-webkit-keyframes slideOutRight {
2712
- from {
2713
- -webkit-transform: translate3d(0, 0, 0);
2714
- transform: translate3d(0, 0, 0)
2715
- }
2716
- to {
2717
- visibility: hidden;
2718
- -webkit-transform: translate3d(100%, 0, 0);
2719
- transform: translate3d(100%, 0, 0)
2720
- }
2721
- }
2722
- @keyframes slideOutRight {
2723
- from {
2724
- -webkit-transform: translate3d(0, 0, 0);
2725
- transform: translate3d(0, 0, 0)
2726
- }
2727
- to {
2728
- visibility: hidden;
2729
- -webkit-transform: translate3d(100%, 0, 0);
2730
- transform: translate3d(100%, 0, 0)
2731
- }
2732
- }
2733
- .slideOutRight {
2734
- -webkit-animation-name: slideOutRight;
2735
- animation-name: slideOutRight
2736
- }
2737
- @-webkit-keyframes slideOutUp {
2738
- from {
2739
- -webkit-transform: translate3d(0, 0, 0);
2740
- transform: translate3d(0, 0, 0)
2741
- }
2742
- to {
2743
- visibility: hidden;
2744
- -webkit-transform: translate3d(0, -100%, 0);
2745
- transform: translate3d(0, -100%, 0)
2746
- }
2747
- }
2748
- @keyframes slideOutUp {
2749
- from {
2750
- -webkit-transform: translate3d(0, 0, 0);
2751
- transform: translate3d(0, 0, 0)
2752
- }
2753
- to {
2754
- visibility: hidden;
2755
- -webkit-transform: translate3d(0, -100%, 0);
2756
- transform: translate3d(0, -100%, 0)
2757
- }
2758
- }
2759
- .slideOutUp {
2760
- -webkit-animation-name: slideOutUp;
2761
- animation-name: slideOutUp
2762
  }
1
+ @charset "UTF-8";
2
+
3
+ /*!
4
+ Animate.css - http://daneden.me/animate
5
+ Licensed under the MIT license - http://opensource.org/licenses/MIT
6
+
7
+ Copyright (c) 2015 Daniel Eden
8
+ */
9
+
10
+ .sg-animated {
11
+ -webkit-animation-duration: 1s;
12
+ animation-duration: 1s;
13
+ -webkit-animation-fill-mode: both;
14
+ animation-fill-mode: both
15
+ }
16
+ .sg-animated.infinite {
17
+ -webkit-animation-iteration-count: infinite;
18
+ animation-iteration-count: infinite
19
+ }
20
+ .sg-animated.hinge {
21
+ -webkit-animation-duration: 2s;
22
+ animation-duration: 2s
23
+ }
24
+ .sg-animated.bounceIn,
25
+ .sg-animated.bounceOut,
26
+ .sg-animated.flipOutX,
27
+ .sg-animated.flipOutY {
28
+ -webkit-animation-duration: .75s;
29
+ animation-duration: .75s
30
+ }
31
+ @-webkit-keyframes bounce {
32
+ 20%, 53%, 80%, from, to {
33
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
34
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1);
35
+ -webkit-transform: translate3d(0, 0, 0);
36
+ transform: translate3d(0, 0, 0)
37
+ }
38
+ 40%,
39
+ 43% {
40
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
41
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
42
+ -webkit-transform: translate3d(0, -30px, 0);
43
+ transform: translate3d(0, -30px, 0)
44
+ }
45
+ 70% {
46
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
47
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
48
+ -webkit-transform: translate3d(0, -15px, 0);
49
+ transform: translate3d(0, -15px, 0)
50
+ }
51
+ 90% {
52
+ -webkit-transform: translate3d(0, -4px, 0);
53
+ transform: translate3d(0, -4px, 0)
54
+ }
55
+ }
56
+ @keyframes bounce {
57
+ 20%, 53%, 80%, from, to {
58
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
59
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1);
60
+ -webkit-transform: translate3d(0, 0, 0);
61
+ transform: translate3d(0, 0, 0)
62
+ }
63
+ 40%,
64
+ 43% {
65
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
66
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
67
+ -webkit-transform: translate3d(0, -30px, 0);
68
+ transform: translate3d(0, -30px, 0)
69
+ }
70
+ 70% {
71
+ -webkit-animation-timing-function: cubic-bezier(.755, .050, .855, .060);
72
+ animation-timing-function: cubic-bezier(.755, .050, .855, .060);
73
+ -webkit-transform: translate3d(0, -15px, 0);
74
+ transform: translate3d(0, -15px, 0)
75
+ }
76
+ 90% {
77
+ -webkit-transform: translate3d(0, -4px, 0);
78
+ transform: translate3d(0, -4px, 0)
79
+ }
80
+ }
81
+ .bounce {
82
+ -webkit-animation-name: bounce;
83
+ animation-name: bounce;
84
+ -webkit-transform-origin: center bottom;
85
+ transform-origin: center bottom
86
+ }
87
+ @-webkit-keyframes flash {
88
+ 50%, from, to {
89
+ opacity: 1
90
+ }
91
+ 25%,
92
+ 75% {
93
+ opacity: 0
94
+ }
95
+ }
96
+ @keyframes flash {
97
+ 50%, from, to {
98
+ opacity: 1
99
+ }
100
+ 25%,
101
+ 75% {
102
+ opacity: 0
103
+ }
104
+ }
105
+ .flash {
106
+ -webkit-animation-name: flash;
107
+ animation-name: flash
108
+ }
109
+ @-webkit-keyframes pulse {
110
+ from, to {
111
+ -webkit-transform: scale3d(1, 1, 1);
112
+ transform: scale3d(1, 1, 1)
113
+ }
114
+ 50% {
115
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
116
+ transform: scale3d(1.05, 1.05, 1.05)
117
+ }
118
+ }
119
+ @keyframes pulse {
120
+ from, to {
121
+ -webkit-transform: scale3d(1, 1, 1);
122
+ transform: scale3d(1, 1, 1)
123
+ }
124
+ 50% {
125
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
126
+ transform: scale3d(1.05, 1.05, 1.05)
127
+ }
128
+ }
129
+ .pulse {
130
+ -webkit-animation-name: pulse;
131
+ animation-name: pulse
132
+ }
133
+ @-webkit-keyframes rubberBand {
134
+ from, to {
135
+ -webkit-transform: scale3d(1, 1, 1);
136
+ transform: scale3d(1, 1, 1)
137
+ }
138
+ 30% {
139
+ -webkit-transform: scale3d(1.25, .75, 1);
140
+ transform: scale3d(1.25, .75, 1)
141
+ }
142
+ 40% {
143
+ -webkit-transform: scale3d(.75, 1.25, 1);
144
+ transform: scale3d(.75, 1.25, 1)
145
+ }
146
+ 50% {
147
+ -webkit-transform: scale3d(1.15, .85, 1);
148
+ transform: scale3d(1.15, .85, 1)
149
+ }
150
+ 65% {
151
+ -webkit-transform: scale3d(.95, 1.05, 1);
152
+ transform: scale3d(.95, 1.05, 1)
153
+ }
154
+ 75% {
155
+ -webkit-transform: scale3d(1.05, .95, 1);
156
+ transform: scale3d(1.05, .95, 1)
157
+ }
158
+ }
159
+ @keyframes rubberBand {
160
+ from, to {
161
+ -webkit-transform: scale3d(1, 1, 1);
162
+ transform: scale3d(1, 1, 1)
163
+ }
164
+ 30% {
165
+ -webkit-transform: scale3d(1.25, .75, 1);
166
+ transform: scale3d(1.25, .75, 1)
167
+ }
168
+ 40% {
169
+ -webkit-transform: scale3d(.75, 1.25, 1);
170
+ transform: scale3d(.75, 1.25, 1)
171
+ }
172
+ 50% {
173
+ -webkit-transform: scale3d(1.15, .85, 1);
174
+ transform: scale3d(1.15, .85, 1)
175
+ }
176
+ 65% {
177
+ -webkit-transform: scale3d(.95, 1.05, 1);
178
+ transform: scale3d(.95, 1.05, 1)
179
+ }
180
+ 75% {
181
+ -webkit-transform: scale3d(1.05, .95, 1);
182
+ transform: scale3d(1.05, .95, 1)
183
+ }
184
+ }
185
+ .rubberBand {
186
+ -webkit-animation-name: rubberBand;
187
+ animation-name: rubberBand
188
+ }
189
+ @-webkit-keyframes shake {
190
+ from, to {
191
+ -webkit-transform: translate3d(0, 0, 0);
192
+ transform: translate3d(0, 0, 0)
193
+ }
194
+ 10%,
195
+ 30%,
196
+ 50%,
197
+ 70%,
198
+ 90% {
199
+ -webkit-transform: translate3d(-10px, 0, 0);
200
+ transform: translate3d(-10px, 0, 0)
201
+ }
202
+ 20%,
203
+ 40%,
204
+ 60%,
205
+ 80% {
206
+ -webkit-transform: translate3d(10px, 0, 0);
207
+ transform: translate3d(10px, 0, 0)
208
+ }
209
+ }
210
+ @keyframes shake {
211
+ from, to {
212
+ -webkit-transform: translate3d(0, 0, 0);
213
+ transform: translate3d(0, 0, 0)
214
+ }
215
+ 10%,
216
+ 30%,
217
+ 50%,
218
+ 70%,
219
+ 90% {
220
+ -webkit-transform: translate3d(-10px, 0, 0);
221
+ transform: translate3d(-10px, 0, 0)
222
+ }
223
+ 20%,
224
+ 40%,
225
+ 60%,
226
+ 80% {
227
+ -webkit-transform: translate3d(10px, 0, 0);
228
+ transform: translate3d(10px, 0, 0)
229
+ }
230
+ }
231
+ .shake {
232
+ -webkit-animation-name: shake;
233
+ animation-name: shake
234
+ }
235
+ @-webkit-keyframes swing {
236
+ 20% {
237
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
238
+ transform: rotate3d(0, 0, 1, 15deg)
239
+ }
240
+ 40% {
241
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
242
+ transform: rotate3d(0, 0, 1, -10deg)
243
+ }
244
+ 60% {
245
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
246
+ transform: rotate3d(0, 0, 1, 5deg)
247
+ }
248
+ 80% {
249
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
250
+ transform: rotate3d(0, 0, 1, -5deg)
251
+ }
252
+ to {
253
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
254
+ transform: rotate3d(0, 0, 1, 0deg)
255
+ }
256
+ }
257
+ @keyframes swing {
258
+ 20% {
259
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
260
+ transform: rotate3d(0, 0, 1, 15deg)
261
+ }
262
+ 40% {
263
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
264
+ transform: rotate3d(0, 0, 1, -10deg)
265
+ }
266
+ 60% {
267
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
268
+ transform: rotate3d(0, 0, 1, 5deg)
269
+ }
270
+ 80% {
271
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
272
+ transform: rotate3d(0, 0, 1, -5deg)
273
+ }
274
+ to {
275
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
276
+ transform: rotate3d(0, 0, 1, 0deg)
277
+ }
278
+ }
279
+ .swing {
280
+ -webkit-transform-origin: top center;
281
+ transform-origin: top center;
282
+ -webkit-animation-name: swing;
283
+ animation-name: swing
284
+ }
285
+ @-webkit-keyframes tada {
286
+ from, to {
287
+ -webkit-transform: scale3d(1, 1, 1);
288
+ transform: scale3d(1, 1, 1)
289
+ }
290
+ 10%,
291
+ 20% {
292
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
293
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
294
+ }
295
+ 30%,
296
+ 50%,
297
+ 70%,
298
+ 90% {
299
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
300
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
301
+ }
302
+ 40%,
303
+ 60%,
304
+ 80% {
305
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
306
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
307
+ }
308
+ }
309
+ @keyframes tada {
310
+ from, to {
311
+ -webkit-transform: scale3d(1, 1, 1);
312
+ transform: scale3d(1, 1, 1)
313
+ }
314
+ 10%,
315
+ 20% {
316
+ -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
317
+ transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)
318
+ }
319
+ 30%,
320
+ 50%,
321
+ 70%,
322
+ 90% {
323
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
324
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)
325
+ }
326
+ 40%,
327
+ 60%,
328
+ 80% {
329
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
330
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)
331
+ }
332
+ }
333
+ .tada {
334
+ -webkit-animation-name: tada;
335
+ animation-name: tada
336
+ }
337
+ @-webkit-keyframes wobble {
338
+ from, to {
339
+ -webkit-transform: none;
340
+ transform: none
341
+ }
342
+ 15% {
343
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
344
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
345
+ }
346
+ 30% {
347
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
348
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
349
+ }
350
+ 45% {
351
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
352
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
353
+ }
354
+ 60% {
355
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
356
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
357
+ }
358
+ 75% {
359
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
360
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
361
+ }
362
+ }
363
+ @keyframes wobble {
364
+ from, to {
365
+ -webkit-transform: none;
366
+ transform: none
367
+ }
368
+ 15% {
369
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
370
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)
371
+ }
372
+ 30% {
373
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
374
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)
375
+ }
376
+ 45% {
377
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
378
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)
379
+ }
380
+ 60% {
381
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
382
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)
383
+ }
384
+ 75% {
385
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
386
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)
387
+ }
388
+ }
389
+ .wobble {
390
+ -webkit-animation-name: wobble;
391
+ animation-name: wobble
392
+ }
393
+ @-webkit-keyframes jello {
394
+ 11.1%, from, to {
395
+ -webkit-transform: none;
396
+ transform: none
397
+ }
398
+ 22.2% {
399
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
400
+ transform: skewX(-12.5deg) skewY(-12.5deg)
401
+ }
402
+ 33.3% {
403
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
404
+ transform: skewX(6.25deg) skewY(6.25deg)
405
+ }
406
+ 44.4% {
407
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
408
+ transform: skewX(-3.125deg) skewY(-3.125deg)
409
+ }
410
+ 55.5% {
411
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
412
+ transform: skewX(1.5625deg) skewY(1.5625deg)
413
+ }
414
+ 66.6% {
415
+ -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
416
+ transform: skewX(-.78125deg) skewY(-.78125deg)
417
+ }
418
+ 77.7% {
419
+ -webkit-transform: skewX(.390625deg) skewY(.390625deg);
420
+ transform: skewX(.390625deg) skewY(.390625deg)
421
+ }
422
+ 88.8% {
423
+ -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
424
+ transform: skewX(-.1953125deg) skewY(-.1953125deg)
425
+ }
426
+ }
427
+ @keyframes jello {
428
+ 11.1%, from, to {
429
+ -webkit-transform: none;
430
+ transform: none
431
+ }
432
+ 22.2% {
433
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
434
+ transform: skewX(-12.5deg) skewY(-12.5deg)
435
+ }
436
+ 33.3% {
437
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
438
+ transform: skewX(6.25deg) skewY(6.25deg)
439
+ }
440
+ 44.4% {
441
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
442
+ transform: skewX(-3.125deg) skewY(-3.125deg)
443
+ }
444
+ 55.5% {
445
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
446
+ transform: skewX(1.5625deg) skewY(1.5625deg)
447
+ }
448
+ 66.6% {
449
+ -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
450
+ transform: skewX(-.78125deg) skewY(-.78125deg)
451
+ }
452
+ 77.7% {
453
+ -webkit-transform: skewX(.390625deg) skewY(.390625deg);
454
+ transform: skewX(.390625deg) skewY(.390625deg)
455
+ }
456
+ 88.8% {
457
+ -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
458
+ transform: skewX(-.1953125deg) skewY(-.1953125deg)
459
+ }
460
+ }
461
+ .jello {
462
+ -webkit-animation-name: jello;
463
+ animation-name: jello;
464
+ -webkit-transform-origin: center;
465
+ transform-origin: center
466
+ }
467
+ @-webkit-keyframes bounceIn {
468
+ 20%, 40%, 60%, 80%, from, to {
469
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
470
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
471
+ }
472
+ 0% {
473
+ opacity: 0;
474
+ -webkit-transform: scale3d(.3, .3, .3);
475
+ transform: scale3d(.3, .3, .3)
476
+ }
477
+ 20% {
478
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
479
+ transform: scale3d(1.1, 1.1, 1.1)
480
+ }
481
+ 40% {
482
+ -webkit-transform: scale3d(.9, .9, .9);
483
+ transform: scale3d(.9, .9, .9)
484
+ }
485
+ 60% {
486
+ opacity: 1;
487
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
488
+ transform: scale3d(1.03, 1.03, 1.03)
489
+ }
490
+ 80% {
491
+ -webkit-transform: scale3d(.97, .97, .97);
492
+ transform: scale3d(.97, .97, .97)
493
+ }
494
+ to {
495
+ opacity: 1;
496
+ -webkit-transform: scale3d(1, 1, 1);
497
+ transform: scale3d(1, 1, 1)
498
+ }
499
+ }
500
+ @keyframes bounceIn {
501
+ 20%, 40%, 60%, 80%, from, to {
502
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
503
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
504
+ }
505
+ 0% {
506
+ opacity: 0;
507
+ -webkit-transform: scale3d(.3, .3, .3);
508
+ transform: scale3d(.3, .3, .3)
509
+ }
510
+ 20% {
511
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
512
+ transform: scale3d(1.1, 1.1, 1.1)
513
+ }
514
+ 40% {
515
+ -webkit-transform: scale3d(.9, .9, .9);
516
+ transform: scale3d(.9, .9, .9)
517
+ }
518
+ 60% {
519
+ opacity: 1;
520
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
521
+ transform: scale3d(1.03, 1.03, 1.03)
522
+ }
523
+ 80% {
524
+ -webkit-transform: scale3d(.97, .97, .97);
525
+ transform: scale3d(.97, .97, .97)
526
+ }
527
+ to {
528
+ opacity: 1;
529
+ -webkit-transform: scale3d(1, 1, 1);
530
+ transform: scale3d(1, 1, 1)
531
+ }
532
+ }
533
+ .bounceIn {
534
+ -webkit-animation-name: bounceIn;
535
+ animation-name: bounceIn
536
+ }
537
+ @-webkit-keyframes bounceInDown {
538
+ 60%, 75%, 90%, from, to {
539
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
540
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
541
+ }
542
+ 0% {
543
+ opacity: 0;
544
+ -webkit-transform: translate3d(0, -3000px, 0);
545
+ transform: translate3d(0, -3000px, 0)
546
+ }
547
+ 60% {
548
+ opacity: 1;
549
+ -webkit-transform: translate3d(0, 25px, 0);
550
+ transform: translate3d(0, 25px, 0)
551
+ }
552
+ 75% {
553
+ -webkit-transform: translate3d(0, -10px, 0);
554
+ transform: translate3d(0, -10px, 0)
555
+ }
556
+ 90% {
557
+ -webkit-transform: translate3d(0, 5px, 0);
558
+ transform: translate3d(0, 5px, 0)
559
+ }
560
+ to {
561
+ -webkit-transform: none;
562
+ transform: none
563
+ }
564
+ }
565
+ @keyframes bounceInDown {
566
+ 60%, 75%, 90%, from, to {
567
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
568
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
569
+ }
570
+ 0% {
571
+ opacity: 0;
572
+ -webkit-transform: translate3d(0, -3000px, 0);
573
+ transform: translate3d(0, -3000px, 0)
574
+ }
575
+ 60% {
576
+ opacity: 1;
577
+ -webkit-transform: translate3d(0, 25px, 0);
578
+ transform: translate3d(0, 25px, 0)
579
+ }
580
+ 75% {
581
+ -webkit-transform: translate3d(0, -10px, 0);
582
+ transform: translate3d(0, -10px, 0)
583
+ }
584
+ 90% {
585
+ -webkit-transform: translate3d(0, 5px, 0);
586
+ transform: translate3d(0, 5px, 0)
587
+ }
588
+ to {
589
+ -webkit-transform: none;
590
+ transform: none
591
+ }
592
+ }
593
+ .bounceInDown {
594
+ -webkit-animation-name: bounceInDown;
595
+ animation-name: bounceInDown
596
+ }
597
+ @-webkit-keyframes bounceInLeft {
598
+ 60%, 75%, 90%, from, to {
599
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
600
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
601
+ }
602
+ 0% {
603
+ opacity: 0;
604
+ -webkit-transform: translate3d(-3000px, 0, 0);
605
+ transform: translate3d(-3000px, 0, 0)
606
+ }
607
+ 60% {
608
+ opacity: 1;
609
+ -webkit-transform: translate3d(25px, 0, 0);
610
+ transform: translate3d(25px, 0, 0)
611
+ }
612
+ 75% {
613
+ -webkit-transform: translate3d(-10px, 0, 0);
614
+ transform: translate3d(-10px, 0, 0)
615
+ }
616
+ 90% {
617
+ -webkit-transform: translate3d(5px, 0, 0);
618
+ transform: translate3d(5px, 0, 0)
619
+ }
620
+ to {
621
+ -webkit-transform: none;
622
+ transform: none
623
+ }
624
+ }
625
+ @keyframes bounceInLeft {
626
+ 60%, 75%, 90%, from, to {
627
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
628
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
629
+ }
630
+ 0% {
631
+ opacity: 0;
632
+ -webkit-transform: translate3d(-3000px, 0, 0);
633
+ transform: translate3d(-3000px, 0, 0)
634
+ }
635
+ 60% {
636
+ opacity: 1;
637
+ -webkit-transform: translate3d(25px, 0, 0);
638
+ transform: translate3d(25px, 0, 0)
639
+ }
640
+ 75% {
641
+ -webkit-transform: translate3d(-10px, 0, 0);
642
+ transform: translate3d(-10px, 0, 0)
643
+ }
644
+ 90% {
645
+ -webkit-transform: translate3d(5px, 0, 0);
646
+ transform: translate3d(5px, 0, 0)
647
+ }
648
+ to {
649
+ -webkit-transform: none;
650
+ transform: none
651
+ }
652
+ }
653
+ .bounceInLeft {
654
+ -webkit-animation-name: bounceInLeft;
655
+ animation-name: bounceInLeft
656
+ }
657
+ @-webkit-keyframes bounceInRight {
658
+ 60%, 75%, 90%, from, to {
659
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
660
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
661
+ }
662
+ from {
663
+ opacity: 0;
664
+ -webkit-transform: translate3d(3000px, 0, 0);
665
+ transform: translate3d(3000px, 0, 0)
666
+ }
667
+ 60% {
668
+ opacity: 1;
669
+ -webkit-transform: translate3d(-25px, 0, 0);
670
+ transform: translate3d(-25px, 0, 0)
671
+ }
672
+ 75% {
673
+ -webkit-transform: translate3d(10px, 0, 0);
674
+ transform: translate3d(10px, 0, 0)
675
+ }
676
+ 90% {
677
+ -webkit-transform: translate3d(-5px, 0, 0);
678
+ transform: translate3d(-5px, 0, 0)
679
+ }
680
+ to {
681
+ -webkit-transform: none;
682
+ transform: none
683
+ }
684
+ }
685
+ @keyframes bounceInRight {
686
+ 60%, 75%, 90%, from, to {
687
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
688
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
689
+ }
690
+ from {
691
+ opacity: 0;
692
+ -webkit-transform: translate3d(3000px, 0, 0);
693
+ transform: translate3d(3000px, 0, 0)
694
+ }
695
+ 60% {
696
+ opacity: 1;
697
+ -webkit-transform: translate3d(-25px, 0, 0);
698
+ transform: translate3d(-25px, 0, 0)
699
+ }
700
+ 75% {
701
+ -webkit-transform: translate3d(10px, 0, 0);
702
+ transform: translate3d(10px, 0, 0)
703
+ }
704
+ 90% {
705
+ -webkit-transform: translate3d(-5px, 0, 0);
706
+ transform: translate3d(-5px, 0, 0)
707
+ }
708
+ to {
709
+ -webkit-transform: none;
710
+ transform: none
711
+ }
712
+ }
713
+ .bounceInRight {
714
+ -webkit-animation-name: bounceInRight;
715
+ animation-name: bounceInRight
716
+ }
717
+ @-webkit-keyframes bounceInUp {
718
+ 60%, 75%, 90%, from, to {
719
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
720
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
721
+ }
722
+ from {
723
+ opacity: 0;
724
+ -webkit-transform: translate3d(0, 3000px, 0);
725
+ transform: translate3d(0, 3000px, 0)
726
+ }
727
+ 60% {
728
+ opacity: 1;
729
+ -webkit-transform: translate3d(0, -20px, 0);
730
+ transform: translate3d(0, -20px, 0)
731
+ }
732
+ 75% {
733
+ -webkit-transform: translate3d(0, 10px, 0);
734
+ transform: translate3d(0, 10px, 0)
735
+ }
736
+ 90% {
737
+ -webkit-transform: translate3d(0, -5px, 0);
738
+ transform: translate3d(0, -5px, 0)
739
+ }
740
+ to {
741
+ -webkit-transform: translate3d(0, 0, 0);
742
+ transform: translate3d(0, 0, 0)
743
+ }
744
+ }
745
+ @keyframes bounceInUp {
746
+ 60%, 75%, 90%, from, to {
747
+ -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1);
748
+ animation-timing-function: cubic-bezier(.215, .61, .355, 1)
749
+ }
750
+ from {
751
+ opacity: 0;
752
+ -webkit-transform: translate3d(0, 3000px, 0);
753
+ transform: translate3d(0, 3000px, 0)
754
+ }
755
+ 60% {
756
+ opacity: 1;
757
+ -webkit-transform: translate3d(0, -20px, 0);
758
+ transform: translate3d(0, -20px, 0)
759
+ }
760
+ 75% {
761
+ -webkit-transform: translate3d(0, 10px, 0);
762
+ transform: translate3d(0, 10px, 0)
763
+ }
764
+ 90% {
765
+ -webkit-transform: translate3d(0, -5px, 0);
766
+ transform: translate3d(0, -5px, 0)
767
+ }
768
+ to {
769
+ -webkit-transform: translate3d(0, 0, 0);
770
+ transform: translate3d(0, 0, 0)
771
+ }
772
+ }
773
+ .bounceInUp {
774
+ -webkit-animation-name: bounceInUp;
775
+ animation-name: bounceInUp
776
+ }
777
+ @-webkit-keyframes bounceOut {
778
+ 20% {
779
+ -webkit-transform: scale3d(.9, .9, .9);
780
+ transform: scale3d(.9, .9, .9)
781
+ }
782
+ 50%,
783
+ 55% {
784
+ opacity: 1;
785
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
786
+ transform: scale3d(1.1, 1.1, 1.1)
787
+ }
788
+ to {
789
+ opacity: 0;
790
+ -webkit-transform: scale3d(.3, .3, .3);
791
+ transform: scale3d(.3, .3, .3)
792
+ }
793
+ }
794
+ @keyframes bounceOut {
795
+ 20% {
796
+ -webkit-transform: scale3d(.9, .9, .9);
797
+ transform: scale3d(.9, .9, .9)
798
+ }
799
+ 50%,
800
+ 55% {
801
+ opacity: 1;
802
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
803
+ transform: scale3d(1.1, 1.1, 1.1)
804
+ }
805
+ to {
806
+ opacity: 0;
807
+ -webkit-transform: scale3d(.3, .3, .3);
808
+ transform: scale3d(.3, .3, .3)
809
+ }
810
+ }
811
+ .bounceOut {
812
+ -webkit-animation-name: bounceOut;
813
+ animation-name: bounceOut
814
+ }
815
+ @-webkit-keyframes bounceOutDown {
816
+ 20% {
817
+ -webkit-transform: translate3d(0, 10px, 0);
818
+ transform: translate3d(0, 10px, 0)
819
+ }
820
+ 40%,
821
+ 45% {
822
+ opacity: 1;
823
+ -webkit-transform: translate3d(0, -20px, 0);
824
+ transform: translate3d(0, -20px, 0)
825
+ }
826
+ to {
827
+ opacity: 0;
828
+ -webkit-transform: translate3d(0, 2000px, 0);
829
+ transform: translate3d(0, 2000px, 0)
830
+ }
831
+ }
832
+ @keyframes bounceOutDown {
833
+ 20% {
834
+ -webkit-transform: translate3d(0, 10px, 0);
835
+ transform: translate3d(0, 10px, 0)
836
+ }
837
+ 40%,
838
+ 45% {
839
+ opacity: 1;
840
+ -webkit-transform: translate3d(0, -20px, 0);
841
+ transform: translate3d(0, -20px, 0)
842
+ }
843
+ to {
844
+ opacity: 0;
845
+ -webkit-transform: translate3d(0, 2000px, 0);
846
+ transform: translate3d(0, 2000px, 0)
847
+ }
848
+ }
849
+ .bounceOutDown {
850
+ -webkit-animation-name: bounceOutDown;
851
+ animation-name: bounceOutDown
852
+ }
853
+ @-webkit-keyframes bounceOutLeft {
854
+ 20% {
855
+ opacity: 1;
856
+ -webkit-transform: translate3d(20px, 0, 0);
857
+ transform: translate3d(20px, 0, 0)
858
+ }
859
+ to {
860
+ opacity: 0;
861
+ -webkit-transform: translate3d(-2000px, 0, 0);
862
+ transform: translate3d(-2000px, 0, 0)
863
+ }
864
+ }
865
+ @keyframes bounceOutLeft {
866
+ 20% {
867
+ opacity: 1;
868
+ -webkit-transform: translate3d(20px, 0, 0);
869
+ transform: translate3d(20px, 0, 0)
870
+ }
871
+ to {
872
+ opacity: 0;
873
+ -webkit-transform: translate3d(-2000px, 0, 0);
874
+ transform: translate3d(-2000px, 0, 0)
875
+ }
876
+ }
877
+ .bounceOutLeft {
878
+ -webkit-animation-name: bounceOutLeft;
879
+ animation-name: bounceOutLeft
880
+ }
881
+ @-webkit-keyframes bounceOutRight {
882
+ 20% {
883
+ opacity: 1;
884
+ -webkit-transform: translate3d(-20px, 0, 0);
885
+ transform: translate3d(-20px, 0, 0)
886
+ }
887
+ to {
888
+ opacity: 0;
889
+ -webkit-transform: translate3d(2000px, 0, 0);
890
+ transform: translate3d(2000px, 0, 0)
891
+ }
892
+ }
893
+ @keyframes bounceOutRight {
894
+ 20% {
895
+ opacity: 1;
896
+ -webkit-transform: translate3d(-20px, 0, 0);
897
+ transform: translate3d(-20px, 0, 0)
898
+ }
899
+ to {
900
+ opacity: 0;
901
+ -webkit-transform: translate3d(2000px, 0, 0);
902
+ transform: translate3d(2000px, 0, 0)
903
+ }
904
+ }
905
+ .bounceOutRight {
906
+ -webkit-animation-name: bounceOutRight;
907
+ animation-name: bounceOutRight
908
+ }
909
+ @-webkit-keyframes bounceOutUp {
910
+ 20% {
911
+ -webkit-transform: translate3d(0, -10px, 0);
912
+ transform: translate3d(0, -10px, 0)
913
+ }
914
+ 40%,
915
+ 45% {
916
+ opacity: 1;
917
+ -webkit-transform: translate3d(0, 20px, 0);
918
+ transform: translate3d(0, 20px, 0)
919
+ }
920
+ to {
921
+ opacity: 0;
922
+ -webkit-transform: translate3d(0, -2000px, 0);
923
+ transform: translate3d(0, -2000px, 0)
924
+ }
925
+ }
926
+ @keyframes bounceOutUp {
927
+ 20% {
928
+ -webkit-transform: translate3d(0, -10px, 0);
929
+ transform: translate3d(0, -10px, 0)
930
+ }
931
+ 40%,
932
+ 45% {
933
+ opacity: 1;
934
+ -webkit-transform: translate3d(0, 20px, 0);
935
+ transform: translate3d(0, 20px, 0)
936
+ }
937
+ to {
938
+ opacity: 0;
939
+ -webkit-transform: translate3d(0, -2000px, 0);
940
+ transform: translate3d(0, -2000px, 0)
941
+ }
942
+ }
943
+ .bounceOutUp {
944
+ -webkit-animation-name: bounceOutUp;
945
+ animation-name: bounceOutUp
946
+ }
947
+ @-webkit-keyframes fadeIn {
948
+ from {
949
+ opacity: 0
950
+ }
951
+ to {
952
+ opacity: 1
953
+ }
954
+ }
955
+ @keyframes fadeIn {
956
+ from {
957
+ opacity: 0
958
+ }
959
+ to {
960
+ opacity: 1
961
+ }
962
+ }
963
+ .fadeIn {
964
+ -webkit-animation-name: fadeIn;
965
+ animation-name: fadeIn
966
+ }
967
+ @-webkit-keyframes fadeInDown {
968
+ from {
969
+ opacity: 0;
970
+ -webkit-transform: translate3d(0, -100%, 0);
971
+ transform: translate3d(0, -100%, 0)
972
+ }
973
+ to {
974
+ opacity: 1;
975
+ -webkit-transform: none;
976
+ transform: none
977
+ }
978
+ }
979
+ @keyframes fadeInDown {
980
+ from {
981
+ opacity: 0;
982
+ -webkit-transform: translate3d(0, -100%, 0);
983
+ transform: translate3d(0, -100%, 0)
984
+ }
985
+ to {
986
+ opacity: 1;
987
+ -webkit-transform: none;
988
+ transform: none
989
+ }
990
+ }
991
+ .fadeInDown {
992
+ -webkit-animation-name: fadeInDown;
993
+ animation-name: fadeInDown
994
+ }
995
+ @-webkit-keyframes fadeInDownBig {
996
+ from {
997
+ opacity: 0;
998
+ -webkit-transform: translate3d(0, -2000px, 0);
999
+ transform: translate3d(0, -2000px, 0)
1000
+ }
1001
+ to {
1002
+ opacity: 1;
1003
+ -webkit-transform: none;
1004
+ transform: none
1005
+ }
1006
+ }
1007
+ @keyframes fadeInDownBig {
1008
+ from {
1009
+ opacity: 0;
1010
+ -webkit-transform: translate3d(0, -2000px, 0);
1011
+ transform: translate3d(0, -2000px, 0)
1012
+ }
1013
+ to {
1014
+ opacity: 1;
1015
+ -webkit-transform: none;
1016
+ transform: none
1017
+ }
1018
+ }
1019
+ .fadeInDownBig {
1020
+ -webkit-animation-name: fadeInDownBig;
1021
+ animation-name: fadeInDownBig
1022
+ }
1023
+ @-webkit-keyframes fadeInLeft {
1024
+ from {
1025
+ opacity: 0;
1026
+ -webkit-transform: translate3d(-100%, 0, 0);
1027
+ transform: translate3d(-100%, 0, 0)
1028
+ }
1029
+ to {
1030
+ opacity: 1;
1031
+ -webkit-transform: none;
1032
+ transform: none
1033
+ }
1034
+ }
1035
+ @keyframes fadeInLeft {
1036
+ from {
1037
+ opacity: 0;
1038
+ -webkit-transform: translate3d(-100%, 0, 0);
1039
+ transform: translate3d(-100%, 0, 0)
1040
+ }
1041
+ to {
1042
+ opacity: 1;
1043
+ -webkit-transform: none;
1044
+ transform: none
1045
+ }
1046
+ }
1047
+ .fadeInLeft {
1048
+ -webkit-animation-name: fadeInLeft;
1049
+ animation-name: fadeInLeft
1050
+ }
1051
+ @-webkit-keyframes fadeInLeftBig {
1052
+ from {
1053
+ opacity: 0;
1054
+ -webkit-transform: translate3d(-2000px, 0, 0);
1055
+ transform: translate3d(-2000px, 0, 0)
1056
+ }
1057
+ to {
1058
+ opacity: 1;
1059
+ -webkit-transform: none;
1060
+ transform: none
1061
+ }
1062
+ }
1063
+ @keyframes fadeInLeftBig {
1064
+ from {
1065
+ opacity: 0;
1066
+ -webkit-transform: translate3d(-2000px, 0, 0);
1067
+ transform: translate3d(-2000px, 0, 0)
1068
+ }
1069
+ to {
1070
+ opacity: 1;
1071
+ -webkit-transform: none;
1072
+ transform: none
1073
+ }
1074
+ }
1075
+ .fadeInLeftBig {
1076
+ -webkit-animation-name: fadeInLeftBig;
1077
+ animation-name: fadeInLeftBig
1078
+ }
1079
+ @-webkit-keyframes fadeInRight {
1080
+ from {
1081
+ opacity: 0;
1082
+ -webkit-transform: translate3d(100%, 0, 0);
1083
+ transform: translate3d(100%, 0, 0)
1084
+ }
1085
+ to {
1086
+ opacity: 1;
1087
+ -webkit-transform: none;
1088
+ transform: none
1089
+ }
1090
+ }
1091
+ @keyframes fadeInRight {
1092
+ from {
1093
+ opacity: 0;
1094
+ -webkit-transform: translate3d(100%, 0, 0);
1095
+ transform: translate3d(100%, 0, 0)
1096
+ }
1097
+ to {
1098
+ opacity: 1;
1099
+ -webkit-transform: none;
1100
+ transform: none
1101
+ }
1102
+ }
1103
+ .fadeInRight {
1104
+ -webkit-animation-name: fadeInRight;
1105
+ animation-name: fadeInRight
1106
+ }
1107
+ @-webkit-keyframes fadeInRightBig {
1108
+ from {
1109
+ opacity: 0;
1110
+ -webkit-transform: translate3d(2000px, 0, 0);
1111
+ transform: translate3d(2000px, 0, 0)
1112
+ }
1113
+ to {
1114
+ opacity: 1;
1115
+ -webkit-transform: none;
1116
+ transform: none
1117
+ }
1118
+ }
1119
+ @keyframes fadeInRightBig {
1120
+ from {
1121
+ opacity: 0;
1122
+ -webkit-transform: translate3d(2000px, 0, 0);
1123
+ transform: translate3d(2000px, 0, 0)
1124
+ }
1125
+ to {
1126
+ opacity: 1;
1127
+ -webkit-transform: none;
1128
+ transform: none
1129
+ }
1130
+ }
1131
+ .fadeInRightBig {
1132
+ -webkit-animation-name: fadeInRightBig;
1133
+ animation-name: fadeInRightBig
1134
+ }
1135
+ @-webkit-keyframes fadeInUp {
1136
+ from {
1137
+ opacity: 0;
1138
+ -webkit-transform: translate3d(0, 100%, 0);
1139
+ transform: translate3d(0, 100%, 0)
1140
+ }
1141
+ to {
1142
+ opacity: 1;
1143
+ -webkit-transform: none;
1144
+ transform: none
1145
+ }
1146
+ }
1147
+ @keyframes fadeInUp {
1148
+ from {
1149
+ opacity: 0;
1150
+ -webkit-transform: translate3d(0, 100%, 0);
1151
+ transform: translate3d(0, 100%, 0)
1152
+ }
1153
+ to {
1154
+ opacity: 1;
1155
+ -webkit-transform: none;
1156
+ transform: none
1157
+ }
1158
+ }
1159
+ .fadeInUp {
1160
+ -webkit-animation-name: fadeInUp;
1161
+ animation-name: fadeInUp
1162
+ }
1163
+ @-webkit-keyframes fadeInUpBig {
1164
+ from {
1165
+ opacity: 0;
1166
+ -webkit-transform: translate3d(0, 2000px, 0);
1167
+ transform: translate3d(0, 2000px, 0)
1168
+ }
1169
+ to {
1170
+ opacity: 1;
1171
+ -webkit-transform: none;
1172
+ transform: none
1173
+ }
1174
+ }
1175
+ @keyframes fadeInUpBig {
1176
+ from {
1177
+ opacity: 0;
1178
+ -webkit-transform: translate3d(0, 2000px, 0);
1179
+ transform: translate3d(0, 2000px, 0)
1180
+ }
1181
+ to {
1182
+ opacity: 1;
1183
+ -webkit-transform: none;
1184
+ transform: none
1185
+ }
1186
+ }
1187
+ .fadeInUpBig {
1188
+ -webkit-animation-name: fadeInUpBig;
1189
+ animation-name: fadeInUpBig
1190
+ }
1191
+ @-webkit-keyframes fadeOut {
1192
+ from {
1193
+ opacity: 1
1194
+ }
1195
+ to {
1196
+ opacity: 0
1197
+ }
1198
+ }
1199
+ @keyframes fadeOut {
1200
+ from {
1201
+ opacity: 1
1202
+ }
1203
+ to {
1204
+ opacity: 0
1205
+ }
1206
+ }
1207
+ .fadeOut {
1208
+ -webkit-animation-name: fadeOut;
1209
+ animation-name: fadeOut
1210
+ }
1211
+ @-webkit-keyframes fadeOutDown {
1212
+ from {
1213
+ opacity: 1
1214
+ }
1215
+ to {
1216
+ opacity: 0;
1217
+ -webkit-transform: translate3d(0, 100%, 0);
1218
+ transform: translate3d(0, 100%, 0)
1219
+ }
1220
+ }
1221
+ @keyframes fadeOutDown {
1222
+ from {
1223
+ opacity: 1
1224
+ }
1225
+ to {
1226
+ opacity: 0;
1227
+ -webkit-transform: translate3d(0, 100%, 0);
1228
+ transform: translate3d(0, 100%, 0)
1229
+ }
1230
+ }
1231
+ .fadeOutDown {
1232
+ -webkit-animation-name: fadeOutDown;
1233
+ animation-name: fadeOutDown
1234
+ }
1235
+ @-webkit-keyframes fadeOutDownBig {
1236
+ from {
1237
+ opacity: 1
1238
+ }
1239
+ to {
1240
+ opacity: 0;
1241
+ -webkit-transform: translate3d(0, 2000px, 0);
1242
+ transform: translate3d(0, 2000px, 0)
1243
+ }
1244
+ }
1245
+ @keyframes fadeOutDownBig {
1246
+ from {
1247
+ opacity: 1
1248
+ }
1249
+ to {
1250
+ opacity: 0;
1251
+ -webkit-transform: translate3d(0, 2000px, 0);
1252
+ transform: translate3d(0, 2000px, 0)
1253
+ }
1254
+ }
1255
+ .fadeOutDownBig {
1256
+ -webkit-animation-name: fadeOutDownBig;
1257
+ animation-name: fadeOutDownBig
1258
+ }
1259
+ @-webkit-keyframes fadeOutLeft {
1260
+ from {
1261
+ opacity: 1
1262
+ }
1263
+ to {
1264
+ opacity: 0;
1265
+ -webkit-transform: translate3d(-100%, 0, 0);
1266
+ transform: translate3d(-100%, 0, 0)
1267
+ }
1268
+ }
1269
+ @keyframes fadeOutLeft {
1270
+ from {
1271
+ opacity: 1
1272
+ }
1273
+ to {
1274
+ opacity: 0;
1275
+ -webkit-transform: translate3d(-100%, 0, 0);
1276
+ transform: translate3d(-100%, 0, 0)
1277
+ }
1278
+ }
1279
+ .fadeOutLeft {
1280
+ -webkit-animation-name: fadeOutLeft;
1281
+ animation-name: fadeOutLeft
1282
+ }
1283
+ @-webkit-keyframes fadeOutLeftBig {
1284
+ from {
1285
+ opacity: 1
1286
+ }
1287
+ to {
1288
+ opacity: 0;
1289
+ -webkit-transform: translate3d(-2000px, 0, 0);
1290
+ transform: translate3d(-2000px, 0, 0)
1291
+ }
1292
+ }
1293
+ @keyframes fadeOutLeftBig {
1294
+ from {
1295
+ opacity: 1
1296
+ }
1297
+ to {
1298
+ opacity: 0;
1299
+ -webkit-transform: translate3d(-2000px, 0, 0);
1300
+ transform: translate3d(-2000px, 0, 0)
1301
+ }
1302
+ }
1303
+ .fadeOutLeftBig {
1304
+ -webkit-animation-name: fadeOutLeftBig;
1305
+ animation-name: fadeOutLeftBig
1306
+ }
1307
+ @-webkit-keyframes fadeOutRight {
1308
+ from {
1309
+ opacity: 1
1310
+ }
1311
+ to {
1312
+ opacity: 0;
1313
+ -webkit-transform: translate3d(100%, 0, 0);
1314
+ transform: translate3d(100%, 0, 0)
1315
+ }
1316
+ }
1317
+ @keyframes fadeOutRight {
1318
+ from {
1319
+ opacity: 1
1320
+ }
1321
+ to {
1322
+ opacity: 0;
1323
+ -webkit-transform: translate3d(100%, 0, 0);
1324
+ transform: translate3d(100%, 0, 0)
1325
+ }
1326
+ }
1327
+ .fadeOutRight {
1328
+ -webkit-animation-name: fadeOutRight;
1329
+ animation-name: fadeOutRight
1330
+ }
1331
+ @-webkit-keyframes fadeOutRightBig {
1332
+ from {
1333
+ opacity: 1
1334
+ }
1335
+ to {
1336
+ opacity: 0;
1337
+ -webkit-transform: translate3d(2000px, 0, 0);
1338
+ transform: translate3d(2000px, 0, 0)
1339
+ }
1340
+ }
1341
+ @keyframes fadeOutRightBig {
1342
+ from {
1343
+ opacity: 1
1344
+ }
1345
+ to {
1346
+ opacity: 0;
1347
+ -webkit-transform: translate3d(2000px, 0, 0);
1348
+ transform: translate3d(2000px, 0, 0)
1349
+ }
1350
+ }
1351
+ .fadeOutRightBig {
1352
+ -webkit-animation-name: fadeOutRightBig;
1353
+ animation-name: fadeOutRightBig
1354
+ }
1355
+ @-webkit-keyframes fadeOutUp {
1356
+ from {
1357
+ opacity: 1
1358
+ }
1359
+ to {
1360
+ opacity: 0;
1361
+ -webkit-transform: translate3d(0, -100%, 0);
1362
+ transform: translate3d(0, -100%, 0)
1363
+ }
1364
+ }
1365
+ @keyframes fadeOutUp {
1366
+ from {
1367
+ opacity: 1
1368
+ }
1369
+ to {
1370
+ opacity: 0;
1371
+ -webkit-transform: translate3d(0, -100%, 0);
1372
+ transform: translate3d(0, -100%, 0)
1373
+ }
1374
+ }
1375
+ .fadeOutUp {
1376
+ -webkit-animation-name: fadeOutUp;
1377
+ animation-name: fadeOutUp
1378
+ }
1379
+ @-webkit-keyframes fadeOutUpBig {
1380
+ from {
1381
+ opacity: 1
1382
+ }
1383
+ to {
1384
+ opacity: 0;
1385
+ -webkit-transform: translate3d(0, -2000px, 0);
1386
+ transform: translate3d(0, -2000px, 0)
1387
+ }
1388
+ }
1389
+ @keyframes fadeOutUpBig {
1390
+ from {
1391
+ opacity: 1
1392
+ }
1393
+ to {
1394
+ opacity: 0;
1395
+ -webkit-transform: translate3d(0, -2000px, 0);
1396
+ transform: translate3d(0, -2000px, 0)
1397
+ }
1398
+ }
1399
+ .fadeOutUpBig {
1400
+ -webkit-animation-name: fadeOutUpBig;
1401
+ animation-name: fadeOutUpBig
1402
+ }
1403
+ @-webkit-keyframes flip {
1404
+ from {
1405
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1406
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1407
+ -webkit-animation-timing-function: ease-out;
1408
+ animation-timing-function: ease-out
1409
+ }
1410
+ 40% {
1411
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1412
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1413
+ -webkit-animation-timing-function: ease-out;
1414
+ animation-timing-function: ease-out
1415
+ }
1416
+ 50% {
1417
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1418
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1419
+ -webkit-animation-timing-function: ease-in;
1420
+ animation-timing-function: ease-in
1421
+ }
1422
+ 80% {
1423
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1424
+ transform: perspective(400px) scale3d(.95, .95, .95);
1425
+ -webkit-animation-timing-function: ease-in;
1426
+ animation-timing-function: ease-in
1427
+ }
1428
+ to {
1429
+ -webkit-transform: perspective(400px);
1430
+ transform: perspective(400px);
1431
+ -webkit-animation-timing-function: ease-in;
1432
+ animation-timing-function: ease-in
1433
+ }
1434
+ }
1435
+ @keyframes flip {
1436
+ from {
1437
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1438
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
1439
+ -webkit-animation-timing-function: ease-out;
1440
+ animation-timing-function: ease-out
1441
+ }
1442
+ 40% {
1443
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1444
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
1445
+ -webkit-animation-timing-function: ease-out;
1446
+ animation-timing-function: ease-out
1447
+ }
1448
+ 50% {
1449
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1450
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
1451
+ -webkit-animation-timing-function: ease-in;
1452
+ animation-timing-function: ease-in
1453
+ }
1454
+ 80% {
1455
+ -webkit-transform: perspective(400px) scale3d(.95, .95, .95);
1456
+ transform: perspective(400px) scale3d(.95, .95, .95);
1457
+ -webkit-animation-timing-function: ease-in;
1458
+ animation-timing-function: ease-in
1459
+ }
1460
+ to {
1461
+ -webkit-transform: perspective(400px);
1462
+ transform: perspective(400px);
1463
+ -webkit-animation-timing-function: ease-in;
1464
+ animation-timing-function: ease-in
1465
+ }
1466
+ }
1467
+ .sg-animated.flip {
1468
+ -webkit-backface-visibility: visible;
1469
+ backface-visibility: visible;
1470
+ -webkit-animation-name: flip;
1471
+ animation-name: flip
1472
+ }
1473
+ @-webkit-keyframes flipInX {
1474
+ from {
1475
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1476
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1477
+ -webkit-animation-timing-function: ease-in;
1478
+ animation-timing-function: ease-in;
1479
+ opacity: 0
1480
+ }
1481
+ 40% {
1482
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1483
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1484
+ -webkit-animation-timing-function: ease-in;
1485
+ animation-timing-function: ease-in
1486
+ }
1487
+ 60% {
1488
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1489
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1490
+ opacity: 1
1491
+ }
1492
+ 80% {
1493
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1494
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1495
+ }
1496
+ to {
1497
+ -webkit-transform: perspective(400px);
1498
+ transform: perspective(400px)
1499
+ }
1500
+ }
1501
+ @keyframes flipInX {
1502
+ from {
1503
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1504
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1505
+ -webkit-animation-timing-function: ease-in;
1506
+ animation-timing-function: ease-in;
1507
+ opacity: 0
1508
+ }
1509
+ 40% {
1510
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1511
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1512
+ -webkit-animation-timing-function: ease-in;
1513
+ animation-timing-function: ease-in
1514
+ }
1515
+ 60% {
1516
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1517
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
1518
+ opacity: 1
1519
+ }
1520
+ 80% {
1521
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
1522
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg)
1523
+ }
1524
+ to {
1525
+ -webkit-transform: perspective(400px);
1526
+ transform: perspective(400px)
1527
+ }
1528
+ }
1529
+ .flipInX {
1530
+ backface-visibility: visible!important;
1531
+ -webkit-animation-name: flipInX;
1532
+ animation-name: flipInX
1533
+ }
1534
+ .flipInX,
1535
+ .flipInY {
1536
+ -webkit-backface-visibility: visible!important
1537
+ }
1538
+ @-webkit-keyframes flipInY {
1539
+ from {
1540
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1541
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1542
+ -webkit-animation-timing-function: ease-in;
1543
+ animation-timing-function: ease-in;
1544
+ opacity: 0
1545
+ }
1546
+ 40% {
1547
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1548
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1549
+ -webkit-animation-timing-function: ease-in;
1550
+ animation-timing-function: ease-in
1551
+ }
1552
+ 60% {
1553
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1554
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1555
+ opacity: 1
1556
+ }
1557
+ 80% {
1558
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1559
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
1560
+ }
1561
+ to {
1562
+ -webkit-transform: perspective(400px);
1563
+ transform: perspective(400px)
1564
+ }
1565
+ }
1566
+ @keyframes flipInY {
1567
+ from {
1568
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1569
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1570
+ -webkit-animation-timing-function: ease-in;
1571
+ animation-timing-function: ease-in;
1572
+ opacity: 0
1573
+ }
1574
+ 40% {
1575
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1576
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
1577
+ -webkit-animation-timing-function: ease-in;
1578
+ animation-timing-function: ease-in
1579
+ }
1580
+ 60% {
1581
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1582
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
1583
+ opacity: 1
1584
+ }
1585
+ 80% {
1586
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
1587
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg)
1588
+ }
1589
+ to {
1590
+ -webkit-transform: perspective(400px);
1591
+ transform: perspective(400px)
1592
+ }
1593
+ }
1594
+ .flipInY {
1595
+ backface-visibility: visible!important;
1596
+ -webkit-animation-name: flipInY;
1597
+ animation-name: flipInY
1598
+ }
1599
+ @-webkit-keyframes flipOutX {
1600
+ from {
1601
+ -webkit-transform: perspective(400px);
1602
+ transform: perspective(400px)
1603
+ }
1604
+ 30% {
1605
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1606
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1607
+ opacity: 1
1608
+ }
1609
+ to {
1610
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1611
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1612
+ opacity: 0
1613
+ }
1614
+ }
1615
+ @keyframes flipOutX {
1616
+ from {
1617
+ -webkit-transform: perspective(400px);
1618
+ transform: perspective(400px)
1619
+ }
1620
+ 30% {
1621
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1622
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
1623
+ opacity: 1
1624
+ }
1625
+ to {
1626
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1627
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
1628
+ opacity: 0
1629
+ }
1630
+ }
1631
+ .flipOutX {
1632
+ -webkit-animation-name: flipOutX;
1633
+ animation-name: flipOutX;
1634
+ backface-visibility: visible!important
1635
+ }
1636
+ .flipOutX,
1637
+ .flipOutY {
1638
+ -webkit-backface-visibility: visible!important
1639
+ }
1640
+ @-webkit-keyframes flipOutY {
1641
+ from {
1642
+ -webkit-transform: perspective(400px);
1643
+ transform: perspective(400px)
1644
+ }
1645
+ 30% {
1646
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1647
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1648
+ opacity: 1
1649
+ }
1650
+ to {
1651
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1652
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1653
+ opacity: 0
1654
+ }
1655
+ }
1656
+ @keyframes flipOutY {
1657
+ from {
1658
+ -webkit-transform: perspective(400px);
1659
+ transform: perspective(400px)
1660
+ }
1661
+ 30% {
1662
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1663
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
1664
+ opacity: 1
1665
+ }
1666
+ to {
1667
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1668
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
1669
+ opacity: 0
1670
+ }
1671
+ }
1672
+ .flipOutY {
1673
+ backface-visibility: visible!important;
1674
+ -webkit-animation-name: flipOutY;
1675
+ animation-name: flipOutY
1676
+ }
1677
+ @-webkit-keyframes lightSpeedIn {
1678
+ from {
1679
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1680
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
1681
+ opacity: 0
1682
+ }
1683
+ 60% {
1684
+ -webkit-transform: skewX(20deg);
1685
+ transform: skewX(20deg);
1686
+ opacity: 1
1687
+ }
1688
+ 80% {
1689
+ -webkit-transform: skewX(-5deg);
1690
+ transform: skewX(-5deg);
1691
+ opacity: 1
1692
+ }
1693
+ to {
1694
+ -webkit-transform: none;
1695
+ transform: none;
1696
+ opacity: 1
1697
+ }
1698
+ }
1699
+ @keyframes lightSpeedIn {
1700
+ from {
1701
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
1702
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
1703
+ opacity: 0
1704
+ }
1705
+ 60% {
1706
+ -webkit-transform: skewX(20deg);
1707
+ transform: skewX(20deg);
1708
+ opacity: 1
1709
+ }
1710
+ 80% {
1711
+ -webkit-transform: skewX(-5deg);
1712
+ transform: skewX(-5deg);
1713
+ opacity: 1
1714
+ }
1715
+ to {
1716
+ -webkit-transform: none;
1717
+ transform: none;
1718
+ opacity: 1
1719
+ }
1720
+ }
1721
+ .lightSpeedIn {
1722
+ -webkit-animation-name: lightSpeedIn;
1723
+ animation-name: lightSpeedIn;
1724
+ -webkit-animation-timing-function: ease-out;
1725
+ animation-timing-function: ease-out
1726
+ }
1727
+ @-webkit-keyframes lightSpeedOut {
1728
+ from {
1729
+ opacity: 1
1730
+ }
1731
+ to {
1732
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1733
+ transform: translate3d(100%, 0, 0) skewX(30deg);
1734
+ opacity: 0
1735
+ }
1736
+ }
1737
+ @keyframes lightSpeedOut {
1738
+ from {
1739
+ opacity: 1
1740
+ }
1741
+ to {
1742
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
1743
+ transform: translate3d(100%, 0, 0) skewX(30deg);
1744
+ opacity: 0
1745
+ }
1746
+ }
1747
+ .lightSpeedOut {
1748
+ -webkit-animation-name: lightSpeedOut;
1749
+ animation-name: lightSpeedOut;
1750
+ -webkit-animation-timing-function: ease-in;
1751
+ animation-timing-function: ease-in
1752
+ }
1753
+ @-webkit-keyframes rotateIn {
1754
+ from {
1755
+ -webkit-transform-origin: center;
1756
+ transform-origin: center;
1757
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
1758
+ transform: rotate3d(0, 0, 1, -200deg);
1759
+ opacity: 0
1760
+ }
1761
+ to {
1762
+ -webkit-transform-origin: center;
1763
+ transform-origin: center;
1764
+ -webkit-transform: none;
1765
+ transform: none;
1766
+ opacity: 1
1767
+ }
1768
+ }
1769
+ @keyframes rotateIn {
1770
+ from {
1771
+ -webkit-transform-origin: center;
1772
+ transform-origin: center;
1773
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
1774
+ transform: rotate3d(0, 0, 1, -200deg);
1775
+ opacity: 0
1776
+ }
1777
+ to {
1778
+ -webkit-transform-origin: center;
1779
+ transform-origin: center;
1780
+ -webkit-transform: none;
1781
+ transform: none;
1782
+ opacity: 1
1783
+ }
1784
+ }
1785
+ .rotateIn {
1786
+ -webkit-animation-name: rotateIn;
1787
+ animation-name: rotateIn
1788
+ }
1789
+ @-webkit-keyframes rotateInDownLeft {
1790
+ from {
1791
+ -webkit-transform-origin: left bottom;
1792
+ transform-origin: left bottom;
1793
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
1794
+ transform: rotate3d(0, 0, 1, -45deg);
1795
+ opacity: 0
1796
+ }
1797
+ to {
1798
+ -webkit-transform-origin: left bottom;
1799
+ transform-origin: left bottom;
1800
+ -webkit-transform: none;
1801
+ transform: none;
1802
+ opacity: 1
1803
+ }
1804
+ }
1805
+ @keyframes rotateInDownLeft {
1806
+ from {
1807
+ -webkit-transform-origin: left bottom;
1808
+ transform-origin: left bottom;
1809
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
1810
+ transform: rotate3d(0, 0, 1, -45deg);
1811
+ opacity: 0
1812
+ }
1813
+ to {
1814
+ -webkit-transform-origin: left bottom;
1815
+ transform-origin: left bottom;
1816
+ -webkit-transform: none;
1817
+ transform: none;
1818
+ opacity: 1
1819
+ }
1820
+ }
1821
+ .rotateInDownLeft {
1822
+ -webkit-animation-name: rotateInDownLeft;
1823
+ animation-name: rotateInDownLeft
1824
+ }
1825
+ @-webkit-keyframes rotateInDownRight {
1826
+ from {
1827
+ -webkit-transform-origin: right bottom;
1828
+ transform-origin: right bottom;
1829
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1830
+ transform: rotate3d(0, 0, 1, 45deg);
1831
+ opacity: 0
1832
+ }
1833
+ to {
1834
+ -webkit-transform-origin: right bottom;
1835
+ transform-origin: right bottom;
1836
+ -webkit-transform: none;
1837
+ transform: none;
1838
+ opacity: 1
1839
+ }
1840
+ }
1841
+ @keyframes rotateInDownRight {
1842
+ from {
1843
+ -webkit-transform-origin: right bottom;
1844
+ transform-origin: right bottom;
1845
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1846
+ transform: rotate3d(0, 0, 1, 45deg);
1847
+ opacity: 0
1848
+ }
1849
+ to {
1850
+ -webkit-transform-origin: right bottom;
1851
+ transform-origin: right bottom;
1852
+ -webkit-transform: none;
1853
+ transform: none;
1854
+ opacity: 1
1855
+ }
1856
+ }
1857
+ .rotateInDownRight {
1858
+ -webkit-animation-name: rotateInDownRight;
1859
+ animation-name: rotateInDownRight
1860
+ }
1861
+ @-webkit-keyframes rotateInUpLeft {
1862
+ from {
1863
+ -webkit-transform-origin: left bottom;
1864
+ transform-origin: left bottom;
1865
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1866
+ transform: rotate3d(0, 0, 1, 45deg);
1867
+ opacity: 0
1868
+ }
1869
+ to {
1870
+ -webkit-transform-origin: left bottom;
1871
+ transform-origin: left bottom;
1872
+ -webkit-transform: none;
1873
+ transform: none;
1874
+ opacity: 1
1875
+ }
1876
+ }
1877
+ @keyframes rotateInUpLeft {
1878
+ from {
1879
+ -webkit-transform-origin: left bottom;
1880
+ transform-origin: left bottom;
1881
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1882
+ transform: rotate3d(0, 0, 1, 45deg);
1883
+ opacity: 0
1884
+ }
1885
+ to {
1886
+ -webkit-transform-origin: left bottom;
1887
+ transform-origin: left bottom;
1888
+ -webkit-transform: none;
1889
+ transform: none;
1890
+ opacity: 1
1891
+ }
1892
+ }
1893
+ .rotateInUpLeft {
1894
+ -webkit-animation-name: rotateInUpLeft;
1895
+ animation-name: rotateInUpLeft
1896
+ }
1897
+ @-webkit-keyframes rotateInUpRight {
1898
+ from {
1899
+ -webkit-transform-origin: right bottom;
1900
+ transform-origin: right bottom;
1901
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
1902
+ transform: rotate3d(0, 0, 1, -90deg);
1903
+ opacity: 0
1904
+ }
1905
+ to {
1906
+ -webkit-transform-origin: right bottom;
1907
+ transform-origin: right bottom;
1908
+ -webkit-transform: none;
1909
+ transform: none;
1910
+ opacity: 1
1911
+ }
1912
+ }
1913
+ @keyframes rotateInUpRight {
1914
+ from {
1915
+ -webkit-transform-origin: right bottom;
1916
+ transform-origin: right bottom;
1917
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
1918
+ transform: rotate3d(0, 0, 1, -90deg);
1919
+ opacity: 0
1920
+ }
1921
+ to {
1922
+ -webkit-transform-origin: right bottom;
1923
+ transform-origin: right bottom;
1924
+ -webkit-transform: none;
1925
+ transform: none;
1926
+ opacity: 1
1927
+ }
1928
+ }
1929
+ .rotateInUpRight {
1930
+ -webkit-animation-name: rotateInUpRight;
1931
+ animation-name: rotateInUpRight
1932
+ }
1933
+ @-webkit-keyframes rotateOut {
1934
+ from {
1935
+ -webkit-transform-origin: center;
1936
+ transform-origin: center;
1937
+ opacity: 1
1938
+ }
1939
+ to {
1940
+ -webkit-transform-origin: center;
1941
+ transform-origin: center;
1942
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
1943
+ transform: rotate3d(0, 0, 1, 200deg);
1944
+ opacity: 0
1945
+ }
1946
+ }
1947
+ @keyframes rotateOut {
1948
+ from {
1949
+ -webkit-transform-origin: center;
1950
+ transform-origin: center;
1951
+ opacity: 1
1952
+ }
1953
+ to {
1954
+ -webkit-transform-origin: center;
1955
+ transform-origin: center;
1956
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
1957
+ transform: rotate3d(0, 0, 1, 200deg);
1958
+ opacity: 0
1959
+ }
1960
+ }
1961
+ .rotateOut {
1962
+ -webkit-animation-name: rotateOut;
1963
+ animation-name: rotateOut
1964
+ }
1965
+ @-webkit-keyframes rotateOutDownLeft {
1966
+ from {
1967
+ -webkit-transform-origin: left bottom;
1968
+ transform-origin: left bottom;
1969
+ opacity: 1
1970
+ }
1971
+ to {
1972
+ -webkit-transform-origin: left bottom;
1973
+ transform-origin: left bottom;
1974
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1975
+ transform: rotate3d(0, 0, 1, 45deg);
1976
+ opacity: 0
1977
+ }
1978
+ }
1979
+ @keyframes rotateOutDownLeft {
1980
+ from {
1981
+ -webkit-transform-origin: left bottom;
1982
+ transform-origin: left bottom;
1983
+ opacity: 1
1984
+ }
1985
+ to {
1986
+ -webkit-transform-origin: left bottom;
1987
+ transform-origin: left bottom;
1988
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
1989
+ transform: rotate3d(0, 0, 1, 45deg);
1990
+ opacity: 0
1991
+ }
1992
+ }
1993
+ .rotateOutDownLeft {
1994
+ -webkit-animation-name: rotateOutDownLeft;
1995
+ animation-name: rotateOutDownLeft
1996
+ }
1997
+ @-webkit-keyframes rotateOutDownRight {
1998
+ from {
1999
+ -webkit-transform-origin: right bottom;
2000
+ transform-origin: right bottom;
2001
+ opacity: 1
2002
+ }
2003
+ to {
2004
+ -webkit-transform-origin: right bottom;
2005
+ transform-origin: right bottom;
2006
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2007
+ transform: rotate3d(0, 0, 1, -45deg);
2008
+ opacity: 0
2009
+ }
2010
+ }
2011
+ @keyframes rotateOutDownRight {
2012
+ from {
2013
+ -webkit-transform-origin: right bottom;
2014
+ transform-origin: right bottom;
2015
+ opacity: 1
2016
+ }
2017
+ to {
2018
+ -webkit-transform-origin: right bottom;
2019
+ transform-origin: right bottom;
2020
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2021
+ transform: rotate3d(0, 0, 1, -45deg);
2022
+ opacity: 0
2023
+ }
2024
+ }
2025
+ .rotateOutDownRight {
2026
+ -webkit-animation-name: rotateOutDownRight;
2027
+ animation-name: rotateOutDownRight
2028
+ }
2029
+ @-webkit-keyframes rotateOutUpLeft {
2030
+ from {
2031
+ -webkit-transform-origin: left bottom;
2032
+ transform-origin: left bottom;
2033
+ opacity: 1
2034
+ }
2035
+ to {
2036
+ -webkit-transform-origin: left bottom;
2037
+ transform-origin: left bottom;
2038
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2039
+ transform: rotate3d(0, 0, 1, -45deg);
2040
+ opacity: 0
2041
+ }
2042
+ }
2043
+ @keyframes rotateOutUpLeft {
2044
+ from {
2045
+ -webkit-transform-origin: left bottom;
2046
+ transform-origin: left bottom;
2047
+ opacity: 1
2048
+ }
2049
+ to {
2050
+ -webkit-transform-origin: left bottom;
2051
+ transform-origin: left bottom;
2052
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2053
+ transform: rotate3d(0, 0, 1, -45deg);
2054
+ opacity: 0
2055
+ }
2056
+ }
2057
+ .rotateOutUpLeft {
2058
+ -webkit-animation-name: rotateOutUpLeft;
2059
+ animation-name: rotateOutUpLeft
2060
+ }
2061
+ @-webkit-keyframes rotateOutUpRight {
2062
+ from {
2063
+ -webkit-transform-origin: right bottom;
2064
+ transform-origin: right bottom;
2065
+ opacity: 1
2066
+ }
2067
+ to {
2068
+ -webkit-transform-origin: right bottom;
2069
+ transform-origin: right bottom;
2070
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2071
+ transform: rotate3d(0, 0, 1, 90deg);
2072
+ opacity: 0
2073
+ }
2074
+ }
2075
+ @keyframes rotateOutUpRight {
2076
+ from {
2077
+ -webkit-transform-origin: right bottom;
2078
+ transform-origin: right bottom;
2079
+ opacity: 1
2080
+ }
2081
+ to {
2082
+ -webkit-transform-origin: right bottom;
2083
+ transform-origin: right bottom;
2084
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2085
+ transform: rotate3d(0, 0, 1, 90deg);
2086
+ opacity: 0
2087
+ }
2088
+ }
2089
+ .rotateOutUpRight {
2090
+ -webkit-animation-name: rotateOutUpRight;
2091
+ animation-name: rotateOutUpRight
2092
+ }
2093
+ @-webkit-keyframes hinge {
2094
+ 0% {
2095
+ -webkit-transform-origin: top left;
2096
+ transform-origin: top left;
2097
+ -webkit-animation-timing-function: ease-in-out;
2098
+ animation-timing-function: ease-in-out
2099
+ }
2100
+ 20%,
2101
+ 60% {
2102
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2103
+ transform: rotate3d(0, 0, 1, 80deg);
2104
+ -webkit-transform-origin: top left;
2105
+ transform-origin: top left;
2106
+ -webkit-animation-timing-function: ease-in-out;
2107
+ animation-timing-function: ease-in-out
2108
+ }
2109
+ 40%,
2110
+ 80% {
2111
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2112
+ transform: rotate3d(0, 0, 1, 60deg);
2113
+ -webkit-transform-origin: top left;
2114
+ transform-origin: top left;
2115
+ -webkit-animation-timing-function: ease-in-out;
2116
+ animation-timing-function: ease-in-out;
2117
+ opacity: 1
2118
+ }
2119
+ to {
2120
+ -webkit-transform: translate3d(0, 700px, 0);
2121
+ transform: translate3d(0, 700px, 0);
2122
+ opacity: 0
2123
+ }
2124
+ }
2125
+ @keyframes hinge {
2126
+ 0% {
2127
+ -webkit-transform-origin: top left;
2128
+ transform-origin: top left;
2129
+ -webkit-animation-timing-function: ease-in-out;
2130
+ animation-timing-function: ease-in-out
2131
+ }
2132
+ 20%,
2133
+ 60% {
2134
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2135
+ transform: rotate3d(0, 0, 1, 80deg);
2136
+ -webkit-transform-origin: top left;
2137
+ transform-origin: top left;
2138
+ -webkit-animation-timing-function: ease-in-out;
2139
+ animation-timing-function: ease-in-out
2140
+ }
2141
+ 40%,
2142
+ 80% {
2143
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2144
+ transform: rotate3d(0, 0, 1, 60deg);
2145
+ -webkit-transform-origin: top left;
2146
+ transform-origin: top left;
2147
+ -webkit-animation-timing-function: ease-in-out;
2148
+ animation-timing-function: ease-in-out;
2149
+ opacity: 1
2150
+ }
2151
+ to {
2152
+ -webkit-transform: translate3d(0, 700px, 0);
2153
+ transform: translate3d(0, 700px, 0);
2154
+ opacity: 0
2155
+ }
2156
+ }
2157
+ .hinge {
2158
+ -webkit-animation-name: hinge;
2159
+ animation-name: hinge
2160
+ }
2161
+ @-webkit-keyframes rollIn {
2162
+ from {
2163
+ opacity: 0;
2164
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2165
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2166
+ }
2167
+ to {
2168
+ opacity: 1;
2169
+ -webkit-transform: none;
2170
+ transform: none
2171
+ }
2172
+ }
2173
+ @keyframes rollIn {
2174
+ from {
2175
+ opacity: 0;
2176
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2177
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)
2178
+ }
2179
+ to {
2180
+ opacity: 1;
2181
+ -webkit-transform: none;
2182
+ transform: none
2183
+ }
2184
+ }
2185
+ .rollIn {
2186
+ -webkit-animation-name: rollIn;
2187
+ animation-name: rollIn
2188
+ }
2189
+ @-webkit-keyframes rollOut {
2190
+ from {
2191
+ opacity: 1
2192
+ }
2193
+ to {
2194
+ opacity: 0;
2195
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2196
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2197
+ }
2198
+ }
2199
+ @keyframes rollOut {
2200
+ from {
2201
+ opacity: 1
2202
+ }
2203
+ to {
2204
+ opacity: 0;
2205
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2206
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)
2207
+ }
2208
+ }
2209
+ .rollOut {
2210
+ -webkit-animation-name: rollOut;
2211
+ animation-name: rollOut
2212
+ }
2213
+ @-webkit-keyframes zoomIn {
2214
+ from {
2215
+ opacity: 0;
2216
+ -webkit-transform: scale3d(.3, .3, .3);
2217
+ transform: scale3d(.3, .3, .3)
2218
+ }
2219
+ 50% {
2220
+ opacity: 1
2221
+ }
2222
+ }
2223
+ @keyframes zoomIn {
2224
+ from {
2225
+ opacity: 0;
2226
+ -webkit-transform: scale3d(.3, .3, .3);
2227
+ transform: scale3d(.3, .3, .3)
2228
+ }
2229
+ 50% {
2230
+ opacity: 1
2231
+ }
2232
+ }
2233
+ .zoomIn {
2234
+ -webkit-animation-name: zoomIn;
2235
+ animation-name: zoomIn
2236
+ }
2237
+ @-webkit-keyframes zoomInDown {
2238
+ from {
2239
+ opacity: 0;
2240
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2241
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2242
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2243
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2244
+ }
2245
+ 60% {
2246
+ opacity: 1;
2247
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2248
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2249
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2250
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2251
+ }
2252
+ }
2253
+ @keyframes zoomInDown {
2254
+ from {
2255
+ opacity: 0;
2256
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2257
+ transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
2258
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2259
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2260
+ }
2261
+ 60% {
2262
+ opacity: 1;
2263
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2264
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2265
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2266
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2267
+ }
2268
+ }
2269
+ .zoomInDown {
2270
+ -webkit-animation-name: zoomInDown;
2271
+ animation-name: zoomInDown
2272
+ }
2273
+ @-webkit-keyframes zoomInLeft {
2274
+ from {
2275
+ opacity: 0;
2276
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2277
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2278
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2279
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2280
+ }
2281
+ 60% {
2282
+ opacity: 1;
2283
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2284
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2285
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2286
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2287
+ }
2288
+ }
2289
+ @keyframes zoomInLeft {
2290
+ from {
2291
+ opacity: 0;
2292
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2293
+ transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
2294
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2295
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2296
+ }
2297
+ 60% {
2298
+ opacity: 1;
2299
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2300
+ transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
2301
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2302
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2303
+ }
2304
+ }
2305
+ .zoomInLeft {
2306
+ -webkit-animation-name: zoomInLeft;
2307
+ animation-name: zoomInLeft
2308
+ }
2309
+ @-webkit-keyframes zoomInRight {
2310
+ from {
2311
+ opacity: 0;
2312
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2313
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2314
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2315
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2316
+ }
2317
+ 60% {
2318
+ opacity: 1;
2319
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2320
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2321
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2322
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2323
+ }
2324
+ }
2325
+ @keyframes zoomInRight {
2326
+ from {
2327
+ opacity: 0;
2328
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2329
+ transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
2330
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2331
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2332
+ }
2333
+ 60% {
2334
+ opacity: 1;
2335
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2336
+ transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
2337
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2338
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2339
+ }
2340
+ }
2341
+ .zoomInRight {
2342
+ -webkit-animation-name: zoomInRight;
2343
+ animation-name: zoomInRight
2344
+ }
2345
+ @-webkit-keyframes zoomInUp {
2346
+ from {
2347
+ opacity: 0;
2348
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2349
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2350
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2351
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2352
+ }
2353
+ 60% {
2354
+ opacity: 1;
2355
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2356
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2357
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2358
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2359
+ }
2360
+ }
2361
+ @keyframes zoomInUp {
2362
+ from {
2363
+ opacity: 0;
2364
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2365
+ transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
2366
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2367
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2368
+ }
2369
+ 60% {
2370
+ opacity: 1;
2371
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2372
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2373
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2374
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2375
+ }
2376
+ }
2377
+ .zoomInUp {
2378
+ -webkit-animation-name: zoomInUp;
2379
+ animation-name: zoomInUp
2380
+ }
2381
+ @-webkit-keyframes zoomOut {
2382
+ from {
2383
+ opacity: 1
2384
+ }
2385
+ 50% {
2386
+ opacity: 0;
2387
+ -webkit-transform: scale3d(.3, .3, .3);
2388
+ transform: scale3d(.3, .3, .3)
2389
+ }
2390
+ to {
2391
+ opacity: 0
2392
+ }
2393
+ }
2394
+ @keyframes zoomOut {
2395
+ from {
2396
+ opacity: 1
2397
+ }
2398
+ 50% {
2399
+ opacity: 0;
2400
+ -webkit-transform: scale3d(.3, .3, .3);
2401
+ transform: scale3d(.3, .3, .3)
2402
+ }
2403
+ to {
2404
+ opacity: 0
2405
+ }
2406
+ }
2407
+ .zoomOut {
2408
+ -webkit-animation-name: zoomOut;
2409
+ animation-name: zoomOut
2410
+ }
2411
+ @-webkit-keyframes zoomOutDown {
2412
+ 40% {
2413
+ opacity: 1;
2414
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2415
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2416
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2417
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2418
+ }
2419
+ to {
2420
+ opacity: 0;
2421
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2422
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2423
+ -webkit-transform-origin: center bottom;
2424
+ transform-origin: center bottom;
2425
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2426
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2427
+ }
2428
+ }
2429
+ @keyframes zoomOutDown {
2430
+ 40% {
2431
+ opacity: 1;
2432
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2433
+ transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
2434
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2435
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2436
+ }
2437
+ to {
2438
+ opacity: 0;
2439
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2440
+ transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
2441
+ -webkit-transform-origin: center bottom;
2442
+ transform-origin: center bottom;
2443
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2444
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2445
+ }
2446
+ }
2447
+ .zoomOutDown {
2448
+ -webkit-animation-name: zoomOutDown;
2449
+ animation-name: zoomOutDown
2450
+ }
2451
+ @-webkit-keyframes zoomOutLeft {
2452
+ 40% {
2453
+ opacity: 1;
2454
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2455
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2456
+ }
2457
+ to {
2458
+ opacity: 0;
2459
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2460
+ transform: scale(.1) translate3d(-2000px, 0, 0);
2461
+ -webkit-transform-origin: left center;
2462
+ transform-origin: left center
2463
+ }
2464
+ }
2465
+ @keyframes zoomOutLeft {
2466
+ 40% {
2467
+ opacity: 1;
2468
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
2469
+ transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0)
2470
+ }
2471
+ to {
2472
+ opacity: 0;
2473
+ -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);
2474
+ transform: scale(.1) translate3d(-2000px, 0, 0);
2475
+ -webkit-transform-origin: left center;
2476
+ transform-origin: left center
2477
+ }
2478
+ }
2479
+ .zoomOutLeft {
2480
+ -webkit-animation-name: zoomOutLeft;
2481
+ animation-name: zoomOutLeft
2482
+ }
2483
+ @-webkit-keyframes zoomOutRight {
2484
+ 40% {
2485
+ opacity: 1;
2486
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2487
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
2488
+ }
2489
+ to {
2490
+ opacity: 0;
2491
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2492
+ transform: scale(.1) translate3d(2000px, 0, 0);
2493
+ -webkit-transform-origin: right center;
2494
+ transform-origin: right center
2495
+ }
2496
+ }
2497
+ @keyframes zoomOutRight {
2498
+ 40% {
2499
+ opacity: 1;
2500
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
2501
+ transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0)
2502
+ }
2503
+ to {
2504
+ opacity: 0;
2505
+ -webkit-transform: scale(.1) translate3d(2000px, 0, 0);
2506
+ transform: scale(.1) translate3d(2000px, 0, 0);
2507
+ -webkit-transform-origin: right center;
2508
+ transform-origin: right center
2509
+ }
2510
+ }
2511
+ .zoomOutRight {
2512
+ -webkit-animation-name: zoomOutRight;
2513
+ animation-name: zoomOutRight
2514
+ }
2515
+ @-webkit-keyframes zoomOutUp {
2516
+ 40% {
2517
+ opacity: 1;
2518
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2519
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2520
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2521
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2522
+ }
2523
+ to {
2524
+ opacity: 0;
2525
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2526
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2527
+ -webkit-transform-origin: center bottom;
2528
+ transform-origin: center bottom;
2529
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2530
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2531
+ }
2532
+ }
2533
+ @keyframes zoomOutUp {
2534
+ 40% {
2535
+ opacity: 1;
2536
+ -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2537
+ transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
2538
+ -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19);
2539
+ animation-timing-function: cubic-bezier(.55, .055, .675, .19)
2540
+ }
2541
+ to {
2542
+ opacity: 0;
2543
+ -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2544
+ transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
2545
+ -webkit-transform-origin: center bottom;
2546
+ transform-origin: center bottom;
2547
+ -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1);
2548
+ animation-timing-function: cubic-bezier(.175, .885, .32, 1)
2549
+ }
2550
+ }
2551
+ .zoomOutUp {
2552
+ -webkit-animation-name: zoomOutUp;
2553
+ animation-name: zoomOutUp
2554
+ }
2555
+ @-webkit-keyframes slideInDown {
2556
+ from {
2557
+ -webkit-transform: translate3d(0, -100%, 0);
2558
+ transform: translate3d(0, -100%, 0);
2559
+ visibility: visible
2560
+ }
2561
+ to {
2562
+ -webkit-transform: translate3d(0, 0, 0);
2563
+ transform: translate3d(0, 0, 0)
2564
+ }
2565
+ }
2566
+ @keyframes slideInDown {
2567
+ from {
2568
+ -webkit-transform: translate3d(0, -100%, 0);
2569
+ transform: translate3d(0, -100%, 0);
2570
+ visibility: visible
2571
+ }
2572
+ to {
2573
+ -webkit-transform: translate3d(0, 0, 0);
2574
+ transform: translate3d(0, 0, 0)
2575
+ }
2576
+ }
2577
+ .slideInDown {
2578
+ -webkit-animation-name: slideInDown;
2579
+ animation-name: slideInDown
2580
+ }
2581
+ @-webkit-keyframes slideInLeft {
2582
+ from {
2583
+ -webkit-transform: translate3d(-100%, 0, 0);
2584
+ transform: translate3d(-100%, 0, 0);
2585
+ visibility: visible
2586
+ }
2587
+ to {
2588
+ -webkit-transform: translate3d(0, 0, 0);
2589
+ transform: translate3d(0, 0, 0)
2590
+ }
2591
+ }
2592
+ @keyframes slideInLeft {
2593
+ from {
2594
+ -webkit-transform: translate3d(-100%, 0, 0);
2595
+ transform: translate3d(-100%, 0, 0);
2596
+ visibility: visible
2597
+ }
2598
+ to {
2599
+ -webkit-transform: translate3d(0, 0, 0);
2600
+ transform: translate3d(0, 0, 0)
2601
+ }
2602
+ }
2603
+ .slideInLeft {
2604
+ -webkit-animation-name: slideInLeft;
2605
+ animation-name: slideInLeft
2606
+ }
2607
+ @-webkit-keyframes slideInRight {
2608
+ from {
2609
+ -webkit-transform: translate3d(100%, 0, 0);
2610
+ transform: translate3d(100%, 0, 0);
2611
+ visibility: visible
2612
+ }
2613
+ to {
2614
+ -webkit-transform: translate3d(0, 0, 0);
2615
+ transform: translate3d(0, 0, 0)
2616
+ }
2617
+ }
2618
+ @keyframes slideInRight {
2619
+ from {
2620
+ -webkit-transform: translate3d(100%, 0, 0);
2621
+ transform: translate3d(100%, 0, 0);
2622
+ visibility: visible
2623
+ }
2624
+ to {
2625
+ -webkit-transform: translate3d(0, 0, 0);
2626
+ transform: translate3d(0, 0, 0)
2627
+ }
2628
+ }
2629
+ .slideInRight {
2630
+ -webkit-animation-name: slideInRight;
2631
+ animation-name: slideInRight
2632
+ }
2633
+ @-webkit-keyframes slideInUp {
2634
+ from {
2635
+ -webkit-transform: translate3d(0, 100%, 0);
2636
+ transform: translate3d(0, 100%, 0);
2637
+ visibility: visible
2638
+ }
2639
+ to {
2640
+ -webkit-transform: translate3d(0, 0, 0);
2641
+ transform: translate3d(0, 0, 0)
2642
+ }
2643
+ }
2644
+ @keyframes slideInUp {
2645
+ from {
2646
+ -webkit-transform: translate3d(0, 100%, 0);
2647
+ transform: translate3d(0, 100%, 0);
2648
+ visibility: visible
2649
+ }
2650
+ to {
2651
+ -webkit-transform: translate3d(0, 0, 0);
2652
+ transform: translate3d(0, 0, 0)
2653
+ }
2654
+ }
2655
+ .slideInUp {
2656
+ -webkit-animation-name: slideInUp;
2657
+ animation-name: slideInUp
2658
+ }
2659
+ @-webkit-keyframes slideOutDown {
2660
+ from {
2661
+ -webkit-transform: translate3d(0, 0, 0);
2662
+ transform: translate3d(0, 0, 0)
2663
+ }
2664
+ to {
2665
+ visibility: hidden;
2666
+ -webkit-transform: translate3d(0, 100%, 0);
2667
+ transform: translate3d(0, 100%, 0)
2668
+ }
2669
+ }
2670
+ @keyframes slideOutDown {
2671
+ from {
2672
+ -webkit-transform: translate3d(0, 0, 0);
2673
+ transform: translate3d(0, 0, 0)
2674
+ }
2675
+ to {
2676
+ visibility: hidden;
2677
+ -webkit-transform: translate3d(0, 100%, 0);
2678
+ transform: translate3d(0, 100%, 0)
2679
+ }
2680
+ }
2681
+ .slideOutDown {
2682
+ -webkit-animation-name: slideOutDown;
2683
+ animation-name: slideOutDown
2684
+ }
2685
+ @-webkit-keyframes slideOutLeft {
2686
+ from {
2687
+ -webkit-transform: translate3d(0, 0, 0);
2688
+ transform: translate3d(0, 0, 0)
2689
+ }
2690
+ to {
2691
+ visibility: hidden;
2692
+ -webkit-transform: translate3d(-100%, 0, 0);
2693
+ transform: translate3d(-100%, 0, 0)
2694
+ }
2695
+ }
2696
+ @keyframes slideOutLeft {
2697
+ from {
2698
+ -webkit-transform: translate3d(0, 0, 0);
2699
+ transform: translate3d(0, 0, 0)
2700
+ }
2701
+ to {
2702
+ visibility: hidden;
2703
+ -webkit-transform: translate3d(-100%, 0, 0);
2704
+ transform: translate3d(-100%, 0, 0)
2705
+ }
2706
+ }
2707
+ .slideOutLeft {
2708
+ -webkit-animation-name: slideOutLeft;
2709
+ animation-name: slideOutLeft
2710
+ }
2711
+ @-webkit-keyframes slideOutRight {
2712
+ from {
2713
+ -webkit-transform: translate3d(0, 0, 0);
2714
+ transform: translate3d(0, 0, 0)
2715
+ }
2716
+ to {
2717
+ visibility: hidden;
2718
+ -webkit-transform: translate3d(100%, 0, 0);
2719
+ transform: translate3d(100%, 0, 0)
2720
+ }
2721
+ }
2722
+ @keyframes slideOutRight {
2723
+ from {
2724
+ -webkit-transform: translate3d(0, 0, 0);
2725
+ transform: translate3d(0, 0, 0)
2726
+ }
2727
+ to {
2728
+ visibility: hidden;
2729
+ -webkit-transform: translate3d(100%, 0, 0);
2730
+ transform: translate3d(100%, 0, 0)
2731
+ }
2732
+ }
2733
+ .slideOutRight {
2734
+ -webkit-animation-name: slideOutRight;
2735
+ animation-name: slideOutRight
2736
+ }
2737
+ @-webkit-keyframes slideOutUp {
2738
+ from {
2739
+ -webkit-transform: translate3d(0, 0, 0);
2740
+ transform: translate3d(0, 0, 0)
2741
+ }
2742
+ to {
2743
+ visibility: hidden;
2744
+ -webkit-transform: translate3d(0, -100%, 0);
2745
+ transform: translate3d(0, -100%, 0)
2746
+ }
2747
+ }
2748
+ @keyframes slideOutUp {
2749
+ from {
2750
+ -webkit-transform: translate3d(0, 0, 0);
2751
+ transform: translate3d(0, 0, 0)
2752
+ }
2753
+ to {
2754
+ visibility: hidden;
2755
+ -webkit-transform: translate3d(0, -100%, 0);
2756
+ transform: translate3d(0, -100%, 0)
2757
+ }
2758
+ }
2759
+ .slideOutUp {
2760
+ -webkit-animation-name: slideOutUp;
2761
+ animation-name: slideOutUp
2762
  }
style/jQueryDialog/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_diagonal-maze_40_000000_10x10.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_10_eceadf_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_10_f8f7f6_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_15_eceadf_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_15_f7f3de_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_15_ffffff_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_65_654b24_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-bg_fine-grain_68_b83400_60x60.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_222222_256x240.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_3572ac_256x240.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_8c291d_256x240.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_b83400_256x240.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_fbdb93_256x240.png ADDED
Binary file
style/jQueryDialog/images/ui-icons_ffffff_256x240.png ADDED
Binary file
style/jQueryDialog/jquery-ui.css ADDED
@@ -0,0 +1,476 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.9.2 - 2012-11-23
2
+ * http://jqueryui.com
3
+ * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css
4
+ * Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
5
+
6
+ /* Layout helpers
7
+ ----------------------------------*/
8
+ .ui-helper-hidden { display: none; }
9
+ .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
10
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
11
+ .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
12
+ .ui-helper-clearfix:after { clear: both; }
13
+ .ui-helper-clearfix { zoom: 1; }
14
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
15
+
16
+
17
+ /* Interaction Cues
18
+ ----------------------------------*/
19
+ .ui-state-disabled { cursor: default !important; }
20
+
21
+
22
+ /* Icons
23
+ ----------------------------------*/
24
+
25
+ /* states and images */
26
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
27
+
28
+
29
+ /* Misc visuals
30
+ ----------------------------------*/
31
+
32
+ /* Overlays */
33
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
34
+
35
+ .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
36
+ .ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
37
+ .ui-accordion .ui-accordion-noicons { padding-left: .7em; }
38
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
39
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
40
+ .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
41
+
42
+ .ui-autocomplete {
43
+ position: absolute;
44
+ top: 0;
45
+ left: 0;
46
+ cursor: default;
47
+ }
48
+
49
+ /* workarounds */
50
+ * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
51
+
52
+ .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
53
+ .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
54
+ .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
55
+ button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
56
+ .ui-button-icons-only { width: 3.4em; }
57
+ button.ui-button-icons-only { width: 3.7em; }
58
+
59
+ /*button text element */
60
+ .ui-button .ui-button-text { display: block; line-height: 1.4; }
61
+ .ui-button-text-only .ui-button-text { padding: .4em 1em; }
62
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
63
+ .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
64
+ .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
65
+ .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
66
+ /* no icon support for input elements, provide padding by default */
67
+ input.ui-button { padding: .4em 1em; }
68
+
69
+ /*button icon element(s) */
70
+ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
71
+ .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
72
+ .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
73
+ .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
74
+ .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
75
+
76
+ /*button sets*/
77
+ .ui-buttonset { margin-right: 7px; }
78
+ .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
79
+
80
+ /* workarounds */
81
+ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
82
+
83
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
84
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
85
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
86
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
87
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
88
+ .ui-datepicker .ui-datepicker-next { right:2px; }
89
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
90
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
91
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
92
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
93
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
94
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
95
+ .ui-datepicker select.ui-datepicker-month,
96
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
97
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
98
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
99
+ .ui-datepicker td { border: 0; padding: 1px; }
100
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
101
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
102
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
103
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
104
+
105
+ /* with multiple calendars */
106
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
107
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
108
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
109
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
110
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
111
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
112
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
113
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
114
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
115
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
116
+
117
+ /* RTL support */
118
+ .ui-datepicker-rtl { direction: rtl; }
119
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
120
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
121
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
122
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
123
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
124
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
125
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
126
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
127
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
128
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
129
+
130
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
131
+ .ui-datepicker-cover {
132
+ position: absolute; /*must have*/
133
+ z-index: -1; /*must have*/
134
+ filter: mask(); /*must have*/
135
+ top: -4px; /*must have*/
136
+ left: -4px; /*must have*/
137
+ width: 200px; /*must have*/
138
+ height: 200px; /*must have*/
139
+ }
140
+
141
+ .ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; z-index: 9999999 !important; }
142
+ .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
143
+ .ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
144
+ .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
145
+ .ui-dialog .ui-dialog-titlebar-close span { display: block; }
146
+ .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
147
+ .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
148
+ .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
149
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
150
+ .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
151
+ .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
152
+ .ui-draggable .ui-dialog-titlebar { cursor: move; }
153
+
154
+ .ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
155
+ .ui-menu .ui-menu { margin-top: -3px; position: absolute; }
156
+ .ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
157
+ .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
158
+ .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
159
+ .ui-menu .ui-menu-item a.ui-state-focus,
160
+ .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
161
+
162
+ .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
163
+ .ui-menu .ui-state-disabled a { cursor: default; }
164
+
165
+ /* icon support */
166
+ .ui-menu-icons { position: relative; }
167
+ .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
168
+
169
+ /* left-aligned */
170
+ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
171
+
172
+ /* right-aligned */
173
+ .ui-menu .ui-menu-icon { position: static; float: right; }
174
+
175
+ .ui-progressbar { height:2em; text-align: left; overflow: hidden; }
176
+ .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
177
+ .ui-resizable { position: relative;}
178
+ .ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
179
+ .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
180
+ .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
181
+ .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
182
+ .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
183
+ .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
184
+ .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
185
+ .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
186
+ .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
187
+ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
188
+ .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
189
+
190
+ .ui-slider { position: relative; text-align: left; }
191
+ .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
192
+ .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
193
+
194
+ .ui-slider-horizontal { height: .8em; }
195
+ .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
196
+ .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
197
+ .ui-slider-horizontal .ui-slider-range-min { left: 0; }
198
+ .ui-slider-horizontal .ui-slider-range-max { right: 0; }
199
+
200
+ .ui-slider-vertical { width: .8em; height: 100px; }
201
+ .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
202
+ .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
203
+ .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
204
+ .ui-slider-vertical .ui-slider-range-max { top: 0; }
205
+ .ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
206
+ .ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
207
+ .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
208
+ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
209
+ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
210
+ .ui-spinner-up { top: 0; }
211
+ .ui-spinner-down { bottom: 0; }
212
+
213
+ /* TR overrides */
214
+ .ui-spinner .ui-icon-triangle-1-s {
215
+ /* need to fix icons sprite */
216
+ background-position:-65px -16px;
217
+ }
218
+
219
+ .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
220
+ .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
221
+ .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
222
+ .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
223
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
224
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
225
+ .ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
226
+ .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
227
+
228
+ .ui-tooltip {
229
+ padding: 8px;
230
+ position: absolute;
231
+ z-index: 9999;
232
+ max-width: 300px;
233
+ -webkit-box-shadow: 0 0 5px #aaa;
234
+ box-shadow: 0 0 5px #aaa;
235
+ }
236
+ /* Fades and background-images don't work well together in IE6, drop the image */
237
+ * html .ui-tooltip {
238
+ background-image: none;
239
+ }
240
+ body .ui-tooltip { border-width: 2px; }
241
+
242
+ /* Component containers
243
+ ----------------------------------*/
244
+ .ui-widget { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1.1em; }
245
+ .ui-widget .ui-widget { font-size: 1em; }
246
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1em; }
247
+ .ui-widget-content { border: 1px solid #d9d6c4; background: #eceadf url(images/ui-bg_fine-grain_10_eceadf_60x60.png) 50% 50% repeat; color: #1f1f1f; }
248
+ .ui-widget-content a { color: #1f1f1f; }
249
+ .ui-widget-header { border: 1px solid #d4d1bf; background: #ffffff url(images/ui-bg_fine-grain_15_ffffff_60x60.png) 50% 50% repeat; color: #453821; font-weight: bold; }
250
+ .ui-widget-header a { color: #453821; }
251
+
252
+ /* Interaction states
253
+ ----------------------------------*/
254
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cbc7bd; background: #f8f7f6 url(images/ui-bg_fine-grain_10_f8f7f6_60x60.png) 50% 50% repeat; font-weight: bold; color: #654b24; }
255
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #654b24; text-decoration: none; }
256
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #654b24; background: #654b24 url(images/ui-bg_fine-grain_65_654b24_60x60.png) 50% 50% repeat; font-weight: bold; color: #ffffff; }
257
+ .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #ffffff; text-decoration: none; }
258
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #d9d6c4; background: #eceadf url(images/ui-bg_fine-grain_15_eceadf_60x60.png) 50% 50% repeat; font-weight: bold; color: #140f06; }
259
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #140f06; text-decoration: none; }
260
+
261
+ /* Interaction Cues
262
+ ----------------------------------*/
263
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #b2a266; background: #f7f3de url(images/ui-bg_fine-grain_15_f7f3de_60x60.png) 50% 50% repeat; color: #3a3427; }
264
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #3a3427; }
265
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #681818; background: #b83400 url(images/ui-bg_fine-grain_68_b83400_60x60.png) 50% 50% repeat; color: #ffffff; }
266
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
267
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
268
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
269
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
270
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
271
+ .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
272
+
273
+ /* Icons
274
+ ----------------------------------*/
275
+
276
+ /* states and images */
277
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
278
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
279
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_b83400_256x240.png); }
280
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_b83400_256x240.png); }
281
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
282
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_8c291d_256x240.png); }
283
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_3572ac_256x240.png); }
284
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_fbdb93_256x240.png); }
285
+
286
+ /* positioning */
287
+ .ui-icon-carat-1-n { background-position: 0 0; }
288
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
289
+ .ui-icon-carat-1-e { background-position: -32px 0; }
290
+ .ui-icon-carat-1-se { background-position: -48px 0; }
291
+ .ui-icon-carat-1-s { background-position: -64px 0; }
292
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
293
+ .ui-icon-carat-1-w { background-position: -96px 0; }
294
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
295
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
296
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
297
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
298
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
299
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
300
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
301
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
302
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
303
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
304
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
305
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
306
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
307
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
308
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
309
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
310
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
311
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
312
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
313
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
314
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
315
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
316
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
317
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
318
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
319
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
320
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
321
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
322
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
323
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
324
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
325
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
326
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
327
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
328
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
329
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
330
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
331
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
332
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
333
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
334
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
335
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
336
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
337
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
338
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
339
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
340
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
341
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
342
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
343
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
344
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
345
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
346
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
347
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
348
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
349
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
350
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
351
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
352
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
353
+ .ui-icon-extlink { background-position: -32px -80px; }
354
+ .ui-icon-newwin { background-position: -48px -80px; }
355
+ .ui-icon-refresh { background-position: -64px -80px; }
356
+ .ui-icon-shuffle { background-position: -80px -80px; }
357
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
358
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
359
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
360
+ .ui-icon-folder-open { background-position: -16px -96px; }
361
+ .ui-icon-document { background-position: -32px -96px; }
362
+ .ui-icon-document-b { background-position: -48px -96px; }
363
+ .ui-icon-note { background-position: -64px -96px; }
364
+ .ui-icon-mail-closed { background-position: -80px -96px; }
365
+ .ui-icon-mail-open { background-position: -96px -96px; }
366
+ .ui-icon-suitcase { background-position: -112px -96px; }
367
+ .ui-icon-comment { background-position: -128px -96px; }
368
+ .ui-icon-person { background-position: -144px -96px; }
369
+ .ui-icon-print { background-position: -160px -96px; }
370
+ .ui-icon-trash { background-position: -176px -96px; }
371
+ .ui-icon-locked { background-position: -192px -96px; }
372
+ .ui-icon-unlocked { background-position: -208px -96px; }
373
+ .ui-icon-bookmark { background-position: -224px -96px; }
374
+ .ui-icon-tag { background-position: -240px -96px; }
375
+ .ui-icon-home { background-position: 0 -112px; }
376
+ .ui-icon-flag { background-position: -16px -112px; }
377
+ .ui-icon-calendar { background-position: -32px -112px; }
378
+ .ui-icon-cart { background-position: -48px -112px; }
379
+ .ui-icon-pencil { background-position: -64px -112px; }
380
+ .ui-icon-clock { background-position: -80px -112px; }
381
+ .ui-icon-disk { background-position: -96px -112px; }
382
+ .ui-icon-calculator { background-position: -112px -112px; }
383
+ .ui-icon-zoomin { background-position: -128px -112px; }
384
+ .ui-icon-zoomout { background-position: -144px -112px; }
385
+ .ui-icon-search { background-position: -160px -112px; }
386
+ .ui-icon-wrench { background-position: -176px -112px; }
387
+ .ui-icon-gear { background-position: -192px -112px; }
388
+ .ui-icon-heart { background-position: -208px -112px; }
389
+ .ui-icon-star { background-position: -224px -112px; }
390
+ .ui-icon-link { background-position: -240px -112px; }
391
+ .ui-icon-cancel { background-position: 0 -128px; }
392
+ .ui-icon-plus { background-position: -16px -128px; }
393
+ .ui-icon-plusthick { background-position: -32px -128px; }
394
+ .ui-icon-minus { background-position: -48px -128px; }
395
+ .ui-icon-minusthick { background-position: -64px -128px; }
396
+ .ui-icon-close { background-position: -80px -128px; }
397
+ .ui-icon-closethick { background-position: -96px -128px; }
398
+ .ui-icon-key { background-position: -112px -128px; }
399
+ .ui-icon-lightbulb { background-position: -128px -128px; }
400
+ .ui-icon-scissors { background-position: -144px -128px; }
401
+ .ui-icon-clipboard { background-position: -160px -128px; }
402
+ .ui-icon-copy { background-position: -176px -128px; }
403
+ .ui-icon-contact { background-position: -192px -128px; }
404
+ .ui-icon-image { background-position: -208px -128px; }
405
+ .ui-icon-video { background-position: -224px -128px; }
406
+ .ui-icon-script { background-position: -240px -128px; }
407
+ .ui-icon-alert { background-position: 0 -144px; }
408
+ .ui-icon-info { background-position: -16px -144px; }
409
+ .ui-icon-notice { background-position: -32px -144px; }
410
+ .ui-icon-help { background-position: -48px -144px; }
411
+ .ui-icon-check { background-position: -64px -144px; }
412
+ .ui-icon-bullet { background-position: -80px -144px; }
413
+ .ui-icon-radio-on { background-position: -96px -144px; }
414
+ .ui-icon-radio-off { background-position: -112px -144px; }
415
+ .ui-icon-pin-w { background-position: -128px -144px; }
416
+ .ui-icon-pin-s { background-position: -144px -144px; }
417
+ .ui-icon-play { background-position: 0 -160px; }
418
+ .ui-icon-pause { background-position: -16px -160px; }
419
+ .ui-icon-seek-next { background-position: -32px -160px; }
420
+ .ui-icon-seek-prev { background-position: -48px -160px; }
421
+ .ui-icon-seek-end { background-position: -64px -160px; }
422
+ .ui-icon-seek-start { background-position: -80px -160px; }
423
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
424
+ .ui-icon-seek-first { background-position: -80px -160px; }
425
+ .ui-icon-stop { background-position: -96px -160px; }
426
+ .ui-icon-eject { background-position: -112px -160px; }
427
+ .ui-icon-volume-off { background-position: -128px -160px; }
428
+ .ui-icon-volume-on { background-position: -144px -160px; }
429
+ .ui-icon-power { background-position: 0 -176px; }
430
+ .ui-icon-signal-diag { background-position: -16px -176px; }
431
+ .ui-icon-signal { background-position: -32px -176px; }
432
+ .ui-icon-battery-0 { background-position: -48px -176px; }
433
+ .ui-icon-battery-1 { background-position: -64px -176px; }
434
+ .ui-icon-battery-2 { background-position: -80px -176px; }
435
+ .ui-icon-battery-3 { background-position: -96px -176px; }
436
+ .ui-icon-circle-plus { background-position: 0 -192px; }
437
+ .ui-icon-circle-minus { background-position: -16px -192px; }
438
+ .ui-icon-circle-close { background-position: -32px -192px; }
439
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
440
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
441
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
442
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
443
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
444
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
445
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
446
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
447
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
448
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
449
+ .ui-icon-circle-check { background-position: -208px -192px; }
450
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
451
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
452
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
453
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
454
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
455
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
456
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
457
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
458
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
459
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
460
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
461
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
462
+
463
+
464
+ /* Misc visuals
465
+ ----------------------------------*/
466
+
467
+ /* Corner radius */
468
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; }
469
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; }
470
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
471
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
472
+
473
+ /* Overlays */
474
+
475
+ .ui-widget-overlay {position: fixed !important; background: #6e4f1c url(images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png) 50% 50% repeat; opacity: .6;filter:Alpha(Opacity=60); }
476
+ .ui-widget-shadow { margin: 0 0 0 -10px; padding: 5px; background: #000000 url(images/ui-bg_diagonal-maze_40_000000_10x10.png) 50% 50% repeat; opacity: .6;filter:Alpha(Opacity=60); -moz-border-radius: 18px; -khtml-border-radius: 18px; -webkit-border-radius: 18px; border-radius: 18px; }
style/sg_popup_style.css CHANGED
@@ -1,1118 +1,1115 @@
1
- #wpwrap {
2
- overflow: hidden;
3
- margin-right: 1px;
4
- }
5
-
6
- .sg-hide-element {
7
- display: none;
8
- }
9
-
10
- .sg-text-align {
11
- text-align: center;
12
- }
13
-
14
- .shortcode-use-info {
15
- display: inline-block;
16
- margin-bottom: 8px;
17
- font-style: italic;
18
- }
19
-
20
- #sg-general .postbox-container,
21
- #effect .postbox-container,
22
- #dimentions .postbox-container,
23
- #options .postbox-container,
24
- #special-options .postbox-container,
25
- #pro-options .postbox-container {
26
- width: 100%;
27
- }
28
-
29
- .export-import-buttons-wrraper {
30
- float: right;
31
- margin-top: 10px;
32
- }
33
-
34
- .add-new-buttons {
35
- display: inline-block;
36
- }
37
-
38
- .js-sg-import-gif {
39
- margin-left: 5px;
40
- vertical-align: middle;
41
- }
42
-
43
- .headersWrapper h2 {
44
- padding-top: 0px;
45
- }
46
-
47
- #sg-insert-popup-id {
48
- max-width: 250px;
49
- }
50
-
51
- h3.hndle .ui-sortable-handle .generalTitle {
52
- cursor: pointer;
53
- }
54
-
55
- .info-vertical-divisor {
56
- margin: 0 3px;
57
- }
58
-
59
- .title-max-width {
60
- max-width: 200px;
61
- }
62
-
63
- .sg-shortcode-width {
64
- width: 30%;
65
- }
66
-
67
- .create-popup-link {
68
- cursor: pointer;
69
- }
70
-
71
- .sg-pages-title {
72
- vertical-align: top;
73
- }
74
-
75
- .hedlinePadding {
76
- padding: 18px 0px;
77
- }
78
-
79
- .general-wrapper {
80
- margin-right: 30px;
81
- }
82
-
83
- .sameImageStyle,
84
- .same-image-style {
85
- color: #3879D9;
86
- padding-top: 7px;
87
- }
88
-
89
- .improveOptionsstyle {
90
- margin-left: 0px;
91
- }
92
-
93
- .advanced-options-content .same-image-style,
94
- .special-options-content .same-image-style {
95
- margin-left: 3%;
96
- }
97
-
98
- #displayNone {
99
- display: none;
100
- }
101
-
102
- div.sg-hide {
103
- display: none;
104
- }
105
-
106
- #default-message {
107
- margin-left: 0px;
108
- margin-right: 36px;
109
- }
110
-
111
- #title-error-message {
112
- margin-left: 0px;
113
- margin-right: 36px;
114
- }
115
-
116
- .samefontStyle {
117
- color: #3879D9;
118
- font: 14px Arial;
119
- padding-left: 3px;
120
- width: 200px;
121
- position: fixed;
122
- border: 1px solid #ccc;
123
- position: absolute;
124
- min-width: 20px;
125
- min-height: 13px;
126
- display: none;
127
- margin-top: 7px;
128
- margin-left: 12px;
129
- box-shadow: 0px 0px 2px #ccc;
130
- padding: 5px;
131
- z-index: 99999999999999999999999999;
132
- background-color: white;
133
- }
134
-
135
- .errorInfo {
136
- display: none;
137
- margin-left: 11px;
138
- }
139
-
140
- .validateError {
141
- color: red;
142
- display: none;
143
- margin-left: 8px;
144
- position: absolute;
145
- padding-left: 3px;
146
- border: 1px solid #ccc;
147
- min-width: 20px;
148
- min-height: 13px;
149
- margin-top: 7px;
150
- margin-left: 12px;
151
- box-shadow: 0px 0px 2px #ccc;
152
- padding: 5px;
153
- z-index: 9999;
154
- background-color: white;
155
- }
156
-
157
- .addCountry {
158
- margin-right: 5px;
159
- background: #0073aa;
160
- border: 1px solid #0073aa;
161
- color: #fff;
162
- text-decoration: none;
163
- display: inline-block;
164
- font-size: 13px;
165
- line-height: 27px;
166
- height: 28px;
167
- margin: 0;
168
- padding: 0 10px 28px;
169
- cursor: pointer;
170
- -webkit-appearance: none;
171
- border-radius: 3px;
172
- white-space: nowrap;
173
- vertical-align: middle;
174
- }
175
-
176
- .countries-radio-text {
177
- vertical-align: middle;
178
- display: inline-block;
179
- }
180
-
181
- .allow-countries {
182
- margin-right: 10px;
183
- }
184
-
185
- .optionsCountry,
186
- .addCountry {
187
- margin-top: 10px;
188
- }
189
-
190
- .input-width-static {
191
- width: 44%;
192
- min-width: 165px;
193
- }
194
-
195
- .span-width-static {
196
- width: 44%;
197
- min-width: 165px;
198
- display: inline-block;
199
- box-sizing: border-box;
200
- margin-right: 5.2%;
201
- }
202
-
203
- .liquid-width {
204
- font: 13px "Open Sans", sans-serif;
205
- color: black;
206
- }
207
-
208
- .liquid-width + span {
209
- color: #3879D9;
210
- font: 14px Arial;
211
- padding-left: 12px;
212
- }
213
-
214
- .h2Background {
215
- background-color: #FAFAFA;
216
- display: inline-block;
217
- height: 50px;
218
- width: 100%;
219
- border-bottom: 1px solid #ccc;
220
- position: relative;
221
- }
222
-
223
- .h2Background h2 {
224
- margin: 18px;
225
- display: inline-block;
226
- }
227
-
228
- .rightArrow {
229
- transform: rotate(0deg);
230
- }
231
-
232
- .turnArrow {
233
- transform: rotate(-180deg);
234
- }
235
-
236
- .dimensionsContent,
237
- .generalContent,
238
- .effectsContent,
239
- .optionsContent,
240
- .advanced-options-content {
241
- padding: 10px 20px;
242
- }
243
-
244
- .clear {
245
- clear: both;
246
- }
247
-
248
- .headers-wrapper {
249
- width: 100%;
250
- position: relative;
251
- }
252
-
253
- .main-update-to-pro {
254
- position: absolute;
255
- right: 0px;
256
- top: 0px;
257
- top: 0px;
258
- background-color: #D54E21;
259
- border: 1px solid #D54E21;
260
- color: white;
261
- cursor: pointer;
262
- }
263
-
264
- .crud-to-pro {
265
- float: right;
266
- margin-top: 7px;
267
- background-color: #D54E21;
268
- border: 1px solid #D54E21;
269
- color: white;
270
- cursor: pointer;
271
- margin-right: 30px;
272
- }
273
-
274
- .sg-js-delete-link,
275
- .sg-js-popup-clone {
276
- margin-left: 10px;
277
- }
278
-
279
- #sg-save-button {
280
- float: right;
281
- margin-right: 30px;
282
- }
283
-
284
- .improve-icon {
285
- padding-right: 2px;
286
- padding-top: 3px;
287
- }
288
-
289
- .creteLinkWrapper {
290
- display: inline-block;
291
- margin-bottom: 17px;
292
- margin-top: 10px;
293
- background-color: #E0E0E0;
294
- }
295
-
296
- .tablenav-pages {
297
- margin: 1em 0;
298
- }
299
-
300
- .creteLinkWrapper a {
301
- display: block;
302
- padding: 6px;
303
- }
304
-
305
- .js-subs-text-inputs,
306
- .js-contact-text-inputs {
307
- margin-bottom: 9px !important;
308
- display: block;
309
- margin: 3px auto !important;
310
- }
311
-
312
- .js-subs-submit-btn,
313
- .js-contact-submit-btn {
314
- border-width: 0px;
315
- }
316
-
317
- #disine tr:nth-child(even) {
318
- background-color: #F9F9F9;
319
- }
320
-
321
- .previewParagaraph {
322
- display: inline-block;
323
- }
324
-
325
- span.phpErrorStyle {
326
- display: inline-block;
327
- margin-left: 5px;
328
- font: 18px Arial Sans-serif;
329
- color: red;
330
- }
331
-
332
- #successMessage {
333
- width: 97%;
334
- height: 37px;
335
- border-left: 5px solid #7AD03A;
336
- background-color: #FFFFFF;
337
- }
338
-
339
- #gifLoader {
340
- margin-left: 5px;
341
- }
342
-
343
- .popups-wrapper {
344
- margin: 26px 0px 0px 0px;
345
- }
346
-
347
- .popups-div {
348
- width: 200px;
349
- height: 150px;
350
- border: 1px solid #CCCCCC;
351
- float: left;
352
- margin-right: 10px;
353
- margin-bottom: 10px;
354
- background-color: #DEDEDE;
355
- background-size: 100%;
356
- transition: all .1s ease-in-out;
357
- }
358
-
359
- .popups-div:hover {
360
- background-color: #CDCDCD;
361
- transform: scale(1.05);
362
- }
363
-
364
- .html-popup {
365
- background-image: url("../img/HTML-Button.png");
366
- }
367
-
368
- .image-popup {
369
- background-image: url("../img/Images-Button.png");
370
- }
371
-
372
- .fblike-popup {
373
- background-image: url("../img/Facebook.png");
374
- }
375
-
376
- .iframe-popup {
377
- background-image: url("../img/iframePopup.png");
378
- }
379
-
380
- .shortcode-popup {
381
- background-image: url("../img/ShortcodePopup.png");
382
- }
383
-
384
- .video-popup {
385
- background-image: url("../img/VideoPopup.png");
386
- }
387
-
388
- .countdown {
389
- background-image: url("../img/Countdown.png");
390
- }
391
-
392
- .sg-social {
393
- background-image: url("../img/socialPopup.png");
394
- }
395
-
396
- .age-restriction {
397
- background-image: url("../img/AgeRestriction.png");
398
- }
399
-
400
- .sg-exit-intent {
401
- background-image: url("../img/ExitIntent.png");
402
- }
403
-
404
- .sg-subscription {
405
- background-image: url("../img/SubscriptionButton.png");
406
- }
407
-
408
- .sg-contact-form {
409
- background-image: url("../img/ContactFormButton.png");
410
- }
411
-
412
- .iframe-popup-pro {
413
- background-image: url("../img/iframePopupPro.png");
414
- }
415
-
416
- .shortcode-popup-pro {
417
- background-image: url("../img/ShortcodePopupPro.png");
418
- }
419
-
420
- .video-popup-pro {
421
- background-image: url("../img/VideoPopupPro.png");
422
- }
423
-
424
- .age-restriction-pro {
425
- background-image: url("../img/AgeRestrictionPro.png");
426
- }
427
-
428
- .countdown-pro {
429
- background-image: url("../img/CountdownButtonPro.png");
430
- }
431
-
432
- .social-pro {
433
- background-image: url("../img/SocialButtonPro.png");
434
- }
435
-
436
- .exit-intent-pro {
437
- background-image: url("../img/ExitIntentPro.png");
438
- }
439
-
440
- .subscription-pro {
441
- background-image: url("../img/SubscriptionButtonPro.png");
442
- }
443
-
444
- .contact-pro {
445
- background-image: url("../img/ContactFormButtonPro.png");
446
- }
447
-
448
- .pro-options {
449
- clear: both;
450
- width: 100%;
451
- height: 398px;
452
- background-image: url("../img/proOptions.png");
453
- background-repeat: no-repeat;
454
- cursor: pointer;
455
- }
456
-
457
- .generalMenu {
458
- width: 98%;
459
- height: 39px;
460
- }
461
-
462
- .contentType {
463
- margin: 10px auto;
464
- }
465
-
466
- .optionsH1 {
467
- font: 16px Arial,sans-serif;
468
- text-align: center;
469
- }
470
-
471
- .sgOptionsContent {
472
- width: 48%;
473
- margin: 0 auto;
474
- display: block;
475
- }
476
-
477
- .optinonsInput {
478
- width: 100%;
479
- }
480
-
481
- .sg-wp-editor-container {
482
- margin: 15px 0 0 0;
483
- }
484
-
485
- .contentTypeMain {
486
- border-right: 1px solid #ccc;
487
- border-bottom: 1px solid #ccc;
488
- border-left: 1px solid #ccc;
489
- width: 94.1%;
490
- min-height: 262px;
491
- padding-right: 20px;
492
- padding-bottom: 30px;
493
- margin-bottom: 26px;
494
- }
495
-
496
- .generalMenu > ul li {
497
- display: block;
498
- font: 14px Arial;
499
- color: black;
500
- float: left;
501
- width: 49.5%;
502
- display: block;
503
- padding: 11px 0px;
504
- text-align: center;
505
- border: 1px solid #ccc;
506
- cursor: pointer;
507
-
508
- }
509
-
510
- .imagetype {
511
- padding-bottom: 5px;
512
- min-height: 140px;
513
- }
514
-
515
- .tabWrapper {
516
- background-color: #F1F1F1;
517
- margin-top: 12px;
518
- }
519
-
520
- input[id="js-upload-image-button"] {
521
- width: 37%;
522
- }
523
-
524
- #js-upload-image {
525
- width: 61%;
526
- }
527
-
528
- .image-uploader-wrapper {
529
- margin: 0 auto;
530
- width: 82%;
531
- }
532
-
533
- .show-image-contenier {
534
- width: 222px;
535
- height: 127px;
536
- background-color: #F8F8F8;
537
- margin: 14px auto;
538
- background-size: contain;
539
- background-position: center center;
540
- background-repeat: no-repeat;
541
- }
542
-
543
- .no-image {
544
- display: block;
545
- font: 13px Arial;
546
- margin: 0 auto;
547
- text-align: center;
548
- padding-top: 56px;
549
- }
550
-
551
- .image-popup-headline {
552
- margin-top: 27px;
553
- margin-bottom: 41px;
554
- text-align: center;
555
- font: 16px arial;
556
- }
557
-
558
- .choose-popup-type {
559
- margin-top: -3px;
560
- margin-left: 20px;
561
- width: 20%;
562
- max-width: 250px;
563
- }
564
-
565
- frametype h1 {
566
- text-align: center;
567
- padding-bottom: 34px;
568
- font: 16px arial;
569
- }
570
-
571
- .iframeContent {
572
- width: 48%;
573
- margin: 28px auto;
574
- }
575
-
576
- [name=iframeLink],
577
- [name=shortCode] {
578
- width: 100%;
579
- }
580
-
581
- .theme1,
582
- .theme2,
583
- .theme3,
584
- .theme4,
585
- .theme5 {
586
- border: 0px solid red;
587
- width: 240px;
588
- height: 130px;
589
- margin-top: 1px;
590
- margin-left: 15%;
591
- display: block;
592
- position: absolute;
593
- z-index: 9999999999999999;
594
- }
595
-
596
- input[name="theme"] {
597
- margin-left: 14px;
598
- }
599
-
600
- .theme1 {
601
- background-image: url("../img/theme1.jpg");
602
- background-size: 240px 130px;
603
- }
604
-
605
- .theme2 {
606
- background-image: url("../img/theme2.jpg");
607
- }
608
-
609
- .theme3 {
610
- background-image: url("../img/theme3.jpg");
611
- }
612
-
613
- .theme4 {
614
- background-image: url("../img/theme4.jpg");
615
- background-size: 240px 130px;
616
- }
617
-
618
- .theme5 {
619
- background-image: url("../img/theme5.jpg");
620
- background-size: 240px 130px;
621
- }
622
-
623
- .js-preview-effect {
624
- background-image: url("../img/preview-eye.png");
625
- width: 30px;
626
- height: 30px;
627
- position: relative;
628
- top: 12px;
629
- left: -10px;
630
- display: inline-block;
631
- cursor: pointer;
632
- }
633
-
634
- .effects {
635
- margin-top: 14px;
636
- background-color: white;
637
- margin-left: 3px;
638
- }
639
-
640
- .effects span img {
641
- margin-left: 3px;
642
- }
643
-
644
- .effectsContent {
645
- padding-left: 20px;
646
-
647
- }
648
-
649
- .effectsContent .input-width-static {
650
- margin-right: 5%;
651
- }
652
-
653
- .theme input {
654
- margin-top: 13px;
655
- }
656
-
657
- #theme-span {
658
- margin-top: 32px;
659
- }
660
-
661
- #theme-span.liquid-width {
662
- margin-top: 10px;
663
- }
664
-
665
- .effects span {
666
- margin-top: 13px;
667
- }
668
-
669
- .effects select {
670
- margin-bottom: 10px;
671
- }
672
-
673
- .crud-wrapper .liquid-width {
674
- display: inline-block;
675
- margin: 8px auto;
676
- width: 151px;
677
- }
678
-
679
- .crud-wrapper .general .liquid-width {
680
- display: inline-block;
681
- margin: 8px auto;
682
- width: 62px;
683
- }
684
-
685
- .sameWidthinputsTitle {
686
- width: 60.0%;
687
- }
688
-
689
- #theme-span {
690
- width: 138px;
691
- margin-top: 0px;
692
- }
693
-
694
- #sameWidthinputs {
695
- width: 44%;
696
- min-width: 165px;
697
- }
698
-
699
- #effectShow {
700
- display: none;
701
- width: 150px;
702
- height: 150px;
703
- margin-left: 5px;
704
- background-image: url("../img/theme4.jpg");
705
- background-size: 150px 150px;
706
- position: absolute;
707
- top: -46px;
708
- left: 72%;
709
- z-index: 9999;
710
- }
711
-
712
- .effectWrapper {
713
- position: relative;
714
- display: inline-block;
715
- }
716
-
717
- .dimensions {
718
- width: 100%;
719
- background-color: white;
720
- margin-right: 2.1%;
721
- box-sizing: border-box;
722
- }
723
-
724
- .options {
725
- margin-top: 13px;
726
- }
727
-
728
- .optionsContent .liquid-width,
729
- .advanced-options-content .liquid-width,
730
- .special-options-content .liquid-width,
731
- .effectsContent .liquid-width {
732
- width: 39%;
733
- }
734
-
735
- .optionsContent .input-width-static {
736
- margin-right: 3%;
737
- }
738
-
739
- .optionsContent,
740
- .advanced-options-content,
741
- .special-options-content {
742
- background-color: white;
743
- position: relative;
744
- padding: 10px 20px 10px 20px;
745
- }
746
-
747
- .js-spetial-postbox {
748
- display: block;
749
- }
750
-
751
- .js-special-title,
752
- .js-advanced-title {
753
- cursor: pointer !important;
754
- }
755
-
756
- .special-options-content .input-width-static,
757
- .special-options-content [type="radio"] {
758
- margin-right: 5%;
759
- }
760
-
761
- .bootstrap-tagsinput .tag {
762
- background-color: #0073AA;
763
- padding: 0 3px 2px 3px;
764
- }
765
-
766
- .bootstrap-tagsinput > span {
767
- display: inline-block;
768
- }
769
-
770
- .optionsCountry {
771
- margin-left: -1px;
772
- }
773
-
774
- .js-auto-close-content,
775
- .js-countri-content {
776
- width: 100%;
777
- display: none;
778
- }
779
-
780
- .popupTimer {
781
- width: 30px;
782
- }
783
-
784
- .optionStyle {
785
- font: 13px Arial, sans-serif;
786
- padding-left: 2px;
787
- display: inline-block;
788
- margin-bottom: 8px;
789
- }
790
-
791
- .range-bar {
792
- background-color: #a9acb1;
793
- border-radius: 15px;
794
- display: block;
795
- height: 4px;
796
- position: relative;
797
- width: 100%;
798
- }
799
-
800
- .range-quantity {
801
- background-color: #017afd;
802
- border-radius: 15px;
803
- display: block;
804
- height: 100%;
805
- width: 0;
806
- }
807
-
808
- .range-handle {
809
- background-color: #fff;
810
- border-radius: 100%;
811
- cursor: move;
812
- height: 20px;
813
- left: 0;
814
- top: -10px;
815
- position: absolute;
816
- width: 20px;
817
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
818
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
819
- }
820
-
821
- .range-min,
822
- .range-max {
823
- height: 20px;
824
- padding-top: 4px;
825
- position: absolute;
826
- text-align: center;
827
- top: -9px;
828
- display: none;
829
- }
830
-
831
- .slider-wrapper {
832
- position: relative;
833
- width: 150px;
834
- display: inline-block;
835
- }
836
-
837
- .vertical-wrapper {
838
- height: 200px;
839
- width: auto;
840
- }
841
-
842
- .display-box {
843
- background-color: #f7fcff;
844
- border-radius: 5px;
845
- font-size: 0.8em;
846
- height: 23px;
847
- right: -41px;
848
- box-sizing: border-box;
849
- padding-top: 6px;
850
- position: absolute;
851
- text-align: center;
852
- top: -10px;
853
- width: 35px;
854
- -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
855
- box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
856
- }
857
-
858
- #color-picker,
859
- .color-picker {
860
- display: inline-block;
861
- }
862
-
863
- #color-picker > .wp-picker-container .wp-color-result {
864
- top:12px;
865
- }
866
-
867
- .color-picker > .wp-picker-container .wp-color-result {
868
- top: 12px;
869
- }
870
-
871
- .special-options-content .wp-color-result:after {
872
- line-height: 22px;
873
- }
874
-
875
- .special-options-content input[type='text'] {
876
- margin: 0px;
877
- }
878
-
879
- .info-active-url {
880
- margin-top: 0px;
881
- }
882
-
883
- .sg-active-url {
884
- margin-top: 2px;
885
- }
886
-
887
- .wp-picker-open+.wp-picker-input-wrap {
888
- float: right;
889
- margin-top: 12px;
890
- }
891
-
892
- .countrisConfigDiv {
893
- width: 100%;
894
- max-height: 150px;
895
- display: none;
896
- }
897
-
898
- .acordion-main-div-content {
899
- width: 100%;
900
- display: none;
901
- }
902
-
903
- .before-scroling-percent,
904
- .input-width-percent {
905
- width: 104px;
906
- }
907
-
908
- .span-percent {
909
- margin-left: 4px;
910
- }
911
-
912
- .countrisConfigDivCountris {
913
- display: inline-block;
914
- width: 239px;
915
- }
916
-
917
- .autoCloseTimeContent {
918
- display: none;
919
- width: 100%;
920
- }
921
-
922
- .popupClosingTimer {
923
- width: 37px;
924
- }
925
-
926
- .fixed-wrapper {
927
- max-width: 248px;
928
- width: 40%;
929
- height: 191px;
930
- display: inline-block;
931
- margin-top: 4px;
932
- }
933
-
934
- .js-popop-fixeds {
935
- width: 100%;
936
- display: none;
937
- }
938
-
939
- .fix-wrapper-style {
940
- width: 38.5%;
941
- display: inline-block;
942
- }
943
-
944
- .js-fixed-position-style {
945
- width: 31.85%;
946
- height: 53px;
947
- float: left;
948
- cursor: pointer;
949
- }
950
-
951
- #fixed-position2,
952
- #fixed-position4,
953
- #fixed-position8,
954
- #fixed-position6 {
955
- float: left;
956
- width: 31.85%;
957
- height: 53px;
958
- }
959
-
960
- #fixed-position1 {
961
- border: 1px solid #ccc;
962
- }
963
-
964
- #fixed-position2 {
965
- border-bottom: 1px solid #ccc;
966
- border-top: 1px solid #ccc;
967
- }
968
-
969
- #fixed-position3 {
970
- border: 1px solid #ccc;
971
- }
972
-
973
- #fixed-position6 {
974
- border-left: 1px solid #ccc;
975
- border-right: 1px solid #ccc;
976
- }
977
-
978
- #fixed-position9 {
979
- border-left: 1px solid #ccc;
980
- border-bottom: 1px solid #ccc;
981
- border-right: 1px solid #ccc;
982
- border-top: 1px solid #ccc;
983
- }
984
-
985
- #fixed-position8 {
986
- border-left: 1px solid #ccc;
987
- border-bottom: 1px solid #ccc;
988
- border-top: 1px solid #ccc;
989
- }
990
-
991
- #fixed-position7 {
992
- border-top: 1px solid #ccc;
993
- border-left: 1px solid #ccc;
994
- border-bottom: 1px solid #ccc;
995
- }
996
-
997
- #fixed-position4 {
998
- border-right: 1px solid #ccc;
999
- border-left: 1px solid #ccc;
1000
- }
1001
-
1002
- .socials-content {
1003
- display: block;
1004
- width: 100%;
1005
- }
1006
-
1007
- .restrictionUrlDiv {
1008
- display: none;
1009
- width: 100%;
1010
- }
1011
-
1012
- .js-social-round-btn {
1013
- border-radius : 50% !important;
1014
- }
1015
-
1016
- .radio-btn-fix {
1017
- margin-top: 0px !important;
1018
- margin-right: 5px !important;
1019
- }
1020
-
1021
- #share-btns-container {
1022
- border: 1px solid #ccc;
1023
- margin: 10px 0px;
1024
- padding: 10px;
1025
- text-align: center;
1026
- }
1027
-
1028
- .general {
1029
- background-color: white;
1030
- margin-left: 3px;
1031
- margin-top: 5px;
1032
- }
1033
-
1034
- .generalContent {
1035
- padding-right: 20px;
1036
- padding-left: 20px;
1037
- }
1038
-
1039
- .sg-title-crud {
1040
- float: left;
1041
- display: inline-block;
1042
- }
1043
-
1044
- .cereate-title-wrapper {
1045
- position: relative;
1046
- }
1047
-
1048
- #title {
1049
- margin-top: 5px !important;
1050
- }
1051
-
1052
- #left-main-div {
1053
- width: 48.5%;
1054
- float: left;
1055
- margin-right: 1.5%;
1056
- display: block;
1057
- }
1058
-
1059
- #right-main-div {
1060
- width: 50%;
1061
- display: inline-block;
1062
- float: right;
1063
- }
1064
-
1065
- @media(max-width: 1042px) {
1066
- #left-main-div {
1067
- width: 100%;
1068
- margin: 0px auto;
1069
- }
1070
- #right-main-div {
1071
- width: 100%;
1072
- margin: 0px auto;
1073
- }
1074
- }
1075
-
1076
- .reviewPanelClose {
1077
- display: block;
1078
- text-align: right;
1079
- border: none;
1080
- margin: 0;
1081
- padding: 9px;
1082
- background: 0 0;
1083
- color: white;
1084
- cursor: pointer;
1085
- }
1086
-
1087
- .reviewPanelHref {
1088
- color: white;
1089
- text-decoration: underline !important;
1090
- }
1091
-
1092
- .reviewPanelSpan {
1093
- font-size: 17px;
1094
- color: white;
1095
- }
1096
-
1097
- .reviewPanel {
1098
- background-color: #2ECC71 !important;
1099
- }
1100
-
1101
- .reviewPanelContent {
1102
- padding: 26px;
1103
- }
1104
-
1105
- .sg-review-panel {
1106
- margin-left: 0px !important;
1107
- }
1108
-
1109
- @media only screen and (min-width:800px) {
1110
- .sgmb-container {
1111
- min-width:800px;
1112
- margin-left: 10px;
1113
- margin-right: 10px;
1114
- }
1115
- .reviewPanelContent {
1116
- min-width:800px;
1117
- }
1118
- }
1
+ #wpwrap {
2
+ overflow: hidden;
3
+ margin-right: 1px;
4
+ }
5
+
6
+ .sg-hide-element {
7
+ display: none;
8
+ }
9
+
10
+ .sg-text-align {
11
+ text-align: center;
12
+ }
13
+
14
+ .shortcode-use-info {
15
+ display: inline-block;
16
+ margin-bottom: 8px;
17
+ font-style: italic;
18
+ }
19
+
20
+ #sg-general .postbox-container,
21
+ #effect .postbox-container,
22
+ #dimentions .postbox-container,
23
+ #options .postbox-container,
24
+ #special-options .postbox-container,
25
+ #pro-options .postbox-container {
26
+ width: 100%;
27
+ }
28
+
29
+ .export-import-buttons-wrraper {
30
+ float: right;
31
+ margin-top: 10px;
32
+ }
33
+
34
+ .add-new-buttons {
35
+ display: inline-block;
36
+ }
37
+
38
+ .js-sg-import-gif {
39
+ margin-left: 5px;
40
+ vertical-align: middle;
41
+ }
42
+
43
+ .headersWrapper h2 {
44
+ padding-top: 0px;
45
+ }
46
+
47
+ #sg-insert-popup-id {
48
+ max-width: 250px;
49
+ }
50
+
51
+ h3.hndle .ui-sortable-handle .generalTitle {
52
+ cursor: pointer;
53
+ }
54
+
55
+ .info-vertical-divisor {
56
+ margin: 0 3px;
57
+ }
58
+
59
+ .title-max-width {
60
+ max-width: 200px;
61
+ }
62
+
63
+ .sg-shortcode-width {
64
+ width: 30%;
65
+ }
66
+
67
+ .create-popup-link {
68
+ cursor: pointer;
69
+ }
70
+
71
+ .sg-pages-title {
72
+ vertical-align: top;
73
+ }
74
+
75
+ .hedlinePadding {
76
+ padding: 18px 0px;
77
+ }
78
+
79
+ .general-wrapper {
80
+ margin-right: 30px;
81
+ }
82
+
83
+ .sameImageStyle,
84
+ .same-image-style {
85
+ color: #3879D9;
86
+ padding-top: 7px;
87
+ }
88
+
89
+ .improveOptionsstyle {
90
+ margin-left: 0px;
91
+ }
92
+
93
+ .advanced-options-content .same-image-style,
94
+ .special-options-content .same-image-style {
95
+ margin-left: 3%;
96
+ }
97
+
98
+ #displayNone {
99
+ display: none;
100
+ }
101
+
102
+ div.sg-hide {
103
+ display: none;
104
+ }
105
+
106
+ #default-message {
107
+ margin-left: 0px;
108
+ margin-right: 36px;
109
+ }
110
+
111
+ #title-error-message {
112
+ margin-left: 0px;
113
+ margin-right: 36px;
114
+ }
115
+
116
+ .samefontStyle {
117
+ color: #3879D9;
118
+ font: 14px Arial;
119
+ padding-left: 3px;
120
+ width: 200px;
121
+ position: fixed;
122
+ border: 1px solid #ccc;
123
+ position: absolute;
124
+ min-width: 20px;
125
+ min-height: 13px;
126
+ display: none;
127
+ margin-top: 7px;
128
+ margin-left: 12px;
129
+ box-shadow: 0px 0px 2px #ccc;
130
+ padding: 5px;
131
+ z-index: 99999999999999999999999999;
132
+ background-color: white;
133
+ }
134
+
135
+ .errorInfo {
136
+ display: none;
137
+ margin-left: 11px;
138
+ }
139
+
140
+ .validateError {
141
+ color: red;
142
+ display: none;
143
+ margin-left: 8px;
144
+ position: absolute;
145
+ padding-left: 3px;
146
+ border: 1px solid #ccc;
147
+ min-width: 20px;
148
+ min-height: 13px;
149
+ margin-top: 7px;
150
+ margin-left: 12px;
151
+ box-shadow: 0px 0px 2px #ccc;
152
+ padding: 5px;
153
+ z-index: 9999;
154
+ background-color: white;
155
+ }
156
+
157
+ .addCountry {
158
+ margin-right: 5px;
159
+ background: #0073aa;
160
+ border: 1px solid #0073aa;
161
+ color: #fff;
162
+ text-decoration: none;
163
+ display: inline-block;
164
+ font-size: 13px;
165
+ line-height: 27px;
166
+ height: 28px;
167
+ margin: 0;
168
+ padding: 0 10px 28px;
169
+ cursor: pointer;
170
+ -webkit-appearance: none;
171
+ border-radius: 3px;
172
+ white-space: nowrap;
173
+ vertical-align: middle;
174
+ }
175
+
176
+ .countries-radio-text {
177
+ vertical-align: middle;
178
+ display: inline-block;
179
+ }
180
+
181
+ .allow-countries {
182
+ margin-right: 10px;
183
+ }
184
+
185
+ .optionsCountry,
186
+ .addCountry {
187
+ margin-top: 10px;
188
+ }
189
+
190
+ .input-width-static {
191
+ width: 44%;
192
+ min-width: 165px;
193
+ }
194
+
195
+ .span-width-static {
196
+ width: 44%;
197
+ min-width: 165px;
198
+ display: inline-block;
199
+ box-sizing: border-box;
200
+ margin-right: 5.2%;
201
+ }
202
+
203
+ .liquid-width {
204
+ font: 13px "Open Sans", sans-serif;
205
+ color: black;
206
+ }
207
+
208
+ .liquid-width + span {
209
+ color: #3879D9;
210
+ font: 14px Arial;
211
+ padding-left: 12px;
212
+ }
213
+
214
+ .h2Background {
215
+ background-color: #FAFAFA;
216
+ display: inline-block;
217
+ height: 50px;
218
+ width: 100%;
219
+ border-bottom: 1px solid #ccc;
220
+ position: relative;
221
+ }
222
+
223
+ .h2Background h2 {
224
+ margin: 18px;
225
+ display: inline-block;
226
+ }
227
+
228
+ .rightArrow {
229
+ transform: rotate(0deg);
230
+ }
231
+
232
+ .turnArrow {
233
+ transform: rotate(-180deg);
234
+ }
235
+
236
+ .dimensionsContent,
237
+ .generalContent,
238
+ .effectsContent,
239
+ .optionsContent,
240
+ .advanced-options-content {
241
+ padding: 10px 20px;
242
+ }
243
+
244
+ .clear {
245
+ clear: both;
246
+ }
247
+
248
+ .headers-wrapper {
249
+ width: 100%;
250
+ position: relative;
251
+ }
252
+
253
+ .main-update-to-pro {
254
+ position: absolute;
255
+ right: 0px;
256
+ top: 0px;
257
+ top: 0px;
258
+ background-color: #D54E21;
259
+ border: 1px solid #D54E21;
260
+ color: white;
261
+ cursor: pointer;
262
+ }
263
+
264
+ .crud-to-pro {
265
+ float: right;
266
+ margin-top: 7px;
267
+ background-color: #D54E21;
268
+ border: 1px solid #D54E21;
269
+ color: white;
270
+ cursor: pointer;
271
+ margin-right: 30px;
272
+ }
273
+
274
+ .sg-js-delete-link,
275
+ .sg-js-popup-clone {
276
+ margin-left: 10px;
277
+ }
278
+
279
+ #sg-save-button {
280
+ float: right;
281
+ margin-right: 30px;
282
+ }
283
+
284
+ .improve-icon {
285
+ padding-right: 2px;
286
+ padding-top: 3px;
287
+ }
288
+
289
+ .creteLinkWrapper {
290
+ display: inline-block;
291
+ margin-bottom: 17px;
292
+ margin-top: 10px;
293
+ background-color: #E0E0E0;
294
+ }
295
+
296
+ .tablenav-pages {
297
+ margin: 1em 0;
298
+ }
299
+
300
+ .creteLinkWrapper a {
301
+ display: block;
302
+ padding: 6px;
303
+ }
304
+
305
+ .js-subs-text-inputs,
306
+ .js-contact-text-inputs {
307
+ margin-bottom: 9px !important;
308
+ display: block;
309
+ margin: 3px auto !important;
310
+ }
311
+
312
+ .js-subs-submit-btn,
313
+ .js-contact-submit-btn {
314
+ border-width: 0px;
315
+ }
316
+
317
+ #disine tr:nth-child(even) {
318
+ background-color: #F9F9F9;
319
+ }
320
+
321
+ .previewParagaraph {
322
+ display: inline-block;
323
+ }
324
+
325
+ span.phpErrorStyle {
326
+ display: inline-block;
327
+ margin-left: 5px;
328
+ font: 18px Arial Sans-serif;
329
+ color: red;
330
+ }
331
+
332
+ #successMessage {
333
+ width: 97%;
334
+ height: 37px;
335
+ border-left: 5px solid #7AD03A;
336
+ background-color: #FFFFFF;
337
+ }
338
+
339
+ #gifLoader {
340
+ margin-left: 5px;
341
+ }
342
+
343
+ .popups-wrapper {
344
+ margin: 26px 0px 0px 0px;
345
+ }
346
+
347
+ .popups-div {
348
+ width: 200px;
349
+ height: 150px;
350
+ border: 1px solid #CCCCCC;
351
+ float: left;
352
+ margin-right: 10px;
353
+ margin-bottom: 10px;
354
+ background-color: #DEDEDE;
355
+ background-size: 100%;
356
+ transition: all .1s ease-in-out;
357
+ }
358
+
359
+ .popups-div:hover {
360
+ background-color: #CDCDCD;
361
+ transform: scale(1.05);
362
+ }
363
+
364
+ .html-popup {
365
+ background-image: url("../img/HTML-Button.png");
366
+ }
367
+
368
+ .image-popup {
369
+ background-image: url("../img/Images-Button.png");
370
+ }
371
+
372
+ .fblike-popup {
373
+ background-image: url("../img/Facebook.png");
374
+ }
375
+
376
+ .iframe-popup {
377
+ background-image: url("../img/iframePopup.png");
378
+ }
379
+
380
+ .shortcode-popup {
381
+ background-image: url("../img/ShortcodePopup.png");
382
+ }
383
+
384
+ .video-popup {
385
+ background-image: url("../img/VideoPopup.png");
386
+ }
387
+
388
+ .countdown {
389
+ background-image: url("../img/Countdown.png");
390
+ }
391
+
392
+ .sg-social {
393
+ background-image: url("../img/socialPopup.png");
394
+ }
395
+
396
+ .age-restriction {
397
+ background-image: url("../img/AgeRestriction.png");
398
+ }
399
+
400
+ .sg-exit-intent {
401
+ background-image: url("../img/ExitIntent.png");
402
+ }
403
+
404
+ .sg-subscription {
405
+ background-image: url("../img/SubscriptionButton.png");
406
+ }
407
+
408
+ .sg-contact-form {
409
+ background-image: url("../img/ContactFormButton.png");
410
+ }
411
+
412
+ .iframe-popup-pro {
413
+ background-image: url("../img/iframePopupPro.png");
414
+ }
415
+
416
+ .shortcode-popup-pro {
417
+ background-image: url("../img/ShortcodePopupPro.png");
418
+ }
419
+
420
+ .video-popup-pro {
421
+ background-image: url("../img/VideoPopupPro.png");
422
+ }
423
+
424
+ .age-restriction-pro {
425
+ background-image: url("../img/AgeRestrictionPro.png");
426
+ }
427
+
428
+ .countdown-pro {
429
+ background-image: url("../img/CountdownButtonPro.png");
430
+ }
431
+
432
+ .social-pro {
433
+ background-image: url("../img/SocialButtonPro.png");
434
+ }
435
+
436
+ .exit-intent-pro {
437
+ background-image: url("../img/ExitIntentPro.png");
438
+ }
439
+
440
+ .subscription-pro {
441
+ background-image: url("../img/SubscriptionButtonPro.png");
442
+ }
443
+
444
+ .contact-pro {
445
+ background-image: url("../img/ContactFormButtonPro.png");
446
+ }
447
+
448
+ .pro-options {
449
+ clear: both;
450
+ width: 100%;
451
+ height: 398px;
452
+ background-image: url("../img/proOptions.png");
453
+ background-repeat: no-repeat;
454
+ cursor: pointer;
455
+ }
456
+
457
+ .generalMenu {
458
+ width: 98%;
459
+ height: 39px;
460
+ }
461
+
462
+ .contentType {
463
+ margin: 10px auto;
464
+ }
465
+
466
+ .optionsH1 {
467
+ font: 16px Arial,sans-serif;
468
+ text-align: center;
469
+ }
470
+
471
+ .sgOptionsContent {
472
+ width: 48%;
473
+ margin: 0 auto;
474
+ display: block;
475
+ }
476
+
477
+ .optinonsInput {
478
+ width: 100%;
479
+ }
480
+
481
+ .sg-wp-editor-container {
482
+ margin: 15px 0 0 0;
483
+ }
484
+
485
+ .contentTypeMain {
486
+ border-right: 1px solid #ccc;
487
+ border-bottom: 1px solid #ccc;
488
+ border-left: 1px solid #ccc;
489
+ width: 94.1%;
490
+ min-height: 262px;
491
+ padding-right: 20px;
492
+ padding-bottom: 30px;
493
+ margin-bottom: 26px;
494
+ }
495
+
496
+ .generalMenu > ul li {
497
+ display: block;
498
+ font: 14px Arial;
499
+ color: black;
500
+ float: left;
501
+ width: 49.5%;
502
+ display: block;
503
+ padding: 11px 0px;
504
+ text-align: center;
505
+ border: 1px solid #ccc;
506
+ cursor: pointer;
507
+
508
+ }
509
+
510
+ .imagetype {
511
+ padding-bottom: 5px;
512
+ min-height: 140px;
513
+ }
514
+
515
+ .tabWrapper {
516
+ background-color: #F1F1F1;
517
+ margin-top: 12px;
518
+ }
519
+
520
+ input[id="js-upload-image-button"] {
521
+ width: 37%;
522
+ }
523
+
524
+ #js-upload-image {
525
+ width: 61%;
526
+ }
527
+
528
+ .image-uploader-wrapper {
529
+ margin: 0 auto;
530
+ width: 82%;
531
+ }
532
+
533
+ .show-image-contenier {
534
+ width: 222px;
535
+ height: 127px;
536
+ background-color: #F8F8F8;
537
+ margin: 14px auto;
538
+ background-size: contain;
539
+ background-position: center center;
540
+ background-repeat: no-repeat;
541
+ }
542
+
543
+ .no-image {
544
+ display: block;
545
+ font: 13px Arial;
546
+ margin: 0 auto;
547
+ text-align: center;
548
+ padding-top: 56px;
549
+ }
550
+
551
+ .image-popup-headline {
552
+ margin-top: 27px;
553
+ margin-bottom: 41px;
554
+ text-align: center;
555
+ font: 16px arial;
556
+ }
557
+
558
+ .choose-popup-type {
559
+ margin-top: -3px;
560
+ margin-left: 20px;
561
+ width: 20%;
562
+ max-width: 250px;
563
+ }
564
+
565
+ frametype h1 {
566
+ text-align: center;
567
+ padding-bottom: 34px;
568
+ font: 16px arial;
569
+ }
570
+
571
+ .iframeContent {
572
+ width: 48%;
573
+ margin: 28px auto;
574
+ }
575
+
576
+ [name=iframeLink],
577
+ [name=shortCode] {
578
+ width: 100%;
579
+ }
580
+
581
+ .theme1,
582
+ .theme2,
583
+ .theme3,
584
+ .theme4,
585
+ .theme5 {
586
+ border: 0px solid red;
587
+ width: 240px;
588
+ height: 130px;
589
+ margin-top: 1px;
590
+ margin-left: 15%;
591
+ display: block;
592
+ position: absolute;
593
+ z-index: 9999999999999999;
594
+ }
595
+
596
+ input[name="theme"] {
597
+ margin-left: 14px;
598
+ }
599
+
600
+ .theme1 {
601
+ background-image: url("../img/theme1.jpg");
602
+ background-size: 240px 130px;
603
+ }
604
+
605
+ .theme2 {
606
+ background-image: url("../img/theme2.jpg");
607
+ }
608
+
609
+ .theme3 {
610
+ background-image: url("../img/theme3.jpg");
611
+ }
612
+
613
+ .theme4 {
614
+ background-image: url("../img/theme4.jpg");
615
+ background-size: 240px 130px;
616
+ }
617
+
618
+ .theme5 {
619
+ background-image: url("../img/theme5.jpg");
620
+ background-size: 240px 130px;
621
+ }
622
+
623
+ .js-preview-effect {
624
+ background-image: url("../img/preview-eye.png");
625
+ width: 30px;
626
+ height: 30px;
627
+ position: relative;
628
+ top: 12px;
629
+ left: -10px;
630
+ display: inline-block;
631
+ cursor: pointer;
632
+ }
633
+
634
+ .effects {
635
+ margin-top: 14px;
636
+ background-color: white;
637
+ margin-left: 3px;
638
+ }
639
+
640
+ .effects span img {
641
+ margin-left: 3px;
642
+ }
643
+
644
+ .effectsContent {
645
+ padding-left: 20px;
646
+
647
+ }
648
+
649
+ .effectsContent .input-width-static {
650
+ margin-right: 5%;
651
+ }
652
+
653
+ .theme input {
654
+ margin-top: 13px;
655
+ }
656
+
657
+ #theme-span {
658
+ margin-top: 32px;
659
+ }
660
+
661
+ #theme-span.liquid-width {
662
+ margin-top: 10px;
663
+ }
664
+
665
+ .effects span {
666
+ margin-top: 13px;
667
+ }
668
+
669
+ .effects select {
670
+ margin-bottom: 10px;
671
+ }
672
+
673
+ .crud-wrapper .liquid-width {
674
+ display: inline-block;
675
+ margin: 8px auto;
676
+ width: 151px;
677
+ }
678
+
679
+ .crud-wrapper .general .liquid-width {
680
+ display: inline-block;
681
+ margin: 8px auto;
682
+ width: 62px;
683
+ }
684
+
685
+ .sameWidthinputsTitle {
686
+ width: 60.0%;
687
+ }
688
+
689
+ #theme-span {
690
+ width: 138px;
691
+ margin-top: 0px;
692
+ }
693
+
694
+ #sameWidthinputs {
695
+ width: 44%;
696
+ min-width: 165px;
697
+ }
698
+
699
+ #effectShow {
700
+ display: none;
701
+ width: 150px;
702
+ height: 150px;
703
+ margin-left: 5px;
704
+ background-image: url("../img/theme4.jpg");
705
+ background-size: 150px 150px;
706
+ position: absolute;
707
+ top: -46px;
708
+ left: 72%;
709
+ z-index: 9999;
710
+ }
711
+
712
+ .effectWrapper {
713
+ position: relative;
714
+ display: inline-block;
715
+ }
716
+
717
+ .dimensions {
718
+ width: 100%;
719
+ background-color: white;
720
+ margin-right: 2.1%;
721
+ box-sizing: border-box;
722
+ }
723
+
724
+ .options {
725
+ margin-top: 13px;
726
+ }
727
+
728
+ .optionsContent .liquid-width,
729
+ .advanced-options-content .liquid-width,
730
+ .special-options-content .liquid-width,
731
+ .effectsContent .liquid-width {
732
+ width: 39%;
733
+ }
734
+
735
+ .optionsContent .input-width-static {
736
+ margin-right: 3%;
737
+ }
738
+
739
+ .optionsContent,
740
+ .advanced-options-content,
741
+ .special-options-content {
742
+ background-color: white;
743
+ position: relative;
744
+ padding: 10px 20px 10px 20px;
745
+ }
746
+
747
+ .js-spetial-postbox {
748
+ display: block;
749
+ }
750
+
751
+ .js-special-title,
752
+ .js-advanced-title {
753
+ cursor: pointer !important;
754
+ }
755
+
756
+ .special-options-content .input-width-static,
757
+ .special-options-content [type="radio"] {
758
+ margin-right: 5%;
759
+ }
760
+
761
+ .bootstrap-tagsinput .tag {
762
+ background-color: #0073AA;
763
+ padding: 0 3px 2px 3px;
764
+ }
765
+
766
+ .bootstrap-tagsinput > span {
767
+ display: inline-block;
768
+ }
769
+
770
+ .optionsCountry {
771
+ margin-left: -1px;
772
+ }
773
+
774
+ .js-auto-close-content,
775
+ .js-countri-content {
776
+ width: 100%;
777
+ display: none;
778
+ }
779
+
780
+ .popupTimer {
781
+ width: 30px;
782
+ }
783
+
784
+ .optionStyle {
785
+ font: 13px Arial, sans-serif;
786
+ padding-left: 2px;
787
+ display: inline-block;
788
+ margin-bottom: 8px;
789
+ }
790
+
791
+ .range-bar {
792
+ background-color: #a9acb1;
793
+ border-radius: 15px;
794
+ display: block;
795
+ height: 4px;
796
+ position: relative;
797
+ width: 100%;
798
+ }
799
+
800
+ .range-quantity {
801
+ background-color: #017afd;
802
+ border-radius: 15px;
803
+ display: block;
804
+ height: 100%;
805
+ width: 0;
806
+ }
807
+
808
+ .range-handle {
809
+ background-color: #fff;
810
+ border-radius: 100%;
811
+ cursor: move;
812
+ height: 20px;
813
+ left: 0;
814
+ top: -10px;
815
+ position: absolute;
816
+ width: 20px;
817
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
818
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
819
+ }
820
+
821
+ .range-min,
822
+ .range-max {
823
+ height: 20px;
824
+ padding-top: 4px;
825
+ position: absolute;
826
+ text-align: center;
827
+ top: -9px;
828
+ display: none;
829
+ }
830
+
831
+ .slider-wrapper {
832
+ position: relative;
833
+ width: 150px;
834
+ display: inline-block;
835
+ }
836
+
837
+ .vertical-wrapper {
838
+ height: 200px;
839
+ width: auto;
840
+ }
841
+
842
+ .display-box {
843
+ background-color: #f7fcff;
844
+ border-radius: 5px;
845
+ font-size: 0.8em;
846
+ height: 23px;
847
+ right: -41px;
848
+ box-sizing: border-box;
849
+ padding-top: 6px;
850
+ position: absolute;
851
+ text-align: center;
852
+ top: -10px;
853
+ width: 35px;
854
+ -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
855
+ box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.15);
856
+ }
857
+
858
+ #color-picker,
859
+ .color-picker {
860
+ display: inline-block;
861
+ }
862
+
863
+ #color-picker > .wp-picker-container .wp-color-result {
864
+ top:12px;
865
+ }
866
+
867
+ .color-picker > .wp-picker-container .wp-color-result {
868
+ top: 12px;
869
+ }
870
+
871
+ .special-options-content .wp-color-result:after {
872
+ line-height: 22px;
873
+ }
874
+
875
+ .special-options-content input[type='text'] {
876
+ margin: 0px;
877
+ }
878
+
879
+ .info-active-url {
880
+ margin-top: 0px;
881
+ }
882
+
883
+ .sg-active-url {
884
+ margin-top: 2px;
885
+ }
886
+
887
+ .wp-picker-open+.wp-picker-input-wrap {
888
+ float: right;
889
+ margin-top: 12px;
890
+ }
891
+
892
+ .countrisConfigDiv {
893
+ width: 100%;
894
+ max-height: 150px;
895
+ display: none;
896
+ }
897
+
898
+ .acordion-main-div-content {
899
+ width: 100%;
900
+ display: none;
901
+ }
902
+
903
+ .before-scroling-percent,
904
+ .input-width-percent {
905
+ width: 104px;
906
+ }
907
+
908
+ .span-percent {
909
+ margin-left: 4px;
910
+ }
911
+
912
+ .countrisConfigDivCountris {
913
+ display: inline-block;
914
+ width: 239px;
915
+ }
916
+
917
+ .autoCloseTimeContent {
918
+ display: none;
919
+ width: 100%;
920
+ }
921
+
922
+ .popupClosingTimer {
923
+ width: 37px;
924
+ }
925
+
926
+ .fixed-wrapper {
927
+ max-width: 248px;
928
+ width: 40%;
929
+ height: 191px;
930
+ display: inline-block;
931
+ margin-top: 4px;
932
+ }
933
+
934
+ .js-popop-fixeds {
935
+ width: 100%;
936
+ display: none;
937
+ }
938
+
939
+ .fix-wrapper-style {
940
+ width: 38.5%;
941
+ display: inline-block;
942
+ }
943
+
944
+ .js-fixed-position-style {
945
+ width: 31.85%;
946
+ height: 53px;
947
+ float: left;
948
+ cursor: pointer;
949
+ }
950
+
951
+ #fixed-position2,
952
+ #fixed-position4,
953
+ #fixed-position8,
954
+ #fixed-position6 {
955
+ float: left;
956
+ width: 31.85%;
957
+ height: 53px;
958
+ }
959
+
960
+ #fixed-position1 {
961
+ border: 1px solid #ccc;
962
+ }
963
+
964
+ #fixed-position2 {
965
+ border-bottom: 1px solid #ccc;
966
+ border-top: 1px solid #ccc;
967
+ }
968
+
969
+ #fixed-position3 {
970
+ border: 1px solid #ccc;
971
+ }
972
+
973
+ #fixed-position6 {
974
+ border-left: 1px solid #ccc;
975
+ border-right: 1px solid #ccc;
976
+ }
977
+
978
+ #fixed-position9 {
979
+ border-left: 1px solid #ccc;
980
+ border-bottom: 1px solid #ccc;
981
+ border-right: 1px solid #ccc;
982
+ border-top: 1px solid #ccc;
983
+ }
984
+
985
+ #fixed-position8 {
986
+ border-left: 1px solid #ccc;
987
+ border-bottom: 1px solid #ccc;
988
+ border-top: 1px solid #ccc;
989
+ }
990
+
991
+ #fixed-position7 {
992
+ border-top: 1px solid #ccc;
993
+ border-left: 1px solid #ccc;
994
+ border-bottom: 1px solid #ccc;
995
+ }
996
+
997
+ #fixed-position4 {
998
+ border-right: 1px solid #ccc;
999
+ border-left: 1px solid #ccc;
1000
+ }
1001
+
1002
+ .socials-content {
1003
+ display: block;
1004
+ width: 100%;
1005
+ }
1006
+
1007
+ .restrictionUrlDiv {
1008
+ display: none;
1009
+ width: 100%;
1010
+ }
1011
+
1012
+ .js-social-round-btn {
1013
+ border-radius : 50% !important;
1014
+ }
1015
+
1016
+ .radio-btn-fix {
1017
+ margin-top: 0px !important;
1018
+ margin-right: 5px !important;
1019
+ }
1020
+
1021
+ #share-btns-container {
1022
+ border: 1px solid #ccc;
1023
+ margin: 10px 0px;
1024
+ padding: 10px;
1025
+ text-align: center;
1026
+ }
1027
+
1028
+ .general {
1029
+ background-color: white;
1030
+ margin-left: 3px;
1031
+ margin-top: 5px;
1032
+ }
1033
+
1034
+ .generalContent {
1035
+ padding-right: 20px;
1036
+ padding-left: 20px;
1037
+ }
1038
+
1039
+ .sg-title-crud {
1040
+ float: left;
1041
+ display: inline-block;
1042
+ }
1043
+
1044
+ .cereate-title-wrapper {
1045
+ position: relative;
1046
+ }
1047
+
1048
+ #title {
1049
+ margin-top: 5px !important;
1050
+ }
1051
+
1052
+ #left-main-div {
1053
+ width: 48.5%;
1054
+ float: left;
1055
+ margin-right: 1.5%;
1056
+ display: block;
1057
+ }
1058
+
1059
+ #right-main-div {
1060
+ width: 50%;
1061
+ display: inline-block;
1062
+ float: right;
1063
+ }
1064
+
1065
+
1066
+ .reviewPanelClose {
1067
+ border: none;
1068
+ margin: 0;
1069
+ padding: 9px;
1070
+ background: 0 0;
1071
+ color: white;
1072
+ cursor: pointer;
1073
+ display: block;
1074
+ text-align: right;
1075
+ }
1076
+
1077
+ .reviewPanelHref {
1078
+ color: white;
1079
+ text-decoration: underline !important;
1080
+ }
1081
+
1082
+ .reviewPanelSpan {
1083
+ font-size: 19px;
1084
+ color: white;
1085
+ }
1086
+
1087
+ .reviewPanel {
1088
+ background-color: #2ECC71 !important;
1089
+ }
1090
+
1091
+ .reviewPanelContent {
1092
+ padding: 30px;
1093
+ }
1094
+
1095
+ @media only screen and (min-width:800px) {
1096
+ .sgmb-container {
1097
+ min-width:800px;
1098
+ margin-left: 10px;
1099
+ margin-right: 10px;
1100
+ }
1101
+ .reviewPanelContent {
1102
+ min-width:800px;
1103
+ }
1104
+ }
1105
+
1106
+ @media(max-width: 1042px) {
1107
+ #left-main-div {
1108
+ width: 100%;
1109
+ margin: 0px auto;
1110
+ }
1111
+ #right-main-div {
1112
+ width: 100%;
1113
+ margin: 0px auto;
1114
+ }
1115
+ }
 
 
 
style/sg_popup_style.php CHANGED
@@ -1,38 +1,28 @@
1
- <?php
2
- function sg_popup_admin_style($hook) {
3
- if ('toplevel_page_PopupBuilder' != $hook && 'popup-builder_page_create-popup' != $hook && 'popup-builder_page_edit-popup' != $hook && 'popup-builder_page_sgPopupMenu' != $hook && 'popup-builder_page_subscribers' != $hook) {
4
- return;
5
- }
6
- wp_register_style('sg_popup_style', SG_APP_POPUP_URL . '/style/sg_popup_style.css', false, '1.0.0');
7
- wp_enqueue_style('sg_popup_style');
8
- wp_register_style('sg_popup_animate', SG_APP_POPUP_URL . '/style/animate.css');
9
- wp_enqueue_style('sg_popup_animate');
10
- if (SG_POPUP_PRO) {
11
- wp_register_style('font_awesome', SG_APP_POPUP_URL . "/style/jssocial/font-awesome.min.css");
12
- wp_enqueue_style('font_awesome');
13
- wp_register_style('jssocials_main_css', SG_APP_POPUP_URL . "/style/jssocial/jssocials.css");
14
- wp_enqueue_style('jssocials_main_css');
15
- wp_register_style('jssocials_theme_tm', SG_APP_POPUP_URL . "/style/jssocial/jssocials-theme-classic.css");
16
- wp_enqueue_style('jssocials_theme_tm');
17
- wp_register_style('sg_flipclock_css', SG_APP_POPUP_URL . "/style/sg_flipclock.css");
18
- wp_enqueue_style('sg_flipclock_css');
19
- wp_register_style('sg_jqueryUi_css', SG_APP_POPUP_URL . "/style/jquery-ui.min.css");
20
- wp_enqueue_style('sg_jqueryUi_css');
21
- wp_register_style('sg_bootstrap_input', SG_APP_POPUP_URL . "/style/bootstrap-tagsinput.css");
22
- wp_enqueue_style('sg_bootstrap_input');
23
- }
24
- }
25
- add_action('admin_enqueue_scripts', 'sg_popup_admin_style');
26
-
27
- function sg_popup_style($hook) {
28
- if ('admin.php' != $hook) {
29
- return;
30
- }
31
- wp_register_style('sg_popup_animate', SG_APP_POPUP_URL . '/style/animate.css');
32
- wp_enqueue_style('sg_popup_animate');
33
-
34
- wp_register_style('sg_popup_style', SG_APP_POPUP_URL . '/style/sg_popup_style.css', false, '1.0.0');
35
- wp_enqueue_style('sg_popup_style');
36
- }
37
-
38
- add_action('admin_enqueue_scripts', 'sg_popup_style');
1
+ <?php
2
+ function sg_popup_admin_style($hook) {
3
+ if ('toplevel_page_PopupBuilder' != $hook && 'popup-builder_page_create-popup' != $hook && 'popup-builder_page_edit-popup' != $hook && 'popup-builder_page_sgPopupMenu' != $hook && 'popup-builder_page_subscribers' != $hook) {
4
+ return;
5
+ }
6
+ wp_register_style('sg_popup_style', SG_APP_POPUP_URL . '/style/sg_popup_style.css', false, '1.0.0');
7
+ wp_enqueue_style('sg_popup_style');
8
+ wp_register_style('sg_popup_animate', SG_APP_POPUP_URL . '/style/animate.css');
9
+ wp_enqueue_style('sg_popup_animate');
10
+ if (SG_POPUP_PRO) {
11
+ wp_register_style('sg_bootstrap_input', SG_APP_POPUP_URL . "/style/bootstrap-tagsinput.css");
12
+ wp_enqueue_style('sg_bootstrap_input');
13
+ }
14
+ }
15
+ add_action('admin_enqueue_scripts', 'sg_popup_admin_style');
16
+
17
+ function sg_popup_style($hook) {
18
+ if ('admin.php' != $hook) {
19
+ return;
20
+ }
21
+ wp_register_style('sg_popup_animate', SG_APP_POPUP_URL . '/style/animate.css');
22
+ wp_enqueue_style('sg_popup_animate');
23
+
24
+ wp_register_style('sg_popup_style', SG_APP_POPUP_URL . '/style/sg_popup_style.css', false, '1.0.0');
25
+ wp_enqueue_style('sg_popup_style');
26
+ }
27
+
28
+ add_action('admin_enqueue_scripts', 'sg_popup_style');