Google Reviews Widget - Version 2.0.2

Version Description

  • Improve instantly Google reviews connection
  • Separated assets to dist and src for speed up the loading
  • Preparing a database for introducing rating & reviews stats
  • Deleted unused JS libraries
  • Dropped unused db columns
  • Update support page
Download this release

Release Info

Developer widgetpack
Plugin Icon 128x128 Google Reviews Widget
Version 2.0.2
Comparing to
See all releases

Code changes from version 2.0.1 to 2.0.2

assets/css/admin-main.css ADDED
@@ -0,0 +1 @@
 
1
+ .grw-admin #wpcontent{padding:0}.google-reviews_page_grw-builder #wpcontent,.grw-admin.google-reviews_page_grw-builder #wpcontent{padding-right:320px}.toplevel_page_grw .wp-menu-image img{width:18px}.grw-admin.edit-php #wpbody{color:#5d6f80;padding-left:20px;position:relative}.grw-admin.edit-php #wpbody .wp-header-end,.grw-admin.post-new-php #wpbody .wp-header-end,.grw-admin.post-php #wpbody .wp-header-end{margin-top:6px}.grw-admin .update-nag{margin:20px 0 0 20px}.grw-admin.edit-php .update-nag{margin:20px 20px 0 0}.grw-admin.edit-php .update-nag ~ .update-nag{margin-left:0}.grw-admin #wpbody #screen-meta-links{display:none}.grw-admin #screen-meta{background-color:#ecf0f1;border:0;margin:0}.grw-admin #screen-meta-links{position:absolute;top:0;right:0;z-index:1}.grw-tophead{-ms-flex-align:center;-webkit-align-items:center;-webkit-box-align:center;-webkit-box-sizing:border-box;align-items:center;background-color:#fff;border-bottom:1px solid #cfd9db;padding:15px 20px;box-sizing:border-box;overflow:hidden;position:relative;top:46px;width:100%}@media(min-width:601px){.grw-tophead{-ms-flex-align:stretch;-webkit-align-items:stretch;-webkit-box-align:stretch;align-items:stretch;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0}}.grw-tophead img{width:32px;margin:0 4px 0 0;vertical-align:middle}.grw-tophead-title{padding:0;font-size:18px;font-weight:600;line-height:1.4em}.grw-page-title{font-size:23px;font-weight:400;margin:0;padding:20px 0 0 20px;line-height:29px}.grw-version{position:absolute;top:6px;right:16px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;display:inline-block;margin:12px 0 0;padding:6px 10px;font-size:12px;line-height:14px;color:#FFF;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.grw-toolbar{padding:15px 20px;background-color:#fff;border-bottom:1px solid #cfd9db}@media(min-width:783px){.grw-toolbar{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}}.grw-toolbar-title{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-bottom:0;margin-right:20px;min-width:0}.grw-toolbar-title-input{background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;width:100%}.grw-toolbar-title-input{font-size:18px;font-weight:400;line-height:1.4em;margin:0;padding:0}.grw-toolbar-control{display:-webkit-box;display:-ms-flexbox;display:flex}.grw-toolbar-control button{margin-left:20px!important}.grw-toolbar-control input[type="text"]{width:200px;height:34px;font-size:14px}.grw-toolbar-options label{display:block;padding:0 0 0 4px}.grw-admin .type-grw_collection .title.column-title{font-size:0}.grw-admin .type-grw_collection .title.column-title strong,.grw-admin .type-grw_collection .title.column-title .row-actions{line-height:1.5em}.grw-builder-workspace{display:block;position:relative;width:100%;overflow-y:hidden;box-sizing:border-box}.grw-builder-preview{font-size:14px;grid-area:preview;min-height:0;min-width:0;padding:20px;line-height:1.75}.grw-builder-options{box-sizing:border-box;position:fixed;top:32px;bottom:0;right:0;width:320px;overflow:hidden;transition:all .3s;z-index:1;overflow-y:auto;background:#fafafa}.wp-gr .wp-review-hidden{opacity:.5!important}.wp-gr .wp-review-hide{color:#fff!important;font-size:12px!important;font-weight:600!important;line-height:26px!important;text-decoration:none!important;text-transform:uppercase!important;padding:2px 8px!important;border-radius:3px!important;border-color:#0062cc!important;background-color:#427fbf!important}.wp-gr .wp-review-hide:hover{background-color:#1d62ab!important}.nav-tab.nav-tab-active{box-shadow:none;background:#fff;border-bottom-color:#fff}.grw-settings-workspace{font-size:14px;margin:20px;padding:20px;background:#fff}.grw-settings-workspace p{font-size:14px}.grw-settings-workspace .grw-alert{max-width:500px;word-wrap:break-word}.grw-warn{padding:10px;margin:20px 0 10px;font-size:15px;line-height:26px;font-weight:600;color:#000;border:1px solid #ccc;border-radius:3px;background-color:#ffeb3b}.grw-support-question{padding-bottom:10px}.grw-support-workspace{font-size:15px;line-height:22px;margin:20px;padding:20px;background:#fff}.grw-support-workspace p{font-size:15px}.grw-support-workspace #fig p{line-height:24px}.grw-support-workspace img{width:100%}.grw-support-workspace .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}.grw-support-workspace .grw-flex-col>b:first-child,.grw-support-workspace .grw-flex-col3>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 rgb(0 0 0 / 26%)}.box-img{padding:15px;margin:0 0 10px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}#fig hr{border-top:1px solid #bbb;border-bottom:2px solid #eee}#fig .grw-flex-row{align-items:center!important;text-align:left;margin-bottom:40px}#fig .grw-flex-col,#fig .grw-flex-col3{padding:0 20px;line-height:24px}#fig .grw-flex-col:first-child,#fig .grw-flex-col3:first-child{padding-right:10px}#fig img{width:100%}#fig .subheader{color:#4b76b7;margin:40px 0 20px;text-decoration:underline}#fig .grw-flex-col>b:first-child,#fig .grw-flex-col3>b:first-child{padding:2px 8px;margin-right:4px;border-radius:50%;color:#fff;background:#36ad55;box-shadow:0 2px 5px 0 rgb(0 0 0 / 26%)}.grw-field,.grw-field *{box-sizing:border-box}.grw-field{padding:0 0 15px 0;margin-top:1em;margin-bottom:1em;border-bottom:1px dashed #ddd}@media(min-width:600px){.grw-field{display:flex;flex-wrap:wrap}.grw-field-label{flex:0 0 25%;padding-right:4%}.grw-field-option{flex:0 0 75%}}.grw-field input[type="text"]{margin:0;padding:5px 8px;border-radius:2px}.grw-field select{width:15em;margin-left:0}.grw-flex-row{display:flex;flex-flow:row wrap;width:100%}.grw-flex-col,.grw-flex-col3{box-sizing:border-box}.grw-flex-col:first-child,.grw-flex-col3:first-child,.grw-flex-col3+.grw-flex-col3{padding-right:10px}@media(min-width:700px){.grw-flex-col{width:50%}.grw-flex-col3{width:30%}.grw-flex-col6{width:66.7%}.grw-flex-col7{width:70%}}.grw-alert{font-size:14px;line-height:1.846;border:0;color:#fff;padding:15px;border:1px solid transparent;border-radius:3px}.grw-alert-dismissable,.grw-alert-dismissible{padding-right:35px}.grw-alert-success{color:#fff;border-color:#d6e9c6;background-color:#4caf50}.grw-alert-warning{background-color:#a22525}.grw-alert a:not(.close),.grw-alert .alert-link{color:#fff;font-weight:bold}.grw-builder-platforms{position:relative;box-sizing:border-box}.grw-builder-top{padding:10px;color:#23282d;font-size:13px;font-weight:600;line-height:1.4em;cursor:pointer;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fafafa url('../img/button-down-black.svg') no-repeat right}.grw-builder-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.grw-builder-inside{border-top:0;padding:10px 10px 0;line-height:16px;background:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.grw-builder-inside .grw-builder-option{margin:10px 0 0;position:relative}.grw-builder-inside .grw-builder-option:first-child{margin-top:0}.grw-builder-inside .grw-builder-option:last-child{margin-bottom:10px}.grw-builder-inside input[type="text"],.grw-builder-inside select,.grw-builder-inside button,.grw-builder-inside textarea{width:100%;clear:both;border-spacing:0}.grw-builder-inside pre{margin:0;color:#b73434;font-size:10px;line-height:16px;padding:4px;background:#fff;overflow:auto}.grw-builder-connect{margin:0 0 10px;padding:6px;color:#fff;border:0;cursor:pointer;text-align:center;background:#eee}.grw-builder-connect.grw-connect-google{font-weight:600;font-size:12px;text-transform:uppercase;background:#fa8e08}.grw-connect-google-inside{padding:0 1px}.grw-builder-connect.grw-connect-facebook{background:#3c5b9b}.grw-builder-connect.grw-connect-tripadvisor{background:#3eca77}.grw-builder-connect.grw-connect-yelp{margin-bottom:0;background:#d32323}.grw-builder-connect.grw-connect-google+div,.grw-builder-connect.grw-connect-yelp+div{margin-top:10px}.grw-connections{padding-bottom:10px}.grw-connection{cursor:move}.grw-connect-business{color:#333;text-align:left;margin:10px 0 0;border:1px solid #ccc;background:#fafafa url(../img/button-down-black.svg) no-repeat right}.grw-connect-business+div{padding:4px;border:1px solid #ccc;border-top:0}.grw-connect-select{display:none!important}.grw-platform-multiple .grw-connect-select{display:inline-block!important}.grw-connect-photo{width:24px;height:24px;margin-right:10px;border-radius:50%;border:1px solid #ccc;vertical-align:middle}.grw-connect-photo-change{margin-right:10px}.grw-connect-error{color:#e60909;font-size:13px}.grw-connection-checkbox{display:none;margin:10px 0 0 6px}.grw-platform-multiple .grw-connection-checkbox{display:block}.grw-quest{position:absolute;top:6px;right:3px;width:16px;cursor:pointer;font-size:12px;font-weight:bold;text-align:center;border:1px solid #ccc;border-radius:50px;background:#eee}.grw-quest.grw-quest-top{top:0}.grw-quest.grw-quest-top22{top:22px}.grw-quest:hover{border:1px solid #999}.grw-quest-help{display:none;margin:0 0 10px 0;padding:4px;font-size:13px;line-height:18px;background:#eee}.grw-well{padding:10px;margin:10px 0;border-radius:3px;border:1px solid #d9d9d9;background:#f1f1f1}#rating_temp{height:260px;font-size:12px;word-break:break-all}
assets/css/builder.css DELETED
@@ -1,219 +0,0 @@
1
- .grw-builder-platforms {
2
- position: relative;
3
- box-sizing: border-box;
4
- }
5
-
6
- /*.grw-platform-google .grw-builder-top {
7
- color: #e7711b;
8
- }
9
-
10
- .grw-platform-facebook .grw-builder-top {
11
- color: #3c5b9b;
12
- }
13
-
14
- .grw-platform-yelp .grw-builder-top {
15
- color: #d32323;
16
- }*/
17
-
18
- .grw-builder-top {
19
- padding: 10px;
20
- color: #23282d;
21
- font-size: 13px;
22
- font-weight: 600;
23
- line-height: 1.4em;
24
- cursor: pointer;
25
- border: 1px solid #e5e5e5;
26
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
27
- background: #fafafa url('../img/button-down-black.svg') no-repeat right;
28
- }
29
-
30
- .grw-builder-top:hover {
31
- border-color: #999;
32
- box-shadow: 0 1px 2px rgba(0,0,0,.1);
33
- }
34
-
35
- .grw-builder-inside {
36
- border-top: none;
37
- padding: 10px 10px 0;
38
- line-height: 16px;
39
- background: #fff;
40
- border: 1px solid #e5e5e5;
41
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
42
- }
43
-
44
- .grw-builder-inside .grw-builder-option {
45
- margin: 10px 0 0;
46
- position: relative;
47
- }
48
-
49
- .grw-builder-inside .grw-builder-option:first-child {
50
- margin-top: 0;
51
- }
52
-
53
- .grw-builder-inside .grw-builder-option:last-child {
54
- margin-bottom: 10px;
55
- }
56
-
57
- .grw-builder-inside input[type="text"],
58
- .grw-builder-inside select,
59
- .grw-builder-inside button,
60
- .grw-builder-inside textarea {
61
- width: 100%;
62
- clear: both;
63
- border-spacing: 0;
64
- }
65
-
66
- .grw-builder-inside pre {
67
- margin: 0;
68
- color: #b73434;
69
- font-size: 10px;
70
- line-height: 16px;
71
- padding: 4px;
72
- background: #fff;
73
- overflow: auto;
74
- }
75
-
76
- .grw-builder-connect {
77
- margin: 0 0 10px;
78
- padding: 6px;
79
- color: #fff;
80
- border: none;
81
- cursor: pointer;
82
- text-align: center;
83
- background: #eee;
84
- }
85
-
86
- .grw-builder-connect.grw-connect-google {
87
- font-weight: 600;
88
- font-size: 12px;
89
- text-transform: uppercase;
90
- background: #fa8e08;
91
- }
92
-
93
- .grw-connect-google-inside {
94
- padding: 0 1px;
95
- }
96
-
97
- .grw-builder-connect.grw-connect-facebook {
98
- background: #3c5b9b;
99
- }
100
-
101
- .grw-builder-connect.grw-connect-tripadvisor {
102
- background: #3eca77;
103
- }
104
-
105
- .grw-builder-connect.grw-connect-yelp {
106
- margin-bottom: 0;
107
- background: #d32323;
108
- }
109
-
110
- .grw-builder-connect.grw-connect-google + div,
111
- .grw-builder-connect.grw-connect-yelp + div {
112
- margin-top: 10px;
113
- }
114
-
115
- .grw-connections {
116
- padding-bottom: 10px;
117
- }
118
-
119
- .grw-connection {
120
- cursor: move;
121
- }
122
-
123
- .grw-connect-business {
124
- color: #333;
125
- text-align: left;
126
- margin: 10px 0 0;
127
- border: 1px solid #ccc;
128
- background: #fafafa url(../img/button-down-black.svg) no-repeat right;
129
- }
130
-
131
- .grw-connect-business + div {
132
- padding: 4px;
133
- border: 1px solid rgb(204, 204, 204);
134
- border-top: 0;
135
- }
136
-
137
- .grw-connect-select {
138
- display: none!important;
139
- }
140
-
141
- .grw-platform-multiple .grw-connect-select {
142
- display: inline-block!important;
143
- }
144
-
145
- .grw-connect-photo {
146
- width: 24px;
147
- height: 24px;
148
- margin-right: 10px;
149
- border-radius: 50%;
150
- border: 1px solid #ccc;
151
- vertical-align: middle;
152
- }
153
-
154
- .grw-connect-photo-change {
155
- margin-right: 10px
156
- }
157
-
158
- .grw-connect-error {
159
- color: #e60909;
160
- font-size: 13px;
161
- }
162
-
163
- .grw-connection-checkbox {
164
- display: none;
165
- margin: 10px 0 0 6px;
166
- }
167
-
168
- .grw-platform-multiple .grw-connection-checkbox {
169
- display: block;
170
- }
171
-
172
- .grw-quest {
173
- position: absolute;
174
- top: 6px;
175
- right: 3px;
176
- width: 16px;
177
- cursor: pointer;
178
- font-size: 12px;
179
- font-weight: bold;
180
- text-align: center;
181
- border: 1px solid #ccc;
182
- border-radius: 50px;
183
- background: #eee;
184
- }
185
-
186
- .grw-quest.grw-quest-top {
187
- top: 0;
188
- }
189
-
190
- .grw-quest.grw-quest-top22 {
191
- top: 22px;
192
- }
193
-
194
- .grw-quest:hover {
195
- border: 1px solid #999;
196
- }
197
-
198
- .grw-quest-help {
199
- display: none;
200
- margin: 0 0 10px 0;
201
- padding: 4px;
202
- font-size: 13px;
203
- line-height: 18px;
204
- background: #eee;
205
- }
206
-
207
- .grw-well {
208
- padding: 10px;
209
- margin: 10px 0px;
210
- border-radius: 3px;
211
- border: 1px solid #d9d9d9;
212
- background: #f1f1f1;
213
- }
214
-
215
- #rating_temp {
216
- height: 260px;
217
- font-size: 12px;
218
- word-break: break-all;
219
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/google-review.css DELETED
@@ -1 +0,0 @@
1
- .wpac,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac p,.wpac td,.wpac dl,.wpac tr,.wpac dt,.wpac ol,.wpac form,.wpac select,.wpac option,.wpac pre,.wpac div,.wpac table,.wpac th,.wpac tbody,.wpac tfoot,.wpac caption,.wpac thead,.wpac ul,.wpac li,.wpac address,.wpac blockquote,.wpac dd,.wpac fieldset,.wpac li,.wpac strong,.wpac legend,.wpac em,.wpac s,.wpac cite,.wpac span,.wpac input,.wpac sup,.wpac label,.wpac dfn,.wpac object,.wpac big,.wpac q,.wpac font,.wpac samp,.wpac acronym,.wpac small,.wpac img,.wpac strike,.wpac code,.wpac sub,.wpac ins,.wpac textarea,.wpac var,.wpac a,.wpac abbr,.wpac applet,.wpac del,.wpac kbd,.wpac tt,.wpac b,.wpac i,.wpac hr{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:black!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;text-shadow:none!important;-webkit-transition:none!important;transition:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.wpac,.wpac h3,.wpac h5,.wpac p,.wpac h1,.wpac dl,.wpac dt,.wpac h6,.wpac ol,.wpac form,.wpac select,.wpac option,.wpac pre,.wpac div,.wpac h2,.wpac caption,.wpac h4,.wpac ul,.wpac address,.wpac blockquote,.wpac dd,.wpac fieldset,.wpac textarea,.wpac hr{display:block}.wpac table{display:table}.wpac tbody{display:table-row-group}.wpac tr{display:table-row}.wpac td{display:table-cell}.wpac ul{list-style-type:none!important}.wpac li{display:list-item;min-height:auto!important;min-width:auto!important}.wpac a,.wpac a *,.wpac input[type=submit],.wpac input[type=radio],.wpac input[type=checkbox],.wpac select{cursor:pointer!important}.wpac a:hover{text-decoration:none!important}.wpac button,.wpac input[type=submit]{height:auto!important;text-align:center!important}.wpac input[type=hidden]{display:none}.wpac select{-webkit-appearance:menulist!important;-moz-appearance:menulist!important;appearance:menulist!important}.wpac input[type=checkbox]{-webkit-appearance:checkbox!important;-moz-appearance:checkbox!important;appearance:checkbox!important}.wpac input[type="checkbox"]:before,.wpac input[type="checkbox"]:after{content:none!important;border:0!important}.wpac input[type=radio]{-webkit-appearance:radio!important;-moz-appearance:radio!important;appearance:radio!important}.wpac input[type="radio"]:before,.wpac input[type="radio"]:after{content:none!important;border:0!important}.wpac li:before,.wpac li:after{content:""!important}.wpac input,.wpac select{vertical-align:middle!important}.wpac select,.wpac textarea,.wpac input{border:1px solid #ccc!important}.wpac table{border-collapse:collapse!important;border-spacing:0!important}.wpac *[dir=rtl]{direction:rtl!important}.wpac img{border:0!important}.wpac svg{vertical-align:middle!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.wpac{font-size:14px!important;line-height:20px!important;direction:inherit!important;text-align:inherit!important;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;color:#333!important;font-style:normal!important;font-weight:normal!important;text-decoration:none!important;list-style-type:disc!important}.wpac .wp-sheet{position:fixed!important;bottom:0!important;right:0!important;height:100%!important;width:368px!important;z-index:1999999000!important;transition:all .2s ease-in-out!important}@media(max-width:460px){.wpac .wp-sheet{width:100%!important}}.wpac .wp-sheet-head{position:absolute!important;top:0!important;right:0!important;width:100%!important;height:48px!important;background:#fff!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;z-index:1999999002!important}.wpac .wp-sheet-head-inner{position:absolute!important;left:20px!important;top:0!important;width:100%!important;height:100%!important;line-height:48px!important;z-index:1999999000!important}.wpac .wp-sheet-head-close{position:relative!important;height:49px!important;float:right!important;color:#aaa!important;font-size:28px!important;line-height:48px!important;margin:0 20px 0 15px!important;z-index:1999999001!important;transition:all .2s ease-in-out!important}.wpac .wp-sheet-head-close:hover{color:#555!important}.wpac .wp-sheet-body{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;background:rgba(250,250,251,.98)!important;border-left:1px solid #dadee2!important;box-shadow:0 0 4px 1px rgba(0,0,0,.08)!important;z-index:1999999000!important}.wpac .wp-sheet-content{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;opacity:0!important;overflow-y:auto!important;z-index:1999999001!important;transition:all .2s ease-in-out!important;-webkit-transform:translateZ(0)!important}.wpac .wp-sheet-content.wp-sheet-ready{opacity:1.0!important}.wpac .wp-sheet-content-inner{position:relative!important;min-height:100%!important;margin:0 auto!important}.wpac .wp-sheet-footer{position:absolute!important;bottom:0!important;right:0!important;left:1px!important;width:100%!important;z-index:1999999002!important;background:rgba(250,250,251,.98)!important}.wp-gr .wp-google-badge{display:inline-block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif!important;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)!important;}.wp-gr .wp-google-badge-fixed{position:fixed!important;right:30px!important;bottom:30px!important;max-width:none!important;z-index:2147482999!important;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)!important;}.wp-gr .wp-google-badge_left-fixed{position:fixed!important;left:30px!important;bottom:30px!important;max-width:none!important;z-index:2147482999!important}.wp-gr .wp-google-badge *{cursor:pointer!important}.wp-gr .wp-google-border{width:100%!important;height:6px!important;background:#4fce6a!important;border-radius:2px 2px 0 0!important;}.wp-gr .wp-google-badge-btn{position:relative!important;padding:10px!important;background:#fff!important;transition:all .2s ease-in-out!important;border-radius:2px!important;}.wp-gr .wp-google-badge-btn:hover{background:#f3f3f5!important}.wp-gr .wp-google-logo{position:absolute!important;top:10px!important}.wp-gr .wp-google-badge-score{display:inline-block;margin:0 0 0 4px!important;vertical-align:middle!important;}.wp-gr .wp-google-rating{color:#e7711b!important;font-size:20px!important;margin:0 6px 0 0!important;vertical-align:middle!important}.wp-gr .wp-google-stars .wp-star{padding:0 4px 0 0!important;line-height:22px!important}.wp-gr .wp-google-powered{color:#777!important;margin:6px 0 0!important}.wp-gr .wp-google-powered img{max-width:144px!important}.wp-gr .wp-google-form .wp-google-reviews{padding:16px 16px 0!important}.wp-gr .wp-google-review{margin-top:15px!important}.wp-gr .wp-google-left{display:table-cell!important;vertical-align:top!important}[dir="ltr"] .wp-google-left{padding-right:10px!important}[dir="rtl"] .wp-google-left{padding-left:10px!important}.wp-gr .wp-google-left img{border:none!important;float:left!important;height:50px!important;width:50px!important;margin-right:5px!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.wp-gr .wp-google-reviews img{border-radius:50%!important}.wp-gr .wp-google-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.wp-gr .wp-google-place .wp-star svg{width:18px!important;height:18px!important;vertical-align:middle!important}.wp-gr .wp-star svg{display:inline-block!important}.wp-gr .wp-google-review .wp-star svg{width:16px!important;height:16px!important;vertical-align:middle!important}.wp-gr .wp-google-name{color:black!important;font-size:100%!important;font-weight:bold!important;margin:0 0 2px!important;padding-right:6px!important;text-decoration:none!important}.wp-gr a.wp-google-name{color:#427fed!important;text-decoration:none!important}.wp-gr .wp-google-time{color:#999!important;font-size:13px!important}.wp-gr .wp-google-text{color:#222!important;font-size:13px!important;line-height:18px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.wp-gr .wp-google-text .wp-google-stars{padding-right:7px!important}.wp-gr .wp-more{display:none}.wp-gr .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.wp-gr .wp-google-url{display:block;margin:10px 0!important;color:#2c7cff!important;text-align:center!important}.wp-gr .wp-google-form{position:fixed!important;bottom:0!important;right:0!important;height:100%!important;width:368px!important;z-index:2147483000!important}.wp-gr .wp-google-form.wp-google-form-left{left:0!important;}@media(max-width:460px){.wp-gr .wp-google-form{width:100%!important}}.wp-gr .wp-google-head{position:absolute!important;top:0!important;right:0!important;width:100%!important;height:80px!important;background:#fff!important;padding:10px 16px!important;overflow:hidden!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;z-index:2147483002!important}.wp-gr .wp-google-head-inner{z-index:2147483000!important;position:absolute!important;left:20px!important;top:20px!important;width:100%!important;height:100%!important;pointer-events:none!important}.wp-gr .wp-google-close{padding:0!important;cursor:pointer!important;outline:0!important;border:0!important;background:0 0!important;min-height:0!important;width:auto!important;float:right!important;font-size:32px!important;font-weight:500!important;line-height:.6!important;color:#999!important;-webkit-appearance:none!important}.wp-gr .wp-google-close:hover{color:#555!important}.wp-gr .wp-google-body{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;background:rgba(250,250,251,.98)!important;border-left:1px solid #dadee2!important;box-shadow:0 0 4px 1px rgba(0,0,0,.08)!important;z-index:2147483000!important}.wp-gr .wp-google-content{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;overflow-y:auto!important;z-index:2147483001!important;-webkit-transform:translateZ(0)!important}.wp-gr .wp-google-content{top:80px!important;bottom:48px!important}.wp-gr .wp-google-content-inner{position:relative!important;min-height:100%!important;margin:0 auto!important}.wp-gr .wp-google-footer{position:absolute!important;bottom:0!important;right:0!important;width:100%!important;height:48px!important;text-align:center!important;z-index:2147483002!important;background:#fff!important;box-shadow:0 -1px 2px 0 rgba(0,0,0,.06)!important;-moz-text-align-last:center!important;text-align-last:center!important}.wp-gr .wp-google-footer img{float:right!important;padding:16px!important}.wp-gr .wp-dark .wp-google-name{color:#eee!important}.wp-gr .wp-dark .wp-google-time{color:#bbb!important}.wp-gr .wp-dark .wp-google-text{color:#ececec!important}.wp-gr.wpac .wp-google-name{font-size:100%!important}.wp-gr.wpac .wp-google-hide{display:none}.wp-gr.wpac .wp-google-name a{color:#333!important;font-size:100%!important;text-decoration:none!important}.wp-gr.wpac .wp-google-left img{width:50px!important;height:50px!important;border-radius:50%!important}.wp-gr.wpac a.wp-google-name{color:#427fed!important;text-decoration:none!important}.wp-gr.wpac .wp-google-place .wp-star svg{width:18px;height:18px}.wp-gr.wpac .wp-google-review .wp-google-stars{display:inline-block;margin-right:4px!important}.wp-gr.wpac .wp-google-review .wp-star svg{width:16px;height:16px}.wp-gr.wpac .wp-dark .wp-google-name a{color:#eee!important}.wp-gr .wp-google-richsnippet{color:#999!important;font-size:12px!important;line-height:16px!important;margin-top:6px!important;border-top:1px solid #eee!important;padding-top:4px!important;}.grw-slider{position:relative}.grw-slider .swiper-wrapper{opacity:1;-moz-opacity:1;filter:alpha(opacity=1)}.grw-slider .grw-slider-prev,.grw-slider .grw-slider-next{position:absolute!important;top:50%!important;width:30px;height:30px;background:#eee;border-radius:50%;margin-top:-22px!important;z-index:10!important;cursor:pointer!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.grw-slider .grw-slider-prev{left:-35px!important}.grw-slider .grw-slider-next{right:-35px!important}.grw-slider .grw-slider-prev span,.grw-slider .grw-slider-next span{position:absolute!important;top:48%!important;left:40%!important;color:#777!important;direction:ltr!important;font:normal 300 28px / 0 "Muli",Helvetica,Arial,Verdana,sans-serif!important}.grw-slider .grw-review{margin:20px 0 40px!important}.grw-slider .wp-google-feedback{position:relative!important;margin:2px!important;color:#777!important;font-size:18px!important;border:1px solid #ededed!important;background-color:#fafafa!important;border-radius:4px!important}.grw-slider .wp-google-feedback:before{position:absolute!important;bottom:-7px!important;left:35px!important;display:block!important;width:14px!important;height:14px!important;border:1px solid #ededed!important;border-top:none!important;border-left:none!important;background-color:#fafafa!important;content:""!important;-webkit-transform:rotate(45deg)!important;-ms-transform:rotate(45deg)!important;transform:rotate(45deg)!important}.grw-slider .wp-google-content2{position:static!important;height:150px!important;overflow-y:auto!important;font-size:14px!important;text-align:left!important;padding:0 2px 0 0!important;margin:20px 20px 20px 40px!important}.grw-slider .wp-google-content2::-webkit-scrollbar{width:4px!important}.grw-slider .wp-google-content2::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.3)!important;-webkit-border-radius:4px!important;border-radius:4px!important}.grw-slider .wp-google-content2::-webkit-scrollbar-thumb{-webkit-border-radius:10px!important;border-radius:10px!important;background:#ccc!important;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.5)!important}.grw-slider .wp-google-content2::-webkit-scrollbar-thumb:window-inactive{background:#ccc!important}.grw-slider .wp-google-content2:before{bottom:47px!important;box-sizing:border-box!important;color:#bbb!important;content:'\201C'!important;display:block!important;height:96px!important;left:50px!important;position:absolute!important;right:515.391px!important;text-size-adjust:100%!important;top:20px!important;width:24.6094px!important;column-rule-color:#bbb!important;perspective-origin:12.2969px 48px!important;transform-origin:12.2969px 48px!important;border:0 none #bbb!important;font:normal normal normal normal 60px / 96px Georgia,serif!important;margin:-25px 0 0 -40px!important;outline:#bbb none 0!important}.grw-slider .wp-google-content2>svg{position:absolute!important;bottom:8px!important;right:8px!important;width:24px!important;height:24px!important;background:#fff!important;padding:2px!important;border-radius:50%!important}.grw-slider .wp-google-text{color:#777!important;line-height:22px!important}.grw-slider .wp-google-stars{display:inline-block!important;margin-right:4px!important}.grw-slider .wp-google-stars .wp-star{padding:0 4px 0 0!important;line-height:22px!important}.grw-slider .wp-google-stars .wp-star svg{width:18px!important;height:18px!important;vertical-align:middle!important}.grw-slider .wp-google-user{display:flex!important;position:relative!important;padding:20px!important}.grw-slider .wp-google-user img{width:50px!important;height:50px!important;padding:0!important;margin:0!important;border-radius:100%!important;box-shadow:0 0 1px #a9a9a9!important;vertical-align:middle!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.grw-slider .wp-google-info{margin:0 0 0 10px!important;text-align:left!important;vertical-align:middle!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.grw-slider .wp-google-name{display:block!important;margin-bottom:3px!important;font-size:100%!important;font-weight:bold!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#427fed!important;text-decoration:none!important;box-shadow:none!important}.grw-slider .wp-google-time{display:block!important;color:#999!important;font-size:13px!important;line-height:14px}.grw-slider .wp-more{display:none}.grw-slider .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:underline!important}@media(max-width: 480px){.wp-google-badge.wp-google-badge-fixed.wp-google-badge-hide{display:none!important;}}@media(max-width: 480px){.wp-google-badge.wp-google-badge_left-fixed.wp-google-badge-hide{display:none!important;}}
 
assets/css/public-main.css ADDED
@@ -0,0 +1 @@
 
1
+ .wpac,.wpac h1,.wpac h2,.wpac h3,.wpac h4,.wpac h5,.wpac h6,.wpac p,.wpac td,.wpac dl,.wpac tr,.wpac dt,.wpac ol,.wpac form,.wpac select,.wpac option,.wpac pre,.wpac div,.wpac table,.wpac th,.wpac tbody,.wpac tfoot,.wpac caption,.wpac thead,.wpac ul,.wpac li,.wpac address,.wpac blockquote,.wpac dd,.wpac fieldset,.wpac li,.wpac strong,.wpac legend,.wpac em,.wpac s,.wpac cite,.wpac span,.wpac input,.wpac sup,.wpac label,.wpac dfn,.wpac object,.wpac big,.wpac q,.wpac font,.wpac samp,.wpac acronym,.wpac small,.wpac img,.wpac strike,.wpac code,.wpac sub,.wpac ins,.wpac textarea,.wpac var,.wpac a,.wpac abbr,.wpac applet,.wpac del,.wpac kbd,.wpac tt,.wpac b,.wpac i,.wpac hr{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:black!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;-moz-border-radius:0!important;-webkit-border-radius:0!important;-moz-box-sizing:border-box!important;-webkit-box-sizing:border-box!important;box-sizing:border-box!important;text-shadow:none!important;-webkit-transition:none!important;transition:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.wpac,.wpac h3,.wpac h5,.wpac p,.wpac h1,.wpac dl,.wpac dt,.wpac h6,.wpac ol,.wpac form,.wpac select,.wpac option,.wpac pre,.wpac div,.wpac h2,.wpac caption,.wpac h4,.wpac ul,.wpac address,.wpac blockquote,.wpac dd,.wpac fieldset,.wpac textarea,.wpac hr{display:block}.wpac table{display:table}.wpac tbody{display:table-row-group}.wpac tr{display:table-row}.wpac td{display:table-cell}.wpac ul{list-style-type:none!important}.wpac li{display:list-item;min-height:auto!important;min-width:auto!important}.wpac a,.wpac a *,.wpac input[type=submit],.wpac input[type=radio],.wpac input[type=checkbox],.wpac select{cursor:pointer!important}.wpac a:hover{text-decoration:none!important}.wpac button,.wpac input[type=submit]{height:auto!important;text-align:center!important}.wpac input[type=hidden]{display:none}.wpac select{-webkit-appearance:menulist!important;-moz-appearance:menulist!important;appearance:menulist!important}.wpac input[type=checkbox]{-webkit-appearance:checkbox!important;-moz-appearance:checkbox!important;appearance:checkbox!important}.wpac input[type="checkbox"]:before,.wpac input[type="checkbox"]:after{content:none!important;border:0!important}.wpac input[type=radio]{-webkit-appearance:radio!important;-moz-appearance:radio!important;appearance:radio!important}.wpac input[type="radio"]:before,.wpac input[type="radio"]:after{content:none!important;border:0!important}.wpac li:before,.wpac li:after{content:""!important}.wpac input,.wpac select{vertical-align:middle!important}.wpac select,.wpac textarea,.wpac input{border:1px solid #ccc!important}.wpac table{border-collapse:collapse!important;border-spacing:0!important}.wpac *[dir=rtl]{direction:rtl!important}.wpac img{border:0!important}.wpac svg{vertical-align:middle!important;-moz-box-sizing:content-box!important;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.wpac{font-size:14px!important;line-height:20px!important;direction:inherit!important;text-align:inherit!important;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;color:#333!important;font-style:normal!important;font-weight:normal!important;text-decoration:none!important;list-style-type:disc!important}.wp-gr .wp-google-badge{display:inline-block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif!important;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)!important}.wp-gr .wp-google-badge-fixed{position:fixed!important;right:30px!important;bottom:30px!important;max-width:none!important;z-index:2147482999!important;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)!important}.wp-gr .wp-google-badge_left-fixed{position:fixed!important;left:30px!important;bottom:30px!important;max-width:none!important;z-index:2147482999!important}.wp-gr .wp-google-badge *{cursor:pointer!important}.wp-gr .wp-google-border{width:100%!important;height:6px!important;background:#4fce6a!important;border-radius:2px 2px 0 0!important}.wp-gr .wp-google-badge-btn{position:relative!important;padding:10px!important;background:#fff!important;transition:all .2s ease-in-out!important;border-radius:2px!important}.wp-gr .wp-google-badge-btn:hover{background:#f3f3f5!important}.wp-gr .wp-google-badge-score{display:inline-block;margin:0 0 0 4px!important;vertical-align:middle!important}.wp-gr .wp-google-rating{color:#e7711b!important;font-size:20px!important;margin:0 6px 0 0!important;vertical-align:middle!important}.wp-gr .wp-google-stars .wp-star{padding:0 4px 0 0!important;line-height:22px!important}.wp-gr .wp-google-powered{color:#777!important;margin:6px 0 0!important}.wp-gr .wp-google-powered img{max-width:144px!important}.wp-gr .wp-google-form .wp-google-reviews{padding:16px 16px 0!important}.wp-gr .wp-google-review{margin-top:15px!important}.wp-gr .wp-google-left{display:table-cell!important;vertical-align:top!important}[dir="ltr"] .wp-google-left{padding-right:10px!important}[dir="rtl"] .wp-google-left{padding-left:10px!important}.wp-gr .wp-google-left img{border:none!important;float:left!important;height:50px!important;width:50px!important;margin-right:5px!important;border-radius:50%!important;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24)!important}.wp-gr .wp-google-reviews img{border-radius:50%!important}.wp-gr .wp-google-right{display:table-cell!important;vertical-align:top!important;width:10000px!important}.wp-gr .wp-google-place .wp-star svg{width:18px!important;height:18px!important;vertical-align:middle!important}.wp-gr .wp-star svg{display:inline-block!important}.wp-gr .wp-google-review .wp-star svg{width:16px!important;height:16px!important;vertical-align:middle!important}.wp-gr .wp-google-name{color:black!important;font-size:100%!important;font-weight:bold!important;margin:0 0 2px!important;padding-right:6px!important;text-decoration:none!important}.wp-gr a.wp-google-name{color:#427fed!important;text-decoration:none!important}.wp-gr .wp-google-time{color:#999!important;font-size:13px!important}.wp-gr .wp-google-text{color:#222!important;font-size:13px!important;line-height:18px!important;max-width:100%!important;overflow:hidden!important;white-space:pre-wrap!important;word-break:break-word!important}.wp-gr .wp-google-text .wp-google-stars{padding-right:7px!important}.wp-gr .wp-more{display:none}.wp-gr .wp-more-toggle{color:#136aaf!important;cursor:pointer!important;text-decoration:none!important}.wp-gr .wp-google-url{display:block;margin:10px 0!important;color:#2c7cff!important;text-align:center!important}.wp-gr .wp-google-form{position:fixed!important;bottom:0!important;right:0!important;height:100%!important;width:368px!important;z-index:2147483000!important}.wp-gr .wp-google-form.wp-google-form-left{left:0!important}@media(max-width:460px){.wp-gr .wp-google-form{width:100%!important}}.wp-gr .wp-google-head{position:absolute!important;top:0!important;right:0!important;width:100%!important;height:80px!important;background:#fff!important;padding:10px 16px!important;overflow:hidden!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.12)!important;z-index:2147483002!important}.wp-gr .wp-google-head-inner{z-index:2147483000!important;position:absolute!important;left:20px!important;top:20px!important;width:100%!important;height:100%!important;pointer-events:none!important}.wp-gr .wp-google-close{padding:0!important;cursor:pointer!important;outline:0!important;border:0!important;background:0 0!important;min-height:0!important;width:auto!important;float:right!important;font-size:32px!important;font-weight:500!important;line-height:.6!important;color:#999!important;-webkit-appearance:none!important}.wp-gr .wp-google-close:hover{color:#555!important}.wp-gr .wp-google-body{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;background:rgba(250,250,251,.98)!important;border-left:1px solid #dadee2!important;box-shadow:0 0 4px 1px rgba(0,0,0,.08)!important;z-index:2147483000!important}.wp-gr .wp-google-content{position:absolute!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;overflow-y:auto!important;z-index:2147483001!important;-webkit-transform:translateZ(0)!important}.wp-gr .wp-google-content{top:80px!important;bottom:48px!important}.wp-gr .wp-google-content-inner{position:relative!important;min-height:100%!important;margin:0 auto!important}.wp-gr .wp-google-footer{position:absolute!important;bottom:0!important;right:0!important;width:100%!important;height:48px!important;text-align:center!important;z-index:2147483002!important;background:#fff!important;box-shadow:0 -1px 2px 0 rgba(0,0,0,.06)!important;-moz-text-align-last:center!important;text-align-last:center!important}.wp-gr .wp-google-footer img{float:right!important;padding:16px!important}.wp-gr .wp-dark .wp-google-name{color:#eee!important}.wp-gr .wp-dark .wp-google-time{color:#bbb!important}.wp-gr .wp-dark .wp-google-text{color:#ececec!important}.wp-gr.wpac .wp-google-name{font-size:100%!important}.wp-gr.wpac .wp-google-hide{display:none}.wp-gr.wpac .wp-google-name a{color:#333!important;font-size:100%!important;text-decoration:none!important}.wp-gr.wpac .wp-google-left img{width:50px!important;height:50px!important;border-radius:50%!important}.wp-gr.wpac a.wp-google-name{color:#427fed!important;text-decoration:none!important}.wp-gr.wpac .wp-google-place .wp-star svg{width:18px;height:18px}.wp-gr.wpac .wp-google-review .wp-google-stars{display:inline-block;margin-right:4px!important}.wp-gr.wpac .wp-google-review .wp-star svg{width:16px;height:16px}.wp-gr.wpac .wp-dark .wp-google-name a{color:#eee!important}@media(max-width:480px){.wp-google-badge.wp-google-badge-fixed.wp-google-badge-hide{display:none!important}}@media(max-width:480px){.wp-google-badge.wp-google-badge_left-fixed.wp-google-badge-hide{display:none!important}}
assets/js/admin-main.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function(a){a(".grw-admin-page a.nav-tab").on("click",function(c){var b=a(this),d=b.attr("href");a(d).show().siblings(".tab-content").hide();b.addClass("nav-tab-active").siblings().removeClass("nav-tab-active");c.preventDefault()})});
2
+ var HTML_CONTENT='<div class="grw-builder-platforms grw-builder-inside"><div class="grw-toggle grw-builder-connect grw-connect-google">Connect Google</div><div class="grw-connect-google-inside" style="display:none"><div class="grw-builder-option"><input type="text" class="grw-connect-id" value="" placeholder="Place ID" /><span class="grw-quest grw-toggle" title="Click to help">?</span><div class="grw-quest-help">The standard way to find your Google Place ID is to go to <a href="https://developers.google.com/places/place-id" target="_blank">https://developers.google.com/places/place-id</a> and search for your company name.<br><br>But sometimes it may not work, in this case please see <a href="'+GRW_VARS.supportUrl+
3
+ '&grw_tab=fig#place_id" target="_blank">how to find any Google Place ID</a>.</div></div><div class="grw-builder-option"><select class="grw-connect-lang"><option value="ar">Arabic</option><option value="bg">Bulgarian</option><option value="bn">Bengali</option><option value="ca">Catalan</option><option value="cs">Czech</option><option value="da">Danish</option><option value="de">German</option><option value="el">Greek</option><option value="en" selected="selected">English</option><option value="es">Spanish</option><option value="eu">Basque</option><option value="eu">Basque</option><option value="fa">Farsi</option><option value="fi">Finnish</option><option value="fil">Filipino</option><option value="fr">French</option><option value="gl">Galician</option><option value="gu">Gujarati</option><option value="hi">Hindi</option><option value="hr">Croatian</option><option value="hu">Hungarian</option><option value="id">Indonesian</option><option value="it">Italian</option><option value="iw">Hebrew</option><option value="ja">Japanese</option><option value="kn">Kannada</option><option value="ko">Korean</option><option value="lt">Lithuanian</option><option value="lv">Latvian</option><option value="ml">Malayalam</option><option value="mr">Marathi</option><option value="nl">Dutch</option><option value="no">Norwegian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="pt-BR">Portuguese (Brazil)</option><option value="pt-PT">Portuguese (Portugal)</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="sr">Serbian</option><option value="sv">Swedish</option><option value="ta">Tamil</option><option value="te">Telugu</option><option value="th">Thai</option><option value="tl">Tagalog</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="vi">Vietnamese</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option></select></div><div class="grw-builder-option"><button class="grw-connect-btn">Connect Google</button><small class="grw-connect-error"></small></div></div><div class="grw-connections"></div></div><div class="grw-connect-options"><div class="grw-builder-inside"><div class="grw-builder-option">Pagination<input type="text" name="pagination" value=""></div><div class="grw-builder-option">Maximum characters before \'read more\' link<input type="text" name="text_size" value=""></div><div class="grw-builder-option">Maximum width<input type="text" name="max_width" value="" placeholder="for instance: 300px"></div><div class="grw-builder-option">Maximum height<input type="text" name="max_height" value="" placeholder="for instance: 500px"></div><div class="grw-builder-option"><label><input type="checkbox" name="hide_based_on" value="">Hide \'Based on ... reviews\'</label></div><div class="grw-builder-option"><label><input type="checkbox" name="hide_reviews" value="">Hide reviews, leave only rating header</label></div><div class="grw-builder-option"><label><input type="checkbox" name="centered" value="">Place by center (only if Width is set)</label></div><div class="grw-builder-option"><label><input type="checkbox" name="dark_theme">Dark background</label></div></div><div class="grw-builder-top grw-toggle">Advance Options</div><div class="grw-builder-inside" style="display:none"><div class="grw-builder-option"><label><input type="checkbox" name="lazy_load_img" checked>Lazy load images</label></div><div class="grw-builder-option"><label><input type="checkbox" name="google_def_rev_link">Use default Google reviews link</label><span class="grw-quest grw-quest-top grw-toggle" title="Click to help">?</span><div class="grw-quest-help" style="display:none;">If the direct link to all reviews <b>https://search.google.com/local/reviews?placeid=&lt;PLACE_ID&gt;</b> does not work with your Google place (leads to 404), please use this option to use the default reviews link to Google map.</div></div><div class="grw-builder-option"><label><input type="checkbox" name="open_link" checked>Open links in new Window</label></div><div class="grw-builder-option"><label><input type="checkbox" name="nofollow_link" checked>Use no follow links</label></div><div class="grw-builder-option">Reviewer avatar size<select name="reviewer_avatar_size"><option value="56" selected="selected">Small: 56px</option><option value="128">Medium: 128px</option><option value="256">Large: 256px</option></select></div><div class="grw-builder-option">Cache data<select name="cache"><option value="1">1 Hour</option><option value="3">3 Hours</option><option value="6">6 Hours</option><option value="12" selected="selected">12 Hours</option><option value="24">1 Day</option><option value="48">2 Days</option><option value="168">1 Week</option><option value="">Disable (NOT recommended)</option></select></div><div class="grw-builder-option">Reviews limit<input type="text" name="reviews_limit" value=""></div></div></div>';
4
+ function grw_builder_init(a,c){var b=document.querySelector(c.el);if(b){b.innerHTML=HTML_CONTENT;c.conns&&grw_deserialize_connections(a,b,c.conns,c.opts);var d=b.querySelector(".grw-connect-google-inside");grw_connection(a,d,"google",c.authcode);a('.grw-connect-options input[type="text"],.grw-connect-options textarea').keyup(function(){grw_serialize_connections()});a('.grw-connect-options input[type="checkbox"],.grw-connect-options select').change(function(){grw_serialize_connections()});a(".grw-toggle",
5
+ b).unbind("click").click(function(){a(this).toggleClass("toggled");a(this).next().slideToggle()});a(".grw-connections").sortable&&(a(".grw-connections").sortable({stop:function(a,b){grw_serialize_connections()}}),a(".grw-connections").disableSelection());a(".wp-review-hide").click(function(){var b=a(this);a.post(GRW_VARS.handlerUrl+"&cf_action=grw_hide_review",{id:b.attr("data-id"),feed_id:a('input[name="grw_feed[post_id]"]').val(),grw_wpnonce:a("#grw_nonce").val()},function(a){var c=b.parent().parent();
6
+ a.hide?(b.text("show review"),c.addClass("wp-review-hidden")):(b.text("hide review"),c.removeClass("wp-review-hidden"))},"json");return!1});a("#grw_save").click(function(){return grw_feed_save()})}}
7
+ function grw_feed_save(){if(!window.grw_title.value)return window.grw_title.focus(),!1;var a=document.getElementById("grw-builder-connection").value;if(a&&(a=JSON.parse(a))&&a.connections&&a.connections.length)return!0;alert("Please click 'CONNECT GOOGLE' and connect your Google reviews then save this widget");return!1}
8
+ function grw_connection(a,c,b,d){var e=c.querySelector(".grw-connect-btn");a(e).click(function(){var f=c.querySelector(".grw-connect-id");if(!f.value)return f.focus(),!1;f="yelp"==b?/.+\/biz\/(.*?)(\?|\/|$)/.exec(f.value)[1]:f.value;var g=c.querySelector(".grw-connect-lang").value;e.innerHTML="Please wait...";e.disabled=!0;grw_connect_ajax(a,c,{id:f,lang:g},b,d,1);return!1})}
9
+ function grw_connect_ajax(a,c,b,d,e,f){var g=c.querySelector(".grw-connect-btn"),k=GRW_VARS.handlerUrl+"&cf_action=grw_connect_"+d+"&v="+(new Date).getTime();a.post(k,{id:decodeURIComponent(b.id),lang:b.lang,grw_wpnonce:a("#grw_nonce").val()},function(h){console.log("grw_connect_debug:",h);g.innerHTML="Connect "+(d.charAt(0).toUpperCase()+d.slice(1));g.disabled=!1;var k=c.querySelector(".grw-connect-error");if("success"==h.status)k.innerHTML="",grw_connection_add(a,c,{id:h.result.id,lang:b.lang,name:h.result.name,
10
+ photo:h.result.photo,refresh:!0,platform:d,props:{default_photo:h.result.photo}}),grw_serialize_connections();else switch(h.result.error_message){case "usage_limit":a("#dialog").dialog({width:"50%",maxWidth:"600px"});break;case "bot_check":if(1<f)break;grw_popup("https://gpaw.widgetpack.com/botcheck?authcode="+e,640,480,function(){grw_connect_ajax(a,c,b,d,e,f+1)});break;default:k.innerHTML="<b>Error</b>: "+h.result.error_message,"OVER_QUERY_LIMIT"==h.result.status&&(k.innerHTML+='<br><br>More recently, Google has limited the API to 1 request per day for new users, try to create new <a href="https://developers.google.com/places/web-service/get-api-key#get_an_api_key" target="_blank">Google API key</a>, save in the setting and Connect Google again.')}},
11
+ "json")}
12
+ function grw_connection_add(a,c,b,d){c="grw-"+b.platform+"-"+b.id.replace(/\//g,"");null!=b.lang&&(c+=b.lang);var e=a("#"+c);e.length||(e=a('<div class="grw-connection"></div>')[0],e.id=c,void 0!=b.lang&&e.setAttribute("data-lang",b.lang),e.setAttribute("data-platform",b.platform),e.innerHTML=grw_connection_render(b,d),a(".grw-connections")[0].appendChild(e),jQuery(".grw-toggle",e).unbind("click").click(function(){jQuery(this).toggleClass("toggled");jQuery(this).next().slideToggle()}),jQuery(".grw-connect-photo-change",e).on("click",
13
+ function(a){a.preventDefault();grw_upload_photo(e,void 0,function(){grw_serialize_connections()});return!1}),jQuery(".grw-connect-photo-default",e).on("click",function(a){grw_change_photo(e,b.props.default_photo);grw_serialize_connections();return!1}),a('input[type="text"]',e).keyup(function(){grw_serialize_connections()}),a('input[type="checkbox"]',e).click(function(){grw_serialize_connections()}),a(".grw-connect-delete",e).click(function(){if(confirm("Are you sure to delete this business?")){if(!GRW_VARS.wordpress){var b=
14
+ e.querySelector('input[name="id"]').value;window.connections_delete.value+=window.connections_delete.value?","+b:b}a(e).remove();grw_serialize_connections()}return!1}))}
15
+ function grw_connection_render(a,c){var b=a.name;a.lang&&(b+=" ("+a.lang+")");a.photo=a.photo||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";var d=document.createElement("option");d.value="google"==a.platform&&a.props&&a.props.place_id?a.props.place_id:a.id;d.text=grw_capitalize(a.platform)+": "+a.name;c='<div class="grw-toggle grw-builder-connect grw-connect-business"><input type="checkbox" class="grw-connect-select" onclick="event.stopPropagation();" '+(c?"checked":
16
+ "")+" /> "+b+(a.address?" ("+a.address+")":"")+'</div><div style="display:none">';b=a.props;d="";for(prop in b)"platform"!=prop&&Object.prototype.hasOwnProperty.call(b,prop)&&(d+='<input type="hidden" name="'+prop+'" value="'+b[prop]+'" class="grw-connect-prop" readonly />');return c+d+'<input type="hidden" name="id" value="'+a.id+'" readonly />'+(a.address?'<input type="hidden" name="address" value="'+a.address+'" readonly />':"")+(a.access_token?'<input type="hidden" name="access_token" value="'+
17
+ a.access_token+'" readonly />':"")+'<div class="grw-builder-option"><img src="'+a.photo+'" alt="'+a.name+'" class="grw-connect-photo"><a href="#" class="grw-connect-photo-change">Change</a><a href="#" class="grw-connect-photo-default">Default</a><input type="hidden" name="photo" class="grw-connect-photo-hidden" value="'+a.photo+'" tabindex="2"/><input type="file" tabindex="-1" accept="image/*" onchange="grw_upload_image(this.parentNode, this.files)" style="display:none!important"></div><div class="grw-builder-option"><input type="text" name="name" value="'+
18
+ a.name+'" /></div>'+(void 0!=a.website?'<div class="grw-builder-option"><input type="text" name="website" value="'+a.website+'" /></div>':"")+(void 0!=a.lang?'<div class="grw-builder-option"><input type="text" name="lang" value="'+a.lang+'" placeholder="Default language (English)" readonly /></div>':"")+(void 0!=a.review_count?'<div class="grw-builder-option"><input type="text" name="review_count" value="'+a.review_count+'" placeholder="Total number of reviews" /><span class="grw-quest grw-toggle" title="Click to help">?</span><div class="grw-quest-help">Google return only 5 most helpful reviews and does not return information about total number of reviews and you can type here it manually.</div></div>':
19
+ "")+(void 0!=a.refresh?'<div class="grw-builder-option"><label><input type="checkbox" name="refresh" '+(a.refresh?"checked":"")+'> Refresh reviews</label><span class="grw-quest grw-quest-top grw-toggle" title="Click to help">?</span><div class="grw-quest-help">'+("google"==a.platform?"The plugin uses the Google Places API to get your reviews. <b>The API only returns the 5 most helpful reviews (it's a limitation of Google, not the plugin)</b>. This option calls the Places API once in 24 hours (to keep the plugin's free and avoid a Google Billing) to check for a new reviews and if there are, adds to the plugin. Thus slowly building up a database of reviews.<br><br>Also if you see the new reviews on Google map, but after some time it's not added to the plugin, it means that Google does not include these reviews to the API and the plugin can't get this.<br><br>If you need to get all reviews, please use <a href=\"https://richplugins.com/business-reviews-bundle-wordpress-plugin\" target=\"_blank\">the Business plugin</a> which uses a Google My Business API, but this GMB API is available only for verified Google business owner accounts.":
20
+ "")+("yelp"==a.platform?"The plugin uses the Yelp API to get your reviews. <b>The API only returns the 3 most helpful reviews without sorting possibility.</b> When Yelp changes the 3 most helpful the plugin will automatically add the new one to your database. Thus slowly building up a database of reviews.":"")+"</div></div>":"")+'<div class="grw-builder-option"><button class="grw-connect-delete">Delete business</button></div></div>'}
21
+ function grw_serialize_connections(){var a=[],c=document.querySelectorAll(".grw-connection");for(h in c)if(Object.prototype.hasOwnProperty.call(c,h)){var b=c[h].querySelector(".grw-connect-select");if(!b||grw_is_hidden(b)||b.checked){var d={};b=c[h].getAttribute("data-lang");var e=c[h].getAttribute("data-platform"),f=c[h].querySelectorAll("input");void 0!=b&&(d.lang=b);for(var g in f)if(Object.prototype.hasOwnProperty.call(f,g)){b=f[g];var k=b.getAttribute("name");k&&("grw-connect-prop"==b.className?
22
+ (d.props=d.props||{},d.props[k]=b.value):d[k]="checkbox"==b.type?b.checked:b.value)}d.platform=e;a.push(d)}}c={};var h=document.querySelector(".grw-connect-options").querySelectorAll("input[name],select,textarea");for(var l in h)Object.prototype.hasOwnProperty.call(h,l)&&(b=h[l],k=b.getAttribute("name"),"checkbox"==b.type?c[k]=b.checked:void 0!=b.value&&(c[k]="textarea"==b.type||"word_filter"==k||"word_exclude"==k?encodeURIComponent(b.value):b.value));GRW_VARS.wordpress?document.getElementById("grw-builder-connection").value=
23
+ JSON.stringify({connections:a,options:c}):(document.getElementById("grw-builder-connections").value=JSON.stringify(a),document.getElementById("grw-builder-options").value=JSON.stringify(c))}
24
+ function grw_deserialize_connections(a,c,b,d){if(GRW_VARS.wordpress)if(d=b.options,Array.isArray(b.connections))b=b.connections;else{var e=[];if(Array.isArray(b.google)){for(var f=0;f<b.google.length;f++)b.google[f].platform="google";e=e.concat(b.google)}if(Array.isArray(b.facebook)){for(f=0;f<b.facebook.length;f++)b.facebook[f].platform="facebook";e=e.concat(b.facebook)}if(Array.isArray(b.yelp)){for(f=0;f<b.yelp.length;f++)b.yelp[f].platform="yelp";e=e.concat(b.yelp)}b=e}else b=JSON.parse(b),d=JSON.parse(d);
25
+ for(e=0;e<b.length;e++)grw_connection_add(a,c.querySelector(".grw-builder-platforms"),b[e],!0);for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(a=c.querySelector('input[name="'+g+'"],select[name="'+g+'"],textarea[name="'+g+'"]'))&&(b=a.getAttribute("name"),"boolean"===typeof d[g]?a.checked=d[g]:(a.value="textarea"==a.type||"word_filter"==b||"word_exclude"==b?decodeURIComponent(d[g]):d[g],-1<g.indexOf("_photo")&&a.value&&(a.parentNode.querySelector("img").src=a.value)))}
26
+ function grw_upload_photo(a,c,b){if(GRW_VARS.wordpress)c||(c=wp.media.frames.file_frame=wp.media({title:jQuery(this).data("uploader_title"),button:{text:jQuery(this).data("uploader_button_text")},multiple:!1}),c.on("select",function(){var d=c.state().get("selection").first().toJSON();grw_change_photo(a,d.url);b&&b(d.url)})),c.open();else return a.querySelector('input[type="file"]').click(),!1}
27
+ function grw_upload_image(a,c){for(var b=new FormData,d=0,e;e=c[d];++d)b.append("file",e);var f=this;this.xhr||(this.xhr=new XMLHttpRequest);this.xhr.open("POST","https://media.cackle.me/upload2",!0);this.xhr.onload=function(b){4===f.xhr.readyState&&200===f.xhr.status&&0<f.xhr.responseText.length&&grw_change_photo(a,"https://media.cackle.me/"+f.xhr.responseText)};this.xhr.send(b)}
28
+ function grw_change_photo(a,c){var b=jQuery(".grw-connect-photo-hidden",a);a=jQuery(".grw-connect-photo",a);b.val(c);a.attr("src",c);a.show();grw_serialize_connections()}function grw_popup(a,c,b,d){function e(){k&&0==k.closed?setTimeout(e,100):d()}var f=f||screen.height/2-b/2,g=g||screen.width/2-c/2,k=window.open(a,"","location=1,status=1,resizable=yes,width="+c+",height="+b+",top="+f+",left="+g);setTimeout(e,100)}
29
+ function grw_randstr(a){for(var c="",b=0;b<a;b++)c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return c}function grw_is_hidden(a){return null===a.offsetParent}function grw_capitalize(a){return a.charAt(0).toUpperCase()+a.slice(1)};
assets/js/{wpac-time.js → public-main.js} RENAMED
@@ -1,7 +1,22 @@
1
- var WPacTime=WPacTime||{getTime:function(a,b,d){return"chat"==d?this.getChatTime(a,b||"en"):d?this.getFormatTime(a,d,b||"en"):this.getDefaultTime(a,b||"en")},getChatTime:function(a,b){var d=((new Date).getTime()-a)/1E3/60/60,c=d/24;return 24>d?this.getFormatTime(a,"HH:mm",b):365>c?this.getFormatTime(a,"dd.MM HH:mm",b):this.getFormatTime(a,"yyyy.MM.dd HH:mm",b)},getDefaultTime:function(a,b){return this.getTimeAgo(a,b)},getTimeAgo:function(a,b){a=((new Date).getTime()-a)/1E3;var d=a/60,c=d/60,e=c/24,
2
- f=e/365;b=WPacTime.Messages[b]?b:"en";return 45>a?WPacTime.Messages[b].second:90>a?WPacTime.Messages[b].minute:45>d?WPacTime.Messages[b].minutes(d):90>d?WPacTime.Messages[b].hour:24>c?WPacTime.Messages[b].hours(c):48>c?WPacTime.Messages[b].day:30>e?WPacTime.Messages[b].days(e):60>e?WPacTime.Messages[b].month:365>e?WPacTime.Messages[b].months(e):2>f?WPacTime.Messages[b].year:WPacTime.Messages[b].years(f)},getTime12:function(a,b){a=new Date(a);return(a.getHours()%12?a.getHours()%12:12)+":"+a.getMinutes()+
3
- (12<=a.getHours()?" PM":" AM")},getFormatTime:function(a,b,d){var c=new Date(a),e={SS:c.getMilliseconds(),ss:c.getSeconds(),mm:c.getMinutes(),HH:c.getHours(),hh:(c.getHours()%12?c.getHours()%12:12)+(12<=c.getHours()?"PM":"AM"),dd:c.getDate(),MM:c.getMonth()+1,yyyy:c.getFullYear(),yy:String(c.getFullYear()).toString().substr(2,2),ago:this.getTimeAgo(a,d),12:this.getTime12(a,d)};return b.replace(/(SS|ss|mm|HH|hh|DD|dd|MM|yyyy|yy|ago|12)/g,function(a,b){a=e[b];return 10>a?"0"+a:a})},declineNum:function(a,
4
- b,d,c){return a+" "+this.declineMsg(a,b,d,c)},declineMsg:function(a,b,d,c,e){var f=a%10;return 1==f&&(1==a||20<a)?b:1<f&&5>f&&(20<a||10>a)?d:a?c:e}};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  WPacTime.Messages={ru:{second:"\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e",minute:"\u043c\u0438\u043d\u0443\u0442\u0443 \u043d\u0430\u0437\u0430\u0434",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442 \u043d\u0430\u0437\u0430\u0434")},hour:"\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434",hours:function(a){return WPacTime.declineNum(Math.round(a),
6
  "\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u0430 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u0430\u0434")},day:"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u044f \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434")},month:"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434",
7
  months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434")},year:"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434",years:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434","\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434",
@@ -46,4 +61,11 @@ Math.round(a)+" \u043c\u0438\u043d\u0443\u0442\u0438"},hour:"\u043f\u0440\u0435\
46
  month:"pred mesiacom",months:function(a){return"pred "+Math.round(a/30)+" mesiacmi"},year:"pred rokom",years:function(a){return"pred "+Math.round(a)+" rokmi"}},lo:{second:"\u0ea7\u0eb1\u0ec8\u0e87\u0e81\u0eb5\u0ec9\u0e99\u0eb5\u0ec9",minute:"\u0edc\u0eb6\u0ec8\u0e87\u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99",minutes:function(a){return Math.round(a)+" \u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99"},hour:"\u0edc\u0eb6\u0ec8\u0e87\u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99",
47
  hours:function(a){return Math.round(a)+" \u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99"},day:"\u0edc\u0eb6\u0ec8\u0e87\u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99",days:function(a){return Math.round(a)+" \u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99"},month:"\u0edc\u0eb6\u0ec8\u0e87\u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99",months:function(a){return Math.round(a/30)+" \u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99"},year:"\u0edc\u0eb6\u0ec8\u0e87\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99",
48
  years:function(a){return Math.round(a)+" \u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99"}},sl:{second:"pravkar",minute:"pred eno minuto",minutes:function(a){return"pred "+Math.round(a)+" minutami"},hour:"pred eno uro",hours:function(a){return"pred "+Math.round(a)+" urami"},day:"pred enim dnem",days:function(a){return"pred "+Math.round(a)+" dnevi"},month:"pred enim mesecem",months:function(a){return"pred "+Math.round(a/30)+" meseci"},year:"pred enim letom",years:function(a){return"pred "+Math.round(a)+" leti"}},
49
- et:{second:"just n\u00fc\u00fcd",minute:"minut tagasi",minutes:function(a){return Math.round(a)+" minutit tagasi"},hour:"tund tagasi",hours:function(a){return Math.round(a)+" tundi tagasi"},day:"p\u00e4ev tagasi",days:function(a){return Math.round(a)+" p\u00e4eva tagasi"},month:"kuu aega tagasi",months:function(a){return Math.round(a/30)+" kuud tagasi"},year:"aasta tagasi",years:function(a){return Math.round(a)+" aastat tagasi"}}};
 
 
 
 
 
 
 
1
+ /*
2
+ hey, [be]Lazy.js - v1.8.2 - 2016.10.25
3
+ A fast, small and dependency free lazy load script (https://github.com/dinbror/blazy)
4
+ (c) Bjoern Klinggaard - @bklinggaard - http://dinbror.dk/blazy
5
+ */
6
+ (function(a,b){"function"===typeof define&&define.amd?define(b):"object"===typeof exports?module.exports=b():a.Blazy=b()})(this,function(){function a(a){var g=a._util;g.elements=B(a.options);g.count=g.elements.length;g.destroyed&&(g.destroyed=!1,a.options.container&&p(a.options.container,function(a){q(a,"scroll",g.validateT)}),q(window,"resize",g.saveViewportOffsetT),q(window,"resize",g.validateT),q(window,"scroll",g.validateT));b(a)}function b(a){for(var g=a._util,c=0;c<g.count;c++){var b=g.elements[c];
7
+ var l=b;var e=a.options;var f=l.getBoundingClientRect();e.container&&x&&(l=l.closest(e.containerClass))?(l=l.getBoundingClientRect(),e=d(l,k)?d(f,{top:l.top-e.offset,right:l.right+e.offset,bottom:l.bottom+e.offset,left:l.left-e.offset}):!1):e=d(f,k);if(e||r(b,a.options.successClass))a.load(b),g.elements.splice(c,1),g.count--,c--}0===g.count&&a.destroy()}function d(a,b){return a.right>=b.left&&a.bottom>=b.top&&a.left<=b.right&&a.top<=b.bottom}function e(a,b,c){if(!r(a,c.successClass)&&(b||c.loadInvisible||
8
+ 0<a.offsetWidth&&0<a.offsetHeight))if(b=a.getAttribute(t)||a.getAttribute(c.src)){b=b.split(c.separator);var g=b[y&&1<b.length?1:0],d=a.getAttribute(c.srcset),e="img"===a.nodeName.toLowerCase(),w=(b=a.parentNode)&&"picture"===b.nodeName.toLowerCase();if(e||void 0===a.src){var m=new Image,v=function(){c.error&&c.error(a,"invalid");u(a,c.errorClass);n(m,"error",v);n(m,"load",k)},k=function(){e?w||h(a,g,d):a.style.backgroundImage='url("'+g+'")';f(a,c);n(m,"load",k);n(m,"error",v)};w&&(m=a,p(b.getElementsByTagName("source"),
9
+ function(a){var b=c.srcset,g=a.getAttribute(b);g&&(a.setAttribute("srcset",g),a.removeAttribute(b))}));q(m,"error",v);q(m,"load",k);h(m,g,d)}else a.src=g,f(a,c)}else"video"===a.nodeName.toLowerCase()?(p(a.getElementsByTagName("source"),function(a){var b=c.src,g=a.getAttribute(b);g&&(a.setAttribute("src",g),a.removeAttribute(b))}),a.load(),f(a,c)):(c.error&&c.error(a,"missing"),u(a,c.errorClass))}function f(a,b){u(a,b.successClass);b.success&&b.success(a);a.removeAttribute(b.src);a.removeAttribute(b.srcset);
10
+ p(b.breakpoints,function(b){a.removeAttribute(b.src)})}function h(a,b,c){c&&a.setAttribute("srcset",c);a.src=b}function r(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function u(a,b){r(a,b)||(a.className+=" "+b)}function B(a){var b=[];a=a.root.querySelectorAll(a.selector);for(var c=a.length;c--;b.unshift(a[c]));return b}function z(a){k.bottom=(window.innerHeight||document.documentElement.clientHeight)+a;k.right=(window.innerWidth||document.documentElement.clientWidth)+a}function q(a,b,
11
+ c){a.attachEvent?a.attachEvent&&a.attachEvent("on"+b,c):a.addEventListener(b,c,{capture:!1,passive:!0})}function n(a,b,c){a.detachEvent?a.detachEvent&&a.detachEvent("on"+b,c):a.removeEventListener(b,c,{capture:!1,passive:!0})}function p(a,b){if(a&&b)for(var c=a.length,d=0;d<c&&!1!==b(a[d],d);d++);}function A(a,b,c){var d=0;return function(){var e=+new Date;e-d<b||(d=e,a.apply(c,arguments))}}var t,k,y,x;return function(d){if(!document.querySelectorAll){var f=document.createStyleSheet();document.querySelectorAll=
12
+ function(a,b,c,d,e){e=document.all;b=[];a=a.replace(/\[for\b/gi,"[htmlFor").split(",");for(c=a.length;c--;){f.addRule(a[c],"k:v");for(d=e.length;d--;)e[d].currentStyle.k&&b.push(e[d]);f.removeRule(0)}return b}}var c=this,g=c._util={};g.elements=[];g.destroyed=!0;c.options=d||{};c.options.error=c.options.error||!1;c.options.offset=c.options.offset||100;c.options.root=c.options.root||document;c.options.success=c.options.success||!1;c.options.selector=c.options.selector||".b-lazy";c.options.separator=
13
+ c.options.separator||"|";c.options.containerClass=c.options.container;c.options.container=c.options.containerClass?document.querySelectorAll(c.options.containerClass):!1;c.options.errorClass=c.options.errorClass||"b-error";c.options.breakpoints=c.options.breakpoints||!1;c.options.loadInvisible=c.options.loadInvisible||!1;c.options.successClass=c.options.successClass||"b-loaded";c.options.validateDelay=c.options.validateDelay||25;c.options.saveViewportOffsetDelay=c.options.saveViewportOffsetDelay||
14
+ 50;c.options.srcset=c.options.srcset||"data-srcset";c.options.src=t=c.options.src||"data-src";x=Element.prototype.closest;y=1<window.devicePixelRatio;k={};k.top=0-c.options.offset;k.left=0-c.options.offset;c.revalidate=function(){a(c)};c.load=function(a,b){var c=this.options;void 0===a.length?e(a,b,c):p(a,function(a){e(a,b,c)})};c.destroy=function(){var a=this._util;this.options.container&&p(this.options.container,function(b){n(b,"scroll",a.validateT)});n(window,"scroll",a.validateT);n(window,"resize",
15
+ a.validateT);n(window,"resize",a.saveViewportOffsetT);a.count=0;a.elements.length=0;a.destroyed=!0};g.validateT=A(function(){b(c)},c.options.validateDelay,c);g.saveViewportOffsetT=A(function(){z(c.options.offset)},c.options.saveViewportOffsetDelay,c);z(c.options.offset);p(c.options.breakpoints,function(a){if(a.width>=window.screen.width)return t=a.src,!1});setTimeout(function(){a(c)})}});
16
+ var WPacTime=WPacTime||{getTime:function(a,b,d){return"chat"==d?this.getChatTime(a,b||"en"):d?this.getFormatTime(a,d,b||"en"):this.getDefaultTime(a,b||"en")},getChatTime:function(a,b){var d=((new Date).getTime()-a)/1E3/60/60,e=d/24;return 24>d?this.getFormatTime(a,"HH:mm",b):365>e?this.getFormatTime(a,"dd.MM HH:mm",b):this.getFormatTime(a,"yyyy.MM.dd HH:mm",b)},getDefaultTime:function(a,b){return this.getTimeAgo(a,b)},getTimeAgo:function(a,b){a=((new Date).getTime()-a)/1E3;var d=a/60,e=d/60,f=e/24,
17
+ h=f/365;b=WPacTime.Messages[b]?b:"en";return 45>a?WPacTime.Messages[b].second:90>a?WPacTime.Messages[b].minute:45>d?WPacTime.Messages[b].minutes(d):90>d?WPacTime.Messages[b].hour:24>e?WPacTime.Messages[b].hours(e):48>e?WPacTime.Messages[b].day:30>f?WPacTime.Messages[b].days(f):60>f?WPacTime.Messages[b].month:365>f?WPacTime.Messages[b].months(f):2>h?WPacTime.Messages[b].year:WPacTime.Messages[b].years(h)},getTime12:function(a,b){a=new Date(a);return(a.getHours()%12?a.getHours()%12:12)+":"+a.getMinutes()+
18
+ (12<=a.getHours()?" PM":" AM")},getFormatTime:function(a,b,d){var e=new Date(a),f={SS:e.getMilliseconds(),ss:e.getSeconds(),mm:e.getMinutes(),HH:e.getHours(),hh:(e.getHours()%12?e.getHours()%12:12)+(12<=e.getHours()?"PM":"AM"),dd:e.getDate(),MM:e.getMonth()+1,yyyy:e.getFullYear(),yy:String(e.getFullYear()).toString().substr(2,2),ago:this.getTimeAgo(a,d),12:this.getTime12(a,d)};return b.replace(/(SS|ss|mm|HH|hh|DD|dd|MM|yyyy|yy|ago|12)/g,function(a,b){a=f[b];return 10>a?"0"+a:a})},declineNum:function(a,
19
+ b,d,e){return a+" "+this.declineMsg(a,b,d,e)},declineMsg:function(a,b,d,e,f){var h=a%10;return 1==h&&(1==a||20<a)?b:1<h&&5>h&&(20<a||10>a)?d:a?e:f}};
20
  WPacTime.Messages={ru:{second:"\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e",minute:"\u043c\u0438\u043d\u0443\u0442\u0443 \u043d\u0430\u0437\u0430\u0434",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442 \u043d\u0430\u0437\u0430\u0434")},hour:"\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434",hours:function(a){return WPacTime.declineNum(Math.round(a),
21
  "\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u0430 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u0430\u0434")},day:"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u044f \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434")},month:"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434",
22
  months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434")},year:"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434",years:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434","\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434",
61
  month:"pred mesiacom",months:function(a){return"pred "+Math.round(a/30)+" mesiacmi"},year:"pred rokom",years:function(a){return"pred "+Math.round(a)+" rokmi"}},lo:{second:"\u0ea7\u0eb1\u0ec8\u0e87\u0e81\u0eb5\u0ec9\u0e99\u0eb5\u0ec9",minute:"\u0edc\u0eb6\u0ec8\u0e87\u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99",minutes:function(a){return Math.round(a)+" \u0e99\u0eb2\u0e97\u0eb5\u0e81\u0ec8\u0ead\u0e99"},hour:"\u0edc\u0eb6\u0ec8\u0e87\u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99",
62
  hours:function(a){return Math.round(a)+" \u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87\u0e81\u0ec8\u0ead\u0e99"},day:"\u0edc\u0eb6\u0ec8\u0e87\u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99",days:function(a){return Math.round(a)+" \u0ea1\u0eb7\u0ec9\u0e81\u0ec8\u0ead\u0e99"},month:"\u0edc\u0eb6\u0ec8\u0e87\u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99",months:function(a){return Math.round(a/30)+" \u0ec0\u0e94\u0eb7\u0ead\u0e99\u0e81\u0ec8\u0ead\u0e99"},year:"\u0edc\u0eb6\u0ec8\u0e87\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99",
63
  years:function(a){return Math.round(a)+" \u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99"}},sl:{second:"pravkar",minute:"pred eno minuto",minutes:function(a){return"pred "+Math.round(a)+" minutami"},hour:"pred eno uro",hours:function(a){return"pred "+Math.round(a)+" urami"},day:"pred enim dnem",days:function(a){return"pred "+Math.round(a)+" dnevi"},month:"pred enim mesecem",months:function(a){return"pred "+Math.round(a/30)+" meseci"},year:"pred enim letom",years:function(a){return"pred "+Math.round(a)+" leti"}},
64
+ et:{second:"just n\u00fc\u00fcd",minute:"minut tagasi",minutes:function(a){return Math.round(a)+" minutit tagasi"},hour:"tund tagasi",hours:function(a){return Math.round(a)+" tundi tagasi"},day:"p\u00e4ev tagasi",days:function(a){return Math.round(a)+" p\u00e4eva tagasi"},month:"kuu aega tagasi",months:function(a){return Math.round(a/30)+" kuud tagasi"},year:"aasta tagasi",years:function(a){return Math.round(a)+" aastat tagasi"}}};
65
+ function rplg_badge_init(a,b,d){var e=a.querySelector(".wp-"+b+"-badge"),f=a.querySelector(".wp-"+b+"-form");if(e&&f){var h=document.createElement("div");h.className=d+" wpac";-1<e.className.indexOf("-fixed")&&h.appendChild(e);h.appendChild(f);document.body.appendChild(h);e.onclick=function(){rplg_load_imgs(h);f.style.display="block"}}}
66
+ function rplg_load_imgs(a){a=a.querySelectorAll("img.rplg-blazy[data-src]");for(var b=0;b<a.length;b++)a[b].setAttribute("src",a[b].getAttribute("data-src")),a[b].removeAttribute("data-src")}
67
+ function rplg_next_reviews(a,b){var d=this.parentNode,e=".wp-"+a+"-review.wp-"+a+"-hide";reviews=d.querySelectorAll(e);for(var f=0;f<b&&f<reviews.length;f++)reviews[f]&&(reviews[f].className=reviews[f].className.replace("wp-"+a+"-hide"," "),rplg_load_imgs(reviews[f]));reviews=d.querySelectorAll(e);1>reviews.length&&d.removeChild(this);window.rplg_blazy&&window.rplg_blazy.revalidate();return!1}function rplg_leave_review_window(){_rplg_popup(this.getAttribute("href"),620,500);return!1}
68
+ function _rplg_lang(){var a=navigator;return(a.language||a.systemLanguage||a.userLanguage||"en").substr(0,2).toLowerCase()}function _rplg_popup(a,b,d,e,f,h){f=f||screen.height/2-d/2;h=h||screen.width/2-b/2;return window.open(a,"","location=1,status=1,resizable=yes,width="+b+",height="+d+",top="+f+",left="+h)}
69
+ function _rplg_timeago(a){for(var b=0;b<a.length;b++){var d=a[b].className;-1<d.indexOf("google")?(d=parseInt(a[b].getAttribute("data-time")),d*=1E3):d=-1<d.indexOf("facebook")?(new Date(a[b].getAttribute("data-time").replace(/\+\d+$/,""))).getTime():(new Date(a[b].getAttribute("data-time").replace(/ /,"T"))).getTime();a[b].innerHTML=WPacTime.getTime(d,_rplg_lang(),"ago")}}
70
+ function _rplg_init_blazy(a){window.Blazy?window.rplg_blazy=new Blazy({selector:"img.rplg-blazy"}):0<a&&setTimeout(function(){_rplg_init_blazy(a-1)},200)}function _rplg_read_more(){for(var a=document.querySelectorAll(".wp-more-toggle"),b=0;b<a.length;b++)(function(a){a.onclick=function(){a.parentNode.removeChild(a.previousSibling.previousSibling);a.previousSibling.className="";a.textContent=""}})(a[b])}
71
+ document.addEventListener("DOMContentLoaded",function(){_rplg_timeago(document.querySelectorAll(".wpac [data-time]"));_rplg_read_more();_rplg_init_blazy(10)});
assets/js/wpac.js DELETED
@@ -1,215 +0,0 @@
1
- /* Laura Doktorova https://github.com/olado/doT */
2
- (function(){function o(){var a={"&":"&#38;","<":"&#60;",">":"&#62;",'"':"&#34;","'":"&#39;","/":"&#47;"},b=/&(?!#?\w+;)|<|>|"|'|\//g;return function(){return this?this.replace(b,function(c){return a[c]||c}):this}}function p(a,b,c){return(typeof b==="string"?b:b.toString()).replace(a.define||i,function(l,e,f,g){if(e.indexOf("def.")===0)e=e.substring(4);if(!(e in c))if(f===":"){a.defineParams&&g.replace(a.defineParams,function(n,h,d){c[e]={arg:h,text:d}});e in c||(c[e]=g)}else(new Function("def","def['"+
3
- e+"']="+g))(c);return""}).replace(a.use||i,function(l,e){if(a.useParams)e=e.replace(a.useParams,function(g,n,h,d){if(c[h]&&c[h].arg&&d){g=(h+":"+d).replace(/'|\\/g,"_");c.__exp=c.__exp||{};c.__exp[g]=c[h].text.replace(RegExp("(^|[^\\w$])"+c[h].arg+"([^\\w$])","g"),"$1"+d+"$2");return n+"def.__exp['"+g+"']"}});var f=(new Function("def","return "+e))(c);return f?p(a,f,c):f})}function m(a){return a.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}var j={version:"1.0.1",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,
4
- interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:true,append:true,selfcontained:false},template:undefined,
5
- compile:undefined},q;q=function(){return this||(0,eval)("this")}();q.doT=j;String.prototype.encodeHTML=o();var r={append:{start:"'+(",end:")+'",endencode:"||'').toString().encodeHTML()+'"},split:{start:"';out+=(",end:");out+='",endencode:"||'').toString().encodeHTML();out+='"}},i=/$^/;j.template=function(a,b,c){b=b||j.templateSettings;var l=b.append?r.append:
6
- r.split,e,f=0,g;a=b.use||b.define?p(b,a,c||{}):a;a=("var out='"+(b.strip?a.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):a).replace(/'|\\/g,"\\$&").replace(b.interpolate||i,function(h,d){return l.start+m(d)+l.end}).replace(b.encode||i,function(h,d){e=true;return l.start+m(d)+l.endencode}).replace(b.conditional||i,function(h,d,k){return d?k?"';}else if("+m(k)+"){out+='":"';}else{out+='":k?"';if("+m(k)+"){out+='":"';}out+='"}).replace(b.iterate||i,function(h,
7
- d,k,s){if(!d)return"';} } out+='";f+=1;g=s||"i"+f;d=m(d);return"';var arr"+f+"="+d+";if(arr"+f+"){var "+k+","+g+"=-1,l"+f+"=arr"+f+".length-1;while("+g+"<l"+f+"){"+k+"=arr"+f+"["+g+"+=1];out+='"}).replace(b.evaluate||i,function(h,d){return"';"+m(d)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,"").replace(/(\s|;|\}|^|\{)out\+=''\+/g,"$1out+=");if(e&&b.selfcontained)a="String.prototype.encodeHTML=("+
8
- o.toString()+"());"+a;try{return new Function(b.varname,a)}catch(n){typeof console!=="undefined"&&console.log("Could not create a template function: "+a);throw n;}};j.compile=function(a,b){return j.template(a,null,b)}})();
9
-
10
- var WPacXDM = WPacXDM || {
11
-
12
- xdm: {},
13
-
14
- channel: {},
15
-
16
- xhr: function(host) {
17
- if (this.xdm[host] && this.iframe(host)) {
18
- return this.xdm[host];
19
- } else {
20
- return (this.xdm[host] = this.create(host));
21
- }
22
- },
23
-
24
- iframe: function(host) {
25
- return document.getElementById('easyXDM_' + this.channel[host] + '_provider');
26
- },
27
-
28
- create: function(host) {
29
- var handler = this;
30
- this.loadEasyXDM();
31
- return new easyXDM.Rpc({
32
- remote: host + '/widget/xdm/index.html',
33
- onReady: function() {
34
- var iframe = document.getElementById('easyXDM_' + this.channel + '_provider');
35
- iframe.setAttribute('style', 'position:absolute!important;top:-2000px!important;left:0!important;');
36
- handler.channel[host] = this.channel;
37
- }
38
- },{
39
- remote: {
40
- request: {}
41
- },
42
- serializer: {
43
- stringify: function(obj) {
44
- var clone = {
45
- id: obj.id,
46
- jsonrpc: obj.jsonrpc,
47
- method: obj.method,
48
- params: obj.params[0]
49
- };
50
- return handler.stringify(clone);
51
- },
52
- parse: function(string) {
53
- return JSON.parse(string);
54
- }
55
- }
56
- });
57
- },
58
-
59
- //TODO: coz if loaded many times occurs error: undefined is not a function
60
- //TODO: check this behavior on production with loaded widget from 'a' and 'b'
61
- loadEasyXDM: function() {
62
- (function(N,d,p,K,k,H){var b=this;var n=Math.floor(Math.random()*10000);var q=Function.prototype;var Q=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/;var R=/[\-\w]+\/\.\.\//;var F=/([^:])\/\//g;var I="";var o={};var M=N.easyXDM;var U="easyXDM_";var E;var y=false;var i;var h;function C(X,Z){var Y=typeof X[Z];return Y=="function"||(!!(Y=="object"&&X[Z]))||Y=="unknown"}function u(X,Y){return !!(typeof(X[Y])=="object"&&X[Y])}function r(X){return Object.prototype.toString.call(X)==="[object Array]"}function c(){var Z="Shockwave Flash",ad="application/x-shockwave-flash";if(!t(navigator.plugins)&&typeof navigator.plugins[Z]=="object"){var ab=navigator.plugins[Z].description;if(ab&&!t(navigator.mimeTypes)&&navigator.mimeTypes[ad]&&navigator.mimeTypes[ad].enabledPlugin){i=ab.match(/\d+/g)}}if(!i){var Y;try{Y=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");i=Array.prototype.slice.call(Y.GetVariable("$version").match(/(\d+),(\d+),(\d+),(\d+)/),1);Y=null}catch(ac){}}if(!i){return false}var X=parseInt(i[0],10),aa=parseInt(i[1],10);h=X>9&&aa>0;return true}var v,x;if(C(N,"addEventListener")){v=function(Z,X,Y){Z.addEventListener(X,Y,false)};x=function(Z,X,Y){Z.removeEventListener(X,Y,false)}}else{if(C(N,"attachEvent")){v=function(X,Z,Y){X.attachEvent("on"+Z,Y)};x=function(X,Z,Y){X.detachEvent("on"+Z,Y)}}else{throw new Error("Browser not supported")}}var W=false,J=[],L;if("readyState" in d){L=d.readyState;W=L=="complete"||(~navigator.userAgent.indexOf("AppleWebKit/")&&(L=="loaded"||L=="interactive"))}else{W=!!d.body}function s(){if(W){return}W=true;for(var X=0;X<J.length;X++){J[X]()}J.length=0}if(!W){if(C(N,"addEventListener")){v(d,"DOMContentLoaded",s)}else{v(d,"readystatechange",function(){if(d.readyState=="complete"){s()}});if(d.documentElement.doScroll&&N===top){var g=function(){if(W){return}try{d.documentElement.doScroll("left")}catch(X){K(g,1);return}s()};g()}}v(N,"load",s)}function G(Y,X){if(W){Y.call(X);return}J.push(function(){Y.call(X)})}function m(){var Z=parent;if(I!==""){for(var X=0,Y=I.split(".");X<Y.length;X++){Z=Z[Y[X]]}}return Z.easyXDM}function e(X){N.easyXDM=M;I=X;if(I){U="easyXDM_"+I.replace(".","_")+"_"}return o}function z(X){return X.match(Q)[3]}function f(X){return X.match(Q)[4]||""}function j(Z){var X=Z.toLowerCase().match(Q);var aa=X[2],ab=X[3],Y=X[4]||"";if((aa=="http:"&&Y==":80")||(aa=="https:"&&Y==":443")){Y=""}return aa+"//"+ab+Y}function B(X){X=X.replace(F,"$1/");if(!X.match(/^(http||https):\/\//)){var Y=(X.substring(0,1)==="/")?"":p.pathname;if(Y.substring(Y.length-1)!=="/"){Y=Y.substring(0,Y.lastIndexOf("/")+1)}X=p.protocol+"//"+p.host+Y+X}while(R.test(X)){X=X.replace(R,"")}return X}function P(X,aa){var ac="",Z=X.indexOf("#");if(Z!==-1){ac=X.substring(Z);X=X.substring(0,Z)}var ab=[];for(var Y in aa){if(aa.hasOwnProperty(Y)){ab.push(Y+"="+H(aa[Y]))}}return X+(y?"#":(X.indexOf("?")==-1?"?":"&"))+ab.join("&")+ac}var S=(function(X){X=X.substring(1).split("&");var Z={},aa,Y=X.length;while(Y--){aa=X[Y].split("=");Z[aa[0]]=k(aa[1])}return Z}(/xdm_e=/.test(p.search)?p.search:p.hash));function t(X){return typeof X==="undefined"}var O=function(){var Y={};var Z={a:[1,2,3]},X='{"a":[1,2,3]}';if(typeof JSON!="undefined"&&typeof JSON.stringify==="function"&&JSON.stringify(Z).replace((/\s/g),"")===X){return JSON}if(Object.toJSON){if(Object.toJSON(Z).replace((/\s/g),"")===X){Y.stringify=Object.toJSON}}if(typeof String.prototype.evalJSON==="function"){Z=X.evalJSON();if(Z.a&&Z.a.length===3&&Z.a[2]===3){Y.parse=function(aa){return aa.evalJSON()}}}if(Y.stringify&&Y.parse){O=function(){return Y};return Y}return null};function T(X,Y,Z){var ab;for(var aa in Y){if(Y.hasOwnProperty(aa)){if(aa in X){ab=Y[aa];if(typeof ab==="object"){T(X[aa],ab,Z)}else{if(!Z){X[aa]=Y[aa]}}}else{X[aa]=Y[aa]}}}return X}function a(){var Y=d.body.appendChild(d.createElement("form")),X=Y.appendChild(d.createElement("input"));X.name=U+"TEST"+n;E=X!==Y.elements[X.name];d.body.removeChild(Y)}function A(Y){if(t(E)){a()}var ac;if(E){ac=d.createElement('<iframe name="'+Y.props.name+'"/>')}else{ac=d.createElement("IFRAME");ac.name=Y.props.name}ac.id=ac.name=Y.props.name;delete Y.props.name;if(typeof Y.container=="string"){Y.container=d.getElementById(Y.container)}if(!Y.container){T(ac.style,{position:"absolute",top:"-2000px",left:"0px"});Y.container=d.body}var ab=Y.props.src;Y.props.src="javascript:false";T(ac,Y.props);ac.border=ac.frameBorder=0;ac.allowTransparency=true;Y.container.appendChild(ac);if(Y.onLoad){v(ac,"load",Y.onLoad)}if(Y.usePost){var aa=Y.container.appendChild(d.createElement("form")),X;aa.target=ac.name;aa.action=ab;aa.method="POST";if(typeof(Y.usePost)==="object"){for(var Z in Y.usePost){if(Y.usePost.hasOwnProperty(Z)){if(E){X=d.createElement('<input name="'+Z+'"/>')}else{X=d.createElement("INPUT");X.name=Z}X.value=Y.usePost[Z];aa.appendChild(X)}}}aa.submit();aa.parentNode.removeChild(aa)}else{ac.src=ab}Y.props.src=ab;return ac}function V(aa,Z){if(typeof aa=="string"){aa=[aa]}var Y,X=aa.length;while(X--){Y=aa[X];Y=new RegExp(Y.substr(0,1)=="^"?Y:("^"+Y.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"));if(Y.test(Z)){return true}}return false}function l(Z){var ae=Z.protocol,Y;Z.isHost=Z.isHost||t(S.xdm_p);y=Z.hash||false;if(!Z.props){Z.props={}}if(!Z.isHost){Z.channel=S.xdm_c.replace(/["'<>\\]/g,"");Z.secret=S.xdm_s;Z.remote=S.xdm_e.replace(/["'<>\\]/g,"");ae=S.xdm_p;if(Z.acl&&!V(Z.acl,Z.remote)){throw new Error("Access denied for "+Z.remote)}}else{Z.remote=B(Z.remote);Z.channel=Z.channel||"default"+n++;Z.secret=Math.random().toString(16).substring(2);if(t(ae)){if(j(p.href)==j(Z.remote)){ae="4"}else{if(C(N,"postMessage")||C(d,"postMessage")){ae="1"}else{if(Z.swf&&C(N,"ActiveXObject")&&c()){ae="6"}else{if(navigator.product==="Gecko"&&"frameElement" in N&&navigator.userAgent.indexOf("WebKit")==-1){ae="5"}else{if(Z.remoteHelper){ae="2"}else{ae="0"}}}}}}}Z.protocol=ae;switch(ae){case"0":T(Z,{interval:100,delay:2000,useResize:true,useParent:false,usePolling:false},true);if(Z.isHost){if(!Z.local){var ac=p.protocol+"//"+p.host,X=d.body.getElementsByTagName("img"),ad;var aa=X.length;while(aa--){ad=X[aa];if(ad.src.substring(0,ac.length)===ac){Z.local=ad.src;break}}if(!Z.local){Z.local=N}}var ab={xdm_c:Z.channel,xdm_p:0};if(Z.local===N){Z.usePolling=true;Z.useParent=true;Z.local=p.protocol+"//"+p.host+p.pathname+p.search;ab.xdm_e=Z.local;ab.xdm_pa=1}else{ab.xdm_e=B(Z.local)}if(Z.container){Z.useResize=false;ab.xdm_po=1}Z.remote=P(Z.remote,ab)}else{T(Z,{channel:S.xdm_c,remote:S.xdm_e,useParent:!t(S.xdm_pa),usePolling:!t(S.xdm_po),useResize:Z.useParent?false:Z.useResize})}Y=[new o.stack.HashTransport(Z),new o.stack.ReliableBehavior({}),new o.stack.QueueBehavior({encode:true,maxLength:4000-Z.remote.length}),new o.stack.VerifyBehavior({initiate:Z.isHost})];break;case"1":Y=[new o.stack.PostMessageTransport(Z)];break;case"2":if(Z.isHost){Z.remoteHelper=B(Z.remoteHelper)}Y=[new o.stack.NameTransport(Z),new o.stack.QueueBehavior(),new o.stack.VerifyBehavior({initiate:Z.isHost})];break;case"3":Y=[new o.stack.NixTransport(Z)];break;case"4":Y=[new o.stack.SameOriginTransport(Z)];break;case"5":Y=[new o.stack.FrameElementTransport(Z)];break;case"6":if(!i){c()}Y=[new o.stack.FlashTransport(Z)];break}Y.push(new o.stack.QueueBehavior({lazy:Z.lazy,remove:true}));return Y}function D(aa){var ab,Z={incoming:function(ad,ac){this.up.incoming(ad,ac)},outgoing:function(ac,ad){this.down.outgoing(ac,ad)},callback:function(ac){this.up.callback(ac)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}};for(var Y=0,X=aa.length;Y<X;Y++){ab=aa[Y];T(ab,Z,true);if(Y!==0){ab.down=aa[Y-1]}if(Y!==X-1){ab.up=aa[Y+1]}}return ab}function w(X){X.up.down=X.down;X.down.up=X.up;X.up=X.down=null}T(o,{version:"2.4.19.3",query:S,stack:{},apply:T,getJSONObject:O,whenReady:G,noConflict:e});o.DomHelper={on:v,un:x,requiresJSON:function(X){if(!u(N,"JSON")){d.write('<script type="text/javascript" src="'+X+'"><\/script>')}}};(function(){var X={};o.Fn={set:function(Y,Z){X[Y]=Z},get:function(Z,Y){if(!X.hasOwnProperty(Z)){return}var aa=X[Z];if(Y){delete X[Z]}return aa}}}());o.Socket=function(Y){var X=D(l(Y).concat([{incoming:function(ab,aa){Y.onMessage(ab,aa)},callback:function(aa){if(Y.onReady){Y.onReady(aa)}}}])),Z=j(Y.remote);this.origin=j(Y.remote);this.destroy=function(){X.destroy()};this.postMessage=function(aa){X.outgoing(aa,Z)};X.init()};o.Rpc=function(Z,Y){if(Y.local){for(var ab in Y.local){if(Y.local.hasOwnProperty(ab)){var aa=Y.local[ab];if(typeof aa==="function"){Y.local[ab]={method:aa}}}}}var X=D(l(Z).concat([new o.stack.RpcBehavior(this,Y),{callback:function(ac){if(Z.onReady){Z.onReady(ac)}}}]));this.origin=j(Z.remote);this.destroy=function(){X.destroy()};X.init()};o.stack.SameOriginTransport=function(Y){var Z,ab,aa,X;return(Z={outgoing:function(ad,ae,ac){aa(ad);if(ac){ac()}},destroy:function(){if(ab){ab.parentNode.removeChild(ab);ab=null}},onDOMReady:function(){X=j(Y.remote);if(Y.isHost){T(Y.props,{src:P(Y.remote,{xdm_e:p.protocol+"//"+p.host+p.pathname,xdm_c:Y.channel,xdm_p:4}),name:U+Y.channel+"_provider"});ab=A(Y);o.Fn.set(Y.channel,function(ac){aa=ac;K(function(){Z.up.callback(true)},0);return function(ad){Z.up.incoming(ad,X)}})}else{aa=m().Fn.get(Y.channel,true)(function(ac){Z.up.incoming(ac,X)});K(function(){Z.up.callback(true)},0)}},init:function(){G(Z.onDOMReady,Z)}})};o.stack.FlashTransport=function(aa){var ac,X,ab,ad,Y,ae;function af(ah,ag){K(function(){ac.up.incoming(ah,ad)},0)}function Z(ah){var ag=aa.swf+"?host="+aa.isHost;var aj="easyXDM_swf_"+Math.floor(Math.random()*10000);o.Fn.set("flash_loaded"+ah.replace(/[\-.]/g,"_"),function(){o.stack.FlashTransport[ah].swf=Y=ae.firstChild;var ak=o.stack.FlashTransport[ah].queue;for(var al=0;al<ak.length;al++){ak[al]()}ak.length=0});if(aa.swfContainer){ae=(typeof aa.swfContainer=="string")?d.getElementById(aa.swfContainer):aa.swfContainer}else{ae=d.createElement("div");T(ae.style,h&&aa.swfNoThrottle?{height:"20px",width:"20px",position:"fixed",right:0,top:0}:{height:"1px",width:"1px",position:"absolute",overflow:"hidden",right:0,top:0});d.body.appendChild(ae)}var ai="callback=flash_loaded"+H(ah.replace(/[\-.]/g,"_"))+"&proto="+b.location.protocol+"&domain="+H(z(b.location.href))+"&port="+H(f(b.location.href))+"&ns="+H(I);ae.innerHTML="<object height='20' width='20' type='application/x-shockwave-flash' id='"+aj+"' data='"+ag+"'><param name='allowScriptAccess' value='always'></param><param name='wmode' value='transparent'><param name='movie' value='"+ag+"'></param><param name='flashvars' value='"+ai+"'></param><embed type='application/x-shockwave-flash' FlashVars='"+ai+"' allowScriptAccess='always' wmode='transparent' src='"+ag+"' height='1' width='1'></embed></object>"}return(ac={outgoing:function(ah,ai,ag){Y.postMessage(aa.channel,ah.toString());if(ag){ag()}},destroy:function(){try{Y.destroyChannel(aa.channel)}catch(ag){}Y=null;if(X){X.parentNode.removeChild(X);X=null}},onDOMReady:function(){ad=aa.remote;o.Fn.set("flash_"+aa.channel+"_init",function(){K(function(){ac.up.callback(true)})});o.Fn.set("flash_"+aa.channel+"_onMessage",af);aa.swf=B(aa.swf);var ah=z(aa.swf);var ag=function(){o.stack.FlashTransport[ah].init=true;Y=o.stack.FlashTransport[ah].swf;Y.createChannel(aa.channel,aa.secret,j(aa.remote),aa.isHost);if(aa.isHost){if(h&&aa.swfNoThrottle){T(aa.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"})}T(aa.props,{src:P(aa.remote,{xdm_e:j(p.href),xdm_c:aa.channel,xdm_p:6,xdm_s:aa.secret}),name:U+aa.channel+"_provider"});X=A(aa)}};if(o.stack.FlashTransport[ah]&&o.stack.FlashTransport[ah].init){ag()}else{if(!o.stack.FlashTransport[ah]){o.stack.FlashTransport[ah]={queue:[ag]};Z(ah)}else{o.stack.FlashTransport[ah].queue.push(ag)}}},init:function(){G(ac.onDOMReady,ac)}})};o.stack.PostMessageTransport=function(aa){var ac,ad,Y,Z;function X(ae){if(ae.origin){return j(ae.origin)}if(ae.uri){return j(ae.uri)}if(ae.domain){return p.protocol+"//"+ae.domain}throw"Unable to retrieve the origin of the event"}function ab(af){var ae=X(af);if(ae==Z&&af.data.substring(0,aa.channel.length+1)==aa.channel+" "){ac.up.incoming(af.data.substring(aa.channel.length+1),ae)}}return(ac={outgoing:function(af,ag,ae){Y.postMessage(aa.channel+" "+af,ag||Z);if(ae){ae()}},destroy:function(){x(N,"message",ab);if(ad){Y=null;ad.parentNode.removeChild(ad);ad=null}},onDOMReady:function(){Z=j(aa.remote);if(aa.isHost){var ae=function(af){if(af.data==aa.channel+"-ready"){Y=("postMessage" in ad.contentWindow)?ad.contentWindow:ad.contentWindow.document;x(N,"message",ae);v(N,"message",ab);K(function(){ac.up.callback(true)},0)}};v(N,"message",ae);T(aa.props,{src:P(aa.remote,{xdm_e:j(p.href),xdm_c:aa.channel,xdm_p:1}),name:U+aa.channel+"_provider"});ad=A(aa)}else{v(N,"message",ab);Y=("postMessage" in N.parent)?N.parent:N.parent.document;Y.postMessage(aa.channel+"-ready",Z);K(function(){ac.up.callback(true)},0)}},init:function(){G(ac.onDOMReady,ac)}})};o.stack.FrameElementTransport=function(Y){var Z,ab,aa,X;return(Z={outgoing:function(ad,ae,ac){aa.call(this,ad);if(ac){ac()}},destroy:function(){if(ab){ab.parentNode.removeChild(ab);ab=null}},onDOMReady:function(){X=j(Y.remote);if(Y.isHost){T(Y.props,{src:P(Y.remote,{xdm_e:j(p.href),xdm_c:Y.channel,xdm_p:5}),name:U+Y.channel+"_provider"});ab=A(Y);ab.fn=function(ac){delete ab.fn;aa=ac;K(function(){Z.up.callback(true)},0);return function(ad){Z.up.incoming(ad,X)}}}else{if(d.referrer&&j(d.referrer)!=S.xdm_e){N.top.location=S.xdm_e}aa=N.frameElement.fn(function(ac){Z.up.incoming(ac,X)});Z.up.callback(true)}},init:function(){G(Z.onDOMReady,Z)}})};o.stack.NameTransport=function(ab){var ac;var ae,ai,aa,ag,ah,Y,X;function af(al){var ak=ab.remoteHelper+(ae?"#_3":"#_2")+ab.channel;ai.contentWindow.sendMessage(al,ak)}function ad(){if(ae){if(++ag===2||!ae){ac.up.callback(true)}}else{af("ready");ac.up.callback(true)}}function aj(ak){ac.up.incoming(ak,Y)}function Z(){if(ah){K(function(){ah(true)},0)}}return(ac={outgoing:function(al,am,ak){ah=ak;af(al)},destroy:function(){ai.parentNode.removeChild(ai);ai=null;if(ae){aa.parentNode.removeChild(aa);aa=null}},onDOMReady:function(){ae=ab.isHost;ag=0;Y=j(ab.remote);ab.local=B(ab.local);if(ae){o.Fn.set(ab.channel,function(al){if(ae&&al==="ready"){o.Fn.set(ab.channel,aj);ad()}});X=P(ab.remote,{xdm_e:ab.local,xdm_c:ab.channel,xdm_p:2});T(ab.props,{src:X+"#"+ab.channel,name:U+ab.channel+"_provider"});aa=A(ab)}else{ab.remoteHelper=ab.remote;o.Fn.set(ab.channel,aj)}var ak=function(){var al=ai||this;x(al,"load",ak);o.Fn.set(ab.channel+"_load",Z);(function am(){if(typeof al.contentWindow.sendMessage=="function"){ad()}else{K(am,50)}}())};ai=A({props:{src:ab.local+"#_4"+ab.channel},onLoad:ak})},init:function(){G(ac.onDOMReady,ac)}})};o.stack.HashTransport=function(Z){var ac;var ah=this,af,aa,X,ad,am,ab,al;var ag,Y;function ak(ao){if(!al){return}var an=Z.remote+"#"+(am++)+"_"+ao;((af||!ag)?al.contentWindow:al).location=an}function ae(an){ad=an;ac.up.incoming(ad.substring(ad.indexOf("_")+1),Y)}function aj(){if(!ab){return}var an=ab.location.href,ap="",ao=an.indexOf("#");if(ao!=-1){ap=an.substring(ao)}if(ap&&ap!=ad){ae(ap)}}function ai(){aa=setInterval(aj,X)}return(ac={outgoing:function(an,ao){ak(an)},destroy:function(){N.clearInterval(aa);if(af||!ag){al.parentNode.removeChild(al)}al=null},onDOMReady:function(){af=Z.isHost;X=Z.interval;ad="#"+Z.channel;am=0;ag=Z.useParent;Y=j(Z.remote);if(af){T(Z.props,{src:Z.remote,name:U+Z.channel+"_provider"});if(ag){Z.onLoad=function(){ab=N;ai();ac.up.callback(true)}}else{var ap=0,an=Z.delay/50;(function ao(){if(++ap>an){throw new Error("Unable to reference listenerwindow")}try{ab=al.contentWindow.frames[U+Z.channel+"_consumer"]}catch(aq){}if(ab){ai();ac.up.callback(true)}else{K(ao,50)}}())}al=A(Z)}else{ab=N;ai();if(ag){al=parent;ac.up.callback(true)}else{T(Z,{props:{src:Z.remote+"#"+Z.channel+new Date(),name:U+Z.channel+"_consumer"},onLoad:function(){ac.up.callback(true)}});al=A(Z)}}},init:function(){G(ac.onDOMReady,ac)}})};o.stack.ReliableBehavior=function(Y){var aa,ac;var ab=0,X=0,Z="";return(aa={incoming:function(af,ad){var ae=af.indexOf("_"),ag=af.substring(0,ae).split(",");af=af.substring(ae+1);if(ag[0]==ab){Z="";if(ac){ac(true)}}if(af.length>0){aa.down.outgoing(ag[1]+","+ab+"_"+Z,ad);if(X!=ag[1]){X=ag[1];aa.up.incoming(af,ad)}}},outgoing:function(af,ad,ae){Z=af;ac=ae;aa.down.outgoing(X+","+(++ab)+"_"+af,ad)}})};o.stack.QueueBehavior=function(Z){var ac,ad=[],ag=true,aa="",af,X=0,Y=false,ab=false;function ae(){if(Z.remove&&ad.length===0){w(ac);return}if(ag||ad.length===0||af){return}ag=true;var ah=ad.shift();ac.down.outgoing(ah.data,ah.origin,function(ai){ag=false;if(ah.callback){K(function(){ah.callback(ai)},0)}ae()})}return(ac={init:function(){if(t(Z)){Z={}}if(Z.maxLength){X=Z.maxLength;ab=true}if(Z.lazy){Y=true}else{ac.down.init()}},callback:function(ai){ag=false;var ah=ac.up;ae();ah.callback(ai)},incoming:function(ak,ai){if(ab){var aj=ak.indexOf("_"),ah=parseInt(ak.substring(0,aj),10);aa+=ak.substring(aj+1);if(ah===0){if(Z.encode){aa=k(aa)}ac.up.incoming(aa,ai);aa=""}}else{ac.up.incoming(ak,ai)}},outgoing:function(al,ai,ak){if(Z.encode){al=H(al)}var ah=[],aj;if(ab){while(al.length!==0){aj=al.substring(0,X);al=al.substring(aj.length);ah.push(aj)}while((aj=ah.shift())){ad.push({data:ah.length+"_"+aj,origin:ai,callback:ah.length===0?ak:null})}}else{ad.push({data:al,origin:ai,callback:ak})}if(Y){ac.down.init()}else{ae()}},destroy:function(){af=true;ac.down.destroy()}})};o.stack.VerifyBehavior=function(ab){var ac,aa,Y,Z=false;function X(){aa=Math.random().toString(16).substring(2);ac.down.outgoing(aa)}return(ac={incoming:function(af,ad){var ae=af.indexOf("_");if(ae===-1){if(af===aa){ac.up.callback(true)}else{if(!Y){Y=af;if(!ab.initiate){X()}ac.down.outgoing(af)}}}else{if(af.substring(0,ae)===Y){ac.up.incoming(af.substring(ae+1),ad)}}},outgoing:function(af,ad,ae){ac.down.outgoing(aa+"_"+af,ad,ae)},callback:function(ad){if(ab.initiate){X()}}})};o.stack.RpcBehavior=function(ad,Y){var aa,af=Y.serializer||O();var ae=0,ac={};function X(ag){ag.jsonrpc="2.0";aa.down.outgoing(af.stringify(ag))}function ab(ag,ai){var ah=Array.prototype.slice;return function(){var aj=arguments.length,al,ak={method:ai};if(aj>0&&typeof arguments[aj-1]==="function"){if(aj>1&&typeof arguments[aj-2]==="function"){al={success:arguments[aj-2],error:arguments[aj-1]};ak.params=ah.call(arguments,0,aj-2)}else{al={success:arguments[aj-1]};ak.params=ah.call(arguments,0,aj-1)}ac[""+(++ae)]=al;ak.id=ae}else{ak.params=ah.call(arguments,0)}if(ag.namedParams&&ak.params.length===1){ak.params=ak.params[0]}X(ak)}}function Z(an,am,ai,al){if(!ai){if(am){X({id:am,error:{code:-32601,message:"Procedure not found."}})}return}var ak,ah;if(am){ak=function(ao){ak=q;X({id:am,result:ao})};ah=function(ao,ap){ah=q;var aq={id:am,error:{code:-32099,message:ao}};if(ap){aq.error.data=ap}X(aq)}}else{ak=ah=q}if(!r(al)){al=[al]}try{var ag=ai.method.apply(ai.scope,al.concat([ak,ah]));if(!t(ag)){ak(ag)}}catch(aj){ah(aj.message)}}return(aa={incoming:function(ah,ag){var ai=af.parse(ah);if(ai.method){if(Y.handle){Y.handle(ai,X)}else{Z(ai.method,ai.id,Y.local[ai.method],ai.params)}}else{var aj=ac[ai.id];if(ai.error){if(aj.error){aj.error(ai.error)}}else{if(aj.success){aj.success(ai.result)}}delete ac[ai.id]}},init:function(){if(Y.remote){for(var ag in Y.remote){if(Y.remote.hasOwnProperty(ag)){ad[ag]=ab(Y.remote[ag],ag)}}}aa.down.init()},destroy:function(){for(var ag in Y.remote){if(Y.remote.hasOwnProperty(ag)&&ad.hasOwnProperty(ag)){delete ad[ag]}}aa.down.destroy()}})};b.easyXDM=o})(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);
63
- },
64
-
65
- get: function(xhrhost, url, data, success, complete) {
66
- this.send(xhrhost, url, 'GET', data, success, complete);
67
- },
68
-
69
- post: function(xhrhost, url, data, success, complete) {
70
- this.send(xhrhost, url, 'POST', data, success, complete);
71
- },
72
-
73
- send: function(xhrhost, url, type, data, success, complete) {
74
- if (data) {
75
- for (d in data) {
76
- if (data.hasOwnProperty(d)) {
77
- var val = data[d];
78
- if (typeof val == 'string') {
79
- data[d] = this.escape(val);
80
- } else if (typeof val == 'undefined') {
81
- delete data[d];
82
- }
83
- }
84
- }
85
- }
86
- this.xhr(xhrhost).request({url: url, method: type, headers: {'Accept': 'application/json;'}, data: data},
87
- function(res) {
88
- if (success) {
89
- if (res.data) {
90
- var json;
91
- try { json = JSON.parse(res.data); } catch (e) {}
92
- success(json || res.data);
93
- } else {
94
- success();
95
- }
96
- }
97
- if (complete) complete();
98
- }, function(res) {
99
- if (complete) complete();
100
- }
101
- );
102
- },
103
-
104
- escape: function(str) {
105
- var escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
106
- meta = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'};
107
-
108
- escapable.lastIndex = 0;
109
- return escapable.test(str) ?
110
- str.replace(escapable, function (a) {
111
- var c = meta[a];
112
- return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
113
- }) : str;
114
- },
115
-
116
- stringify: function (obj) {
117
- var t = typeof (obj);
118
- if (t != "object" || obj === null) {
119
- if (t == "string"){obj = '"'+obj+'"';}
120
- return String(obj);
121
- }
122
- else {
123
- var n, v, json = [], arr = (obj && obj.constructor == Array);
124
- for (n in obj) {
125
- if (obj.hasOwnProperty(n)) {
126
- v = obj[n]; t = typeof(v);
127
- if (t == "string"){v = '"'+v+'"';}else if (t == "object" && v !== null){v = this.stringify(v);}
128
- json.push((arr ? "" : '"' + n + '":') + String(v));
129
- }
130
- }
131
- return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
132
- }
133
- }
134
- };
135
- "object"!==typeof JSON&&(JSON={});
136
- (function(){function a(a){return 10>a?"0"+a:a}function b(a){e.lastIndex=0;return e.test(a)?'"'+a.replace(e,function(a){var b=h[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(a,d){var e,h,m,q,r=f,l,k=d[a];k&&("object"===typeof k&&"function"===typeof k.toJSON)&&(k=k.toJSON(a));"function"===typeof n&&(k=n.call(d,a,k));switch(typeof k){case "string":return b(k);case "number":return isFinite(k)?String(k):"null";case "boolean":case "null":return String(k);
137
- case "object":if(!k)return"null";f+=g;l=[];if("[object Array]"===Object.prototype.toString.apply(k)){q=k.length;for(e=0;e<q;e+=1)l[e]=c(e,k)||"null";m=0===l.length?"[]":f?"[\n"+f+l.join(",\n"+f)+"\n"+r+"]":"["+l.join(",")+"]";f=r;return m}if(n&&"object"===typeof n)for(q=n.length,e=0;e<q;e+=1)"string"===typeof n[e]&&(h=n[e],(m=c(h,k))&&l.push(b(h)+(f?": ":":")+m));else for(h in k)Object.prototype.hasOwnProperty.call(k,h)&&(m=c(h,k))&&l.push(b(h)+(f?": ":":")+m);m=0===l.length?"{}":f?"{\n"+f+l.join(",\n"+
138
- f)+"\n"+r+"}":"{"+l.join(",")+"}";f=r;return m}}"function"!==typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d,e,f,g,h,n;"function"!==typeof JSON.stringify&&(e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
139
- h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((n=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})});"function"!==typeof JSON.parse&&(d=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(a,
140
- b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=String(a);d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=
141
- eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();var WPacFastjs=WPacFastjs||{emailRegex:/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,get:function(a,b){return document.querySelector(a+" "+b)},extend:function(a,b){var c={},d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(c[d]=a[d]);for(d in b)Object.prototype.hasOwnProperty.call(b,d)&&(c[d]=b[d]);return c},create:function(a,b,c,d){a=document.createElement(a);b&&this.addcl(a,b);c&&
142
- a.setAttribute("title",c);d&&a.setAttribute("style",d);return a},addcls:function(a,b){for(var c=0;c<b.length;c++){var d=b[c];0>a.className.indexOf(d)&&(a.className+=" "+d)}},addcl:function(a,b){a&&0>a.className.indexOf(b)&&(a.className+=" "+b,a.className=a.className.trim())},remcl:function(a,b){a&&(a.className=a.className.replace(b," "))},hascl:function(a,b){return a&&-1<a.className.indexOf(b)},on:function(a,b,c){if(a){var d=this;a.addEventListener?a.addEventListener(b,function(b){!1==c.call(a,b)&&
143
- d.stop(b)},!1):a.attachEvent("on"+b,function(b){b.stopPropagation=b.stopPropagation||function(){this.cancelBubble=!0};b.preventDefault=b.preventDefault||function(){this.returnValue=!1};!1==c.call(a,b)&&d.stop(b)})}},on2:function(a,b,c,d){if(a&&(a=a.querySelector(b)))this.on(a,c,d)},onall:function(a,b,c){for(var d=0;d<a.length;d++)this.on(a[d],b,c)},onall2:function(a,b,c,d){this.onall(a.querySelectorAll(b),c,d)},stop:function(a){a.preventDefault();a.stopPropagation()},parents:function(a,b){var c=a.parentNode,
144
- d=!1;this.each(c.className.split(" "),function(a){!d&&(d=a==b)});return d?c:this.parents(c,b)},parentsel:function(a,b){var c=a.parentNode;return 0>c.tagName.toLowerCase().indexOf(b)?this.parentsel(c,b):c},show:function(a,b){var c=b.querySelector(a);this.show2(c)},show2:function(a){a&&(a.style.display="")},hide:function(a,b){var c=b.querySelector(a);this.hide2(c)},hide2:function(a){a&&(a.style.display="none")},html:function(a,b){a&&(a.innerHTML="",this.isString(b)?a.innerHTML=b:a.appendChild(b))},
145
- prepend:function(a,b){a.insertBefore(b,a.firstChild)},rm:function(a){a&&a.parentNode&&a.parentNode.removeChild(a)},rm2:function(a,b){var c=a.querySelector(b);this.rm(c)},each:function(a,b){if("undefined"==typeof a.length)b(a,0);else for(var c=0;c<a.length;c++)b(a[c],c)},css:function(a,b,c){this.isInteger(c)&&(c+="px");a.style[b]=c},child:function(a,b){for(var c=a.children.length;c--;){var d=a.children[c];if(8!=d.nodeType&&-1<d.className.indexOf(b))return d}},children:function(a){for(var b=[],c=a.children.length;c--;)8!=
146
- a.children[c].nodeType&&b.unshift(a.children[c]);return b},icss:function(a,b){return a+":"+b+"px!important;"},transCss:function(a,b){var c="overflow-y:hidden!important;-webkit-transition:"+b+" .5s ease-in-out!important;-moz-transition:"+b+" .5s ease-in-out!important;-o-transition:"+b+" .5s ease-in-out!important;transition:"+b+" .5s ease-in-out!important;";a.setAttribute("style",c);return c},prependSlide:function(a,b){var c=this,d=this.transCss(a,"max-height");b.insertBefore(a,b.firstChild);var e=
147
- a.offsetHeight;a.setAttribute("style",this.icss("max-height",0)+d);setTimeout(function(){a.setAttribute("style",c.icss("max-height",e)+d);setTimeout(function(){a.setAttribute("style","")},1E3)},1)},slidedwn:function(a){a.style.display="";var b=a.offsetHeight;a.setAttribute("style",this.transCss(a,"height"));a.style.height="0";setTimeout(function(){a.style.height=b+"px";setTimeout(function(){a.setAttribute("style","")},500)},5)},slideup:function(a,b){a.setAttribute("style",this.transCss(a,"height"));
148
- a.style.height=a.offsetHeight+"px";setTimeout(function(){a.style.height="0";setTimeout(function(){a.setAttribute("style","display:none");b&&b()},500)},5)},title:function(){var a=document.getElementsByTagName("title")[0];return a&&a.textContent||""},nextES:function(a){do a=a.nextSibling;while(a&&1!==a.nodeType);return a},next:function(a){return a.nextElementSibling||this.nextES(a)},prevES:function(a){do a=a.previousSibling;while(a&&1!==a.nodeType);return a},prev:function(a){return a.previousElementSibling||
149
- this.prevES(a)},after:function(a,b){a.parentNode.insertBefore(b,a.nextSibling)},before:function(a,b){a.parentNode.insertBefore(b,a)},isVisible:function(a){return 0<a.offsetWidth&&0<a.offsetHeight},isInteger:function(a){return a&&0===a%1},isString:function(a){return"string"==typeof a},afun:function(a){var b="wpac_"+Math.floor(1000001*Math.random());window[b]=function(c){window[b]=void 0;try{delete window[b]}catch(d){}a(c)};return b},params:function(a,b,c){var d=[];if(b)for(p in b)d.push(encodeURIComponent(p)+
150
- "="+encodeURIComponent(b[p]));c&&d.push("callback="+this.afun(c));return 0<d.length?(b=0>a.indexOf("?")?"?":"&",a+(b+d.join("&"))):a},jsonp:function(a,b,c){var d=document.createElement("script");d.src=this.params(a,b,c);d.type="text/javascript";(document.getElementsByTagName("head")[0]||document.getElementsByTagName("body")[0]).appendChild(d)},popup:function(a,b,c,d,e,f){e=e||screen.height/2-c/2;f=f||screen.width/2-b/2;return window.open(this.params(a,d),"","location=1,status=1,resizable=yes,width="+
151
- b+",height="+c+",top="+e+",left="+f)},inArray:function(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1},txt:function(a,b){"textContent"in a?a.textContent=b:a.innerText=b},cbs:function(a,b,c,d){if(a.callback&&(a=a.callback[b])&&0<a.length)for(b=0;b<a.length;b++)if(d)a[b].call(d,c);else a[b](c)},extendcbs:function(a,b){a.callback=a.callback||{};for(cb in b)Object.prototype.hasOwnProperty.call(b,cb)&&(Object.prototype.hasOwnProperty.call(a.callback,cb)||(a.callback[cb]=[]),a.callback[cb].push(b[cb]));
152
- return a.callback},isemail:function(a){return this.emailRegex.test(a)},getParam:function(a){if(location.search&&-1<location.search.indexOf(a)){if(!this.urlparams){this.urlParams={};var b=this;location.search.substr(1).split("&").forEach(function(a){a=a.split("=");b.urlParams[a[0]]=decodeURIComponent(a[1])})}return this.urlParams[a]}},urlsToHyperlinks:function(a){return a.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,'<a href="$1" target="_blank">$1</a>').replace(/(^|[^\/])(www\.[\S]+(\b|$))/ig,
153
- '$1<a href="http://$2" target="_blank" rel="nofollow">$2</a>')},escapeHtml:function(a){return a?document.createElement("div").appendChild(document.createTextNode(a)).parentNode.innerHTML:""},escapeHtmlWithLinks:function(a){return this.urlsToHyperlinks(this.escapeHtml(a))}};String.prototype.trim||(String.prototype.trim=String.prototype.trim||function(){return this.replace(/^\s+|\s+$/g,"")});String.prototype.capitalize||(String.prototype.capitalize=function(){return this.charAt(0).toUpperCase()+this.slice(1)});var WPacSVGIcon=WPacSVGIcon||function(){var a=function(a,b,c,g,h){return'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+a+'" height="'+b+'" viewBox="'+(h||"0 0 1792 1792")+'"><path d="'+g+'"'+(c?' fill="'+c+'"':"")+"/></svg>"},b=function(a,b,c,g,h){return'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="'+a+'" height="'+b+'" viewBox="'+c+'"><g transform="translate('+g+') scale(0.05,-0.05)"><path fill="#fff" d="'+h+'"></path></g></svg>'},c={star_o:"M1201 1004l306-297-422-62-189-382-189 382-422 62 306 297-73 421 378-199 377 199zm527-357q0 22-26 48l-363 354 86 500q1 7 1 20 0 50-41 50-19 0-40-12l-449-236-449 236q-22 12-40 12-21 0-31.5-14.5t-10.5-35.5q0-6 2-20l86-500-364-354q-25-27-25-48 0-37 56-46l502-73 225-455q19-41 49-41t49 41l225 455 502 73q56 9 56 46z",
154
- star_half:"M1250 957l257-250-356-52-66-10-30-60-159-322v963l59 31 318 168-60-355-12-66zm452-262l-363 354 86 500q5 33-6 51.5t-34 18.5q-17 0-40-12l-449-236-449 236q-23 12-40 12-23 0-34-18.5t-6-51.5l86-500-364-354q-32-32-23-59.5t54-34.5l502-73 225-455q20-41 49-41 28 0 49 41l225 455 502 73q45 7 54 34.5t-24 59.5z",star:"M1728 647q0 22-26 48l-363 354 86 500q1 7 1 20 0 21-10.5 35.5t-30.5 14.5q-19 0-40-12l-449-236-449 236q-22 12-40 12-21 0-31.5-14.5t-10.5-35.5q0-6 2-20l86-500-364-354q-25-27-25-48 0-37 56-46l502-73 225-455q19-41 49-41t49 41l225 455 502 73q56 9 56 46z"};
155
- return{path:c,star_o:a(22,22,"#ccc",c.star_o),star_half:a(22,22,"#ff9800",c.star_half),star:a(22,22,"#ff9800",c.star),pencil:a(14,14,"#666","M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"),caret:a(14,14,"#666","M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z"),
156
- check:a(14,14,"#666","M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z"),reply:a(14,14,"#666","M1792 640q0 26-19 45l-512 512q-19 19-45 19t-45-19-19-45v-256h-224q-98 0-175.5 6t-154 21.5-133 42.5-105.5 69.5-80 101-48.5 138.5-17.5 181q0 55 5 123 0 6 2.5 23.5t2.5 26.5q0 15-8.5 25t-23.5 10q-16 0-28-17-7-9-13-22t-13.5-30-10.5-24q-127-285-127-451 0-199 53-333 162-403 875-403h224v-256q0-26 19-45t45-19 45 19l512 512q19 19 19 45z"),
157
- reply_sm:a(14,14,"#666","M7 0v3.675a11.411 11.411 0 0 1-2.135-.244 10.511 10.511 0 0 1-1.983-.635 5.92 5.92 0 0 1-1.715-1.13A4.975 4.975 0 0 1 0 .012c.047 1.075.206 2.045.479 2.912A7.68 7.68 0 0 0 1.686 5.28c.533.704 1.248 1.266 2.147 1.685.898.42 1.954.66 3.167.726V11l7-5.53L7 0","0 0 14 11"),edit:a(14,14,"#666","M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"),
158
- trash:a(14,14,"#666","M704 1376v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm-544-992h448l-48-117q-7-9-17-11h-317q-10 2-17 11zm928 32v64q0 14-9 23t-23 9h-96v948q0 83-47 143.5t-113 60.5h-832q-66 0-113-58.5t-47-141.5v-952h-96q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h309l70-167q15-37 54-63t79-26h320q40 0 79 26t54 63l70 167h309q14 0 23 9t9 23z"),
159
- like:a(14,14,"#666","M0,535.5h102v-306H0V535.5z M561,255c0-28.05-22.95-51-51-51H349.35l25.5-117.3c0-2.55,0-5.1,0-7.65 c0-10.2-5.1-20.4-10.199-28.05L336.6,25.5L168.3,193.8c-10.2,7.65-15.3,20.4-15.3,35.7v255c0,28.05,22.95,51,51,51h229.5 c20.4,0,38.25-12.75,45.9-30.6l76.5-181.051c2.55-5.1,2.55-12.75,2.55-17.85v-51H561C561,257.55,561,255,561,255z","0 0 561 561"),unlike:a(14,14,"#666","M357,25.5H127.5c-20.4,0-38.25,12.75-45.9,30.6L5.1,237.15C2.55,242.25,0,247.35,0,255v48.45l0,0V306 c0,28.05,22.95,51,51,51h160.65l-25.5,117.3c0,2.55,0,5.101,0,7.65c0,10.2,5.1,20.399,10.2,28.05l28.05,25.5l168.3-168.3 c10.2-10.2,15.3-22.95,15.3-35.7v-255C408,48.45,385.05,25.5,357,25.5z M459,25.5v306h102v-306H459z",
160
- "0 0 561 561"),paperclip:a(14,14,"#666","M1596 1385q0 117-79 196t-196 79q-135 0-235-100l-777-776q-113-115-113-271 0-159 110-270t269-111q158 0 273 113l605 606q10 10 10 22 0 16-30.5 46.5t-46.5 30.5q-13 0-23-10l-606-607q-79-77-181-77-106 0-179 75t-73 181q0 105 76 181l776 777q63 63 145 63 64 0 106-42t42-106q0-82-63-145l-581-581q-26-24-60-24-29 0-48 19t-19 48q0 32 25 59l410 410q10 10 10 22 0 16-31 47t-47 31q-12 0-22-10l-410-410q-63-61-63-149 0-82 57-139t139-57q88 0 149 63l581 581q100 98 100 235z","0 0 1792 1792"),
161
- clock:a(14,14,"#666","M1024 544v448q0 14-9 23t-23 9h-320q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h224v-352q0-14 9-23t23-9h64q14 0 23 9t9 23zm416 352q0-148-73-273t-198-198-273-73-273 73-198 198-73 273 73 273 198 198 273 73 273-73 198-198 73-273zm224 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z","0 0 1792 1792"),menu:a(14,14,"#666","M1664 1344v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45zm0-512v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45zm0-512v128q0 26-19 45t-45 19h-1408q-26 0-45-19t-19-45v-128q0-26 19-45t45-19h1408q26 0 45 19t19 45z",
162
- "0 0 1792 1792"),link:a(14,14,"#666","M1520 1216q0-40-28-68l-208-208q-28-28-68-28-42 0-72 32 3 3 19 18.5t21.5 21.5 15 19 13 25.5 3.5 27.5q0 40-28 68t-68 28q-15 0-27.5-3.5t-25.5-13-19-15-21.5-21.5-18.5-19q-33 31-33 73 0 40 28 68l206 207q27 27 68 27 40 0 68-26l147-146q28-28 28-67zm-703-705q0-40-28-68l-206-207q-28-28-68-28-39 0-68 27l-147 146q-28 28-28 67 0 40 28 68l208 208q27 27 68 27 42 0 72-31-3-3-19-18.5t-21.5-21.5-15-19-13-25.5-3.5-27.5q0-40 28-68t68-28q15 0 27.5 3.5t25.5 13 19 15 21.5 21.5 18.5 19q33-31 33-73zm895 705q0 120-85 203l-147 146q-83 83-203 83-121 0-204-85l-206-207q-83-83-83-203 0-123 88-209l-88-88q-86 88-208 88-120 0-204-84l-208-208q-84-84-84-204t85-203l147-146q83-83 203-83 121 0 204 85l206 207q83 83 83 203 0 123-88 209l88 88q86-88 208-88 120 0 204 84l208 208q84 84 84 204z",
163
- "0 0 1792 1792"),share:a(14,14,"#666","M1344 1024q133 0 226.5 93.5t93.5 226.5-93.5 226.5-226.5 93.5-226.5-93.5-93.5-226.5q0-12 2-34l-360-180q-92 86-218 86-133 0-226.5-93.5t-93.5-226.5 93.5-226.5 226.5-93.5q126 0 218 86l360-180q-2-22-2-34 0-133 93.5-226.5t226.5-93.5 226.5 93.5 93.5 226.5-93.5 226.5-226.5 93.5q-126 0-218-86l-360 180q2 22 2 34t-2 34l360 180q92-86 218-86z","0 0 1792 1792"),smile:a(14,14,"#666","M1262 1075q-37 121-138 195t-228 74-228-74-138-195q-8-25 4-48.5t38-31.5q25-8 48.5 4t31.5 38q25 80 92.5 129.5t151.5 49.5 151.5-49.5 92.5-129.5q8-26 32-38t49-4 37 31.5 4 48.5zm-494-435q0 53-37.5 90.5t-90.5 37.5-90.5-37.5-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm512 0q0 53-37.5 90.5t-90.5 37.5-90.5-37.5-37.5-90.5 37.5-90.5 90.5-37.5 90.5 37.5 37.5 90.5zm256 256q0-130-51-248.5t-136.5-204-204-136.5-248.5-51-248.5 51-204 136.5-136.5 204-51 248.5 51 248.5 136.5 204 204 136.5 248.5 51 248.5-51 204-136.5 136.5-204 51-248.5zm128 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z",
164
- "0 0 1792 1792"),image:a(14,14,"#666","M576 576q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm1024 384v448h-1408v-192l320-320 160 160 512-512zm96-704h-1600q-13 0-22.5 9.5t-9.5 22.5v1216q0 13 9.5 22.5t22.5 9.5h1600q13 0 22.5-9.5t9.5-22.5v-1216q0-13-9.5-22.5t-22.5-9.5zm160 32v1216q0 66-47 113t-113 47h-1600q-66 0-113-47t-47-113v-1216q0-66 47-113t113-47h1600q66 0 113 47t47 113z","0 0 1792 1792"),search:a(14,14,"#666","M1216 832q0-185-131.5-316.5t-316.5-131.5-316.5 131.5-131.5 316.5 131.5 316.5 316.5 131.5 316.5-131.5 131.5-316.5zm512 832q0 52-38 90t-90 38q-54 0-90-38l-343-342q-179 124-399 124-143 0-273.5-55.5t-225-150-150-225-55.5-273.5 55.5-273.5 150-225 225-150 273.5-55.5 273.5 55.5 225 150 150 225 55.5 273.5q0 220-124 399l343 343q37 37 37 90z",
165
- "0 0 1792 1792"),signin:a(14,14,"#666","M1312 896q0 26-19 45l-544 544q-19 19-45 19t-45-19-19-45v-288h-448q-26 0-45-19t-19-45v-384q0-26 19-45t45-19h448v-288q0-26 19-45t45-19 45 19l544 544q19 19 19 45zm352-352v704q0 119-84.5 203.5t-203.5 84.5h-320q-13 0-22.5-9.5t-9.5-22.5q0-4-1-20t-.5-26.5 3-23.5 10-19.5 20.5-6.5h320q66 0 113-47t47-113v-704q0-66-47-113t-113-47h-312l-11.5-1-11.5-3-8-5.5-7-9-2-13.5q0-4-1-20t-.5-26.5 3-23.5 10-19.5 20.5-6.5h320q119 0 203.5 84.5t84.5 203.5z","0 0 1792 1792"),comments:a(14,
166
- 14,"#666","M1408 768q0 139-94 257t-256.5 186.5-353.5 68.5q-86 0-176-16-124 88-278 128-36 9-86 16h-3q-11 0-20.5-8t-11.5-21q-1-3-1-6.5t.5-6.5 2-6l2.5-5 3.5-5.5 4-5 4.5-5 4-4.5q5-6 23-25t26-29.5 22.5-29 25-38.5 20.5-44q-124-72-195-177t-71-224q0-139 94-257t256.5-186.5 353.5-68.5 353.5 68.5 256.5 186.5 94 257zm384 256q0 120-71 224.5t-195 176.5q10 24 20.5 44t25 38.5 22.5 29 26 29.5 23 25q1 1 4 4.5t4.5 5 4 5 3.5 5.5l2.5 5 2 6 .5 6.5-1 6.5q-3 14-13 22t-22 7q-50-7-86-16-154-40-278-128-90 16-176 16-271 0-472-132 58 4 88 4 161 0 309-45t264-129q125-92 192-212t67-254q0-77-23-152 129 71 204 178t75 230z",
167
- "0 0 1792 1792"),angle_down:a(14,14,"#666","M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z","0 0 1792 1792"),code:a(14,14,null,"M553 1399l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23l-393 393 393 393q10 10 10 23t-10 23zm591-1067l-373 1291q-4 13-15.5 19.5t-23.5 2.5l-62-17q-13-4-19.5-15.5t-2.5-24.5l373-1291q4-13 15.5-19.5t23.5-2.5l62 17q13 4 19.5 15.5t2.5 24.5zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z"),
168
- wordpress:a(14,14,null,"M127 896q0-163 67-313l367 1005q-196-95-315-281t-119-411zm1288-39q0 19-2.5 38.5t-10 49.5-11.5 44-17.5 59-17.5 58l-76 256-278-826q46-3 88-8 19-2 26-18.5t-2.5-31-28.5-13.5l-205 10q-75-1-202-10-12-1-20.5 5t-11.5 15-1.5 18.5 9 16.5 19.5 8l80 8 120 328-168 504-280-832q46-3 88-8 19-2 26-18.5t-2.5-31-28.5-13.5l-205 10q-7 0-23-.5t-26-.5q105-160 274.5-253.5t367.5-93.5q147 0 280.5 53t238.5 149h-10q-55 0-92 40.5t-37 95.5q0 12 2 24t4 21.5 8 23 9 21 12 22.5 12.5 21 14.5 24 14 23q63 107 63 212zm-506 106l237 647q1 6 5 11-126 44-255 44-112 0-217-32zm661-436q95 174 95 369 0 209-104 385.5t-279 278.5l235-678q59-169 59-276 0-42-6-79zm-674-527q182 0 348 71t286 191 191 286 71 348-71 348-191 286-286 191-348 71-348-71-286-191-191-286-71-348 71-348 191-286 286-191 348-71zm0 1751q173 0 331.5-68t273-182.5 182.5-273 68-331.5-68-331.5-182.5-273-273-182.5-331.5-68-331.5 68-273 182.5-182.5 273-68 331.5 68 331.5 182.5 273 273 182.5 331.5 68z"),
169
- joomla:a(14,14,null,"M1198 1073l-160 160-151 152-30 30q-65 64-151.5 87t-171.5 2q-16 70-72 115t-129 45q-85 0-145-60.5t-60-145.5q0-72 44.5-128t113.5-72q-22-86 1-173t88-152l12-12 151 152-11 11q-37 37-37 89t37 90q37 37 89 37t89-37l30-30 151-152 161-160zm-341-682l12 12-152 152-12-12q-37-37-89-37t-89 37-37 89.5 37 89.5l29 29 152 152 160 160-151 152-161-160-151-152-30-30q-68-67-90-159.5t5-179.5q-70-15-115-71t-45-129q0-85 60-145.5t145-60.5q76 0 133.5 49t69.5 123q84-20 169.5 3.5t149.5 87.5zm807 1067q0 85-60 145.5t-145 60.5q-74 0-131-47t-71-118q-86 28-179.5 6t-161.5-90l-11-12 151-152 12 12q37 37 89 37t89-37 37-89-37-89l-30-30-152-152-160-160 152-152 160 160 152 152 29 30q64 64 87.5 150.5t2.5 171.5q76 11 126.5 68.5t50.5 134.5zm-2-1124q0 77-51 135t-127 69q26 85 3 176.5t-90 158.5l-12 12-151-152 12-12q37-37 37-89t-37-89-89-37-89 37l-30 30-152 152-160 160-152-152 161-160 152-152 29-30q67-67 159-89.5t178 3.5q11-75 68.5-126t135.5-51q85 0 145 60.5t60 145.5z"),
170
- drupal:a(14,14,null,"M1295 1586q-5-19-24-5-30 22-87 39t-131 17q-129 0-193-49-5-4-13-4-11 0-26 12-7 6-7.5 16t7.5 20q34 32 87.5 46t102.5 12.5 99-4.5q41-4 84.5-20.5t65-30 28.5-20.5q12-12 7-29zm-39-115q-19-47-39-61-23-15-76-15-47 0-71 10-29 12-78 56-26 24-12 44 9 8 17.5 4.5t31.5-23.5q3-2 10.5-8.5t10.5-8.5 10-7 11.5-7 12.5-5 15-4.5 16.5-2.5 20.5-1q27 0 44.5 7.5t23 14.5 13.5 22q10 17 12.5 20t12.5-1q23-12 14-34zm355-281q0-22-5-44.5t-16.5-45-34-36.5-52.5-14q-33 0-97 41.5t-129 83.5-101 42q-27 1-63.5-19t-76-49-83.5-58-100-49-111-19q-115 1-197 78.5t-84 178.5q-2 112 74 164 29 20 62.5 28.5t103.5 8.5q57 0 132-32.5t134-71 120-70.5 93-31q26 1 65 31.5t71.5 67 68 67.5 55.5 32q35 3 58.5-14t55.5-63q28-41 42.5-101t14.5-106zm53-160q0 164-62 304.5t-166 236-242.5 149.5-290.5 54-293-57.5-247.5-157-170.5-241.5-64-302q0-89 19.5-172.5t49-145.5 70.5-118.5 78.5-94 78.5-69.5 64.5-46.5 42.5-24.5q14-8 51-26.5t54.5-28.5 48-30 60.5-44q36-28 58-72.5t30-125.5q129 155 186 193 44 29 130 68t129 66q21 13 39 25t60.5 46.5 76 70.5 75 95 69 122 47 148.5 19.5 177.5z"),
171
- facebook:b(64,64,"0 0 100 100","23,85","M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z"),twitter:b(64,64,"0 0 100 100","9,80","M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z"),
172
- google:b(64,64,"0 0 125 125","5,95","M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z"),linkedin:b(64,64,"0 0 105 105","14,83","M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z"),
173
- tumblr:b(64,64,"0 0 100 100","22,85","M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z"),instagram:b(64,64,"0 0 105 105","14,84.5","M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z"),
174
- soundcloud:a(64,64,"#fff","M26.791,154.715c-0.067,0.478-0.411,0.81-0.833,0.81c-0.436,0-0.781-0.334-0.837-0.814l-1.527-11.399 l1.527-11.598c0.056-0.482,0.401-0.817,0.837-0.817c0.42,0,0.768,0.335,0.833,0.814l1.811,11.601L26.791,154.715z M39.128,161.653 c-0.071,0.496-0.429,0.843-0.866,0.843c-0.445,0-0.812-0.355-0.869-0.848l-2.053-18.338c0,0,2.053-18.749,2.053-18.754 c0.061-0.488,0.428-0.842,0.869-0.842c0.44,0,0.797,0.343,0.87,0.842l2.333,18.754L39.128,161.653z M51.378,165.435 c-0.057,0.687-0.584,1.202-1.225,1.202c-0.646,0-1.177-0.516-1.227-1.202l-1.841-22.117l1.841-22.859 c0.052-0.69,0.579-1.207,1.227-1.207c0.64,0,1.168,0.517,1.225,1.201l2.093,22.865L51.378,165.435z M63.373,165.619 c-0.054,0.785-0.657,1.379-1.4,1.379c-0.754,0-1.354-0.594-1.404-1.383l-1.735-22.299l1.735-21.206 c0.048-0.788,0.649-1.384,1.404-1.384c0.746,0,1.349,0.591,1.4,1.374l1.973,21.216L63.373,165.619z M75.374,165.626v-0.007 c-0.05,0.872-0.743,1.562-1.582,1.562c-0.842,0-1.536-0.687-1.579-1.558l-1.636-22.298l1.636-34.501 c0.041-0.876,0.736-1.566,1.579-1.566c0.838,0,1.532,0.69,1.582,1.566l1.848,34.501L75.374,165.626z M87.372,165.482 c-0.044,0.977-0.819,1.743-1.758,1.743c-0.947,0-1.719-0.767-1.757-1.734l-1.529-22.158c0,0,1.526-42.393,1.526-42.396 c0.042-0.976,0.814-1.741,1.761-1.741c0.939,0,1.712,0.764,1.758,1.741l1.726,42.396L87.372,165.482z M99.617,165.123v0.003 c-0.038,1.174-0.964,2.097-2.114,2.097c-1.151,0-2.08-0.923-2.112-2.091l-1.318-21.794l1.315-47.481 c0.031-1.181,0.962-2.104,2.115-2.104c1.148,0,2.079,0.926,2.114,2.104l1.481,47.482L99.617,165.123z M111.869,164.799v-0.017 c-0.032,1.384-1.114,2.462-2.471,2.462c-1.361,0-2.448-1.082-2.475-2.446l-1.104-21.45l1.104-44.58 c0.027-1.383,1.116-2.463,2.475-2.463c1.356,0,2.438,1.081,2.471,2.459l1.239,44.585L111.869,164.799z M124.383,164.359v-0.025 c-0.022,1.558-1.289,2.822-2.827,2.822c-1.542,0-2.809-1.265-2.829-2.799l-1.161-21l1.159-57.859 c0.023-1.557,1.29-2.822,2.832-2.822c1.539,0,2.806,1.266,2.827,2.817l1.26,57.864L124.383,164.359z M206.723,167.344 c-0.458,0-71.129-0.035-71.194-0.044c-1.534-0.154-2.753-1.464-2.773-3.035V82.747c0.019-1.498,0.535-2.271,2.474-3.021 c4.986-1.928,10.635-3.069,16.43-3.069c23.678,0,43.09,18.16,45.133,41.306c3.057-1.282,6.415-1.994,9.936-1.994 c14.183,0,25.681,11.502,25.681,25.688C232.406,155.845,220.906,167.344,206.723,167.344z",
175
- "0 0 256 256"),vkontakte:b(64,64,"0 0 110 110","7,82","M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z"),
176
- odnoklassniki:b(64,64,"0 0 105 105","20,84","M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z"),
177
- mailru:'<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="114" height="114" viewBox="0 0 114 114"><path fill="#fff" d="M41.93,30.296c-3.896,0-7.066,3.169-7.066,7.065s3.17,7.067,7.066,7.067s7.064-3.171,7.064-7.067 S45.825,30.296,41.93,30.296z"></path><path fill="#fff" d="M72.223,30.296c-3.896,0-7.065,3.169-7.065,7.065s3.17,7.067,7.065,7.067s7.064-3.171,7.064-7.067 S76.117,30.296,72.223,30.296z"></path><path fill="#fff" d="M96.324,77.49c0.299-1.112,0.146-2.273-0.428-3.271l-8.785-15.268c-0.769-1.332-2.199-2.16-3.738-2.16 c-0.75,0-1.492,0.199-2.146,0.576c-0.998,0.574-1.711,1.502-2.012,2.613c-0.299,1.111-0.146,2.272,0.428,3.271l0.703,1.226 l-0.342,0.494c-4.232,6.111-13.26,10.061-22.994,10.061c-9.67,0-18.668-3.911-22.926-9.965l-0.352-0.5l0.754-1.289 c1.199-2.049,0.507-4.694-1.543-5.896c-0.66-0.385-1.41-0.589-2.17-0.589c-1.528,0-2.955,0.816-3.725,2.133l-8.935,15.27 c-1.199,2.05-0.507,4.695,1.543,5.895c0.659,0.387,1.411,0.59,2.172,0.59c1.527,0,2.954-0.815,3.724-2.132l3.496-5.974l0.871,0.876 c6.447,6.481,16.32,10.2,27.09,10.2c10.778,0,20.658-3.725,27.104-10.215l0.879-0.885l3.436,5.969 c0.768,1.332,2.2,2.159,3.739,2.159c0.751,0,1.492-0.198,2.144-0.573C95.311,79.529,96.023,78.602,96.324,77.49z"></path></svg>',
178
- icon:function(b,e,f){return a(e,e,f||"#666",c[b])}}}();var WPacTime=WPacTime||{getTime:function(a,b,c){return"chat"==c?this.getChatTime(a,b||"en"):c?this.getFormatTime(a,c,b||"en"):this.getDefaultTime(a,b||"en")},getChatTime:function(a,b){var c=((new Date).getTime()-a)/1E3/60/60,d=c/24;return 24>c?this.getFormatTime(a,"HH:mm",b):365>d?this.getFormatTime(a,"dd.MM HH:mm",b):this.getFormatTime(a,"yyyy.MM.dd HH:mm",b)},getDefaultTime:function(a,b){return this.getTimeAgo(a,b)},getTimeAgo:function(a,b){var c=((new Date).getTime()-a)/1E3,d=c/60,e=d/60,f=e/24,
179
- g=f/365;b=WPacTime.Messages[b]?b:"en";return 45>c?WPacTime.Messages[b].second:90>c?WPacTime.Messages[b].minute:45>d?WPacTime.Messages[b].minutes(d):90>d?WPacTime.Messages[b].hour:24>e?WPacTime.Messages[b].hours(e):48>e?WPacTime.Messages[b].day:30>f?WPacTime.Messages[b].days(f):60>f?WPacTime.Messages[b].month:365>f?WPacTime.Messages[b].months(f):2>g?WPacTime.Messages[b].year:WPacTime.Messages[b].years(g)},getTime12:function(a,b){var c=new Date(a);return(c.getHours()%12?c.getHours()%12:12)+":"+c.getMinutes()+
180
- (12<=c.getHours()?" PM":" AM")},getFormatTime:function(a,b,c){var d=new Date(a),e={SS:d.getMilliseconds(),ss:d.getSeconds(),mm:d.getMinutes(),HH:d.getHours(),hh:(d.getHours()%12?d.getHours()%12:12)+(12<=d.getHours()?"PM":"AM"),dd:d.getDate(),MM:d.getMonth()+1,yyyy:d.getFullYear(),yy:String(d.getFullYear()).toString().substr(2,2),ago:this.getTimeAgo(a,c),12:this.getTime12(a,c)};return b.replace(/(SS|ss|mm|HH|hh|DD|dd|MM|yyyy|yy|ago|12)/g,function(a,b){var c=e[b];return 10>c?"0"+c:c})},declineNum:function(a,
181
- b,c,d){return a+" "+this.declineMsg(a,b,c,d)},declineMsg:function(a,b,c,d,e){var f=a%10;return 1==f&&(1==a||20<a)?b:1<f&&5>f&&(20<a||10>a)?c:a?d:e}};
182
- WPacTime.Messages={ru:{second:"\u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e",minute:"\u043c\u0438\u043d\u0443\u0442\u0443 \u043d\u0430\u0437\u0430\u0434",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442\u044b \u043d\u0430\u0437\u0430\u0434","\u043c\u0438\u043d\u0443\u0442 \u043d\u0430\u0437\u0430\u0434")},hour:"\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434",hours:function(a){return WPacTime.declineNum(Math.round(a),
183
- "\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u0430 \u043d\u0430\u0437\u0430\u0434","\u0447\u0430\u0441\u043e\u0432 \u043d\u0430\u0437\u0430\u0434")},day:"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u044f \u043d\u0430\u0437\u0430\u0434","\u0434\u043d\u0435\u0439 \u043d\u0430\u0437\u0430\u0434")},month:"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434",
184
- months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0430 \u043d\u0430\u0437\u0430\u0434","\u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434")},year:"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434",years:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434","\u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434",
185
- "\u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434")}},en:{second:"just now",minute:"1m ago",minutes:function(a){return Math.round(a)+"m ago"},hour:"1h ago",hours:function(a){return Math.round(a)+"h ago"},day:"day ago",days:function(a){return Math.round(a)+" days ago"},month:"month ago",months:function(a){return Math.round(a/30)+" months ago"},year:"year ago",years:function(a){return Math.round(a)+" years ago"}},uk:{second:"\u0442\u0456\u043b\u044c\u043a\u0438 \u0449\u043e",minute:"\u0445\u0432\u0438\u043b\u0438\u043d\u0443 \u0442\u043e\u043c\u0443",
186
- minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u0445\u0432\u0438\u043b\u0438\u043d\u0443 \u0442\u043e\u043c\u0443","\u0445\u0432\u0438\u043b\u0438\u043d\u0438 \u0442\u043e\u043c\u0443","\u0445\u0432\u0438\u043b\u0438\u043d \u0442\u043e\u043c\u0443")},hour:"\u0433\u043e\u0434\u0438\u043d\u0443 \u0442\u043e\u043c\u0443",hours:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u043e\u0434\u0438\u043d\u0443 \u0442\u043e\u043c\u0443","\u0433\u043e\u0434\u0438\u043d\u0438 \u0442\u043e\u043c\u0443",
187
- "\u0433\u043e\u0434\u0438\u043d \u0442\u043e\u043c\u0443")},day:"\u0434\u0435\u043d\u044c \u0442\u043e\u043c\u0443",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0434\u0435\u043d\u044c \u0442\u043e\u043c\u0443","\u0434\u043d\u0456 \u0442\u043e\u043c\u0443","\u0434\u043d\u0456\u0432 \u0442\u043e\u043c\u0443")},month:"\u043c\u0456\u0441\u044f\u0446\u044c \u0442\u043e\u043c\u0443",months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u043c\u0456\u0441\u044f\u0446\u044c \u0442\u043e\u043c\u0443",
188
- "\u043c\u0456\u0441\u044f\u0446\u0456 \u0442\u043e\u043c\u0443","\u043c\u0456\u0441\u044f\u0446\u0456\u0432 \u0442\u043e\u043c\u0443")},year:"\u0440\u0456\u043a \u0442\u043e\u043c\u0443",years:function(a){return WPacTime.declineNum(Math.round(a),"\u0440\u0456\u043a \u0442\u043e\u043c\u0443","\u0440\u043e\u043a\u0438 \u0442\u043e\u043c\u0443","\u0440\u043e\u043a\u0456\u0432 \u0442\u043e\u043c\u0443")}},ro:{second:"chiar acum",minute:"\u00een urm\u0103 minut",minutes:function(a){return WPacTime.declineNum(Math.round(a),
189
- "o minuta in urma","minute in urma","de minute in urma")},hour:"acum o ora",hours:function(a){return WPacTime.declineNum(Math.round(a),"acum o ora","ore in urma","de ore in urma")},day:"o zi in urma",days:function(a){return WPacTime.declineNum(Math.round(a),"o zi in urma","zile in urma","de zile in urma")},month:"o luna in urma",months:function(a){return WPacTime.declineNum(Math.round(a/30),"o luna in urma","luni in urma","de luni in urma")},year:"un an in urma",years:function(a){return WPacTime.declineNum(Math.round(a),
190
- "un an in urma","ani in urma","de ani in urma")}},lv:{second:"Maz\u0101k par min\u016bti",minute:"Pirms min\u016btes",minutes:function(a){return WPacTime.declineNum(Math.round(a),"pirms min\u016btes","pirms min\u016bt\u0113m","pirms min\u016bt\u0113m")},hour:"pirms stundas",hours:function(a){return WPacTime.declineNum(Math.round(a),"pirms stundas","pirms stund\u0101m","pirms stund\u0101m")},day:"pirms dienas",days:function(a){return WPacTime.declineNum(Math.round(a),"pirms dienas","pirms dien\u0101m",
191
- "pirms dien\u0101m")},month:"pirms m\u0113ne\u0161a",months:function(a){return WPacTime.declineNum(Math.round(a/30),"pirms m\u0113ne\u0161a","pirms m\u0113ne\u0161iem","pirms m\u0113ne\u0161iem")},year:"pirms gada",years:function(a){return WPacTime.declineNum(Math.round(a),"pirms gada","pirms gadiem","pirms gadiem")}},lt:{second:"k\u0105 tik",minute:"prie\u0161 minut\u0119",minutes:function(a){return WPacTime.declineNum(Math.round(a),"minut\u0117 prie\u0161","minut\u0117s prie\u0161","minu\u010di\u0173 prie\u0161")},
192
- hour:"prie\u0161 valand\u0105",hours:function(a){return WPacTime.declineNum(Math.round(a),"valanda prie\u0161","valandos prie\u0161","valand\u0173 prie\u0161")},day:"prie\u0161 dien\u0105",days:function(a){return WPacTime.declineNum(Math.round(a),"diena prie\u0161","dienos prie\u0161","dien\u0173 prie\u0161")},month:"prie\u0161 m\u0117nes\u012f",months:function(a){return WPacTime.declineNum(Math.round(a/30),"m\u0117nes\u012f prie\u0161","m\u0117nesiai prie\u0161","m\u0117nesi\u0173 prie\u0161")},
193
- year:"prie\u0161 metus",years:function(a){return WPacTime.declineNum(Math.round(a),"metai prie\u0161","metai prie\u0161","met\u0173 prie\u0161")}},kk:{second:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442\u0442\u0430\u043d \u0430\u0437 \u0443\u0430\u049b\u044b\u0442 \u0431\u04b1\u0440\u044b\u043d",minute:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d",
194
- "\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d","\u043c\u0438\u043d\u0443\u0442 \u0431\u04b1\u0440\u044b\u043d")},hour:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d",hours:function(a){return WPacTime.declineNum(Math.round(a),"\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d","\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d","\u0441\u0430\u0493\u0430\u0442 \u0431\u04b1\u0440\u044b\u043d")},day:"\u0431\u0456\u0440 \u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d",
195
- days:function(a){return WPacTime.declineNum(Math.round(a),"\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d","\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d","\u043a\u04af\u043d \u0431\u04b1\u0440\u044b\u043d")},month:"\u0431\u0456\u0440 \u0430\u0439 \u0431\u04b1\u0440\u044b\u043d",months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d","\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d","\u0430\u0439 \u0431\u04b1\u0440\u044b\u043d")},year:"\u0431\u0456\u0440 \u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d",
196
- years:function(a){return WPacTime.declineNum(Math.round(a),"\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d","\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d","\u0436\u044b\u043b \u0431\u04b1\u0440\u044b\u043d")}},ka:{second:"\u10ec\u10d0\u10db\u10d8\u10e1 \u10ec\u10d8\u10dc",minute:"\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",
197
- "\u10ec\u10e3\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc")},hour:"\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc",hours:function(a){return WPacTime.declineNum(Math.round(a),"\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10e1\u10d0\u10d0\u10d7\u10d8\u10e1 \u10ec\u10d8\u10dc")},day:"\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc",days:function(a){return WPacTime.declineNum(Math.round(a),"\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc",
198
- "\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d3\u10e6\u10d8\u10e1 \u10ec\u10d8\u10dc")},month:"\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc",months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10d7\u10d5\u10d8\u10e1 \u10ec\u10d8\u10dc")},year:"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc",years:function(a){return WPacTime.declineNum(Math.round(a),"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc",
199
- "\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc","\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc")}},hy:{second:"\u0574\u056b \u0584\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576 \u0561\u057c\u0561\u057b",minute:"\u0574\u0565\u056f \u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b","\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b","\u0580\u0578\u057a\u0565 \u0561\u057c\u0561\u057b")},
200
- hour:"\u0574\u0565\u056f \u056a\u0561\u0574 \u0561\u057c\u0561\u057b",hours:function(a){return WPacTime.declineNum(Math.round(a),"\u056a\u0561\u0574 \u0561\u057c\u0561\u057b","\u056a\u0561\u0574 \u0561\u057c\u0561\u057b","\u056a\u0561\u0574 \u0561\u057c\u0561\u057b")},day:"\u0574\u0565\u056f \u0585\u0580 \u0561\u057c\u0561\u057b",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0585\u0580 \u0561\u057c\u0561\u057b","\u0585\u0580 \u0561\u057c\u0561\u057b","\u0585\u0580 \u0561\u057c\u0561\u057b")},
201
- month:"\u0574\u0565\u056f \u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b",months:function(a){return WPacTime.declineNum(Math.round(a/30),"\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b","\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b","\u0561\u0574\u056b\u057d \u0561\u057c\u0561\u057b")},year:"\u0574\u0565\u056f \u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b",years:function(a){return WPacTime.declineNum(Math.round(a),"\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b","\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b",
202
- "\u057f\u0561\u0580\u056b \u0561\u057c\u0561\u057b")}},fr:{second:"tout \u00e0 l'heure",minute:"environ une minute",minutes:function(a){return Math.round(a)+" minutes"},hour:"environ une heure",hours:function(a){return"environ "+Math.round(a)+" heures"},day:"un jour",days:function(a){return Math.round(a)+" jours"},month:"environ un mois",months:function(a){return Math.round(a/30)+" mois"},year:"environ un an",years:function(a){return Math.round(a)+" ans"}},es:{second:"en este momento",minute:"hace un minuto",
203
- minutes:function(a){return WPacTime.declineNum(Math.round(a),"hace un minuto","minutos atr\u00e1s","minutos atr\u00e1s")},hour:"una hora atr\u00e1s",hours:function(a){return WPacTime.declineNum(Math.round(a),"una hora atr\u00e1s","horas atr\u00e1s","horas atr\u00e1s")},day:"hace un d\u00eda",days:function(a){return WPacTime.declineNum(Math.round(a),"un d\u00eda atr\u00e1s","d\u00edas atr\u00e1s","d\u00edas atr\u00e1s")},month:"Hace un mes",months:function(a){return WPacTime.declineNum(Math.round(a/
204
- 30),"un mes atr\u00e1s","meses atr\u00e1s","meses atr\u00e1s")},year:"Hace un a\u00f1o",years:function(a){return WPacTime.declineNum(Math.round(a),"hace un a\u00f1o","a\u00f1os atr\u00e1s","a\u00f1os atr\u00e1s")}},el:{second:"\u03bb\u03b9\u03b3\u03cc\u03c4\u03b5\u03c1\u03bf \u03b1\u03c0\u03cc \u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",minute:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf \u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",minutes:function(a){return Math.round(a)+" minutes"},
205
- hour:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03b7\u03bd \u03bc\u03b9\u03b1 \u03ce\u03c1\u03b1",hours:function(a){return"about "+Math.round(a)+" hours"},day:"\u03bc\u03b9\u03b1 \u03bc\u03ad\u03c1\u03b1",days:function(a){return Math.round(a)+" days"},month:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03bc\u03ae\u03bd\u03b1",months:function(a){return Math.round(a/30)+" months"},year:"\u03b3\u03cd\u03c1\u03c9 \u03c3\u03c4\u03bf\u03bd \u03ad\u03bd\u03b1 \u03c7\u03c1\u03cc\u03bd\u03bf",
206
- years:function(a){return Math.round(a)+" years"}},de:{second:"soeben",minute:"vor einer Minute",minutes:function(a){return"vor "+Math.round(a)+" Minuten"},hour:"vor einer Stunde",hours:function(a){return"vor "+Math.round(a)+" Stunden"},day:"vor einem Tag",days:function(a){return"vor "+Math.round(a)+" Tagen"},month:"vor einem Monat",months:function(a){return"vor "+Math.round(a/30)+" Monaten"},year:"vor einem Jahr",years:function(a){return"vor "+Math.round(a)+" Jahren"}},be:{second:"\u043c\u0435\u043d\u0448 \u0437\u0430 \u0445\u0432\u0456\u043b\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",
207
- minute:"\u0445\u0432\u0456\u043b\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",minutes:function(a){return WPacTime.declineNum(Math.round(a),"\u0445\u0432\u0456\u043b\u0456\u043d\u0430 \u0442\u0430\u043c\u0443","\u0445\u0432\u0456\u043b\u0456\u043d\u044b \u0442\u0430\u043c\u0443","\u0445\u0432\u0456\u043b\u0456\u043d \u0442\u0430\u043c\u0443")},hour:"\u0433\u0430\u0434\u0437\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",hours:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u0430\u0434\u0437\u0456\u043d\u0443 \u0442\u0430\u043c\u0443",
208
- "\u0433\u0430\u0434\u0437\u0456\u043d\u044b \u0442\u0430\u043c\u0443","\u0433\u0430\u0434\u0437\u0456\u043d \u0442\u0430\u043c\u0443")},day:"\u0434\u0437\u0435\u043d\u044c \u0442\u0430\u043c\u0443",days:function(a){return WPacTime.declineNum(Math.round(a),"\u0434\u0437\u0435\u043d\u044c \u0442\u0430\u043c\u0443","\u0434\u043d\u0456 \u0442\u0430\u043c\u0443","\u0434\u0437\u0451\u043d \u0442\u0430\u043c\u0443")},month:"\u043c\u0435\u0441\u044f\u0446 \u0442\u0430\u043c\u0443",months:function(a){return WPacTime.declineNum(Math.round(a/
209
- 30),"\u043c\u0435\u0441\u044f\u0446 \u0442\u0430\u043c\u0443","\u043c\u0435\u0441\u044f\u0446\u0430 \u0442\u0430\u043c\u0443","\u043c\u0435\u0441\u044f\u0446\u0430\u045e \u0442\u0430\u043c\u0443")},year:"\u0433\u043e\u0434 \u0442\u0430\u043c\u0443",years:function(a){return WPacTime.declineNum(Math.round(a),"\u0433\u043e\u0434 \u0442\u0430\u043c\u0443","\u0433\u0430\u0434\u044b \u0442\u0430\u043c\u0443","\u0433\u043e\u0434 \u0442\u0430\u043c\u0443")}},it:{second:"proprio ora",minute:"un minuto fa",
210
- minutes:function(a){return WPacTime.declineNum(Math.round(a),"un minuto fa","minuti fa","minuti fa")},hour:"un'ora fa",hours:function(a){return WPacTime.declineNum(Math.round(a),"un'ora fa","ore fa","ore fa")},day:"un giorno fa",days:function(a){return WPacTime.declineNum(Math.round(a),"un giorno fa","giorni fa","giorni fa")},month:"un mese fa",months:function(a){return WPacTime.declineNum(Math.round(a/30),"un mese fa","mesi fa","mesi fa")},year:"un anno fa",years:function(a){return WPacTime.declineNum(Math.round(a),
211
- "un anno fa","anni fa","anni fa")}}};var WPacStars=WPacStars||{html:'<span class="wp-stars">{{~it.stars :c}}{{?it.rating >= c}}<span class="wp-star" data-origin="star" data-color="{{=it.color}}" data-star="{{=c}}" style="display:inline-block;vertical-align:middle;padding:0 4px 0 0;line-height:20px;cursor:pointer;">{{=it.svg.icon("star", it.size || 24, it.color)}}</span>{{??}}{{?c - it.rating < 1}}<span class="wp-star" data-origin="star_half" data-color="{{=it.color}}" data-star="{{=c}}" style="display:inline-block;vertical-align:middle;padding:0 4px 0 0;line-height:20px;cursor:pointer;">{{=it.svg.icon("star_half", it.size || 24, it.color)}}</span>{{??}}<span class="wp-star" data-origin="star_o" data-color="#ccc" data-star="{{=c}}" style="display:inline-block;vertical-align:middle;padding:0 4px 0 0;line-height:20px;cursor:pointer;">{{=it.svg.icon("star_o", it.size || 24, "#ccc")}}</span>{{?}}{{?}}{{~}}</span>',
212
- main:function(a){var b=this,c=(a.cnt||document).querySelector(a.el);c.innerHTML=this.stars_render(a.size,a.color,a.stars,a.sum,a.count);if(!a.readonly){var c=c.querySelector(".wp-stars"),d=c.querySelectorAll(".wp-star");WPacFastjs.on(c,"mouseleave",function(a){WPacFastjs.each(d,function(a){var b=a.querySelector("path");a.setAttribute("data-hover","");b.setAttribute("d",WPacSVGIcon.path[a.getAttribute("data-origin")]);b.setAttribute("fill",a.getAttribute("data-color"))})});WPacFastjs.onall(d,"mouseout",
213
- function(){b.prevHover(a,this);b.nextHover(a,this)});WPacFastjs.onall(d,"click",function(){var c=parseInt(this.getAttribute("data-star"));a.clickable&&(this.parentNode.setAttribute("data-star",c),WPacFastjs.each(d,function(d){d.getAttribute("data-star")<=c?(d.setAttribute("data-origin","star"),d.setAttribute("data-color",b.color(a.color))):(d.setAttribute("data-origin","star_o"),d.setAttribute("data-color","#ccc"))}));a.cb&&a.cb(c)})}},stars_render:function(a,b,c,d,e){return this.render("html",{size:a,
214
- color:this.color(b),stars:this.stars(c||5),rating:this.rating(d,e)})},rating_render:function(a,b,c,d){return this.render("html",{size:b,color:this.color(c),stars:this.stars(d||5),rating:a})},color:function(a){return a?a.match(/^#[0-9a-zA-Z]+$/)?a:"#"+a:"#ff9800"},render:function(a,b){b.svg=WPacSVGIcon;return doT.template(this[a]||a)(b)},stars:function(a){for(var b=[],c=1;c<=a;c++)b.push(c);return b},rating:function(a,b){b=b||0;return 0<b?((a||0)/b).toFixed(1):0},prevHover:function(a,b){if(b){var c=
215
- b.getAttribute("data-hover");c&&"off"!=c||(c=b.querySelector("path"),c.setAttribute("d",WPacSVGIcon.path.star),c.setAttribute("fill",this.color(a.color)),b.setAttribute("data-hover","on"));this.prevHover(a,WPacFastjs.prev(b))}},nextHover:function(a,b){var c=WPacFastjs.next(b);if(c){var d=c.getAttribute("data-hover");d&&"on"!=d||(d=c.querySelector("path"),d.setAttribute("d",WPacSVGIcon.path.star_o),d.setAttribute("fill","#ccc"),c.setAttribute("data-hover","off"));this.nextHover(a,c)}}};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/{css/admin.css → src/css/admin-main.css} RENAMED
@@ -275,6 +275,18 @@
275
  word-wrap: break-word;
276
  }
277
 
 
 
 
 
 
 
 
 
 
 
 
 
278
  /*-------------------------------- Support page --------------------------------*/
279
  .grw-support-question {
280
  padding-bottom: 10px;
@@ -466,4 +478,225 @@
466
  .grw-alert .alert-link {
467
  color: #fff;
468
  font-weight: bold;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
469
  }
275
  word-wrap: break-word;
276
  }
277
 
278
+ .grw-warn {
279
+ padding: 10px;
280
+ margin: 20px 0 10px;
281
+ font-size: 15px;
282
+ line-height: 26px;
283
+ font-weight: 600;
284
+ color: #000;
285
+ border: 1px solid #ccc;
286
+ border-radius: 3px;
287
+ background-color: #ffeb3b;
288
+ }
289
+
290
  /*-------------------------------- Support page --------------------------------*/
291
  .grw-support-question {
292
  padding-bottom: 10px;
478
  .grw-alert .alert-link {
479
  color: #fff;
480
  font-weight: bold;
481
+ }
482
+
483
+ /*-------------------------------- Widgets Builder --------------------------------*/
484
+ .grw-builder-platforms {
485
+ position: relative;
486
+ box-sizing: border-box;
487
+ }
488
+
489
+ /*.grw-platform-google .grw-builder-top {
490
+ color: #e7711b;
491
+ }
492
+
493
+ .grw-platform-facebook .grw-builder-top {
494
+ color: #3c5b9b;
495
+ }
496
+
497
+ .grw-platform-yelp .grw-builder-top {
498
+ color: #d32323;
499
+ }*/
500
+
501
+ .grw-builder-top {
502
+ padding: 10px;
503
+ color: #23282d;
504
+ font-size: 13px;
505
+ font-weight: 600;
506
+ line-height: 1.4em;
507
+ cursor: pointer;
508
+ border: 1px solid #e5e5e5;
509
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
510
+ background: #fafafa url('../img/button-down-black.svg') no-repeat right;
511
+ }
512
+
513
+ .grw-builder-top:hover {
514
+ border-color: #999;
515
+ box-shadow: 0 1px 2px rgba(0,0,0,.1);
516
+ }
517
+
518
+ .grw-builder-inside {
519
+ border-top: none;
520
+ padding: 10px 10px 0;
521
+ line-height: 16px;
522
+ background: #fff;
523
+ border: 1px solid #e5e5e5;
524
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
525
+ }
526
+
527
+ .grw-builder-inside .grw-builder-option {
528
+ margin: 10px 0 0;
529
+ position: relative;
530
+ }
531
+
532
+ .grw-builder-inside .grw-builder-option:first-child {
533
+ margin-top: 0;
534
+ }
535
+
536
+ .grw-builder-inside .grw-builder-option:last-child {
537
+ margin-bottom: 10px;
538
+ }
539
+
540
+ .grw-builder-inside input[type="text"],
541
+ .grw-builder-inside select,
542
+ .grw-builder-inside button,
543
+ .grw-builder-inside textarea {
544
+ width: 100%;
545
+ clear: both;
546
+ border-spacing: 0;
547
+ }
548
+
549
+ .grw-builder-inside pre {
550
+ margin: 0;
551
+ color: #b73434;
552
+ font-size: 10px;
553
+ line-height: 16px;
554
+ padding: 4px;
555
+ background: #fff;
556
+ overflow: auto;
557
+ }
558
+
559
+ .grw-builder-connect {
560
+ margin: 0 0 10px;
561
+ padding: 6px;
562
+ color: #fff;
563
+ border: none;
564
+ cursor: pointer;
565
+ text-align: center;
566
+ background: #eee;
567
+ }
568
+
569
+ .grw-builder-connect.grw-connect-google {
570
+ font-weight: 600;
571
+ font-size: 12px;
572
+ text-transform: uppercase;
573
+ background: #fa8e08;
574
+ }
575
+
576
+ .grw-connect-google-inside {
577
+ padding: 0 1px;
578
+ }
579
+
580
+ .grw-builder-connect.grw-connect-facebook {
581
+ background: #3c5b9b;
582
+ }
583
+
584
+ .grw-builder-connect.grw-connect-tripadvisor {
585
+ background: #3eca77;
586
+ }
587
+
588
+ .grw-builder-connect.grw-connect-yelp {
589
+ margin-bottom: 0;
590
+ background: #d32323;
591
+ }
592
+
593
+ .grw-builder-connect.grw-connect-google + div,
594
+ .grw-builder-connect.grw-connect-yelp + div {
595
+ margin-top: 10px;
596
+ }
597
+
598
+ .grw-connections {
599
+ padding-bottom: 10px;
600
+ }
601
+
602
+ .grw-connection {
603
+ cursor: move;
604
+ }
605
+
606
+ .grw-connect-business {
607
+ color: #333;
608
+ text-align: left;
609
+ margin: 10px 0 0;
610
+ border: 1px solid #ccc;
611
+ background: #fafafa url(../img/button-down-black.svg) no-repeat right;
612
+ }
613
+
614
+ .grw-connect-business + div {
615
+ padding: 4px;
616
+ border: 1px solid rgb(204, 204, 204);
617
+ border-top: 0;
618
+ }
619
+
620
+ .grw-connect-select {
621
+ display: none!important;
622
+ }
623
+
624
+ .grw-platform-multiple .grw-connect-select {
625
+ display: inline-block!important;
626
+ }
627
+
628
+ .grw-connect-photo {
629
+ width: 24px;
630
+ height: 24px;
631
+ margin-right: 10px;
632
+ border-radius: 50%;
633
+ border: 1px solid #ccc;
634
+ vertical-align: middle;
635
+ }
636
+
637
+ .grw-connect-photo-change {
638
+ margin-right: 10px
639
+ }
640
+
641
+ .grw-connect-error {
642
+ color: #e60909;
643
+ font-size: 13px;
644
+ }
645
+
646
+ .grw-connection-checkbox {
647
+ display: none;
648
+ margin: 10px 0 0 6px;
649
+ }
650
+
651
+ .grw-platform-multiple .grw-connection-checkbox {
652
+ display: block;
653
+ }
654
+
655
+ .grw-quest {
656
+ position: absolute;
657
+ top: 6px;
658
+ right: 3px;
659
+ width: 16px;
660
+ cursor: pointer;
661
+ font-size: 12px;
662
+ font-weight: bold;
663
+ text-align: center;
664
+ border: 1px solid #ccc;
665
+ border-radius: 50px;
666
+ background: #eee;
667
+ }
668
+
669
+ .grw-quest.grw-quest-top {
670
+ top: 0;
671
+ }
672
+
673
+ .grw-quest.grw-quest-top22 {
674
+ top: 22px;
675
+ }
676
+
677
+ .grw-quest:hover {
678
+ border: 1px solid #999;
679
+ }
680
+
681
+ .grw-quest-help {
682
+ display: none;
683
+ margin: 0 0 10px 0;
684
+ padding: 4px;
685
+ font-size: 13px;
686
+ line-height: 18px;
687
+ background: #eee;
688
+ }
689
+
690
+ .grw-well {
691
+ padding: 10px;
692
+ margin: 10px 0px;
693
+ border-radius: 3px;
694
+ border: 1px solid #d9d9d9;
695
+ background: #f1f1f1;
696
+ }
697
+
698
+ #rating_temp {
699
+ height: 260px;
700
+ font-size: 12px;
701
+ word-break: break-all;
702
  }
assets/src/css/public-clean.css ADDED
@@ -0,0 +1,287 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpac,
2
+ .wpac h1,
3
+ .wpac h2,
4
+ .wpac h3,
5
+ .wpac h4,
6
+ .wpac h5,
7
+ .wpac h6,
8
+ .wpac p,
9
+ .wpac td,
10
+ .wpac dl,
11
+ .wpac tr,
12
+ .wpac dt,
13
+ .wpac ol,
14
+ .wpac form,
15
+ .wpac select,
16
+ .wpac option,
17
+ .wpac pre,
18
+ .wpac div,
19
+ .wpac table,
20
+ .wpac th,
21
+ .wpac tbody,
22
+ .wpac tfoot,
23
+ .wpac caption,
24
+ .wpac thead,
25
+ .wpac ul,
26
+ .wpac li,
27
+ .wpac address,
28
+ .wpac blockquote,
29
+ .wpac dd,
30
+ .wpac fieldset,
31
+ .wpac li,
32
+ .wpac strong,
33
+ .wpac legend,
34
+ .wpac em,
35
+ .wpac s,
36
+ .wpac cite,
37
+ .wpac span,
38
+ .wpac input,
39
+ .wpac sup,
40
+ .wpac label,
41
+ .wpac dfn,
42
+ .wpac object,
43
+ .wpac big,
44
+ .wpac q,
45
+ .wpac font,
46
+ .wpac samp,
47
+ .wpac acronym,
48
+ .wpac small,
49
+ .wpac img,
50
+ .wpac strike,
51
+ .wpac code,
52
+ .wpac sub,
53
+ .wpac ins,
54
+ .wpac textarea,
55
+ .wpac var,
56
+ .wpac a,
57
+ .wpac abbr,
58
+ .wpac applet,
59
+ .wpac del,
60
+ .wpac kbd,
61
+ .wpac tt,
62
+ .wpac b,
63
+ .wpac i,
64
+ .wpac hr {
65
+ background-attachment: scroll!important;
66
+ background-color: transparent!important;
67
+ background-image: none!important;
68
+ background-position: 0 0!important;
69
+ background-repeat: repeat!important;
70
+ border-color: black!important;
71
+ border-color: currentColor!important;
72
+ border-radius: 0!important;
73
+ border-style: none!important;
74
+ border-width: medium!important;
75
+ bottom: auto!important;
76
+ clear: none!important;
77
+ clip: auto!important;
78
+ color: inherit!important;
79
+ counter-increment: none!important;
80
+ counter-reset: none!important;
81
+ cursor: auto!important;
82
+ direction: inherit!important;
83
+ display: inline;
84
+ float: none!important;
85
+ font-family: inherit!important;
86
+ font-size: inherit!important;
87
+ font-style: inherit!important;
88
+ font-variant: normal!important;
89
+ font-weight: inherit!important;
90
+ height: auto;
91
+ left: auto!important;
92
+ letter-spacing: normal!important;
93
+ line-height: inherit!important;
94
+ list-style-type: inherit!important;
95
+ list-style-position: outside!important;
96
+ list-style-image: none!important;
97
+ margin: 0!important;
98
+ max-height: none!important;
99
+ max-width: none!important;
100
+ min-height: 0!important;
101
+ min-width: 0!important;
102
+ opacity: 1;
103
+ outline: invert none medium!important;
104
+ overflow: visible!important;
105
+ padding: 0!important;
106
+ position: static!important;
107
+ quotes: "" ""!important;
108
+ right: auto!important;
109
+ table-layout: auto!important;
110
+ text-align: inherit!important;
111
+ text-decoration: inherit!important;
112
+ text-indent: 0!important;
113
+ text-transform: none!important;
114
+ top: auto!important;
115
+ unicode-bidi: normal!important;
116
+ vertical-align: baseline!important;
117
+ visibility: inherit!important;
118
+ white-space: normal!important;
119
+ width: auto!important;
120
+ word-spacing: normal!important;
121
+ z-index: auto!important;
122
+ -moz-border-radius: 0!important;
123
+ -webkit-border-radius: 0!important;
124
+ -moz-box-sizing: border-box!important;
125
+ -webkit-box-sizing: border-box!important;
126
+ box-sizing: border-box!important;
127
+ text-shadow: none!important;
128
+ -webkit-transition: none!important;
129
+ transition: none!important;
130
+ -webkit-box-shadow: none!important;
131
+ box-shadow: none!important
132
+ }
133
+
134
+ .wpac,
135
+ .wpac h3,
136
+ .wpac h5,
137
+ .wpac p,
138
+ .wpac h1,
139
+ .wpac dl,
140
+ .wpac dt,
141
+ .wpac h6,
142
+ .wpac ol,
143
+ .wpac form,
144
+ .wpac select,
145
+ .wpac option,
146
+ .wpac pre,
147
+ .wpac div,
148
+ .wpac h2,
149
+ .wpac caption,
150
+ .wpac h4,
151
+ .wpac ul,
152
+ .wpac address,
153
+ .wpac blockquote,
154
+ .wpac dd,
155
+ .wpac fieldset,
156
+ .wpac textarea,
157
+ .wpac hr {
158
+ display: block
159
+ }
160
+
161
+ .wpac table {
162
+ display: table
163
+ }
164
+
165
+ .wpac tbody {
166
+ display: table-row-group
167
+ }
168
+
169
+ .wpac tr {
170
+ display: table-row
171
+ }
172
+
173
+ .wpac td {
174
+ display: table-cell
175
+ }
176
+
177
+ .wpac ul {
178
+ list-style-type: none!important
179
+ }
180
+
181
+ .wpac li {
182
+ display: list-item;
183
+ min-height: auto!important;
184
+ min-width: auto!important
185
+ }
186
+
187
+ .wpac a,
188
+ .wpac a *,
189
+ .wpac input[type=submit],
190
+ .wpac input[type=radio],
191
+ .wpac input[type=checkbox],
192
+ .wpac select {
193
+ cursor: pointer!important
194
+ }
195
+
196
+ .wpac a:hover {
197
+ text-decoration: none!important
198
+ }
199
+
200
+ .wpac button,
201
+ .wpac input[type=submit] {
202
+ height: auto!important;
203
+ text-align: center!important
204
+ }
205
+
206
+ .wpac input[type=hidden] {
207
+ display: none
208
+ }
209
+
210
+ .wpac select {
211
+ -webkit-appearance: menulist!important;
212
+ -moz-appearance: menulist!important;
213
+ appearance: menulist!important
214
+ }
215
+
216
+ .wpac input[type=checkbox] {
217
+ -webkit-appearance: checkbox!important;
218
+ -moz-appearance: checkbox!important;
219
+ appearance: checkbox!important
220
+ }
221
+
222
+ .wpac input[type="checkbox"]:before,
223
+ .wpac input[type="checkbox"]:after {
224
+ content: none!important;
225
+ border: 0!important
226
+ }
227
+
228
+ .wpac input[type=radio] {
229
+ -webkit-appearance: radio!important;
230
+ -moz-appearance: radio!important;
231
+ appearance: radio!important
232
+ }
233
+
234
+ .wpac input[type="radio"]:before,
235
+ .wpac input[type="radio"]:after {
236
+ content: none!important;
237
+ border: 0!important
238
+ }
239
+
240
+ .wpac li:before,
241
+ .wpac li:after {
242
+ content: ""!important
243
+ }
244
+
245
+ .wpac input,
246
+ .wpac select {
247
+ vertical-align: middle!important
248
+ }
249
+
250
+ .wpac select,
251
+ .wpac textarea,
252
+ .wpac input {
253
+ border: 1px solid #ccc!important
254
+ }
255
+
256
+ .wpac table {
257
+ border-collapse: collapse!important;
258
+ border-spacing: 0!important
259
+ }
260
+
261
+ .wpac *[dir=rtl] {
262
+ direction: rtl!important
263
+ }
264
+
265
+ .wpac img {
266
+ border: 0!important
267
+ }
268
+
269
+ .wpac svg {
270
+ vertical-align: middle!important;
271
+ -moz-box-sizing: content-box!important;
272
+ -webkit-box-sizing: content-box!important;
273
+ box-sizing: content-box!important
274
+ }
275
+
276
+ .wpac {
277
+ font-size: 14px!important;
278
+ line-height: 20px!important;
279
+ direction: inherit!important;
280
+ text-align: inherit!important;
281
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif!important;
282
+ color: #333!important;
283
+ font-style: normal!important;
284
+ font-weight: normal!important;
285
+ text-decoration: none!important;
286
+ list-style-type: disc!important
287
+ }
assets/src/css/public-main.css ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wp-gr .wp-google-badge {
2
+ display: inline-block;
3
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif!important;
4
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26)!important;
5
+ }
6
+
7
+ .wp-gr .wp-google-badge-fixed {
8
+ position: fixed!important;
9
+ right: 30px!important;
10
+ bottom: 30px!important;
11
+ max-width: none!important;
12
+ z-index: 2147482999!important;
13
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26)!important;
14
+ }
15
+
16
+ .wp-gr .wp-google-badge_left-fixed {
17
+ position: fixed!important;
18
+ left: 30px!important;
19
+ bottom: 30px!important;
20
+ max-width: none!important;
21
+ z-index: 2147482999!important
22
+ }
23
+
24
+ .wp-gr .wp-google-badge * {
25
+ cursor: pointer!important
26
+ }
27
+
28
+ .wp-gr .wp-google-border {
29
+ width: 100%!important;
30
+ height: 6px!important;
31
+ background: #4fce6a!important;
32
+ border-radius: 2px 2px 0 0!important;
33
+ }
34
+
35
+ .wp-gr .wp-google-badge-btn {
36
+ position: relative!important;
37
+ padding: 10px!important;
38
+ background: #fff!important;
39
+ transition: all .2s ease-in-out!important;
40
+ border-radius: 2px!important;
41
+ }
42
+
43
+ .wp-gr .wp-google-badge-btn:hover {
44
+ background: #f3f3f5!important
45
+ }
46
+
47
+ .wp-gr .wp-google-badge-score {
48
+ display: inline-block;
49
+ margin: 0 0 0 4px!important;
50
+ vertical-align: middle!important;
51
+ }
52
+
53
+ .wp-gr .wp-google-rating {
54
+ color: #e7711b!important;
55
+ font-size: 20px!important;
56
+ margin: 0 6px 0 0!important;
57
+ vertical-align: middle!important
58
+ }
59
+
60
+ .wp-gr .wp-google-stars .wp-star {
61
+ padding: 0 4px 0 0!important;
62
+ line-height: 22px!important
63
+ }
64
+
65
+ .wp-gr .wp-google-powered {
66
+ color: #777!important;
67
+ margin: 6px 0 0!important
68
+ }
69
+
70
+ .wp-gr .wp-google-powered img {
71
+ max-width: 144px!important
72
+ }
73
+
74
+ .wp-gr .wp-google-form .wp-google-reviews {
75
+ padding: 16px 16px 0!important
76
+ }
77
+
78
+ .wp-gr .wp-google-review {
79
+ margin-top: 15px!important
80
+ }
81
+
82
+ .wp-gr .wp-google-left {
83
+ display: table-cell!important;
84
+ vertical-align: top!important
85
+ }
86
+
87
+ [dir="ltr"] .wp-google-left {
88
+ padding-right: 10px!important
89
+ }
90
+
91
+ [dir="rtl"] .wp-google-left {
92
+ padding-left: 10px!important
93
+ }
94
+
95
+ .wp-gr .wp-google-left img {
96
+ border: none!important;
97
+ float: left!important;
98
+ height: 50px!important;
99
+ width: 50px!important;
100
+ margin-right: 5px!important;
101
+ border-radius: 50%!important;
102
+ box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .24)!important
103
+ }
104
+
105
+ .wp-gr .wp-google-reviews img {
106
+ border-radius: 50%!important
107
+ }
108
+
109
+ .wp-gr .wp-google-right {
110
+ display: table-cell!important;
111
+ vertical-align: top!important;
112
+ width: 10000px!important
113
+ }
114
+
115
+ .wp-gr .wp-google-place .wp-star svg {
116
+ width: 18px!important;
117
+ height: 18px!important;
118
+ vertical-align: middle!important
119
+ }
120
+
121
+ .wp-gr .wp-star svg {
122
+ display: inline-block!important
123
+ }
124
+
125
+ .wp-gr .wp-google-review .wp-star svg {
126
+ width: 16px!important;
127
+ height: 16px!important;
128
+ vertical-align: middle!important
129
+ }
130
+
131
+ .wp-gr .wp-google-name {
132
+ color: black!important;
133
+ font-size: 100%!important;
134
+ font-weight: bold!important;
135
+ margin: 0 0 2px!important;
136
+ padding-right: 6px!important;
137
+ text-decoration: none!important
138
+ }
139
+
140
+ .wp-gr a.wp-google-name {
141
+ color: #427fed!important;
142
+ text-decoration: none!important
143
+ }
144
+
145
+ .wp-gr .wp-google-time {
146
+ color: #999!important;
147
+ font-size: 13px!important
148
+ }
149
+
150
+ .wp-gr .wp-google-text {
151
+ color: #222!important;
152
+ font-size: 13px!important;
153
+ line-height: 18px!important;
154
+ max-width: 100%!important;
155
+ overflow: hidden!important;
156
+ white-space: pre-wrap!important;
157
+ word-break: break-word!important
158
+ }
159
+
160
+ .wp-gr .wp-google-text .wp-google-stars {
161
+ padding-right: 7px!important
162
+ }
163
+
164
+ .wp-gr .wp-more {
165
+ display: none
166
+ }
167
+
168
+ .wp-gr .wp-more-toggle {
169
+ color: #136aaf!important;
170
+ cursor: pointer!important;
171
+ text-decoration: none!important
172
+ }
173
+
174
+ .wp-gr .wp-google-url {
175
+ display: block;
176
+ margin: 10px 0!important;
177
+ color: #2c7cff!important;
178
+ text-align: center!important
179
+ }
180
+
181
+ .wp-gr .wp-google-form {
182
+ position: fixed!important;
183
+ bottom: 0!important;
184
+ right: 0!important;
185
+ height: 100%!important;
186
+ width: 368px!important;
187
+ z-index: 2147483000!important
188
+ }
189
+
190
+ .wp-gr .wp-google-form.wp-google-form-left {
191
+ left: 0!important;
192
+ }
193
+
194
+ @media(max-width:460px) {
195
+ .wp-gr .wp-google-form {
196
+ width: 100%!important
197
+ }
198
+ }
199
+
200
+ .wp-gr .wp-google-head {
201
+ position: absolute!important;
202
+ top: 0!important;
203
+ right: 0!important;
204
+ width: 100%!important;
205
+ height: 80px!important;
206
+ background: #fff!important;
207
+ padding: 10px 16px!important;
208
+ overflow: hidden!important;
209
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .12)!important;
210
+ z-index: 2147483002!important
211
+ }
212
+
213
+ .wp-gr .wp-google-head-inner {
214
+ z-index: 2147483000!important;
215
+ position: absolute!important;
216
+ left: 20px!important;
217
+ top: 20px!important;
218
+ width: 100%!important;
219
+ height: 100%!important;
220
+ pointer-events: none!important
221
+ }
222
+
223
+ .wp-gr .wp-google-close {
224
+ padding: 0!important;
225
+ cursor: pointer!important;
226
+ outline: 0!important;
227
+ border: 0!important;
228
+ background: 0 0!important;
229
+ min-height: 0!important;
230
+ width: auto!important;
231
+ float: right!important;
232
+ font-size: 32px!important;
233
+ font-weight: 500!important;
234
+ line-height: .6!important;
235
+ color: #999!important;
236
+ -webkit-appearance: none!important
237
+ }
238
+
239
+ .wp-gr .wp-google-close:hover {
240
+ color: #555!important
241
+ }
242
+
243
+ .wp-gr .wp-google-body {
244
+ position: absolute!important;
245
+ top: 0!important;
246
+ right: 0!important;
247
+ bottom: 0!important;
248
+ width: 100%!important;
249
+ background: rgba(250, 250, 251, .98)!important;
250
+ border-left: 1px solid #dadee2!important;
251
+ box-shadow: 0 0 4px 1px rgba(0, 0, 0, .08)!important;
252
+ z-index: 2147483000!important
253
+ }
254
+
255
+ .wp-gr .wp-google-content {
256
+ position: absolute!important;
257
+ top: 0!important;
258
+ right: 0!important;
259
+ bottom: 0!important;
260
+ width: 100%!important;
261
+ overflow-y: auto!important;
262
+ z-index: 2147483001!important;
263
+ -webkit-transform: translateZ(0)!important
264
+ }
265
+
266
+ .wp-gr .wp-google-content {
267
+ top: 80px!important;
268
+ bottom: 48px!important
269
+ }
270
+
271
+ .wp-gr .wp-google-content-inner {
272
+ position: relative!important;
273
+ min-height: 100%!important;
274
+ margin: 0 auto!important
275
+ }
276
+
277
+ .wp-gr .wp-google-footer {
278
+ position: absolute!important;
279
+ bottom: 0!important;
280
+ right: 0!important;
281
+ width: 100%!important;
282
+ height: 48px!important;
283
+ text-align: center!important;
284
+ z-index: 2147483002!important;
285
+ background: #fff!important;
286
+ box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .06)!important;
287
+ -moz-text-align-last: center!important;
288
+ text-align-last: center!important
289
+ }
290
+
291
+ .wp-gr .wp-google-footer img {
292
+ float: right!important;
293
+ padding: 16px!important
294
+ }
295
+
296
+ .wp-gr .wp-dark .wp-google-name {
297
+ color: #eee!important
298
+ }
299
+
300
+ .wp-gr .wp-dark .wp-google-time {
301
+ color: #bbb!important
302
+ }
303
+
304
+ .wp-gr .wp-dark .wp-google-text {
305
+ color: #ececec!important
306
+ }
307
+
308
+ .wp-gr.wpac .wp-google-name {
309
+ font-size: 100%!important
310
+ }
311
+
312
+ .wp-gr.wpac .wp-google-hide {
313
+ display: none
314
+ }
315
+
316
+ .wp-gr.wpac .wp-google-name a {
317
+ color: #333!important;
318
+ font-size: 100%!important;
319
+ text-decoration: none!important
320
+ }
321
+
322
+ .wp-gr.wpac .wp-google-left img {
323
+ width: 50px!important;
324
+ height: 50px!important;
325
+ border-radius: 50%!important
326
+ }
327
+
328
+ .wp-gr.wpac a.wp-google-name {
329
+ color: #427fed!important;
330
+ text-decoration: none!important
331
+ }
332
+
333
+ .wp-gr.wpac .wp-google-place .wp-star svg {
334
+ width: 18px;
335
+ height: 18px
336
+ }
337
+
338
+ .wp-gr.wpac .wp-google-review .wp-google-stars {
339
+ display: inline-block;
340
+ margin-right: 4px!important
341
+ }
342
+
343
+ .wp-gr.wpac .wp-google-review .wp-star svg {
344
+ width: 16px;
345
+ height: 16px
346
+ }
347
+
348
+ .wp-gr.wpac .wp-dark .wp-google-name a {
349
+ color: #eee!important
350
+ }
351
+
352
+ @media(max-width: 480px) {
353
+ .wp-google-badge.wp-google-badge-fixed.wp-google-badge-hide {
354
+ display: none!important;
355
+ }
356
+ }
357
+
358
+ @media(max-width: 480px) {
359
+ .wp-google-badge.wp-google-badge_left-fixed.wp-google-badge-hide {
360
+ display: none!important;
361
+ }
362
+ }
assets/{js/builder.js → src/js/admin-builder.js} RENAMED
@@ -211,7 +211,7 @@ function grw_builder_init($, data) {
211
 
212
  // Google Connect
213
  var platform_google_el = el.querySelector('.grw-connect-google-inside');
214
- grw_connection($, platform_google_el, 'google');
215
 
216
  $('.grw-connect-options input[type="text"],.grw-connect-options textarea').keyup(function() {
217
  grw_serialize_connections();
@@ -278,7 +278,7 @@ function grw_feed_save() {
278
  return false;
279
  }
280
 
281
- function grw_connection($, el, platform) {
282
  var connect_btn = el.querySelector('.grw-connect-btn');
283
  $(connect_btn).click(function() {
284
 
@@ -300,56 +300,76 @@ function grw_connection($, el, platform) {
300
  connect_btn.innerHTML = 'Please wait...';
301
  connect_btn.disabled = true;
302
 
303
- var url = GRW_VARS.handlerUrl + '&cf_action=grw_connect_' + platform + '&v=' + new Date().getTime();
304
- $.post(url, {
305
- id: decodeURIComponent(id),
306
- lang: lang,
307
- //key: key,
308
- grw_wpnonce: $('#grw_nonce').val()
309
- }, function(res) {
310
 
311
- console.log('grw_connect_debug:', res);
312
 
313
- connect_btn.innerHTML = 'Connect ' + (platform.charAt(0).toUpperCase() + platform.slice(1));
314
- connect_btn.disabled = false;
315
 
316
- var error_el = el.querySelector('.grw-connect-error');
 
 
 
 
 
317
 
318
- if (res.status == 'success') {
319
 
320
- error_el.innerHTML = '';
 
321
 
322
- var connection_params = {
323
- id : res.result.id,
324
- lang : lang,
325
- name : res.result.name,
326
- photo : res.result.photo,
327
- refresh : true,
328
- platform : platform,
329
- props : {
330
- default_photo : res.result.photo
331
- }
332
- };
333
 
334
- grw_connection_add($, el, connection_params);
335
- grw_serialize_connections();
336
 
337
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
338
 
339
- if (res.result.error_message == 'usage_limit') {
 
 
 
 
 
 
 
340
  $('#dialog').dialog({width: '50%', maxWidth: '600px'});
341
- } else {
 
 
 
 
 
 
 
 
 
 
 
342
  error_el.innerHTML = '<b>Error</b>: ' + res.result.error_message;
343
  if (res.result.status == 'OVER_QUERY_LIMIT') {
344
  error_el.innerHTML += '<br><br>More recently, Google has limited the API to 1 request per day for new users, try to create new <a href="https://developers.google.com/places/web-service/get-api-key#get_an_api_key" target="_blank">Google API key</a>, save in the setting and Connect Google again.';
345
  }
346
- }
347
 
348
  }
 
349
 
350
- }, 'json');
351
- return false;
352
- });
353
  }
354
 
355
  function grw_connection_add($, el, conn, checked) {
211
 
212
  // Google Connect
213
  var platform_google_el = el.querySelector('.grw-connect-google-inside');
214
+ grw_connection($, platform_google_el, 'google', data.authcode);
215
 
216
  $('.grw-connect-options input[type="text"],.grw-connect-options textarea').keyup(function() {
217
  grw_serialize_connections();
278
  return false;
279
  }
280
 
281
+ function grw_connection($, el, platform, authcode) {
282
  var connect_btn = el.querySelector('.grw-connect-btn');
283
  $(connect_btn).click(function() {
284
 
300
  connect_btn.innerHTML = 'Please wait...';
301
  connect_btn.disabled = true;
302
 
303
+ grw_connect_ajax($, el, {id: id, lang: lang}, platform, authcode, 1);
304
+ return false;
305
+ });
306
+ }
 
 
 
307
 
308
+ function grw_connect_ajax($, el, params, platform, authcode, attempt) {
309
 
310
+ var connect_btn = el.querySelector('.grw-connect-btn'),
311
+ url = GRW_VARS.handlerUrl + '&cf_action=grw_connect_' + platform + '&v=' + new Date().getTime();
312
 
313
+ $.post(url, {
314
+ id: decodeURIComponent(params.id),
315
+ lang: params.lang,
316
+ //key: key,
317
+ grw_wpnonce: $('#grw_nonce').val()
318
+ }, function(res) {
319
 
320
+ console.log('grw_connect_debug:', res);
321
 
322
+ connect_btn.innerHTML = 'Connect ' + (platform.charAt(0).toUpperCase() + platform.slice(1));
323
+ connect_btn.disabled = false;
324
 
325
+ var error_el = el.querySelector('.grw-connect-error');
 
 
 
 
 
 
 
 
 
 
326
 
327
+ if (res.status == 'success') {
 
328
 
329
+ error_el.innerHTML = '';
330
+
331
+ var connection_params = {
332
+ id : res.result.id,
333
+ lang : params.lang,
334
+ name : res.result.name,
335
+ photo : res.result.photo,
336
+ refresh : true,
337
+ platform : platform,
338
+ props : {
339
+ default_photo : res.result.photo
340
+ }
341
+ };
342
 
343
+ grw_connection_add($, el, connection_params);
344
+ grw_serialize_connections();
345
+
346
+ } else {
347
+
348
+ switch (res.result.error_message) {
349
+
350
+ case 'usage_limit':
351
  $('#dialog').dialog({width: '50%', maxWidth: '600px'});
352
+ break;
353
+
354
+ case 'bot_check':
355
+ if (attempt > 1) {
356
+ return;
357
+ }
358
+ grw_popup('https://gpaw.widgetpack.com/botcheck?authcode=' + authcode, 640, 480, function() {
359
+ grw_connect_ajax($, el, params, platform, authcode, attempt + 1);
360
+ });
361
+ break;
362
+
363
+ default:
364
  error_el.innerHTML = '<b>Error</b>: ' + res.result.error_message;
365
  if (res.result.status == 'OVER_QUERY_LIMIT') {
366
  error_el.innerHTML += '<br><br>More recently, Google has limited the API to 1 request per day for new users, try to create new <a href="https://developers.google.com/places/web-service/get-api-key#get_an_api_key" target="_blank">Google API key</a>, save in the setting and Connect Google again.';
367
  }
 
368
 
369
  }
370
+ }
371
 
372
+ }, 'json');
 
 
373
  }
374
 
375
  function grw_connection_add($, el, conn, checked) {
assets/{js/admin.js → src/js/admin-main.js} RENAMED
File without changes
assets/{js/blazy.min.js → src/js/public-blazy.min.js} RENAMED
File without changes
assets/{js/rplg.js → src/js/public-main.js} RENAMED
File without changes
assets/src/js/public-time.js ADDED
@@ -0,0 +1,511 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var WPacTime = WPacTime || {
2
+
3
+ getTime: function(time, lang, format) {
4
+ if (format == 'chat') {
5
+ return this.getChatTime(time, lang || 'en');
6
+ } else if (format) {
7
+ return this.getFormatTime(time, format, lang || 'en');
8
+ } else {
9
+ return this.getDefaultTime(time, lang || 'en');
10
+ }
11
+ },
12
+
13
+ getChatTime: function(time, lang) {
14
+ var now = new Date().getTime(),
15
+ distanceMillis = now - time,
16
+ s = distanceMillis / 1000, m = s / 60, h = m / 60, d = h / 24;
17
+
18
+ if (h < 24) {
19
+ return this.getFormatTime(time, 'HH:mm', lang);
20
+ } else if (d < 365) {
21
+ return this.getFormatTime(time, 'dd.MM HH:mm', lang);
22
+ } else {
23
+ return this.getFormatTime(time, 'yyyy.MM.dd HH:mm', lang);
24
+ }
25
+ },
26
+
27
+ getDefaultTime: function(time, lang) {
28
+ return this.getTimeAgo(time, lang);
29
+ },
30
+
31
+ getTimeAgo: function(time, lang) {
32
+ var now = new Date().getTime(),
33
+ distanceMillis = now - time,
34
+ s = distanceMillis / 1000, m = s / 60, h = m / 60, d = h / 24, y = d / 365;
35
+
36
+ lang = WPacTime.Messages[lang] ? lang : 'en';
37
+ if (s < 45) {
38
+ return WPacTime.Messages[lang].second;
39
+ } else if (s < 90) {
40
+ return WPacTime.Messages[lang].minute;
41
+ } else if (m < 45) {
42
+ return WPacTime.Messages[lang].minutes(m);
43
+ } else if (m < 90) {
44
+ return WPacTime.Messages[lang].hour;
45
+ } else if (h < 24) {
46
+ return WPacTime.Messages[lang].hours(h);
47
+ } else if (h < 48) {
48
+ return WPacTime.Messages[lang].day;
49
+ } else if (d < 30) {
50
+ return WPacTime.Messages[lang].days(d);
51
+ } else if (d < 60) {
52
+ return WPacTime.Messages[lang].month;
53
+ } else if (d < 365) {
54
+ return WPacTime.Messages[lang].months(d);
55
+ } else if (y < 2) {
56
+ return WPacTime.Messages[lang].year;
57
+ } else {
58
+ return WPacTime.Messages[lang].years(y);
59
+ }
60
+ },
61
+
62
+ getTime12: function(time, lang) {
63
+ var date = new Date(time);
64
+ return ((date.getHours() % 12) ? date.getHours() % 12 : 12) + ':' + date.getMinutes() + (date.getHours() >= 12 ? ' PM' : ' AM');
65
+ },
66
+
67
+ getFormatTime: function(time, format, lang) {
68
+ var date = new Date(time),
69
+ flags = {
70
+ SS: date.getMilliseconds(),
71
+ ss: date.getSeconds(),
72
+ mm: date.getMinutes(),
73
+ HH: date.getHours(),
74
+ hh: ((date.getHours() % 12) ? date.getHours() % 12 : 12) + (date.getHours() >= 12 ? 'PM' : 'AM'),
75
+ dd: date.getDate(),
76
+ MM: date.getMonth() + 1,
77
+ yyyy: date.getFullYear(),
78
+ yy: String(date.getFullYear()).toString().substr(2,2),
79
+ ago: this.getTimeAgo(time, lang),
80
+ '12': this.getTime12(time, lang)
81
+ };
82
+
83
+ return format.replace(/(SS|ss|mm|HH|hh|DD|dd|MM|yyyy|yy|ago|12)/g, function(i, code) {
84
+ var val = flags[code];
85
+ return val < 10 ? '0' + val : val;
86
+ });
87
+ },
88
+
89
+ declineNum: function (n, m1, m2, m3) {
90
+ return n + ' ' + this.declineMsg(n, m1, m2, m3);
91
+ },
92
+
93
+ declineMsg: function (n, m1, m2, m3, def) {
94
+ var n10 = n % 10;
95
+ if ((n10 == 1) && ((n == 1) || (n > 20))) {
96
+ return m1;
97
+ } else if ((n10 > 1) && (n10 < 5) && ((n > 20) || (n < 10))) {
98
+ return m2;
99
+ } else if (n) {
100
+ return m3;
101
+ } else {
102
+ return def;
103
+ }
104
+ }
105
+ };
106
+
107
+ WPacTime.Messages = {
108
+ ru: {
109
+ second: 'только что',
110
+ minute: 'минуту назад',
111
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'минута назад', 'минуты назад', 'минут назад'); },
112
+ hour: 'час назад',
113
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'час назад', 'часа назад', 'часов назад'); },
114
+ day: 'день назад',
115
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'день назад', 'дня назад', 'дней назад'); },
116
+ month: 'месяц назад',
117
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'месяц назад', 'месяца назад', 'месяцев назад'); },
118
+ year: 'год назад',
119
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'год назад', 'года назад', 'лет назад'); }
120
+ },
121
+ en: {
122
+ second: 'just now',
123
+ minute: '1m ago',
124
+ minutes: function(m) { return Math.round(m) + 'm ago'; },
125
+ hour: '1h ago',
126
+ hours: function(h) { return Math.round(h) + 'h ago'; },
127
+ day: 'a day ago',
128
+ days: function(d) { return Math.round(d) + ' days ago'; },
129
+ month: 'a month ago',
130
+ months: function(d) { return Math.round(d / 30) + ' months ago'; },
131
+ year: 'a year ago',
132
+ years: function(y) { return Math.round(y) + ' years ago'; }
133
+ },
134
+ uk: {
135
+ second: 'тільки що',
136
+ minute: 'хвилину тому',
137
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'хвилину тому', 'хвилини тому', 'хвилин тому'); },
138
+ hour: 'годину тому',
139
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'годину тому', 'години тому', 'годин тому'); },
140
+ day: 'день тому',
141
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'день тому', 'дні тому', 'днів тому'); },
142
+ month: 'місяць тому',
143
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'місяць тому', 'місяці тому', 'місяців тому'); },
144
+ year: 'рік тому',
145
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'рік тому', 'роки тому', 'років тому'); }
146
+ },
147
+ ro: {
148
+ second: 'chiar acum',
149
+ minute: 'în urmă minut',
150
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'o minuta in urma', 'minute in urma', 'de minute in urma'); },
151
+ hour: 'acum o ora',
152
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'acum o ora', 'ore in urma', 'de ore in urma'); },
153
+ day: 'o zi in urma',
154
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'o zi in urma', 'zile in urma', 'de zile in urma'); },
155
+ month: 'o luna in urma',
156
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'o luna in urma', 'luni in urma', 'de luni in urma'); },
157
+ year: 'un an in urma',
158
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'un an in urma', 'ani in urma', 'de ani in urma'); }
159
+ },
160
+ lv: {
161
+ second: 'Mazāk par minūti',
162
+ minute: 'Pirms minūtes',
163
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'pirms minūtes', 'pirms minūtēm', 'pirms minūtēm'); },
164
+ hour: 'pirms stundas',
165
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'pirms stundas', 'pirms stundām', 'pirms stundām'); },
166
+ day: 'pirms dienas',
167
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'pirms dienas', 'pirms dienām', 'pirms dienām'); },
168
+ month: 'pirms mēneša',
169
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'pirms mēneša', 'pirms mēnešiem', 'pirms mēnešiem'); },
170
+ year: 'pirms gada',
171
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'pirms gada', 'pirms gadiem', 'pirms gadiem'); }
172
+ },
173
+ lt: {
174
+ second: 'ką tik',
175
+ minute: 'prieš minutę',
176
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'minutė prieš', 'minutės prieš', 'minučių prieš'); },
177
+ hour: 'prieš valandą',
178
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'valanda prieš', 'valandos prieš', 'valandų prieš'); },
179
+ day: 'prieš dieną',
180
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'diena prieš', 'dienos prieš', 'dienų prieš'); },
181
+ month: 'prieš mėnesį',
182
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'mėnesį prieš', 'mėnesiai prieš', 'mėnesių prieš'); },
183
+ year: 'prieš metus',
184
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'metai prieš', 'metai prieš', 'metų prieš'); }
185
+ },
186
+ kk: {
187
+ second: 'бір минуттан аз уақыт бұрын',
188
+ minute: 'бір минут бұрын',
189
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'минут бұрын', 'минут бұрын', 'минут бұрын'); },
190
+ hour: 'бір сағат бұрын',
191
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'сағат бұрын', 'сағат бұрын', 'сағат бұрын'); },
192
+ day: 'бір күн бұрын',
193
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'күн бұрын', 'күн бұрын', 'күн бұрын'); },
194
+ month: 'бір ай бұрын',
195
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'ай бұрын', 'ай бұрын', 'ай бұрын'); },
196
+ year: 'бір жыл бұрын',
197
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'жыл бұрын', 'жыл бұрын', 'жыл бұрын'); }
198
+ },
199
+ ka: {
200
+ second: 'წამის წინ',
201
+ minute: 'წუთის წინ',
202
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'წუთის წინ', 'წუთის წინ', 'წუთის წინ'); },
203
+ hour: 'საათის წინ',
204
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'საათის წინ', 'საათის წინ', 'საათის წინ'); },
205
+ day: 'დღის წინ',
206
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'დღის წინ', 'დღის წინ', 'დღის წინ'); },
207
+ month: 'თვის წინ',
208
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'თვის წინ', 'თვის წინ', 'თვის წინ'); },
209
+ year: 'წლის წინ',
210
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'წლის წინ', 'წლის წინ', 'წლის წინ'); }
211
+ },
212
+ hy: {
213
+ second: 'մի քնի վայրկյան առաջ',
214
+ minute: 'մեկ րոպե առաջ',
215
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'րոպե առաջ', 'րոպե առաջ', 'րոպե առաջ'); },
216
+ hour: 'մեկ ժամ առաջ',
217
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'ժամ առաջ', 'ժամ առաջ', 'ժամ առաջ'); },
218
+ day: 'մեկ օր առաջ',
219
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'օր առաջ', 'օր առաջ', 'օր առաջ'); },
220
+ month: 'մեկ ամիս առաջ',
221
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'ամիս առաջ', 'ամիս առաջ', 'ամիս առաջ'); },
222
+ year: 'մեկ տարի առաջ',
223
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'տարի առաջ', 'տարի առաջ', 'տարի առաջ'); }
224
+ },
225
+ fr: {
226
+ second: 'tout à l\'heure',
227
+ minute: 'environ une minute',
228
+ minutes: function(m) { return Math.round(m) + ' minutes'; },
229
+ hour: 'environ une heure',
230
+ hours: function(h) { return 'environ ' + Math.round(h) + ' heures'; },
231
+ day: 'un jour',
232
+ days: function(d) { return Math.round(d) + ' jours'; },
233
+ month: 'environ un mois',
234
+ months: function(d) { return Math.round(d / 30) + ' mois'; },
235
+ year: 'environ un an',
236
+ years: function(y) { return Math.round(y) + ' ans'; }
237
+ },
238
+ es: {
239
+ second: 'ahora',
240
+ minute: 'hace un minuto',
241
+ minutes: function(m) { return 'hace ' + Math.round(m) + ' minuts'; },
242
+ hour: 'hace una hora',
243
+ hours: function(h) { return 'hace ' + Math.round(h) + ' horas'; },
244
+ day: 'hace un dia',
245
+ days: function(d) { return 'hace ' + Math.round(d) + ' días'; },
246
+ month: 'hace un mes',
247
+ months: function(d) { return 'hace ' + Math.round(d / 30) + ' meses'; },
248
+ year: 'hace años',
249
+ years: function(y) { return 'hace ' + Math.round(y) + ' años'; }
250
+ },
251
+ el: {
252
+ second: 'λιγότερο από ένα λεπτό',
253
+ minute: 'γύρω στο ένα λεπτό',
254
+ minutes: function(m) { return Math.round(m) + ' minutes'; },
255
+ hour: 'γύρω στην μια ώρα',
256
+ hours: function(h) { return 'about ' + Math.round(h) + ' hours'; },
257
+ day: 'μια μέρα',
258
+ days: function(d) { return Math.round(d) + ' days'; },
259
+ month: 'γύρω στον ένα μήνα',
260
+ months: function(d) { return Math.round(d / 30) + ' months'; },
261
+ year: 'γύρω στον ένα χρόνο',
262
+ years: function(y) { return Math.round(y) + ' years'; }
263
+ },
264
+ de: {
265
+ second: 'soeben',
266
+ minute: 'vor einer Minute',
267
+ minutes: function(m) { return 'vor '+ Math.round(m) +' Minuten'; },
268
+ hour: 'vor einer Stunde',
269
+ hours: function(h) { return 'vor ' + Math.round(h) + ' Stunden'; },
270
+ day: 'vor einem Tag',
271
+ days: function(d) { return 'vor ' + Math.round(d) + ' Tagen'; },
272
+ month: 'vor einem Monat',
273
+ months: function(d) { return 'vor ' + Math.round(d / 30) + ' Monaten'; },
274
+ year: 'vor einem Jahr',
275
+ years: function(y) { return 'vor ' + Math.round(y) + ' Jahren'; }
276
+ },
277
+ be: {
278
+ second: 'менш за хвіліну таму',
279
+ minute: 'хвіліну таму',
280
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'хвіліна таму', 'хвіліны таму', 'хвілін таму'); },
281
+ hour: 'гадзіну таму',
282
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'гадзіну таму', 'гадзіны таму', 'гадзін таму'); },
283
+ day: 'дзень таму',
284
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'дзень таму', 'дні таму', 'дзён таму'); },
285
+ month: 'месяц таму',
286
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'месяц таму', 'месяца таму', 'месяцаў таму'); },
287
+ year: 'год таму',
288
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'год таму', 'гады таму', 'год таму'); }
289
+ },
290
+ it: {
291
+ second: 'proprio ora',
292
+ minute: 'un minuto fa',
293
+ minutes: function(m) { return WPacTime.declineNum(Math.round(m), 'un minuto fa', 'minuti fa', 'minuti fa'); },
294
+ hour: 'un\'ora fa',
295
+ hours: function(h) { return WPacTime.declineNum(Math.round(h), 'un\'ora fa', 'ore fa', 'ore fa'); },
296
+ day: 'un giorno fa',
297
+ days: function(d) { return WPacTime.declineNum(Math.round(d), 'un giorno fa', 'giorni fa', 'giorni fa'); },
298
+ month: 'un mese fa',
299
+ months: function(d) { return WPacTime.declineNum(Math.round(d / 30), 'un mese fa', 'mesi fa', 'mesi fa'); },
300
+ year: 'un anno fa',
301
+ years: function(y) { return WPacTime.declineNum(Math.round(y), 'un anno fa', 'anni fa', 'anni fa'); }
302
+ },
303
+ tr: {
304
+ second: 'az önce',
305
+ minute: 'dakika önce',
306
+ minutes: function(m) { return Math.round(m) + ' dakika önce'; },
307
+ hour: 'saat önce',
308
+ hours: function(h) { return Math.round(h) + ' saat önce'; },
309
+ day: 'gün önce',
310
+ days: function(d) { return Math.round(d) + ' gün önce'; },
311
+ month: 'ay önce',
312
+ months: function(d) { return Math.round(d / 30) + ' ay önce'; },
313
+ year: 'yıl önce',
314
+ years: function(y) { return Math.round(y) + ' yıl önce'; }
315
+ },
316
+ nb: {
317
+ second: 'nå nettopp',
318
+ minute: 'ett minutt siden',
319
+ minutes: function(m) { return Math.round(m) + ' minutter siden'; },
320
+ hour: 'en time siden',
321
+ hours: function(h) { return Math.round(h) + ' timer siden'; },
322
+ day: 'en dag siden',
323
+ days: function(d) { return Math.round(d) + ' dager siden'; },
324
+ month: 'en måned siden',
325
+ months: function(d) { return Math.round(d / 30) + ' måneder siden'; },
326
+ year: 'ett år siden',
327
+ years: function(y) { return Math.round(y) + ' år siden'; }
328
+ },
329
+ da: {
330
+ second: 'lige nu',
331
+ minute: 'et minut siden',
332
+ minutes: function(m) { return Math.round(m) + ' minutter siden'; },
333
+ hour: 'en time siden',
334
+ hours: function(h) { return Math.round(h) + ' timer siden'; },
335
+ day: 'en dag siden',
336
+ days: function(d) { return Math.round(d) + ' dage siden'; },
337
+ month: 'en måned siden',
338
+ months: function(d) { return Math.round(d / 30) + ' måneder siden'; },
339
+ year: 'et år siden',
340
+ years: function(y) { return Math.round(y) + ' år siden'; }
341
+ },
342
+ nl: {
343
+ second: 'zojuist',
344
+ minute: 'minuten geleden',
345
+ minutes: function(m) { return Math.round(m) + ' minuten geleden'; },
346
+ hour: 'uur geleden',
347
+ hours: function(h) { return Math.round(h) + ' uur geleden'; },
348
+ day: '1 dag geleden',
349
+ days: function(d) { return Math.round(d) + ' dagen geleden'; },
350
+ month: 'maand geleden',
351
+ months: function(d) { return Math.round(d / 30) + ' maanden geleden'; },
352
+ year: 'jaar geleden',
353
+ years: function(y) { return Math.round(y) + ' jaar geleden'; }
354
+ },
355
+ ca: {
356
+ second: 'ara mateix',
357
+ minute: 'fa un minut',
358
+ minutes: function(m) { return 'fa ' + Math.round(m) + ' minuts'; },
359
+ hour: 'fa una hora',
360
+ hours: function(h) { return 'fa ' + Math.round(h) + ' hores'; },
361
+ day: 'fa un dia',
362
+ days: function(d) { return 'fa ' + Math.round(d) + ' dies'; },
363
+ month: 'fa un mes',
364
+ months: function(d) { return 'fa ' + Math.round(d / 30) + ' mesos'; },
365
+ year: 'fa un any',
366
+ years: function(y) { return 'fa ' + Math.round(y) + ' anys'; }
367
+ },
368
+ sv: {
369
+ second: 'just nu',
370
+ minute: 'en minut sedan',
371
+ minutes: function(m) { return Math.round(m) + ' minuter sedan'; },
372
+ hour: 'en timme sedan',
373
+ hours: function(h) { return Math.round(h) + ' timmar sedan'; },
374
+ day: 'en dag sedan',
375
+ days: function(d) { return Math.round(d) + ' dagar sedan'; },
376
+ month: 'en månad sedan',
377
+ months: function(d) { return Math.round(d / 30) + ' månader sedan'; },
378
+ year: 'ett år sedan',
379
+ years: function(y) { return Math.round(y) + ' år sedan'; }
380
+ },
381
+ pl: {
382
+ second: 'właśnie teraz',
383
+ minute: 'minutę temu',
384
+ minutes: function(m) { return Math.round(m) + ' minut temu'; },
385
+ hour: 'godzinę temu',
386
+ hours: function(h) { return Math.round(h) + ' godzin temu'; },
387
+ day: 'wczoraj',
388
+ days: function(d) { return Math.round(d) + ' dni temu'; },
389
+ month: 'miesiąc temu',
390
+ months: function(d) { return Math.round(d / 30) + ' miesięcy temu'; },
391
+ year: 'rok temu',
392
+ years: function(y) { return Math.round(y) + ' lat temu'; }
393
+ },
394
+ pt: {
395
+ second: 'agora',
396
+ minute: '1 minuto atrás',
397
+ minutes: function(m) { return Math.round(m) + ' minutos atrás'; },
398
+ hour: '1 hora atrás',
399
+ hours: function(h) { return Math.round(h) + ' horas atrás'; },
400
+ day: '1 dia atrás',
401
+ days: function(d) { return Math.round(d) + ' dias atrás'; },
402
+ month: '1 mês atrás',
403
+ months: function(d) { return Math.round(d / 30) + ' meses atrás'; },
404
+ year: '1 ano atrás',
405
+ years: function(y) { return Math.round(y) + ' anos atrás'; }
406
+ },
407
+ hu: {
408
+ second: 'épp az imént',
409
+ minute: '1 perccel ezelőtt',
410
+ minutes: function(m) { return Math.round(m) + ' perccel ezelőtt'; },
411
+ hour: 'órával ezelőtt',
412
+ hours: function(h) { return Math.round(h) + ' órával ezelőtt'; },
413
+ day: 'nappal ezelőtt',
414
+ days: function(d) { return Math.round(d) + ' nappal ezelőtt'; },
415
+ month: 'hónappal ezelőtt',
416
+ months: function(d) { return Math.round(d / 30) + ' hónappal ezelőtt'; },
417
+ year: 'évvel ezelőtt',
418
+ years: function(y) { return Math.round(y) + ' évvel ezelőtt'; }
419
+ },
420
+ fi: {
421
+ second: 'juuri nyt',
422
+ minute: 'minuutti sitten',
423
+ minutes: function(m) { return Math.round(m) + ' minuuttia sitten'; },
424
+ hour: 'tunti sitten',
425
+ hours: function(h) { return Math.round(h) + ' tuntia sitten'; },
426
+ day: 'päivä sitten',
427
+ days: function(d) { return Math.round(d) + ' päivää sitten'; },
428
+ month: 'kuukausi sitten',
429
+ months: function(d) { return Math.round(d / 30) + ' kuukautta sitten'; },
430
+ year: 'vuosi sitten',
431
+ years: function(y) { return Math.round(y) + ' vuotta sitten'; }
432
+ },
433
+ he: {
434
+ second: 'הרגע',
435
+ minute: 'לפני דקה',
436
+ minutes: function(m) { return 'לפני ' + Math.round(m) + ' דקות'; },
437
+ hour: 'לפני שעה',
438
+ hours: function(h) { return 'לפני ' + Math.round(h) + ' שעות'; },
439
+ day: 'לפני יום',
440
+ days: function(d) { return 'לפני ' + Math.round(d) + ' ימים'; },
441
+ month: 'לפני חודש',
442
+ months: function(d) { return Math.round(d / 30) == 2 ? 'לפני חודשיים' : 'לפני ' + Math.round(d / 30) + ' חודשים'; },
443
+ year: 'לפני שנה',
444
+ years: function(y) { return 'לפני ' + Math.round(y) + ' שנים'; }
445
+ },
446
+ bg: {
447
+ second: 'в момента',
448
+ minute: 'преди 1 минута',
449
+ minutes: function(m) { return 'преди ' + Math.round(m) + ' минути'; },
450
+ hour: 'преди 1 час',
451
+ hours: function(h) { return 'преди ' + Math.round(h) + ' часа'; },
452
+ day: 'преди 1 ден',
453
+ days: function(d) { return 'преди ' + Math.round(d) + ' дни'; },
454
+ month: 'преди 1 месец',
455
+ months: function(d) { return 'преди ' + Math.round(d / 30) + ' месеца'; },
456
+ year: 'преди 1 година',
457
+ years: function(y) { return 'преди ' + Math.round(y) + ' години'; }
458
+ },
459
+ sk: {
460
+ second: 'práve teraz',
461
+ minute: 'pred minútov',
462
+ minutes: function(m) { return 'pred ' + Math.round(m) + ' minútami'; },
463
+ hour: 'pred hodinou',
464
+ hours: function(h) { return 'pred ' + Math.round(h) + ' hodinami'; },
465
+ day: 'včera',
466
+ days: function(d) { return 'pred ' + Math.round(d) + ' dňami'; },
467
+ month: 'pred mesiacom',
468
+ months: function(d) { return 'pred ' + Math.round(d / 30) + ' mesiacmi'; },
469
+ year: 'pred rokom',
470
+ years: function(y) { return 'pred ' + Math.round(y) + ' rokmi'; }
471
+ },
472
+ lo: {
473
+ second: 'ວັ່ງກີ້ນີ້',
474
+ minute: 'ໜຶ່ງນາທີກ່ອນ',
475
+ minutes: function(m) { return Math.round(m) + ' ນາທີກ່ອນ'; },
476
+ hour: 'ໜຶ່ງຊົ່ວໂມງກ່ອນ',
477
+ hours: function(h) { return Math.round(h) + ' ົ່ວໂມງກ່ອນ'; },
478
+ day: 'ໜຶ່ງມື້ກ່ອນ',
479
+ days: function(d) { return Math.round(d) + ' ມື້ກ່ອນ'; },
480
+ month: 'ໜຶ່ງເດືອນກ່ອນ',
481
+ months: function(d) { return Math.round(d / 30) + ' ເດືອນກ່ອນ'; },
482
+ year: 'ໜຶ່ງປີກ່ອນ',
483
+ years: function(y) { return Math.round(y) + ' ປີກ່ອນ'; }
484
+ },
485
+ sl: {
486
+ second: 'pravkar',
487
+ minute: 'pred eno minuto',
488
+ minutes: function(m) { return 'pred ' + Math.round(m) + ' minutami'; },
489
+ hour: 'pred eno uro',
490
+ hours: function(h) { return 'pred ' + Math.round(h) + ' urami'; },
491
+ day: 'pred enim dnem',
492
+ days: function(d) { return 'pred ' + Math.round(d) + ' dnevi'; },
493
+ month: 'pred enim mesecem',
494
+ months: function(d) { return 'pred ' + Math.round(d / 30) + ' meseci'; },
495
+ year: 'pred enim letom',
496
+ years: function(y) { return 'pred ' + Math.round(y) + ' leti'; }
497
+ },
498
+ et: {
499
+ second: 'just nüüd',
500
+ minute: 'minut tagasi',
501
+ minutes: function(m) { return Math.round(m) + ' minutit tagasi'; },
502
+ hour: 'tund tagasi',
503
+ hours: function(h) { return Math.round(h) + ' tundi tagasi'; },
504
+ day: 'päev tagasi',
505
+ days: function(d) { return Math.round(d) + ' päeva tagasi'; },
506
+ month: 'kuu aega tagasi',
507
+ months: function(d) { return Math.round(d / 30) + ' kuud tagasi'; },
508
+ year: 'aasta tagasi',
509
+ years: function(y) { return Math.round(y) + ' aastat tagasi'; }
510
+ }
511
+ };
grw.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Widget for Google Reviews
4
  Plugin URI: https://richplugins.com/business-reviews-bundle-wordpress-plugin
5
  Description: Instantly Google Places Reviews on your website to increase user confidence and SEO.
6
- Version: 2.0.1
7
  Author: RichPlugins <support@richplugins.com>
8
  Author URI: https://richplugins.com
9
  Text Domain: widget-google-reviews
@@ -18,7 +18,7 @@ if (!defined('ABSPATH')) {
18
 
19
  require(ABSPATH . 'wp-includes/version.php');
20
 
21
- define('GRW_VERSION' , '2.0.1');
22
  define('GRW_PLUGIN_FILE' , __FILE__);
23
  define('GRW_PLUGIN_URL' , plugins_url(basename(plugin_dir_path(__FILE__ )), basename(__FILE__)));
24
  define('GRW_ASSETS_URL' , GRW_PLUGIN_URL . '/assets/');
3
  Plugin Name: Widget for Google Reviews
4
  Plugin URI: https://richplugins.com/business-reviews-bundle-wordpress-plugin
5
  Description: Instantly Google Places Reviews on your website to increase user confidence and SEO.
6
+ Version: 2.0.2
7
  Author: RichPlugins <support@richplugins.com>
8
  Author URI: https://richplugins.com
9
  Text Domain: widget-google-reviews
18
 
19
  require(ABSPATH . 'wp-includes/version.php');
20
 
21
+ define('GRW_VERSION' , '2.0.2');
22
  define('GRW_PLUGIN_FILE' , __FILE__);
23
  define('GRW_PLUGIN_URL' , plugins_url(basename(plugin_dir_path(__FILE__ )), basename(__FILE__)));
24
  define('GRW_ASSETS_URL' , GRW_PLUGIN_URL . '/assets/');
includes/admin/class-admin-notice.php CHANGED
@@ -1,73 +1,75 @@
1
- <?php
2
-
3
- namespace WP_Rplg_Google_Reviews\Includes\Admin;
4
-
5
- class Admin_Notice {
6
-
7
- private static $plugin_notices = array(
8
- 'settings_active_0' => 'Plugin disabled successfully.',
9
- 'settings_active_1' => 'Plugin enabled successfully.',
10
- 'settings_save' => 'Settings saved successfully.',
11
- 'settings_create_db' => 'Database re-created successfully.',
12
- 'settings_reset' => 'Settings deleted successfully.',
13
- 'settings_install' => 'Plugin installed from scratch successfully.',
14
- 'settings_reset_all' => 'All data including settings and reviews deleted successfully.',
15
- );
16
-
17
- public function register() {
18
- add_filter('removable_query_args', array($this, 'remove_query_args'));
19
- add_action('admin_notices', array($this, 'parse_notices_from_url'));
20
- add_action('admin_notices', array($this, 'render_notices'));
21
- }
22
-
23
- public function remove_query_args($args) {
24
- return array_merge($args, array('grw_notice'));
25
- }
26
-
27
- public function parse_notices_from_url() {
28
- if (!isset($_GET['grw_notice'])) {
29
- return;
30
- }
31
-
32
- $this->notice_id = sanitize_text_field(wp_unslash($_GET['grw_notice']));
33
- }
34
-
35
- public function render_notices() {
36
- if (empty($this->notice_id) || !$this->is_valid_screen()) {
37
- return;
38
- }
39
-
40
- if (doing_action('admin_notices') && $this->needs_repositioned()) {
41
- add_action('grw_admin_notices', array($this, 'render_notices'));
42
- return;
43
- }
44
-
45
- ?>
46
- <div class="notice notice-success is-dismissible">
47
- <p><?php echo $this->notice_id != 'custom_msg' ? self::$plugin_notices[$this->notice_id] : get_option('grw_notice_msg'); ?></p>
48
- </div>
49
- <?php
50
-
51
- $this->notice_id = '';
52
- }
53
-
54
- protected function is_valid_screen($screen_id = '') {
55
- if ($screen_id === '') {
56
- $screen = get_current_screen();
57
- $screen_id = $screen->id;
58
- }
59
-
60
- return ($screen_id === 'dashboard' || $screen_id === 'plugins' || strpos($screen_id, 'grw') !== false) ? true : false;
61
- }
62
-
63
- protected function needs_repositioned($screen_id = '') {
64
- if ($screen_id === '') {
65
- $screen = get_current_screen();
66
- $screen_id = $screen->id;
67
- }
68
-
69
- $screen_ids = array('google-reviews_page_grw-settings');
70
- return in_array($screen_id, $screen_ids) ? true : false;
71
- }
72
-
73
- }
 
 
1
+ <?php
2
+
3
+ namespace WP_Rplg_Google_Reviews\Includes\Admin;
4
+
5
+ class Admin_Notice {
6
+
7
+ private static $plugin_notices = array(
8
+ 'settings_active_0' => 'Plugin disabled successfully.',
9
+ 'settings_active_1' => 'Plugin enabled successfully.',
10
+ 'settings_save' => 'Settings saved successfully.',
11
+ 'settings_create_db' => 'Database re-created successfully.',
12
+ 'settings_reset' => 'Settings deleted successfully.',
13
+ 'settings_install' => 'Plugin installed from scratch successfully.',
14
+ 'settings_reset_all' => 'All data including settings and reviews deleted successfully.',
15
+ 'settings_debug_mode_0' => 'Debug mode disabled successfully.',
16
+ 'settings_debug_mode_1' => 'Debug mode enabled successfully.',
17
+ );
18
+
19
+ public function register() {
20
+ add_filter('removable_query_args', array($this, 'remove_query_args'));
21
+ add_action('admin_notices', array($this, 'parse_notices_from_url'));
22
+ add_action('admin_notices', array($this, 'render_notices'));
23
+ }
24
+
25
+ public function remove_query_args($args) {
26
+ return array_merge($args, array('grw_notice'));
27
+ }
28
+
29
+ public function parse_notices_from_url() {
30
+ if (!isset($_GET['grw_notice'])) {
31
+ return;
32
+ }
33
+
34
+ $this->notice_id = sanitize_text_field(wp_unslash($_GET['grw_notice']));
35
+ }
36
+
37
+ public function render_notices() {
38
+ if (empty($this->notice_id) || !$this->is_valid_screen()) {
39
+ return;
40
+ }
41
+
42
+ if (doing_action('admin_notices') && $this->needs_repositioned()) {
43
+ add_action('grw_admin_notices', array($this, 'render_notices'));
44
+ return;
45
+ }
46
+
47
+ ?>
48
+ <div class="notice notice-success is-dismissible">
49
+ <p><?php echo $this->notice_id != 'custom_msg' ? self::$plugin_notices[$this->notice_id] : get_option('grw_notice_msg'); ?></p>
50
+ </div>
51
+ <?php
52
+
53
+ $this->notice_id = '';
54
+ }
55
+
56
+ protected function is_valid_screen($screen_id = '') {
57
+ if ($screen_id === '') {
58
+ $screen = get_current_screen();
59
+ $screen_id = $screen->id;
60
+ }
61
+
62
+ return ($screen_id === 'dashboard' || $screen_id === 'plugins' || strpos($screen_id, 'grw') !== false) ? true : false;
63
+ }
64
+
65
+ protected function needs_repositioned($screen_id = '') {
66
+ if ($screen_id === '') {
67
+ $screen = get_current_screen();
68
+ $screen_id = $screen->id;
69
+ }
70
+
71
+ $screen_ids = array('google-reviews_page_grw-settings');
72
+ return in_array($screen_id, $screen_ids) ? true : false;
73
+ }
74
+
75
+ }
includes/class-activator.php CHANGED
@@ -21,6 +21,7 @@ class Activator {
21
  'rplg_rev_notice_show',
22
  'grw_debug_refresh',
23
  'grw_auth_code',
 
24
  );
25
  }
26
 
@@ -36,8 +37,6 @@ class Activator {
36
 
37
  /**
38
  * Activates the plugin on a multisite
39
- *
40
- * @since 2.0.0
41
  */
42
  public function activate() {
43
  $network_wide = get_option('grw_is_multisite');
@@ -107,13 +106,56 @@ class Activator {
107
  update_option('grw_auth_code', $this->random_str(127));
108
  }
109
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
111
  }
112
 
113
  /**
114
  * Creates the plugin database on a multisite
115
- *
116
- * @since 2.0.0
117
  */
118
  public function create_db() {
119
  $network_wide = get_option('grw_is_multisite');
@@ -142,8 +184,6 @@ class Activator {
142
 
143
  /**
144
  * Drops the plugin database on a multisite
145
- *
146
- * @since 2.0.0
147
  */
148
  public function drop_db($multisite = false) {
149
  $network_wide = get_option('grw_is_multisite');
@@ -172,8 +212,6 @@ class Activator {
172
 
173
  /**
174
  * Delete all options of the plugin on a multisite
175
- *
176
- * @since 2.0.0
177
  */
178
  public function delete_all_options($multisite = false) {
179
  $network_wide = get_option('grw_is_multisite');
@@ -204,8 +242,6 @@ class Activator {
204
 
205
  /**
206
  * Delete all feeds of the plugin on a multisite
207
- *
208
- * @since 2.0.0
209
  */
210
  public function delete_all_feeds($multisite = false) {
211
  $network_wide = get_option('grw_is_multisite');
21
  'rplg_rev_notice_show',
22
  'grw_debug_refresh',
23
  'grw_auth_code',
24
+ 'grw_debug_mode',
25
  );
26
  }
27
 
37
 
38
  /**
39
  * Activates the plugin on a multisite
 
 
40
  */
41
  public function activate() {
42
  $network_wide = get_option('grw_is_multisite');
106
  update_option('grw_auth_code', $this->random_str(127));
107
  }
108
  break;
109
+ case version_compare($last_active_version, '2.0.2', '<'):
110
+
111
+ if (!function_exists('drop_index') || !function_exists('dbDelta')) {
112
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
113
+ }
114
+ if (!function_exists('maybe_drop_column')) {
115
+ // Define 'maybe_drop_column' function without including install-helper.php due to error:
116
+ // Fatal error: Cannot redeclare maybe_create_table()
117
+ // (previously declared in /wp-admin/install-helper.php:52) in /wp-admin/includes/upgrade.php on line 1616
118
+ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
119
+ global $wpdb;
120
+ foreach ($wpdb->get_col( "DESC $table_name", 0) as $column) {
121
+ if ($column === $column_name) {
122
+ $wpdb->query($drop_ddl);
123
+ foreach ($wpdb->get_col("DESC $table_name", 0) as $column) {
124
+ if ($column === $column_name) {
125
+ return false;
126
+ }
127
+ }
128
+ }
129
+ }
130
+ return true;
131
+ }
132
+ }
133
+
134
+ if (drop_index($wpdb->prefix . Database::REVIEW_TABLE, 'grp_google_review_hash')) {
135
+ maybe_drop_column(
136
+ $wpdb->prefix . Database::REVIEW_TABLE,
137
+ "hash",
138
+ "ALTER TABLE " . $wpdb->prefix . Database::REVIEW_TABLE . " DROP COLUMN hash"
139
+ );
140
+ }
141
+
142
+ $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_stats (".
143
+ "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
144
+ "google_place_id BIGINT(20) UNSIGNED NOT NULL,".
145
+ "time INTEGER NOT NULL,".
146
+ "rating DOUBLE PRECISION,".
147
+ "review_count INTEGER,".
148
+ "PRIMARY KEY (`id`),".
149
+ "INDEX grp_google_place_id (`google_place_id`)".
150
+ ") " . $wpdb->get_charset_collate() . ";";
151
+
152
+ dbDelta($sql);
153
+ break;
154
  }
155
  }
156
 
157
  /**
158
  * Creates the plugin database on a multisite
 
 
159
  */
160
  public function create_db() {
161
  $network_wide = get_option('grw_is_multisite');
184
 
185
  /**
186
  * Drops the plugin database on a multisite
 
 
187
  */
188
  public function drop_db($multisite = false) {
189
  $network_wide = get_option('grw_is_multisite');
212
 
213
  /**
214
  * Delete all options of the plugin on a multisite
 
 
215
  */
216
  public function delete_all_options($multisite = false) {
217
  $network_wide = get_option('grw_is_multisite');
242
 
243
  /**
244
  * Delete all feeds of the plugin on a multisite
 
 
245
  */
246
  public function delete_all_feeds($multisite = false) {
247
  $network_wide = get_option('grw_is_multisite');
includes/class-assets.php CHANGED
@@ -6,27 +6,26 @@ class Assets {
6
 
7
  private $url;
8
  private $version;
9
- private $suffix;
10
 
11
  private static $css_assets = array(
12
- 'grw-admin-css' => 'css/admin',
13
- 'grw-builder-css' => 'css/builder',
14
- 'grw-css' => 'css/google-review',
15
  );
16
 
17
  private static $js_assets = array(
18
- 'grw-wpac-js' => 'js/wpac',
19
- 'grw-admin-js' => 'js/admin',
20
- 'grw-builder-js' => 'js/builder',
21
- 'grw-time-js' => 'js/wpac-time',
22
- 'blazy-js' => 'js/blazy.min',
23
- 'grw-js' => 'js/rplg',
24
  );
25
 
26
- public function __construct($url, $version) {
27
  $this->url = $url;
28
  $this->version = $version;
29
- $this->suffix = '';
30
  }
31
 
32
  public function register() {
@@ -47,18 +46,30 @@ class Assets {
47
  }
48
 
49
  public function register_styles() {
50
- $this->register_styles_loop(array('grw-admin-css', 'grw-builder-css', 'grw-css'));
 
 
 
 
51
  }
52
 
53
  public function register_scripts() {
54
- $this->register_scripts_loop(array('grw-wpac-js', 'grw-admin-js', 'grw-builder-js', 'grw-time-js', 'blazy-js', 'grw-js'));
 
 
 
 
 
 
55
  }
56
 
57
  public function enqueue_admin_styles() {
58
  wp_enqueue_style('wp-jquery-ui-dialog');
59
- wp_enqueue_style('grw-admin-css');
60
- wp_enqueue_style('grw-builder-css');
61
- wp_enqueue_style('grw-css');
 
 
62
  }
63
 
64
  public function enqueue_admin_scripts() {
@@ -68,44 +79,33 @@ class Assets {
68
  wp_enqueue_script('jquery-ui-sortable');
69
  wp_enqueue_script('jquery-ui-dialog');
70
 
71
- wp_enqueue_script('grw-wpac-js');
72
- wp_enqueue_script('grw-admin-js');
73
-
74
- wp_localize_script('grw-builder-js', 'GRW_VARS', array(
75
  'googleAPIKey' => get_option('grw_google_api_key'),
76
  'GOOGLE_AVATAR' => GRW_GOOGLE_AVATAR,
77
  'handlerUrl' => admin_url('options-general.php?page=grw'),
78
  'supportUrl' => admin_url('admin.php?page=grw-support'),
79
  'actionPrefix' => 'grw',
80
  'wordpress' => true,
81
- ));
82
- wp_enqueue_script('grw-builder-js');
83
 
84
- wp_enqueue_script('grw-time-js');
85
- wp_enqueue_script('blazy-js');
86
- wp_enqueue_script('grw-js');
 
 
 
 
 
 
 
87
  }
88
 
89
  public function enqueue_public_styles() {
90
- wp_enqueue_style('grw-css');
91
  }
92
 
93
  public function enqueue_public_scripts() {
94
- wp_enqueue_script('grw-time-js');
95
- //wp_enqueue_script('blazy-js');
96
- wp_enqueue_script('grw-js');
97
- }
98
-
99
- public function get_public_styles() {
100
- return array($this->get_css_asset('grw-css'));
101
- }
102
-
103
- public function get_public_scripts() {
104
- return array(
105
- $this->get_js_asset('grw-time-js'),
106
- $this->get_js_asset('blazy-js'),
107
- $this->get_js_asset('grw-js'),
108
- );
109
  }
110
 
111
  private function register_styles_loop($styles) {
@@ -121,11 +121,11 @@ class Assets {
121
  }
122
 
123
  private function get_css_asset($asset) {
124
- return $this->url . self::$css_assets[$asset] . $this->suffix . '.css';
125
  }
126
 
127
  private function get_js_asset($asset) {
128
- return $this->url . self::$js_assets[$asset] . $this->suffix . '.js';
129
  }
130
 
131
  }
6
 
7
  private $url;
8
  private $version;
9
+ private $debug;
10
 
11
  private static $css_assets = array(
12
+ 'grw-admin-main-css' => 'css/admin-main',
13
+ 'grw-public-clean-css' => 'css/public-clean',
14
+ 'grw-public-main-css' => 'css/public-main',
15
  );
16
 
17
  private static $js_assets = array(
18
+ 'grw-admin-main-js' => 'js/admin-main',
19
+ 'grw-admin-builder-js' => 'js/admin-builder',
20
+ 'grw-public-time-js' => 'js/public-time',
21
+ 'grw-public-blazy-js' => 'js/public-blazy.min',
22
+ 'grw-public-main-js' => 'js/public-main',
 
23
  );
24
 
25
+ public function __construct($url, $version, $debug) {
26
  $this->url = $url;
27
  $this->version = $version;
28
+ $this->debug = $debug;
29
  }
30
 
31
  public function register() {
46
  }
47
 
48
  public function register_styles() {
49
+ $styles = array('grw-admin-main-css', 'grw-public-main-css');
50
+ if ($this->debug) {
51
+ array_push($styles, 'grw-public-clean-css');
52
+ }
53
+ $this->register_styles_loop($styles);
54
  }
55
 
56
  public function register_scripts() {
57
+ $scripts = array('grw-admin-main-js', 'grw-public-main-js');
58
+ if ($this->debug) {
59
+ array_push($scripts, 'grw-admin-builder-js');
60
+ array_push($scripts, 'grw-public-time-js');
61
+ array_push($scripts, 'grw-public-blazy-js');
62
+ }
63
+ $this->register_scripts_loop($scripts);
64
  }
65
 
66
  public function enqueue_admin_styles() {
67
  wp_enqueue_style('wp-jquery-ui-dialog');
68
+ wp_enqueue_style('grw-admin-main-css');
69
+ wp_enqueue_style('grw-public-main-css');
70
+ if ($this->debug) {
71
+ wp_enqueue_style('grw-public-clean-css');
72
+ }
73
  }
74
 
75
  public function enqueue_admin_scripts() {
79
  wp_enqueue_script('jquery-ui-sortable');
80
  wp_enqueue_script('jquery-ui-dialog');
81
 
82
+ $vars = array(
 
 
 
83
  'googleAPIKey' => get_option('grw_google_api_key'),
84
  'GOOGLE_AVATAR' => GRW_GOOGLE_AVATAR,
85
  'handlerUrl' => admin_url('options-general.php?page=grw'),
86
  'supportUrl' => admin_url('admin.php?page=grw-support'),
87
  'actionPrefix' => 'grw',
88
  'wordpress' => true,
89
+ );
 
90
 
91
+ if ($this->debug) {
92
+ wp_localize_script('grw-admin-builder-js', 'GRW_VARS', $vars);
93
+ wp_enqueue_script('grw-admin-builder-js');
94
+ wp_enqueue_script('grw-public-time-js');
95
+ wp_enqueue_script('grw-public-blazy-js');
96
+ } else {
97
+ wp_localize_script('grw-admin-main-js', 'GRW_VARS', $vars);
98
+ }
99
+ wp_enqueue_script('grw-admin-main-js');
100
+ wp_enqueue_script('grw-public-main-js');
101
  }
102
 
103
  public function enqueue_public_styles() {
104
+ wp_enqueue_style('grw-public-main-css');
105
  }
106
 
107
  public function enqueue_public_scripts() {
108
+ wp_enqueue_script('grw-public-main-js');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
 
111
  private function register_styles_loop($styles) {
121
  }
122
 
123
  private function get_css_asset($asset) {
124
+ return $this->url . ($this->debug ? 'src/' : '') . self::$css_assets[$asset] . '.css';
125
  }
126
 
127
  private function get_js_asset($asset) {
128
+ return $this->url . ($this->debug ? 'src/' : '') . self::$js_assets[$asset] . '.js';
129
  }
130
 
131
  }
includes/class-builder-page.php CHANGED
@@ -123,8 +123,9 @@ class Builder_Page {
123
  return;
124
  }
125
  grw_builder_init($, {
126
- el: '#grw-builder-option',
127
- use_gpa: true,
 
128
  <?php if (strlen($feed_content) > 0) { echo 'conns: ' . $feed_content; } ?>
129
  });
130
  }
123
  return;
124
  }
125
  grw_builder_init($, {
126
+ el : '#grw-builder-option',
127
+ use_gpa : true,
128
+ authcode : '<?php echo get_option('grw_auth_code'); ?>',
129
  <?php if (strlen($feed_content) > 0) { echo 'conns: ' . $feed_content; } ?>
130
  });
131
  }
includes/class-plugin-settings.php CHANGED
@@ -21,15 +21,12 @@ class Plugin_Settings {
21
 
22
  $tab = isset($_GET['grw_tab']) && strlen($_GET['grw_tab']) > 0 ? sanitize_text_field(wp_unslash($_GET['grw_tab'])) : 'active';
23
 
24
- $grw_enabled = get_option('grw_active') == '1';
25
- $grw_demand_assets = get_option('grw_demand_assets');
26
- $grw_minified_assets = get_option('grw_minified_assets');
27
-
28
- $grw_google_api_key = get_option('grw_google_api_key');
29
-
30
- $grw_latest_version = get_option('grw_latest_version');
31
-
32
- $milliseconds = round(microtime(true) * 1000);
33
  ?>
34
 
35
  <div class="grw-page-title">
@@ -60,33 +57,6 @@ class Plugin_Settings {
60
  <input type="submit" name="active" class="button" value="<?php echo $grw_enabled ? 'Disable' : 'Enable'; ?>" />
61
  </div>
62
  </div>
63
- <div class="grw-field">
64
- <div class="grw-field-label">
65
- <label>Load assets on demand</label>
66
- </div>
67
- <div class="wp-review-field-option">
68
- <label>
69
- <input type="hidden" name="grw_demand_assets" value="false">
70
- <input type="checkbox" id="grw_demand_assets" name="grw_demand_assets" value="true" <?php checked('true', $grw_demand_assets); ?>>
71
- Load static assets (JavaScripts/CSS) only on pages where reviews are showing
72
- </label>
73
- </div>
74
- </div>
75
- <div class="grw-field">
76
- <div class="grw-field-label">
77
- <label>Minify and assemble assets</label>
78
- </div>
79
- <div class="wp-review-field-option">
80
- <label>
81
- <input type="hidden" name="grw_minified_assets" value="false">
82
- <input type="checkbox" id="grw_minified_assets" name="grw_minified_assets" value="true" <?php checked('true', $grw_minified_assets); ?>>
83
- Minify and assemble static assets (JavaScripts/CSS) to single style and script files
84
- </label>
85
- <div style="padding-top:15px">
86
- <input type="submit" value="Save" name="save" class="button" />
87
- </div>
88
- </div>
89
- </div>
90
  </form>
91
  </div>
92
 
@@ -100,6 +70,9 @@ class Plugin_Settings {
100
  </div>
101
  <div class="wp-review-field-option">
102
  <input type="text" id="grw_google_api_key" name="grw_google_api_key" class="regular-text" value="<?php echo esc_attr($grw_google_api_key); ?>">
 
 
 
103
  <p>If you do not know how to create Google API key, please read: <a href="<?php echo admin_url('admin.php?page=grw-support&grw_tab=fig'); ?>">Full Installation Guide</a></p>
104
  <div style="padding-top:15px">
105
  <input type="submit" value="Save" name="save" class="button" />
@@ -151,6 +124,15 @@ class Plugin_Settings {
151
  <p id="grw_debug_msg"></p>
152
  </div>
153
  </div>
 
 
 
 
 
 
 
 
 
154
  </form>
155
  </div>
156
 
21
 
22
  $tab = isset($_GET['grw_tab']) && strlen($_GET['grw_tab']) > 0 ? sanitize_text_field(wp_unslash($_GET['grw_tab'])) : 'active';
23
 
24
+ $grw_enabled = get_option('grw_active') == '1';
25
+ $grw_demand_assets = get_option('grw_demand_assets');
26
+ $grw_minified_assets = get_option('grw_minified_assets');
27
+ $grw_google_api_key = get_option('grw_google_api_key');
28
+ $grw_activation_time = get_option('grw_activation_time');
29
+ $grw_debug_mode = get_option('grw_debug_mode') == '1';
 
 
 
30
  ?>
31
 
32
  <div class="grw-page-title">
57
  <input type="submit" name="active" class="button" value="<?php echo $grw_enabled ? 'Disable' : 'Enable'; ?>" />
58
  </div>
59
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  </form>
61
  </div>
62
 
70
  </div>
71
  <div class="wp-review-field-option">
72
  <input type="text" id="grw_google_api_key" name="grw_google_api_key" class="regular-text" value="<?php echo esc_attr($grw_google_api_key); ?>">
73
+ <?php if (!$grw_google_api_key && time() - $grw_activation_time > 60 * 60 * 48) { ?>
74
+ <div class="grw-warn">Your Google API key is not set for this reason, reviews are not automatically updated daily.<br>Please create your own Google API key and save here.</div>
75
+ <?php } ?>
76
  <p>If you do not know how to create Google API key, please read: <a href="<?php echo admin_url('admin.php?page=grw-support&grw_tab=fig'); ?>">Full Installation Guide</a></p>
77
  <div style="padding-top:15px">
78
  <input type="submit" value="Save" name="save" class="button" />
124
  <p id="grw_debug_msg"></p>
125
  </div>
126
  </div>
127
+ <div class="grw-field">
128
+ <div class="grw-field-label">
129
+ <label>Debug mode is currently <b><?php echo $grw_debug_mode ? 'enabled' : 'disabled' ?></b></label>
130
+ </div>
131
+ <div class="wp-review-field-option">
132
+ <?php wp_nonce_field('grw-wpnonce_debug_mode', 'grw-form_nonce_debug_mode'); ?>
133
+ <input type="submit" name="debug_mode" class="button" value="<?php echo $grw_debug_mode ? 'Disable' : 'Enable'; ?>" />
134
+ </div>
135
+ </div>
136
  </form>
137
  </div>
138
 
includes/class-plugin.php CHANGED
@@ -40,7 +40,7 @@ final class Plugin {
40
 
41
  $debug_info = new Debug_Info($activator);
42
 
43
- $assets = new Assets(GRW_ASSETS_URL, $this->version);
44
  $assets->register();
45
 
46
  $post_types = new Post_Types();
40
 
41
  $debug_info = new Debug_Info($activator);
42
 
43
+ $assets = new Assets(GRW_ASSETS_URL, $this->version, get_option('grw_debug_mode') == '1');
44
  $assets->register();
45
 
46
  $post_types = new Post_Types();
includes/class-settings-save.php CHANGED
@@ -72,6 +72,12 @@ class Settings_Save {
72
  $notice_code = 'settings_reset_all';
73
  }
74
 
 
 
 
 
 
 
75
  $this->redirect_to_tab($notice_code);
76
  }
77
 
@@ -96,7 +102,7 @@ class Settings_Save {
96
  }
97
 
98
  private function check_nonce() {
99
- $nonce_actions = array('active', 'save', 'create_db', 'reset', 'reset_all');
100
  $nonce_form_prefix = 'grw-form_nonce_';
101
  $nonce_action_prefix = 'grw-wpnonce_';
102
  foreach ($nonce_actions as $key => $value) {
72
  $notice_code = 'settings_reset_all';
73
  }
74
 
75
+ if (isset($_POST['debug_mode'])) {
76
+ $debug_mode = $_POST['debug_mode'] == 'Enable' ? '1' : '0';
77
+ update_option('grw_debug_mode', $debug_mode);
78
+ $notice_code = 'settings_debug_mode_' . $debug_mode;
79
+ }
80
+
81
  $this->redirect_to_tab($notice_code);
82
  }
83
 
102
  }
103
 
104
  private function check_nonce() {
105
+ $nonce_actions = array('active', 'save', 'create_db', 'reset', 'reset_all', 'debug_mode');
106
  $nonce_form_prefix = 'grw-form_nonce_';
107
  $nonce_action_prefix = 'grw-wpnonce_';
108
  foreach ($nonce_actions as $key => $value) {
includes/class-view.php CHANGED
@@ -155,7 +155,7 @@ class View {
155
  </div>
156
  </div>
157
  <div class="wp-google-footer">
158
- <img src="<?php echo GRW_ASSETS_URL; ?>/img/powered_by_google_on_<?php if ($options->dark_theme) { ?>non_<?php } ?>white.png" alt="powered by Google" width="144" height="18" title="powered by Google">
159
  </div>
160
  </div>
161
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" onload="(function(el) { document.addEventListener('DOMContentLoaded', function() { grw_badge_init(el); }); })(this.parentNode);" style="display:none">
@@ -181,7 +181,7 @@ class View {
181
  <?php } ?>
182
  <?php if ($show_powered) { ?>
183
  <div class="wp-google-powered">
184
- <img src="<?php echo GRW_ASSETS_URL; ?>/img/powered_by_google_on_<?php if ($dark_theme) { ?>non_<?php } ?>white.png" alt="powered by Google" width="144" height="18" title="powered by Google">
185
  </div>
186
  <?php } ?>
187
  </div>
155
  </div>
156
  </div>
157
  <div class="wp-google-footer">
158
+ <img src="<?php echo GRW_ASSETS_URL; ?>img/powered_by_google_on_<?php if ($options->dark_theme) { ?>non_<?php } ?>white.png" alt="powered by Google" width="144" height="18" title="powered by Google">
159
  </div>
160
  </div>
161
  <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" onload="(function(el) { document.addEventListener('DOMContentLoaded', function() { grw_badge_init(el); }); })(this.parentNode);" style="display:none">
181
  <?php } ?>
182
  <?php if ($show_powered) { ?>
183
  <div class="wp-google-powered">
184
+ <img src="<?php echo GRW_ASSETS_URL; ?>img/powered_by_google_on_<?php if ($dark_theme) { ?>non_<?php } ?>white.png" alt="powered by Google" width="144" height="18" title="powered by Google">
185
  </div>
186
  <?php } ?>
187
  </div>
includes/core/class-connect-google.php CHANGED
@@ -145,37 +145,81 @@ class Connect_Google {
145
  )
146
  );
147
 
 
148
  if ($google_place_id) {
149
 
 
150
  $update_params = array(
151
  'name' => $place->name,
152
  'rating' => $place->rating,
153
  );
154
- if (isset($place->user_ratings_total)) {
155
- $update_params['review_count'] = $place->user_ratings_total;
 
 
 
156
  }
157
  if (isset($place->business_photo) && strlen($place->business_photo) > 0) {
158
  $update_params['photo'] = $place->business_photo;
159
  }
160
  $wpdb->update($wpdb->prefix . Database::BUSINESS_TABLE, $update_params, array('ID' => $google_place_id));
161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  } else {
163
 
 
 
 
 
 
164
  $wpdb->insert($wpdb->prefix . Database::BUSINESS_TABLE, array(
165
  'place_id' => $place->place_id,
166
  'name' => $place->name,
167
  'photo' => $place->business_photo,
168
  'icon' => $place->icon,
169
  'address' => $place->formatted_address,
170
- 'rating' => isset($place->rating) ? $place->rating : null,
171
  'url' => isset($place->url) ? $place->url : null,
172
  'website' => isset($place->website) ? $place->website : null,
173
- 'review_count' => isset($place->user_ratings_total) ?
174
- $place->user_ratings_total : (isset($place->reviews) ? count($place->reviews) : null)
175
  ));
176
  $google_place_id = $wpdb->insert_id;
 
 
 
 
 
 
 
 
 
177
  }
178
 
 
179
  if ($place->reviews) {
180
 
181
  $reviews = $place->reviews;
@@ -211,7 +255,6 @@ class Connect_Google {
211
  } else {
212
  $wpdb->insert($wpdb->prefix . Database::REVIEW_TABLE, array(
213
  'google_place_id' => $google_place_id,
214
- 'hash' => microtime(), //TODO: workaround to support old versions
215
  'rating' => $review->rating,
216
  'text' => $review->text,
217
  'time' => $review->time,
145
  )
146
  );
147
 
148
+ // Insert or update Google place
149
  if ($google_place_id) {
150
 
151
+ // Update Google place
152
  $update_params = array(
153
  'name' => $place->name,
154
  'rating' => $place->rating,
155
  );
156
+
157
+ $review_count = isset($place->user_ratings_total) ? $place->user_ratings_total : 0;
158
+
159
+ if ($review_count > 0) {
160
+ $update_params['review_count'] = $review_count;
161
  }
162
  if (isset($place->business_photo) && strlen($place->business_photo) > 0) {
163
  $update_params['photo'] = $place->business_photo;
164
  }
165
  $wpdb->update($wpdb->prefix . Database::BUSINESS_TABLE, $update_params, array('ID' => $google_place_id));
166
 
167
+ // Insert Google place rating stats
168
+ $stats = $wpdb->get_results(
169
+ $wpdb->prepare(
170
+ "SELECT rating, review_count FROM " . $wpdb->prefix . Database::STATS_TABLE .
171
+ " WHERE google_place_id = %d ORDER BY id DESC LIMIT 1", $google_place_id
172
+ )
173
+ );
174
+ if (count($stats) > 0) {
175
+ if ($stats[0]->rating != $place->rating || ($review_count > 0 && $stats[0]->review_count != $review_count)) {
176
+ $wpdb->insert($wpdb->prefix . Database::STATS_TABLE, array(
177
+ 'google_place_id' => $google_place_id,
178
+ 'time' => time(),
179
+ 'rating' => $place->rating,
180
+ 'review_count' => $review_count
181
+ ));
182
+ }
183
+ } else {
184
+ $wpdb->insert($wpdb->prefix . Database::STATS_TABLE, array(
185
+ 'google_place_id' => $google_place_id,
186
+ 'time' => time(),
187
+ 'rating' => $place->rating,
188
+ 'review_count' => $review_count
189
+ ));
190
+ }
191
+
192
  } else {
193
 
194
+ // Insert Google place
195
+ $place_rating = isset($place->rating) ? $place->rating : null;
196
+ $review_count = isset($place->user_ratings_total) ?
197
+ $place->user_ratings_total : (isset($place->reviews) ? count($place->reviews) : null);
198
+
199
  $wpdb->insert($wpdb->prefix . Database::BUSINESS_TABLE, array(
200
  'place_id' => $place->place_id,
201
  'name' => $place->name,
202
  'photo' => $place->business_photo,
203
  'icon' => $place->icon,
204
  'address' => $place->formatted_address,
205
+ 'rating' => $place_rating,
206
  'url' => isset($place->url) ? $place->url : null,
207
  'website' => isset($place->website) ? $place->website : null,
208
+ 'review_count' => $review_count
 
209
  ));
210
  $google_place_id = $wpdb->insert_id;
211
+
212
+ if ($place_rating > 0) {
213
+ $wpdb->insert($wpdb->prefix . Database::STATS_TABLE, array(
214
+ 'google_place_id' => $google_place_id,
215
+ 'time' => time(),
216
+ 'rating' => $place_rating,
217
+ 'review_count' => $review_count
218
+ ));
219
+ }
220
  }
221
 
222
+ // Insert or update Google reviews
223
  if ($place->reviews) {
224
 
225
  $reviews = $place->reviews;
255
  } else {
256
  $wpdb->insert($wpdb->prefix . Database::REVIEW_TABLE, array(
257
  'google_place_id' => $google_place_id,
 
258
  'rating' => $review->rating,
259
  'text' => $review->text,
260
  'time' => $review->time,
includes/core/class-database.php CHANGED
@@ -8,11 +8,17 @@ class Database {
8
 
9
  const REVIEW_TABLE = 'grp_google_review';
10
 
 
 
11
  public function create() {
12
  global $wpdb;
13
 
14
  $charset_collate = $wpdb->get_charset_collate();
15
 
 
 
 
 
16
  $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_place (".
17
  "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
18
  "place_id VARCHAR(80) NOT NULL,".
@@ -29,14 +35,11 @@ class Database {
29
  "UNIQUE INDEX grp_place_id (`place_id`)".
30
  ") " . $charset_collate . ";";
31
 
32
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
33
-
34
  dbDelta($sql);
35
 
36
  $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_review (".
37
  "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
38
  "google_place_id BIGINT(20) UNSIGNED NOT NULL,".
39
- "hash VARCHAR(40) NOT NULL,".
40
  "rating INTEGER NOT NULL,".
41
  "text VARCHAR(10000),".
42
  "time INTEGER NOT NULL,".
@@ -46,7 +49,18 @@ class Database {
46
  "profile_photo_url VARCHAR(255),".
47
  "hide VARCHAR(1) DEFAULT '' NOT NULL,".
48
  "PRIMARY KEY (`id`),".
49
- "UNIQUE INDEX grp_google_review_hash (`hash`),".
 
 
 
 
 
 
 
 
 
 
 
50
  "INDEX grp_google_place_id (`google_place_id`)".
51
  ") " . $charset_collate . ";";
52
 
@@ -58,6 +72,7 @@ class Database {
58
 
59
  $wpdb->query("DROP TABLE " . $wpdb->prefix . self::BUSINESS_TABLE . ";");
60
  $wpdb->query("DROP TABLE " . $wpdb->prefix . self::REVIEW_TABLE . ";");
 
61
  }
62
 
63
  }
8
 
9
  const REVIEW_TABLE = 'grp_google_review';
10
 
11
+ const STATS_TABLE = 'grp_google_stats';
12
+
13
  public function create() {
14
  global $wpdb;
15
 
16
  $charset_collate = $wpdb->get_charset_collate();
17
 
18
+ if (!function_exists('dbDelta')) {
19
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
20
+ }
21
+
22
  $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_place (".
23
  "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
24
  "place_id VARCHAR(80) NOT NULL,".
35
  "UNIQUE INDEX grp_place_id (`place_id`)".
36
  ") " . $charset_collate . ";";
37
 
 
 
38
  dbDelta($sql);
39
 
40
  $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_review (".
41
  "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
42
  "google_place_id BIGINT(20) UNSIGNED NOT NULL,".
 
43
  "rating INTEGER NOT NULL,".
44
  "text VARCHAR(10000),".
45
  "time INTEGER NOT NULL,".
49
  "profile_photo_url VARCHAR(255),".
50
  "hide VARCHAR(1) DEFAULT '' NOT NULL,".
51
  "PRIMARY KEY (`id`),".
52
+ "INDEX grp_google_place_id (`google_place_id`)".
53
+ ") " . $charset_collate . ";";
54
+
55
+ dbDelta($sql);
56
+
57
+ $sql = "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix . "grp_google_stats (".
58
+ "id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,".
59
+ "google_place_id BIGINT(20) UNSIGNED NOT NULL,".
60
+ "time INTEGER NOT NULL,".
61
+ "rating DOUBLE PRECISION,".
62
+ "review_count INTEGER,".
63
+ "PRIMARY KEY (`id`),".
64
  "INDEX grp_google_place_id (`google_place_id`)".
65
  ") " . $charset_collate . ";";
66
 
72
 
73
  $wpdb->query("DROP TABLE " . $wpdb->prefix . self::BUSINESS_TABLE . ";");
74
  $wpdb->query("DROP TABLE " . $wpdb->prefix . self::REVIEW_TABLE . ";");
75
+ $wpdb->query("DROP TABLE " . $wpdb->prefix . self::STATS_TABLE . ";");
76
  }
77
 
78
  }
includes/page-setting-support.php CHANGED
@@ -1,14 +1,14 @@
1
  <div class="grw-flex-row">
2
  <div class="grw-flex-col">
3
  <div class="grw-support-question">
4
- <h3>I can't connect my Google Place.</h3>
5
- <p>Please check that you correctly found the Place ID of your Google business. It should look like <b>ChIJ</b>3TH9CwFZwokRI... This instruction helps to find any Place ID regardless of whether it has a physical address or it is an area: <a href="<?php echo admin_url('admin.php?page=grw-support&grw_tab=fig#place_id'); ?>">how to find Place ID of any Google business</a></p>
6
  </div>
7
  </div>
8
  <div class="grw-flex-col">
9
  <div class="grw-support-question">
10
- <h3>I have some error messages about the Google API key.</h3>
11
- <p>Please make sure that your correctly created the Google Places API key with <b>Places API library and without any restrictions (IP or Referrer)</b>. It should look like <b>AIzaS</b>yB3k4oWDJPF... On the <b>Settings</b> tab there is a detailed instruction and video tutorial how to create the free and correct Google Places API key.</p>
12
  </div>
13
  </div>
14
  </div>
@@ -23,6 +23,14 @@
23
  <p>Also, please check that the 'Refresh' option is enable in the widget. It will call the Google API once in three days (to avoid a Google Billing and keeps the API key is free) to check the new most helpful reviews.</p>
24
  </div>
25
  </div>
 
 
 
 
 
 
 
 
26
  <div class="grw-flex-col">
27
  <div class="grw-support-question">
28
  <h3>Is the plugin compatible with the latest version of PHP? I saw warnings about the compatibility with PHP 7 in the checker plugin.</h3>
@@ -31,8 +39,6 @@
31
  <p>The problem is that the plugin which you’re using to test compatibility with PHP 7 cannot understand that this code is not used under PHP 7 or greater. The compatibility plugin just search some keywords which deprecated in the latest version PHP and show warnings about it (without understanding that this is not used).</p>
32
  </div>
33
  </div>
34
- </div>
35
- <div class="grw-flex-row">
36
  <div class="grw-flex-col">
37
  <div class="grw-support-question">
38
  <h3>If you still need support</h3>
@@ -46,8 +52,4 @@
46
  </ul>
47
  </div>
48
  </div>
49
- <div class="grw-flex-col">
50
- <div class="grw-support-question">
51
- </div>
52
- </div>
53
  </div>
1
  <div class="grw-flex-row">
2
  <div class="grw-flex-col">
3
  <div class="grw-support-question">
4
+ <h3>I connected and displayed Google reviews, but after a while these are not updated, why?</h3>
5
+ <p>First of all, please check that you have created and saved in the plugin's settings your own Google API key, it's not a Place ID. If you didn't create it in Google console, your connected reviews are not updated automatically daily. Please read and done this 5 minutes instruction <a href="<?php echo admin_url('admin.php?page=grw-support&grw_tab=fig#fig_api_key'); ?>">how you can create your Google API key</a> and then save created API key to the plugin's settings.</p>
6
  </div>
7
  </div>
8
  <div class="grw-flex-col">
9
  <div class="grw-support-question">
10
+ <h3>I can't connect my Google Place.</h3>
11
+ <p>Please check that you correctly found the Place ID of your Google business. It should look like <b>ChIJ</b>3TH9CwFZwokRI... This instruction helps to find any Place ID regardless of whether it has a physical address or it is an area: <a href="<?php echo admin_url('admin.php?page=grw-support&grw_tab=fig#place_id'); ?>">how to find Place ID of any Google business</a></p>
12
  </div>
13
  </div>
14
  </div>
23
  <p>Also, please check that the 'Refresh' option is enable in the widget. It will call the Google API once in three days (to avoid a Google Billing and keeps the API key is free) to check the new most helpful reviews.</p>
24
  </div>
25
  </div>
26
+ <div class="grw-flex-col">
27
+ <div class="grw-support-question">
28
+ <h3>I have some error messages about the Google API key.</h3>
29
+ <p>Please make sure that your correctly created the Google Places API key with <b>Places API library and without any restrictions (IP or Referrer)</b>. It should look like <b>AIzaS</b>yB3k4oWDJPF... On the <b>Settings</b> tab there is a detailed instruction and video tutorial how to create the free and correct Google Places API key.</p>
30
+ </div>
31
+ </div>
32
+ </div>
33
+ <div class="grw-flex-row">
34
  <div class="grw-flex-col">
35
  <div class="grw-support-question">
36
  <h3>Is the plugin compatible with the latest version of PHP? I saw warnings about the compatibility with PHP 7 in the checker plugin.</h3>
39
  <p>The problem is that the plugin which you’re using to test compatibility with PHP 7 cannot understand that this code is not used under PHP 7 or greater. The compatibility plugin just search some keywords which deprecated in the latest version PHP and show warnings about it (without understanding that this is not used).</p>
40
  </div>
41
  </div>
 
 
42
  <div class="grw-flex-col">
43
  <div class="grw-support-question">
44
  <h3>If you still need support</h3>
52
  </ul>
53
  </div>
54
  </div>
 
 
 
 
55
  </div>
index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Widget for Google Reviews ===
2
  Contributors: richplugins
3
  Donate link: https://richplugins.com/business-reviews-bundle-wordpress-plugin
4
- Tags: google reviews, google, reviews, rating, widget, google business, testimonials, google places reviews, map reviews
5
  Requires at least: 2.8
6
  Tested up to: 5.8
7
- Stable tag: 2.0.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -83,6 +83,14 @@ Why limit your reviews to just Google Reviews? Check out our other free reviews
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
 
 
 
86
  = 2.0.1 =
87
  * Instantly Google reviews connecting
88
  * Full Google reviews multi-language support
1
  === Widget for Google Reviews ===
2
  Contributors: richplugins
3
  Donate link: https://richplugins.com/business-reviews-bundle-wordpress-plugin
4
+ Tags: google, google reviews, reviews, rating, widget, google business, testimonial, testimonials, google places reviews, map reviews, google my business
5
  Requires at least: 2.8
6
  Tested up to: 5.8
7
+ Stable tag: 2.0.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
83
 
84
  == Changelog ==
85
 
86
+ = 2.0.2 =
87
+ * Improve instantly Google reviews connection
88
+ * Separated assets to dist and src for speed up the loading
89
+ * Preparing a database for introducing rating & reviews stats
90
+ * Deleted unused JS libraries
91
+ * Dropped unused db columns
92
+ * Update support page
93
+
94
  = 2.0.1 =
95
  * Instantly Google reviews connecting
96
  * Full Google reviews multi-language support