WP Live Chat Support - Version 8.0.35

Version Description

It is highly recommended that you upgrade to WP Live Chat Support version 8.0.35 for stability reasons.

Download this release

Release Info

Developer WP-LiveChat
Plugin Icon 128x128 WP Live Chat Support
Version 8.0.35
Comparing to
See all releases

Code changes from version 8.0.34 to 8.0.35

Files changed (79) hide show
  1. config.php +3 -2
  2. css/admin-chat-style.css +16 -4
  3. css/admin_styles.css +13 -1
  4. css/chat-style.css +1 -1
  5. css/chat_dashboard/admin_style.css +10 -13
  6. css/jquery-ui.css +0 -1241
  7. css/jquery-ui.min.css +0 -5
  8. css/remote_dash_styles.css +79 -3
  9. css/themes/classic.css +166 -70
  10. css/themes/modern.css +198 -93
  11. css/themes/position-bottom-left.css +0 -4
  12. css/themes/position-bottom-right.css +0 -3
  13. css/themes/position-left.css +0 -5
  14. css/themes/position-right.css +0 -4
  15. css/themes/theme-default.css +1 -1
  16. css/wplc_styles_admin_pro.css +6 -0
  17. css/wplc_styles_pro.css +34 -2
  18. css/wplcstyle.css +2 -2
  19. functions.php +161 -84
  20. images/Survey_Box_Standard.jpg +0 -0
  21. images/add-on0.jpg +0 -0
  22. images/add-on1.jpg +0 -0
  23. images/add-on2.jpg +0 -0
  24. images/add-on3.jpg +0 -0
  25. images/add-on4.jpg +0 -0
  26. images/plugin1.jpg +0 -0
  27. images/plugin2.jpg +0 -0
  28. images/random_images/1.jpeg +0 -0
  29. images/random_images/10.jpeg +0 -0
  30. images/random_images/11.jpeg +0 -0
  31. images/random_images/12.jpeg +0 -0
  32. images/random_images/13.jpeg +0 -0
  33. images/random_images/2.jpeg +0 -0
  34. images/random_images/3.jpeg +0 -0
  35. images/random_images/4.jpeg +0 -0
  36. images/random_images/5.jpeg +0 -0
  37. images/random_images/6.jpeg +0 -0
  38. images/random_images/7.jpeg +0 -0
  39. images/random_images/8.jpeg +0 -0
  40. images/random_images/9.jpeg +0 -0
  41. includes/blocks/wplc-chat-box/index.php +2 -2
  42. includes/dashboard_page.php +1 -1
  43. includes/settings_page.php +49 -36
  44. includes/surveys.php +1 -2
  45. includes/templates/documentation-suggestion.html +1 -8
  46. includes/wplc_agent_data.php +3 -3
  47. includes/wplc_custom_fields.php +23 -17
  48. includes/wplc_data_triggers.php +4 -2
  49. includes/wplc_transfer_chats.php +1 -1
  50. js/switchery.min.js +1 -1
  51. js/themes/classic.js +3 -3
  52. js/themes/modern.js +49 -37
  53. js/vendor/charts/loader.js +233 -0
  54. js/vendor/jquery-ui/jquery-ui.css +362 -275
  55. js/wplc_admin_pro.js +2 -0
  56. js/wplc_agent_node.js +173 -72
  57. js/wplc_bleeper_admin_events.js +3 -1
  58. js/wplc_choose.js +17 -2
  59. js/wplc_common_node.js +1 -1
  60. js/wplc_dashboard.js +1 -1
  61. js/wplc_ma.js +2 -0
  62. js/wplc_node.js +49 -71
  63. js/wplc_pro_features.js +57 -8
  64. js/wplc_server.js +22 -4
  65. js/wplc_tabs.js +40 -0
  66. js/wplc_transcript.js +4 -4
  67. js/wplc_u.js +1 -1
  68. js/wplc_u_admin_chat.js +7 -1
  69. js/wplc_u_admin_events.js +21 -1
  70. js/wplc_u_events.js +2 -7
  71. js/wplc_u_node_events.js +39 -12
  72. js/wplc_u_pro.js +7 -7
  73. js/wplc_u_pro_events.js +2 -0
  74. modules/advanced_features.php +3 -1
  75. modules/api/wplc-api-functions.php +77 -21
  76. modules/gdpr.php +1 -1
  77. modules/node_server.php +39 -20
  78. readme.txt +193 -0
  79. wp-live-chat-support.php +291 -56
config.php CHANGED
@@ -7,10 +7,11 @@ if ( ! defined( 'ABSPATH' ) ) {
7
  exit;
8
  }
9
 
10
- define('WPLC_PLUGIN_VERSION', "8.0.34");
11
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
12
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
13
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
14
  define('WPLC_ACTIVATION_SERVER', 'https://activation.wp-livechat.com' ); // gets unique ID for using chat servers
 
15
 
16
- ?>
7
  exit;
8
  }
9
 
10
+ define('WPLC_PLUGIN_VERSION', "8.0.35");
11
  define('WPLC_PLUGIN_DIR', dirname(__FILE__));
12
  define('WPLC_PLUGIN_URL', plugins_url( '/', __FILE__ ) );
13
  define('WPLC_PLUGIN', plugin_basename( __FILE__ ) );
14
  define('WPLC_ACTIVATION_SERVER', 'https://activation.wp-livechat.com' ); // gets unique ID for using chat servers
15
+ define('WPLC_CHAT_SERVER', 'https://tcx-live-chat.appspot.com');
16
 
17
+ ?>
css/admin-chat-style.css CHANGED
@@ -121,13 +121,13 @@
121
  }
122
 
123
  /* System notification messages */
124
- #nifty_wrapper .messages .wplc_system_notification {
125
  display: block;
126
  position: relative;
127
  top: 0px;
128
  width: 100%;
129
  }
130
- #nifty_wrapper .messages .wplc_system_notification .messageBody {
131
  display: block;
132
  position: relative;
133
  left: 0px;
@@ -142,7 +142,7 @@
142
  color: #555555;
143
  line-height:1.2em;
144
  }
145
- #nifty_wrapper .messages .wplc_system_notification .messageBody .wplc_system_notification {
146
  display: inline-block;
147
  position: relative;
148
  left: 0px;
@@ -155,7 +155,7 @@
155
  border: none;
156
  border-radius: 0px;
157
  }
158
- #nifty_wrapper .messages .wplc_system_notification .messageBody .chat_time {
159
  display: block;
160
  position: relative;
161
  left: 0px;
@@ -266,6 +266,7 @@ span.bleeper-edit-message {
266
  /* User messages */
267
  #nifty_wrapper .messages .wplc-user-message {
268
  padding-left:0px!important;
 
269
  }
270
  #nifty_wrapper .messages .wplc-user-message .wplc-msg-content {
271
  display: inline-block;
@@ -445,3 +446,14 @@ span.bleeper-edit-message {
445
  text-decoration: none;
446
  }
447
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
 
123
  /* System notification messages */
124
+ #nifty_wrapper .messages .wplc-system-notification {
125
  display: block;
126
  position: relative;
127
  top: 0px;
128
  width: 100%;
129
  }
130
+ #nifty_wrapper .messages .wplc-system-notification .messageBody {
131
  display: block;
132
  position: relative;
133
  left: 0px;
142
  color: #555555;
143
  line-height:1.2em;
144
  }
145
+ #nifty_wrapper .messages .wplc-system-notification .messageBody .wplc-system-notification {
146
  display: inline-block;
147
  position: relative;
148
  left: 0px;
155
  border: none;
156
  border-radius: 0px;
157
  }
158
+ #nifty_wrapper .messages .wplc-system-notification .messageBody .chat_time {
159
  display: block;
160
  position: relative;
161
  left: 0px;
266
  /* User messages */
267
  #nifty_wrapper .messages .wplc-user-message {
268
  padding-left:0px!important;
269
+ text-align: left;
270
  }
271
  #nifty_wrapper .messages .wplc-user-message .wplc-msg-content {
272
  display: inline-block;
446
  text-decoration: none;
447
  }
448
 
449
+
450
+
451
+ .column_chat_name img {
452
+ border-radius: 50px;
453
+ max-width: 30px;
454
+ max-height: 30px;
455
+ }
456
+
457
+ .wplc_check_url.invalid_url {
458
+ border: 1px solid #a70000;
459
+ }
css/admin_styles.css CHANGED
@@ -454,4 +454,16 @@ margin-top: 10px !important;
454
  border: none;
455
  border-radius: 5px;
456
  padding: 7px 7px
457
- }
 
 
 
 
 
 
 
 
 
 
 
 
454
  border: none;
455
  border-radius: 5px;
456
  padding: 7px 7px
457
+ }
458
+
459
+ #wplc_tabs li a:focus{
460
+ box-shadow: none !important;
461
+ }
462
+
463
+ .tooltip {
464
+ background: #5f5f5f;
465
+ color: #fff;
466
+ padding: 3px;
467
+ border-radius: 5px;
468
+ box-shadow: 0 0 5px 5px #33333308;
469
+ }
css/chat-style.css CHANGED
@@ -701,7 +701,7 @@
701
  text-align: center;
702
  }
703
 
704
- span.wplc_system_notification {
705
  display: block;
706
  clear:both;
707
  padding: 8px;
701
  text-align: center;
702
  }
703
 
704
+ span.wplc-system-notification {
705
  display: block;
706
  clear:both;
707
  padding: 8px;
css/chat_dashboard/admin_style.css CHANGED
@@ -178,7 +178,7 @@
178
  height: 20px;
179
  float: right;
180
  position: absolute;
181
- top: 10px;
182
  right: 5px;
183
  font-size: 0.7em;
184
  text-align: right;
@@ -807,11 +807,15 @@
807
  height: 5px;
808
  position: absolute;
809
  right: 60px;
810
- top: 14px;
811
  }
812
  #nifty_wrapper .agent_involved {
813
- float:left;
814
- margin-right:5px;
 
 
 
 
815
  }
816
 
817
  .nifty_admin_overlay{
@@ -1110,7 +1114,6 @@
1110
  height: 14px;
1111
  line-height: 11px;
1112
  font-size: 10px;
1113
- text-indent: 3px;
1114
  }
1115
  #nifty_wrapper span.bleeper_close_item:hover {
1116
  background-color: #ccc;
@@ -1138,6 +1141,7 @@
1138
  border-radius: 24px;
1139
  position: absolute;
1140
  top:13px;
 
1141
  }
1142
 
1143
  #nifty_wrapper .user_header_wrapper_info {
@@ -1155,10 +1159,6 @@
1155
  width:75%;
1156
  }
1157
 
1158
- .nifty_bg_holder{
1159
- left: 35% !important;
1160
- }
1161
-
1162
  .user_header_wrapper_info {
1163
  width: 60% !important;
1164
  }
@@ -1420,10 +1420,7 @@
1420
  -o-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1421
  }
1422
 
1423
- #nifty_wrapper .userList .agent_involved:hover {
1424
- margin-top: -6px;
1425
- margin-left: 5px;
1426
- }
1427
 
1428
  #nifty_wrapper .filter-active{
1429
  border-left: 3px #2b97d2 solid !important;
178
  height: 20px;
179
  float: right;
180
  position: absolute;
181
+ top: 25px;
182
  right: 5px;
183
  font-size: 0.7em;
184
  text-align: right;
807
  height: 5px;
808
  position: absolute;
809
  right: 60px;
810
+ top: 13px;
811
  }
812
  #nifty_wrapper .agent_involved {
813
+ float: left;
814
+ margin-right: 5px;
815
+ padding: 0;
816
+ border-radius: 100px;
817
+ border: none;
818
+ width: 24px;
819
  }
820
 
821
  .nifty_admin_overlay{
1114
  height: 14px;
1115
  line-height: 11px;
1116
  font-size: 10px;
 
1117
  }
1118
  #nifty_wrapper span.bleeper_close_item:hover {
1119
  background-color: #ccc;
1141
  border-radius: 24px;
1142
  position: absolute;
1143
  top:13px;
1144
+ left: 10px;
1145
  }
1146
 
1147
  #nifty_wrapper .user_header_wrapper_info {
1159
  width:75%;
1160
  }
1161
 
 
 
 
 
1162
  .user_header_wrapper_info {
1163
  width: 60% !important;
1164
  }
1420
  -o-box-shadow: 0 0 40px 1px rgba(0,0,0,.07) !important;
1421
  }
1422
 
1423
+
 
 
 
1424
 
1425
  #nifty_wrapper .filter-active{
1426
  border-left: 3px #2b97d2 solid !important;
css/jquery-ui.css DELETED
@@ -1,1241 +0,0 @@
1
- /*! jQuery UI - v1.11.2 - 2014-12-09
2
- * http://jqueryui.com
3
- * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden {
10
- display: none;
11
- }
12
- .ui-helper-hidden-accessible {
13
- border: 0;
14
- clip: rect(0 0 0 0);
15
- height: 1px;
16
- margin: -1px;
17
- overflow: hidden;
18
- padding: 0;
19
- position: absolute;
20
- width: 1px;
21
- }
22
- .ui-helper-reset {
23
- margin: 0;
24
- padding: 0;
25
- border: 0;
26
- outline: 0;
27
- line-height: 1.3;
28
- text-decoration: none;
29
- font-size: 100%;
30
- list-style: none;
31
- }
32
- .ui-helper-clearfix:before,
33
- .ui-helper-clearfix:after {
34
- content: "";
35
- display: table;
36
- border-collapse: collapse;
37
- }
38
- .ui-helper-clearfix:after {
39
- clear: both;
40
- }
41
- .ui-helper-clearfix {
42
- min-height: 0; /* support: IE7 */
43
- }
44
- .ui-helper-zfix {
45
- width: 100%;
46
- height: 100%;
47
- top: 0;
48
- left: 0;
49
- position: absolute;
50
- opacity: 0;
51
- filter:Alpha(Opacity=0); /* support: IE8 */
52
- }
53
-
54
- .ui-front {
55
- z-index: 100;
56
- }
57
-
58
-
59
- /* Interaction Cues
60
- ----------------------------------*/
61
- .ui-state-disabled {
62
- cursor: default !important;
63
- }
64
-
65
-
66
- /* Icons
67
- ----------------------------------*/
68
-
69
- /* states and images */
70
- .ui-icon {
71
- display: block;
72
- text-indent: -99999px;
73
- overflow: hidden;
74
- background-repeat: no-repeat;
75
- }
76
-
77
-
78
- /* Misc visuals
79
- ----------------------------------*/
80
-
81
- /* Overlays */
82
- .ui-widget-overlay {
83
- position: fixed;
84
- top: 0;
85
- left: 0;
86
- width: 100%;
87
- height: 100%;
88
- }
89
- .ui-draggable-handle {
90
- -ms-touch-action: none;
91
- touch-action: none;
92
- }
93
- .ui-resizable {
94
- position: relative;
95
- }
96
- .ui-resizable-handle {
97
- position: absolute;
98
- font-size: 0.1px;
99
- display: block;
100
- -ms-touch-action: none;
101
- touch-action: none;
102
- }
103
- .ui-resizable-disabled .ui-resizable-handle,
104
- .ui-resizable-autohide .ui-resizable-handle {
105
- display: none;
106
- }
107
- .ui-resizable-n {
108
- cursor: n-resize;
109
- height: 7px;
110
- width: 100%;
111
- top: -5px;
112
- left: 0;
113
- }
114
- .ui-resizable-s {
115
- cursor: s-resize;
116
- height: 7px;
117
- width: 100%;
118
- bottom: -5px;
119
- left: 0;
120
- }
121
- .ui-resizable-e {
122
- cursor: e-resize;
123
- width: 7px;
124
- right: -5px;
125
- top: 0;
126
- height: 100%;
127
- }
128
- .ui-resizable-w {
129
- cursor: w-resize;
130
- width: 7px;
131
- left: -5px;
132
- top: 0;
133
- height: 100%;
134
- }
135
- .ui-resizable-se {
136
- cursor: se-resize;
137
- width: 12px;
138
- height: 12px;
139
- right: 1px;
140
- bottom: 1px;
141
- }
142
- .ui-resizable-sw {
143
- cursor: sw-resize;
144
- width: 9px;
145
- height: 9px;
146
- left: -5px;
147
- bottom: -5px;
148
- }
149
- .ui-resizable-nw {
150
- cursor: nw-resize;
151
- width: 9px;
152
- height: 9px;
153
- left: -5px;
154
- top: -5px;
155
- }
156
- .ui-resizable-ne {
157
- cursor: ne-resize;
158
- width: 9px;
159
- height: 9px;
160
- right: -5px;
161
- top: -5px;
162
- }
163
- .ui-selectable {
164
- -ms-touch-action: none;
165
- touch-action: none;
166
- }
167
- .ui-selectable-helper {
168
- position: absolute;
169
- z-index: 100;
170
- border: 1px dotted black;
171
- }
172
- .ui-sortable-handle {
173
- -ms-touch-action: none;
174
- touch-action: none;
175
- }
176
- .ui-accordion .ui-accordion-header {
177
- display: block;
178
- cursor: pointer;
179
- position: relative;
180
- margin: 2px 0 0 0;
181
- padding: .5em .5em .5em .7em;
182
- min-height: 0; /* support: IE7 */
183
- font-size: 100%;
184
- }
185
- .ui-accordion .ui-accordion-icons {
186
- padding-left: 2.2em;
187
- }
188
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
189
- padding-left: 2.2em;
190
- }
191
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
192
- position: absolute;
193
- left: .5em;
194
- top: 50%;
195
- margin-top: -8px;
196
- }
197
- .ui-accordion .ui-accordion-content {
198
- padding: 1em 2.2em;
199
- border-top: 0;
200
- overflow: auto;
201
- }
202
- .ui-autocomplete {
203
- position: absolute;
204
- top: 0;
205
- left: 0;
206
- cursor: default;
207
- }
208
- .ui-button {
209
- display: inline-block;
210
- position: relative;
211
- padding: 0;
212
- line-height: normal;
213
- margin-right: .1em;
214
- cursor: pointer;
215
- vertical-align: middle;
216
- text-align: center;
217
- overflow: visible; /* removes extra width in IE */
218
- }
219
- .ui-button,
220
- .ui-button:link,
221
- .ui-button:visited,
222
- .ui-button:hover,
223
- .ui-button:active {
224
- text-decoration: none;
225
- }
226
- /* to make room for the icon, a width needs to be set here */
227
- .ui-button-icon-only {
228
- width: 2.2em;
229
- }
230
- /* button elements seem to need a little more width */
231
- button.ui-button-icon-only {
232
- width: 2.4em;
233
- }
234
- .ui-button-icons-only {
235
- width: 3.4em;
236
- }
237
- button.ui-button-icons-only {
238
- width: 3.7em;
239
- }
240
-
241
- /* button text element */
242
- .ui-button .ui-button-text {
243
- display: block;
244
- line-height: normal;
245
- }
246
- .ui-button-text-only .ui-button-text {
247
- padding: .4em 1em;
248
- }
249
- .ui-button-icon-only .ui-button-text,
250
- .ui-button-icons-only .ui-button-text {
251
- padding: .4em;
252
- text-indent: -9999999px;
253
- }
254
- .ui-button-text-icon-primary .ui-button-text,
255
- .ui-button-text-icons .ui-button-text {
256
- padding: .4em 1em .4em 2.1em;
257
- }
258
- .ui-button-text-icon-secondary .ui-button-text,
259
- .ui-button-text-icons .ui-button-text {
260
- padding: .4em 2.1em .4em 1em;
261
- }
262
- .ui-button-text-icons .ui-button-text {
263
- padding-left: 2.1em;
264
- padding-right: 2.1em;
265
- }
266
- /* no icon support for input elements, provide padding by default */
267
- input.ui-button {
268
- padding: .4em 1em;
269
- }
270
-
271
- /* button icon element(s) */
272
- .ui-button-icon-only .ui-icon,
273
- .ui-button-text-icon-primary .ui-icon,
274
- .ui-button-text-icon-secondary .ui-icon,
275
- .ui-button-text-icons .ui-icon,
276
- .ui-button-icons-only .ui-icon {
277
- position: absolute;
278
- top: 50%;
279
- margin-top: -8px;
280
- }
281
- .ui-button-icon-only .ui-icon {
282
- left: 50%;
283
- margin-left: -8px;
284
- }
285
- .ui-button-text-icon-primary .ui-button-icon-primary,
286
- .ui-button-text-icons .ui-button-icon-primary,
287
- .ui-button-icons-only .ui-button-icon-primary {
288
- left: .5em;
289
- }
290
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
291
- .ui-button-text-icons .ui-button-icon-secondary,
292
- .ui-button-icons-only .ui-button-icon-secondary {
293
- right: .5em;
294
- }
295
-
296
- /* button sets */
297
- .ui-buttonset {
298
- margin-right: 7px;
299
- }
300
- .ui-buttonset .ui-button {
301
- margin-left: 0;
302
- margin-right: -.3em;
303
- }
304
-
305
- /* workarounds */
306
- /* reset extra padding in Firefox, see h5bp.com/l */
307
- input.ui-button::-moz-focus-inner,
308
- button.ui-button::-moz-focus-inner {
309
- border: 0;
310
- padding: 0;
311
- }
312
- .ui-datepicker {
313
- width: 17em;
314
- padding: .2em .2em 0;
315
- display: none;
316
- }
317
- .ui-datepicker .ui-datepicker-header {
318
- position: relative;
319
- padding: .2em 0;
320
- }
321
- .ui-datepicker .ui-datepicker-prev,
322
- .ui-datepicker .ui-datepicker-next {
323
- position: absolute;
324
- top: 2px;
325
- width: 1.8em;
326
- height: 1.8em;
327
- }
328
- .ui-datepicker .ui-datepicker-prev-hover,
329
- .ui-datepicker .ui-datepicker-next-hover {
330
- top: 1px;
331
- }
332
- .ui-datepicker .ui-datepicker-prev {
333
- left: 2px;
334
- }
335
- .ui-datepicker .ui-datepicker-next {
336
- right: 2px;
337
- }
338
- .ui-datepicker .ui-datepicker-prev-hover {
339
- left: 1px;
340
- }
341
- .ui-datepicker .ui-datepicker-next-hover {
342
- right: 1px;
343
- }
344
- .ui-datepicker .ui-datepicker-prev span,
345
- .ui-datepicker .ui-datepicker-next span {
346
- display: block;
347
- position: absolute;
348
- left: 50%;
349
- margin-left: -8px;
350
- top: 50%;
351
- margin-top: -8px;
352
- }
353
- .ui-datepicker .ui-datepicker-title {
354
- margin: 0 2.3em;
355
- line-height: 1.8em;
356
- text-align: center;
357
- }
358
- .ui-datepicker .ui-datepicker-title select {
359
- font-size: 1em;
360
- margin: 1px 0;
361
- }
362
- .ui-datepicker select.ui-datepicker-month,
363
- .ui-datepicker select.ui-datepicker-year {
364
- width: 45%;
365
- }
366
- .ui-datepicker table {
367
- width: 100%;
368
- font-size: .9em;
369
- border-collapse: collapse;
370
- margin: 0 0 .4em;
371
- }
372
- .ui-datepicker th {
373
- padding: .7em .3em;
374
- text-align: center;
375
- font-weight: bold;
376
- border: 0;
377
- }
378
- .ui-datepicker td {
379
- border: 0;
380
- padding: 1px;
381
- }
382
- .ui-datepicker td span,
383
- .ui-datepicker td a {
384
- display: block;
385
- padding: .2em;
386
- text-align: right;
387
- text-decoration: none;
388
- }
389
- .ui-datepicker .ui-datepicker-buttonpane {
390
- background-image: none;
391
- margin: .7em 0 0 0;
392
- padding: 0 .2em;
393
- border-left: 0;
394
- border-right: 0;
395
- border-bottom: 0;
396
- }
397
- .ui-datepicker .ui-datepicker-buttonpane button {
398
- float: right;
399
- margin: .5em .2em .4em;
400
- cursor: pointer;
401
- padding: .2em .6em .3em .6em;
402
- width: auto;
403
- overflow: visible;
404
- }
405
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
406
- float: left;
407
- }
408
-
409
- /* with multiple calendars */
410
- .ui-datepicker.ui-datepicker-multi {
411
- width: auto;
412
- }
413
- .ui-datepicker-multi .ui-datepicker-group {
414
- float: left;
415
- }
416
- .ui-datepicker-multi .ui-datepicker-group table {
417
- width: 95%;
418
- margin: 0 auto .4em;
419
- }
420
- .ui-datepicker-multi-2 .ui-datepicker-group {
421
- width: 50%;
422
- }
423
- .ui-datepicker-multi-3 .ui-datepicker-group {
424
- width: 33.3%;
425
- }
426
- .ui-datepicker-multi-4 .ui-datepicker-group {
427
- width: 25%;
428
- }
429
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
430
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
431
- border-left-width: 0;
432
- }
433
- .ui-datepicker-multi .ui-datepicker-buttonpane {
434
- clear: left;
435
- }
436
- .ui-datepicker-row-break {
437
- clear: both;
438
- width: 100%;
439
- font-size: 0;
440
- }
441
-
442
- /* RTL support */
443
- .ui-datepicker-rtl {
444
- direction: rtl;
445
- }
446
- .ui-datepicker-rtl .ui-datepicker-prev {
447
- right: 2px;
448
- left: auto;
449
- }
450
- .ui-datepicker-rtl .ui-datepicker-next {
451
- left: 2px;
452
- right: auto;
453
- }
454
- .ui-datepicker-rtl .ui-datepicker-prev:hover {
455
- right: 1px;
456
- left: auto;
457
- }
458
- .ui-datepicker-rtl .ui-datepicker-next:hover {
459
- left: 1px;
460
- right: auto;
461
- }
462
- .ui-datepicker-rtl .ui-datepicker-buttonpane {
463
- clear: right;
464
- }
465
- .ui-datepicker-rtl .ui-datepicker-buttonpane button {
466
- float: left;
467
- }
468
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
469
- .ui-datepicker-rtl .ui-datepicker-group {
470
- float: right;
471
- }
472
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
473
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
474
- border-right-width: 0;
475
- border-left-width: 1px;
476
- }
477
- .ui-dialog {
478
- overflow: hidden;
479
- position: absolute;
480
- top: 0;
481
- left: 0;
482
- padding: .2em;
483
- outline: 0;
484
- }
485
- .ui-dialog .ui-dialog-titlebar {
486
- padding: .4em 1em;
487
- position: relative;
488
- }
489
- .ui-dialog .ui-dialog-title {
490
- float: left;
491
- margin: .1em 0;
492
- white-space: nowrap;
493
- width: 90%;
494
- overflow: hidden;
495
- text-overflow: ellipsis;
496
- }
497
- .ui-dialog .ui-dialog-titlebar-close {
498
- position: absolute;
499
- right: .3em;
500
- top: 50%;
501
- width: 20px;
502
- margin: -10px 0 0 0;
503
- padding: 1px;
504
- height: 20px;
505
- }
506
- .ui-dialog .ui-dialog-content {
507
- position: relative;
508
- border: 0;
509
- padding: .5em 1em;
510
- background: none;
511
- overflow: auto;
512
- }
513
- .ui-dialog .ui-dialog-buttonpane {
514
- text-align: left;
515
- border-width: 1px 0 0 0;
516
- background-image: none;
517
- margin-top: .5em;
518
- padding: .3em 1em .5em .4em;
519
- }
520
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
521
- float: right;
522
- }
523
- .ui-dialog .ui-dialog-buttonpane button {
524
- margin: .5em .4em .5em 0;
525
- cursor: pointer;
526
- }
527
- .ui-dialog .ui-resizable-se {
528
- width: 12px;
529
- height: 12px;
530
- right: -5px;
531
- bottom: -5px;
532
- background-position: 16px 16px;
533
- }
534
- .ui-draggable .ui-dialog-titlebar {
535
- cursor: move;
536
- }
537
- .ui-menu {
538
- list-style: none;
539
- padding: 0;
540
- margin: 0;
541
- display: block;
542
- outline: none;
543
- }
544
- .ui-menu .ui-menu {
545
- position: absolute;
546
- }
547
- .ui-menu .ui-menu-item {
548
- position: relative;
549
- margin: 0;
550
- padding: 3px 1em 3px .4em;
551
- cursor: pointer;
552
- min-height: 0; /* support: IE7 */
553
- /* support: IE10, see #8844 */
554
- list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
555
- }
556
- .ui-menu .ui-menu-divider {
557
- margin: 5px 0;
558
- height: 0;
559
- font-size: 0;
560
- line-height: 0;
561
- border-width: 1px 0 0 0;
562
- }
563
- .ui-menu .ui-state-focus,
564
- .ui-menu .ui-state-active {
565
- margin: -1px;
566
- }
567
-
568
- /* icon support */
569
- .ui-menu-icons {
570
- position: relative;
571
- }
572
- .ui-menu-icons .ui-menu-item {
573
- padding-left: 2em;
574
- }
575
-
576
- /* left-aligned */
577
- .ui-menu .ui-icon {
578
- position: absolute;
579
- top: 0;
580
- bottom: 0;
581
- left: .2em;
582
- margin: auto 0;
583
- }
584
-
585
- /* right-aligned */
586
- .ui-menu .ui-menu-icon {
587
- left: auto;
588
- right: 0;
589
- }
590
- .ui-progressbar {
591
- height: 2em;
592
- text-align: left;
593
- overflow: hidden;
594
- }
595
- .ui-progressbar .ui-progressbar-value {
596
- margin: -1px;
597
- height: 100%;
598
- }
599
- .ui-progressbar .ui-progressbar-overlay {
600
- background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
601
- height: 100%;
602
- filter: alpha(opacity=25); /* support: IE8 */
603
- opacity: 0.25;
604
- }
605
- .ui-progressbar-indeterminate .ui-progressbar-value {
606
- background-image: none;
607
- }
608
- .ui-selectmenu-menu {
609
- padding: 0;
610
- margin: 0;
611
- position: absolute;
612
- top: 0;
613
- left: 0;
614
- display: none;
615
- }
616
- .ui-selectmenu-menu .ui-menu {
617
- overflow: auto;
618
- /* Support: IE7 */
619
- overflow-x: hidden;
620
- padding-bottom: 1px;
621
- }
622
- .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
623
- font-size: 1em;
624
- font-weight: bold;
625
- line-height: 1.5;
626
- padding: 2px 0.4em;
627
- margin: 0.5em 0 0 0;
628
- height: auto;
629
- border: 0;
630
- }
631
- .ui-selectmenu-open {
632
- display: block;
633
- }
634
- .ui-selectmenu-button {
635
- display: inline-block;
636
- overflow: hidden;
637
- position: relative;
638
- text-decoration: none;
639
- cursor: pointer;
640
- }
641
- .ui-selectmenu-button span.ui-icon {
642
- right: 0.5em;
643
- left: auto;
644
- margin-top: -8px;
645
- position: absolute;
646
- top: 50%;
647
- }
648
- .ui-selectmenu-button span.ui-selectmenu-text {
649
- text-align: left;
650
- padding: 0.4em 2.1em 0.4em 1em;
651
- display: block;
652
- line-height: 1.4;
653
- overflow: hidden;
654
- text-overflow: ellipsis;
655
- white-space: nowrap;
656
- }
657
- .ui-slider {
658
- position: relative;
659
- text-align: left;
660
- }
661
- .ui-slider .ui-slider-handle {
662
- position: absolute;
663
- z-index: 2;
664
- width: 1.2em;
665
- height: 1.2em;
666
- cursor: default;
667
- -ms-touch-action: none;
668
- touch-action: none;
669
- }
670
- .ui-slider .ui-slider-range {
671
- position: absolute;
672
- z-index: 1;
673
- font-size: .7em;
674
- display: block;
675
- border: 0;
676
- background-position: 0 0;
677
- }
678
-
679
- /* support: IE8 - See #6727 */
680
- .ui-slider.ui-state-disabled .ui-slider-handle,
681
- .ui-slider.ui-state-disabled .ui-slider-range {
682
- filter: inherit;
683
- }
684
-
685
- .ui-slider-horizontal {
686
- height: .8em;
687
- }
688
- .ui-slider-horizontal .ui-slider-handle {
689
- top: -.3em;
690
- margin-left: -.6em;
691
- }
692
- .ui-slider-horizontal .ui-slider-range {
693
- top: 0;
694
- height: 100%;
695
- }
696
- .ui-slider-horizontal .ui-slider-range-min {
697
- left: 0;
698
- }
699
- .ui-slider-horizontal .ui-slider-range-max {
700
- right: 0;
701
- }
702
-
703
- .ui-slider-vertical {
704
- width: .8em;
705
- height: 100px;
706
- }
707
- .ui-slider-vertical .ui-slider-handle {
708
- left: -.3em;
709
- margin-left: 0;
710
- margin-bottom: -.6em;
711
- }
712
- .ui-slider-vertical .ui-slider-range {
713
- left: 0;
714
- width: 100%;
715
- }
716
- .ui-slider-vertical .ui-slider-range-min {
717
- bottom: 0;
718
- }
719
- .ui-slider-vertical .ui-slider-range-max {
720
- top: 0;
721
- }
722
- .ui-spinner {
723
- position: relative;
724
- display: inline-block;
725
- overflow: hidden;
726
- padding: 0;
727
- vertical-align: middle;
728
- }
729
- .ui-spinner-input {
730
- border: none;
731
- background: none;
732
- color: inherit;
733
- padding: 0;
734
- margin: .2em 0;
735
- vertical-align: middle;
736
- margin-left: .4em;
737
- margin-right: 22px;
738
- }
739
- .ui-spinner-button {
740
- width: 16px;
741
- height: 50%;
742
- font-size: .5em;
743
- padding: 0;
744
- margin: 0;
745
- text-align: center;
746
- position: absolute;
747
- cursor: default;
748
- display: block;
749
- overflow: hidden;
750
- right: 0;
751
- }
752
- /* more specificity required here to override default borders */
753
- .ui-spinner a.ui-spinner-button {
754
- border-top: none;
755
- border-bottom: none;
756
- border-right: none;
757
- }
758
- /* vertically center icon */
759
- .ui-spinner .ui-icon {
760
- position: absolute;
761
- margin-top: -8px;
762
- top: 50%;
763
- left: 0;
764
- }
765
- .ui-spinner-up {
766
- top: 0;
767
- }
768
- .ui-spinner-down {
769
- bottom: 0;
770
- }
771
-
772
- /* TR overrides */
773
- .ui-spinner .ui-icon-triangle-1-s {
774
- /* need to fix icons sprite */
775
- background-position: -65px -16px;
776
- }
777
- .ui-tabs {
778
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
779
- padding: .2em;
780
- }
781
- .ui-tabs .ui-tabs-nav {
782
- margin: 0;
783
- padding: .2em .2em 0;
784
- }
785
- .ui-tabs .ui-tabs-nav li {
786
- list-style: none;
787
- float: left;
788
- position: relative;
789
- top: 0;
790
- margin: 1px .2em 0 0;
791
- border-bottom-width: 0;
792
- padding: 0;
793
- white-space: nowrap;
794
- }
795
- .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
796
- float: left;
797
- padding: .5em 1em;
798
- text-decoration: none;
799
- }
800
- .ui-tabs .ui-tabs-nav li.ui-tabs-active {
801
- margin-bottom: -1px;
802
- padding-bottom: 1px;
803
- }
804
- .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
805
- .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
806
- .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
807
- cursor: text;
808
- }
809
- .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
810
- cursor: pointer;
811
- }
812
- .ui-tabs .ui-tabs-panel {
813
- display: block;
814
- border-width: 0;
815
- padding: 1em 1.4em;
816
- background: none;
817
- }
818
- .ui-tooltip {
819
- padding: 8px;
820
- position: absolute;
821
- z-index: 9999;
822
- max-width: 300px;
823
- -webkit-box-shadow: 0 0 5px #aaa;
824
- box-shadow: 0 0 5px #aaa;
825
- }
826
- body .ui-tooltip {
827
- border-width: 2px;
828
- }
829
-
830
- /* Component containers
831
- ----------------------------------*/
832
- .ui-widget {
833
- font-family: Verdana,Arial,sans-serif;
834
- font-size: 1.1em;
835
- }
836
- .ui-widget .ui-widget {
837
- font-size: 1em;
838
- }
839
- .ui-widget input,
840
- .ui-widget select,
841
- .ui-widget textarea,
842
- .ui-widget button {
843
- font-family: Verdana,Arial,sans-serif;
844
- font-size: 1em;
845
- }
846
- .ui-widget-content {
847
- /*border: 1px solid #aaaaaa; */
848
- background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
849
- color: #222222;
850
- }
851
- .ui-widget-content a {
852
- color: #222222;
853
- }
854
- .ui-widget-header {
855
- /*border: 1px solid #aaaaaa;
856
- background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;*/
857
- color: #222222;
858
- font-weight: bold;
859
- }
860
- .ui-widget-header a {
861
- color: #222222;
862
- }
863
-
864
- /* Interaction states
865
- ----------------------------------*/
866
-
867
- .ui-tabs-anchor:active {
868
- box-shadow:none !important;
869
- }
870
-
871
- .ui-tabs-anchor:focus {
872
- -webkit-box-shadow: none !important;
873
- box-shadow: none !important;
874
- }
875
- .ui-state-default,
876
- .ui-widget-content .ui-state-default,
877
- .ui-widget-header .ui-state-default {
878
- /*border: 1px solid #d3d3d3;*/
879
- background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
880
- font-weight: normal;
881
- color: #555555;
882
- }
883
- .ui-state-default a,
884
- .ui-state-default a:link,
885
- .ui-state-default a:visited {
886
- color: #555555;
887
- text-decoration: none;
888
- }
889
- .ui-state-hover,
890
- .ui-widget-content .ui-state-hover,
891
- .ui-widget-header .ui-state-hover,
892
- .ui-state-focus,
893
- .ui-widget-content .ui-state-focus,
894
- .ui-widget-header .ui-state-focus {
895
- /*border: 1px solid #999999;*/
896
- background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
897
- font-weight: normal;
898
- color: #212121;
899
- }
900
- .ui-state-hover a,
901
- .ui-state-hover a:hover,
902
- .ui-state-hover a:link,
903
- .ui-state-hover a:visited,
904
- .ui-state-focus a,
905
- .ui-state-focus a:hover,
906
- .ui-state-focus a:link,
907
- .ui-state-focus a:visited {
908
- color: #212121;
909
- text-decoration: none;
910
- }
911
- .ui-state-active,
912
- .ui-widget-content .ui-state-active,
913
- .ui-widget-header .ui-state-active {
914
- /*border: 1px solid #aaaaaa;*/
915
- background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
916
- font-weight: normal;
917
- color: #212121;
918
- }
919
- .ui-state-active a,
920
- .ui-state-active a:link,
921
- .ui-state-active a:visited {
922
- color: #212121;
923
- text-decoration: none;
924
- }
925
-
926
- /* Interaction Cues
927
- ----------------------------------*/
928
- .ui-state-highlight,
929
- .ui-widget-content .ui-state-highlight,
930
- .ui-widget-header .ui-state-highlight {
931
- border: 1px solid #fcefa1;
932
- background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
933
- color: #363636;
934
- }
935
- .ui-state-highlight a,
936
- .ui-widget-content .ui-state-highlight a,
937
- .ui-widget-header .ui-state-highlight a {
938
- color: #363636;
939
- }
940
- .ui-state-error,
941
- .ui-widget-content .ui-state-error,
942
- .ui-widget-header .ui-state-error {
943
- border: 1px solid #cd0a0a;
944
- background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
945
- color: #cd0a0a;
946
- }
947
- .ui-state-error a,
948
- .ui-widget-content .ui-state-error a,
949
- .ui-widget-header .ui-state-error a {
950
- color: #cd0a0a;
951
- }
952
- .ui-state-error-text,
953
- .ui-widget-content .ui-state-error-text,
954
- .ui-widget-header .ui-state-error-text {
955
- color: #cd0a0a;
956
- }
957
- .ui-priority-primary,
958
- .ui-widget-content .ui-priority-primary,
959
- .ui-widget-header .ui-priority-primary {
960
- font-weight: bold;
961
- }
962
- .ui-priority-secondary,
963
- .ui-widget-content .ui-priority-secondary,
964
- .ui-widget-header .ui-priority-secondary {
965
- opacity: .7;
966
- filter:Alpha(Opacity=70); /* support: IE8 */
967
- font-weight: normal;
968
- }
969
- .ui-state-disabled,
970
- .ui-widget-content .ui-state-disabled,
971
- .ui-widget-header .ui-state-disabled {
972
- opacity: .35;
973
- filter:Alpha(Opacity=35); /* support: IE8 */
974
- background-image: none;
975
- }
976
- .ui-state-disabled .ui-icon {
977
- filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
978
- }
979
-
980
- /* Icons
981
- ----------------------------------*/
982
-
983
- /* states and images */
984
- .ui-icon {
985
- width: 16px;
986
- height: 16px;
987
- }
988
- .ui-icon,
989
- .ui-widget-content .ui-icon {
990
- background-image: url("images/ui-icons_222222_256x240.png");
991
- }
992
- .ui-widget-header .ui-icon {
993
- background-image: url("images/ui-icons_222222_256x240.png");
994
- }
995
- .ui-state-default .ui-icon {
996
- background-image: url("images/ui-icons_888888_256x240.png");
997
- }
998
- .ui-state-hover .ui-icon,
999
- .ui-state-focus .ui-icon {
1000
- background-image: url("images/ui-icons_454545_256x240.png");
1001
- }
1002
- .ui-state-active .ui-icon {
1003
- background-image: url("images/ui-icons_454545_256x240.png");
1004
- }
1005
- .ui-state-highlight .ui-icon {
1006
- background-image: url("images/ui-icons_2e83ff_256x240.png");
1007
- }
1008
- .ui-state-error .ui-icon,
1009
- .ui-state-error-text .ui-icon {
1010
- background-image: url("images/ui-icons_cd0a0a_256x240.png");
1011
- }
1012
-
1013
- /* positioning */
1014
- .ui-icon-blank { background-position: 16px 16px; }
1015
- .ui-icon-carat-1-n { background-position: 0 0; }
1016
- .ui-icon-carat-1-ne { background-position: -16px 0; }
1017
- .ui-icon-carat-1-e { background-position: -32px 0; }
1018
- .ui-icon-carat-1-se { background-position: -48px 0; }
1019
- .ui-icon-carat-1-s { background-position: -64px 0; }
1020
- .ui-icon-carat-1-sw { background-position: -80px 0; }
1021
- .ui-icon-carat-1-w { background-position: -96px 0; }
1022
- .ui-icon-carat-1-nw { background-position: -112px 0; }
1023
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
1024
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
1025
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
1026
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1027
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
1028
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
1029
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
1030
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1031
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
1032
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1033
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1034
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1035
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
1036
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1037
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
1038
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
1039
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
1040
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1041
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
1042
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1043
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1044
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1045
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1046
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1047
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1048
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1049
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1050
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1051
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
1052
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1053
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1054
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1055
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1056
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1057
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1058
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1059
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1060
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1061
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1062
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1063
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1064
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1065
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1066
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1067
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1068
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1069
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1070
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1071
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1072
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1073
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1074
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1075
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1076
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1077
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1078
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1079
- .ui-icon-arrow-4 { background-position: 0 -80px; }
1080
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1081
- .ui-icon-extlink { background-position: -32px -80px; }
1082
- .ui-icon-newwin { background-position: -48px -80px; }
1083
- .ui-icon-refresh { background-position: -64px -80px; }
1084
- .ui-icon-shuffle { background-position: -80px -80px; }
1085
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
1086
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1087
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
1088
- .ui-icon-folder-open { background-position: -16px -96px; }
1089
- .ui-icon-document { background-position: -32px -96px; }
1090
- .ui-icon-document-b { background-position: -48px -96px; }
1091
- .ui-icon-note { background-position: -64px -96px; }
1092
- .ui-icon-mail-closed { background-position: -80px -96px; }
1093
- .ui-icon-mail-open { background-position: -96px -96px; }
1094
- .ui-icon-suitcase { background-position: -112px -96px; }
1095
- .ui-icon-comment { background-position: -128px -96px; }
1096
- .ui-icon-person { background-position: -144px -96px; }
1097
- .ui-icon-print { background-position: -160px -96px; }
1098
- .ui-icon-trash { background-position: -176px -96px; }
1099
- .ui-icon-locked { background-position: -192px -96px; }
1100
- .ui-icon-unlocked { background-position: -208px -96px; }
1101
- .ui-icon-bookmark { background-position: -224px -96px; }
1102
- .ui-icon-tag { background-position: -240px -96px; }
1103
- .ui-icon-home { background-position: 0 -112px; }
1104
- .ui-icon-flag { background-position: -16px -112px; }
1105
- .ui-icon-calendar { background-position: -32px -112px; }
1106
- .ui-icon-cart { background-position: -48px -112px; }
1107
- .ui-icon-pencil { background-position: -64px -112px; }
1108
- .ui-icon-clock { background-position: -80px -112px; }
1109
- .ui-icon-disk { background-position: -96px -112px; }
1110
- .ui-icon-calculator { background-position: -112px -112px; }
1111
- .ui-icon-zoomin { background-position: -128px -112px; }
1112
- .ui-icon-zoomout { background-position: -144px -112px; }
1113
- .ui-icon-search { background-position: -160px -112px; }
1114
- .ui-icon-wrench { background-position: -176px -112px; }
1115
- .ui-icon-gear { background-position: -192px -112px; }
1116
- .ui-icon-heart { background-position: -208px -112px; }
1117
- .ui-icon-star { background-position: -224px -112px; }
1118
- .ui-icon-link { background-position: -240px -112px; }
1119
- .ui-icon-cancel { background-position: 0 -128px; }
1120
- .ui-icon-plus { background-position: -16px -128px; }
1121
- .ui-icon-plusthick { background-position: -32px -128px; }
1122
- .ui-icon-minus { background-position: -48px -128px; }
1123
- .ui-icon-minusthick { background-position: -64px -128px; }
1124
- .ui-icon-close { background-position: -80px -128px; }
1125
- .ui-icon-closethick { background-position: -96px -128px; }
1126
- .ui-icon-key { background-position: -112px -128px; }
1127
- .ui-icon-lightbulb { background-position: -128px -128px; }
1128
- .ui-icon-scissors { background-position: -144px -128px; }
1129
- .ui-icon-clipboard { background-position: -160px -128px; }
1130
- .ui-icon-copy { background-position: -176px -128px; }
1131
- .ui-icon-contact { background-position: -192px -128px; }
1132
- .ui-icon-image { background-position: -208px -128px; }
1133
- .ui-icon-video { background-position: -224px -128px; }
1134
- .ui-icon-script { background-position: -240px -128px; }
1135
- .ui-icon-alert { background-position: 0 -144px; }
1136
- .ui-icon-info { background-position: -16px -144px; }
1137
- .ui-icon-notice { background-position: -32px -144px; }
1138
- .ui-icon-help { background-position: -48px -144px; }
1139
- .ui-icon-check { background-position: -64px -144px; }
1140
- .ui-icon-bullet { background-position: -80px -144px; }
1141
- .ui-icon-radio-on { background-position: -96px -144px; }
1142
- .ui-icon-radio-off { background-position: -112px -144px; }
1143
- .ui-icon-pin-w { background-position: -128px -144px; }
1144
- .ui-icon-pin-s { background-position: -144px -144px; }
1145
- .ui-icon-play { background-position: 0 -160px; }
1146
- .ui-icon-pause { background-position: -16px -160px; }
1147
- .ui-icon-seek-next { background-position: -32px -160px; }
1148
- .ui-icon-seek-prev { background-position: -48px -160px; }
1149
- .ui-icon-seek-end { background-position: -64px -160px; }
1150
- .ui-icon-seek-start { background-position: -80px -160px; }
1151
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1152
- .ui-icon-seek-first { background-position: -80px -160px; }
1153
- .ui-icon-stop { background-position: -96px -160px; }
1154
- .ui-icon-eject { background-position: -112px -160px; }
1155
- .ui-icon-volume-off { background-position: -128px -160px; }
1156
- .ui-icon-volume-on { background-position: -144px -160px; }
1157
- .ui-icon-power { background-position: 0 -176px; }
1158
- .ui-icon-signal-diag { background-position: -16px -176px; }
1159
- .ui-icon-signal { background-position: -32px -176px; }
1160
- .ui-icon-battery-0 { background-position: -48px -176px; }
1161
- .ui-icon-battery-1 { background-position: -64px -176px; }
1162
- .ui-icon-battery-2 { background-position: -80px -176px; }
1163
- .ui-icon-battery-3 { background-position: -96px -176px; }
1164
- .ui-icon-circle-plus { background-position: 0 -192px; }
1165
- .ui-icon-circle-minus { background-position: -16px -192px; }
1166
- .ui-icon-circle-close { background-position: -32px -192px; }
1167
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1168
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1169
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1170
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1171
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1172
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1173
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1174
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1175
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
1176
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
1177
- .ui-icon-circle-check { background-position: -208px -192px; }
1178
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1179
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1180
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
1181
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1182
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1183
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
1184
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1185
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1186
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1187
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1188
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1189
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1190
-
1191
-
1192
- /* Misc visuals
1193
- ----------------------------------*/
1194
-
1195
- /* Corner radius */
1196
- .ui-corner-all,
1197
- .ui-corner-top,
1198
- .ui-corner-left,
1199
- .ui-corner-tl {
1200
- border-top-left-radius: 4px;
1201
- }
1202
- .ui-corner-all,
1203
- .ui-corner-top,
1204
- .ui-corner-right,
1205
- .ui-corner-tr {
1206
- border-top-right-radius: 4px;
1207
- }
1208
- .ui-corner-all,
1209
- .ui-corner-bottom,
1210
- .ui-corner-left,
1211
- .ui-corner-bl {
1212
- border-bottom-left-radius: 4px;
1213
- }
1214
- .ui-corner-all,
1215
- .ui-corner-bottom,
1216
- .ui-corner-right,
1217
- .ui-corner-br {
1218
- border-bottom-right-radius: 4px;
1219
- }
1220
-
1221
- /* Overlays */
1222
- .ui-widget-overlay {
1223
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1224
- opacity: .3;
1225
- filter: Alpha(Opacity=30); /* support: IE8 */
1226
- }
1227
- .ui-widget-shadow {
1228
- margin: -8px 0 0 -8px;
1229
- padding: 8px;
1230
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1231
- opacity: .3;
1232
- filter: Alpha(Opacity=30); /* support: IE8 */
1233
- border-radius: 8px;
1234
- }
1235
-
1236
-
1237
-
1238
- .ui-tabs-panel a {
1239
- color: #0073aa;
1240
- text-decoration: underline;
1241
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
css/jquery-ui.min.css DELETED
@@ -1,5 +0,0 @@
1
- /*! jQuery UI - v1.11.2 - 2014-12-09
2
- * http://jqueryui.com
3
- * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-icons-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-icons-only .ui-button-icon-primary,.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary{left:.5em}.ui-button-icons-only .ui-button-icon-secondary,.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0 0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url(data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==);height:100%;opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.4em 2.1em .4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:0 0;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0 0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-tabs-anchor:active{box-shadow:none!important}.ui-tabs-anchor:focus{-webkit-box-shadow:none!important;box-shadow:none!important}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:4px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}.ui-tabs-panel a{color:#0073aa;text-decoration:underline}
 
 
 
 
 
css/remote_dash_styles.css CHANGED
@@ -90,7 +90,7 @@
90
  font-size: 1.1em;
91
  }
92
  .userListBox_Wrapper {
93
- top: 110px;
94
  bottom: 118px;
95
  position: absolute;
96
  width: 100%;
@@ -874,7 +874,7 @@ span.bleeper-edit-message {
874
  }
875
 
876
 
877
- span.wplc_system_notification {
878
  display: block;
879
  clear:both;
880
  padding: 8px;
@@ -1260,7 +1260,7 @@ span.wplc_system_notification {
1260
  text-decoration: underline !important;
1261
  }
1262
 
1263
- #nifty_wrapper .messages .wplc_system_notification .admin_visitor_advanced_info {
1264
  background: none !important;
1265
  border:none !important;
1266
  padding: 0 !important;
@@ -1273,4 +1273,80 @@ ul.online_agent_list {
1273
  #nifty_event_heading,
1274
  ul.events-ul {
1275
  color: #fff;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1276
  }
90
  font-size: 1.1em;
91
  }
92
  .userListBox_Wrapper {
93
+ top: 155px;
94
  bottom: 118px;
95
  position: absolute;
96
  width: 100%;
874
  }
875
 
876
 
877
+ span.wplc-system-notification {
878
  display: block;
879
  clear:both;
880
  padding: 8px;
1260
  text-decoration: underline !important;
1261
  }
1262
 
1263
+ #nifty_wrapper .messages .wplc-system-notification .admin_visitor_advanced_info {
1264
  background: none !important;
1265
  border:none !important;
1266
  padding: 0 !important;
1273
  #nifty_event_heading,
1274
  ul.events-ul {
1275
  color: #fff;
1276
+ }
1277
+
1278
+ li.wplc-ds-li a {
1279
+ background: #333;
1280
+ padding: 5px;
1281
+ border-radius: 5px;
1282
+ font-size: 12px;
1283
+ }
1284
+
1285
+ li.wplc-ds-li a:empty {
1286
+ display:none;
1287
+ }
1288
+
1289
+ .exp_cols {
1290
+ background: #fcfcfc;
1291
+ height: 24px;
1292
+ margin-top: 29px;
1293
+ border-bottom: 1px solid #eee;
1294
+ font-size: 11px;
1295
+ }
1296
+
1297
+ .exp_cols .col1,
1298
+ .exp_cols .col2,
1299
+ .exp_cols .col3{
1300
+ display: inline-block;
1301
+ vertical-align:top;
1302
+ line-height:24px;
1303
+ text-align: left;
1304
+ }
1305
+
1306
+ .exp_cols .col1{
1307
+ width:55%;
1308
+
1309
+ }
1310
+
1311
+ .exp_cols .col3{
1312
+ width: 20%;
1313
+ text-align: center;
1314
+ }
1315
+
1316
+ #nifty_wrapper .messages .messageBody .wplc-system-notification a,
1317
+ #nifty_wrapper .messages .wplc-system-notification .messageBody a{
1318
+ color: #007bff !important;
1319
+ }
1320
+
1321
+
1322
+
1323
+
1324
+ #nifty_wrapper .messages .wplc-admin-message.agent_to_agent .wplc-msg-content {
1325
+ display: inline-block;
1326
+ position: relative;
1327
+ top: 0px;
1328
+ left: 0px;
1329
+ width: auto;
1330
+ max-width: calc(100% - 250px);
1331
+ background-color: rgba(90, 90, 90, 0.94);
1332
+ color: #ffffff;
1333
+ border-radius: 3px;
1334
+ float: left !important;
1335
+ }
1336
+ #nifty_wrapper .messages .wplc-admin-message.agent_to_agent .wplc-msg-content:after {
1337
+ top: 15px;
1338
+ left: -7px;
1339
+ border-width: 6px 7px 6px 0px;
1340
+ border-color: transparent #646464!important;
1341
+ }
1342
+
1343
+ #nifty_wrapper .messages .wplc-admin-message.agent_to_agent .wplc-admin-message-avatar{
1344
+ float: left !important;
1345
+ left: -20px;
1346
+ }
1347
+
1348
+ label.nifty_add_media_button i {
1349
+ position:absolute;
1350
+ top: 22px;
1351
+ right: 20px;
1352
  }
css/themes/classic.css CHANGED
@@ -1,11 +1,15 @@
 
 
 
 
1
  #wplc_chatmsg {
2
  background-color: #fff !important;
3
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4
  font-size: 15px;
5
- line-height: 32px;
6
  color: #60686e;
7
  /* width: 100%; */
8
- width: 275px !important;
9
  height: 40px;
10
  /* margin-bottom: 10px; */
11
  border: 0;
@@ -21,18 +25,28 @@
21
  min-height: 35px;
22
  overflow-y: hidden;
23
  padding: 5px !important;
24
- margin-top: 10px;
25
  background-color: #fff !important;
26
- padding-left: 30px !important;
 
 
27
  }
28
  #wp-live-chat textarea {
29
  width: 100%;
 
 
 
 
 
 
 
 
30
 
31
  }
32
  .nifty_rating_icon {
33
  margin-right: 10px;
34
  }
35
- #wp-live-chat-2-inner input, #wp-live-chat-2-inner textarea, #wp-live-chat-2-inner select{
 
36
  border: 1px solid rgba(0, 0, 0, 0.1);
37
  border-radius: 2px;
38
  color: #2b2b2b;
@@ -42,11 +56,15 @@
42
  box-sizing: border-box;
43
  height: inherit;
44
  width: 100%;
 
 
45
  }
46
 
47
  #wplc_chatbox {
 
 
48
  padding: 5px;
49
- height: 190px;
50
  overflow-y: auto;
51
  overflow-x:hidden;
52
  -webkit-box-shadow: inset 0px 5px 5px -4px rgba(50, 50, 50, 0.5);
@@ -110,11 +128,12 @@
110
  padding: 5px;
111
  padding-left: 20px;
112
  padding-right: 20px;
113
- font-size: 14px;
114
  color: #FFF;
115
  }
116
 
117
  #wp-live-chat-minimize {
 
118
  position: absolute;
119
  right: 6px;
120
  top: 4px;
@@ -152,7 +171,7 @@
152
 
153
 
154
  #wp-live-chat-2-info {
155
- font-size: 13px;
156
  display: block;
157
  width: 212px;
158
  overflow: hidden;
@@ -165,7 +184,6 @@
165
  }
166
 
167
  .wplc_offline {
168
- font-size: 12px;
169
  font-weight: 700;
170
  }
171
 
@@ -178,6 +196,7 @@
178
  padding: 10px 0 0;
179
  border-radius: 5px 5px 0 0;
180
  position:relative;
 
181
 
182
  }
183
  #wp-live-chat-image{
@@ -216,6 +235,7 @@
216
  height: inherit;
217
  background-image: none;
218
  filter:none;
 
219
  text-shadow: none;
220
  }
221
  .wplc-clear-float-message{
@@ -225,6 +245,8 @@
225
 
226
  #wplc_message_div{
227
  text-align: center;
 
 
228
  }
229
  #wp-live-chat-inner-image-div{
230
  overflow: hidden;
@@ -276,6 +298,8 @@
276
  #wplc_user_message_div {
277
  border-top:1px solid #eee;
278
  background-color:#FFF;
 
 
279
  }
280
 
281
  .wplc_close.wplc_right #wp-live-chat-1{
@@ -294,7 +318,7 @@
294
  position: absolute;
295
  left: 8px;
296
  }
297
- span.wplc_system_notification {
298
  display: block;
299
  padding: 8px;
300
  clear:both;
@@ -442,43 +466,63 @@ span.wplc_system_notification {
442
  #wp-live-chat-2-inner #wplc_start_chat_btn {
443
  width:100%;
444
  border:none;
 
 
445
  }
446
 
447
  #wplc_social_holder {
448
  position: absolute;
449
- top: 2px;
450
- width: 20px;
 
 
451
  }
452
 
 
 
 
 
 
453
  .nifty_tedit_icon{
454
  font-size: 12px !important;
455
  padding-left: 6px;
456
  }
457
 
458
- #nifty_text_editor_holder {
459
- margin-top: 0;
460
- margin-left: 4px;
 
 
 
 
461
  }
462
-
463
- .nifty_attach_icon{
464
- position:absolute;
465
- bottom:10px;
466
- right: 10px;
 
 
467
  }
468
 
469
  #nifty_ratings_holder {
470
- position: absolute;
471
- top: -35px;
472
- left: 70px;
 
 
 
473
  }
474
 
475
  #nifty_ratings_form {
476
  position: absolute;
477
- left: -40px;
478
- top: -38px;
479
  width: 250px;
480
  padding: 2px;
 
481
  border-radius: 4px;
 
482
  }
483
 
484
  input#nifty_ratings_comment {
@@ -489,6 +533,7 @@ input#nifty_ratings_comment {
489
  top: 0px;
490
  position: relative;
491
  float: left;
 
492
  }
493
 
494
 
@@ -505,12 +550,29 @@ input#nifty_ratings_comment {
505
  border-radius: 2px;
506
  text-align: center;
507
  font-size: 12px;
508
- padding: 2px;
509
  /* top: 3px; */
510
  /* right: 2px; */
511
  position: relative;
512
- margin-left: 10px;
513
- margin-top:1px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
514
  }
515
 
516
  #nifty_rating_thanks {
@@ -602,6 +664,8 @@ input#nifty_ratings_comment {
602
  padding:15px;
603
  height:80px;
604
  box-shadow: 0 1px 1px #f0f0f1;
 
 
605
  }
606
 
607
  /* named after the famous words uttered by The Dylan at Code Cabin */
@@ -647,36 +711,20 @@ input#nifty_ratings_comment {
647
  }
648
 
649
  .wplc_hovercard_content_right .wplc_offline {
650
- font-size:0.9em;
651
  font-weight:bold;
652
  }
653
  .typing_indicator {
654
  width:100%;
655
- position:relative;
656
  height: 0px;
657
  opacity:0.3;
658
- font-size: 0.8em;
659
- transition-property:all;
660
- -webkit-transition-property:all;
661
- -moz-transition-property:all;
662
- -o-transition-property:all;
663
- transition-duration:0.5s;
664
- -webkit-transition-duration:0.5s;
665
- -moz-transition-duration:0.5s;
666
- -o-transition-propdurationerty:0.5s;
667
  }
668
  .typing_indicator_active {
669
- position:relative;
670
  height:20px;
671
  opacity:0.9;
672
- transition-property:all;
673
- -webkit-transition-property:all;
674
- -moz-transition-property:all;
675
- -o-transition-property:all;
676
- transition-duration:0.5s;
677
- -webkit-transition-duration:0.5s;
678
- -moz-transition-duration:0.5s;
679
- -o-transition-propdurationerty:0.5s;
680
 
681
  }
682
  .wplc_msg_notice {
@@ -709,19 +757,13 @@ input#nifty_ratings_comment {
709
  }
710
 
711
  .wdt-emoji-picker {
712
- right: 84px !important;
713
- bottom: 27px !important;
714
  font-size: 17px;
715
  text-align: center;
716
  line-height: 50px;
717
  }
718
 
719
- .wdt-emoji-picker i {
720
- position: absolute;
721
- left: 61px;
722
- top: 27px;
723
- }
724
-
725
  .wdt-emoji-popup.ready.open {
726
  width: 281px;
727
  margin-left: 20px;
@@ -792,14 +834,15 @@ input#nifty_ratings_comment {
792
  }
793
  a.bleeper_restart_chat {
794
  text-align: center;
795
- margin-top: 27px;
796
  display: block;
797
  }
798
 
799
  div#bleeper_chat_ended {
800
- min-height: 60px;
801
- max-height: 82px;
802
- height: 82px;
 
803
  position: absolute;
804
  bottom: 0;
805
  width: 100%;
@@ -841,9 +884,10 @@ input#wplc_chat_gdpr_opt_in {
841
 
842
  label[for=wplc_chat_gdpr_opt_in] {
843
  display: inline-block;
844
- font-size: 0.7em;
845
  max-width: 90%;
846
  vertical-align: top;
 
847
  }
848
 
849
  .wplc_gdpr_privacy_notice {
@@ -853,6 +897,8 @@ label[for=wplc_chat_gdpr_opt_in] {
853
  margin-left: 2em;
854
  margin-right: 2em;
855
  color: #bdbdbd;
 
 
856
  }
857
 
858
  .wplc_gdpr_privacy_notice a {
@@ -866,17 +912,25 @@ label[for=wplc_chat_gdpr_opt_in] {
866
 
867
  #wplc_end_chat_button {
868
  position: absolute;
869
- top: -32px;
870
- right: 0;
871
  padding: 5px;
872
- font-size: 9px;
873
- font-weight: 200;
874
  border-radius: 4px;
875
- background: #fff !important;
876
- color: #333 !important;
877
- line-height: 12px;
878
- box-shadow: 0 0 15px 0 rgba(86, 86, 86, 0.11);
879
  border: none;
 
 
 
 
 
 
 
 
 
 
 
880
  }
881
 
882
  .wplc_in_chat_notice {
@@ -895,8 +949,8 @@ label[for=wplc_chat_gdpr_opt_in] {
895
  .wplc_in_chat_notice_heading {
896
  font-size: 16px;
897
  padding-bottom: 10px;
898
- border-bottom: #eee 1px solid;
899
  margin-bottom: 10px;
 
900
  }
901
 
902
  .wplc_in_chat_notice_content button {
@@ -916,4 +970,46 @@ label[for=wplc_chat_gdpr_opt_in] {
916
 
917
  .wplc_in_chat_notice_content {
918
  padding-top: 15px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
919
  }
1
+ #wp-live-chat {
2
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ }
4
+
5
  #wplc_chatmsg {
6
  background-color: #fff !important;
7
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
8
  font-size: 15px;
9
+ line-height: 28px;
10
  color: #60686e;
11
  /* width: 100%; */
12
+ width: 200px !important;
13
  height: 40px;
14
  /* margin-bottom: 10px; */
15
  border: 0;
25
  min-height: 35px;
26
  overflow-y: hidden;
27
  padding: 5px !important;
 
28
  background-color: #fff !important;
29
+ padding-left: 2px !important;
30
+ max-width: 125px;
31
+ overflow-y: auto;
32
  }
33
  #wp-live-chat textarea {
34
  width: 100%;
35
+ }
36
+
37
+ #wp-live-chat-2 textarea {
38
+ width: 100%;
39
+ height: 87px;
40
+ min-height: 87px;
41
+ max-height: 87px;
42
+ resize: none;
43
 
44
  }
45
  .nifty_rating_icon {
46
  margin-right: 10px;
47
  }
48
+ #wp-live-chat-2-inner input, #wp-live-chat-2-inner textarea, #wp-live-chat-2-inner select,
49
+ #wp-live-chat-2 input, #wp-live-chat-2 textarea{
50
  border: 1px solid rgba(0, 0, 0, 0.1);
51
  border-radius: 2px;
52
  color: #2b2b2b;
56
  box-sizing: border-box;
57
  height: inherit;
58
  width: 100%;
59
+ font-size: 10pt;
60
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
61
  }
62
 
63
  #wplc_chatbox {
64
+ font-size: 12pt;
65
+ line-height: 1.3em;
66
  padding: 5px;
67
+ height: 250px;
68
  overflow-y: auto;
69
  overflow-x:hidden;
70
  -webkit-box-shadow: inset 0px 5px 5px -4px rgba(50, 50, 50, 0.5);
128
  padding: 5px;
129
  padding-left: 20px;
130
  padding-right: 20px;
131
+ font-size: 12pt;
132
  color: #FFF;
133
  }
134
 
135
  #wp-live-chat-minimize {
136
+ display: none !important;
137
  position: absolute;
138
  right: 6px;
139
  top: 4px;
171
 
172
 
173
  #wp-live-chat-2-info {
174
+ font-size: 12pt;
175
  display: block;
176
  width: 212px;
177
  overflow: hidden;
184
  }
185
 
186
  .wplc_offline {
 
187
  font-weight: 700;
188
  }
189
 
196
  padding: 10px 0 0;
197
  border-radius: 5px 5px 0 0;
198
  position:relative;
199
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
200
 
201
  }
202
  #wp-live-chat-image{
235
  height: inherit;
236
  background-image: none;
237
  filter:none;
238
+ font-size: 10pt;
239
  text-shadow: none;
240
  }
241
  .wplc-clear-float-message{
245
 
246
  #wplc_message_div{
247
  text-align: center;
248
+ font-size: 12pt;
249
+ line-height: 14pt;
250
  }
251
  #wp-live-chat-inner-image-div{
252
  overflow: hidden;
298
  #wplc_user_message_div {
299
  border-top:1px solid #eee;
300
  background-color:#FFF;
301
+ max-height: 50px;
302
+ overflow: hidden;
303
  }
304
 
305
  .wplc_close.wplc_right #wp-live-chat-1{
318
  position: absolute;
319
  left: 8px;
320
  }
321
+ span.wplc-system-notification {
322
  display: block;
323
  padding: 8px;
324
  clear:both;
466
  #wp-live-chat-2-inner #wplc_start_chat_btn {
467
  width:100%;
468
  border:none;
469
+ font-size: 12pt;
470
+ padding: 0.6em;
471
  }
472
 
473
  #wplc_social_holder {
474
  position: absolute;
475
+ top: 4px;
476
+ width: 70px;
477
+ left: -60px !important
478
+
479
  }
480
 
481
+ #wplc_social_holder a {
482
+ margin-left: 8px;
483
+ }
484
+
485
+
486
  .nifty_tedit_icon{
487
  font-size: 12px !important;
488
  padding-left: 6px;
489
  }
490
 
491
+ #nifty_file_holder {
492
+ float: right;
493
+ position: relative;
494
+ top: -38px;
495
+ display: inline-block;
496
+ margin-right: 10px;
497
+ font-size: 18px;
498
  }
499
+ #nifty_select_file{
500
+ cursor: pointer;
501
+ }
502
+ .nifty_rating_icon {
503
+ margin-right: 10px;
504
+ color:#999;
505
+ font-size: 17px;
506
  }
507
 
508
  #nifty_ratings_holder {
509
+ float:right;
510
+ display: inline-block;
511
+ position: relative;
512
+ top: -37px;
513
+ font-size: 17px;
514
+ cursor: pointer;
515
  }
516
 
517
  #nifty_ratings_form {
518
  position: absolute;
519
+ right: 0;
520
+ bottom: -6px;
521
  width: 250px;
522
  padding: 2px;
523
+ z-index: 9999;
524
  border-radius: 4px;
525
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
526
  }
527
 
528
  input#nifty_ratings_comment {
533
  top: 0px;
534
  position: relative;
535
  float: left;
536
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
537
  }
538
 
539
 
550
  border-radius: 2px;
551
  text-align: center;
552
  font-size: 12px;
553
+ padding: 5px;
554
  /* top: 3px; */
555
  /* right: 2px; */
556
  position: relative;
557
+ margin-left: 4px;
558
+ margin-top: 0px;
559
+ }
560
+
561
+ #nifty_rating_button_cancel {
562
+ float: right;
563
+ border-style: none;
564
+ width: 9%;
565
+ border-radius: 2px;
566
+ text-align: center;
567
+ font-size: 13px;
568
+ padding: 1px;
569
+ top: 0px;
570
+ line-height: 12px;
571
+ right: 1px;
572
+ height: 24px;
573
+ display: inline-block;
574
+ position: relative;
575
+ box-sizing: border-box;
576
  }
577
 
578
  #nifty_rating_thanks {
664
  padding:15px;
665
  height:80px;
666
  box-shadow: 0 1px 1px #f0f0f1;
667
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
668
+ font-size: 12pt;
669
  }
670
 
671
  /* named after the famous words uttered by The Dylan at Code Cabin */
711
  }
712
 
713
  .wplc_hovercard_content_right .wplc_offline {
 
714
  font-weight:bold;
715
  }
716
  .typing_indicator {
717
  width:100%;
718
+ position:absolute;
719
  height: 0px;
720
  opacity:0.3;
721
+ bottom: 55px;
722
+ z-index: 9999;
723
+ font-size: 0.7em;
 
 
 
 
 
 
724
  }
725
  .typing_indicator_active {
 
726
  height:20px;
727
  opacity:0.9;
 
 
 
 
 
 
 
 
728
 
729
  }
730
  .wplc_msg_notice {
757
  }
758
 
759
  .wdt-emoji-picker {
760
+ right: 10px;
761
+ bottom: 22px !important;
762
  font-size: 17px;
763
  text-align: center;
764
  line-height: 50px;
765
  }
766
 
 
 
 
 
 
 
767
  .wdt-emoji-popup.ready.open {
768
  width: 281px;
769
  margin-left: 20px;
834
  }
835
  a.bleeper_restart_chat {
836
  text-align: center;
837
+ margin-top: 15px;
838
  display: block;
839
  }
840
 
841
  div#bleeper_chat_ended {
842
+ min-height: 50px;
843
+ max-height: 50px;
844
+ height: 50px;
845
+ font-size: 12pt;
846
  position: absolute;
847
  bottom: 0;
848
  width: 100%;
884
 
885
  label[for=wplc_chat_gdpr_opt_in] {
886
  display: inline-block;
887
+ font-size: 0.6em;
888
  max-width: 90%;
889
  vertical-align: top;
890
+ line-height: 1.3em;
891
  }
892
 
893
  .wplc_gdpr_privacy_notice {
897
  margin-left: 2em;
898
  margin-right: 2em;
899
  color: #bdbdbd;
900
+ font-size: 0.6em;
901
+ line-height: 1.3em;
902
  }
903
 
904
  .wplc_gdpr_privacy_notice a {
912
 
913
  #wplc_end_chat_button {
914
  position: absolute;
915
+ top: 5px;
916
+ right: 15px;
917
  padding: 5px;
918
+ font-size: 12pt;
 
919
  border-radius: 4px;
920
+ background: transparent !important;
921
+ color: #fff !important;
 
 
922
  border: none;
923
+ height: 25px;
924
+ width: 25px;
925
+ }
926
+
927
+ #wplc_end_chat_button i:first-child{
928
+ margin-top:-4px;
929
+ }
930
+
931
+ #wplc_end_chat_button i{
932
+ font-weight: 100 !important;
933
+ position: absolute;
934
  }
935
 
936
  .wplc_in_chat_notice {
949
  .wplc_in_chat_notice_heading {
950
  font-size: 16px;
951
  padding-bottom: 10px;
 
952
  margin-bottom: 10px;
953
+ text-align: center;
954
  }
955
 
956
  .wplc_in_chat_notice_content button {
970
 
971
  .wplc_in_chat_notice_content {
972
  padding-top: 15px;
973
+ }
974
+
975
+ #wplc_msg_notice {
976
+ font-size: 0.5em !important;
977
+ text-align: center;
978
+ border-bottom: 1px solid #eee;
979
+ }
980
+
981
+ @media only screen and (max-device-width: 480px) and (min-device-width: 320px) and (orientation: portrait) {
982
+ .wdt-emoji-picker {
983
+ display: block !important;
984
+ }
985
+ }
986
+
987
+ span.wplc_char_counter {
988
+ font-size: 10px;
989
+ position: absolute;
990
+ right: 10px;
991
+ margin-top: -25px
992
+ }
993
+
994
+ .wplc-system-notification .messageBody span a {
995
+ max-width: 100%;
996
+ max-height: 27px;
997
+ display: block;
998
+ font-size: 15px;
999
+ overflow: hidden;
1000
+ text-overflow: ellipsis;
1001
+ white-space: pre;
1002
+ }
1003
+
1004
+ .wplc-ds-wrapper br {
1005
+ display: none;
1006
+ }
1007
+
1008
+ .wplc_custom_dropdown option[wplc-holder=true],
1009
+ .wplc_custom_dropdown.unselected{
1010
+ color: #7d7d7d !important;
1011
+ }
1012
+
1013
+ #wplc_chatbox > span:last-child{
1014
+ margin-bottom: 20px;
1015
  }
css/themes/modern.css CHANGED
@@ -2,7 +2,7 @@
2
  background-color: #fff !important;
3
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4
  font-size: 15px;
5
- line-height: 32px;
6
  color: #60686e;
7
  /* width: 100%; */
8
  width: 268px !important;
@@ -19,7 +19,7 @@
19
  padding-right: 100px;
20
  box-sizing: border-box;
21
  min-height: 35px;
22
- overflow-y: hidden;
23
  padding: 5px !important;
24
  margin-top: 10px;
25
  background-color: #fff !important;
@@ -35,7 +35,7 @@
35
  width: 100%;
36
  height: 100px;
37
  }
38
- #wp-live-chat input, #wp-live-chat textarea {
39
  color: #2b2b2b;
40
  padding: 8px 10px 7px;
41
  margin-bottom: 10px;
@@ -43,7 +43,7 @@
43
  border-radius: 5px;
44
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
45
  font-weight:normal;
46
- font-size:12px;
47
 
48
 
49
  background-color: #fafafa;
@@ -77,6 +77,7 @@
77
  padding: 5%;
78
  width:100%;
79
  overflow-y: scroll;
 
80
  }
81
  #wp-live-chat-inner-container {
82
  /* padding:16px; */
@@ -153,12 +154,9 @@
153
  }
154
 
155
  #wp-live-chat-1 {
156
- padding: 5px;
157
- padding-left: 20px;
158
- padding-right: 20px;
159
  color: #000;
160
  text-align:center;
161
- padding-top:18px;
162
  }
163
 
164
  #wp-live-chat-minimize {
@@ -202,16 +200,14 @@
202
 
203
 
204
  #wp-live-chat-2-info {
205
- font-size: 1em;
206
  display: block;
207
  width: 100%;
208
  overflow: hidden;
209
  text-align: center;
210
  margin: 0 auto;
211
- padding-bottom: 10px;
212
  padding: 16px;
213
  color: #fff;
214
- padding-top:10px;
215
  }
216
  #wp-live-chat-2-inner {
217
  padding: 20px 12px 26px;
@@ -233,15 +229,21 @@
233
  .wplc_agent_info {
234
  display:block;
235
  overflow:auto;
 
236
 
237
  }
238
- .wplc_agent_name {
 
239
  font-weight: bold;
240
- margin-top: 18px;
241
  display: block;
242
  float: left;
243
  margin-left: 10px;
244
- font-size: 1.2em;
 
 
 
 
245
  }
246
 
247
  .wplc_logo_class {
@@ -308,10 +310,11 @@ z-index: 2147483000;
308
  display: block;
309
  border-radius: 10px;
310
  border-radius: 10px;
 
311
  }
312
- #wp-live-chat-2 input{
313
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
314
- font-size: 15px;
315
  line-height: 32px;
316
  color: #60686e;
317
  width: 100%;
@@ -336,6 +339,7 @@ z-index: 2147483000;
336
  #wplc_message_div{
337
  text-align: center;
338
  padding:16px;
 
339
  }
340
  #wp-live-chat-inner-image-div{
341
  overflow: hidden;
@@ -347,7 +351,7 @@ z-index: 2147483000;
347
  padding:10px;
348
  -webkit-border-radius: 2px;
349
  -moz-border-radius: 2px;
350
- border-radius: 2px;
351
  border: 1px solid #666;
352
  margin-top:2px;
353
  background-color:#666;
@@ -382,10 +386,14 @@ z-index: 2147483000;
382
  /*height: 50px !important;*/
383
  }
384
 
 
 
 
 
385
  .wplc-shrink .wplc_agent_name {
386
  float: left;
387
  margin-left: 10px;
388
- margin-top: -10px;
389
  }
390
 
391
  .wplc-shrink .wplc_agent_infosection {
@@ -569,6 +577,8 @@ z-index: 2147483000;
569
  box-shadow: 0 1px 1px #f0f0f1;
570
  display:flex;
571
  height:auto;
 
 
572
  }
573
 
574
  /* named after the famous words uttered by The Dylan at Code Cabin */
@@ -585,6 +595,7 @@ z-index: 2147483000;
585
 
586
  #wplc_first_message {
587
  display:block;
 
588
 
589
 
590
  }
@@ -627,11 +638,10 @@ z-index: 2147483000;
627
  margin-top: 20px;
628
  }
629
  #wp-live-chat-2-inner #wplc_start_chat_btn {
630
- margin-left: auto;
631
- margin-right: auto;
632
  display: block;
633
- padding-left: 30px;
634
- padding-right: 30px;
635
  }
636
  #wp-live-chat-2-inner #wplc_na_msg_btn {
637
  margin-left: auto;
@@ -642,16 +652,16 @@ z-index: 2147483000;
642
  }
643
  #wplc_social_holder {
644
  position: absolute;
645
- width: 40px;
646
  z-index: 9999999999 !important;
647
- bottom: 0px;
648
- right: 2px !important;
649
- left: 330px !important;
650
  font-size: 15px;
651
  }
652
 
653
  .wplc_social_icon {
654
  margin-left: 3px;
 
655
  }
656
 
657
  .nifty_tedit_icon{
@@ -664,12 +674,16 @@ z-index: 2147483000;
664
 
665
 
666
  }
667
- .nifty_attach_icon {
668
- position: absolute;
669
- top: 19px;
670
- right: 65px;
671
- color:#999;
672
- font-size:20px;
 
 
 
 
673
  }
674
  .nifty_rating_icon {
675
  margin-right: 10px;
@@ -677,27 +691,28 @@ z-index: 2147483000;
677
  font-size: 17px;
678
  }
679
  #nifty_ratings_holder {
680
- position: absolute;
681
- z-index: 9999999;
682
- right: 6px;
683
- top: 16px;
 
684
  }
685
  #nifty_ratings_form {
686
  position: absolute;
687
- left: -165px;
688
- top: -52px;
689
- width: 220px;
690
  padding: 2px;
691
- border-radius: 2px;
 
692
  }
693
  #nifty_rating_thanks {
694
- position: absolute;
695
  width: 200px;
696
  margin-left: 5px;
697
  position: absolute;
698
- top: -22px;
699
- right: 0px;
700
- text-align: right;
701
  }
702
 
703
  input#nifty_ratings_comment {
@@ -718,20 +733,41 @@ input#nifty_ratings_comment {
718
  #nifty_rating_button {
719
  float: right;
720
  border-style: none;
721
- width: 27%;
722
  border-radius: 2px;
723
  text-align: center;
724
- font-size: 12px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
725
  padding: 1px;
726
- top: 2px;
727
- right: 2px;
 
 
 
728
  position: relative;
 
729
  }
730
 
731
  #nifty_recording {
732
  margin-left: 5px;
733
  position: absolute;
734
- top: -21px;
735
  right: 22px;
736
  }
737
  .wplc_powered_by_link {
@@ -744,20 +780,19 @@ input#nifty_ratings_comment {
744
  display:none;
745
  }
746
  .typing_indicator {
747
- display: none;
748
-
749
  /* width: 100%; */
750
  position: absolute;
751
  padding: 3px;
752
  padding-left: 6px;
753
  padding-right: 6px;
754
  border-radius: 6px;
755
- top: 65px;
756
- z-index: 99;
757
- opacity: 0;
758
- font-size: 0.8em;
759
  font-style: italic;
760
- margin-left: 4px;
761
  transition: all 0.1s ease;
762
  -webkit-transition: all 0.1s ease;
763
  -moz-transition: all 0.1s ease;
@@ -766,7 +801,7 @@ input#nifty_ratings_comment {
766
  }
767
  .typing_indicator_active {
768
  display: block;
769
- opacity:0.7;
770
  transition: all 0.1s ease;
771
  -webkit-transition: all 0.1s ease;
772
  -moz-transition: all 0.1s ease;
@@ -776,17 +811,15 @@ input#nifty_ratings_comment {
776
 
777
  #wp-live-chat-2 select {
778
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
779
- font-size: 15px;
780
  line-height: 32px;
781
  width: 100%;
782
  height: 49px;
783
- color: #60686e;
784
- border: 1px solid #e4e5e7;
785
  border-radius: 2px;
786
- margin-bottom: 5px;
787
  }
788
 
789
- span.wplc_system_notification {
790
  display: block;
791
  padding: 8px;
792
  clear:both;
@@ -841,11 +874,19 @@ button.wplc_retry_chat {
841
  margin-top:35px;
842
  margin-left: -15px;
843
  }
844
-
845
  .wplc_thumb16_stacked:first-child{
846
  margin-left:35px;
847
  }
848
 
 
 
 
 
 
 
 
 
 
849
  .wplc_thumb32 {
850
  border-radius:32px;
851
  float: left;
@@ -907,21 +948,6 @@ button.wplc_retry_chat {
907
  top:65px !important;
908
  }
909
 
910
- .wplc_agent_involved {
911
- float: left;
912
- margin-left: 30px;
913
- margin-top: 3px;
914
- width:40px;
915
- height:40px;
916
-
917
- }
918
-
919
- .wplc_agent_name {
920
- float: left;
921
- margin-left: 10px;
922
- margin-top: -10px;
923
- }
924
-
925
  .wplc_agent_infosection {
926
  display: none;
927
  }
@@ -1005,11 +1031,10 @@ button.wplc_retry_chat {
1005
 
1006
  span.bleeper_pullup {
1007
  position: absolute;
1008
- /* top: 11px; */
1009
- bottom: 5px;
1010
  color: rgba(255, 255, 255, 0.68);
1011
- right: 15px;
1012
- font-size: 2em;
1013
  cursor: pointer;
1014
  }
1015
  a.bleeper_restart_chat {
@@ -1053,7 +1078,7 @@ div#bleeper_chat_ended {
1053
  /* iPhone fix */
1054
  @media screen and (max-height: 675px){
1055
  #wp-live-chat-2 {
1056
- bottom: 70px;
1057
  }
1058
 
1059
  }
@@ -1105,18 +1130,20 @@ input#wplc_chat_gdpr_opt_in {
1105
 
1106
  label[for=wplc_chat_gdpr_opt_in] {
1107
  display: inline-block;
1108
- font-size: 0.7em;
1109
  max-width: 90%;
1110
  vertical-align: top;
 
1111
  }
1112
 
1113
  .wplc_gdpr_privacy_notice {
1114
  margin-top: 10px;
1115
  margin-bottom: 10px;
1116
- font-size: 0.6em;
1117
  margin-left: 2em;
1118
  margin-right: 2em;
1119
  color: #bdbdbd;
 
1120
  }
1121
 
1122
  .wplc_gdpr_privacy_notice a {
@@ -1130,17 +1157,36 @@ label[for=wplc_chat_gdpr_opt_in] {
1130
 
1131
  #wplc_end_chat_button {
1132
  position: absolute;
1133
- top: -32px;
1134
- right: 0;
 
1135
  padding: 5px;
1136
- font-size: 9px;
1137
- font-weight: 200;
1138
  border-radius: 4px;
1139
- background: #fff !important;
1140
- color: #333 !important;
1141
- line-height: 12px;
1142
- box-shadow: 0 0 15px 0 rgba(86, 86, 86, 0.11);
1143
  border: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1144
  }
1145
 
1146
  .wplc_in_chat_notice {
@@ -1186,3 +1232,62 @@ label[for=wplc_chat_gdpr_opt_in] {
1186
  padding: 20px;
1187
  }
1188
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  background-color: #fff !important;
3
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4
  font-size: 15px;
5
+ line-height: 28px;
6
  color: #60686e;
7
  /* width: 100%; */
8
  width: 268px !important;
19
  padding-right: 100px;
20
  box-sizing: border-box;
21
  min-height: 35px;
22
+ overflow-y: auto;
23
  padding: 5px !important;
24
  margin-top: 10px;
25
  background-color: #fff !important;
35
  width: 100%;
36
  height: 100px;
37
  }
38
+ #wp-live-chat input, #wp-live-chat textarea, #wp-live-chat select{
39
  color: #2b2b2b;
40
  padding: 8px 10px 7px;
41
  margin-bottom: 10px;
43
  border-radius: 5px;
44
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
45
  font-weight:normal;
46
+ font-size:10pt;
47
 
48
 
49
  background-color: #fafafa;
77
  padding: 5%;
78
  width:100%;
79
  overflow-y: scroll;
80
+ font-size: 12pt;
81
  }
82
  #wp-live-chat-inner-container {
83
  /* padding:16px; */
154
  }
155
 
156
  #wp-live-chat-1 {
157
+ padding: 16px;
 
 
158
  color: #000;
159
  text-align:center;
 
160
  }
161
 
162
  #wp-live-chat-minimize {
200
 
201
 
202
  #wp-live-chat-2-info {
203
+ font-size: 12pt;
204
  display: block;
205
  width: 100%;
206
  overflow: hidden;
207
  text-align: center;
208
  margin: 0 auto;
 
209
  padding: 16px;
210
  color: #fff;
 
211
  }
212
  #wp-live-chat-2-inner {
213
  padding: 20px 12px 26px;
229
  .wplc_agent_info {
230
  display:block;
231
  overflow:auto;
232
+ font-size: 12pt;
233
 
234
  }
235
+
236
+ .wplc_agent_name {
237
  font-weight: bold;
238
+ margin-top: 12px;
239
  display: block;
240
  float: left;
241
  margin-left: 10px;
242
+ font-size: 12pt;
243
+ max-width: 50%;
244
+ overflow: hidden;
245
+ text-overflow: ellipsis;
246
+ white-space: pre;
247
  }
248
 
249
  .wplc_logo_class {
310
  display: block;
311
  border-radius: 10px;
312
  border-radius: 10px;
313
+ max-height: 86vh;
314
  }
315
+ #wp-live-chat-2 input, #wp-live-chat-2 textarea{
316
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
317
+ font-size: 10pt;
318
  line-height: 32px;
319
  color: #60686e;
320
  width: 100%;
339
  #wplc_message_div{
340
  text-align: center;
341
  padding:16px;
342
+ font-size: 12pt;
343
  }
344
  #wp-live-chat-inner-image-div{
345
  overflow: hidden;
351
  padding:10px;
352
  -webkit-border-radius: 2px;
353
  -moz-border-radius: 2px;
354
+ border-radius: 6px;
355
  border: 1px solid #666;
356
  margin-top:2px;
357
  background-color:#666;
386
  /*height: 50px !important;*/
387
  }
388
 
389
+ span.bleeper_pullup.up {
390
+ top: 3px !important;
391
+ }
392
+
393
  .wplc-shrink .wplc_agent_name {
394
  float: left;
395
  margin-left: 10px;
396
+ margin-top: -15px;
397
  }
398
 
399
  .wplc-shrink .wplc_agent_infosection {
577
  box-shadow: 0 1px 1px #f0f0f1;
578
  display:flex;
579
  height:auto;
580
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
581
+ font-size: 12pt;
582
  }
583
 
584
  /* named after the famous words uttered by The Dylan at Code Cabin */
595
 
596
  #wplc_first_message {
597
  display:block;
598
+ font-size: 12pt;
599
 
600
 
601
  }
638
  margin-top: 20px;
639
  }
640
  #wp-live-chat-2-inner #wplc_start_chat_btn {
641
+ width: 100%;
 
642
  display: block;
643
+ font-size: 12pt;
644
+
645
  }
646
  #wp-live-chat-2-inner #wplc_na_msg_btn {
647
  margin-left: auto;
652
  }
653
  #wplc_social_holder {
654
  position: absolute;
655
+ width: 80px;
656
  z-index: 9999999999 !important;
657
+ bottom: 12px;
658
+ right: 45px;
 
659
  font-size: 15px;
660
  }
661
 
662
  .wplc_social_icon {
663
  margin-left: 3px;
664
+ font-size: 24px;
665
  }
666
 
667
  .nifty_tedit_icon{
674
 
675
 
676
  }
677
+ #nifty_file_holder {
678
+ float: right;
679
+ position: relative;
680
+ top: -47px;
681
+ display: inline-block;
682
+ margin-right: 10px;
683
+ font-size: 18px;
684
+ }
685
+ #nifty_select_file{
686
+ cursor: pointer;
687
  }
688
  .nifty_rating_icon {
689
  margin-right: 10px;
691
  font-size: 17px;
692
  }
693
  #nifty_ratings_holder {
694
+ float:right;
695
+ display: inline-block;
696
+ position: relative;
697
+ top: -52px;
698
+ cursor: pointer;
699
  }
700
  #nifty_ratings_form {
701
  position: absolute;
702
+ right: 106px;
703
+ top: 60px;
704
+ width: 260px;
705
  padding: 2px;
706
+ border-radius: 4px;
707
+ box-shadow: 0 0 5px 3px #33333312;
708
  }
709
  #nifty_rating_thanks {
 
710
  width: 200px;
711
  margin-left: 5px;
712
  position: absolute;
713
+ top: 50px;
714
+ right: 169px;
715
+ text-align: left;
716
  }
717
 
718
  input#nifty_ratings_comment {
733
  #nifty_rating_button {
734
  float: right;
735
  border-style: none;
736
+ width: 20%;
737
  border-radius: 2px;
738
  text-align: center;
739
+ font-size: 13px;
740
+ padding: 1px;
741
+ top: 0px;
742
+ line-height: 12px;
743
+ right: 3px;
744
+ height: 24px;
745
+ display: inline-block;
746
+ position: relative;
747
+ box-sizing: border-box;
748
+ }
749
+
750
+ #nifty_rating_button_cancel {
751
+ float: right;
752
+ border-style: none;
753
+ width: 7%;
754
+ border-radius: 2px;
755
+ text-align: center;
756
+ font-size: 13px;
757
  padding: 1px;
758
+ top: 0px;
759
+ line-height: 12px;
760
+ right: 1px;
761
+ height: 24px;
762
+ display: inline-block;
763
  position: relative;
764
+ box-sizing: border-box;
765
  }
766
 
767
  #nifty_recording {
768
  margin-left: 5px;
769
  position: absolute;
770
+ top: -34px;
771
  right: 22px;
772
  }
773
  .wplc_powered_by_link {
780
  display:none;
781
  }
782
  .typing_indicator {
783
+ display: none;
 
784
  /* width: 100%; */
785
  position: absolute;
786
  padding: 3px;
787
  padding-left: 6px;
788
  padding-right: 6px;
789
  border-radius: 6px;
790
+ top: -25px;
791
+ z-index: 9999;
792
+ opacity: 0;
793
+ font-size: 12px;
794
  font-style: italic;
795
+ margin-left: 20px;
796
  transition: all 0.1s ease;
797
  -webkit-transition: all 0.1s ease;
798
  -moz-transition: all 0.1s ease;
801
  }
802
  .typing_indicator_active {
803
  display: block;
804
+ opacity:1;
805
  transition: all 0.1s ease;
806
  -webkit-transition: all 0.1s ease;
807
  -moz-transition: all 0.1s ease;
811
 
812
  #wp-live-chat-2 select {
813
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
814
+ font-size: 10pt;
815
  line-height: 32px;
816
  width: 100%;
817
  height: 49px;
 
 
818
  border-radius: 2px;
819
+ margin-bottom: 10px;
820
  }
821
 
822
+ span.wplc-system-notification {
823
  display: block;
824
  padding: 8px;
825
  clear:both;
874
  margin-top:35px;
875
  margin-left: -15px;
876
  }
 
877
  .wplc_thumb16_stacked:first-child{
878
  margin-left:35px;
879
  }
880
 
881
+ .wplc-shrink .wplc_thumb16_stacked {
882
+ border-radius: 16px;
883
+ height: 32px !important;
884
+ width: 32px !important;
885
+ float: left !important;
886
+ margin-top: 7px !important;
887
+ margin-left: 2px !important;
888
+ }
889
+
890
  .wplc_thumb32 {
891
  border-radius:32px;
892
  float: left;
948
  top:65px !important;
949
  }
950
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
951
  .wplc_agent_infosection {
952
  display: none;
953
  }
1031
 
1032
  span.bleeper_pullup {
1033
  position: absolute;
1034
+ top: 31px;
 
1035
  color: rgba(255, 255, 255, 0.68);
1036
+ right: 50px;
1037
+ font-size: 20pt;
1038
  cursor: pointer;
1039
  }
1040
  a.bleeper_restart_chat {
1078
  /* iPhone fix */
1079
  @media screen and (max-height: 675px){
1080
  #wp-live-chat-2 {
1081
+ bottom: 85px;
1082
  }
1083
 
1084
  }
1130
 
1131
  label[for=wplc_chat_gdpr_opt_in] {
1132
  display: inline-block;
1133
+ font-size: 10pt;
1134
  max-width: 90%;
1135
  vertical-align: top;
1136
+ line-height: 1.2em;
1137
  }
1138
 
1139
  .wplc_gdpr_privacy_notice {
1140
  margin-top: 10px;
1141
  margin-bottom: 10px;
1142
+ font-size: 10pt;
1143
  margin-left: 2em;
1144
  margin-right: 2em;
1145
  color: #bdbdbd;
1146
+ line-height: 1.2em;
1147
  }
1148
 
1149
  .wplc_gdpr_privacy_notice a {
1157
 
1158
  #wplc_end_chat_button {
1159
  position: absolute;
1160
+ top: 35px;
1161
+ z-index:9999999;
1162
+ right: 25px;
1163
  padding: 5px;
1164
+ font-size: 15pt;
1165
+ font-weight: 100 !important;
1166
  border-radius: 4px;
1167
+ background: transparent !important;
1168
+ color: rgba(255, 255, 255, 0.68);
 
 
1169
  border: none;
1170
+ transition: top 0.15s cubic-bezier(0.65, 0.05, 0.36, 1);
1171
+ height: 25px;
1172
+ width: 25px;
1173
+ }
1174
+
1175
+ #wplc_end_chat_button i:first-child{
1176
+ margin-top:-5px;
1177
+ }
1178
+
1179
+ #wplc_end_chat_button i{
1180
+ font-weight: 100 !important;
1181
+ position: absolute;
1182
+ }
1183
+
1184
+ #wplc_end_chat_button.shrink {
1185
+ top: 6px !important;
1186
+ }
1187
+
1188
+ .bleeper_restart_chat {
1189
+ font-size: 12pt;
1190
  }
1191
 
1192
  .wplc_in_chat_notice {
1232
  padding: 20px;
1233
  }
1234
 
1235
+
1236
+
1237
+ @media only screen and (max-device-width: 480px) and (min-device-width: 320px) and (orientation: portrait) {
1238
+ .wdt-emoji-picker {
1239
+ display: block !important;
1240
+ }
1241
+ }
1242
+
1243
+ span.wplc_char_counter {
1244
+ font-size: 10px;
1245
+ position: absolute;
1246
+ right: 20px;
1247
+ margin-top: -25px
1248
+ }
1249
+
1250
+ .wplc-system-notification .messageBody span a {
1251
+ max-width: 100%;
1252
+ max-height: 27px;
1253
+ display: block;
1254
+ font-size: 15px;
1255
+ overflow: hidden;
1256
+ text-overflow: ellipsis;
1257
+ white-space: pre;
1258
+ }
1259
+
1260
+ .wplc-ds-wrapper br {
1261
+ display: none;
1262
+ }
1263
+
1264
+ .wplc_custom_dropdown option[wplc-holder=true],
1265
+ .wplc_custom_dropdown.unselected{
1266
+ color: #7d7d7d !important;
1267
+ }
1268
+
1269
+ #wplc_chatbox > span:last-child{
1270
+ margin-bottom: 20px;
1271
+ }
1272
+
1273
+ #wp-live-chat input[type=button] {
1274
+ font-size: 12pt;
1275
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1276
+ }
1277
+
1278
+ .wplc_agent_bio {
1279
+ display: none !important;
1280
+ }
1281
+
1282
+ .wplc_agent_tagline {
1283
+ position: absolute;
1284
+ margin-left: 115px;
1285
+ margin-top: 30px !important;
1286
+ font-size: 12pt;
1287
+ height: 22px;
1288
+ width: 150px;
1289
+ overflow: hidden;
1290
+ text-overflow: ellipsis;
1291
+ white-space: pre;
1292
+ font-style: italic;
1293
+ }
css/themes/position-bottom-left.css CHANGED
@@ -27,10 +27,6 @@
27
  right:auto;
28
  }
29
 
30
- #wplc_social_holder {
31
- right: -24px;
32
- }
33
-
34
  #wplc_hovercard.classic {
35
  position: fixed;
36
  bottom: 96px;
27
  right:auto;
28
  }
29
 
 
 
 
 
30
  #wplc_hovercard.classic {
31
  position: fixed;
32
  bottom: 96px;
css/themes/position-bottom-right.css CHANGED
@@ -1,3 +0,0 @@
1
- #wplc_social_holder {
2
- left: -18px;
3
- }
 
 
 
css/themes/position-left.css CHANGED
@@ -16,11 +16,6 @@
16
  right:auto;
17
  }
18
 
19
-
20
- #wplc_social_holder {
21
- right: -24px;
22
- }
23
-
24
  #wplc_hovercard.classic:before {
25
  content: "";
26
  position: absolute;
16
  right:auto;
17
  }
18
 
 
 
 
 
 
19
  #wplc_hovercard.classic:before {
20
  content: "";
21
  position: absolute;
css/themes/position-right.css CHANGED
@@ -6,10 +6,6 @@
6
  }
7
 
8
 
9
- #wplc_social_holder {
10
- left: -18px;
11
- }
12
-
13
  #wplc_hovercard.classic:before {
14
  content: "";
15
  position: absolute;
6
  }
7
 
8
 
 
 
 
 
9
  #wplc_hovercard.classic:before {
10
  content: "";
11
  position: absolute;
css/themes/theme-default.css CHANGED
@@ -26,7 +26,7 @@
26
  .wplc-color-border-3:before { border-color: transparent #EEE !important; }
27
  .wplc-color-border-4:before { border-color: transparent #666 !important; }
28
 
29
- span.wplc_system_notification {
30
  display: block;
31
  padding: 8px;
32
  clear:both;
26
  .wplc-color-border-3:before { border-color: transparent #EEE !important; }
27
  .wplc-color-border-4:before { border-color: transparent #666 !important; }
28
 
29
+ span.wplc-system-notification {
30
  display: block;
31
  padding: 8px;
32
  clear:both;
css/wplc_styles_admin_pro.css CHANGED
@@ -84,4 +84,10 @@
84
 
85
  .wplc_roi_report_content {
86
  padding: 10px;
 
 
 
 
 
 
87
  }
84
 
85
  .wplc_roi_report_content {
86
  padding: 10px;
87
+ }
88
+
89
+
90
+
91
+ .wplc_agent_card_details small {
92
+ height: unset;
93
  }
css/wplc_styles_pro.css CHANGED
@@ -2,7 +2,39 @@
2
  width: 90% !important;
3
  }
4
 
5
- .modern .wdt-emoji-picker {
6
- right: 84px !important;
7
  }
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  width: 90% !important;
3
  }
4
 
5
+ .modern.file_sharing_ratings_enabled .wdt-emoji-picker {
6
+ right: 75px !important;
7
  }
8
 
9
+ .modern.rating_enabled .wdt-emoji-picker {
10
+ right: 54px !important;
11
+ }
12
+
13
+ .modern.file_sharing_enabled .wdt-emoji-picker {
14
+ right: 24px !important;
15
+ }
16
+
17
+ .classic.file_sharing_ratings_enabled .wdt-emoji-picker {
18
+ right: 72px !important;
19
+ }
20
+
21
+ .classic.rating_enabled .wdt-emoji-picker {
22
+ right: 54px !important;
23
+ }
24
+
25
+ .classic.file_sharing_enabled .wdt-emoji-picker {
26
+ right: 24px !important;
27
+ }
28
+
29
+ .modern.emoji_only .wdt-emoji-popup.open {
30
+ transform: translateX(-75px);
31
+ }
32
+
33
+ .modern.file_sharing_enabled .wdt-emoji-popup.open {
34
+ transform: translateX(-60px);
35
+ }
36
+
37
+
38
+
39
+
40
+
css/wplcstyle.css CHANGED
@@ -73,11 +73,11 @@
73
  }
74
 
75
  #wp-live-chat-inner {
76
- overflow-y: scroll;
77
  }
78
 
79
  #wp-live-chat-4 {
80
- top: 2px !important;
81
  bottom: 150px !important;
82
  }
83
 
73
  }
74
 
75
  #wp-live-chat-inner {
76
+ overflow-y: auto;
77
  }
78
 
79
  #wp-live-chat-4 {
80
+ top: 40px !important;
81
  bottom: 150px !important;
82
  }
83
 
functions.php CHANGED
@@ -648,7 +648,7 @@ function wplc_return_no_answer_string($cid) {
648
  $string = __("No agent was able to answer your chat request. Please try again.","wplivechat");
649
  }
650
  $string = apply_filters("wplc_filter_no_answer_string",$string,$cid);
651
- return "<span class='wplc_system_notification wplc_no_answer wplc-color-4'><center>".$string."</center></span>";
652
  }
653
  add_filter("wplc_filter_no_answer_string","wplc_filter_control_no_answer_string",10,2);
654
 
@@ -822,6 +822,17 @@ function wplc_return_chat_messages($cid, $transcript = false, $html = true, $wpl
822
  $msg = sanitize_text_field(stripslashes($msg));
823
  }
824
 
 
 
 
 
 
 
 
 
 
 
 
825
  if ( isset( $result->afrom ) && intval( $result->afrom ) > 0 ) {
826
  $msg_array[$id]['afrom'] = intval( $result->afrom ); $other_data['aid'] = intval( $result->afrom );
827
 
@@ -863,7 +874,20 @@ function wplc_return_chat_messages($cid, $transcript = false, $html = true, $wpl
863
  } else {
864
  /* this is a system notification */
865
  if ($display_notification) {
866
- $str = "<span class='chat_time wplc-color-4'>".$nice_time."</span> <span class='wplc_system_notification wplc-color-4'>".$msg."</span>";
 
 
 
 
 
 
 
 
 
 
 
 
 
867
 
868
  if ( !isset( $msg_array[$id] ) ) { $msg_array[$id] = array(); }
869
  $msg_array[$id]['msg'] = $str;
@@ -1168,39 +1192,40 @@ function wplc_filter_control_mail_body($header,$msg) {
1168
 
1169
 
1170
 
1171
- <table id="" border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color: ' . $primary_bg_color . ';">
1172
  <tbody>
1173
  <tr>
1174
  <td width="100%" style="padding: 30px 20px 100px 20px;">
1175
- <table align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:600px;">
1176
  <tbody>
1177
  <tr>
1178
- <td style="text-align: center; padding-bottom: 20px;">
1179
 
1180
  <p>'.$header.'</p>
 
1181
  </td>
1182
  </tr>
1183
  </tbody>
1184
  </table>
1185
 
1186
- <table id="" align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width: 600px; font-family: Georgia, serif; font-size: 12px; color: rgb(51, 62, 72); border: 0px solid rgb(255, 255, 255); border-radius: 10px; background-color: rgb(255, 255, 255);">
1187
  <tbody>
1188
  <tr>
1189
- <td class="sortable-list ui-sortable" style="padding:20px; text-align:center;">
1190
  '.nl2br($msg).'
1191
  </td>
1192
  </tr>
1193
  </tbody>
1194
  </table>
1195
 
1196
- <table align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:100%;">
1197
  <tbody>
1198
  <tr>
1199
- <td style="padding:20px;">
1200
  <table border="0" cellpadding="0" cellspacing="0" class="" width="100%">
1201
  <tbody>
1202
  <tr>
1203
- <td id="" align="center">
1204
  <p>'.site_url().'</p>
1205
  </td>
1206
  </tr>
@@ -1302,7 +1327,7 @@ function wplcmail($reply_to,$reply_to_name,$subject,$msg) {
1302
  * @return void
1303
  */
1304
  function wplc_send_offline_msg($name,$email,$msg,$cid) {
1305
- $subject = apply_filters("wplc_offline_message_subject_filter", __("WP Live Chat Support - Offline Message from ", "wplivechat") ) . "$name";
1306
  $msg = __("Name", "wplivechat").": $name \n".
1307
  __("Email", "wplivechat").": $email\n".
1308
  __("Message", "wplivechat").": $msg\n\n".
@@ -2462,18 +2487,14 @@ if (!function_exists("wplc_acbc_hook_control_push_js_to_front")) {
2462
  wp_enqueue_script( 'wplc-user-pro-events-script' );
2463
 
2464
 
2465
- if(isset($wplc_settings["wplc_ux_editor"]) && $wplc_settings["wplc_ux_editor"] !== "0"){
2466
- wp_register_script('wplc-user-pro-editor', plugins_url('/js/wplc_u_editor.js', __FILE__), array('wplc-user-script', 'jquery'),false, false);
2467
- wp_enqueue_script('wplc-user-pro-editor');
2468
- }
2469
 
2470
  if(!empty($wplc_settings["wplc_pro_auto_first_response_chat_msg"])){
2471
  wp_localize_script('wplc-user-pro-features', 'wplc_pro_auto_resp_chat_msg', "" . apply_filters('wplc_pro_auto_first_response_chat_msg_filter', $wplc_settings["wplc_pro_auto_first_response_chat_msg"])."");
2472
  }
2473
 
2474
- if(isset($wplc_settings["wplc_ux_file_share"]) && $wplc_settings["wplc_ux_file_share"] !== "0"){
2475
- wp_enqueue_style('wplc-user-pro-styles', plugins_url('/css/wplc_styles_pro.css', __FILE__));
2476
- }
2477
 
2478
 
2479
  $post_id = get_the_ID();
@@ -2707,15 +2728,21 @@ if (!function_exists("wplc_choose_hook_control_action_callback")) {
2707
  $user_dirname = $upload_dir['basedir'];
2708
  $cid=0;
2709
  if (isset($_POST['cid'])) {
2710
- $cid=intval($_POST['cid']);
 
 
 
 
 
 
2711
  }
2712
 
2713
  if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
2714
  @mkdir($user_dirname.'/wp_live_chat/');
2715
  }
2716
 
2717
- if( !file_exists( realpath( $user_dirname."/wp_live_chat/" . $cid ) ) ){
2718
- @mkdir( realpath( $user_dirname.'/wp_live_chat/'. $cid ) );
2719
  }
2720
 
2721
  if (isset($_FILES['file']) && isset($_POST['timestamp'])) {
@@ -2724,25 +2751,27 @@ if (!function_exists("wplc_choose_hook_control_action_callback")) {
2724
 
2725
  if(!wplc_check_file_name_for_unsafe_extension($file_name)) {
2726
  if(wplc_check_file_name_for_safe_extension($file_name)) {
2727
- if( file_exists( realpath($user_dirname . "/wp_live_chat/" . $cid . "/" . sanitize_file_name($_FILES['file']['name']) ) ) ) {
2728
  $file_name = rand(0, 10) . "-" . $file_name;
2729
  }
2730
 
2731
- if(move_uploaded_file($_FILES['file']['tmp_name'], realpath($user_dirname."/wp_live_chat/" . $cid . "/" . $file_name))) {
2732
  //File has been uploaded, let's now go ahead and check the mime type
2733
- if(wplc_check_file_mime_type( realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name)) ) {
2734
- $response = realpath($upload_dir['baseurl']."/wp_live_chat/" . $cid . "/" . $file_name);
2735
  echo $response;
2736
  } else {
2737
  //Failed, lets delete this file to be safe
2738
  @unlink(realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name));
2739
- echo 'MIME Type not allowed';
2740
  }
2741
  } else {
2742
- echo '1';
 
2743
  }
2744
  } else {
2745
- echo "Filetype not allowed";
 
2746
  }
2747
  } else {
2748
  echo "Security Violation";
@@ -2833,11 +2862,9 @@ if (!function_exists("wplc_choose_admin_scripts")) {
2833
  wp_enqueue_script('wplc-triggers');
2834
 
2835
  $wplc_settings = get_option("WPLC_SETTINGS");
2836
- if(isset($wplc_settings["wplc_ux_editor"]) && $wplc_settings["wplc_ux_editor"] !== "0"){
2837
 
2838
- wp_register_script('wplc-admin-editor', plugins_url('/js/wplc_admin_editor.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
2839
- wp_enqueue_script('wplc-admin-editor');
2840
- }
2841
 
2842
 
2843
 
@@ -4196,7 +4223,6 @@ if (!function_exists("wplc_ma_hook_control_action_callback")) {
4196
  if( $_POST['action'] == 'wplc_record_chat_rating' ){
4197
  $rating_id = sanitize_text_field($_POST['cid']);
4198
  $rating_score = sanitize_text_field($_POST['rating']);
4199
- $rating_comment = sanitize_text_field($_POST['comment']);
4200
 
4201
  if( ! filter_var($rating_id, FILTER_VALIDATE_INT) ) {
4202
  /* We need to identify if this CID is a node CID, and if so, return the WP CID */
@@ -4204,7 +4230,7 @@ if (!function_exists("wplc_ma_hook_control_action_callback")) {
4204
  }
4205
 
4206
 
4207
- $nifty_record_rating = nifty_record_rating_mrg($rating_id, $rating_score, $rating_comment);
4208
  if ($nifty_record_rating) {
4209
  echo 'rating added';
4210
  wp_die();
@@ -4247,8 +4273,9 @@ if (!function_exists("wplc_maa_set_agents_online")) {
4247
 
4248
 
4249
  /* WPLC Social Icons Filter*/
4250
- add_filter("wplc_filter_chat_header_above","wplc_chat_social_div_mrg",5,2);
4251
- add_filter("wplc_filter_chat_4th_layer_below_input","wplc_chat_social_div_mrg",5,2);
 
4252
  function wplc_chat_social_div_mrg($msg, $wplc_setting){
4253
  $acbc_settings = get_option("WPLC_ACBC_SETTINGS");
4254
  $current_theme = isset($wplc_setting['wplc_newtheme']) ? $wplc_setting['wplc_newtheme'] : "";
@@ -4257,10 +4284,10 @@ function wplc_chat_social_div_mrg($msg, $wplc_setting){
4257
 
4258
  $wplc_settings = get_option("WPLC_SETTINGS");
4259
  if($wplc_settings["wplc_ux_exp_rating"] === "0" && $current_theme === "theme-2"){
4260
- $top_offset = "bottom:-4px !important;";
4261
  }
4262
 
4263
- $msg .= "<div id='wplc_social_holder' ".($current_theme === "theme-2" ? "class='wplc_modern'" : "" )." style='display:none; $top_offset' >";
4264
  if(isset($acbc_settings['wplc_social_fb']) && $acbc_settings['wplc_social_fb'] != ""){
4265
  $msg .= "<a class='wplc-color-1' href=".urldecode($acbc_settings['wplc_social_fb'])." target='_blank'><i class='wplc_social_icon fa fa-facebook-square' id='wplc_social_fb' ></i></a>";
4266
  }
@@ -4274,19 +4301,16 @@ function wplc_chat_social_div_mrg($msg, $wplc_setting){
4274
  /*Text Editor*/
4275
  add_filter("wplc_filter_chat_text_editor","nifty_text_edit_div_mrg",1,1);
4276
  function nifty_text_edit_div_mrg($msg){
4277
- $wplc_settings = get_option("WPLC_SETTINGS");
4278
- if($wplc_settings["wplc_ux_editor"] !== "0"){
4279
- $msg .= "<div id='nifty_text_editor_holder'>";
4280
- $msg .= "<i class='nifty_tedit_icon fa fa-bold' id='nifty_tedit_b'></i>";
4281
- $msg .= "<i class='nifty_tedit_icon fa fa-italic' id='nifty_tedit_i'></i>";
4282
- $msg .= "<i class='nifty_tedit_icon fa fa-underline' id='nifty_tedit_u'></i>";
4283
- $msg .= "<i class='nifty_tedit_icon fa fa-strikethrough' id='nifty_tedit_strike'></i>";
4284
- $msg .= "<i class='nifty_tedit_icon fa fa-square' id='nifty_tedit_mark'></i>";
4285
- $msg .= "<i class='nifty_tedit_icon fa fa-subscript' id='nifty_tedit_sub'></i>";
4286
- $msg .= "<i class='nifty_tedit_icon fa fa-superscript' id='nifty_tedit_sup'></i>";
4287
- $msg .= "<i class='nifty_tedit_icon fa fa-link' id='nifty_tedit_link'></i>";
4288
- $msg .= "</div>";
4289
- }
4290
  return $msg;
4291
  }
4292
 
@@ -4295,7 +4319,8 @@ add_filter("wplc_filter_chat_upload","nifty_file_upload_div_mrg",1,1);
4295
  function nifty_file_upload_div_mrg($msg){
4296
  $wplc_settings = get_option("WPLC_SETTINGS");
4297
  if($wplc_settings["wplc_ux_file_share"] !== "0"){
4298
- $editor_enabled = $wplc_settings["wplc_ux_exp_rating"] == "0" ? "bottom: 35px !important;" : "";
 
4299
  $msg .= "<div id='nifty_file_holder'>";
4300
  $msg .= "<label for='nifty_file_input' id='nifty_select_file'><i class='nifty_attach_icon nifty_attach_open_icon fa fa-paperclip' id='nifty_attach' style='$editor_enabled' ></i></label>";
4301
  $msg .= "<i class='nifty_attach_icon fa fa-circle-o-notch fa-spin' id='nifty_attach_uploading_icon' style='display:none; $editor_enabled' ></i>";
@@ -4307,7 +4332,7 @@ function nifty_file_upload_div_mrg($msg){
4307
  return $msg;
4308
  }
4309
 
4310
- add_filter("wplc_filter_chat_header_above","nifty_chat_ratings_div_mrg",1,2);
4311
  add_filter("wplc_filter_chat_4th_layer_below_input","nifty_chat_ratings_div_mrg",1,2);
4312
  function nifty_chat_ratings_div_mrg($msg, $wplc_setting){
4313
  $wplc_settings = get_option("WPLC_SETTINGS");
@@ -4318,7 +4343,8 @@ function nifty_chat_ratings_div_mrg($msg, $wplc_setting){
4318
  $msg .= "<i class='nifty_rating_icon fa fa-thumbs-o-down' id='nifty_rating_neg' ></i>";
4319
  $msg .= "<div id='nifty_ratings_form' style='display:none;' class='wplc-color-bg-1 wplc-color-1 wplc-color-border-1'>";
4320
  $msg .= "<input type='text' id='nifty_ratings_comment' placeholder='Comments...'>";
4321
- $msg .= "<button nifty-rating='' id='nifty_rating_button' class='wplc-color-bg-2 wplc-color-1'>Rate</button>";
 
4322
  $msg .= "</div>";
4323
  $msg .= "<i class='fa fa-spinner fa-spin' id='nifty_recording' style='display:none;'></i>";
4324
  $msg .= "<div id='nifty_rating_thanks' style='display:none;'>";
@@ -4331,14 +4357,14 @@ function nifty_chat_ratings_div_mrg($msg, $wplc_setting){
4331
  }
4332
 
4333
  /*Handles adding a rating*/
4334
- function nifty_record_rating_mrg($cid, $rating, $comment){
4335
  global $wpdb;
4336
  global $wplc_tblname_chat_ratings;
4337
 
4338
  //Cleanup here
4339
  $cid = intval($cid);
4340
  $rating = intval($rating);
4341
- $comment = sanitize_text_field($comment);
4342
 
4343
  if(nifty_chat_has_rating_mrg($cid)){ //Update
4344
  $sql = "UPDATE $wplc_tblname_chat_ratings SET `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0 WHERE `cid` = '%d' LIMIT 1";
@@ -4349,7 +4375,8 @@ function nifty_record_rating_mrg($cid, $rating, $comment){
4349
  } else {
4350
  return true;
4351
  }
4352
- }else{ //Insert
 
4353
  $sql = "INSERT INTO $wplc_tblname_chat_ratings SET `cid` = '%d', `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0";
4354
  $sql = $wpdb->prepare($sql, $cid, wplc_get_chat_data($cid)->agent_id, $rating, $comment, date("Y-m-d H:i:s"));
4355
  $wpdb->query($sql);
@@ -4405,7 +4432,7 @@ function nifty_rating_advanced_info_control_mrg($msg, $cid, $name, $chat_data){
4405
  $rating = apply_filters("wplc_rating_data_filter","",$cid,$name);
4406
  if ($rating) {
4407
 
4408
- $msg .= "<div class='admin_visitor_advanced_info admin_agent_rating'>
4409
  <strong>" . __("Experience Rating", "wplivechat") . "</strong>
4410
  <div class='rating " .(isset($rating['rating']) && $rating['rating'] == '1' ? "rating-good" : ($rating['rating'] == '0' ? "rating-bad" : "" ))."'>".(isset($rating['rating']) && $rating['rating'] == '1' ? "Satisfied" : ($rating['rating'] == '0' ? "Unsatisfied" : "No Rating" ))."</div>
4411
  <hr />
@@ -4462,13 +4489,19 @@ function nifty_get_rating_report_mrg($uid, $filter = 0){
4462
  $neg = 0;
4463
 
4464
  $data_array = array();
4465
-
4466
  $results = $wpdb->get_results($sql);
4467
  if($wpdb->num_rows){
4468
  foreach ($results as $res) {
4469
- $data_array[$uid][$res->cid] = array("rating" => $res->rating,
4470
- "comment" => $res->comment,
4471
- "time" => $res->timestamp);
 
 
 
 
 
 
4472
  if($res->rating == "1"){
4473
  $pos ++; //Count
4474
  }else if($res->rating == "0"){
@@ -4512,19 +4545,14 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4512
  $ratings .= ".wplc_agent_card_details { display:inline-block; margin-left: 5px;}";
4513
  $ratings .= ".wplc_agent_card { width:100%; }";
4514
  $ratings .= ".wplc_agent_container {
4515
- width: 30%;
4516
- border: 1px solid lightgray;
4517
- padding: 5px;
4518
- border-radius: 2px;
4519
- box-shadow: 1px 1px 2px 0px #999;
4520
- -webkit-box-shadow: 1px 1px 2px 0px #999;
4521
- -moz-box-shadow: 1px 1px 2px 0px #999;
4522
- -o-box-shadow: 1px 1px 2px 0px #999;
4523
- display: inline-block;
4524
- margin-right: 5px;
4525
- vertical-align: top;
4526
-
4527
- }";
4528
  $ratings .= ".wplc_agent_data {
4529
  max-height: 200px;
4530
  overflow-y: auto;
@@ -4536,9 +4564,10 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4536
  $hist_nonce = wp_create_nonce('wplc_history_nonce');
4537
 
4538
  if ($user_array) {
 
4539
  foreach ($user_array as $user) {
4540
- $ratings .= "<div class='wplc_agent_container'>";
4541
 
 
4542
  $rating_stats = nifty_get_rating_report_mrg($user->ID);
4543
 
4544
  $ratings .= "<div class='wplc_agent_card'>";
@@ -4552,7 +4581,8 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4552
  $ratings .= "</div>";
4553
  $ratings .= "</div>";
4554
 
4555
- $ratings .= "<div class='wplc_agent_data'>";
 
4556
 
4557
  if(is_bool($rating_stats) && $rating_stats == false){
4558
  $ratings .= "<div style='width:90%;display: inline-block; min-height: 30px;'>";
@@ -4560,9 +4590,11 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4560
  $ratings .= "</div>";
4561
  }else{
4562
  $ratings_for_agent = $rating_stats[$user->ID];
4563
- foreach ($ratings_for_agent as $cid => $rate) {
4564
- $ratings .= "<div style='width:90%;display: inline-block; min-height: 30px;'>";
4565
- $ratings .= $cid . " - <strong style='".(intval($rate['rating']) == 1 ? "color:#439134;": "color:#ac1d1d;")."'>".(intval($rate['rating']) == 1 ? __("Good", "wplivechat") : __("Bad", "wplivechat") )."</strong>";
 
 
4566
  $ratings .= " - <i style='width:auto;'>\"" . $rate['comment'] . "\"</i>";
4567
  $ratings .= "</div>";
4568
  $ratings .= " <a style='float:right' class='button' href='?page=wplivechat-menu&action=history&cid=".$cid."&wplc_history_nonce=" . $hist_nonce . "' target='_blank'>" . __("View", "wplivechat") . "</a>";
@@ -4570,10 +4602,54 @@ function wplc_reporting_tab_content_filter_experience_ratings_control_mrg($tabs_
4570
  }
4571
  }
4572
 
 
4573
  $ratings .= "</div>";
4574
- $ratings .= "</div>";
4575
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4576
  }
 
4577
 
4578
 
4579
  $tabs_array['ux_ratings'] = $ratings;
@@ -4584,7 +4660,7 @@ add_action('admin_enqueue_scripts', 'wplc_reporting_scripts_mrg');
4584
  function wplc_reporting_scripts_mrg(){
4585
  if( isset( $_GET['page'] ) && $_GET['page'] == 'wplivechat-menu-reporting' ){
4586
  $statistics = json_encode( return_statistics_mrg() );
4587
- wp_register_script('wplc-google-charts', '//www.gstatic.com/charts/loader.js', array('jquery'));
4588
  wp_enqueue_script('wplc-google-charts');
4589
 
4590
  wp_register_style('wplc-ui-style-stats', plugins_url('/js/vendor/jquery-ui/jquery-ui.css', __FILE__));
@@ -5386,13 +5462,14 @@ add_action('wplc_hook_initiate_chat', 'wplc_mrg_chat_notification_extender', 99,
5386
 
5387
 
5388
  /*
5389
- * registers wplc_common_node.js passing WPLC_PLUGIN_URL
5390
  */
5391
 
5392
  function wplc_register_common_node() {
5393
  wp_register_script('wplc-admin-js-agent-common', WPLC_PLUGIN_URL.'/js/wplc_common_node.js', null, WPLC_PLUGIN_VERSION, false);
5394
  $node_config=array(
5395
- 'baseurl'=>WPLC_PLUGIN_URL
 
5396
  );
5397
  wp_localize_script( 'wplc-admin-js-agent-common', 'config', $node_config );
5398
  wp_enqueue_script('wplc-admin-js-agent-common');
648
  $string = __("No agent was able to answer your chat request. Please try again.","wplivechat");
649
  }
650
  $string = apply_filters("wplc_filter_no_answer_string",$string,$cid);
651
+ return "<span class='wplc-system-notification wplc_no_answer wplc-color-4'><center>".$string."</center></span>";
652
  }
653
  add_filter("wplc_filter_no_answer_string","wplc_filter_control_no_answer_string",10,2);
654
 
822
  $msg = sanitize_text_field(stripslashes($msg));
823
  }
824
 
825
+ if($transcript){
826
+ $msg = str_replace('img:', '', $msg);
827
+ $msg = str_replace(':img', '', $msg);
828
+ $msg = str_replace('video:', '', $msg);
829
+ $msg = str_replace(':video', '', $msg);
830
+ $msg = str_replace('vid:', '', $msg);
831
+ $msg = str_replace(':vid', '', $msg);
832
+ $msg = str_replace('link:', '', $msg);
833
+ $msg = str_replace(':link', '', $msg);
834
+ }
835
+
836
  if ( isset( $result->afrom ) && intval( $result->afrom ) > 0 ) {
837
  $msg_array[$id]['afrom'] = intval( $result->afrom ); $other_data['aid'] = intval( $result->afrom );
838
 
874
  } else {
875
  /* this is a system notification */
876
  if ($display_notification) {
877
+
878
+ if( is_serialized( $msg ) ){
879
+ $tmp_array = maybe_unserialize( $msg );
880
+ if( is_array( $tmp_array ) ){
881
+ $msg = $tmp_array['m'];
882
+ } else {
883
+ $msg = $msg;
884
+ }
885
+ }
886
+ $str = "<span class='chat_time wplc-color-4'>".$nice_time."</span> <span class='wplc-system-notification wplc-color-4'>".$msg."</span>";
887
+
888
+ if($transcript){
889
+ $str = "<span class='wplc-system-notification wplc-color-4'>".$msg."</span><br />";
890
+ }
891
 
892
  if ( !isset( $msg_array[$id] ) ) { $msg_array[$id] = array(); }
893
  $msg_array[$id]['msg'] = $str;
1192
 
1193
 
1194
 
1195
+ <table id="" border="0" cellpadding="0" cellspacing="0" width="100%" style="font-family: sans-serif;">
1196
  <tbody>
1197
  <tr>
1198
  <td width="100%" style="padding: 30px 20px 100px 20px;">
1199
+ <table cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate;">
1200
  <tbody>
1201
  <tr>
1202
+ <td style="padding-bottom: 20px;">
1203
 
1204
  <p>'.$header.'</p>
1205
+ <hr>
1206
  </td>
1207
  </tr>
1208
  </tbody>
1209
  </table>
1210
 
1211
+ <table id="" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; font-size: 14px;">
1212
  <tbody>
1213
  <tr>
1214
+ <td class="sortable-list ui-sortable">
1215
  '.nl2br($msg).'
1216
  </td>
1217
  </tr>
1218
  </tbody>
1219
  </table>
1220
 
1221
+ <table cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:100%;">
1222
  <tbody>
1223
  <tr>
1224
+ <td style="padding-top:20px;">
1225
  <table border="0" cellpadding="0" cellspacing="0" class="" width="100%">
1226
  <tbody>
1227
  <tr>
1228
+ <td id="">
1229
  <p>'.site_url().'</p>
1230
  </td>
1231
  </tr>
1327
  * @return void
1328
  */
1329
  function wplc_send_offline_msg($name,$email,$msg,$cid) {
1330
+ $subject = apply_filters("wplc_offline_message_subject_filter", __("WP Live Chat Support - Offline Message from ", "wplivechat") );
1331
  $msg = __("Name", "wplivechat").": $name \n".
1332
  __("Email", "wplivechat").": $email\n".
1333
  __("Message", "wplivechat").": $msg\n\n".
2487
  wp_enqueue_script( 'wplc-user-pro-events-script' );
2488
 
2489
 
2490
+ wp_register_script('wplc-user-pro-editor', plugins_url('/js/wplc_u_editor.js', __FILE__), array('wplc-user-script', 'jquery'),false, false);
2491
+ wp_enqueue_script('wplc-user-pro-editor');
 
 
2492
 
2493
  if(!empty($wplc_settings["wplc_pro_auto_first_response_chat_msg"])){
2494
  wp_localize_script('wplc-user-pro-features', 'wplc_pro_auto_resp_chat_msg', "" . apply_filters('wplc_pro_auto_first_response_chat_msg_filter', $wplc_settings["wplc_pro_auto_first_response_chat_msg"])."");
2495
  }
2496
 
2497
+ wp_enqueue_style('wplc-user-pro-styles', plugins_url('/css/wplc_styles_pro.css', __FILE__));
 
 
2498
 
2499
 
2500
  $post_id = get_the_ID();
2728
  $user_dirname = $upload_dir['basedir'];
2729
  $cid=0;
2730
  if (isset($_POST['cid'])) {
2731
+ $cid = sanitize_text_field($_POST['cid']);
2732
+ if( ! filter_var($cid, FILTER_VALIDATE_INT) ) {
2733
+ /* We need to identify if this CID is a node CID, and if so, return the WP CID */
2734
+ $cid = wplc_return_chat_id_by_rel($cid);
2735
+ }
2736
+
2737
+ $cid = intval($cid);
2738
  }
2739
 
2740
  if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
2741
  @mkdir($user_dirname.'/wp_live_chat/');
2742
  }
2743
 
2744
+ if( !realpath( $user_dirname."/wp_live_chat/" . $cid ) ){
2745
+ @mkdir( $user_dirname.'/wp_live_chat/'. $cid );
2746
  }
2747
 
2748
  if (isset($_FILES['file']) && isset($_POST['timestamp'])) {
2751
 
2752
  if(!wplc_check_file_name_for_unsafe_extension($file_name)) {
2753
  if(wplc_check_file_name_for_safe_extension($file_name)) {
2754
+ if( realpath($user_dirname . "/wp_live_chat/" . $cid . "/" . sanitize_file_name($_FILES['file']['name']) ) == false ) {
2755
  $file_name = rand(0, 10) . "-" . $file_name;
2756
  }
2757
 
2758
+ if(move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname."/wp_live_chat/" . $cid . "/" . $file_name)) {
2759
  //File has been uploaded, let's now go ahead and check the mime type
2760
+ if(wplc_check_file_mime_type( $user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name) ) {
2761
+ $response = $upload_dir['baseurl']."/wp_live_chat/" . $cid . "/" . $file_name;
2762
  echo $response;
2763
  } else {
2764
  //Failed, lets delete this file to be safe
2765
  @unlink(realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name));
2766
+ echo "Security Violation";
2767
  }
2768
  } else {
2769
+ echo "Security Violation";
2770
+
2771
  }
2772
  } else {
2773
+ echo "Security Violation";
2774
+
2775
  }
2776
  } else {
2777
  echo "Security Violation";
2862
  wp_enqueue_script('wplc-triggers');
2863
 
2864
  $wplc_settings = get_option("WPLC_SETTINGS");
 
2865
 
2866
+ wp_register_script('wplc-admin-editor', plugins_url('/js/wplc_admin_editor.js', __FILE__),array('jquery'),WPLC_PLUGIN_VERSION);
2867
+ wp_enqueue_script('wplc-admin-editor');
 
2868
 
2869
 
2870
 
4223
  if( $_POST['action'] == 'wplc_record_chat_rating' ){
4224
  $rating_id = sanitize_text_field($_POST['cid']);
4225
  $rating_score = sanitize_text_field($_POST['rating']);
 
4226
 
4227
  if( ! filter_var($rating_id, FILTER_VALIDATE_INT) ) {
4228
  /* We need to identify if this CID is a node CID, and if so, return the WP CID */
4230
  }
4231
 
4232
 
4233
+ $nifty_record_rating = nifty_record_rating_mrg($rating_id, $rating_score);
4234
  if ($nifty_record_rating) {
4235
  echo 'rating added';
4236
  wp_die();
4273
 
4274
 
4275
  /* WPLC Social Icons Filter*/
4276
+ // add_filter("wplc_filter_chat_header_above","wplc_chat_social_div_mrg",5,2);
4277
+ // add_filter("wplc_filter_chat_4th_layer_below_input","wplc_chat_social_div_mrg",5,2);
4278
+ add_filter("wplc_filter_chat_social_div_hook","wplc_chat_social_div_mrg",5,2);
4279
  function wplc_chat_social_div_mrg($msg, $wplc_setting){
4280
  $acbc_settings = get_option("WPLC_ACBC_SETTINGS");
4281
  $current_theme = isset($wplc_setting['wplc_newtheme']) ? $wplc_setting['wplc_newtheme'] : "";
4284
 
4285
  $wplc_settings = get_option("WPLC_SETTINGS");
4286
  if($wplc_settings["wplc_ux_exp_rating"] === "0" && $current_theme === "theme-2"){
4287
+ //$top_offset = "bottom:-4px !important;";
4288
  }
4289
 
4290
+ $msg .= "<div id='wplc_social_holder' ".($current_theme === "theme-2" ? "class='wplc_modern'" : "" )." >";
4291
  if(isset($acbc_settings['wplc_social_fb']) && $acbc_settings['wplc_social_fb'] != ""){
4292
  $msg .= "<a class='wplc-color-1' href=".urldecode($acbc_settings['wplc_social_fb'])." target='_blank'><i class='wplc_social_icon fa fa-facebook-square' id='wplc_social_fb' ></i></a>";
4293
  }
4301
  /*Text Editor*/
4302
  add_filter("wplc_filter_chat_text_editor","nifty_text_edit_div_mrg",1,1);
4303
  function nifty_text_edit_div_mrg($msg){
4304
+ $msg .= "<div id='nifty_text_editor_holder'>";
4305
+ $msg .= "<i class='nifty_tedit_icon fa fa-bold' id='nifty_tedit_b'></i>";
4306
+ $msg .= "<i class='nifty_tedit_icon fa fa-italic' id='nifty_tedit_i'></i>";
4307
+ $msg .= "<i class='nifty_tedit_icon fa fa-underline' id='nifty_tedit_u'></i>";
4308
+ $msg .= "<i class='nifty_tedit_icon fa fa-strikethrough' id='nifty_tedit_strike'></i>";
4309
+ $msg .= "<i class='nifty_tedit_icon fa fa-square' id='nifty_tedit_mark'></i>";
4310
+ $msg .= "<i class='nifty_tedit_icon fa fa-subscript' id='nifty_tedit_sub'></i>";
4311
+ $msg .= "<i class='nifty_tedit_icon fa fa-superscript' id='nifty_tedit_sup'></i>";
4312
+ $msg .= "<i class='nifty_tedit_icon fa fa-link' id='nifty_tedit_link'></i>";
4313
+ $msg .= "</div>";
 
 
 
4314
  return $msg;
4315
  }
4316
 
4319
  function nifty_file_upload_div_mrg($msg){
4320
  $wplc_settings = get_option("WPLC_SETTINGS");
4321
  if($wplc_settings["wplc_ux_file_share"] !== "0"){
4322
+ // $editor_enabled = $wplc_settings["wplc_ux_exp_rating"] == "0" ? "bottom: 35px !important;" : "";
4323
+ $editor_enabled = "";
4324
  $msg .= "<div id='nifty_file_holder'>";
4325
  $msg .= "<label for='nifty_file_input' id='nifty_select_file'><i class='nifty_attach_icon nifty_attach_open_icon fa fa-paperclip' id='nifty_attach' style='$editor_enabled' ></i></label>";
4326
  $msg .= "<i class='nifty_attach_icon fa fa-circle-o-notch fa-spin' id='nifty_attach_uploading_icon' style='display:none; $editor_enabled' ></i>";
4332
  return $msg;
4333
  }
4334
 
4335
+ // add_filter("wplc_filter_chat_header_above","nifty_chat_ratings_div_mrg",1,2);
4336
  add_filter("wplc_filter_chat_4th_layer_below_input","nifty_chat_ratings_div_mrg",1,2);
4337
  function nifty_chat_ratings_div_mrg($msg, $wplc_setting){
4338
  $wplc_settings = get_option("WPLC_SETTINGS");
4343
  $msg .= "<i class='nifty_rating_icon fa fa-thumbs-o-down' id='nifty_rating_neg' ></i>";
4344
  $msg .= "<div id='nifty_ratings_form' style='display:none;' class='wplc-color-bg-1 wplc-color-1 wplc-color-border-1'>";
4345
  $msg .= "<input type='text' id='nifty_ratings_comment' placeholder='Comments...'>";
4346
+ $msg .= "<button id='nifty_rating_button_cancel' tabindex='-1' class='wplc-color-bg-2 wplc-color-1'>x</button>";
4347
+ $msg .= "<button nifty-rating='' id='nifty_rating_button' class='wplc-color-bg-2 wplc-color-1'>Rate</button>";
4348
  $msg .= "</div>";
4349
  $msg .= "<i class='fa fa-spinner fa-spin' id='nifty_recording' style='display:none;'></i>";
4350
  $msg .= "<div id='nifty_rating_thanks' style='display:none;'>";
4357
  }
4358
 
4359
  /*Handles adding a rating*/
4360
+ function nifty_record_rating_mrg($cid, $rating){
4361
  global $wpdb;
4362
  global $wplc_tblname_chat_ratings;
4363
 
4364
  //Cleanup here
4365
  $cid = intval($cid);
4366
  $rating = intval($rating);
4367
+ $comment = "";
4368
 
4369
  if(nifty_chat_has_rating_mrg($cid)){ //Update
4370
  $sql = "UPDATE $wplc_tblname_chat_ratings SET `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0 WHERE `cid` = '%d' LIMIT 1";
4375
  } else {
4376
  return true;
4377
  }
4378
+ }else{
4379
+ //Insert
4380
  $sql = "INSERT INTO $wplc_tblname_chat_ratings SET `cid` = '%d', `aid` = '%d', `rating` = '%d', `comment` = '%s', `timestamp` = '%s', `notified` = 0";
4381
  $sql = $wpdb->prepare($sql, $cid, wplc_get_chat_data($cid)->agent_id, $rating, $comment, date("Y-m-d H:i:s"));
4382
  $wpdb->query($sql);
4432
  $rating = apply_filters("wplc_rating_data_filter","",$cid,$name);
4433
  if ($rating) {
4434
 
4435
+ $msg .= "<div class='admin_visitor_advanced_info admin_agent_rating'><br>
4436
  <strong>" . __("Experience Rating", "wplivechat") . "</strong>
4437
  <div class='rating " .(isset($rating['rating']) && $rating['rating'] == '1' ? "rating-good" : ($rating['rating'] == '0' ? "rating-bad" : "" ))."'>".(isset($rating['rating']) && $rating['rating'] == '1' ? "Satisfied" : ($rating['rating'] == '0' ? "Unsatisfied" : "No Rating" ))."</div>
4438
  <hr />
4489
  $neg = 0;
4490
 
4491
  $data_array = array();
4492
+ $current_index = 0;
4493
  $results = $wpdb->get_results($sql);
4494
  if($wpdb->num_rows){
4495
  foreach ($results as $res) {
4496
+ $data_array[$uid][$current_index] = array(
4497
+ "cid" => $res->cid,
4498
+ "rating" => $res->rating,
4499
+ "comment" => $res->comment,
4500
+ "time" => $res->timestamp
4501
+ );
4502
+
4503
+ $current_index++;
4504
+
4505
  if($res->rating == "1"){
4506
  $pos ++; //Count
4507
  }else if($res->rating == "0"){
4545
  $ratings .= ".wplc_agent_card_details { display:inline-block; margin-left: 5px;}";
4546
  $ratings .= ".wplc_agent_card { width:100%; }";
4547
  $ratings .= ".wplc_agent_container {
4548
+ width: 30%;
4549
+ padding: 5px;
4550
+ border-radius: 7px;
4551
+ box-shadow: 0px 0px 5px 2px #9999992b;
4552
+ display: inline-block;
4553
+ margin-right: 13px;
4554
+ vertical-align: top;
4555
+ }";
 
 
 
 
 
4556
  $ratings .= ".wplc_agent_data {
4557
  max-height: 200px;
4558
  overflow-y: auto;
4564
  $hist_nonce = wp_create_nonce('wplc_history_nonce');
4565
 
4566
  if ($user_array) {
4567
+
4568
  foreach ($user_array as $user) {
 
4569
 
4570
+ $ratings .= "<div class='wplc_agent_container'>";
4571
  $rating_stats = nifty_get_rating_report_mrg($user->ID);
4572
 
4573
  $ratings .= "<div class='wplc_agent_card'>";
4581
  $ratings .= "</div>";
4582
  $ratings .= "</div>";
4583
 
4584
+ /** Removed as of 07-2019 */
4585
+ /*$ratings .= "<div class='wplc_agent_data'>";
4586
 
4587
  if(is_bool($rating_stats) && $rating_stats == false){
4588
  $ratings .= "<div style='width:90%;display: inline-block; min-height: 30px;'>";
4590
  $ratings .= "</div>";
4591
  }else{
4592
  $ratings_for_agent = $rating_stats[$user->ID];
4593
+ foreach ($ratings_for_agent as $id => $rate) {
4594
+ $cid = $rate['cid'];
4595
+ $date = substr($rate['time'], 0, strpos($rate['time'], ' '));
4596
+ $ratings .= "<div style='width:70%;display: inline-block; min-height: 30px;'>";
4597
+ $ratings .= "<small style='display:inline-block; height: unset'>$date</small>" . " - <strong style='".(intval($rate['rating']) == 1 ? "color:#439134;": "color:#ac1d1d;")."'>".(intval($rate['rating']) == 1 ? __("Good", "wplivechat") : __("Bad", "wplivechat") )."</strong>";
4598
  $ratings .= " - <i style='width:auto;'>\"" . $rate['comment'] . "\"</i>";
4599
  $ratings .= "</div>";
4600
  $ratings .= " <a style='float:right' class='button' href='?page=wplivechat-menu&action=history&cid=".$cid."&wplc_history_nonce=" . $hist_nonce . "' target='_blank'>" . __("View", "wplivechat") . "</a>";
4602
  }
4603
  }
4604
 
4605
+ $ratings .= "</div>";*/
4606
  $ratings .= "</div>";
4607
+
4608
  }
4609
+
4610
+ $rating_stats = nifty_get_rating_report_mrg(0);
4611
+ if(!empty($rating_stats[0]) && $rating_stats[0] !== false){
4612
+ $ratings .= "<div class='wplc_agent_container'>";
4613
+ $ratings .= "<div class='wplc_agent_card'>";
4614
+ $ratings .= "<div class='wplc_agent_card_details'>";
4615
+ $ratings .= "<strong>No Agent</strong><br>";
4616
+ $ratings .= "<small>Reviewed before agent joined, or with multiple agents</small><br>";
4617
+ $ratings .= "<hr>";
4618
+ $ratings .= "<small><strong>".__("Satisfaction Rating", "wplivechat").":</strong> " . (is_bool($rating_stats) && $rating_stats == false ? "--" : $rating_stats['percentage'] ). "%</small><br>";
4619
+ $ratings .= "<small><strong>".__("Rating Count", "wplivechat").":</strong> " . (is_bool($rating_stats) && $rating_stats == false ? "0" : $rating_stats['total_ratings'])." (".__("Good","wplivechat").": ".(is_bool($rating_stats) && $rating_stats == false ? "0" : $rating_stats['good_count']). " || ".__("Bad","wplivechat").": ".(is_bool($rating_stats) && $rating_stats == false ? "0" : $rating_stats['bad_count']). ")</small>";
4620
+ $ratings .= "</div>";
4621
+ $ratings .= "</div>";
4622
+
4623
+ /** Removed as of 07-2019*/
4624
+ /*
4625
+ $ratings .= "<div class='wplc_agent_data'>";
4626
+
4627
+ if(is_bool($rating_stats) && $rating_stats == false){
4628
+ $ratings .= "<div style='width:90%;display: inline-block; min-height: 30px;'>";
4629
+ $ratings .= "<i>".__("No Ratings for this agent", "wplivechat")."</i>";
4630
+ $ratings .= "</div>";
4631
+ }else{
4632
+ $ratings_for_agent = $rating_stats[0];
4633
+ foreach ($ratings_for_agent as $id => $rate) {
4634
+ $cid = $rate['cid'];
4635
+ $date = substr($rate['time'], 0, strpos($rate['time'], ' '));
4636
+
4637
+ $ratings .= "<div style='width:70%;display: inline-block; min-height: 30px;'>";
4638
+ $ratings .= "<small style='display:inline-block; height: unset'>$date</small>" . " - <strong style='".(intval($rate['rating']) == 1 ? "color:#439134;": "color:#ac1d1d;")."'>".(intval($rate['rating']) == 1 ? __("Good", "wplivechat") : __("Bad", "wplivechat") )."</strong>";
4639
+ $ratings .= " - <i style='width:auto;'>\"" . $rate['comment'] . "\"</i>";
4640
+ $ratings .= "</div>";
4641
+ $ratings .= " <a style='float:right' class='button' href='?page=wplivechat-menu&action=history&cid=".$cid."&wplc_history_nonce=" . $hist_nonce . "' target='_blank'>" . __("View", "wplivechat") . "</a>";
4642
+
4643
+ }
4644
+ }
4645
+
4646
+ $ratings .= "</div>";
4647
+ */
4648
+ $ratings .= "</div>";
4649
+ }
4650
+
4651
  }
4652
+
4653
 
4654
 
4655
  $tabs_array['ux_ratings'] = $ratings;
4660
  function wplc_reporting_scripts_mrg(){
4661
  if( isset( $_GET['page'] ) && $_GET['page'] == 'wplivechat-menu-reporting' ){
4662
  $statistics = json_encode( return_statistics_mrg() );
4663
+ wp_register_script('wplc-google-charts', plugins_url('/js/vendor/charts/loader.js', __FILE__), array('jquery'));
4664
  wp_enqueue_script('wplc-google-charts');
4665
 
4666
  wp_register_style('wplc-ui-style-stats', plugins_url('/js/vendor/jquery-ui/jquery-ui.css', __FILE__));
5462
 
5463
 
5464
  /*
5465
+ * registers wplc_common_node.js passing WPLC_PLUGIN_URL and WPLC_CHAT_SERVER
5466
  */
5467
 
5468
  function wplc_register_common_node() {
5469
  wp_register_script('wplc-admin-js-agent-common', WPLC_PLUGIN_URL.'/js/wplc_common_node.js', null, WPLC_PLUGIN_VERSION, false);
5470
  $node_config=array(
5471
+ 'baseurl'=>WPLC_PLUGIN_URL,
5472
+ 'serverurl'=>WPLC_CHAT_SERVER
5473
  );
5474
  wp_localize_script( 'wplc-admin-js-agent-common', 'config', $node_config );
5475
  wp_enqueue_script('wplc-admin-js-agent-common');
images/Survey_Box_Standard.jpg ADDED
Binary file
images/add-on0.jpg DELETED
Binary file
images/add-on1.jpg DELETED
Binary file
images/add-on2.jpg DELETED
Binary file
images/add-on3.jpg DELETED
Binary file
images/add-on4.jpg DELETED
Binary file
images/plugin1.jpg DELETED
Binary file
images/plugin2.jpg DELETED
Binary file
images/random_images/1.jpeg DELETED
Binary file
images/random_images/10.jpeg DELETED
Binary file
images/random_images/11.jpeg DELETED
Binary file
images/random_images/12.jpeg DELETED
Binary file
images/random_images/13.jpeg DELETED
Binary file
images/random_images/2.jpeg DELETED
Binary file
images/random_images/3.jpeg DELETED
Binary file
images/random_images/4.jpeg DELETED
Binary file
images/random_images/5.jpeg DELETED
Binary file
images/random_images/6.jpeg DELETED
Binary file
images/random_images/7.jpeg DELETED
Binary file
images/random_images/8.jpeg DELETED
Binary file
images/random_images/9.jpeg DELETED
Binary file
includes/blocks/wplc-chat-box/index.php CHANGED
@@ -113,7 +113,7 @@ function wplc_gutenberg_settings_content() {
113
  <td>
114
  <div id='wplc_custom_html_editor'></div>
115
  <textarea name='wplc_custom_html' id='wplc_custom_html' style='display: none;' data-editor='css' rows='12'>
116
- <?php echo wp_filter_post_kses( stripslashes( trim($gutenberg_custom_html))); ?>
117
  </textarea>
118
 
119
 
@@ -180,7 +180,7 @@ function wplc_gutenberg_save_settings() {
180
  }
181
 
182
  if (isset($_POST['wplc_custom_html']) && $_POST['wplc_custom_html'] !== '0') {
183
- $wplc_gutenberg_data['wplc_custom_html'] = wp_filter_post_kses($_POST['wplc_custom_html']);
184
  } else {
185
  $default_html = '\n<div class="wplc_block">\n\t<span class="wplc_block_logo">{wplc_logo}</span>\n\t<span class="wplc_block_text">{wplc_text}</span>\n\t<span class="wplc_block_icon">{wplc_icon}</span>\n</div>';
186
 
113
  <td>
114
  <div id='wplc_custom_html_editor'></div>
115
  <textarea name='wplc_custom_html' id='wplc_custom_html' style='display: none;' data-editor='css' rows='12'>
116
+ <?php echo trim($gutenberg_custom_html); ?>
117
  </textarea>
118
 
119
 
180
  }
181
 
182
  if (isset($_POST['wplc_custom_html']) && $_POST['wplc_custom_html'] !== '0') {
183
+ $wplc_gutenberg_data['wplc_custom_html'] = stripslashes(wp_filter_post_kses($_POST['wplc_custom_html']));
184
  } else {
185
  $default_html = '\n<div class="wplc_block">\n\t<span class="wplc_block_logo">{wplc_logo}</span>\n\t<span class="wplc_block_text">{wplc_text}</span>\n\t<span class="wplc_block_icon">{wplc_icon}</span>\n</div>';
186
 
includes/dashboard_page.php CHANGED
@@ -63,7 +63,7 @@ if ( ! defined( 'ABSPATH' ) ) {
63
  <div class="wplc_dashboard_row">
64
  <div class="wplc_panel_col wplc_col_12">
65
  <div class="wplc_panel">
66
- <div id="wplc_blog_posts"></div>
67
  </div>
68
  </div>
69
  </div>
63
  <div class="wplc_dashboard_row">
64
  <div class="wplc_panel_col wplc_col_12">
65
  <div class="wplc_panel">
66
+ <div id="wplc_blog_posts" class="wplc_material_panel"></div>
67
  </div>
68
  </div>
69
  </div>
includes/settings_page.php CHANGED
@@ -455,7 +455,7 @@ if (get_option("WPLC_HIDE_CHAT") == true) {
455
  </td>
456
  <td>
457
  <input type="checkbox" name="wplc_redirect_to_thank_you_page" value="1" <?php echo (isset($wplc_settings['wplc_redirect_to_thank_you_page']) && intval($wplc_settings['wplc_redirect_to_thank_you_page']) == 1 ? "checked" : "" ); ?> />
458
- <input type="text" name="wplc_redirect_thank_you_url" value="<?php echo (isset($wplc_settings['wplc_redirect_thank_you_url']) ? urldecode($wplc_settings['wplc_redirect_thank_you_url']) : '' ); ?>" placeholder="<?php _e('Thank You Page URL', 'wplivechat'); ?>" />
459
  </td>
460
  </tr>
461
  <?php
@@ -596,7 +596,7 @@ if (get_option("WPLC_HIDE_CHAT") == true) {
596
  </td>
597
  <td>
598
  <select name='wplc_messagetone' id='wplc_messagetone'>
599
- <?php $wplc_messagetone = str_replace("http:", "", realpath(WPLC_PLUGIN_URL.'includes/sounds/general/ding.mp3') ); ?>
600
  <option <?php if ($wplc_messagetone_selected == WPLC_PLUGIN_URL.'includes/sounds/general/ding.mp3') { echo "selected"; } ?> value='<?php echo $wplc_messagetone; ?>'><?php _e("Default","wplivechat"); ?></option>
601
  <?php
602
  $path = WPLC_PLUGIN_DIR."/includes/sounds/message/";
@@ -682,6 +682,10 @@ if (get_option("WPLC_HIDE_CHAT") == true) {
682
  cursor: pointer;
683
  background-color: #bbb;
684
  }
 
 
 
 
685
  </style>
686
  </td>
687
  </tr>
@@ -745,10 +749,6 @@ if (get_option("WPLC_HIDE_CHAT") == true) {
745
  <hr>
746
  <table class='form-table wp-list-table wplc_list_table widefat fixed striped pages' width='100%'>
747
  <tbody>
748
- <tr>
749
- <td width='300' valign='top'><?php _e("Enable Text Editor", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Adds advanced text editor features, such as links, text styling, and more!", "wplivechat") ?>"></i></td>
750
- <td><input id='wplc_ux_editor' name='wplc_ux_editor' type='checkbox' <?php echo((isset($wplc_settings['wplc_ux_editor']) && $wplc_settings['wplc_ux_editor'] != "0") ? "checked" : "") ?> /> </td>
751
- </tr>
752
  <tr>
753
  <td width='300' valign='top'><?php _e("Enable File Sharing", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Adds file sharing to your chat box!", "wplivechat") ?>"></i></td>
754
  <td><input id='wplc_ux_file_share' name='wplc_ux_file_share' type='checkbox' <?php echo((isset($wplc_settings['wplc_ux_file_share']) && $wplc_settings['wplc_ux_file_share'] != "0") ? "checked" : "") ?> /> </td>
@@ -767,11 +767,26 @@ if (get_option("WPLC_HIDE_CHAT") == true) {
767
  <tbody>
768
  <tr>
769
  <td width='300' valign='top'><?php _e("Facebook URL", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Link your Facebook page here. Leave blank to hide", "wplivechat") ?>"></i></td>
770
- <td><input id='wplc_social_fb' name='wplc_social_fb' placeholder="<?php _e("Facebook URL...", "wplivechat") ?>" type='text' value="<?php echo (isset($wplc_acbc_data['wplc_social_fb']) ? urldecode($wplc_acbc_data['wplc_social_fb']) : "") ?>" /> </td>
 
 
 
 
 
 
 
 
771
  </tr>
772
  <tr>
773
  <td width='300' valign='top'><?php _e("Twitter URL", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Link your Twitter page here. Leave blank to hide", "wplivechat") ?>"></i></td>
774
- <td><input id='wplc_social_tw' name='wplc_social_tw' placeholder="<?php _e("Twitter URL...", "wplivechat") ?>" type='text' value="<?php echo (isset($wplc_acbc_data['wplc_social_tw']) ? urldecode($wplc_acbc_data['wplc_social_tw']) : "") ?>" /> </td>
 
 
 
 
 
 
 
775
 
776
  </tr>
777
  </tbody>
@@ -935,8 +950,8 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
935
  .wplc_animation_block .wplc_orange{
936
  color: #EB832C;
937
  }
938
- .wplc_animation_active, .wplc_theme_active{
939
- box-shadow: 2px 2px 2px #666666;
940
  }
941
  </style>
942
  <style>
@@ -959,9 +974,6 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
959
  .wplc_animation_block .wplc_orange{
960
  color: #EB832C;
961
  }
962
- .wplc_animation_active{
963
- box-shadow: 2px 2px 2px #CCC;
964
- }
965
  </style>
966
  <h3><?php _e("Styling",'wplivechat')?></h3>
967
  <table class='form-table wp-list-table wplc_list_table widefat fixed striped pages'>
@@ -1049,10 +1061,9 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
1049
  </div>
1050
  <div class='wplc_palette_single'>
1051
  <div class='wplc-palette-selection <?php if (isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6') { echo 'wplc_theme_active'; } ?>' id='wplc_theme_6'>
1052
- <div class='wplc-palette-top' style='padding-top:3px'><?php _e("Choose","wplivechat"); ?></div>
1053
- <div class='wplc-palette-top' style='padding-top:3px'><?php _e("Your","wplivechat"); ?></div>
1054
- <div class='wplc-palette-top' style='padding-top:3px'><?php _e("Colors","wplivechat"); ?></div>
1055
- <div class='wplc-palette-top' style='padding-top:3px'><?php _e("Below","wplivechat"); ?></div>
1056
  </div>
1057
  </div>
1058
 
@@ -1070,44 +1081,46 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
1070
  </td>
1071
  </tr>
1072
 
1073
- <tr>
1074
- <td width='300' valign='top'><?php _e("Chat background","wplivechat")?>:</td>
1075
- <td>
1076
-
1077
- <select id='wplc_settings_bg' name='wplc_settings_bg'>
1078
- <option value="cloudy.jpg" <?php if (!isset($wplc_settings['wplc_settings_bg']) || ($wplc_settings['wplc_settings_bg'] == "cloudy.jpg") ) { echo "selected"; } ?>><?php _e("Cloudy","wplivechat"); ?></option>
1079
- <option value="geometry.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "geometry.jpg") { echo "selected"; } ?>><?php _e("Geometry","wplivechat"); ?></option>
1080
- <option value="tech.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "tech.jpg") { echo "selected"; } ?>><?php _e("Tech","wplivechat"); ?></option>
1081
- <option value="social.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "social.jpg") { echo "selected"; } ?>><?php _e("Social","wplivechat"); ?></option>
1082
- <option value="0" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "0") { echo "selected"; } ?>><?php _e("None","wplivechat"); ?></option>
1083
- </select>
1084
- </td>
1085
- </tr>
1086
- <tr>
1087
  <td width='200' valign='top'><?php _e("Palette Color 1","wplivechat")?>:</td>
1088
  <td>
1089
  <input id="wplc_settings_color1" name="wplc_settings_color1" type="text" class="color" value="<?php if (isset($wplc_settings_color1)) { echo $wplc_settings_color1; } else { echo 'ED832F'; } ?>" />
1090
  </td>
1091
  </tr>
1092
- <tr>
1093
  <td width='200' valign='top'><?php _e("Palette Color 2","wplivechat")?>:</td>
1094
  <td>
1095
  <input id="wplc_settings_color2" name="wplc_settings_color2" type="text" class="color" value="<?php if (isset($wplc_settings_color2)) { echo $wplc_settings_color2; } else { echo 'FFFFFF'; } ?>" />
1096
  </td>
1097
  </tr>
1098
- <tr>
1099
  <td width='200' valign='top'><?php _e("Palette Color 3","wplivechat")?>:</td>
1100
  <td>
1101
  <input id="wplc_settings_color3" name="wplc_settings_color3" type="text" class="color" value="<?php if (isset($wplc_settings_color3)) { echo $wplc_settings_color3; } else { echo 'EEEEEE'; } ?>" />
1102
  </td>
1103
  </tr>
1104
- <tr>
1105
  <td width='200' valign='top'><?php _e("Palette Color 4","wplivechat")?>:</td>
1106
  <td>
1107
  <input id="wplc_settings_color4" name="wplc_settings_color4" type="text" class="color" value="<?php if (isset($wplc_settings_color4)) { echo $wplc_settings_color4; } else { echo '666666'; } ?>" />
1108
  </td>
1109
  </tr>
1110
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1111
  <tr>
1112
  <td width="200" valign="top"><?php _e("I'm using a localization plugin", "wplivechat") ?></td>
1113
  <td>
@@ -1239,7 +1252,7 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
1239
  $wplc_agents .= "<p><img src=\"//www.gravatar.com/avatar/" . md5($user->user_email) . "?s=80&d=mm\" /></p>";
1240
  $check = get_user_meta($user->ID,"wplc_chat_agent_online");
1241
  if ($check) {
1242
- $wplc_agents .= "<span class='wplc_status_box wplc_type_returning'>".__("Online","wplivechat")."</span>";
1243
  }
1244
  $wplc_agents .= "<h3>" . $user->display_name . "</h3>";
1245
 
@@ -1282,7 +1295,7 @@ if (isset($wplc_settings['wplc_hide_when_offline']) && intval($wplc_settings['wp
1282
  }
1283
  ?>
1284
  </select>
1285
- <p><button class='button button-secondary' id='wplc_add_agent'><?php _e("Add Agent","wplivechat"); ?></button></p>
1286
  </li>
1287
  </ul>
1288
  </div>
455
  </td>
456
  <td>
457
  <input type="checkbox" name="wplc_redirect_to_thank_you_page" value="1" <?php echo (isset($wplc_settings['wplc_redirect_to_thank_you_page']) && intval($wplc_settings['wplc_redirect_to_thank_you_page']) == 1 ? "checked" : "" ); ?> />
458
+ <input type="text" name="wplc_redirect_thank_you_url" value="<?php echo (isset($wplc_settings['wplc_redirect_thank_you_url']) ? urldecode($wplc_settings['wplc_redirect_thank_you_url']) : '' ); ?>" placeholder="<?php _e('Thank You Page URL', 'wplivechat'); ?>" class='wplc_check_url' />
459
  </td>
460
  </tr>
461
  <?php
596
  </td>
597
  <td>
598
  <select name='wplc_messagetone' id='wplc_messagetone'>
599
+ <?php $wplc_messagetone = str_replace("http:", "", WPLC_PLUGIN_URL.'includes/sounds/general/ding.mp3' ); ?>
600
  <option <?php if ($wplc_messagetone_selected == WPLC_PLUGIN_URL.'includes/sounds/general/ding.mp3') { echo "selected"; } ?> value='<?php echo $wplc_messagetone; ?>'><?php _e("Default","wplivechat"); ?></option>
601
  <?php
602
  $path = WPLC_PLUGIN_DIR."/includes/sounds/message/";
682
  cursor: pointer;
683
  background-color: #bbb;
684
  }
685
+
686
+ .wplc_theme_single, .wplc_animation_image {
687
+ cursor: pointer;
688
+ }
689
  </style>
690
  </td>
691
  </tr>
749
  <hr>
750
  <table class='form-table wp-list-table wplc_list_table widefat fixed striped pages' width='100%'>
751
  <tbody>
 
 
 
 
752
  <tr>
753
  <td width='300' valign='top'><?php _e("Enable File Sharing", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Adds file sharing to your chat box!", "wplivechat") ?>"></i></td>
754
  <td><input id='wplc_ux_file_share' name='wplc_ux_file_share' type='checkbox' <?php echo((isset($wplc_settings['wplc_ux_file_share']) && $wplc_settings['wplc_ux_file_share'] != "0") ? "checked" : "") ?> /> </td>
767
  <tbody>
768
  <tr>
769
  <td width='300' valign='top'><?php _e("Facebook URL", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Link your Facebook page here. Leave blank to hide", "wplivechat") ?>"></i></td>
770
+ <td><input id='wplc_social_fb' class='wplc_check_url' name='wplc_social_fb' placeholder="<?php _e("Facebook URL...", "wplivechat") ?>" type='text' value="<?php echo (isset($wplc_acbc_data['wplc_social_fb']) ? urldecode($wplc_acbc_data['wplc_social_fb']) : "") ?>" />
771
+
772
+ <?php
773
+ if(isset($wplc_acbc_data['wplc_social_fb']) && !filter_var($wplc_acbc_data['wplc_social_fb'], FILTER_VALIDATE_URL) && trim($wplc_acbc_data['wplc_social_fb']) !== ""){
774
+ ?><br><strong>Note: </strong>This does not appear to be a valid URL<?php
775
+ }
776
+ ?>
777
+
778
+ </td>
779
  </tr>
780
  <tr>
781
  <td width='300' valign='top'><?php _e("Twitter URL", "wplivechat") ?>: <i class="fa fa-question-circle wplc_light_grey wplc_settings_tooltip" title="<?php _e("Link your Twitter page here. Leave blank to hide", "wplivechat") ?>"></i></td>
782
+ <td><input id='wplc_social_tw' class='wplc_check_url' name='wplc_social_tw' placeholder="<?php _e("Twitter URL...", "wplivechat") ?>" type='text' value="<?php echo (isset($wplc_acbc_data['wplc_social_tw']) ? urldecode($wplc_acbc_data['wplc_social_tw']) : "") ?>" />
783
+
784
+ <?php
785
+ if(isset($wplc_acbc_data['wplc_social_tw']) && !filter_var($wplc_acbc_data['wplc_social_tw'], FILTER_VALIDATE_URL) && trim($wplc_acbc_data['wplc_social_tw']) !== ""){
786
+ ?><br><strong>Note: </strong>This does not appear to be a valid URL<?php
787
+ }
788
+ ?>
789
+ </td>
790
 
791
  </tr>
792
  </tbody>
950
  .wplc_animation_block .wplc_orange{
951
  color: #EB832C;
952
  }
953
+ .wplc_animation_active, .wplc_theme_active {
954
+ border: 2px solid #616161 !important;
955
  }
956
  </style>
957
  <style>
974
  .wplc_animation_block .wplc_orange{
975
  color: #EB832C;
976
  }
 
 
 
977
  </style>
978
  <h3><?php _e("Styling",'wplivechat')?></h3>
979
  <table class='form-table wp-list-table wplc_list_table widefat fixed striped pages'>
1061
  </div>
1062
  <div class='wplc_palette_single'>
1063
  <div class='wplc-palette-selection <?php if (isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6') { echo 'wplc_theme_active'; } ?>' id='wplc_theme_6'>
1064
+ <div class='wplc-palette-top' style='padding-top:3px'>&nbsp;</div>
1065
+ <div class='wplc-palette-top' style='padding-top:18px'><?php _e("Custom Scheme","wplivechat"); ?></div>
1066
+ <div class='wplc-palette-top' style='padding-top:3px'>&nbsp;</div>
 
1067
  </div>
1068
  </div>
1069
 
1081
  </td>
1082
  </tr>
1083
 
1084
+
1085
+ <tr class='wplc_custom_pall_rows' style='<?php echo isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6' ? '' : 'display:none;'; ?>' >
 
 
 
 
 
 
 
 
 
 
 
 
1086
  <td width='200' valign='top'><?php _e("Palette Color 1","wplivechat")?>:</td>
1087
  <td>
1088
  <input id="wplc_settings_color1" name="wplc_settings_color1" type="text" class="color" value="<?php if (isset($wplc_settings_color1)) { echo $wplc_settings_color1; } else { echo 'ED832F'; } ?>" />
1089
  </td>
1090
  </tr>
1091
+ <tr class='wplc_custom_pall_rows' style='<?php echo isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6' ? '' : 'display:none;'; ?>' >
1092
  <td width='200' valign='top'><?php _e("Palette Color 2","wplivechat")?>:</td>
1093
  <td>
1094
  <input id="wplc_settings_color2" name="wplc_settings_color2" type="text" class="color" value="<?php if (isset($wplc_settings_color2)) { echo $wplc_settings_color2; } else { echo 'FFFFFF'; } ?>" />
1095
  </td>
1096
  </tr>
1097
+ <tr class='wplc_custom_pall_rows' style='<?php echo isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6' ? '' : 'display:none;'; ?>' >
1098
  <td width='200' valign='top'><?php _e("Palette Color 3","wplivechat")?>:</td>
1099
  <td>
1100
  <input id="wplc_settings_color3" name="wplc_settings_color3" type="text" class="color" value="<?php if (isset($wplc_settings_color3)) { echo $wplc_settings_color3; } else { echo 'EEEEEE'; } ?>" />
1101
  </td>
1102
  </tr>
1103
+ <tr class='wplc_custom_pall_rows' style='<?php echo isset($wplc_settings['wplc_theme']) && $wplc_settings['wplc_theme'] == 'theme-6' ? '' : 'display:none;'; ?>' >
1104
  <td width='200' valign='top'><?php _e("Palette Color 4","wplivechat")?>:</td>
1105
  <td>
1106
  <input id="wplc_settings_color4" name="wplc_settings_color4" type="text" class="color" value="<?php if (isset($wplc_settings_color4)) { echo $wplc_settings_color4; } else { echo '666666'; } ?>" />
1107
  </td>
1108
  </tr>
1109
 
1110
+ <tr>
1111
+ <td width='300' valign='top'><?php _e("Chat background","wplivechat")?>:</td>
1112
+ <td>
1113
+
1114
+ <select id='wplc_settings_bg' name='wplc_settings_bg'>
1115
+ <option value="cloudy.jpg" <?php if (!isset($wplc_settings['wplc_settings_bg']) || ($wplc_settings['wplc_settings_bg'] == "cloudy.jpg") ) { echo "selected"; } ?>><?php _e("Cloudy","wplivechat"); ?></option>
1116
+ <option value="geometry.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "geometry.jpg") { echo "selected"; } ?>><?php _e("Geometry","wplivechat"); ?></option>
1117
+ <option value="tech.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "tech.jpg") { echo "selected"; } ?>><?php _e("Tech","wplivechat"); ?></option>
1118
+ <option value="social.jpg" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "social.jpg") { echo "selected"; } ?>><?php _e("Social","wplivechat"); ?></option>
1119
+ <option value="0" <?php if (isset($wplc_settings['wplc_settings_bg']) && $wplc_settings['wplc_settings_bg'] == "0") { echo "selected"; } ?>><?php _e("None","wplivechat"); ?></option>
1120
+ </select>
1121
+ </td>
1122
+ </tr>
1123
+
1124
  <tr>
1125
  <td width="200" valign="top"><?php _e("I'm using a localization plugin", "wplivechat") ?></td>
1126
  <td>
1252
  $wplc_agents .= "<p><img src=\"//www.gravatar.com/avatar/" . md5($user->user_email) . "?s=80&d=mm\" /></p>";
1253
  $check = get_user_meta($user->ID,"wplc_chat_agent_online");
1254
  if ($check) {
1255
+ $wplc_agents .= "<span class='wplc_status_box wplc_type_returning'>".__("Logged In","wplivechat")."</span>";
1256
  }
1257
  $wplc_agents .= "<h3>" . $user->display_name . "</h3>";
1258
 
1295
  }
1296
  ?>
1297
  </select>
1298
+ <p><button class='button button-secondary' id='wplc_add_agent' style="display: none;"><?php _e("Add Agent","wplivechat"); ?></button></p>
1299
  </li>
1300
  </ul>
1301
  </div>
includes/surveys.php CHANGED
@@ -327,7 +327,6 @@ function wplc_hook_survey_push_js_to_front() {
327
 
328
  function wplc_admin_survey_layout() {
329
  wplc_stats("surveys");
330
- update_option("wplc_seen_surveys",true);
331
  $settings = get_option('WPLC_SURVEY_SETTINGS');
332
 
333
  echo"<div class=\"wrap wplc_wrap\">";
@@ -376,7 +375,7 @@ function wplc_admin_survey_layout() {
376
  echo "";
377
  echo "";
378
  echo "";
379
- echo " <img src='http://nimblesquirrel.com/app/img/Survey_Box_Standard.jpg' style='max-width:100%;' />";
380
  echo "";
381
  echo "";
382
  echo "";
327
 
328
  function wplc_admin_survey_layout() {
329
  wplc_stats("surveys");
 
330
  $settings = get_option('WPLC_SURVEY_SETTINGS');
331
 
332
  echo"<div class=\"wrap wplc_wrap\">";
375
  echo "";
376
  echo "";
377
  echo "";
378
+ echo " <img src='" . WPLC_PLUGIN_URL . "/images/Survey_Box_Standard.jpg' style='max-width:100%;' />";
379
  echo "";
380
  echo "";
381
  echo "";
includes/templates/documentation-suggestion.html CHANGED
@@ -1,8 +1 @@
1
- <div class='wplc-ds-wrapper'>
2
- <p class='wplc-ds-p'>
3
- <strong class='wplc-ds-strong'>{doc_suggestion_header}</strong>
4
- </p>
5
- <ul class='wplc-ds-ul'>
6
- {doc_suggestion_list}
7
- </ul>
8
- </div>
1
+ <div class='wplc-ds-wrapper'><p class='wplc-ds-p'><strong class='wplc-ds-strong'>{doc_suggestion_header}</strong></p><ul class='wplc-ds-ul'>{doc_suggestion_list}</ul></div>
 
 
 
 
 
 
 
includes/wplc_agent_data.php CHANGED
@@ -128,7 +128,7 @@ function wplc_mrg_filter_control_live_chat_box_above_main_div( $msg, $wplc_setti
128
  $tagline = get_user_meta( $agent_id, 'wplc_user_tagline', true );
129
  if( $tagline !== "" ){
130
  $agent_tagline = $tagline;
131
- $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2">'.$agent_tagline.'</span>';
132
  }
133
  $bio = get_user_meta( $agent_id, 'wplc_user_bio', true );
134
  if( $bio !== "" ){
@@ -227,7 +227,7 @@ function wplc_mrg_filter_control_agent_data_agent_tagline( $agent_tagline, $cid
227
  $tagline = get_user_meta( intval($chat_data->agent_id), 'wplc_user_tagline', true );
228
  if( $tagline !== "" ){
229
  $agent_tagline = $tagline;
230
- $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2">'.$agent_tagline.'</span>';
231
  }
232
  return $agent_tagline;
233
  }
@@ -254,7 +254,7 @@ function wplc_mrg_filter_simple_control_agent_data_agent_tagline( $agent_taglin
254
  $tagline = get_user_meta( intval($agent_id), 'wplc_user_tagline', true );
255
  if( $tagline !== "" ){
256
  $agent_tagline = $tagline;
257
- $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2">'.$agent_tagline.'</span>';
258
  }
259
  return $agent_tagline;
260
  }
128
  $tagline = get_user_meta( $agent_id, 'wplc_user_tagline', true );
129
  if( $tagline !== "" ){
130
  $agent_tagline = $tagline;
131
+ $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2" title="'.$agent_tagline.'">'.$agent_tagline.'</span>';
132
  }
133
  $bio = get_user_meta( $agent_id, 'wplc_user_bio', true );
134
  if( $bio !== "" ){
227
  $tagline = get_user_meta( intval($chat_data->agent_id), 'wplc_user_tagline', true );
228
  if( $tagline !== "" ){
229
  $agent_tagline = $tagline;
230
+ $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2" title="'.$agent_tagline.'">'.$agent_tagline.'</span>';
231
  }
232
  return $agent_tagline;
233
  }
254
  $tagline = get_user_meta( intval($agent_id), 'wplc_user_tagline', true );
255
  if( $tagline !== "" ){
256
  $agent_tagline = $tagline;
257
+ $agent_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2" title="'.$agent_tagline.'">'.$agent_tagline.'</span>';
258
  }
259
  return $agent_tagline;
260
  }
includes/wplc_custom_fields.php CHANGED
@@ -204,13 +204,12 @@ function wplc_custom_fields_edit_page_mrg( $id ){
204
 
205
  if($result){
206
  $field_content = $result->field_content;
207
-
208
- if( $result->field_type == 1) {
209
  $field_content = str_replace("[", "", $field_content);
210
  $field_content = str_replace("\\r", "\n", $field_content);
211
  $field_content = str_replace("\\n", "\n", $field_content);
212
  $field_content = str_replace("\"", "", $field_content);
213
- $field_content = str_replace(",", "", $field_content);
214
  $field_content = str_replace("]", "", $field_content);
215
  }
216
 
@@ -224,10 +223,12 @@ function wplc_custom_fields_edit_page_mrg( $id ){
224
  $content .= " <td>".__('Field Name', 'wplivechat')."</td>";
225
  $content .= " <td><input type='text' name='wplc_field_name' id='wplc_field_name' style='width: 250px;' value='".$result->field_name."'/></td>";
226
  $content .= " </tr>";
227
- $content .= " <tr>";
228
- $content .= " <td>".__('Default Field Value', 'wplivechat')."</td>";
229
- $content .= " <td><input type='text' name='wplc_field_value' id='wplc_field_value' style='width: 250px;' value='".$field_content."'/></td>";
230
- $content .= " </tr>";
 
 
231
  $content .= " <tr>";
232
  $content .= " <td>".__('Field Type', 'wplivechat')."</td>";
233
  $content .= " <td>";
@@ -239,10 +240,13 @@ function wplc_custom_fields_edit_page_mrg( $id ){
239
  $content .= " </select>";
240
  $content .= " </td>";
241
  $content .= " </tr>";
242
- $content .= " <tr>";
243
- $content .= " <td>".__('Drop Down Contents', 'wplivechat')."</td>";
244
- $content .= " <td><textarea name='wplc_drop_down_values' id='wplc_drop_down_values' rows='6' style='width: 250px;'>".$field_content."</textarea><br/><small>".__("Enter each option on a new line", "wplivechat")."</small></td>";
245
- $content .= " </tr>";
 
 
 
246
  $content .= " <tr>";
247
  $content .= " <td></td>";
248
  $content .= " <td><input type='submit' class='button button-primary' name='wplc_update_custom_field' value='".__('Update Custom Field', 'wplivechat')."' /></td>";
@@ -269,7 +273,7 @@ function wplc_custom_fields_delete_page_mrg( $id ){
269
 
270
  $content = "";
271
 
272
- $content .= "<div class='error'>";
273
  $content .= "<p>".__("Are you sure you want to delete this custom field?", "wplivechat")."</p>";
274
  $content .= "<p><a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields&wplc_action=delete_custom_field&fid=$id&confirmed=true&wplc_custom_field_nonce=" . $wplc_custom_field_nonce )."'>".__("Yes", "wplivechat")."</a> | <a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields")."'>".__("No", "wplivechat")."</a></p>";
275
  $content .= "</div>";
@@ -324,8 +328,7 @@ add_filter( "wplc_start_chat_user_form_after_filter", "wplc_display_custom_field
324
 
325
  function wplc_display_custom_fields_in_chatbox_mrg( $string ){
326
 
327
- $ret = "<p>";
328
-
329
  $custom_fields = wplc_get_all_custom_fields_mrg();
330
 
331
  if( $custom_fields ){
@@ -334,15 +337,17 @@ function wplc_display_custom_fields_in_chatbox_mrg( $string ){
334
 
335
  if( $field->field_type == 0 ){
336
 
337
- $ret .= "<input type='text' name='wplc_custom_field[".$field->id."]' id='wplc_custom_field_".$field->id."' fname='".$field->field_name."' placeholder='".$field->field_name."' value='".$field->field_content."' />";
338
 
339
  } else if( $field->field_type == 1 ){
340
 
341
- $ret .= "<select name='wplc_custom_field[".$field->id."]' id='wplc_custom_field_".$field->id."' fname='".$field->field_name."'>";
342
  $content = $field->field_content;
343
  $content = str_replace("\\r", "", $content);
344
  $options = json_decode( $content );
345
 
 
 
346
  if( $options ){
347
  foreach( $options as $key => $val ){
348
  $ret .= " <option value='$val'>".trim( $val )."</option>";
@@ -356,7 +361,6 @@ function wplc_display_custom_fields_in_chatbox_mrg( $string ){
356
  }
357
 
358
  }
359
- $ret .= "</p>";
360
 
361
  return $string . $ret;
362
  }
@@ -505,6 +509,8 @@ function wplc_custom_field_rest_end_points_mrg(){
505
  }
506
 
507
  function wplc_custom_field_rest_get_info_mrg(WP_REST_Request $request){
 
 
508
  $return_array = array();
509
  if(isset($request)){
510
  if(isset($request['security'])){
204
 
205
  if($result){
206
  $field_content = $result->field_content;
207
+ if( intval($result->field_type) == 1) {
 
208
  $field_content = str_replace("[", "", $field_content);
209
  $field_content = str_replace("\\r", "\n", $field_content);
210
  $field_content = str_replace("\\n", "\n", $field_content);
211
  $field_content = str_replace("\"", "", $field_content);
212
+ $field_content = str_replace(",", "\n", $field_content);
213
  $field_content = str_replace("]", "", $field_content);
214
  }
215
 
223
  $content .= " <td>".__('Field Name', 'wplivechat')."</td>";
224
  $content .= " <td><input type='text' name='wplc_field_name' id='wplc_field_name' style='width: 250px;' value='".$result->field_name."'/></td>";
225
  $content .= " </tr>";
226
+ if( intval($result->field_type) != 1) {
227
+ $content .= " <tr>";
228
+ $content .= " <td>".__('Default Field Value', 'wplivechat')."</td>";
229
+ $content .= " <td><input type='text' name='wplc_field_value' id='wplc_field_value' style='width: 250px;' value='".$field_content."'/></td>";
230
+ $content .= " </tr>";
231
+ }
232
  $content .= " <tr>";
233
  $content .= " <td>".__('Field Type', 'wplivechat')."</td>";
234
  $content .= " <td>";
240
  $content .= " </select>";
241
  $content .= " </td>";
242
  $content .= " </tr>";
243
+
244
+ if( intval($result->field_type) == 1) {
245
+ $content .= " <tr>";
246
+ $content .= " <td>".__('Drop Down Contents', 'wplivechat')."</td>";
247
+ $content .= " <td><textarea name='wplc_drop_down_values' id='wplc_drop_down_values' rows='6' style='width: 250px;'>".$field_content."</textarea><br/><small>".__("Enter each option on a new line", "wplivechat")."</small></td>";
248
+ $content .= " </tr>";
249
+ }
250
  $content .= " <tr>";
251
  $content .= " <td></td>";
252
  $content .= " <td><input type='submit' class='button button-primary' name='wplc_update_custom_field' value='".__('Update Custom Field', 'wplivechat')."' /></td>";
273
 
274
  $content = "";
275
 
276
+ $content .= "<div class='update-nag'>";
277
  $content .= "<p>".__("Are you sure you want to delete this custom field?", "wplivechat")."</p>";
278
  $content .= "<p><a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields&wplc_action=delete_custom_field&fid=$id&confirmed=true&wplc_custom_field_nonce=" . $wplc_custom_field_nonce )."'>".__("Yes", "wplivechat")."</a> | <a href='".admin_url("admin.php?page=wplivechat-menu-custom-fields")."'>".__("No", "wplivechat")."</a></p>";
279
  $content .= "</div>";
328
 
329
  function wplc_display_custom_fields_in_chatbox_mrg( $string ){
330
 
331
+ $ret = "";
 
332
  $custom_fields = wplc_get_all_custom_fields_mrg();
333
 
334
  if( $custom_fields ){
337
 
338
  if( $field->field_type == 0 ){
339
 
340
+ $ret .= "<input type='text' name='wplc_custom_field[".$field->id."]' id='wplc_custom_field_".$field->id."' fname='".$field->field_name."' placeholder='".$field->field_content."' />";
341
 
342
  } else if( $field->field_type == 1 ){
343
 
344
+ $ret .= "<select class='wplc_custom_dropdown unselected' name='wplc_custom_field[".$field->id."]' id='wplc_custom_field_".$field->id."' fname='".$field->field_name."'>";
345
  $content = $field->field_content;
346
  $content = str_replace("\\r", "", $content);
347
  $options = json_decode( $content );
348
 
349
+ $ret .= " <option value='$field->field_name' wplc-holder='true'>".trim( $field->field_name )."</option>";
350
+
351
  if( $options ){
352
  foreach( $options as $key => $val ){
353
  $ret .= " <option value='$val'>".trim( $val )."</option>";
361
  }
362
 
363
  }
 
364
 
365
  return $string . $ret;
366
  }
509
  }
510
 
511
  function wplc_custom_field_rest_get_info_mrg(WP_REST_Request $request){
512
+ $request = wplc_api_sanitize_request_params($request);
513
+
514
  $return_array = array();
515
  if(isset($request)){
516
  if(isset($request['security'])){
includes/wplc_data_triggers.php CHANGED
@@ -350,10 +350,12 @@ function wplc_add_trigger_mrg($trigger_data){
350
  $trigger_enabled = null;
351
  //Validation - 1
352
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
353
- if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
354
  if($trigger_data['trigger_content'] != ""){ $trigger_content = $trigger_data['trigger_content']; } else { return false; }
355
  if($trigger_data['trigger_replace'] != ""){ $trigger_replace = 1; } else { $trigger_replace = 0; }
356
  if($trigger_data['trigger_enabled'] != ""){ $trigger_enabled = 1; }else{ $trigger_enabled = 0; }
 
 
 
357
 
358
  //Validation - 2
359
  $trigger_name = sanitize_text_field($trigger_name);
@@ -381,11 +383,11 @@ function wplc_edit_trigger_mrg($trigger_data, $trigger_id){
381
  $trigger_enabled = null;
382
  //Validation - 1
383
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
384
- if($trigger_data['trigger_type'] != ""){ $trigger_type = intval($trigger_data['trigger_type']); } else { return false; }
385
  if($trigger_data['trigger_content'] != ""){ $trigger_content = $trigger_data['trigger_content']; } else { return false; }
386
  if(isset($trigger_data['trigger_replace']) && $trigger_data['trigger_replace'] != ""){ $trigger_replace = 1; } else { $trigger_replace = 0; }
387
  if(isset($trigger_data['trigger_enabled']) && $trigger_data['trigger_enabled'] != ""){ $trigger_enabled = 1; }else{ $trigger_enabled = 0; }
388
 
 
389
  //Validation - 2
390
  $trigger_name = sanitize_text_field($trigger_name);
391
 
350
  $trigger_enabled = null;
351
  //Validation - 1
352
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
 
353
  if($trigger_data['trigger_content'] != ""){ $trigger_content = $trigger_data['trigger_content']; } else { return false; }
354
  if($trigger_data['trigger_replace'] != ""){ $trigger_replace = 1; } else { $trigger_replace = 0; }
355
  if($trigger_data['trigger_enabled'] != ""){ $trigger_enabled = 1; }else{ $trigger_enabled = 0; }
356
+
357
+ $trigger_type = intval($trigger_data['trigger_type']);
358
+
359
 
360
  //Validation - 2
361
  $trigger_name = sanitize_text_field($trigger_name);
383
  $trigger_enabled = null;
384
  //Validation - 1
385
  if($trigger_data['trigger_name'] != ""){ $trigger_name = $trigger_data['trigger_name']; } else { return false; }
 
386
  if($trigger_data['trigger_content'] != ""){ $trigger_content = $trigger_data['trigger_content']; } else { return false; }
387
  if(isset($trigger_data['trigger_replace']) && $trigger_data['trigger_replace'] != ""){ $trigger_replace = 1; } else { $trigger_replace = 0; }
388
  if(isset($trigger_data['trigger_enabled']) && $trigger_data['trigger_enabled'] != ""){ $trigger_enabled = 1; }else{ $trigger_enabled = 0; }
389
 
390
+ $trigger_type = intval($trigger_data['trigger_type']);
391
  //Validation - 2
392
  $trigger_name = sanitize_text_field($trigger_name);
393
 
includes/wplc_transfer_chats.php CHANGED
@@ -569,7 +569,7 @@ function wplc_filter_control_chat_notification_auto_department_transfer_mrg($typ
569
  )
570
  );
571
 
572
- $msg = __("User has been transfered from ","wplivechat") . " ";
573
  if($from_department === null){
574
  $msg .= __("department", "wplivechat");
575
  } else {
569
  )
570
  );
571
 
572
+ $msg = __("User has been transferred from ","wplivechat") . " ";
573
  if($from_department === null){
574
  $msg .= __("department", "wplivechat");
575
  } else {
js/switchery.min.js CHANGED
@@ -1 +1 @@
1
- (function(){function require(name){var module=require.modules[name];if(!module)throw new Error('failed to require "'+name+'"');if(!("exports"in module)&&typeof module.definition==="function"){module.client=module.component=true;module.definition.call(this,module.exports={},module);delete module.definition}return module.exports}require.loader="component";require.helper={};require.helper.semVerSort=function(a,b){var aArray=a.version.split(".");var bArray=b.version.split(".");for(var i=0;i<aArray.length;++i){var aInt=parseInt(aArray[i],10);var bInt=parseInt(bArray[i],10);if(aInt===bInt){var aLex=aArray[i].substr((""+aInt).length);var bLex=bArray[i].substr((""+bInt).length);if(aLex===""&&bLex!=="")return 1;if(aLex!==""&&bLex==="")return-1;if(aLex!==""&&bLex!=="")return aLex>bLex?1:-1;continue}else if(aInt>bInt){return 1}else{return-1}}return 0};require.latest=function(name,returnPath){function showError(name){throw new Error('failed to find latest module of "'+name+'"')}var versionRegexp=/(.*)~(.*)@v?(\d+\.\d+\.\d+[^\/]*)$/;var remoteRegexp=/(.*)~(.*)/;if(!remoteRegexp.test(name))showError(name);var moduleNames=Object.keys(require.modules);var semVerCandidates=[];var otherCandidates=[];for(var i=0;i<moduleNames.length;i++){var moduleName=moduleNames[i];if(new RegExp(name+"@").test(moduleName)){var version=moduleName.substr(name.length+1);var semVerMatch=versionRegexp.exec(moduleName);if(semVerMatch!=null){semVerCandidates.push({version:version,name:moduleName})}else{otherCandidates.push({version:version,name:moduleName})}}}if(semVerCandidates.concat(otherCandidates).length===0){showError(name)}if(semVerCandidates.length>0){var module=semVerCandidates.sort(require.helper.semVerSort).pop().name;if(returnPath===true){return module}return require(module)}var module=otherCandidates.pop().name;if(returnPath===true){return module}return require(module)};require.modules={};require.register=function(name,definition){require.modules[name]={definition:definition}};require.define=function(name,exports){require.modules[name]={exports:exports}};require.register("abpetkov~transitionize@0.0.3",function(exports,module){module.exports=Transitionize;function Transitionize(element,props){if(!(this instanceof Transitionize))return new Transitionize(element,props);this.element=element;this.props=props||{};this.init()}Transitionize.prototype.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)};Transitionize.prototype.init=function(){var transitions=[];for(var key in this.props){transitions.push(key+" "+this.props[key])}this.element.style.transition=transitions.join(", ");if(this.isSafari())this.element.style.webkitTransition=transitions.join(", ")}});require.register("ftlabs~fastclick@v0.6.11",function(exports,module){function FastClick(layer){"use strict";var oldOnClick,self=this;this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=10;this.layer=layer;if(!layer||!layer.nodeType){throw new TypeError("Layer must be a document node")}this.onClick=function(){return FastClick.prototype.onClick.apply(self,arguments)};this.onMouse=function(){return FastClick.prototype.onMouse.apply(self,arguments)};this.onTouchStart=function(){return FastClick.prototype.onTouchStart.apply(self,arguments)};this.onTouchMove=function(){return FastClick.prototype.onTouchMove.apply(self,arguments)};this.onTouchEnd=function(){return FastClick.prototype.onTouchEnd.apply(self,arguments)};this.onTouchCancel=function(){return FastClick.prototype.onTouchCancel.apply(self,arguments)};if(FastClick.notNeeded(layer)){return}if(this.deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}FastClick.prototype.deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;FastClick.prototype.deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);FastClick.prototype.deviceIsIOS4=FastClick.prototype.deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);FastClick.prototype.deviceIsIOSWithBadTarget=FastClick.prototype.deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(this.deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!this.deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){"use strict";if(this.deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){"use strict";var length;if(this.deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(this.deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!this.deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<200){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){"use strict";if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){"use strict";if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<200){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(this.deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(this.deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||this.deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);if(!this.deviceIsIOS4||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(this.deviceIsIOS&&!this.deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){"use strict";if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){"use strict";var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;if(this.deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){"use strict";var metaViewport;var chromeVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(FastClick.prototype.deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&window.innerWidth<=window.screen.width){return true}}}else{return true}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer){"use strict";return new FastClick(layer)};if(typeof define!=="undefined"&&define.amd){define(function(){"use strict";return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}});require.register("component~indexof@0.0.3",function(exports,module){module.exports=function(arr,obj){if(arr.indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}});require.register("component~classes@1.2.1",function(exports,module){var index=require("component~indexof@0.0.3");var re=/\s+/;var toString=Object.prototype.toString;module.exports=function(el){return new ClassList(el)};function ClassList(el){if(!el)throw new Error("A DOM element reference is required");this.el=el;this.list=el.classList}ClassList.prototype.add=function(name){if(this.list){this.list.add(name);return this}var arr=this.array();var i=index(arr,name);if(!~i)arr.push(name);this.el.className=arr.join(" ");return this};ClassList.prototype.remove=function(name){if("[object RegExp]"==toString.call(name)){return this.removeMatching(name)}if(this.list){this.list.remove(name);return this}var arr=this.array();var i=index(arr,name);if(~i)arr.splice(i,1);this.el.className=arr.join(" ");return this};ClassList.prototype.removeMatching=function(re){var arr=this.array();for(var i=0;i<arr.length;i++){if(re.test(arr[i])){this.remove(arr[i])}}return this};ClassList.prototype.toggle=function(name,force){if(this.list){if("undefined"!==typeof force){if(force!==this.list.toggle(name,force)){this.list.toggle(name)}}else{this.list.toggle(name)}return this}if("undefined"!==typeof force){if(!force){this.remove(name)}else{this.add(name)}}else{if(this.has(name)){this.remove(name)}else{this.add(name)}}return this};ClassList.prototype.array=function(){var str=this.el.className.replace(/^\s+|\s+$/g,"");var arr=str.split(re);if(""===arr[0])arr.shift();return arr};ClassList.prototype.has=ClassList.prototype.contains=function(name){return this.list?this.list.contains(name):!!~index(this.array(),name)}});require.register("switchery",function(exports,module){var transitionize=require("abpetkov~transitionize@0.0.3"),fastclick=require("ftlabs~fastclick@v0.6.11"),classes=require("component~classes@1.2.1");module.exports=Switchery;var defaults={color:"#64bd63",secondaryColor:"#dfdfdf",jackColor:"#fff",className:"switchery",disabled:false,disabledOpacity:.5,speed:"0.4s",size:"default"};function Switchery(element,options){if(!(this instanceof Switchery))return new Switchery(element,options);this.element=element;this.options=options||{};for(var i in defaults){if(this.options[i]==null){this.options[i]=defaults[i]}}if(this.element!=null&&this.element.type=="checkbox")this.init()}Switchery.prototype.hide=function(){this.element.style.display="none"};Switchery.prototype.show=function(){var switcher=this.create();this.insertAfter(this.element,switcher)};Switchery.prototype.create=function(){this.switcher=document.createElement("span");this.jack=document.createElement("small");this.switcher.appendChild(this.jack);this.switcher.className=this.options.className;return this.switcher};Switchery.prototype.insertAfter=function(reference,target){reference.parentNode.insertBefore(target,reference.nextSibling)};Switchery.prototype.isChecked=function(){return this.element.checked};Switchery.prototype.isDisabled=function(){return this.options.disabled||this.element.disabled||this.element.readOnly};Switchery.prototype.setPosition=function(clicked){var checked=this.isChecked(),switcher=this.switcher,jack=this.jack;if(clicked&&checked)checked=false;else if(clicked&&!checked)checked=true;if(checked===true){this.element.checked=true;if(window.getComputedStyle)jack.style.left=parseInt(window.getComputedStyle(switcher).width)-parseInt(window.getComputedStyle(jack).width)+"px";else jack.style.left=parseInt(switcher.currentStyle["width"])-parseInt(jack.currentStyle["width"])+"px";if(this.options.color)this.colorize();this.setSpeed()}else{jack.style.left=0;this.element.checked=false;this.switcher.style.boxShadow="inset 0 0 0 0 "+this.options.secondaryColor;this.switcher.style.borderColor=this.options.secondaryColor;this.switcher.style.backgroundColor=this.options.secondaryColor!==defaults.secondaryColor?this.options.secondaryColor:"#fff";this.jack.style.backgroundColor=this.options.jackColor;this.setSpeed()}};Switchery.prototype.setSpeed=function(){var switcherProp={},jackProp={left:this.options.speed.replace(/[a-z]/,"")/2+"s"};if(this.isChecked()){switcherProp={border:this.options.speed,"box-shadow":this.options.speed,"background-color":this.options.speed.replace(/[a-z]/,"")*3+"s"}}else{switcherProp={border:this.options.speed,"box-shadow":this.options.speed}}transitionize(this.switcher,switcherProp);transitionize(this.jack,jackProp)};Switchery.prototype.setSize=function(){var small="switchery-small",normal="switchery-default",large="switchery-large";switch(this.options.size){case"small":classes(this.switcher).add(small);break;case"large":classes(this.switcher).add(large);break;default:classes(this.switcher).add(normal);break}};Switchery.prototype.colorize=function(){var switcherHeight=this.switcher.offsetHeight/2;this.switcher.style.backgroundColor=this.options.color;this.switcher.style.borderColor=this.options.color;this.switcher.style.boxShadow="inset 0 0 0 "+switcherHeight+"px "+this.options.color;this.jack.style.backgroundColor=this.options.jackColor};Switchery.prototype.handleOnchange=function(state){if(document.dispatchEvent){var event=document.createEvent("HTMLEvents");event.initEvent("change",true,true);this.element.dispatchEvent(event)}else{this.element.fireEvent("onchange")}};Switchery.prototype.handleChange=function(){var self=this,el=this.element;if(el.addEventListener){el.addEventListener("change",function(){self.setPosition()})}else{el.attachEvent("onchange",function(){self.setPosition()})}};Switchery.prototype.handleClick=function(){var self=this,switcher=this.switcher,parent=self.element.parentNode.tagName.toLowerCase(),labelParent=parent==="label"?false:true;if(this.isDisabled()===false){fastclick(switcher);if(switcher.addEventListener){switcher.addEventListener("click",function(e){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}else{switcher.attachEvent("onclick",function(){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}}else{this.element.disabled=true;this.switcher.style.opacity=this.options.disabledOpacity}};Switchery.prototype.markAsSwitched=function(){this.element.setAttribute("data-switchery",true)};Switchery.prototype.markedAsSwitched=function(){return this.element.getAttribute("data-switchery")};Switchery.prototype.init=function(){this.hide();this.show();this.setSize();this.setPosition();this.markAsSwitched();this.handleChange();this.handleClick()}});if(typeof exports=="object"){module.exports=require("switchery")}else if(typeof define=="function"&&define.amd){define("Switchery",[],function(){return require("switchery")})}else{(this||window)["Switchery"]=require("switchery")}})();
1
+ (function(){function require(name){var module=require.modules[name];if(!module)throw new Error('failed to require "'+name+'"');if(!("exports"in module)&&typeof module.definition==="function"){module.client=module.component=true;module.definition.call(this,module.exports={},module);delete module.definition}return module.exports}require.loader="component";require.helper={};require.helper.semVerSort=function(a,b){var aArray=a.version.split(".");var bArray=b.version.split(".");for(var i=0;i<aArray.length;++i){var aInt=parseInt(aArray[i],10);var bInt=parseInt(bArray[i],10);if(aInt===bInt){var aLex=aArray[i].substr((""+aInt).length);var bLex=bArray[i].substr((""+bInt).length);if(aLex===""&&bLex!=="")return 1;if(aLex!==""&&bLex==="")return-1;if(aLex!==""&&bLex!=="")return aLex>bLex?1:-1;continue}else if(aInt>bInt){return 1}else{return-1}}return 0};require.latest=function(name,returnPath){function showError(name){throw new Error('failed to find latest module of "'+name+'"')}var versionRegexp=/(.*)~(.*)@v?(\d+\.\d+\.\d+[^\/]*)$/;var remoteRegexp=/(.*)~(.*)/;if(!remoteRegexp.test(name))showError(name);var moduleNames=Object.keys(require.modules);var semVerCandidates=[];var otherCandidates=[];for(var i=0;i<moduleNames.length;i++){var moduleName=moduleNames[i];if(new RegExp(name+"@").test(moduleName)){var version=moduleName.substr(name.length+1);var semVerMatch=versionRegexp.exec(moduleName);if(semVerMatch!=null){semVerCandidates.push({version:version,name:moduleName})}else{otherCandidates.push({version:version,name:moduleName})}}}if(semVerCandidates.concat(otherCandidates).length===0){showError(name)}if(semVerCandidates.length>0){var module=semVerCandidates.sort(require.helper.semVerSort).pop().name;if(returnPath===true){return module}return require(module)}var module=otherCandidates.sort(function(a,b){return a.name>b.name})[0].name;if(returnPath===true){return module}return require(module)};require.modules={};require.register=function(name,definition){require.modules[name]={definition:definition}};require.define=function(name,exports){require.modules[name]={exports:exports}};require.register("abpetkov~transitionize@0.0.3",function(exports,module){module.exports=Transitionize;function Transitionize(element,props){if(!(this instanceof Transitionize))return new Transitionize(element,props);this.element=element;this.props=props||{};this.init()}Transitionize.prototype.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)};Transitionize.prototype.init=function(){var transitions=[];for(var key in this.props){transitions.push(key+" "+this.props[key])}this.element.style.transition=transitions.join(", ");if(this.isSafari())this.element.style.webkitTransition=transitions.join(", ")}});require.register("ftlabs~fastclick@v0.6.11",function(exports,module){function FastClick(layer){"use strict";var oldOnClick,self=this;this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=10;this.layer=layer;if(!layer||!layer.nodeType){throw new TypeError("Layer must be a document node")}this.onClick=function(){return FastClick.prototype.onClick.apply(self,arguments)};this.onMouse=function(){return FastClick.prototype.onMouse.apply(self,arguments)};this.onTouchStart=function(){return FastClick.prototype.onTouchStart.apply(self,arguments)};this.onTouchMove=function(){return FastClick.prototype.onTouchMove.apply(self,arguments)};this.onTouchEnd=function(){return FastClick.prototype.onTouchEnd.apply(self,arguments)};this.onTouchCancel=function(){return FastClick.prototype.onTouchCancel.apply(self,arguments)};if(FastClick.notNeeded(layer)){return}if(this.deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}FastClick.prototype.deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;FastClick.prototype.deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);FastClick.prototype.deviceIsIOS4=FastClick.prototype.deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);FastClick.prototype.deviceIsIOSWithBadTarget=FastClick.prototype.deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(this.deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!this.deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){"use strict";if(this.deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){"use strict";var length;if(this.deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(this.deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!this.deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<200){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){"use strict";if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){"use strict";if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<200){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(this.deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(this.deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||this.deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);if(!this.deviceIsIOS4||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(this.deviceIsIOS&&!this.deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){"use strict";if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){"use strict";var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;if(this.deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){"use strict";var metaViewport;var chromeVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(FastClick.prototype.deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&window.innerWidth<=window.screen.width){return true}}}else{return true}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer){"use strict";return new FastClick(layer)};if(typeof define!=="undefined"&&define.amd){define(function(){"use strict";return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}});require.register("component~indexof@0.0.3",function(exports,module){module.exports=function(arr,obj){if(arr.indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}});require.register("component~classes@1.2.1",function(exports,module){var index=require("component~indexof@0.0.3");var re=/\s+/;var toString=Object.prototype.toString;module.exports=function(el){return new ClassList(el)};function ClassList(el){if(!el)throw new Error("A DOM element reference is required");this.el=el;this.list=el.classList}ClassList.prototype.add=function(name){if(this.list){this.list.add(name);return this}var arr=this.array();var i=index(arr,name);if(!~i)arr.push(name);this.el.className=arr.join(" ");return this};ClassList.prototype.remove=function(name){if("[object RegExp]"==toString.call(name)){return this.removeMatching(name)}if(this.list){this.list.remove(name);return this}var arr=this.array();var i=index(arr,name);if(~i)arr.splice(i,1);this.el.className=arr.join(" ");return this};ClassList.prototype.removeMatching=function(re){var arr=this.array();for(var i=0;i<arr.length;i++){if(re.test(arr[i])){this.remove(arr[i])}}return this};ClassList.prototype.toggle=function(name,force){if(this.list){if("undefined"!==typeof force){if(force!==this.list.toggle(name,force)){this.list.toggle(name)}}else{this.list.toggle(name)}return this}if("undefined"!==typeof force){if(!force){this.remove(name)}else{this.add(name)}}else{if(this.has(name)){this.remove(name)}else{this.add(name)}}return this};ClassList.prototype.array=function(){var str=this.el.className.replace(/^\s+|\s+$/g,"");var arr=str.split(re);if(""===arr[0])arr.shift();return arr};ClassList.prototype.has=ClassList.prototype.contains=function(name){return this.list?this.list.contains(name):!!~index(this.array(),name)}});require.register("component~event@0.1.4",function(exports,module){var bind=window.addEventListener?"addEventListener":"attachEvent",unbind=window.removeEventListener?"removeEventListener":"detachEvent",prefix=bind!=="addEventListener"?"on":"";exports.bind=function(el,type,fn,capture){el[bind](prefix+type,fn,capture||false);return fn};exports.unbind=function(el,type,fn,capture){el[unbind](prefix+type,fn,capture||false);return fn}});require.register("component~query@0.0.3",function(exports,module){function one(selector,el){return el.querySelector(selector)}exports=module.exports=function(selector,el){el=el||document;return one(selector,el)};exports.all=function(selector,el){el=el||document;return el.querySelectorAll(selector)};exports.engine=function(obj){if(!obj.one)throw new Error(".one callback required");if(!obj.all)throw new Error(".all callback required");one=obj.one;exports.all=obj.all;return exports}});require.register("component~matches-selector@0.1.5",function(exports,module){var query=require("component~query@0.0.3");var proto=Element.prototype;var vendor=proto.matches||proto.webkitMatchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector;module.exports=match;function match(el,selector){if(!el||el.nodeType!==1)return false;if(vendor)return vendor.call(el,selector);var nodes=query.all(selector,el.parentNode);for(var i=0;i<nodes.length;++i){if(nodes[i]==el)return true}return false}});require.register("component~closest@0.1.4",function(exports,module){var matches=require("component~matches-selector@0.1.5");module.exports=function(element,selector,checkYoSelf,root){element=checkYoSelf?{parentNode:element}:element;root=root||document;while((element=element.parentNode)&&element!==document){if(matches(element,selector))return element;if(element===root)return}}});require.register("component~delegate@0.2.3",function(exports,module){var closest=require("component~closest@0.1.4"),event=require("component~event@0.1.4");exports.bind=function(el,selector,type,fn,capture){return event.bind(el,type,function(e){var target=e.target||e.srcElement;e.delegateTarget=closest(target,selector,true,el);if(e.delegateTarget)fn.call(el,e)},capture)};exports.unbind=function(el,type,fn,capture){event.unbind(el,type,fn,capture)}});require.register("component~events@1.0.9",function(exports,module){var events=require("component~event@0.1.4");var delegate=require("component~delegate@0.2.3");module.exports=Events;function Events(el,obj){if(!(this instanceof Events))return new Events(el,obj);if(!el)throw new Error("element required");if(!obj)throw new Error("object required");this.el=el;this.obj=obj;this._events={}}Events.prototype.sub=function(event,method,cb){this._events[event]=this._events[event]||{};this._events[event][method]=cb};Events.prototype.bind=function(event,method){var e=parse(event);var el=this.el;var obj=this.obj;var name=e.name;var method=method||"on"+name;var args=[].slice.call(arguments,2);function cb(){var a=[].slice.call(arguments).concat(args);obj[method].apply(obj,a)}if(e.selector){cb=delegate.bind(el,e.selector,name,cb)}else{events.bind(el,name,cb)}this.sub(name,method,cb);return cb};Events.prototype.unbind=function(event,method){if(0==arguments.length)return this.unbindAll();if(1==arguments.length)return this.unbindAllOf(event);var bindings=this._events[event];if(!bindings)return;var cb=bindings[method];if(!cb)return;events.unbind(this.el,event,cb)};Events.prototype.unbindAll=function(){for(var event in this._events){this.unbindAllOf(event)}};Events.prototype.unbindAllOf=function(event){var bindings=this._events[event];if(!bindings)return;for(var method in bindings){this.unbind(event,method)}};function parse(event){var parts=event.split(/ +/);return{name:parts.shift(),selector:parts.join(" ")}}});require.register("switchery",function(exports,module){var transitionize=require("abpetkov~transitionize@0.0.3"),fastclick=require("ftlabs~fastclick@v0.6.11"),classes=require("component~classes@1.2.1"),events=require("component~events@1.0.9");module.exports=Switchery;var defaults={color:"#64bd63",secondaryColor:"#dfdfdf",jackColor:"#fff",jackSecondaryColor:null,className:"switchery",disabled:false,disabledOpacity:.5,speed:"0.4s",size:"default"};function Switchery(element,options){if(!(this instanceof Switchery))return new Switchery(element,options);this.element=element;this.options=options||{};for(var i in defaults){if(this.options[i]==null){this.options[i]=defaults[i]}}if(this.element!=null&&this.element.type=="checkbox")this.init();if(this.isDisabled()===true)this.disable()}Switchery.prototype.hide=function(){this.element.style.display="none"};Switchery.prototype.show=function(){var switcher=this.create();this.insertAfter(this.element,switcher)};Switchery.prototype.create=function(){this.switcher=document.createElement("span");this.jack=document.createElement("small");this.switcher.appendChild(this.jack);this.switcher.className=this.options.className;this.events=events(this.switcher,this);return this.switcher};Switchery.prototype.insertAfter=function(reference,target){reference.parentNode.insertBefore(target,reference.nextSibling)};Switchery.prototype.setPosition=function(clicked){var checked=this.isChecked(),switcher=this.switcher,jack=this.jack;if(clicked&&checked)checked=false;else if(clicked&&!checked)checked=true;if(checked===true){this.element.checked=true;if(window.getComputedStyle)jack.style.left=parseInt(window.getComputedStyle(switcher).width)-parseInt(window.getComputedStyle(jack).width)+"px";else jack.style.left=parseInt(switcher.currentStyle["width"])-parseInt(jack.currentStyle["width"])+"px";if(this.options.color)this.colorize();this.setSpeed()}else{jack.style.left=0;this.element.checked=false;this.switcher.style.boxShadow="inset 0 0 0 0 "+this.options.secondaryColor;this.switcher.style.borderColor=this.options.secondaryColor;this.switcher.style.backgroundColor=this.options.secondaryColor!==defaults.secondaryColor?this.options.secondaryColor:"#fff";this.jack.style.backgroundColor=this.options.jackSecondaryColor!==this.options.jackColor?this.options.jackSecondaryColor:this.options.jackColor;this.setSpeed()}};Switchery.prototype.setSpeed=function(){var switcherProp={},jackProp={"background-color":this.options.speed,left:this.options.speed.replace(/[a-z]/,"")/2+"s"};if(this.isChecked()){switcherProp={border:this.options.speed,"box-shadow":this.options.speed,"background-color":this.options.speed.replace(/[a-z]/,"")*3+"s"}}else{switcherProp={border:this.options.speed,"box-shadow":this.options.speed}}transitionize(this.switcher,switcherProp);transitionize(this.jack,jackProp)};Switchery.prototype.setSize=function(){var small="switchery-small",normal="switchery-default",large="switchery-large";switch(this.options.size){case"small":classes(this.switcher).add(small);break;case"large":classes(this.switcher).add(large);break;default:classes(this.switcher).add(normal);break}};Switchery.prototype.colorize=function(){var switcherHeight=this.switcher.offsetHeight/2;this.switcher.style.backgroundColor=this.options.color;this.switcher.style.borderColor=this.options.color;this.switcher.style.boxShadow="inset 0 0 0 "+switcherHeight+"px "+this.options.color;this.jack.style.backgroundColor=this.options.jackColor};Switchery.prototype.handleOnchange=function(state){if(document.dispatchEvent){var event=document.createEvent("HTMLEvents");event.initEvent("change",true,true);this.element.dispatchEvent(event)}else{this.element.fireEvent("onchange")}};Switchery.prototype.handleChange=function(){var self=this,el=this.element;if(el.addEventListener){el.addEventListener("change",function(){self.setPosition()})}else{el.attachEvent("onchange",function(){self.setPosition()})}};Switchery.prototype.handleClick=function(){var switcher=this.switcher;fastclick(switcher);this.events.bind("click","bindClick")};Switchery.prototype.bindClick=function(){var parent=this.element.parentNode.tagName.toLowerCase(),labelParent=parent==="label"?false:true;this.setPosition(labelParent);this.handleOnchange(this.element.checked)};Switchery.prototype.markAsSwitched=function(){this.element.setAttribute("data-switchery",true)};Switchery.prototype.markedAsSwitched=function(){return this.element.getAttribute("data-switchery")};Switchery.prototype.init=function(){this.hide();this.show();this.setSize();this.setPosition();this.markAsSwitched();this.handleChange();this.handleClick()};Switchery.prototype.isChecked=function(){return this.element.checked};Switchery.prototype.isDisabled=function(){return this.options.disabled||this.element.disabled||this.element.readOnly};Switchery.prototype.destroy=function(){this.events.unbind()};Switchery.prototype.enable=function(){if(!this.options.disabled)return;if(this.options.disabled)this.options.disabled=false;if(this.element.disabled)this.element.disabled=false;if(this.element.readOnly)this.element.readOnly=false;this.switcher.style.opacity=1;this.events.bind("click","bindClick")};Switchery.prototype.disable=function(){if(this.options.disabled)return;if(!this.options.disabled)this.options.disabled=true;if(!this.element.disabled)this.element.disabled=true;if(!this.element.readOnly)this.element.readOnly=true;this.switcher.style.opacity=this.options.disabledOpacity;this.destroy()}});if(typeof exports=="object"){module.exports=require("switchery")}else if(typeof define=="function"&&define.amd){define("Switchery",[],function(){return require("switchery")})}else{(this||window)["Switchery"]=require("switchery")}})();
js/themes/classic.js CHANGED
@@ -28,7 +28,7 @@ jQuery(document).on("wplc_minimize_chat", function( e ) {
28
  jQuery("#wp-live-chat-2").hide();
29
  jQuery("#wp-live-chat-3").hide();
30
  jQuery("#wp-live-chat-4").hide();
31
- jQuery("#wplc_social_holder").hide();
32
  jQuery("#nifty_ratings_holder").hide();
33
  jQuery("#wp-live-chat-react").hide();
34
  jQuery("#wp-live-chat-minimize").hide();
@@ -89,14 +89,14 @@ jQuery(document).on( "wplc_open_chat_2", function( e ) {
89
  wplc_chat_status = Cookies.get('wplc_chat_status');
90
  if (typeof e.wplc_online !== "undefined" && e.wplc_online === true) {
91
  jQuery("#wp-live-chat-4").show();
92
- jQuery("#wplc_social_holder").show();
93
  jQuery("#nifty_ratings_holder").show();
94
  jQuery("#wp-live-chat-1").css("cursor","pointer");
95
  } else if (e.wplc_online === false) {
96
  jQuery("#wp-live-chat-2").show();
97
  jQuery("#wp-live-chat").css("height","auto !important");
98
  jQuery("#wp-live-chat-4").hide();
99
- jQuery("#wplc_social_holder").hide();
100
  jQuery("#nifty_ratings_holder").hide();
101
  jQuery("#wp-live-chat-1").css("cursor","pointer");
102
  }
28
  jQuery("#wp-live-chat-2").hide();
29
  jQuery("#wp-live-chat-3").hide();
30
  jQuery("#wp-live-chat-4").hide();
31
+ // jQuery("#wplc_social_holder").hide();
32
  jQuery("#nifty_ratings_holder").hide();
33
  jQuery("#wp-live-chat-react").hide();
34
  jQuery("#wp-live-chat-minimize").hide();
89
  wplc_chat_status = Cookies.get('wplc_chat_status');
90
  if (typeof e.wplc_online !== "undefined" && e.wplc_online === true) {
91
  jQuery("#wp-live-chat-4").show();
92
+ // jQuery("#wplc_social_holder").show();
93
  jQuery("#nifty_ratings_holder").show();
94
  jQuery("#wp-live-chat-1").css("cursor","pointer");
95
  } else if (e.wplc_online === false) {
96
  jQuery("#wp-live-chat-2").show();
97
  jQuery("#wp-live-chat").css("height","auto !important");
98
  jQuery("#wp-live-chat-4").hide();
99
+ // jQuery("#wplc_social_holder").hide();
100
  jQuery("#nifty_ratings_holder").hide();
101
  jQuery("#wp-live-chat-1").css("cursor","pointer");
102
  }
js/themes/modern.js CHANGED
@@ -1,10 +1,10 @@
1
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
2
- var taid = jQuery(".wplc_agent_info").attr('aid');
3
- if (taid == e.ndata.aid) {
4
- jQuery(".wplc_agent_info").html("");
5
- wplc_animate_agent_header_down();
6
- jQuery("#wplc_chatbox").css("top","18px");
7
- }
8
  });
9
  jQuery(document).on("bleeper_agent_left", function(e) {
10
  var taid = jQuery(".wplc_agent_info").attr('aid');
@@ -42,7 +42,7 @@ jQuery(document).on("wplc_minimize_chat", function( e ) {
42
  jQuery("#wp-live-chat-2").hide();
43
  jQuery("#wp-live-chat-3").hide();
44
  jQuery("#wp-live-chat-4").hide();
45
- jQuery("#wplc_social_holder").hide();
46
  jQuery("#nifty_ratings_holder").hide();
47
  jQuery("#nifty_ratings_holder").hide();
48
  jQuery("#wp-live-chat-react").hide();
@@ -72,18 +72,16 @@ jQuery(document).on( "wplc_open_chat_1", function( e ) {
72
 
73
  });
74
  jQuery(document).on("wplc_agent_joined", function(e) {
75
-
76
  var temail = '';
77
  var tname = '';
78
  var taid = '';
79
  var ta_tagline = '';
80
  var ta_bio = '';
81
  var ta_social_links = '';
82
-
83
  if (typeof e.ndata.other.email !== "undefined") { temail = e.ndata.other.email; }
84
  if (typeof e.ndata.other.name !== "undefined") { tname = e.ndata.other.name; }
85
  if (typeof e.ndata.other.aid !== "undefined") { taid = parseInt(e.ndata.other.aid); }
86
- if (typeof e.ndata.other.agent_tagline !== "undefined") { ta_tagline = e.ndata.other.agent_tagline; }
87
  if (typeof e.ndata.other.agent_bio !== "undefined") { ta_bio = e.ndata.other.agent_bio; }
88
  if (typeof e.ndata.other.social_links !== "undefined") { ta_social_links = e.ndata.other.social_links; }
89
 
@@ -107,7 +105,7 @@ jQuery(document).on("wplc_agent_joined", function(e) {
107
  jQuery('<p/>', {
108
  'class': '',
109
  'style': 'text-align:center;',
110
- html: '<img class="img-thumbnail img-circle wplc_thumb32 wplc_agent_involved" style="max-width:inherit;" id="agent_grav_'+taid+'" title="'+tname+'" src="'+timageurl+'?s=60&d=mm" /><br /><span class="wplc_agent_name wplc-color-2">'+tname+'</span>'+ta_tagline+ta_bio+ta_social_links
111
  }).appendTo('.wplc_agent_info');
112
 
113
  jQuery('<span/>', {
@@ -147,6 +145,7 @@ jQuery(document).on("wplc_agent_joined", function(e) {
147
  //Update Names
148
  var wplc_current_agent_names = jQuery(".wplc_agent_name").text();
149
  jQuery(".wplc_agent_name").text(wplc_current_agent_names + ", " + tname);
 
150
 
151
  //Hide the tagline, it is not needed for two agents in my opinion - Dylan Auty
152
  jQuery(".wplc_agent_tagline").hide();
@@ -190,6 +189,7 @@ jQuery(document).on("bleeper_build_involved_agents_header", function(e){
190
  var other = {
191
  email: wplc_agent_data[current_agent].md5,
192
  name: wplc_agent_data[current_agent].name,
 
193
  aid: current_agent
194
  };
195
 
@@ -260,7 +260,7 @@ jQuery(document).on( "wplc_open_chat_2", function( e ) {
260
 
261
  if (typeof e.wplc_online !== "undefined" && e.wplc_online === true) {
262
  jQuery("#wp-live-chat-4").show();
263
- jQuery("#wplc_social_holder").show();
264
  jQuery("#nifty_ratings_holder").show();
265
  jQuery.event.trigger({type: "wplc_animation_done"});
266
 
@@ -287,25 +287,28 @@ var wplc_currently_animating_agent_header = false;
287
  jQuery(function() {
288
 
289
 
290
- jQuery("body").on("mousewheel", "#wplc_chatbox", function(turn, delta){
291
-
292
- if (delta == 1) {
293
- /**
294
- * The +18px is to compensate for the 18px of padding at the bottom of the header box
295
- */
296
-
297
- wplc_animate_agent_header_up();
298
-
299
- } else {
300
- // going down
301
- /**
302
- * The +18px is to compensate for the 18px of padding at the bottom of the header box
303
- */
304
- wplc_animate_agent_header_down();
 
 
305
 
 
306
  }
307
 
308
- });
309
 
310
  jQuery("body").on("click", ".bleeper_pullup", function() {
311
  if (jQuery(".bleeper_pullup").hasClass('down')) {
@@ -345,7 +348,10 @@ jQuery(function() {
345
  Cookies.set('wplc_minimize', "yes", { expires: 1, path: '/' });
346
 
347
  } else {
348
- jQuery("#wplc_hovercard").fadeIn('fast');
 
 
 
349
  jQuery(this).addClass('active');
350
 
351
  wplc_chat_status = Cookies.get('wplc_chat_status');
@@ -389,7 +395,14 @@ jQuery(function() {
389
  function wplc_animate_agent_header_up() {
390
  if(!wplc_currently_animating_agent_header && jQuery("#wplc_chatbox_header").hasClass("wplc-shrink") && jQuery('#wplc_chatbox_header .wplc_agent_info:first-child').html() !== ""){
391
  wplc_currently_animating_agent_header = true;
 
 
 
 
 
392
  jQuery("#wplc_chatbox_header").removeClass("wplc-shrink");
 
 
393
 
394
  jQuery("#wplc_chatbox_header").animate(
395
  { maxHeight: "280px", },
@@ -413,16 +426,18 @@ function wplc_animate_agent_header_up() {
413
  }
414
  );
415
  }
416
- jQuery(".bleeper_pullup").removeClass('up');
417
- jQuery(".bleeper_pullup").addClass('down');
418
- jQuery(".bleeper_pullup").html("<i class='fa fa-angle-up'></i>");
419
- jQuery(".bleeper_pullup").css('bottom','5px');
420
  }
421
  function wplc_animate_agent_header_down() {
422
  if(!wplc_currently_animating_agent_header && !jQuery("#wplc_chatbox_header").hasClass("wplc-shrink") && jQuery('#wplc_chatbox_header .wplc_agent_info:first-child').html() !== ""){
423
  wplc_currently_animating_agent_header = true;
424
 
 
 
 
 
425
  jQuery("#wplc_chatbox_header").addClass("wplc-shrink");
 
426
 
427
  jQuery("#wplc_chatbox").css("top", "50px");
428
 
@@ -449,10 +464,7 @@ function wplc_animate_agent_header_down() {
449
  );
450
 
451
  }
452
- jQuery(".bleeper_pullup").removeClass('down');
453
- jQuery(".bleeper_pullup").addClass('up');
454
- jQuery(".bleeper_pullup").html("<i class='fa fa-angle-down'></i>");
455
- jQuery(".bleeper_pullup").css('bottom','0px');
456
  }
457
 
458
  !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});
1
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
2
+ // var taid = jQuery(".wplc_agent_info").attr('aid');
3
+ // if (taid == e.ndata.aid) {
4
+ // jQuery(".wplc_agent_info").html("");
5
+ // wplc_animate_agent_header_down();
6
+ // jQuery("#wplc_chatbox").css("top","18px");
7
+ // }
8
  });
9
  jQuery(document).on("bleeper_agent_left", function(e) {
10
  var taid = jQuery(".wplc_agent_info").attr('aid');
42
  jQuery("#wp-live-chat-2").hide();
43
  jQuery("#wp-live-chat-3").hide();
44
  jQuery("#wp-live-chat-4").hide();
45
+ // jQuery("#wplc_social_holder").hide();
46
  jQuery("#nifty_ratings_holder").hide();
47
  jQuery("#nifty_ratings_holder").hide();
48
  jQuery("#wp-live-chat-react").hide();
72
 
73
  });
74
  jQuery(document).on("wplc_agent_joined", function(e) {
 
75
  var temail = '';
76
  var tname = '';
77
  var taid = '';
78
  var ta_tagline = '';
79
  var ta_bio = '';
80
  var ta_social_links = '';
 
81
  if (typeof e.ndata.other.email !== "undefined") { temail = e.ndata.other.email; }
82
  if (typeof e.ndata.other.name !== "undefined") { tname = e.ndata.other.name; }
83
  if (typeof e.ndata.other.aid !== "undefined") { taid = parseInt(e.ndata.other.aid); }
84
+ if (typeof e.ndata.other.agent_tagline !== "undefined" && jQuery('.wplc_agent_tagline').length == 0) { ta_tagline = '<span class="wplc_agent_infosection wplc_agent_tagline wplc-color-2" title="' + e.ndata.other.agent_tagline + '">' + e.ndata.other.agent_tagline + '</span>'; }
85
  if (typeof e.ndata.other.agent_bio !== "undefined") { ta_bio = e.ndata.other.agent_bio; }
86
  if (typeof e.ndata.other.social_links !== "undefined") { ta_social_links = e.ndata.other.social_links; }
87
 
105
  jQuery('<p/>', {
106
  'class': '',
107
  'style': 'text-align:center;',
108
+ html: '<img class="img-thumbnail img-circle wplc_thumb32 wplc_agent_involved" style="max-width:inherit;" id="agent_grav_'+taid+'" title="'+tname+'" src="'+timageurl+'?s=60&d=mm" /><br /><span class="wplc_agent_name wplc-color-2" title="' + tname + '">'+tname+'</span>'+ta_tagline+ta_bio+ta_social_links
109
  }).appendTo('.wplc_agent_info');
110
 
111
  jQuery('<span/>', {
145
  //Update Names
146
  var wplc_current_agent_names = jQuery(".wplc_agent_name").text();
147
  jQuery(".wplc_agent_name").text(wplc_current_agent_names + ", " + tname);
148
+ jQuery(".wplc_agent_name").attr('title', wplc_current_agent_names + ", " + tname);
149
 
150
  //Hide the tagline, it is not needed for two agents in my opinion - Dylan Auty
151
  jQuery(".wplc_agent_tagline").hide();
189
  var other = {
190
  email: wplc_agent_data[current_agent].md5,
191
  name: wplc_agent_data[current_agent].name,
192
+ agent_tagline: wplc_agent_data[current_agent].tagline,
193
  aid: current_agent
194
  };
195
 
260
 
261
  if (typeof e.wplc_online !== "undefined" && e.wplc_online === true) {
262
  jQuery("#wp-live-chat-4").show();
263
+ // jQuery("#wplc_social_holder").show();
264
  jQuery("#nifty_ratings_holder").show();
265
  jQuery.event.trigger({type: "wplc_animation_done"});
266
 
287
  jQuery(function() {
288
 
289
 
290
+ /*jQuery("body").on("mousewheel", "#wplc_chatbox", function(turn, delta){
291
+ var tmpChatboxContainer = document.getElementById('wplc_chatbox');
292
+ if(tmpChatboxContainer.scrollHeight > tmpChatboxContainer.clientHeight){
293
+ if (delta == 1) {*/
294
+ /**
295
+ * The +18px is to compensate for the 18px of padding at the bottom of the header box
296
+ */
297
+ /*
298
+ wplc_animate_agent_header_up();
299
+
300
+ } else {*/
301
+ // going down
302
+ /**
303
+ * The +18px is to compensate for the 18px of padding at the bottom of the header box
304
+ */
305
+ /*
306
+ wplc_animate_agent_header_down();
307
 
308
+ }
309
  }
310
 
311
+ });*/
312
 
313
  jQuery("body").on("click", ".bleeper_pullup", function() {
314
  if (jQuery(".bleeper_pullup").hasClass('down')) {
348
  Cookies.set('wplc_minimize', "yes", { expires: 1, path: '/' });
349
 
350
  } else {
351
+ if(typeof nc_status === 'undefined' || nc_status !== 'active'){
352
+ jQuery("#wplc_hovercard").fadeIn('fast');
353
+ }
354
+
355
  jQuery(this).addClass('active');
356
 
357
  wplc_chat_status = Cookies.get('wplc_chat_status');
395
  function wplc_animate_agent_header_up() {
396
  if(!wplc_currently_animating_agent_header && jQuery("#wplc_chatbox_header").hasClass("wplc-shrink") && jQuery('#wplc_chatbox_header .wplc_agent_info:first-child').html() !== ""){
397
  wplc_currently_animating_agent_header = true;
398
+
399
+ jQuery(".bleeper_pullup").removeClass('up');
400
+ jQuery(".bleeper_pullup").addClass('down');
401
+ jQuery(".bleeper_pullup").html("<i class='fa fa-angle-up'></i>");
402
+
403
  jQuery("#wplc_chatbox_header").removeClass("wplc-shrink");
404
+ jQuery('#wplc_end_chat_button').removeClass('shrink');
405
+
406
 
407
  jQuery("#wplc_chatbox_header").animate(
408
  { maxHeight: "280px", },
426
  }
427
  );
428
  }
429
+
 
 
 
430
  }
431
  function wplc_animate_agent_header_down() {
432
  if(!wplc_currently_animating_agent_header && !jQuery("#wplc_chatbox_header").hasClass("wplc-shrink") && jQuery('#wplc_chatbox_header .wplc_agent_info:first-child').html() !== ""){
433
  wplc_currently_animating_agent_header = true;
434
 
435
+ jQuery(".bleeper_pullup").removeClass('down');
436
+ jQuery(".bleeper_pullup").addClass('up');
437
+ jQuery(".bleeper_pullup").html("<i class='fa fa-angle-down'></i>");
438
+
439
  jQuery("#wplc_chatbox_header").addClass("wplc-shrink");
440
+ jQuery('#wplc_end_chat_button').addClass('shrink');
441
 
442
  jQuery("#wplc_chatbox").css("top", "50px");
443
 
464
  );
465
 
466
  }
467
+
 
 
 
468
  }
469
 
470
  !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})});
js/vendor/charts/loader.js ADDED
@@ -0,0 +1,233 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function(){var a="' of type ",k="SCRIPT",n="array",p="function",q="google.charts.load",t="hasOwnProperty",u="number",v="object",w="pre-45",x="propertyIsEnumerable",y="string",z="text/javascript",A="toLocaleString";function B(){return function(b){return b}}function C(){return function(){}}function D(b){return function(){return this[b]}}function E(b){return function(){return b}}var F,H=H||{};H.scope={};H.Li=function(b){var c=0;return function(){return c<b.length?{done:!1,value:b[c++]}:{done:!0}}};H.Ki=function(b){return{next:H.Li(b)}};
2
+ H.Rd=function(b){var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];return c?c.call(b):H.Ki(b)};H.Ji=function(b){for(var c,d=[];!(c=b.next()).done;)d.push(c.value);return d};H.Ii=function(b){return b instanceof Array?b:H.Ji(H.Rd(b))};H.Tq=function(b,c,d){b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var g=b[f];if(c.call(d,g,f,b))return{ck:f,Ol:g}}return{ck:-1,Ol:void 0}};H.zh=!1;H.gm=!1;H.hm=!1;H.Jo=!1;
3
+ H.defineProperty=H.zh||typeof Object.defineProperties==p?Object.defineProperty:function(b,c,d){b!=Array.prototype&&b!=Object.prototype&&(b[c]=d.value)};H.Kj=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};H.global=H.Kj(this);
4
+ H.Vk=function(b,c){if(c){var d=H.global;b=b.split(".");for(var e=0;e<b.length-1;e++){var f=b[e];f in d||(d[f]={});d=d[f]}b=b[b.length-1];e=d[b];c=c(e);c!=e&&null!=c&&H.defineProperty(d,b,{configurable:!0,writable:!0,value:c})}};H.hq=function(b,c,d){if(null==b)throw new TypeError("The 'this' value for String.prototype."+d+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+d+" must not be a regular expression");return b+""};H.Xh=!1;
5
+ H.Vk("Promise",function(b){function c(b){this.ca=g.Aa;this.ma=void 0;this.vb=[];var c=this.md();try{b(c.resolve,c.reject)}catch(r){c.reject(r)}}function d(){this.La=null}function e(b){return b instanceof c?b:new c(function(c){c(b)})}if(b&&!H.Xh)return b;d.prototype.cf=function(b){if(null==this.La){this.La=[];var c=this;this.df(function(){c.wj()})}this.La.push(b)};var f=H.global.setTimeout;d.prototype.df=function(b){f(b,0)};d.prototype.wj=function(){for(;this.La&&this.La.length;){var b=this.La;this.La=
6
+ [];for(var c=0;c<b.length;++c){var d=b[c];b[c]=null;try{d()}catch(G){this.Pi(G)}}}this.La=null};d.prototype.Pi=function(b){this.df(function(){throw b;})};var g={Aa:0,Ka:1,oa:2};c.prototype.md=function(){function b(b){return function(e){d||(d=!0,b.call(c,e))}}var c=this,d=!1;return{resolve:b(this.$k),reject:b(this.Zd)}};c.prototype.$k=function(b){if(b===this)this.Zd(new TypeError("A Promise cannot resolve to itself"));else if(b instanceof c)this.rl(b);else{a:switch(typeof b){case v:var d=null!=b;break a;
7
+ case p:d=!0;break a;default:d=!1}d?this.Zk(b):this.Ef(b)}};c.prototype.Zk=function(b){var c=void 0;try{c=b.then}catch(r){this.Zd(r);return}typeof c==p?this.sl(c,b):this.Ef(b)};c.prototype.Zd=function(b){this.dh(g.oa,b)};c.prototype.Ef=function(b){this.dh(g.Ka,b)};c.prototype.dh=function(b,c){if(this.ca!=g.Aa)throw Error("Cannot settle("+b+", "+c+"): Promise already settled in state"+this.ca);this.ca=b;this.ma=c;this.yj()};c.prototype.yj=function(){if(null!=this.vb){for(var b=0;b<this.vb.length;++b)h.cf(this.vb[b]);
8
+ this.vb=null}};var h=new d;c.prototype.rl=function(b){var c=this.md();b.hc(c.resolve,c.reject)};c.prototype.sl=function(b,c){var d=this.md();try{b.call(c,d.resolve,d.reject)}catch(G){d.reject(G)}};c.prototype.then=function(b,d){function e(b,c){return typeof b==p?function(c){try{f(b(c))}catch(aa){g(aa)}}:c}var f,g,h=new c(function(b,c){f=b;g=c});this.hc(e(b,f),e(d,g));return h};c.prototype["catch"]=function(b){return this.then(void 0,b)};c.prototype.hc=function(b,c){function d(){switch(e.ca){case g.Ka:b(e.ma);
9
+ break;case g.oa:c(e.ma);break;default:throw Error("Unexpected state: "+e.ca);}}var e=this;null==this.vb?h.cf(d):this.vb.push(d)};c.resolve=e;c.reject=function(b){return new c(function(c,d){d(b)})};c.race=function(b){return new c(function(c,d){for(var f=H.Rd(b),g=f.next();!g.done;g=f.next())e(g.value).hc(c,d)})};c.all=function(b){var d=H.Rd(b),f=d.next();return f.done?e([]):new c(function(b,c){function g(c){return function(d){h[c]=d;l--;0==l&&b(h)}}var h=[],l=0;do h.push(void 0),l++,e(f.value).hc(g(h.length-
10
+ 1),c),f=d.next();while(!f.done)})};return c});var I=I||{};I.global=this;I.X=function(b){return void 0!==b};I.O=function(b){return typeof b==y};I.fk=function(b){return"boolean"==typeof b};I.Ub=function(b){return typeof b==u};I.rd=function(b,c,d){b=b.split(".");d=d||I.global;b[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+b[0]);for(var e;b.length&&(e=b.shift());)!b.length&&I.X(c)?d[e]=c:d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={}};I.define=function(b,c){I.rd(b,c);return c};I.$=!0;
11
+ I.K="en";I.ed=!0;I.ui=!1;I.Sh=!I.$;I.Xm=!1;I.Zs=function(b){if(I.yg())throw Error("goog.provide cannot be used within a module.");I.nf(b)};I.nf=function(b,c){I.rd(b,c)};I.eg=function(){null===I.nd&&(I.nd=I.Oj());return I.nd};I.ei=/^[\w+/_-]+[=]{0,2}$/;I.nd=null;I.Oj=function(){var b=I.global.document;return(b=b.querySelector&&b.querySelector("script[nonce]"))&&(b=b.nonce||b.getAttribute("nonce"))&&I.ei.test(b)?b:""};I.Bi=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
12
+ I.Bc=function(b){if(!I.O(b)||!b||-1==b.search(I.Bi))throw Error("Invalid module identifier");if(!I.xg())throw Error("Module "+b+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");
13
+ if(I.ja.Vb)throw Error("goog.module may only be called once per module.");I.ja.Vb=b};I.Bc.get=E(null);I.Bc.vr=E(null);I.Bb={De:"es6",cd:"goog"};I.ja=null;I.yg=function(){return I.xg()||I.lk()};I.xg=function(){return!!I.ja&&I.ja.type==I.Bb.cd};I.lk=function(){if(I.ja&&I.ja.type==I.Bb.De)return!0;var b=I.global.$jscomp;return b?typeof b.wd!=p?!1:!!b.wd():!1};I.Bc.od=function(){I.ja.od=!0};
14
+ I.mj=function(b){if(I.ja)I.ja.Vb=b;else{var c=I.global.$jscomp;if(!c||typeof c.wd!=p)throw Error('Module with namespace "'+b+'" has been loaded incorrectly.');c=c.Xk(c.wd());I.Kg[b]={zj:c,type:I.Bb.De,Sk:b}}};I.Bc.Gq=I.mj;I.Tt=function(b){if(I.Sh)throw b=b||"",Error("Importing test-only code into non-debug environment"+(b?": "+b:"."));};I.Zq=C();I.ab=function(b){b=b.split(".");for(var c=I.global,d=0;d<b.length;d++)if(c=c[b[d]],!I.eb(c))return null;return c};
15
+ I.Gr=function(b,c){c=c||I.global;for(var d in b)c[d]=b[d]};I.tp=C();I.xu=!1;I.Ym=!0;I.Ik=function(b){I.global.console&&I.global.console.error(b)};I.Xk=C();I.lt=function(){return{}};I.Si="";I.fb=C();I.sp=function(){throw Error("unimplemented abstract method");};I.up=function(b){b.Kd=void 0;b.ur=function(){if(b.Kd)return b.Kd;I.$&&(I.qg[I.qg.length]=b);return b.Kd=new b}};I.qg=[];I.Un=!0;I.pi=I.$;I.Kg={};I.Jm=!1;I.gp="detect";I.fm=!1;I.hp="";I.wi="transpile.js";I.Id=null;
16
+ I.Ml=function(){if(null==I.Id){try{var b=!eval('"use strict";let x = 1; function f() { return typeof x; };f() == "number";')}catch(c){b=!1}I.Id=b}return I.Id};I.Sl=function(b){return"(function(){"+b+"\n;})();\n"};
17
+ I.Cs=function(b){var c=I.ja;try{I.ja={Vb:"",od:!1,type:I.Bb.cd};if(I.Ca(b))var d=b.call(void 0,{});else if(I.O(b))I.Ml()&&(b=I.Sl(b)),d=I.Fk.call(void 0,b);else throw Error("Invalid module definition");var e=I.ja.Vb;if(I.O(e)&&e)I.ja.od?I.nf(e,d):I.pi&&Object.seal&&typeof d==v&&null!=d&&Object.seal(d),I.Kg[e]={zj:d,type:I.Bb.cd,Sk:I.ja.Vb};else throw Error('Invalid module name "'+e+'"');}finally{I.ja=c}};I.Fk=function(b){eval(b);return{}};
18
+ I.Ns=function(b){b=b.split("/");for(var c=0;c<b.length;)"."==b[c]?b.splice(c,1):c&&".."==b[c]&&b[c-1]&&".."!=b[c-1]?b.splice(--c,2):c++;return b.join("/")};I.Dk=function(b){if(I.global.Lh)return I.global.Lh(b);try{var c=new I.global.XMLHttpRequest;c.open("get",b,!1);c.send();return 0==c.status||200==c.status?c.responseText:null}catch(d){return null}};
19
+ I.ou=function(b,c,d){var e=I.global.$jscomp;e||(I.global.$jscomp=e={});var f=e.ke;if(!f){var g=I.Si+I.wi,h=I.Dk(g);if(h){(function(){eval(h+"\n//# sourceURL="+g)}).call(I.global);if(I.global.$gwtExport&&I.global.$gwtExport.$jscomp&&!I.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(I.global.$gwtExport));I.global.$jscomp.ke=I.global.$gwtExport.$jscomp.transpile;e=I.global.$jscomp;f=e.ke}}if(!f){var l=" requires transpilation but no transpiler was found.";
20
+ l+=' Please add "//javascript/closure:transpiler" as a data dependency to ensure it is included.';f=e.ke=function(b,c){I.Ik(c+l);return b}}return f(b,c,d)};
21
+ I.da=function(b){var c=typeof b;if(c==v)if(b){if(b instanceof Array)return n;if(b instanceof Object)return c;var d=Object.prototype.toString.call(b);if("[object Window]"==d)return v;if("[object Array]"==d||typeof b.length==u&&"undefined"!=typeof b.splice&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("splice"))return n;if("[object Function]"==d||"undefined"!=typeof b.call&&"undefined"!=typeof b.propertyIsEnumerable&&!b.propertyIsEnumerable("call"))return p}else return"null";
22
+ else if(c==p&&"undefined"==typeof b.call)return v;return c};I.ns=function(b){return null===b};I.eb=function(b){return null!=b};I.isArray=function(b){return I.da(b)==n};I.Pb=function(b){var c=I.da(b);return c==n||c==v&&typeof b.length==u};I.Yr=function(b){return I.la(b)&&typeof b.getFullYear==p};I.Ca=function(b){return I.da(b)==p};I.la=function(b){var c=typeof b;return c==v&&null!=b||c==p};I.gg=function(b){return b[I.Va]||(b[I.Va]=++I.El)};I.Jr=function(b){return!!b[I.Va]};
23
+ I.Wk=function(b){null!==b&&"removeAttribute"in b&&b.removeAttribute(I.Va);try{delete b[I.Va]}catch(c){}};I.Va="closure_uid_"+(1E9*Math.random()>>>0);I.El=0;I.tr=I.gg;I.gt=I.Wk;I.cj=function(b){var c=I.da(b);if(c==v||c==n){if(typeof b.clone===p)return b.clone();c=c==n?[]:{};for(var d in b)c[d]=I.cj(b[d]);return c}return b};I.Ui=function(b,c,d){return b.call.apply(b.bind,arguments)};
24
+ I.Ti=function(b,c,d){if(!b)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,e);return b.apply(c,d)}}return function(){return b.apply(c,arguments)}};I.bind=function(b,c,d){I.bind=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?I.Ui:I.Ti;return I.bind.apply(null,arguments)};
25
+ I.gb=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=d.slice();c.push.apply(c,arguments);return b.apply(this,c)}};I.Is=function(b,c){for(var d in c)b[d]=c[d]};I.now=I.ed&&Date.now||function(){return+new Date};
26
+ I.Fr=function(b){if(I.global.execScript)I.global.execScript(b,"JavaScript");else if(I.global.eval){if(null==I.oc){try{I.global.eval("var _evalTest_ = 1;")}catch(e){}if("undefined"!=typeof I.global._evalTest_){try{delete I.global._evalTest_}catch(e){}I.oc=!0}else I.oc=!1}if(I.oc)I.global.eval(b);else{var c=I.global.document,d=c.createElement(k);d.type=z;d.defer=!1;d.appendChild(c.createTextNode(b));c.head.appendChild(d);c.head.removeChild(d)}}else throw Error("goog.globalEval not available");};
27
+ I.oc=null;I.rr=function(b,c){function d(b){b=b.split("-");for(var c=[],d=0;d<b.length;d++)c.push(e(b[d]));return c.join("-")}function e(b){return I.sf[b]||b}if("."==String(b).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+b);var f=I.sf?"BY_WHOLE"==I.lj?e:d:B();b=c?b+"-"+f(c):f(b);return I.global.Kh?I.global.Kh(b):b};I.Bt=function(b,c){I.sf=b;I.lj=c};
28
+ I.wr=function(b,c){c&&(b=b.replace(/\{\$([^}]+)}/g,function(b,e){return null!=c&&e in c?c[e]:b}));return b};I.xr=B();I.pc=function(b,c){I.rd(b,c,void 0)};I.Sq=function(b,c,d){b[c]=d};I.bb=function(b,c){function d(){}d.prototype=c.prototype;b.Qc=c.prototype;b.prototype=new d;b.prototype.constructor=b;b.Ri=function(b,d,g){for(var e=Array(arguments.length-2),f=2;f<arguments.length;f++)e[f-2]=arguments[f];return c.prototype[d].apply(b,e)}};
29
+ I.Ri=function(b,c,d){var e=arguments.callee.caller;if(I.ui||I.$&&!e)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if("undefined"!==typeof e.Qc){for(var f=Array(arguments.length-1),g=1;g<arguments.length;g++)f[g-1]=arguments[g];return e.Qc.constructor.apply(b,f)}if(typeof c!=y&&"symbol"!=typeof c)throw Error("method names provided to goog.base must be a string or a symbol");f=Array(arguments.length-
30
+ 2);for(g=2;g<arguments.length;g++)f[g-2]=arguments[g];g=!1;for(var h=b.constructor;h;h=h.Qc&&h.Qc.constructor)if(h.prototype[c]===e)g=!0;else if(g)return h.prototype[c].apply(b,f);if(b[c]===e)return b.constructor.prototype[c].apply(b,f);throw Error("goog.base called from a method of one name to a method of a different name");};I.scope=function(b){if(I.yg())throw Error("goog.scope is not supported within a module.");b.call(I.global)};
31
+ I.ra=function(b,c){var d=c.constructor,e=c.wl;d&&d!=Object.prototype.constructor||(d=function(){throw Error("cannot instantiate an interface (no constructor defined).");});d=I.ra.hj(d,b);b&&I.bb(d,b);delete c.constructor;delete c.wl;I.ra.bf(d.prototype,c);null!=e&&(e instanceof Function?e(d):I.ra.bf(d,e));return d};I.ra.oi=I.$;
32
+ I.ra.hj=function(b,c){function d(){var c=b.apply(this,arguments)||this;c[I.Va]=c[I.Va];this.constructor===d&&e&&Object.seal instanceof Function&&Object.seal(c);return c}if(!I.ra.oi)return b;var e=!I.ra.xk(c);return d};I.ra.xk=function(b){return b&&b.prototype&&b.prototype[I.yi]};I.ra.Ne=["constructor",t,"isPrototypeOf",x,A,"toString","valueOf"];
33
+ I.ra.bf=function(b,c){for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d]);for(var e=0;e<I.ra.Ne.length;e++)d=I.ra.Ne[e],Object.prototype.hasOwnProperty.call(c,d)&&(b[d]=c[d])};I.hu=C();I.yi="goog_defineClass_legacy_unsealable";I.debug={};I.debug.Error=function(b){if(Error.captureStackTrace)Error.captureStackTrace(this,I.debug.Error);else{var c=Error().stack;c&&(this.stack=c)}b&&(this.message=String(b))};I.bb(I.debug.Error,Error);I.debug.Error.prototype.name="CustomError";I.a={};I.a.ga={Ja:1,im:2,ec:3,xm:4,$m:5,Zm:6,vo:7,Em:8,$c:9,Rm:10,Th:11,jo:12};I.o={};I.o.na=I.$;I.o.Zb=function(b,c){I.debug.Error.call(this,I.o.yl(b,c))};I.bb(I.o.Zb,I.debug.Error);I.o.Zb.prototype.name="AssertionError";I.o.Ph=function(b){throw b;};I.o.pd=I.o.Ph;I.o.yl=function(b,c){b=b.split("%s");for(var d="",e=b.length-1,f=0;f<e;f++)d+=b[f]+(f<c.length?c[f]:"%s");return d+b[e]};I.o.Ba=function(b,c,d,e){var f="Assertion failed";if(d){f+=": "+d;var g=e}else b&&(f+=": "+b,g=c);b=new I.o.Zb(""+f,g||[]);I.o.pd(b)};I.o.Ft=function(b){I.o.na&&(I.o.pd=b)};
34
+ I.o.assert=function(b,c,d){I.o.na&&!b&&I.o.Ba("",null,c,Array.prototype.slice.call(arguments,2));return b};I.o.ia=function(b,c){I.o.na&&I.o.pd(new I.o.Zb("Failure"+(b?": "+b:""),Array.prototype.slice.call(arguments,1)))};I.o.Tp=function(b,c,d){I.o.na&&!I.Ub(b)&&I.o.Ba("Expected number but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};
35
+ I.o.Wp=function(b,c,d){I.o.na&&!I.O(b)&&I.o.Ba("Expected string but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};I.o.Dp=function(b,c,d){I.o.na&&!I.Ca(b)&&I.o.Ba("Expected function but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};I.o.Up=function(b,c,d){I.o.na&&!I.la(b)&&I.o.Ba("Expected object but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};
36
+ I.o.zp=function(b,c,d){I.o.na&&!I.isArray(b)&&I.o.Ba("Expected array but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};I.o.Ap=function(b,c,d){I.o.na&&!I.fk(b)&&I.o.Ba("Expected boolean but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};I.o.Bp=function(b,c,d){!I.o.na||I.la(b)&&b.nodeType==I.a.ga.Ja||I.o.Ba("Expected Element but got %s: %s.",[I.da(b),b],c,Array.prototype.slice.call(arguments,2));return b};
37
+ I.o.Ep=function(b,c,d,e){!I.o.na||b instanceof c||I.o.Ba("Expected instanceof %s but got %s.",[I.o.fg(c),I.o.fg(b)],d,Array.prototype.slice.call(arguments,3));return b};I.o.Cp=function(b,c,d){!I.o.na||typeof b==u&&isFinite(b)||I.o.Ba("Expected %s to be a finite number but it is not.",[b],c,Array.prototype.slice.call(arguments,2));return b};I.o.Vp=function(){for(var b in Object.prototype)I.o.ia(b+" should not be enumerable in Object.prototype.")};
38
+ I.o.fg=function(b){return b instanceof Function?b.displayName||b.name||"unknown type name":b instanceof Object?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):null===b?"null":typeof b};I.j={};I.Ga=I.ed;I.j.Da=!1;I.j.Uk=function(b){return b[b.length-1]};I.j.ys=I.j.Uk;I.j.indexOf=I.Ga&&(I.j.Da||Array.prototype.indexOf)?function(b,c,d){return Array.prototype.indexOf.call(b,c,d)}:function(b,c,d){d=null==d?0:0>d?Math.max(0,b.length+d):d;if(I.O(b))return I.O(c)&&1==c.length?b.indexOf(c,d):-1;for(;d<b.length;d++)if(d in b&&b[d]===c)return d;return-1};
39
+ I.j.lastIndexOf=I.Ga&&(I.j.Da||Array.prototype.lastIndexOf)?function(b,c,d){return Array.prototype.lastIndexOf.call(b,c,null==d?b.length-1:d)}:function(b,c,d){d=null==d?b.length-1:d;0>d&&(d=Math.max(0,b.length+d));if(I.O(b))return I.O(c)&&1==c.length?b.lastIndexOf(c,d):-1;for(;0<=d;d--)if(d in b&&b[d]===c)return d;return-1};
40
+ I.j.forEach=I.Ga&&(I.j.Da||Array.prototype.forEach)?function(b,c,d){Array.prototype.forEach.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=I.O(b)?b.split(""):b,g=0;g<e;g++)g in f&&c.call(d,f[g],g,b)};I.j.Df=function(b,c){for(var d=I.O(b)?b.split(""):b,e=b.length-1;0<=e;--e)e in d&&c.call(void 0,d[e],e,b)};
41
+ I.j.filter=I.Ga&&(I.j.Da||Array.prototype.filter)?function(b,c,d){return Array.prototype.filter.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=[],g=0,h=I.O(b)?b.split(""):b,l=0;l<e;l++)if(l in h){var m=h[l];c.call(d,m,l,b)&&(f[g++]=m)}return f};I.j.map=I.Ga&&(I.j.Da||Array.prototype.map)?function(b,c,d){return Array.prototype.map.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=Array(e),g=I.O(b)?b.split(""):b,h=0;h<e;h++)h in g&&(f[h]=c.call(d,g[h],h,b));return f};
42
+ I.j.reduce=I.Ga&&(I.j.Da||Array.prototype.reduce)?function(b,c,d,e){e&&(c=I.bind(c,e));return Array.prototype.reduce.call(b,c,d)}:function(b,c,d,e){var f=d;I.j.forEach(b,function(d,h){f=c.call(e,f,d,h,b)});return f};I.j.reduceRight=I.Ga&&(I.j.Da||Array.prototype.reduceRight)?function(b,c,d,e){e&&(c=I.bind(c,e));return Array.prototype.reduceRight.call(b,c,d)}:function(b,c,d,e){var f=d;I.j.Df(b,function(d,h){f=c.call(e,f,d,h,b)});return f};
43
+ I.j.some=I.Ga&&(I.j.Da||Array.prototype.some)?function(b,c,d){return Array.prototype.some.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=I.O(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return!0;return!1};I.j.every=I.Ga&&(I.j.Da||Array.prototype.every)?function(b,c,d){return Array.prototype.every.call(b,c,d)}:function(b,c,d){for(var e=b.length,f=I.O(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&!c.call(d,f[g],g,b))return!1;return!0};
44
+ I.j.count=function(b,c,d){var e=0;I.j.forEach(b,function(b,g,h){c.call(d,b,g,h)&&++e},d);return e};I.j.find=function(b,c,d){c=I.j.findIndex(b,c,d);return 0>c?null:I.O(b)?b.charAt(c):b[c]};I.j.findIndex=function(b,c,d){for(var e=b.length,f=I.O(b)?b.split(""):b,g=0;g<e;g++)if(g in f&&c.call(d,f[g],g,b))return g;return-1};I.j.Uq=function(b,c,d){c=I.j.Aj(b,c,d);return 0>c?null:I.O(b)?b.charAt(c):b[c]};
45
+ I.j.Aj=function(b,c,d){for(var e=I.O(b)?b.split(""):b,f=b.length-1;0<=f;f--)if(f in e&&c.call(d,e[f],f,b))return f;return-1};I.j.contains=function(b,c){return 0<=I.j.indexOf(b,c)};I.j.Sb=function(b){return 0==b.length};I.j.clear=function(b){if(!I.isArray(b))for(var c=b.length-1;0<=c;c--)delete b[c];b.length=0};I.j.Nr=function(b,c){I.j.contains(b,c)||b.push(c)};I.j.mg=function(b,c,d){I.j.splice(b,d,0,c)};I.j.Pr=function(b,c,d){I.gb(I.j.splice,b,d,0).apply(null,c)};
46
+ I.j.insertBefore=function(b,c,d){var e;2==arguments.length||0>(e=I.j.indexOf(b,d))?b.push(c):I.j.mg(b,c,e)};I.j.remove=function(b,c){c=I.j.indexOf(b,c);var d;(d=0<=c)&&I.j.xb(b,c);return d};I.j.it=function(b,c){c=I.j.lastIndexOf(b,c);return 0<=c?(I.j.xb(b,c),!0):!1};I.j.xb=function(b,c){return 1==Array.prototype.splice.call(b,c,1).length};I.j.ht=function(b,c,d){c=I.j.findIndex(b,c,d);return 0<=c?(I.j.xb(b,c),!0):!1};
47
+ I.j.et=function(b,c,d){var e=0;I.j.Df(b,function(f,g){c.call(d,f,g,b)&&I.j.xb(b,g)&&e++});return e};I.j.concat=function(b){return Array.prototype.concat.apply([],arguments)};I.j.join=function(b){return Array.prototype.concat.apply([],arguments)};I.j.mh=function(b){var c=b.length;if(0<c){for(var d=Array(c),e=0;e<c;e++)d[e]=b[e];return d}return[]};I.j.clone=I.j.mh;
48
+ I.j.extend=function(b,c){for(var d=1;d<arguments.length;d++){var e=arguments[d];if(I.Pb(e)){var f=b.length||0,g=e.length||0;b.length=f+g;for(var h=0;h<g;h++)b[f+h]=e[h]}else b.push(e)}};I.j.splice=function(b,c,d,e){return Array.prototype.splice.apply(b,I.j.slice(arguments,1))};I.j.slice=function(b,c,d){return 2>=arguments.length?Array.prototype.slice.call(b,c):Array.prototype.slice.call(b,c,d)};
49
+ I.j.ft=function(b,c,d){function e(b){return I.la(b)?"o"+I.gg(b):(typeof b).charAt(0)+b}c=c||b;d=d||e;for(var f={},g=0,h=0;h<b.length;){var l=b[h++],m=d(l);Object.prototype.hasOwnProperty.call(f,m)||(f[m]=!0,c[g++]=l)}c.length=g};I.j.ef=function(b,c,d){return I.j.ff(b,d||I.j.Oa,!1,c)};I.j.$p=function(b,c,d){return I.j.ff(b,c,!0,void 0,d)};I.j.ff=function(b,c,d,e,f){for(var g=0,h=b.length,l;g<h;){var m=g+h>>1;var r=d?c.call(f,b[m],m,b):c(e,b[m]);0<r?g=m+1:(h=m,l=!r)}return l?g:~g};
50
+ I.j.sort=function(b,c){b.sort(c||I.j.Oa)};I.j.bu=function(b,c){for(var d=Array(b.length),e=0;e<b.length;e++)d[e]={index:e,value:b[e]};var f=c||I.j.Oa;I.j.sort(d,function(b,c){return f(b.value,c.value)||b.index-c.index});for(e=0;e<b.length;e++)b[e]=d[e].value};I.j.ul=function(b,c,d){var e=d||I.j.Oa;I.j.sort(b,function(b,d){return e(c(b),c(d))})};I.j.Zt=function(b,c,d){I.j.ul(b,function(b){return b[c]},d)};
51
+ I.j.ts=function(b,c,d){c=c||I.j.Oa;for(var e=1;e<b.length;e++){var f=c(b[e-1],b[e]);if(0<f||0==f&&d)return!1}return!0};I.j.Kb=function(b,c){if(!I.Pb(b)||!I.Pb(c)||b.length!=c.length)return!1;for(var d=b.length,e=I.j.nj,f=0;f<d;f++)if(!e(b[f],c[f]))return!1;return!0};I.j.nq=function(b,c,d){d=d||I.j.Oa;for(var e=Math.min(b.length,c.length),f=0;f<e;f++){var g=d(b[f],c[f]);if(0!=g)return g}return I.j.Oa(b.length,c.length)};I.j.Oa=function(b,c){return b>c?1:b<c?-1:0};
52
+ I.j.Rr=function(b,c){return-I.j.Oa(b,c)};I.j.nj=function(b,c){return b===c};I.j.Yp=function(b,c,d){d=I.j.ef(b,c,d);return 0>d?(I.j.mg(b,c,-(d+1)),!0):!1};I.j.Zp=function(b,c,d){c=I.j.ef(b,c,d);return 0<=c?I.j.xb(b,c):!1};I.j.bq=function(b,c,d){for(var e={},f=0;f<b.length;f++){var g=b[f],h=c.call(d,g,f,b);I.X(h)&&(e[h]||(e[h]=[])).push(g)}return e};I.j.lu=function(b,c,d){var e={};I.j.forEach(b,function(f,g){e[c.call(d,f,g,b)]=f});return e};
53
+ I.j.at=function(b,c,d){var e=[],f=0,g=b;d=d||1;void 0!==c&&(f=b,g=c);if(0>d*(g-f))return[];if(0<d)for(b=f;b<g;b+=d)e.push(b);else for(b=f;b>g;b+=d)e.push(b);return e};I.j.repeat=function(b,c){for(var d=[],e=0;e<c;e++)d[e]=b;return d};I.j.flatten=function(b){for(var c=[],d=0;d<arguments.length;d++){var e=arguments[d];if(I.isArray(e))for(var f=0;f<e.length;f+=8192)for(var g=I.j.flatten.apply(null,I.j.slice(e,f,f+8192)),h=0;h<g.length;h++)c.push(g[h]);else c.push(e)}return c};
54
+ I.j.rotate=function(b,c){b.length&&(c%=b.length,0<c?Array.prototype.unshift.apply(b,b.splice(-c,c)):0>c&&Array.prototype.push.apply(b,b.splice(0,-c)));return b};I.j.Ks=function(b,c,d){c=Array.prototype.splice.call(b,c,1);Array.prototype.splice.call(b,d,0,c[0])};
55
+ I.j.Bu=function(b){if(!arguments.length)return[];for(var c=[],d=arguments[0].length,e=1;e<arguments.length;e++)arguments[e].length<d&&(d=arguments[e].length);for(e=0;e<d;e++){for(var f=[],g=0;g<arguments.length;g++)f.push(arguments[g][e]);c.push(f)}return c};I.j.Yt=function(b,c){c=c||Math.random;for(var d=b.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=b[d];b[d]=b[e];b[e]=f}};I.j.sq=function(b,c){var d=[];I.j.forEach(c,function(c){d.push(b[c])});return d};
56
+ I.j.pq=function(b,c,d){return I.j.concat.apply([],I.j.map(b,c,d))};I.async={};I.async.ac=function(b,c,d){this.Ck=d;this.kj=b;this.Yk=c;this.Cc=0;this.xc=null};I.async.ac.prototype.get=function(){if(0<this.Cc){this.Cc--;var b=this.xc;this.xc=b.next;b.next=null}else b=this.kj();return b};I.async.ac.prototype.put=function(b){this.Yk(b);this.Cc<this.Ck&&(this.Cc++,b.next=this.xc,this.xc=b)};I.debug.ba={};I.debug.an=C();I.debug.ba.wb=[];I.debug.ba.Xd=[];I.debug.ba.Pg=!1;I.debug.ba.register=function(b){I.debug.ba.wb[I.debug.ba.wb.length]=b;if(I.debug.ba.Pg)for(var c=I.debug.ba.Xd,d=0;d<c.length;d++)b(I.bind(c[d].Tl,c[d]))};I.debug.ba.Js=function(b){I.debug.ba.Pg=!0;for(var c=I.bind(b.Tl,b),d=0;d<I.debug.ba.wb.length;d++)I.debug.ba.wb[d](c);I.debug.ba.Xd.push(b)};I.debug.ba.uu=function(b){var c=I.debug.ba.Xd;b=I.bind(b.s,b);for(var d=0;d<I.debug.ba.wb.length;d++)I.debug.ba.wb[d](b);c.length--};I.a.xn=C();I.a.c=function(b){this.zl=b};I.a.c.prototype.toString=D("zl");I.a.c.Ul=new I.a.c("A");I.a.c.Vl=new I.a.c("ABBR");I.a.c.Xl=new I.a.c("ACRONYM");I.a.c.Yl=new I.a.c("ADDRESS");I.a.c.bm=new I.a.c("APPLET");I.a.c.cm=new I.a.c("AREA");I.a.c.dm=new I.a.c("ARTICLE");I.a.c.em=new I.a.c("ASIDE");I.a.c.jm=new I.a.c("AUDIO");I.a.c.km=new I.a.c("B");I.a.c.lm=new I.a.c("BASE");I.a.c.mm=new I.a.c("BASEFONT");I.a.c.nm=new I.a.c("BDI");I.a.c.om=new I.a.c("BDO");I.a.c.rm=new I.a.c("BIG");I.a.c.sm=new I.a.c("BLOCKQUOTE");
57
+ I.a.c.tm=new I.a.c("BODY");I.a.c.ye=new I.a.c("BR");I.a.c.um=new I.a.c("BUTTON");I.a.c.vm=new I.a.c("CANVAS");I.a.c.wm=new I.a.c("CAPTION");I.a.c.ym=new I.a.c("CENTER");I.a.c.zm=new I.a.c("CITE");I.a.c.Am=new I.a.c("CODE");I.a.c.Bm=new I.a.c("COL");I.a.c.Cm=new I.a.c("COLGROUP");I.a.c.Dm=new I.a.c("COMMAND");I.a.c.Fm=new I.a.c("DATA");I.a.c.Gm=new I.a.c("DATALIST");I.a.c.Hm=new I.a.c("DD");I.a.c.Im=new I.a.c("DEL");I.a.c.Km=new I.a.c("DETAILS");I.a.c.Lm=new I.a.c("DFN");I.a.c.Mm=new I.a.c("DIALOG");
58
+ I.a.c.Nm=new I.a.c("DIR");I.a.c.Om=new I.a.c("DIV");I.a.c.Pm=new I.a.c("DL");I.a.c.Sm=new I.a.c("DT");I.a.c.Vm=new I.a.c("EM");I.a.c.Wm=new I.a.c("EMBED");I.a.c.cn=new I.a.c("FIELDSET");I.a.c.dn=new I.a.c("FIGCAPTION");I.a.c.en=new I.a.c("FIGURE");I.a.c.fn=new I.a.c("FONT");I.a.c.gn=new I.a.c("FOOTER");I.a.c.hn=new I.a.c("FORM");I.a.c.jn=new I.a.c("FRAME");I.a.c.kn=new I.a.c("FRAMESET");I.a.c.mn=new I.a.c("H1");I.a.c.nn=new I.a.c("H2");I.a.c.on=new I.a.c("H3");I.a.c.pn=new I.a.c("H4");I.a.c.qn=new I.a.c("H5");
59
+ I.a.c.rn=new I.a.c("H6");I.a.c.sn=new I.a.c("HEAD");I.a.c.tn=new I.a.c("HEADER");I.a.c.un=new I.a.c("HGROUP");I.a.c.vn=new I.a.c("HR");I.a.c.wn=new I.a.c("HTML");I.a.c.yn=new I.a.c("I");I.a.c.Bn=new I.a.c("IFRAME");I.a.c.Cn=new I.a.c("IMG");I.a.c.Dn=new I.a.c("INPUT");I.a.c.En=new I.a.c("INS");I.a.c.Jn=new I.a.c("ISINDEX");I.a.c.Mn=new I.a.c("KBD");I.a.c.Nn=new I.a.c("KEYGEN");I.a.c.On=new I.a.c("LABEL");I.a.c.Qn=new I.a.c("LEGEND");I.a.c.Rn=new I.a.c("LI");I.a.c.Sn=new I.a.c("LINK");I.a.c.Wn=new I.a.c("MAIN");
60
+ I.a.c.Xn=new I.a.c("MAP");I.a.c.Yn=new I.a.c("MARK");I.a.c.Zn=new I.a.c("MATH");I.a.c.$n=new I.a.c("MENU");I.a.c.ao=new I.a.c("MENUITEM");I.a.c.bo=new I.a.c("META");I.a.c.co=new I.a.c("METER");I.a.c.fo=new I.a.c("NAV");I.a.c.ho=new I.a.c("NOFRAMES");I.a.c.io=new I.a.c("NOSCRIPT");I.a.c.lo=new I.a.c("OBJECT");I.a.c.mo=new I.a.c("OL");I.a.c.no=new I.a.c("OPTGROUP");I.a.c.oo=new I.a.c("OPTION");I.a.c.po=new I.a.c("OUTPUT");I.a.c.qo=new I.a.c("P");I.a.c.ro=new I.a.c("PARAM");I.a.c.so=new I.a.c("PICTURE");
61
+ I.a.c.uo=new I.a.c("PRE");I.a.c.wo=new I.a.c("PROGRESS");I.a.c.Q=new I.a.c("Q");I.a.c.xo=new I.a.c("RP");I.a.c.yo=new I.a.c("RT");I.a.c.zo=new I.a.c("RTC");I.a.c.Ao=new I.a.c("RUBY");I.a.c.Co=new I.a.c("S");I.a.c.Fo=new I.a.c("SAMP");I.a.c.Go=new I.a.c(k);I.a.c.Ho=new I.a.c("SECTION");I.a.c.Io=new I.a.c("SELECT");I.a.c.Ko=new I.a.c("SMALL");I.a.c.Lo=new I.a.c("SOURCE");I.a.c.Mo=new I.a.c("SPAN");I.a.c.No=new I.a.c("STRIKE");I.a.c.Oo=new I.a.c("STRONG");I.a.c.Po=new I.a.c("STYLE");I.a.c.Qo=new I.a.c("SUB");
62
+ I.a.c.Ro=new I.a.c("SUMMARY");I.a.c.So=new I.a.c("SUP");I.a.c.To=new I.a.c("SVG");I.a.c.Uo=new I.a.c("TABLE");I.a.c.Vo=new I.a.c("TBODY");I.a.c.Wo=new I.a.c("TD");I.a.c.Xo=new I.a.c("TEMPLATE");I.a.c.Yo=new I.a.c("TEXTAREA");I.a.c.Zo=new I.a.c("TFOOT");I.a.c.$o=new I.a.c("TH");I.a.c.ap=new I.a.c("THEAD");I.a.c.bp=new I.a.c("TIME");I.a.c.cp=new I.a.c("TITLE");I.a.c.ep=new I.a.c("TR");I.a.c.fp=new I.a.c("TRACK");I.a.c.jp=new I.a.c("TT");I.a.c.lp=new I.a.c("U");I.a.c.mp=new I.a.c("UL");I.a.c.np=new I.a.c("VAR");
63
+ I.a.c.op=new I.a.c("VIDEO");I.a.c.pp=new I.a.c("WBR");I.N={};I.N.dj=function(b){return function(){return b}};I.N.bn=E(!1);I.N.ip=E(!0);I.N.ko=E(null);I.N.dk=B();I.N.error=function(b){return function(){throw Error(b);}};I.N.ia=function(b){return function(){throw b;}};I.N.lock=function(b,c){c=c||0;return function(){return b.apply(this,Array.prototype.slice.call(arguments,0,c))}};I.N.Rs=function(b){return function(){return arguments[b]}};
64
+ I.N.Xs=function(b,c){var d=Array.prototype.slice.call(arguments,1);return function(){var c=Array.prototype.slice.call(arguments);c.push.apply(c,d);return b.apply(this,c)}};I.N.Au=function(b,c){return I.N.ol(b,I.N.dj(c))};I.N.Qq=function(b,c){return function(d){return c?b==d:b===d}};I.N.oq=function(b,c){var d=arguments,e=d.length;return function(){var b;e&&(b=d[e-1].apply(this,arguments));for(var c=e-2;0<=c;c--)b=d[c].call(this,b);return b}};
65
+ I.N.ol=function(b){var c=arguments,d=c.length;return function(){for(var b,f=0;f<d;f++)b=c[f].apply(this,arguments);return b}};I.N.and=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(!c[b].apply(this,arguments))return!1;return!0}};I.N.or=function(b){var c=arguments,d=c.length;return function(){for(var b=0;b<d;b++)if(c[b].apply(this,arguments))return!0;return!1}};I.N.Qs=function(b){return function(){return!b.apply(this,arguments)}};
66
+ I.N.create=function(b,c){function d(){}d.prototype=b.prototype;var e=new d;b.apply(e,Array.prototype.slice.call(arguments,1));return e};I.N.Gh=!0;I.N.Yi=function(b){var c=!1,d;return function(){if(!I.N.Gh)return b();c||(d=b(),c=!0);return d}};I.N.once=function(b){var c=b;return function(){if(c){var b=c;c=null;b()}}};I.N.Eq=function(b,c,d){var e=0;return function(f){I.global.clearTimeout(e);var g=arguments;e=I.global.setTimeout(function(){b.apply(d,g)},c)}};
67
+ I.N.iu=function(b,c,d){function e(){g=I.global.setTimeout(f,c);b.apply(d,l)}function f(){g=0;h&&(h=!1,e())}var g=0,h=!1,l=[];return function(b){l=arguments;g?h=!0:e()}};I.N.bt=function(b,c,d){function e(){f=0}var f=0;return function(g){f||(f=I.global.setTimeout(e,c),b.apply(d,arguments))}};I.f={};I.f.u={};I.f.u.startsWith=function(b,c){return 0==b.lastIndexOf(c,0)};I.f.u.endsWith=function(b,c){var d=b.length-c.length;return 0<=d&&b.indexOf(c,d)==d};I.f.u.Fb=function(b,c){return 0==I.f.u.ic(c,b.substr(0,c.length))};I.f.u.gf=function(b,c){return 0==I.f.u.ic(c,b.substr(b.length-c.length,c.length))};I.f.u.hf=function(b,c){return b.toLowerCase()==c.toLowerCase()};I.f.u.Tb=function(b){return/^[\s\xa0]*$/.test(b)};I.f.u.trim=I.ed&&String.prototype.trim?function(b){return b.trim()}:function(b){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(b)[1]};
68
+ I.f.u.ic=function(b,c){b=String(b).toLowerCase();c=String(c).toLowerCase();return b<c?-1:b==c?0:1};I.f.u.Wb=function(b,c){return b.replace(/(\r\n|\r|\n)/g,c?"<br />":"<br>")};
69
+ I.f.u.qa=function(b,c){if(c)b=b.replace(I.f.u.me,"&amp;").replace(I.f.u.Ke,"&lt;").replace(I.f.u.He,"&gt;").replace(I.f.u.Re,"&quot;").replace(I.f.u.Te,"&#39;").replace(I.f.u.Me,"&#0;");else{if(!I.f.u.xh.test(b))return b;-1!=b.indexOf("&")&&(b=b.replace(I.f.u.me,"&amp;"));-1!=b.indexOf("<")&&(b=b.replace(I.f.u.Ke,"&lt;"));-1!=b.indexOf(">")&&(b=b.replace(I.f.u.He,"&gt;"));-1!=b.indexOf('"')&&(b=b.replace(I.f.u.Re,"&quot;"));-1!=b.indexOf("'")&&(b=b.replace(I.f.u.Te,"&#39;"));-1!=b.indexOf("\x00")&&
70
+ (b=b.replace(I.f.u.Me,"&#0;"))}return b};I.f.u.me=/&/g;I.f.u.Ke=/</g;I.f.u.He=/>/g;I.f.u.Re=/"/g;I.f.u.Te=/'/g;I.f.u.Me=/\x00/g;I.f.u.xh=/[\x00&<>"']/;I.f.u.sh=function(b){return I.f.u.Wb(b.replace(/ /g," &#160;"),void 0)};I.f.u.contains=function(b,c){return-1!=b.indexOf(c)};I.f.u.jc=function(b,c){return I.f.u.contains(b.toLowerCase(),c.toLowerCase())};
71
+ I.f.u.Ya=function(b,c){var d=0;b=I.f.u.trim(String(b)).split(".");c=I.f.u.trim(String(c)).split(".");for(var e=Math.max(b.length,c.length),f=0;0==d&&f<e;f++){var g=b[f]||"",h=c[f]||"";do{g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];h=/(\d*)(\D*)(.*)/.exec(h)||["","","",""];if(0==g[0].length&&0==h[0].length)break;d=I.f.u.jd(0==g[1].length?0:parseInt(g[1],10),0==h[1].length?0:parseInt(h[1],10))||I.f.u.jd(0==g[2].length,0==h[2].length)||I.f.u.jd(g[2],h[2]);g=g[3];h=h[3]}while(0==d)}return d};
72
+ I.f.u.jd=function(b,c){return b<c?-1:b>c?1:0};I.g={};I.g.userAgent={};I.g.userAgent.B={};I.g.userAgent.B.Tf=function(){var b=I.g.userAgent.B.Mj();return b&&(b=b.userAgent)?b:""};I.g.userAgent.B.Mj=function(){return I.global.navigator};I.g.userAgent.B.qh=I.g.userAgent.B.Tf();I.g.userAgent.B.Vt=function(b){I.g.userAgent.B.qh=b||I.g.userAgent.B.Tf()};I.g.userAgent.B.qb=function(){return I.g.userAgent.B.qh};I.g.userAgent.B.M=function(b){return I.f.u.contains(I.g.userAgent.B.qb(),b)};
73
+ I.g.userAgent.B.Wd=function(b){return I.f.u.jc(I.g.userAgent.B.qb(),b)};I.g.userAgent.B.xf=function(b){for(var c=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,d=[],e;e=c.exec(b);)d.push([e[1],e[2],e[3]||void 0]);return d};I.object={};I.object.is=function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c};I.object.forEach=function(b,c,d){for(var e in b)c.call(d,b[e],e,b)};I.object.filter=function(b,c,d){var e={},f;for(f in b)c.call(d,b[f],f,b)&&(e[f]=b[f]);return e};I.object.map=function(b,c,d){var e={},f;for(f in b)e[f]=c.call(d,b[f],f,b);return e};I.object.some=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return!0;return!1};I.object.every=function(b,c,d){for(var e in b)if(!c.call(d,b[e],e,b))return!1;return!0};
74
+ I.object.qr=function(b){var c=0,d;for(d in b)c++;return c};I.object.nr=function(b){for(var c in b)return c};I.object.pr=function(b){for(var c in b)return b[c]};I.object.contains=function(b,c){return I.object.fj(b,c)};I.object.Er=function(b){var c=[],d=0,e;for(e in b)c[d++]=b[e];return c};I.object.Rf=function(b){var c=[],d=0,e;for(e in b)c[d++]=e;return c};I.object.Dr=function(b,c){var d=I.Pb(c),e=d?c:arguments;for(d=d?0:1;d<e.length;d++){if(null==b)return;b=b[e[d]]}return b};
75
+ I.object.ej=function(b,c){return null!==b&&c in b};I.object.fj=function(b,c){for(var d in b)if(b[d]==c)return!0;return!1};I.object.Bj=function(b,c,d){for(var e in b)if(c.call(d,b[e],e,b))return e};I.object.Vq=function(b,c,d){return(c=I.object.Bj(b,c,d))&&b[c]};I.object.Sb=function(b){for(var c in b)return!1;return!0};I.object.clear=function(b){for(var c in b)delete b[c]};I.object.remove=function(b,c){var d;(d=c in b)&&delete b[c];return d};
76
+ I.object.add=function(b,c,d){if(null!==b&&c in b)throw Error('The object already contains the key "'+c+'"');I.object.set(b,c,d)};I.object.get=function(b,c,d){return null!==b&&c in b?b[c]:d};I.object.set=function(b,c,d){b[c]=d};I.object.It=function(b,c,d){return c in b?b[c]:b[c]=d};I.object.Xt=function(b,c,d){if(c in b)return b[c];d=d();return b[c]=d};I.object.Kb=function(b,c){for(var d in b)if(!(d in c)||b[d]!==c[d])return!1;for(d in c)if(!(d in b))return!1;return!0};
77
+ I.object.clone=function(b){var c={},d;for(d in b)c[d]=b[d];return c};I.object.Jl=function(b){var c=I.da(b);if(c==v||c==n){if(I.Ca(b.clone))return b.clone();c=c==n?[]:{};for(var d in b)c[d]=I.object.Jl(b[d]);return c}return b};I.object.pu=function(b){var c={},d;for(d in b)c[b[d]]=d;return c};I.object.Qe=["constructor",t,"isPrototypeOf",x,A,"toString","valueOf"];
78
+ I.object.extend=function(b,c){for(var d,e,f=1;f<arguments.length;f++){e=arguments[f];for(d in e)b[d]=e[d];for(var g=0;g<I.object.Qe.length;g++)d=I.object.Qe[g],Object.prototype.hasOwnProperty.call(e,d)&&(b[d]=e[d])}};I.object.create=function(b){var c=arguments.length;if(1==c&&I.isArray(arguments[0]))return I.object.create.apply(null,arguments[0]);if(c%2)throw Error("Uneven number of arguments");for(var d={},e=0;e<c;e+=2)d[arguments[e]]=arguments[e+1];return d};
79
+ I.object.ij=function(b){var c=arguments.length;if(1==c&&I.isArray(arguments[0]))return I.object.ij.apply(null,arguments[0]);for(var d={},e=0;e<c;e++)d[arguments[e]]=!0;return d};I.object.wq=function(b){var c=b;Object.isFrozen&&!Object.isFrozen(b)&&(c=Object.create(b),Object.freeze(c));return c};I.object.ds=function(b){return!!Object.isFrozen&&Object.isFrozen(b)};
80
+ I.object.mr=function(b,c,d){if(!b)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return I.object.Rf(b);for(var e={};b&&(b!==Object.prototype||c)&&(b!==Function.prototype||d);){for(var f=Object.getOwnPropertyNames(b),g=0;g<f.length;g++)e[f[g]]=!0;b=Object.getPrototypeOf(b)}return I.object.Rf(e)};I.g.userAgent.A={};I.g.userAgent.A.Lg=function(){return I.g.userAgent.B.M("Opera")};I.g.userAgent.A.Qk=function(){return I.g.userAgent.B.M("Trident")||I.g.userAgent.B.M("MSIE")};I.g.userAgent.A.Ud=function(){return I.g.userAgent.B.M("Edge")};I.g.userAgent.A.Vd=function(){return I.g.userAgent.B.M("Firefox")||I.g.userAgent.B.M("FxiOS")};
81
+ I.g.userAgent.A.Mg=function(){return I.g.userAgent.B.M("Safari")&&!(I.g.userAgent.A.Sd()||I.g.userAgent.A.Td()||I.g.userAgent.A.Lg()||I.g.userAgent.A.Ud()||I.g.userAgent.A.Vd()||I.g.userAgent.A.Fg()||I.g.userAgent.B.M("Android"))};I.g.userAgent.A.Td=function(){return I.g.userAgent.B.M("Coast")};I.g.userAgent.A.Rk=function(){return(I.g.userAgent.B.M("iPad")||I.g.userAgent.B.M("iPhone"))&&!I.g.userAgent.A.Mg()&&!I.g.userAgent.A.Sd()&&!I.g.userAgent.A.Td()&&!I.g.userAgent.A.Vd()&&I.g.userAgent.B.M("AppleWebKit")};
82
+ I.g.userAgent.A.Sd=function(){return(I.g.userAgent.B.M("Chrome")||I.g.userAgent.B.M("CriOS"))&&!I.g.userAgent.A.Ud()};I.g.userAgent.A.Pk=function(){return I.g.userAgent.B.M("Android")&&!(I.g.userAgent.A.tg()||I.g.userAgent.A.ik()||I.g.userAgent.A.Pd()||I.g.userAgent.A.Fg())};I.g.userAgent.A.Pd=I.g.userAgent.A.Lg;I.g.userAgent.A.yc=I.g.userAgent.A.Qk;I.g.userAgent.A.Ra=I.g.userAgent.A.Ud;I.g.userAgent.A.ik=I.g.userAgent.A.Vd;I.g.userAgent.A.ss=I.g.userAgent.A.Mg;I.g.userAgent.A.Xr=I.g.userAgent.A.Td;
83
+ I.g.userAgent.A.fs=I.g.userAgent.A.Rk;I.g.userAgent.A.tg=I.g.userAgent.A.Sd;I.g.userAgent.A.Ur=I.g.userAgent.A.Pk;I.g.userAgent.A.Fg=function(){return I.g.userAgent.B.M("Silk")};
84
+ I.g.userAgent.A.Nb=function(){function b(b){b=I.j.find(b,e);return d[b]||""}var c=I.g.userAgent.B.qb();if(I.g.userAgent.A.yc())return I.g.userAgent.A.Lj(c);c=I.g.userAgent.B.xf(c);var d={};I.j.forEach(c,function(b){d[b[0]]=b[1]});var e=I.gb(I.object.ej,d);return I.g.userAgent.A.Pd()?b(["Version","Opera"]):I.g.userAgent.A.Ra()?b(["Edge"]):I.g.userAgent.A.tg()?b(["Chrome","CriOS"]):(c=c[2])&&c[1]||""};I.g.userAgent.A.za=function(b){return 0<=I.f.u.Ya(I.g.userAgent.A.Nb(),b)};
85
+ I.g.userAgent.A.Lj=function(b){var c=/rv: *([\d\.]*)/.exec(b);if(c&&c[1])return c[1];c="";var d=/MSIE +([\d\.]+)/.exec(b);if(d&&d[1])if(b=/Trident\/(\d.\d)/.exec(b),"7.0"==d[1])if(b&&b[1])switch(b[1]){case "4.0":c="8.0";break;case "5.0":c="9.0";break;case "6.0":c="10.0";break;case "7.0":c="11.0"}else c="7.0";else c=d[1];return c};I.f.Rh=!1;I.f.Wh=!1;I.f.Xe={Le:"\u00a0"};I.f.startsWith=I.f.u.startsWith;I.f.endsWith=I.f.u.endsWith;I.f.Fb=I.f.u.Fb;I.f.gf=I.f.u.gf;I.f.hf=I.f.u.hf;I.f.gu=function(b,c){for(var d=b.split("%s"),e="",f=Array.prototype.slice.call(arguments,1);f.length&&1<d.length;)e+=d.shift()+f.shift();return e+d.join("%s")};I.f.mq=function(b){return b.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")};I.f.Tb=I.f.u.Tb;I.f.bs=function(b){return 0==b.length};I.f.Sb=I.f.Tb;I.f.hk=function(b){return I.f.Tb(I.f.Nk(b))};
86
+ I.f.$r=I.f.hk;I.f.Vr=function(b){return!/[^\t\n\r ]/.test(b)};I.f.Sr=function(b){return!/[^a-zA-Z]/.test(b)};I.f.os=function(b){return!/[^0-9]/.test(b)};I.f.Tr=function(b){return!/[^a-zA-Z0-9]/.test(b)};I.f.us=function(b){return" "==b};I.f.vs=function(b){return 1==b.length&&" "<=b&&"~">=b||"\u0080"<=b&&"\ufffd">=b};I.f.eu=function(b){return b.replace(/(\r\n|\r|\n)+/g," ")};I.f.aj=function(b){return b.replace(/(\r\n|\r|\n)/g,"\n")};I.f.Ps=function(b){return b.replace(/\xa0|\s/g," ")};
87
+ I.f.Os=function(b){return b.replace(/\xa0|[ \t]+/g," ")};I.f.lq=function(b){return b.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")};I.f.trim=I.f.u.trim;I.f.trimLeft=function(b){return b.replace(/^[\s\xa0]+/,"")};I.f.trimRight=function(b){return b.replace(/[\s\xa0]+$/,"")};I.f.ic=I.f.u.ic;
88
+ I.f.Qg=function(b,c,d){if(b==c)return 0;if(!b)return-1;if(!c)return 1;for(var e=b.toLowerCase().match(d),f=c.toLowerCase().match(d),g=Math.min(e.length,f.length),h=0;h<g;h++){d=e[h];var l=f[h];if(d!=l)return b=parseInt(d,10),!isNaN(b)&&(c=parseInt(l,10),!isNaN(c)&&b-c)?b-c:d<l?-1:1}return e.length!=f.length?e.length-f.length:b<c?-1:1};I.f.Qr=function(b,c){return I.f.Qg(b,c,/\d+|\D+/g)};I.f.Cj=function(b,c){return I.f.Qg(b,c,/\d+|\.\d+|\D+/g)};I.f.Ss=I.f.Cj;I.f.wu=function(b){return encodeURIComponent(String(b))};
89
+ I.f.vu=function(b){return decodeURIComponent(b.replace(/\+/g," "))};I.f.Wb=I.f.u.Wb;I.f.qa=function(b,c){b=I.f.u.qa(b,c);I.f.Rh&&(b=b.replace(I.f.Vh,"&#101;"));return b};I.f.Vh=/e/g;I.f.oh=function(b){return I.f.contains(b,"&")?!I.f.Wh&&"document"in I.global?I.f.ph(b):I.f.Hl(b):b};I.f.su=function(b,c){return I.f.contains(b,"&")?I.f.ph(b,c):b};
90
+ I.f.ph=function(b,c){var d={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"'};var e=c?c.createElement("div"):I.global.document.createElement("div");return b.replace(I.f.$h,function(b,c){var f=d[b];if(f)return f;"#"==c.charAt(0)&&(c=Number("0"+c.substr(1)),isNaN(c)||(f=String.fromCharCode(c)));f||(e.innerHTML=b+" ",f=e.firstChild.nodeValue.slice(0,-1));return d[b]=f})};
91
+ I.f.Hl=function(b){return b.replace(/&([^;]+);/g,function(b,d){switch(d){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return"#"!=d.charAt(0)||(d=Number("0"+d.substr(1)),isNaN(d))?b:String.fromCharCode(d)}})};I.f.$h=/&([^;\s<&]+);?/g;I.f.sh=function(b){return I.f.Wb(b.replace(/ /g," &#160;"),void 0)};I.f.Ys=function(b){return b.replace(/(^|[\n ]) /g,"$1"+I.f.Xe.Le)};
92
+ I.f.fu=function(b,c){for(var d=c.length,e=0;e<d;e++){var f=1==d?c:c.charAt(e);if(b.charAt(0)==f&&b.charAt(b.length-1)==f)return b.substring(1,b.length-1)}return b};I.f.truncate=function(b,c,d){d&&(b=I.f.oh(b));b.length>c&&(b=b.substring(0,c-3)+"...");d&&(b=I.f.qa(b));return b};I.f.qu=function(b,c,d,e){d&&(b=I.f.oh(b));e&&b.length>c?(e>c&&(e=c),b=b.substring(0,c-e)+"..."+b.substring(b.length-e)):b.length>c&&(e=Math.floor(c/2),b=b.substring(0,e+c%2)+"..."+b.substring(b.length-e));d&&(b=I.f.qa(b));return b};
93
+ I.f.fe={"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\","<":"<"};I.f.zc={"'":"\\'"};I.f.quote=function(b){b=String(b);for(var c=['"'],d=0;d<b.length;d++){var e=b.charAt(d),f=e.charCodeAt(0);c[d+1]=I.f.fe[e]||(31<f&&127>f?e:I.f.vf(e))}c.push('"');return c.join("")};I.f.Rq=function(b){for(var c=[],d=0;d<b.length;d++)c[d]=I.f.vf(b.charAt(d));return c.join("")};
94
+ I.f.vf=function(b){if(b in I.f.zc)return I.f.zc[b];if(b in I.f.fe)return I.f.zc[b]=I.f.fe[b];var c=b.charCodeAt(0);if(31<c&&127>c)var d=b;else{if(256>c){if(d="\\x",16>c||256<c)d+="0"}else d="\\u",4096>c&&(d+="0");d+=c.toString(16).toUpperCase()}return I.f.zc[b]=d};I.f.contains=I.f.u.contains;I.f.jc=I.f.u.jc;I.f.tq=function(b,c){return b&&c?b.split(c).length-1:0};I.f.xb=B();I.f.remove=function(b,c){return b.replace(c,"")};I.f.dt=function(b,c){c=new RegExp(I.f.Yd(c),"g");return b.replace(c,"")};
95
+ I.f.jt=function(b,c,d){c=new RegExp(I.f.Yd(c),"g");return b.replace(c,d.replace(/\$/g,"$$$$"))};I.f.Yd=function(b){return String(b).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};I.f.repeat=String.prototype.repeat?function(b,c){return b.repeat(c)}:function(b,c){return Array(c+1).join(b)};I.f.Vs=function(b,c,d){b=I.X(d)?b.toFixed(d):String(b);d=b.indexOf(".");-1==d&&(d=b.length);return I.f.repeat("0",Math.max(0,c-d))+b};I.f.Nk=function(b){return null==b?"":String(b)};
96
+ I.f.cq=function(b){return Array.prototype.join.call(arguments,"")};I.f.Br=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^I.now()).toString(36)};I.f.Ya=I.f.u.Ya;I.f.Kr=function(b){for(var c=0,d=0;d<b.length;++d)c=31*c+b.charCodeAt(d)>>>0;return c};I.f.Il=2147483648*Math.random()|0;I.f.Cq=function(){return"goog_"+I.f.Il++};I.f.ku=function(b){var c=Number(b);return 0==c&&I.f.Tb(b)?NaN:c};I.f.gs=function(b){return/^[a-z]+([A-Z][a-z]*)*$/.test(b)};
97
+ I.f.ws=function(b){return/^([A-Z][a-z]*)+$/.test(b)};I.f.ju=function(b){return String(b).replace(/\-([a-z])/g,function(b,d){return d.toUpperCase()})};I.f.mu=function(b){return String(b).replace(/([A-Z])/g,"-$1").toLowerCase()};I.f.nu=function(b,c){c=I.O(c)?I.f.Yd(c):"\\s";return b.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(b,c,f){return c+f.toUpperCase()})};I.f.gq=function(b){return String(b.charAt(0)).toUpperCase()+String(b.substr(1)).toLowerCase()};
98
+ I.f.parseInt=function(b){isFinite(b)&&(b=String(b));return I.O(b)?/^\s*-?0x/i.test(b)?parseInt(b,16):parseInt(b,10):NaN};I.f.$t=function(b,c,d){b=b.split(c);for(var e=[];0<d&&b.length;)e.push(b.shift()),d--;b.length&&e.push(b.join(c));return e};I.f.zs=function(b,c){if(c)typeof c==y&&(c=[c]);else return b;for(var d=-1,e=0;e<c.length;e++)if(""!=c[e]){var f=b.lastIndexOf(c[e]);f>d&&(d=f)}return-1==d?b:b.slice(d+1)};
99
+ I.f.Lq=function(b,c){var d=[],e=[];if(b==c)return 0;if(!b.length||!c.length)return Math.max(b.length,c.length);for(var f=0;f<c.length+1;f++)d[f]=f;for(f=0;f<b.length;f++){e[0]=f+1;for(var g=0;g<c.length;g++)e[g+1]=Math.min(e[g]+1,d[g+1]+1,d[g]+Number(b[f]!=c[g]));for(g=0;g<d.length;g++)d[g]=e[g]}return e[c.length]};I.g.userAgent.W={};I.g.userAgent.W.tk=function(){return I.g.userAgent.B.M("Presto")};I.g.userAgent.W.wk=function(){return I.g.userAgent.B.M("Trident")||I.g.userAgent.B.M("MSIE")};I.g.userAgent.W.Ra=function(){return I.g.userAgent.B.M("Edge")};I.g.userAgent.W.Hg=function(){return I.g.userAgent.B.Wd("WebKit")&&!I.g.userAgent.W.Ra()};I.g.userAgent.W.jk=function(){return I.g.userAgent.B.M("Gecko")&&!I.g.userAgent.W.Hg()&&!I.g.userAgent.W.wk()&&!I.g.userAgent.W.Ra()};
100
+ I.g.userAgent.W.Nb=function(){var b=I.g.userAgent.B.qb();if(b){b=I.g.userAgent.B.xf(b);var c=I.g.userAgent.W.Jj(b);if(c)return"Gecko"==c[0]?I.g.userAgent.W.Uj(b):c[1];b=b[0];var d;if(b&&(d=b[2])&&(d=/Trident\/([^\s;]+)/.exec(d)))return d[1]}return""};I.g.userAgent.W.Jj=function(b){if(!I.g.userAgent.W.Ra())return b[1];for(var c=0;c<b.length;c++){var d=b[c];if("Edge"==d[0])return d}};I.g.userAgent.W.za=function(b){return 0<=I.f.Ya(I.g.userAgent.W.Nb(),b)};
101
+ I.g.userAgent.W.Uj=function(b){return(b=I.j.find(b,function(b){return"Firefox"==b[0]}))&&b[1]||""};I.async.jh=function(b){I.global.setTimeout(function(){throw b;},0)};I.async.sa=function(b,c,d){var e=b;c&&(e=I.bind(b,c));e=I.async.sa.th(e);I.Ca(I.global.setImmediate)&&(d||I.async.sa.Nl())?I.global.setImmediate(e):(I.async.sa.$g||(I.async.sa.$g=I.async.sa.Qj()),I.async.sa.$g(e))};I.async.sa.Nl=function(){return I.global.Window&&I.global.Window.prototype&&!I.g.userAgent.A.Ra()&&I.global.Window.prototype.setImmediate==I.global.setImmediate?!1:!0};
102
+ I.async.sa.Qj=function(){var b=I.global.MessageChannel;"undefined"===typeof b&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!I.g.userAgent.W.tk()&&(b=function(){var b=document.createElement("IFRAME");b.style.display="none";b.src="";document.documentElement.appendChild(b);var c=b.contentWindow;b=c.document;b.open();b.write("");b.close();var d="callImmediate"+Math.random(),e="file:"==c.location.protocol?"*":c.location.protocol+"//"+c.location.host;b=I.bind(function(b){if(("*"==
103
+ e||b.origin==e)&&b.data==d)this.port1.onmessage()},this);c.addEventListener("message",b,!1);this.port1={};this.port2={postMessage:function(){c.postMessage(d,e)}}});if("undefined"!==typeof b&&!I.g.userAgent.A.yc()){var c=new b,d={},e=d;c.port1.onmessage=function(){if(I.X(d.next)){d=d.next;var b=d.jf;d.jf=null;b()}};return function(b){e.next={jf:b};e=e.next;c.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement(k)?function(b){var c=document.createElement(k);
104
+ c.onreadystatechange=function(){c.onreadystatechange=null;c.parentNode.removeChild(c);c=null;b();b=null};document.documentElement.appendChild(c)}:function(b){I.global.setTimeout(b,0)}};I.async.sa.th=I.N.dk;I.debug.ba.register(function(b){I.async.sa.th=b});I.async.Ha=function(){this.Uc=this.zb=null};I.async.Ha.Zc=100;I.async.Ha.Mb=new I.async.ac(function(){return new I.async.fd},function(b){b.reset()},I.async.Ha.Zc);I.async.Ha.prototype.add=function(b,c){var d=I.async.Ha.Mb.get();d.set(b,c);this.Uc?this.Uc.next=d:this.zb=d;this.Uc=d};I.async.Ha.prototype.remove=function(){var b=null;this.zb&&(b=this.zb,this.zb=this.zb.next,this.zb||(this.Uc=null),b.next=null);return b};I.async.fd=function(){this.next=this.scope=this.td=null};
105
+ I.async.fd.prototype.set=function(b,c){this.td=b;this.scope=c;this.next=null};I.async.fd.prototype.reset=function(){this.next=this.scope=this.td=null};I.Ch=!1;I.async.R=function(b,c){I.async.R.Nc||I.async.R.ek();I.async.R.Tc||(I.async.R.Nc(),I.async.R.Tc=!0);I.async.R.le.add(b,c)};I.async.R.ek=function(){if(I.Ch||I.global.Promise&&I.global.Promise.resolve){var b=I.global.Promise.resolve(void 0);I.async.R.Nc=function(){b.then(I.async.R.Jc)}}else I.async.R.Nc=function(){I.async.sa(I.async.R.Jc)}};I.async.R.Xq=function(b){I.async.R.Nc=function(){I.async.sa(I.async.R.Jc);b&&b(I.async.R.Jc)}};I.async.R.Tc=!1;I.async.R.le=new I.async.Ha;
106
+ I.$&&(I.async.R.mt=function(){I.async.R.Tc=!1;I.async.R.le=new I.async.Ha});I.async.R.Jc=function(){for(var b;b=I.async.R.le.remove();){try{b.td.call(b.scope)}catch(c){I.async.jh(c)}I.async.Ha.Mb.put(b)}I.async.R.Tc=!1};I.a.o={};I.a.o.Rp=C();I.a.o.Db=B();I.a.o.Fp=C();I.a.o.Mi=function(b){return I.a.o.Db(b)};I.a.o.Mp=C();I.a.o.Lp=C();I.a.o.Gp=C();I.a.o.Qp=C();I.a.o.Oi=function(b){return I.a.o.Db(b)};I.a.o.Pp=function(b){return I.a.o.Db(b)};I.a.o.Hp=function(b){return I.a.o.Db(b)};I.a.o.Ip=C();I.a.o.Ni=function(b){return I.a.o.Db(b)};I.a.o.Jp=C();I.a.o.Kp=C();I.a.o.Np=C();I.a.o.Op=C();
107
+ I.a.o.Fq=function(b){return I.la(b)?b.constructor.displayName||b.constructor.name||Object.prototype.toString.call(b):void 0===b?"undefined":null===b?"null":typeof b};I.a.o.uc=function(b){return(b=b&&b.ownerDocument)&&(b.defaultView||b.parentWindow)||I.global};I.g.userAgent.platform={};I.g.userAgent.platform.sg=function(){return I.g.userAgent.B.M("Android")};I.g.userAgent.platform.Cg=function(){return I.g.userAgent.B.M("iPod")};I.g.userAgent.platform.Bg=function(){return I.g.userAgent.B.M("iPhone")&&!I.g.userAgent.B.M("iPod")&&!I.g.userAgent.B.M("iPad")};I.g.userAgent.platform.Ag=function(){return I.g.userAgent.B.M("iPad")};I.g.userAgent.platform.zg=function(){return I.g.userAgent.platform.Bg()||I.g.userAgent.platform.Ag()||I.g.userAgent.platform.Cg()};
108
+ I.g.userAgent.platform.Dg=function(){return I.g.userAgent.B.M("Macintosh")};I.g.userAgent.platform.qk=function(){return I.g.userAgent.B.M("Linux")};I.g.userAgent.platform.Jg=function(){return I.g.userAgent.B.M("Windows")};I.g.userAgent.platform.ug=function(){return I.g.userAgent.B.M("CrOS")};I.g.userAgent.platform.Wr=function(){return I.g.userAgent.B.M("CrKey")};I.g.userAgent.platform.nk=function(){return I.g.userAgent.B.Wd("KaiOS")};I.g.userAgent.platform.kk=function(){return I.g.userAgent.B.Wd("GAFP")};
109
+ I.g.userAgent.platform.Nb=function(){var b=I.g.userAgent.B.qb(),c="";I.g.userAgent.platform.Jg()?(c=/Windows (?:NT|Phone) ([0-9.]+)/,c=(b=c.exec(b))?b[1]:"0.0"):I.g.userAgent.platform.zg()?(c=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,c=(b=c.exec(b))&&b[1].replace(/_/g,".")):I.g.userAgent.platform.Dg()?(c=/Mac OS X ([0-9_.]+)/,c=(b=c.exec(b))?b[1].replace(/_/g,"."):"10"):I.g.userAgent.platform.sg()?(c=/Android\s+([^\);]+)(\)|;)/,c=(b=c.exec(b))&&b[1]):I.g.userAgent.platform.ug()&&(c=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,
110
+ c=(b=c.exec(b))&&b[1]);return c||""};I.g.userAgent.platform.za=function(b){return 0<=I.f.Ya(I.g.userAgent.platform.Nb(),b)};I.Ia={};I.Ia.object=function(b,c){return c};I.Ia.ee=function(b){I.Ia.ee[" "](b);return b};I.Ia.ee[" "]=I.fb;I.Ia.eq=function(b,c){try{return I.Ia.ee(b[c]),!0}catch(d){}return!1};I.Ia.cache=function(b,c,d,e){e=e?e(c):c;return Object.prototype.hasOwnProperty.call(b,e)?b[e]:b[e]=d(c)};I.userAgent={};I.userAgent.qe=!1;I.userAgent.oe=!1;I.userAgent.pe=!1;I.userAgent.ve=!1;I.userAgent.Yc=!1;I.userAgent.te=!1;I.userAgent.yh=!1;I.userAgent.Ab=I.userAgent.qe||I.userAgent.oe||I.userAgent.pe||I.userAgent.Yc||I.userAgent.ve||I.userAgent.te;I.userAgent.Tj=function(){return I.g.userAgent.B.qb()};I.userAgent.Fd=function(){return I.global.navigator||null};I.userAgent.yr=function(){return I.userAgent.Fd()};I.userAgent.Oe=I.userAgent.Ab?I.userAgent.te:I.g.userAgent.A.Pd();
111
+ I.userAgent.aa=I.userAgent.Ab?I.userAgent.qe:I.g.userAgent.A.yc();I.userAgent.Ce=I.userAgent.Ab?I.userAgent.oe:I.g.userAgent.W.Ra();I.userAgent.Um=I.userAgent.Ce||I.userAgent.aa;I.userAgent.ad=I.userAgent.Ab?I.userAgent.pe:I.g.userAgent.W.jk();I.userAgent.Cb=I.userAgent.Ab?I.userAgent.ve||I.userAgent.Yc:I.g.userAgent.W.Hg();I.userAgent.sk=function(){return I.userAgent.Cb&&I.g.userAgent.B.M("Mobile")};I.userAgent.eo=I.userAgent.Yc||I.userAgent.sk();I.userAgent.Do=I.userAgent.Cb;
112
+ I.userAgent.pj=function(){var b=I.userAgent.Fd();return b&&b.platform||""};I.userAgent.to=I.userAgent.pj();I.userAgent.se=!1;I.userAgent.we=!1;I.userAgent.re=!1;I.userAgent.xe=!1;I.userAgent.ne=!1;I.userAgent.Wc=!1;I.userAgent.Vc=!1;I.userAgent.Xc=!1;I.userAgent.Bh=!1;I.userAgent.Ah=!1;I.userAgent.va=I.userAgent.se||I.userAgent.we||I.userAgent.re||I.userAgent.xe||I.userAgent.ne||I.userAgent.Wc||I.userAgent.Vc||I.userAgent.Xc;I.userAgent.Vn=I.userAgent.va?I.userAgent.se:I.g.userAgent.platform.Dg();
113
+ I.userAgent.qp=I.userAgent.va?I.userAgent.we:I.g.userAgent.platform.Jg();I.userAgent.pk=function(){return I.g.userAgent.platform.qk()||I.g.userAgent.platform.ug()};I.userAgent.Tn=I.userAgent.va?I.userAgent.re:I.userAgent.pk();I.userAgent.Ak=function(){var b=I.userAgent.Fd();return!!b&&I.f.contains(b.appVersion||"","X11")};I.userAgent.rp=I.userAgent.va?I.userAgent.xe:I.userAgent.Ak();I.userAgent.am=I.userAgent.va?I.userAgent.ne:I.g.userAgent.platform.sg();
114
+ I.userAgent.Hn=I.userAgent.va?I.userAgent.Wc:I.g.userAgent.platform.Bg();I.userAgent.Gn=I.userAgent.va?I.userAgent.Vc:I.g.userAgent.platform.Ag();I.userAgent.In=I.userAgent.va?I.userAgent.Xc:I.g.userAgent.platform.Cg();I.userAgent.Fn=I.userAgent.va?I.userAgent.Wc||I.userAgent.Vc||I.userAgent.Xc:I.g.userAgent.platform.zg();I.userAgent.Ln=I.userAgent.va?I.userAgent.Bh:I.g.userAgent.platform.nk();I.userAgent.ln=I.userAgent.va?I.userAgent.Ah:I.g.userAgent.platform.kk();
115
+ I.userAgent.qj=function(){var b="",c=I.userAgent.Vj();c&&(b=c?c[1]:"");return I.userAgent.aa&&(c=I.userAgent.Kf(),null!=c&&c>parseFloat(b))?String(c):b};I.userAgent.Vj=function(){var b=I.userAgent.Tj();if(I.userAgent.ad)return/rv:([^\);]+)(\)|;)/.exec(b);if(I.userAgent.Ce)return/Edge\/([\d\.]+)/.exec(b);if(I.userAgent.aa)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(b);if(I.userAgent.Cb)return/WebKit\/(\S+)/.exec(b);if(I.userAgent.Oe)return/(?:Version)[ \/]?(\S+)/.exec(b)};
116
+ I.userAgent.Kf=function(){var b=I.global.document;return b?b.documentMode:void 0};I.userAgent.VERSION=I.userAgent.qj();I.userAgent.compare=function(b,c){return I.f.Ya(b,c)};I.userAgent.yk={};I.userAgent.za=function(b){return I.userAgent.yh||I.Ia.cache(I.userAgent.yk,b,function(){return 0<=I.f.Ya(I.userAgent.VERSION,b)})};I.userAgent.xs=I.userAgent.za;I.userAgent.Rb=function(b){return Number(I.userAgent.Uh)>=b};I.userAgent.Zr=I.userAgent.Rb;var J;var K=I.global.document,ba=I.userAgent.Kf();
117
+ J=K&&I.userAgent.aa?ba||("CSS1Compat"==K.compatMode?parseInt(I.userAgent.VERSION,10):5):void 0;I.userAgent.Uh=J;I.a.ib={Hh:!I.userAgent.aa||I.userAgent.Rb(9),Ih:!I.userAgent.ad&&!I.userAgent.aa||I.userAgent.aa&&I.userAgent.Rb(9)||I.userAgent.ad&&I.userAgent.za("1.9.1"),ze:I.userAgent.aa&&!I.userAgent.za("9"),Jh:I.userAgent.aa||I.userAgent.Oe||I.userAgent.Cb,ai:I.userAgent.aa,Pn:I.userAgent.aa&&!I.userAgent.Rb(9)};I.a.tags={};I.a.tags.Fi={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};I.a.tags.zk=function(b){return!0===I.a.tags.Fi[b]};I.f.kp=C();I.f.I=function(b,c){this.ie=b===I.f.I.Ge&&c||"";this.vi=I.f.I.Ve};I.f.I.prototype.ya=!0;I.f.I.prototype.ka=D("ie");I.f.I.prototype.toString=function(){return"Const{"+this.ie+"}"};I.f.I.s=function(b){if(b instanceof I.f.I&&b.constructor===I.f.I&&b.vi===I.f.I.Ve)return b.ie;I.o.ia("expected object of type Const, got '"+b+"'");return"type_error:Const"};I.f.I.from=function(b){return new I.f.I(I.f.I.Ge,b)};I.f.I.Ve={};I.f.I.Ge={};I.f.I.EMPTY=I.f.I.from("");I.b={};I.b.P=function(){this.Ec="";this.ki=I.b.P.ea};I.b.P.prototype.ya=!0;I.b.P.ea={};I.b.P.qc=function(b){b=I.f.I.s(b);return 0===b.length?I.b.P.EMPTY:I.b.P.Gb(b)};I.b.P.ar=function(b,c){for(var d=[],e=1;e<arguments.length;e++)d.push(I.b.P.gh(arguments[e]));return I.b.P.Gb("("+I.f.I.s(b)+")("+d.join(", ")+");")};I.b.P.fr=function(b){return I.b.P.Gb(I.b.P.gh(b))};I.b.P.prototype.ka=D("Ec");I.$&&(I.b.P.prototype.toString=function(){return"SafeScript{"+this.Ec+"}"});
118
+ I.b.P.s=function(b){if(b instanceof I.b.P&&b.constructor===I.b.P&&b.ki===I.b.P.ea)return b.Ec;I.o.ia("expected object of type SafeScript, got '"+b+a+I.da(b));return"type_error:SafeScript"};I.b.P.gh=function(b){return JSON.stringify(b).replace(/</g,"\\x3c")};I.b.P.Gb=function(b){return(new I.b.P).cb(b)};I.b.P.prototype.cb=function(b){this.Ec=b;return this};I.b.P.EMPTY=I.b.P.Gb("");I.xa={};I.xa.url={};I.xa.url.gj=function(b){return I.xa.url.hg().createObjectURL(b)};I.xa.url.nt=function(b){I.xa.url.hg().revokeObjectURL(b)};I.xa.url.hg=function(){var b=I.xa.url.Bf();if(null!=b)return b;throw Error("This browser doesn't seem to support blob URLs");};I.xa.url.Bf=function(){return I.X(I.global.URL)&&I.X(I.global.URL.createObjectURL)?I.global.URL:I.X(I.global.webkitURL)&&I.X(I.global.webkitURL.createObjectURL)?I.global.webkitURL:I.X(I.global.createObjectURL)?I.global:null};
119
+ I.xa.url.aq=function(){return null!=I.xa.url.Bf()};I.h={};I.h.i={};I.h.i.Yh=!1;
120
+ I.h.i.Je=I.h.i.Yh||("ar"==I.K.substring(0,2).toLowerCase()||"fa"==I.K.substring(0,2).toLowerCase()||"he"==I.K.substring(0,2).toLowerCase()||"iw"==I.K.substring(0,2).toLowerCase()||"ps"==I.K.substring(0,2).toLowerCase()||"sd"==I.K.substring(0,2).toLowerCase()||"ug"==I.K.substring(0,2).toLowerCase()||"ur"==I.K.substring(0,2).toLowerCase()||"yi"==I.K.substring(0,2).toLowerCase())&&(2==I.K.length||"-"==I.K.substring(2,3)||"_"==I.K.substring(2,3))||3<=I.K.length&&"ckb"==I.K.substring(0,3).toLowerCase()&&
121
+ (3==I.K.length||"-"==I.K.substring(3,4)||"_"==I.K.substring(3,4))||7<=I.K.length&&("-"==I.K.substring(2,3)||"_"==I.K.substring(2,3))&&("adlm"==I.K.substring(3,7).toLowerCase()||"arab"==I.K.substring(3,7).toLowerCase()||"hebr"==I.K.substring(3,7).toLowerCase()||"nkoo"==I.K.substring(3,7).toLowerCase()||"rohg"==I.K.substring(3,7).toLowerCase()||"thaa"==I.K.substring(3,7).toLowerCase())||8<=I.K.length&&("-"==I.K.substring(3,4)||"_"==I.K.substring(3,4))&&("adlm"==I.K.substring(4,8).toLowerCase()||"arab"==
122
+ I.K.substring(4,8).toLowerCase()||"hebr"==I.K.substring(4,8).toLowerCase()||"nkoo"==I.K.substring(4,8).toLowerCase()||"rohg"==I.K.substring(4,8).toLowerCase()||"thaa"==I.K.substring(4,8).toLowerCase());I.h.i.mb={ci:"\u202a",gi:"\u202b",Pe:"\u202c",di:"\u200e",hi:"\u200f"};I.h.i.T={Ta:1,Ua:-1,ua:0};I.h.i.dc="right";I.h.i.bc="left";I.h.i.An=I.h.i.Je?I.h.i.bc:I.h.i.dc;I.h.i.zn=I.h.i.Je?I.h.i.dc:I.h.i.bc;
123
+ I.h.i.Cl=function(b){return typeof b==u?0<b?I.h.i.T.Ta:0>b?I.h.i.T.Ua:I.h.i.T.ua:null==b?null:b?I.h.i.T.Ua:I.h.i.T.Ta};I.h.i.tb="A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0900-\u1fff\u200e\u2c00-\ud801\ud804-\ud839\ud83c-\udbff\uf900-\ufb1c\ufe00-\ufe6f\ufefd-\uffff";I.h.i.yb="\u0591-\u06ef\u06fa-\u08ff\u200f\ud802-\ud803\ud83a-\ud83b\ufb1d-\ufdff\ufe70-\ufefc";I.h.i.bk=/<[^>]*>|&[^;]+;/g;I.h.i.Sa=function(b,c){return c?b.replace(I.h.i.bk,""):b};
124
+ I.h.i.cl=new RegExp("["+I.h.i.yb+"]");I.h.i.Jk=new RegExp("["+I.h.i.tb+"]");I.h.i.Hd=function(b,c){return I.h.i.cl.test(I.h.i.Sa(b,c))};I.h.i.Ir=I.h.i.Hd;I.h.i.kg=function(b){return I.h.i.Jk.test(I.h.i.Sa(b,void 0))};I.h.i.Mk=new RegExp("^["+I.h.i.tb+"]");I.h.i.hl=new RegExp("^["+I.h.i.yb+"]");I.h.i.uk=function(b){return I.h.i.hl.test(b)};I.h.i.rk=function(b){return I.h.i.Mk.test(b)};I.h.i.ls=function(b){return!I.h.i.rk(b)&&!I.h.i.uk(b)};I.h.i.Kk=new RegExp("^[^"+I.h.i.yb+"]*["+I.h.i.tb+"]");
125
+ I.h.i.el=new RegExp("^[^"+I.h.i.tb+"]*["+I.h.i.yb+"]");I.h.i.eh=function(b,c){return I.h.i.el.test(I.h.i.Sa(b,c))};I.h.i.rs=I.h.i.eh;I.h.i.vl=function(b,c){return I.h.i.Kk.test(I.h.i.Sa(b,c))};I.h.i.js=I.h.i.vl;I.h.i.Eg=/^http:\/\/.*/;I.h.i.ms=function(b,c){b=I.h.i.Sa(b,c);return I.h.i.Eg.test(b)||!I.h.i.kg(b)&&!I.h.i.Hd(b)};I.h.i.Lk=new RegExp("["+I.h.i.tb+"][^"+I.h.i.yb+"]*$");I.h.i.fl=new RegExp("["+I.h.i.yb+"][^"+I.h.i.tb+"]*$");I.h.i.tj=function(b,c){return I.h.i.Lk.test(I.h.i.Sa(b,c))};
126
+ I.h.i.hs=I.h.i.tj;I.h.i.uj=function(b,c){return I.h.i.fl.test(I.h.i.Sa(b,c))};I.h.i.ps=I.h.i.uj;I.h.i.gl=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;I.h.i.qs=function(b){return I.h.i.gl.test(b)};I.h.i.Wi=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g;I.h.i.Hr=function(b,c){c=(void 0===c?I.h.i.Hd(b):c)?I.h.i.mb.hi:I.h.i.mb.di;return b.replace(I.h.i.Wi,c+"$&"+c)};
127
+ I.h.i.Oq=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=rtl"):"\n<span dir=rtl>"+b+"</span>"};I.h.i.Pq=function(b){return I.h.i.mb.gi+b+I.h.i.mb.Pe};I.h.i.Mq=function(b){return"<"==b.charAt(0)?b.replace(/<\w+/,"$& dir=ltr"):"\n<span dir=ltr>"+b+"</span>"};I.h.i.Nq=function(b){return I.h.i.mb.ci+b+I.h.i.mb.Pe};I.h.i.rj=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g;I.h.i.Bk=/left/gi;I.h.i.bl=/right/gi;I.h.i.Al=/%%%%/g;
128
+ I.h.i.Hs=function(b){return b.replace(I.h.i.rj,":$1 $4 $3 $2").replace(I.h.i.Bk,"%%%%").replace(I.h.i.bl,I.h.i.bc).replace(I.h.i.Al,I.h.i.dc)};I.h.i.sj=/([\u0591-\u05f2])"/g;I.h.i.tl=/([\u0591-\u05f2])'/g;I.h.i.Ms=function(b){return b.replace(I.h.i.sj,"$1\u05f4").replace(I.h.i.tl,"$1\u05f3")};I.h.i.Rl=/\s+/;I.h.i.ak=/[\d\u06f0-\u06f9]/;I.h.i.dl=.4;
129
+ I.h.i.wf=function(b,c){var d=0,e=0,f=!1;b=I.h.i.Sa(b,c).split(I.h.i.Rl);for(c=0;c<b.length;c++){var g=b[c];I.h.i.eh(g)?(d++,e++):I.h.i.Eg.test(g)?f=!0:I.h.i.kg(g)?e++:I.h.i.ak.test(g)&&(f=!0)}return 0==e?f?I.h.i.T.Ta:I.h.i.T.ua:d/e>I.h.i.dl?I.h.i.T.Ua:I.h.i.T.Ta};I.h.i.Hq=function(b,c){return I.h.i.wf(b,c)==I.h.i.T.Ua};I.h.i.Ct=function(b,c){b&&(c=I.h.i.Cl(c))&&(b.style.textAlign=c==I.h.i.T.Ua?I.h.i.dc:I.h.i.bc,b.dir=c==I.h.i.T.Ua?"rtl":"ltr")};
130
+ I.h.i.Dt=function(b,c){switch(I.h.i.wf(c)){case I.h.i.T.Ta:b.dir="ltr";break;case I.h.i.T.Ua:b.dir="rtl";break;default:b.removeAttribute("dir")}};I.h.i.Tm=C();I.b.D=function(){this.Ic="";this.xi=I.b.D.ea};I.b.D.prototype.ya=!0;I.b.D.prototype.ka=D("Ic");I.b.D.prototype.Jd=!0;I.b.D.prototype.$a=function(){return I.h.i.T.Ta};I.$&&(I.b.D.prototype.toString=function(){return"TrustedResourceUrl{"+this.Ic+"}"});I.b.D.s=function(b){if(b instanceof I.b.D&&b.constructor===I.b.D&&b.xi===I.b.D.ea)return b.Ic;I.o.ia("expected object of type TrustedResourceUrl, got '"+b+a+I.da(b));return"type_error:TrustedResourceUrl"};
131
+ I.b.D.format=function(b,c){var d=I.f.I.s(b);if(!I.b.D.Eh.test(d))throw Error("Invalid TrustedResourceUrl format: "+d);b=d.replace(I.b.D.Zh,function(b,f){if(!Object.prototype.hasOwnProperty.call(c,f))throw Error('Found marker, "'+f+'", in format string, "'+d+'", but no valid label mapping found in args: '+JSON.stringify(c));b=c[f];return b instanceof I.f.I?I.f.I.s(b):encodeURIComponent(String(b))});return I.b.D.Jb(b)};I.b.D.Zh=/%{(\w+)}/g;I.b.D.Eh=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i;
132
+ I.b.D.Ai=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;I.b.D.Yq=function(b,c,d,e){b=I.b.D.format(b,c);b=I.b.D.s(b);b=I.b.D.Ai.exec(b);c=b[3]||"";return I.b.D.Jb(b[1]+I.b.D.fh("?",b[2]||"",d)+I.b.D.fh("#",c,e))};I.b.D.qc=function(b){return I.b.D.Jb(I.f.I.s(b))};I.b.D.cr=function(b){for(var c="",d=0;d<b.length;d++)c+=I.f.I.s(b[d]);return I.b.D.Jb(c)};I.b.D.ea={};I.b.D.Jb=function(b){var c=new I.b.D;c.Ic=b;return c};
133
+ I.b.D.fh=function(b,c,d){if(null==d)return c;if(I.O(d))return d?b+encodeURIComponent(d):"";for(var e in d){var f=d[e];f=I.isArray(f)?f:[f];for(var g=0;g<f.length;g++){var h=f[g];null!=h&&(c||(c=b),c+=(c.length>b.length?"&":"")+encodeURIComponent(e)+"="+encodeURIComponent(String(h)))}}return c};I.b.l=function(){this.Hc="";this.ni=I.b.l.ea};I.b.l.ha="about:invalid#zClosurez";I.b.l.prototype.ya=!0;I.b.l.prototype.ka=D("Hc");I.b.l.prototype.Jd=!0;I.b.l.prototype.$a=function(){return I.h.i.T.Ta};I.$&&(I.b.l.prototype.toString=function(){return"SafeUrl{"+this.Hc+"}"});I.b.l.s=function(b){if(b instanceof I.b.l&&b.constructor===I.b.l&&b.ni===I.b.l.ea)return b.Hc;I.o.ia("expected object of type SafeUrl, got '"+b+a+I.da(b));return"type_error:SafeUrl"};I.b.l.qc=function(b){return I.b.l.pa(I.f.I.s(b))};
134
+ I.b.Se=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))$/i;I.b.l.$q=function(b){b=I.b.Se.test(b.type)?I.xa.url.gj(b):I.b.l.ha;return I.b.l.pa(b)};I.b.Oh=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i;I.b.l.dr=function(b){b=b.replace(/(%0A|%0D)/g,"");var c=b.match(I.b.Oh);c=c&&I.b.Se.test(c[1]);return I.b.l.pa(c?b:I.b.l.ha)};
135
+ I.b.l.kr=function(b){I.f.u.Fb(b,"tel:")||(b=I.b.l.ha);return I.b.l.pa(b)};I.b.si=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i;I.b.l.ir=function(b){I.b.si.test(decodeURIComponent(b))||(b=I.b.l.ha);return I.b.l.pa(b)};I.b.l.er=function(b){I.f.u.Fb(b,"fb-messenger://share")||(b=I.b.l.ha);return I.b.l.pa(b)};I.b.l.jr=function(b){I.f.u.Fb(b,"sms:")&&I.b.l.vk(b)||(b=I.b.l.ha);return I.b.l.pa(b)};
136
+ I.b.l.vk=function(b){var c=b.indexOf("#");0<c&&(b=b.substring(0,c));c=b.match(/[?&]body=/gi);if(!c)return!0;if(1<c.length)return!1;b=b.match(/[?&]body=([^&]*)/)[1];if(!b)return!0;try{decodeURIComponent(b)}catch(d){return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(b)};I.b.l.vt=function(b,c){return I.b.l.ae(/^chrome-extension:\/\/([^\/]+)\//,b,c)};I.b.l.xt=function(b,c){return I.b.l.ae(/^moz-extension:\/\/([^\/]+)\//,b,c)};
137
+ I.b.l.wt=function(b,c){return I.b.l.ae(/^ms-browser-extension:\/\/([^\/]+)\//,b,c)};I.b.l.ae=function(b,c,d){(b=b.exec(c))?(b=b[1],-1==(d instanceof I.f.I?[I.f.I.s(d)]:d.map(function(b){return I.f.I.s(b)})).indexOf(b)&&(c=I.b.l.ha)):c=I.b.l.ha;return I.b.l.pa(c)};I.b.l.lr=function(b){return I.b.l.pa(I.b.D.s(b))};I.b.dd=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;I.b.l.Eo=I.b.dd;
138
+ I.b.l.Mc=function(b){if(b instanceof I.b.l)return b;b=typeof b==v&&b.ya?b.ka():String(b);I.b.dd.test(b)||(b=I.b.l.ha);return I.b.l.pa(b)};I.b.l.ta=function(b){if(b instanceof I.b.l)return b;b=typeof b==v&&b.ya?b.ka():String(b);I.b.dd.test(b)||(b=I.b.l.ha);return I.b.l.pa(b)};I.b.l.ea={};I.b.l.pa=function(b){var c=new I.b.l;c.Hc=b;return c};I.b.l.Wl=I.b.l.pa("about:blank");I.b.w=function(){this.Gc="";this.mi=I.b.w.ea};I.b.w.prototype.ya=!0;I.b.w.ea={};I.b.w.qc=function(b){b=I.f.I.s(b);return 0===b.length?I.b.w.EMPTY:I.b.w.Hb(b)};I.b.w.iq=C();I.b.w.prototype.ka=D("Gc");I.$&&(I.b.w.prototype.toString=function(){return"SafeStyle{"+this.Gc+"}"});I.b.w.s=function(b){if(b instanceof I.b.w&&b.constructor===I.b.w&&b.mi===I.b.w.ea)return b.Gc;I.o.ia("expected object of type SafeStyle, got '"+b+a+I.da(b));return"type_error:SafeStyle"};I.b.w.Hb=function(b){return(new I.b.w).cb(b)};
139
+ I.b.w.prototype.cb=function(b){this.Gc=b;return this};I.b.w.EMPTY=I.b.w.Hb("");I.b.w.ha="zClosurez";I.b.w.create=function(b){var c="",d;for(d in b){if(!/^[-_a-zA-Z0-9]+$/.test(d))throw Error("Name allows only [-_a-zA-Z0-9], got: "+d);var e=b[d];null!=e&&(e=I.isArray(e)?I.j.map(e,I.b.w.Wg).join(" "):I.b.w.Wg(e),c+=d+":"+e+";")}return c?I.b.w.Hb(c):I.b.w.EMPTY};
140
+ I.b.w.Wg=function(b){return b instanceof I.b.l?'url("'+I.b.l.s(b).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")':b instanceof I.f.I?I.f.I.s(b):I.b.w.ll(String(b))};
141
+ I.b.w.ll=function(b){var c=b.replace(I.b.w.Fe,"$1").replace(I.b.w.Fe,"$1").replace(I.b.w.We,"url");if(I.b.w.Ci.test(c)){if(I.b.w.Mh.test(b))return I.o.ia("String value disallows comments, got: "+b),I.b.w.ha;if(!I.b.w.Yj(b))return I.o.ia("String value requires balanced quotes, got: "+b),I.b.w.ha;if(!I.b.w.Zj(b))return I.o.ia("String value requires balanced square brackets and one identifier per pair of brackets, got: "+b),I.b.w.ha}else return I.o.ia("String value allows only "+I.b.w.Ze+" and simple functions, got: "+
142
+ b),I.b.w.ha;return I.b.w.ml(b)};I.b.w.Yj=function(b){for(var c=!0,d=!0,e=0;e<b.length;e++){var f=b.charAt(e);"'"==f&&d?c=!c:'"'==f&&c&&(d=!d)}return c&&d};I.b.w.Zj=function(b){for(var c=!0,d=/^[-_a-zA-Z0-9]$/,e=0;e<b.length;e++){var f=b.charAt(e);if("]"==f){if(c)return!1;c=!0}else if("["==f){if(!c)return!1;c=!1}else if(!c&&!d.test(f))return!1}return c};I.b.w.Ze="[-,.\"'%_!# a-zA-Z0-9\\[\\]]";I.b.w.Ci=new RegExp("^"+I.b.w.Ze+"+$");I.b.w.We=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g;
143
+ I.b.w.Fe=/\b(hsl|hsla|rgb|rgba|matrix|calc|minmax|fit-content|repeat|(rotate|scale|translate)(X|Y|Z|3d)?)\([-+*/0-9a-z.%\[\], ]+\)/g;I.b.w.Mh=/\/\*/;I.b.w.ml=function(b){return b.replace(I.b.w.We,function(b,d,e,f){var c="";e=e.replace(/^(['"])(.*)\1$/,function(b,d,e){c=d;return e});b=I.b.l.Mc(e).ka();return d+c+b+c+f})};I.b.w.concat=function(b){function c(b){I.isArray(b)?I.j.forEach(b,c):d+=I.b.w.s(b)}var d="";I.j.forEach(arguments,c);return d?I.b.w.Hb(d):I.b.w.EMPTY};I.b.S=function(){this.Fc="";this.li=I.b.S.ea};I.b.S.prototype.ya=!0;I.b.S.ea={};
144
+ I.b.S.yq=function(b,c){if(I.f.u.contains(b,"<"))throw Error("Selector does not allow '<', got: "+b);var d=b.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(d))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+b);if(!I.b.S.Xj(d))throw Error("() and [] in selector must be balanced, got: "+b);c instanceof I.b.w||(c=I.b.w.create(c));b=b+"{"+I.b.w.s(c)+"}";return I.b.S.Ib(b)};
145
+ I.b.S.Xj=function(b){for(var c={"(":")","[":"]"},d=[],e=0;e<b.length;e++){var f=b[e];if(c[f])d.push(c[f]);else if(I.object.contains(c,f)&&d.pop()!=f)return!1}return 0==d.length};I.b.S.concat=function(b){function c(b){I.isArray(b)?I.j.forEach(b,c):d+=I.b.S.s(b)}var d="";I.j.forEach(arguments,c);return I.b.S.Ib(d)};I.b.S.qc=function(b){b=I.f.I.s(b);return 0===b.length?I.b.S.EMPTY:I.b.S.Ib(b)};I.b.S.prototype.ka=D("Fc");I.$&&(I.b.S.prototype.toString=function(){return"SafeStyleSheet{"+this.Fc+"}"});
146
+ I.b.S.s=function(b){if(b instanceof I.b.S&&b.constructor===I.b.S&&b.li===I.b.S.ea)return b.Fc;I.o.ia("expected object of type SafeStyleSheet, got '"+b+a+I.da(b));return"type_error:SafeStyleSheet"};I.b.S.Ib=function(b){return(new I.b.S).cb(b)};I.b.S.prototype.cb=function(b){this.Fc=b;return this};I.b.S.EMPTY=I.b.S.Ib("");I.b.m=function(){this.Dc="";this.ji=I.b.m.ea;this.nc=null};I.b.m.prototype.Jd=!0;I.b.m.prototype.$a=D("nc");I.b.m.prototype.ya=!0;I.b.m.prototype.ka=D("Dc");I.$&&(I.b.m.prototype.toString=function(){return"SafeHtml{"+this.Dc+"}"});I.b.m.s=function(b){if(b instanceof I.b.m&&b.constructor===I.b.m&&b.ji===I.b.m.ea)return b.Dc;I.o.ia("expected object of type SafeHtml, got '"+b+a+I.da(b));return"type_error:SafeHtml"};
147
+ I.b.m.qa=function(b){if(b instanceof I.b.m)return b;var c=typeof b==v,d=null;c&&b.Jd&&(d=b.$a());return I.b.m.wa(I.f.u.qa(c&&b.ya?b.ka():String(b)),d)};I.b.m.Lr=function(b){if(b instanceof I.b.m)return b;b=I.b.m.qa(b);return I.b.m.wa(I.f.u.Wb(I.b.m.s(b)),b.$a())};I.b.m.Mr=function(b){if(b instanceof I.b.m)return b;b=I.b.m.qa(b);return I.b.m.wa(I.f.u.sh(I.b.m.s(b)),b.$a())};I.b.m.from=I.b.m.qa;I.b.m.Ye=/^[a-zA-Z0-9-]+$/;
148
+ I.b.m.zi={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};I.b.m.fi={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};I.b.m.create=function(b,c,d){I.b.m.Pl(String(b));return I.b.m.Za(String(b),c,d)};I.b.m.Pl=function(b){if(!I.b.m.Ye.test(b))throw Error("Invalid tag name <"+b+">.");if(b.toUpperCase()in I.b.m.fi)throw Error("Tag name <"+b+"> is not allowed for SafeHtml.");};
149
+ I.b.m.uq=function(b,c,d,e){b&&I.b.D.s(b);var f={};f.src=b||null;f.srcdoc=c&&I.b.m.s(c);b=I.b.m.lc(f,{sandbox:""},d);return I.b.m.Za("iframe",b,e)};I.b.m.zq=function(b,c,d,e){if(!I.b.m.Zi())throw Error("The browser does not support sandboxed iframes.");var f={};f.src=b?I.b.l.s(I.b.l.Mc(b)):null;f.srcdoc=c||null;f.sandbox="";b=I.b.m.lc(f,{},d);return I.b.m.Za("iframe",b,e)};I.b.m.Zi=function(){return I.global.HTMLIFrameElement&&"sandbox"in I.global.HTMLIFrameElement.prototype};
150
+ I.b.m.Aq=function(b,c){I.b.D.s(b);b=I.b.m.lc({src:b},{},c);return I.b.m.Za("script",b)};I.b.m.createScript=function(b,c){for(var d in c){var e=d.toLowerCase();if("language"==e||"src"==e||"text"==e||"type"==e)throw Error('Cannot set "'+e+'" attribute');}d="";b=I.j.concat(b);for(e=0;e<b.length;e++)d+=I.b.P.s(b[e]);b=I.b.m.wa(d,I.h.i.T.ua);return I.b.m.Za("script",c,b)};
151
+ I.b.m.Bq=function(b,c){c=I.b.m.lc({type:"text/css"},{},c);var d="";b=I.j.concat(b);for(var e=0;e<b.length;e++)d+=I.b.S.s(b[e]);b=I.b.m.wa(d,I.h.i.T.ua);return I.b.m.Za("style",c,b)};I.b.m.xq=function(b,c){b=I.b.l.s(I.b.l.Mc(b));(I.g.userAgent.A.yc()||I.g.userAgent.A.Ra())&&I.f.u.contains(b,";")&&(b="'"+b.replace(/'/g,"%27")+"'");return I.b.m.Za("meta",{"http-equiv":"refresh",content:(c||0)+"; url="+b})};
152
+ I.b.m.Ej=function(b,c,d){if(d instanceof I.f.I)d=I.f.I.s(d);else if("style"==c.toLowerCase())d=I.b.m.Rj(d);else{if(/^on/i.test(c))throw Error('Attribute "'+c+'" requires goog.string.Const value, "'+d+'" given.');if(c.toLowerCase()in I.b.m.zi)if(d instanceof I.b.D)d=I.b.D.s(d);else if(d instanceof I.b.l)d=I.b.l.s(d);else if(I.O(d))d=I.b.l.Mc(d).ka();else throw Error('Attribute "'+c+'" on tag "'+b+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+d+'" given.');}d.ya&&(d=d.ka());
153
+ return c+'="'+I.f.u.qa(String(d))+'"'};I.b.m.Rj=function(b){if(!I.la(b))throw Error('The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof b+" given: "+b);b instanceof I.b.w||(b=I.b.w.create(b));return I.b.w.s(b)};I.b.m.Dq=function(b,c,d,e){c=I.b.m.create(c,d,e);c.nc=b;return c};
154
+ I.b.m.concat=function(b){function c(b){I.isArray(b)?I.j.forEach(b,c):(b=I.b.m.qa(b),e+=I.b.m.s(b),b=b.$a(),d==I.h.i.T.ua?d=b:b!=I.h.i.T.ua&&d!=b&&(d=null))}var d=I.h.i.T.ua,e="";I.j.forEach(arguments,c);return I.b.m.wa(e,d)};I.b.m.qq=function(b,c){var d=I.b.m.concat(I.j.slice(arguments,1));d.nc=b;return d};I.b.m.ea={};I.b.m.wa=function(b,c){return(new I.b.m).cb(b,c)};I.b.m.prototype.cb=function(b,c){this.Dc=b;this.nc=c;return this};
155
+ I.b.m.Za=function(b,c,d){var e=null;var f="<"+b+I.b.m.xl(b,c);I.eb(d)?I.isArray(d)||(d=[d]):d=[];I.a.tags.zk(b.toLowerCase())?f+=">":(e=I.b.m.concat(d),f+=">"+I.b.m.s(e)+"</"+b+">",e=e.$a());(b=c&&c.dir)&&(e=/^(ltr|rtl|auto)$/i.test(b)?I.h.i.T.ua:null);return I.b.m.wa(f,e)};I.b.m.xl=function(b,c){var d="";if(c)for(var e in c){if(!I.b.m.Ye.test(e))throw Error('Invalid attribute name "'+e+'".');var f=c[e];I.eb(f)&&(d+=" "+I.b.m.Ej(b,e,f))}return d};
156
+ I.b.m.lc=function(b,c,d){var e={},f;for(f in b)e[f]=b[f];for(f in c)e[f]=c[f];for(f in d){var g=f.toLowerCase();if(g in b)throw Error('Cannot override "'+g+'" attribute, got "'+f+'" with value "'+d[f]+'"');g in c&&delete e[g];e[f]=d[f]}return e};I.b.m.Qm=I.b.m.wa("<!DOCTYPE html>",I.h.i.T.ua);I.b.m.EMPTY=I.b.m.wa("",I.h.i.T.ua);I.b.m.ye=I.b.m.wa("<br>",I.h.i.T.ua);I.a.J={};I.a.J.Kn={Zl:"afterbegin",$l:"afterend",pm:"beforebegin",qm:"beforeend"};I.a.J.Or=function(b,c,d){b.insertAdjacentHTML(c,I.b.m.s(d))};I.a.J.ri={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};I.a.J.mk=I.N.Yi(function(){if(I.$&&"undefined"===typeof document)return!1;var b=document.createElement("div");b.innerHTML="<div><div></div></div>";if(I.$&&!b.firstChild)return!1;var c=b.firstChild.firstChild;b.innerHTML="";return!c.parentElement});
157
+ I.a.J.Kl=function(b,c){if(I.a.J.mk())for(;b.lastChild;)b.removeChild(b.lastChild);b.innerHTML=c};I.a.J.ah=function(b,c){if(I.o.na&&I.a.J.ri[b.tagName.toUpperCase()])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+b.tagName+".");I.a.J.Kl(b,I.b.m.s(c))};I.a.J.Qt=function(b,c){b.outerHTML=I.b.m.s(c)};I.a.J.Gt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);I.a.o.Ni(b).action=I.b.l.s(c)};I.a.J.At=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);I.a.o.Mi(b).formAction=I.b.l.s(c)};
158
+ I.a.J.Mt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);I.a.o.Oi(b).formAction=I.b.l.s(c)};I.a.J.St=function(b,c){b.style.cssText=I.b.w.s(c)};I.a.J.Kq=function(b,c){b.write(I.b.m.s(c))};I.a.J.yt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.href=I.b.l.s(c)};I.a.J.Lt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.src=I.b.l.s(c)};I.a.J.zt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.src=I.b.l.s(c)};I.a.J.Wt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.src=I.b.l.s(c)};
159
+ I.a.J.Et=function(b,c){b.src=I.b.D.s(c)};I.a.J.Ht=function(b,c){b.src=I.b.D.s(c)};I.a.J.Jt=function(b,c){b.src=I.b.D.s(c)};I.a.J.Kt=function(b,c){b.srcdoc=I.b.m.s(c)};I.a.J.Nt=function(b,c,d){b.rel=d;I.f.u.jc(d,"stylesheet")?b.href=I.b.D.s(c):b.href=c instanceof I.b.D?I.b.D.s(c):c instanceof I.b.l?I.b.l.s(c):I.b.l.ta(c).ka()};I.a.J.Pt=function(b,c){b.data=I.b.D.s(c)};I.a.J.ql=function(b,c){b.src=I.b.D.s(c);(c=I.eg())&&b.setAttribute("nonce",c)};
160
+ I.a.J.Rt=function(b,c){b.text=I.b.P.s(c);(c=I.eg())&&b.setAttribute("nonce",c)};I.a.J.Ot=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.href=I.b.l.s(c)};I.a.J.Xp=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.assign(I.b.l.s(c))};I.a.J.kt=function(b,c){c=c instanceof I.b.l?c:I.b.l.ta(c);b.replace(I.b.l.s(c))};I.a.J.Us=function(b,c,d,e,f){b=b instanceof I.b.l?b:I.b.l.ta(b);return(c||window).open(I.b.l.s(b),d?I.f.I.s(d):"",e,f)};I.a.J.Ws=function(b,c){return b.parseFromString(I.b.m.s(c),"text/html")};
161
+ I.a.J.vq=function(b){if(!/^image\/.*/g.test(b.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var c=window.URL.createObjectURL(b);b=new Image;b.onload=function(){window.URL.revokeObjectURL(c)};b.src=c;return b};I.b.hb={};I.b.hb.il=function(b,c){return I.b.m.wa(c,null)};I.b.hb.rt=function(b,c){return I.b.P.Gb(c)};I.b.hb.st=function(b,c){return I.b.w.Hb(c)};I.b.hb.tt=function(b,c){return I.b.S.Ib(c)};I.b.hb.ut=function(b,c){return I.b.l.pa(c)};I.b.hb.ru=function(b,c){return I.b.D.Jb(c)};I.v={};I.v.$s=function(b){return Math.floor(Math.random()*b)};I.v.tu=function(b,c){return b+Math.random()*(c-b)};I.v.jq=function(b,c,d){return Math.min(Math.max(b,c),d)};I.v.Og=function(b,c){b%=c;return 0>b*c?b+c:b};I.v.As=function(b,c,d){return b+d*(c-b)};I.v.Ls=function(b,c,d){return Math.abs(b-c)<=(d||1E-6)};I.v.he=function(b){return I.v.Og(b,360)};I.v.cu=function(b){return I.v.Og(b,2*Math.PI)};I.v.nh=function(b){return b*Math.PI/180};I.v.Bl=function(b){return 180*b/Math.PI};
162
+ I.v.xp=function(b,c){return c*Math.cos(I.v.nh(b))};I.v.yp=function(b,c){return c*Math.sin(I.v.nh(b))};I.v.angle=function(b,c,d,e){return I.v.he(I.v.Bl(Math.atan2(e-c,d-b)))};I.v.wp=function(b,c){b=I.v.he(c)-I.v.he(b);180<b?b-=360:-180>=b&&(b=360+b);return b};I.v.sign=function(b){return 0<b?1:0>b?-1:b};
163
+ I.v.Es=function(b,c,d,e){d=d||function(b,c){return b==c};e=e||function(c){return b[c]};for(var f=b.length,g=c.length,h=[],l=0;l<f+1;l++)h[l]=[],h[l][0]=0;for(var m=0;m<g+1;m++)h[0][m]=0;for(l=1;l<=f;l++)for(m=1;m<=g;m++)d(b[l-1],c[m-1])?h[l][m]=h[l-1][m-1]+1:h[l][m]=Math.max(h[l-1][m],h[l][m-1]);var r=[];l=f;for(m=g;0<l&&0<m;)d(b[l-1],c[m-1])?(r.unshift(e(l-1,m-1)),l--,m--):h[l-1][m]>h[l][m-1]?l--:m--;return r};I.v.je=function(b){return I.j.reduce(arguments,function(b,d){return b+d},0)};
164
+ I.v.Qi=function(b){return I.v.je.apply(null,arguments)/arguments.length};I.v.kl=function(b){var c=arguments.length;if(2>c)return 0;var d=I.v.Qi.apply(null,arguments);return I.v.je.apply(null,I.j.map(arguments,function(b){return Math.pow(b-d,2)}))/(c-1)};I.v.du=function(b){return Math.sqrt(I.v.kl.apply(null,arguments))};I.v.es=function(b){return isFinite(b)&&0==b%1};I.v.cs=function(b){return isFinite(b)};I.v.ks=function(b){return 0==b&&0>1/b};
165
+ I.v.Ds=function(b){if(0<b){var c=Math.round(Math.log(b)*Math.LOG10E);return c-(parseFloat("1e"+c)>b?1:0)}return 0==b?-Infinity:NaN};I.v.pt=function(b,c){return Math.floor(b+(c||2E-15))};I.v.ot=function(b,c){return Math.ceil(b-(c||2E-15))};I.v.Y=function(b,c){this.x=I.X(b)?b:0;this.y=I.X(c)?c:0};I.v.Y.prototype.clone=function(){return new I.v.Y(this.x,this.y)};I.$&&(I.v.Y.prototype.toString=function(){return"("+this.x+", "+this.y+")"});I.v.Y.prototype.Kb=function(b){return b instanceof I.v.Y&&I.v.Y.Kb(this,b)};I.v.Y.Kb=function(b,c){return b==c?!0:b&&c?b.x==c.x&&b.y==c.y:!1};I.v.Y.Jq=function(b,c){var d=b.x-c.x;b=b.y-c.y;return Math.sqrt(d*d+b*b)};I.v.Y.Fs=function(b){return Math.sqrt(b.x*b.x+b.y*b.y)};
166
+ I.v.Y.azimuth=function(b){return I.v.angle(0,0,b.x,b.y)};I.v.Y.au=function(b,c){var d=b.x-c.x;b=b.y-c.y;return d*d+b*b};I.v.Y.Iq=function(b,c){return new I.v.Y(b.x-c.x,b.y-c.y)};I.v.Y.je=function(b,c){return new I.v.Y(b.x+c.x,b.y+c.y)};F=I.v.Y.prototype;F.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};F.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};F.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};
167
+ F.translate=function(b,c){b instanceof I.v.Y?(this.x+=b.x,this.y+=b.y):(this.x+=Number(b),I.Ub(c)&&(this.y+=c));return this};F.scale=function(b,c){c=I.Ub(c)?c:b;this.x*=b;this.y*=c;return this};I.v.nb=function(b,c){this.width=b;this.height=c};I.v.nb.Kb=function(b,c){return b==c?!0:b&&c?b.width==c.width&&b.height==c.height:!1};I.v.nb.prototype.clone=function(){return new I.v.nb(this.width,this.height)};I.$&&(I.v.nb.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});F=I.v.nb.prototype;F.aspectRatio=function(){return this.width/this.height};F.Sb=function(){return!(this.width*this.height)};
168
+ F.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};F.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};F.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};F.scale=function(b,c){c=I.Ub(c)?c:b;this.width*=b;this.height*=c;return this};I.a.Dh=!1;I.a.ue=!1;I.a.Nh=I.a.Dh||I.a.ue;I.a.zd=function(b){return b?new I.a.lb(I.a.Qa(b)):I.a.oj||(I.a.oj=new I.a.lb)};I.a.Fj=function(){return document};I.a.Ad=function(b){return I.a.Dd(document,b)};I.a.Dd=function(b,c){return I.O(c)?b.getElementById(c):c};I.a.Nj=function(b){return I.a.dg(document,b)};I.a.dg=function(b,c){return I.a.Dd(b,c)};I.a.uh=I.a.Ad;I.a.getElementsByTagName=function(b,c){return(c||document).getElementsByTagName(String(b))};
169
+ I.a.Ed=function(b,c,d){return I.a.rc(document,b,c,d)};I.a.Ij=function(b,c,d){return I.a.Cd(document,b,c,d)};I.a.Nf=function(b,c){var d=c||document;return I.a.hd(d)?d.querySelectorAll("."+b):I.a.rc(document,"*",b,c)};I.a.Bd=function(b,c){var d=c||document;return(d.getElementsByClassName?d.getElementsByClassName(b)[0]:I.a.Cd(document,"*",b,c))||null};I.a.cg=function(b,c){return I.a.Bd(b,c)};I.a.hd=function(b){return!(!b.querySelectorAll||!b.querySelector)};
170
+ I.a.rc=function(b,c,d,e){b=e||b;c=c&&"*"!=c?String(c).toUpperCase():"";if(I.a.hd(b)&&(c||d))return b.querySelectorAll(c+(d?"."+d:""));if(d&&b.getElementsByClassName){b=b.getElementsByClassName(d);if(c){e={};for(var f=0,g=0,h;h=b[g];g++)c==h.nodeName&&(e[f++]=h);e.length=f;return e}return b}b=b.getElementsByTagName(c||"*");if(d){e={};for(g=f=0;h=b[g];g++)c=h.className,typeof c.split==p&&I.j.contains(c.split(/\s+/),d)&&(e[f++]=h);e.length=f;return e}return b};
171
+ I.a.Cd=function(b,c,d,e){var f=e||b,g=c&&"*"!=c?String(c).toUpperCase():"";return I.a.hd(f)&&(g||d)?f.querySelector(g+(d?"."+d:"")):I.a.rc(b,c,d,e)[0]||null};I.a.vh=I.a.Ed;I.a.Pc=function(b,c){I.object.forEach(c,function(c,e){c&&typeof c==v&&c.ya&&(c=c.ka());"style"==e?b.style.cssText=c:"class"==e?b.className=c:"for"==e?b.htmlFor=c:I.a.Be.hasOwnProperty(e)?b.setAttribute(I.a.Be[e],c):I.f.startsWith(e,"aria-")||I.f.startsWith(e,"data-")?b.setAttribute(e,c):b[e]=c})};
172
+ I.a.Be={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};I.a.ig=function(b){return I.a.jg(b||window)};I.a.jg=function(b){b=b.document;b=I.a.Qb(b)?b.documentElement:b.body;return new I.v.nb(b.clientWidth,b.clientHeight)};I.a.Gj=function(){return I.a.xd(window)};I.a.sr=function(b){return I.a.xd(b)};
173
+ I.a.xd=function(b){var c=b.document,d=0;if(c){d=c.body;var e=c.documentElement;if(!e||!d)return 0;b=I.a.jg(b).height;if(I.a.Qb(c)&&e.scrollHeight)d=e.scrollHeight!=b?e.scrollHeight:e.offsetHeight;else{c=e.scrollHeight;var f=e.offsetHeight;e.clientHeight!=f&&(c=d.scrollHeight,f=d.offsetHeight);d=c>b?c>f?c:f:c<f?c:f}}return d};I.a.zr=function(b){return I.a.zd((b||I.global||window).document).Lf()};I.a.Lf=function(){return I.a.Mf(document)};
174
+ I.a.Mf=function(b){var c=I.a.yd(b);b=I.a.uc(b);return I.userAgent.aa&&I.userAgent.za("10")&&b.pageYOffset!=c.scrollTop?new I.v.Y(c.scrollLeft,c.scrollTop):new I.v.Y(b.pageXOffset||c.scrollLeft,b.pageYOffset||c.scrollTop)};I.a.Hj=function(){return I.a.yd(document)};I.a.yd=function(b){return b.scrollingElement?b.scrollingElement:!I.userAgent.Cb&&I.a.Qb(b)?b.documentElement:b.body||b.documentElement};I.a.rb=function(b){return b?I.a.uc(b):window};I.a.uc=function(b){return b.parentWindow||b.defaultView};
175
+ I.a.ld=function(b,c,d){return I.a.qf(document,arguments)};I.a.qf=function(b,c){var d=String(c[0]),e=c[1];if(!I.a.ib.Hh&&e&&(e.name||e.type)){d=["<",d];e.name&&d.push(' name="',I.f.qa(e.name),'"');if(e.type){d.push(' type="',I.f.qa(e.type),'"');var f={};I.object.extend(f,e);delete f.type;e=f}d.push(">");d=d.join("")}d=b.createElement(d);e&&(I.O(e)?d.className=e:I.isArray(e)?d.className=e.join(" "):I.a.Pc(d,e));2<c.length&&I.a.af(b,d,c,2);return d};
176
+ I.a.af=function(b,c,d,e){function f(d){d&&c.appendChild(I.O(d)?b.createTextNode(d):d)}for(;e<d.length;e++){var g=d[e];I.Pb(g)&&!I.a.Nd(g)?I.j.forEach(I.a.Od(g)?I.j.mh(g):g,f):f(g)}};I.a.wh=I.a.ld;I.a.createElement=function(b){return I.a.Na(document,b)};I.a.Na=function(b,c){return b.createElement(String(c))};I.a.createTextNode=function(b){return document.createTextNode(String(b))};I.a.jj=function(b,c,d){return I.a.rf(document,b,c,!!d)};
177
+ I.a.rf=function(b,c,d,e){for(var f=I.a.Na(b,"TABLE"),g=f.appendChild(I.a.Na(b,"TBODY")),h=0;h<c;h++){for(var l=I.a.Na(b,"TR"),m=0;m<d;m++){var r=I.a.Na(b,"TD");e&&I.a.ce(r,I.f.Xe.Le);l.appendChild(r)}g.appendChild(l)}return f};I.a.rq=function(b){var c=I.j.map(arguments,I.f.I.s);c=I.b.hb.il(I.f.I.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),c.join(""));return I.a.Ug(c)};I.a.Ug=function(b){return I.a.Vg(document,b)};
178
+ I.a.Vg=function(b,c){var d=I.a.Na(b,"DIV");I.a.ib.ai?(I.a.J.ah(d,I.b.m.concat(I.b.m.ye,c)),d.removeChild(d.firstChild)):I.a.J.ah(d,c);return I.a.bj(b,d)};I.a.bj=function(b,c){if(1==c.childNodes.length)return c.removeChild(c.firstChild);for(b=b.createDocumentFragment();c.firstChild;)b.appendChild(c.firstChild);return b};I.a.gk=function(){return I.a.Qb(document)};I.a.Qb=function(b){return I.a.Nh?I.a.ue:"CSS1Compat"==b.compatMode};I.a.canHaveChildren=function(b){if(b.nodeType!=I.a.ga.Ja)return!1;switch(b.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case k:case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0};
179
+ I.a.appendChild=function(b,c){b.appendChild(c)};I.a.append=function(b,c){I.a.af(I.a.Qa(b),b,arguments,1)};I.a.$d=function(b){for(var c;c=b.firstChild;)b.removeChild(c)};I.a.pg=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c)};I.a.og=function(b,c){c.parentNode&&c.parentNode.insertBefore(b,c.nextSibling)};I.a.ng=function(b,c,d){b.insertBefore(c,b.childNodes[d]||null)};I.a.removeNode=function(b){return b&&b.parentNode?b.parentNode.removeChild(b):null};
180
+ I.a.Tg=function(b,c){var d=c.parentNode;d&&d.replaceChild(b,c)};I.a.Cf=function(b){var c,d=b.parentNode;if(d&&d.nodeType!=I.a.ga.Th){if(b.removeNode)return b.removeNode(!1);for(;c=b.firstChild;)d.insertBefore(c,b);return I.a.removeNode(b)}};I.a.Jf=function(b){return I.a.ib.Ih&&void 0!=b.children?b.children:I.j.filter(b.childNodes,function(b){return b.nodeType==I.a.ga.Ja})};I.a.Of=function(b){return I.X(b.firstElementChild)?b.firstElementChild:I.a.sc(b.firstChild,!0)};
181
+ I.a.Sf=function(b){return I.X(b.lastElementChild)?b.lastElementChild:I.a.sc(b.lastChild,!1)};I.a.Uf=function(b){return I.X(b.nextElementSibling)?b.nextElementSibling:I.a.sc(b.nextSibling,!0)};I.a.ag=function(b){return I.X(b.previousElementSibling)?b.previousElementSibling:I.a.sc(b.previousSibling,!1)};I.a.sc=function(b,c){for(;b&&b.nodeType!=I.a.ga.Ja;)b=c?b.nextSibling:b.previousSibling;return b};
182
+ I.a.Vf=function(b){if(!b)return null;if(b.firstChild)return b.firstChild;for(;b&&!b.nextSibling;)b=b.parentNode;return b?b.nextSibling:null};I.a.bg=function(b){if(!b)return null;if(!b.previousSibling)return b.parentNode;for(b=b.previousSibling;b&&b.lastChild;)b=b.lastChild;return b};I.a.Nd=function(b){return I.la(b)&&0<b.nodeType};I.a.Ld=function(b){return I.la(b)&&b.nodeType==I.a.ga.Ja};I.a.Ig=function(b){return I.la(b)&&b.window==b};
183
+ I.a.$f=function(b){var c;if(I.a.ib.Jh&&!(I.userAgent.aa&&I.userAgent.za("9")&&!I.userAgent.za("10")&&I.global.SVGElement&&b instanceof I.global.SVGElement)&&(c=b.parentElement))return c;c=b.parentNode;return I.a.Ld(c)?c:null};I.a.contains=function(b,c){if(!b||!c)return!1;if(b.contains&&c.nodeType==I.a.ga.Ja)return b==c||b.contains(c);if("undefined"!=typeof b.compareDocumentPosition)return b==c||!!(b.compareDocumentPosition(c)&16);for(;c&&b!=c;)c=c.parentNode;return c==b};
184
+ I.a.kf=function(b,c){if(b==c)return 0;if(b.compareDocumentPosition)return b.compareDocumentPosition(c)&2?1:-1;if(I.userAgent.aa&&!I.userAgent.Rb(9)){if(b.nodeType==I.a.ga.$c)return-1;if(c.nodeType==I.a.ga.$c)return 1}if("sourceIndex"in b||b.parentNode&&"sourceIndex"in b.parentNode){var d=b.nodeType==I.a.ga.Ja,e=c.nodeType==I.a.ga.Ja;if(d&&e)return b.sourceIndex-c.sourceIndex;var f=b.parentNode,g=c.parentNode;return f==g?I.a.mf(b,c):!d&&I.a.contains(f,c)?-1*I.a.lf(b,c):!e&&I.a.contains(g,b)?I.a.lf(c,
185
+ b):(d?b.sourceIndex:f.sourceIndex)-(e?c.sourceIndex:g.sourceIndex)}e=I.a.Qa(b);d=e.createRange();d.selectNode(b);d.collapse(!0);b=e.createRange();b.selectNode(c);b.collapse(!0);return d.compareBoundaryPoints(I.global.Range.START_TO_END,b)};I.a.lf=function(b,c){var d=b.parentNode;if(d==c)return-1;for(;c.parentNode!=d;)c=c.parentNode;return I.a.mf(c,b)};I.a.mf=function(b,c){for(;c=c.previousSibling;)if(c==b)return-1;return 1};
186
+ I.a.yf=function(b){var c,d=arguments.length;if(!d)return null;if(1==d)return arguments[0];var e=[],f=Infinity;for(c=0;c<d;c++){for(var g=[],h=arguments[c];h;)g.unshift(h),h=h.parentNode;e.push(g);f=Math.min(f,g.length)}g=null;for(c=0;c<f;c++){h=e[0][c];for(var l=1;l<d;l++)if(h!=e[l][c])return g;g=h}return g};I.a.Qa=function(b){return b.nodeType==I.a.ga.$c?b:b.ownerDocument||b.document};I.a.Pf=function(b){return b.contentDocument||b.contentWindow.document};
187
+ I.a.Qf=function(b){try{return b.contentWindow||(b.contentDocument?I.a.rb(b.contentDocument):null)}catch(c){}return null};I.a.ce=function(b,c){if("textContent"in b)b.textContent=c;else if(b.nodeType==I.a.ga.ec)b.data=String(c);else if(b.firstChild&&b.firstChild.nodeType==I.a.ga.ec){for(;b.lastChild!=b.firstChild;)b.removeChild(b.lastChild);b.firstChild.data=String(c)}else{I.a.$d(b);var d=I.a.Qa(b);b.appendChild(d.createTextNode(String(c)))}};
188
+ I.a.Zf=function(b){if("outerHTML"in b)return b.outerHTML;var c=I.a.Qa(b);c=I.a.Na(c,"DIV");c.appendChild(b.cloneNode(!0));return c.innerHTML};I.a.zf=function(b,c){var d=[];return I.a.sd(b,c,d,!0)?d[0]:void 0};I.a.Af=function(b,c){var d=[];I.a.sd(b,c,d,!1);return d};I.a.sd=function(b,c,d,e){if(null!=b)for(b=b.firstChild;b;){if(c(b)&&(d.push(b),e)||I.a.sd(b,c,d,e))return!0;b=b.nextSibling}return!1};I.a.Ue={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};I.a.cc={IMG:" ",BR:"\n"};
189
+ I.a.Md=function(b){return I.a.lg(b)&&I.a.Gg(b)};I.a.Zg=function(b,c){c?b.tabIndex=0:(b.tabIndex=-1,b.removeAttribute("tabIndex"))};I.a.vg=function(b){var c;return(c=I.a.Tk(b)?!b.disabled&&(!I.a.lg(b)||I.a.Gg(b)):I.a.Md(b))&&I.userAgent.aa?I.a.$j(b):c};I.a.lg=function(b){return I.userAgent.aa&&!I.userAgent.za("9")?(b=b.getAttributeNode("tabindex"),I.eb(b)&&b.specified):b.hasAttribute("tabindex")};I.a.Gg=function(b){b=b.tabIndex;return I.Ub(b)&&0<=b&&32768>b};
190
+ I.a.Tk=function(b){return"A"==b.tagName||"INPUT"==b.tagName||"TEXTAREA"==b.tagName||"SELECT"==b.tagName||"BUTTON"==b.tagName};I.a.$j=function(b){b=!I.Ca(b.getBoundingClientRect)||I.userAgent.aa&&null==b.parentElement?{height:b.offsetHeight,width:b.offsetWidth}:b.getBoundingClientRect();return I.eb(b)&&0<b.height&&0<b.width};
191
+ I.a.tc=function(b){if(I.a.ib.ze&&null!==b&&"innerText"in b)b=I.f.aj(b.innerText);else{var c=[];I.a.Gd(b,c,!0);b=c.join("")}b=b.replace(/ \xAD /g," ").replace(/\xAD/g,"");b=b.replace(/\u200B/g,"");I.a.ib.ze||(b=b.replace(/ +/g," "));" "!=b&&(b=b.replace(/^\s*/,""));return b};I.a.Cr=function(b){var c=[];I.a.Gd(b,c,!1);return c.join("")};
192
+ I.a.Gd=function(b,c,d){if(!(b.nodeName in I.a.Ue))if(b.nodeType==I.a.ga.ec)d?c.push(String(b.nodeValue).replace(/(\r\n|\r|\n)/g,"")):c.push(b.nodeValue);else if(b.nodeName in I.a.cc)c.push(I.a.cc[b.nodeName]);else for(b=b.firstChild;b;)I.a.Gd(b,c,d),b=b.nextSibling};I.a.Xf=function(b){return I.a.tc(b).length};I.a.Yf=function(b,c){c=c||I.a.Qa(b).body;for(var d=[];b&&b!=c;){for(var e=b;e=e.previousSibling;)d.unshift(I.a.tc(e));b=b.parentNode}return I.f.trimLeft(d.join("")).replace(/ +/g," ").length};
193
+ I.a.Wf=function(b,c,d){b=[b];for(var e=0,f=null;0<b.length&&e<c;)if(f=b.pop(),!(f.nodeName in I.a.Ue))if(f.nodeType==I.a.ga.ec){var g=f.nodeValue.replace(/(\r\n|\r|\n)/g,"").replace(/ +/g," ");e+=g.length}else if(f.nodeName in I.a.cc)e+=I.a.cc[f.nodeName].length;else for(g=f.childNodes.length-1;0<=g;g--)b.push(f.childNodes[g]);I.la(d)&&(d.ct=f?f.nodeValue.length+c-e-1:0,d.node=f);return f};
194
+ I.a.Od=function(b){if(b&&typeof b.length==u){if(I.la(b))return typeof b.item==p||typeof b.item==y;if(I.Ca(b))return typeof b.item==p}return!1};I.a.vd=function(b,c,d,e){if(!c&&!d)return null;var f=c?String(c).toUpperCase():null;return I.a.ud(b,function(b){return(!f||b.nodeName==f)&&(!d||I.O(b.className)&&I.j.contains(b.className.split(/\s+/),d))},!0,e)};I.a.Gf=function(b,c,d){return I.a.vd(b,null,c,d)};
195
+ I.a.ud=function(b,c,d,e){b&&!d&&(b=b.parentNode);for(d=0;b&&(null==e||d<=e);){if(c(b))return b;b=b.parentNode;d++}return null};I.a.Ff=function(b){try{var c=b&&b.activeElement;return c&&c.nodeName?c:null}catch(d){return null}};I.a.Ar=function(){var b=I.a.rb();return I.X(b.devicePixelRatio)?b.devicePixelRatio:b.matchMedia?I.a.Ac(3)||I.a.Ac(2)||I.a.Ac(1.5)||I.a.Ac(1)||.75:1};
196
+ I.a.Ac=function(b){return I.a.rb().matchMedia("(min-resolution: "+b+"dppx),(min--moz-device-pixel-ratio: "+b+"),(min-resolution: "+96*b+"dpi)").matches?b:0};I.a.If=function(b){return b.getContext("2d")};I.a.lb=function(b){this.Z=b||I.global.document||document};F=I.a.lb.prototype;F.zd=I.a.zd;F.Fj=D("Z");F.Ad=function(b){return I.a.Dd(this.Z,b)};F.Nj=function(b){return I.a.dg(this.Z,b)};F.uh=I.a.lb.prototype.Ad;F.getElementsByTagName=function(b,c){return(c||this.Z).getElementsByTagName(String(b))};
197
+ F.Ed=function(b,c,d){return I.a.rc(this.Z,b,c,d)};F.Ij=function(b,c,d){return I.a.Cd(this.Z,b,c,d)};F.Nf=function(b,c){return I.a.Nf(b,c||this.Z)};F.Bd=function(b,c){return I.a.Bd(b,c||this.Z)};F.cg=function(b,c){return I.a.cg(b,c||this.Z)};F.vh=I.a.lb.prototype.Ed;F.Pc=I.a.Pc;F.ig=function(b){return I.a.ig(b||this.rb())};F.Gj=function(){return I.a.xd(this.rb())};F.ld=function(b,c,d){return I.a.qf(this.Z,arguments)};F.wh=I.a.lb.prototype.ld;F.createElement=function(b){return I.a.Na(this.Z,b)};
198
+ F.createTextNode=function(b){return this.Z.createTextNode(String(b))};F.jj=function(b,c,d){return I.a.rf(this.Z,b,c,!!d)};F.Ug=function(b){return I.a.Vg(this.Z,b)};F.gk=function(){return I.a.Qb(this.Z)};F.rb=function(){return I.a.uc(this.Z)};F.Hj=function(){return I.a.yd(this.Z)};F.Lf=function(){return I.a.Mf(this.Z)};F.Ff=function(b){return I.a.Ff(b||this.Z)};F.appendChild=I.a.appendChild;F.append=I.a.append;F.canHaveChildren=I.a.canHaveChildren;F.$d=I.a.$d;F.pg=I.a.pg;F.og=I.a.og;F.ng=I.a.ng;
199
+ F.removeNode=I.a.removeNode;F.Tg=I.a.Tg;F.Cf=I.a.Cf;F.Jf=I.a.Jf;F.Of=I.a.Of;F.Sf=I.a.Sf;F.Uf=I.a.Uf;F.ag=I.a.ag;F.Vf=I.a.Vf;F.bg=I.a.bg;F.Nd=I.a.Nd;F.Ld=I.a.Ld;F.Ig=I.a.Ig;F.$f=I.a.$f;F.contains=I.a.contains;F.kf=I.a.kf;F.yf=I.a.yf;F.Qa=I.a.Qa;F.Pf=I.a.Pf;F.Qf=I.a.Qf;F.ce=I.a.ce;F.Zf=I.a.Zf;F.zf=I.a.zf;F.Af=I.a.Af;F.Md=I.a.Md;F.Zg=I.a.Zg;F.vg=I.a.vg;F.tc=I.a.tc;F.Xf=I.a.Xf;F.Yf=I.a.Yf;F.Wf=I.a.Wf;F.Od=I.a.Od;F.vd=I.a.vd;F.Gf=I.a.Gf;F.ud=I.a.ud;F.If=I.a.If;I.Sg={};I.Sg.Bo=C();I.Thenable=C();I.Thenable.prototype.then=C();I.Thenable.Ie="$goog_Thenable";I.Thenable.$e=function(b){b.prototype[I.Thenable.Ie]=!0};I.Thenable.wg=function(b){if(!b)return!1;try{return!!b[I.Thenable.Ie]}catch(c){return!1}};I.Promise=function(b,c){this.ca=I.Promise.U.Aa;this.ma=void 0;this.ob=this.Ma=this.fa=null;this.qd=!1;0<I.Promise.Wa?this.Sc=0:0==I.Promise.Wa&&(this.vc=!1);I.Promise.Ea&&(this.ge=[],L(this,Error("created")),this.tf=0);if(b!=I.fb)try{var d=this;b.call(c,function(b){M(d,I.Promise.U.Ka,b)},function(b){if(I.$&&!(b instanceof I.Promise.kb))try{if(b instanceof Error)throw b;throw Error("Promise rejected.");}catch(f){}M(d,I.Promise.U.oa,b)})}catch(e){M(this,I.Promise.U.oa,e)}};I.Promise.Ea=!1;
200
+ I.Promise.Wa=0;I.Promise.U={Aa:0,Fh:1,Ka:2,oa:3};I.Promise.Ae=function(){this.next=this.context=this.ub=this.Xb=this.Xa=null;this.fc=!1};I.Promise.Ae.prototype.reset=function(){this.context=this.ub=this.Xb=this.Xa=null;this.fc=!1};I.Promise.Zc=100;I.Promise.Mb=new I.async.ac(function(){return new I.Promise.Ae},function(b){b.reset()},I.Promise.Zc);I.Promise.Hf=function(b,c,d){var e=I.Promise.Mb.get();e.Xb=b;e.ub=c;e.context=d;return e};I.Promise.al=function(b){I.Promise.Mb.put(b)};
201
+ I.Promise.resolve=function(b){if(b instanceof I.Promise)return b;var c=new I.Promise(I.fb);M(c,I.Promise.U.Ka,b);return c};I.Promise.reject=function(b){return new I.Promise(function(c,d){d(b)})};I.Promise.Kc=function(b,c,d){I.Promise.Ng(b,c,d,null)||I.async.R(I.gb(c,b))};I.Promise.race=function(b){return new I.Promise(function(c,d){b.length||c(void 0);for(var e=0,f;e<b.length;e++)f=b[e],I.Promise.Kc(f,c,d)})};
202
+ I.Promise.all=function(b){return new I.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b,d){e--;f[b]=d;0==e&&c(f)},h=function(b){d(b)},l=0,m;l<b.length;l++)m=b[l],I.Promise.Kc(m,I.gb(g,l),h);else c(f)})};I.Promise.vp=function(b){return new I.Promise(function(c){var d=b.length,e=[];if(d)for(var f=function(b,f,g){d--;e[b]=f?{Dj:!0,value:g}:{Dj:!1,reason:g};0==d&&c(e)},g=0,h;g<b.length;g++)h=b[g],I.Promise.Kc(h,I.gb(f,g,!0),I.gb(f,g,!1));else c(e)})};
203
+ I.Promise.Wq=function(b){return new I.Promise(function(c,d){var e=b.length,f=[];if(e)for(var g=function(b){c(b)},h=function(b,c){e--;f[b]=c;0==e&&d(f)},l=0,m;l<b.length;l++)m=b[l],I.Promise.Kc(m,g,I.gb(h,l));else c(void 0)})};I.Promise.zu=function(){var b,c,d=new I.Promise(function(d,f){b=d;c=f});return new I.Promise.ii(d,b,c)};I.Promise.prototype.then=function(b,c,d){I.Promise.Ea&&L(this,Error("then"));return ca(this,I.Ca(b)?b:null,I.Ca(c)?c:null,d)};I.Thenable.$e(I.Promise);
204
+ I.Promise.prototype.cancel=function(b){this.ca==I.Promise.U.Aa&&I.async.R(function(){var c=new I.Promise.kb(b);N(this,c)},this)};function N(b,c){if(b.ca==I.Promise.U.Aa)if(b.fa){var d=b.fa;if(d.Ma){for(var e=0,f=null,g=null,h=d.Ma;h&&(h.fc||(e++,h.Xa==b&&(f=h),!(f&&1<e)));h=h.next)f||(g=h);f&&(d.ca==I.Promise.U.Aa&&1==e?N(d,c):(g?(e=g,e.next==d.ob&&(d.ob=e),e.next=e.next.next):O(d),P(d,f,I.Promise.U.oa,c)))}b.fa=null}else M(b,I.Promise.U.oa,c)}
205
+ function Q(b,c){b.Ma||b.ca!=I.Promise.U.Ka&&b.ca!=I.Promise.U.oa||R(b);b.ob?b.ob.next=c:b.Ma=c;b.ob=c}function ca(b,c,d,e){var f=I.Promise.Hf(null,null,null);f.Xa=new I.Promise(function(b,h){f.Xb=c?function(d){try{var f=c.call(e,d);b(f)}catch(r){h(r)}}:b;f.ub=d?function(c){try{var f=d.call(e,c);!I.X(f)&&c instanceof I.Promise.kb?h(c):b(f)}catch(r){h(r)}}:h});f.Xa.fa=b;Q(b,f);return f.Xa}I.Promise.prototype.Fl=function(b){this.ca=I.Promise.U.Aa;M(this,I.Promise.U.Ka,b)};
206
+ I.Promise.prototype.Gl=function(b){this.ca=I.Promise.U.Aa;M(this,I.Promise.U.oa,b)};function M(b,c,d){b.ca==I.Promise.U.Aa&&(b===d&&(c=I.Promise.U.oa,d=new TypeError("Promise cannot resolve to itself")),b.ca=I.Promise.U.Fh,I.Promise.Ng(d,b.Fl,b.Gl,b)||(b.ma=d,b.ca=c,b.fa=null,R(b),c!=I.Promise.U.oa||d instanceof I.Promise.kb||I.Promise.Gi(b,d)))}
207
+ I.Promise.Ng=function(b,c,d,e){if(b instanceof I.Promise)return I.Promise.Ea&&L(b,Error("then")),Q(b,I.Promise.Hf(c||I.fb,d||null,e)),!0;if(I.Thenable.wg(b))return b.then(c,d,e),!0;if(I.la(b))try{var f=b.then;if(I.Ca(f))return I.Promise.Dl(b,f,c,d,e),!0}catch(g){return d.call(e,g),!0}return!1};I.Promise.Dl=function(b,c,d,e,f){function g(b){l||(l=!0,e.call(f,b))}function h(b){l||(l=!0,d.call(f,b))}var l=!1;try{c.call(b,h,g)}catch(m){g(m)}};function R(b){b.qd||(b.qd=!0,I.async.R(b.xj,b))}
208
+ function O(b){var c=null;b.Ma&&(c=b.Ma,b.Ma=c.next,c.next=null);b.Ma||(b.ob=null);return c}I.Promise.prototype.xj=function(){for(var b;b=O(this);)I.Promise.Ea&&this.tf++,P(this,b,this.ca,this.ma);this.qd=!1};
209
+ function P(b,c,d,e){if(d==I.Promise.U.oa&&c.ub&&!c.fc)if(0<I.Promise.Wa)for(;b&&b.Sc;b=b.fa)I.global.clearTimeout(b.Sc),b.Sc=0;else if(0==I.Promise.Wa)for(;b&&b.vc;b=b.fa)b.vc=!1;if(c.Xa)c.Xa.fa=null,I.Promise.rg(c,d,e);else try{c.fc?c.Xb.call(c.context):I.Promise.rg(c,d,e)}catch(f){I.Promise.wc.call(null,f)}I.Promise.al(c)}I.Promise.rg=function(b,c,d){c==I.Promise.U.Ka?b.Xb.call(b.context,d):b.ub&&b.ub.call(b.context,d)};
210
+ function L(b,c){if(I.Promise.Ea&&I.O(c.stack)){var d=c.stack.split("\n",4)[3];c=c.message;c+=Array(11-c.length).join(" ");b.ge.push(c+d)}}function S(b,c){if(I.Promise.Ea&&c&&I.O(c.stack)&&b.ge.length){for(var d=["Promise trace:"],e=b;e;e=e.fa){for(var f=b.tf;0<=f;f--)d.push(e.ge[f]);d.push("Value: ["+(e.ca==I.Promise.U.oa?"REJECTED":"FULFILLED")+"] <"+String(e.ma)+">")}c.stack+="\n\n"+d.join("\n")}}
211
+ I.Promise.Gi=function(b,c){0<I.Promise.Wa?b.Sc=I.global.setTimeout(function(){S(b,c);I.Promise.wc.call(null,c)},I.Promise.Wa):0==I.Promise.Wa&&(b.vc=!0,I.async.R(function(){b.vc&&(S(b,c),I.Promise.wc.call(null,c))}))};I.Promise.wc=I.async.jh;I.Promise.Ut=function(b){I.Promise.wc=b};I.Promise.kb=function(b){I.debug.Error.call(this,b)};I.bb(I.Promise.kb,I.debug.Error);I.Promise.kb.prototype.name="cancel";I.Promise.ii=function(b,c,d){this.Sg=b;this.resolve=c;this.reject=d};/*
212
+ Portions of this code are from MochiKit, received by
213
+ The Closure Authors under the MIT license. All other code is Copyright
214
+ 2005-2009 The Closure Authors. All Rights Reserved.
215
+ */
216
+ I.async.C=function(b,c){this.Oc=[];this.Rg=b;this.uf=c||null;this.sb=this.pb=!1;this.ma=void 0;this.de=this.Vi=this.gd=!1;this.Rc=0;this.fa=null;this.gc=0;I.async.C.Ea&&(this.kd=null,Error.captureStackTrace&&(b={stack:""},Error.captureStackTrace(b,I.async.C),typeof b.stack==y&&(this.kd=b.stack.replace(/^[^\n]*\n/,""))))};I.async.C.ti=!1;I.async.C.Ea=!1;F=I.async.C.prototype;
217
+ F.cancel=function(b){if(this.pb)this.ma instanceof I.async.C&&this.ma.cancel();else{if(this.fa){var c=this.fa;delete this.fa;b?c.cancel(b):(c.gc--,0>=c.gc&&c.cancel())}this.Rg?this.Rg.call(this.uf,this):this.de=!0;this.pb||this.Pa(new I.async.C.jb(this))}};F.pf=function(b,c){this.gd=!1;T(this,b,c)};function T(b,c,d){b.pb=!0;b.ma=d;b.sb=!c;U(b)}function V(b){if(b.pb){if(!b.de)throw new I.async.C.Yb(b);b.de=!1}}F.Eb=function(b){V(this);T(this,!0,b)};F.Pa=function(b){V(this);W(this,b);T(this,!1,b)};
218
+ function W(b,c){I.async.C.Ea&&b.kd&&I.la(c)&&c.stack&&/^[^\n]+(\n [^\n]+)+/.test(c.stack)&&(c.stack=c.stack+"\nDEFERRED OPERATION:\n"+b.kd)}function X(b,c,d){return Y(b,c,null,d)}function da(b,c){Y(b,null,c,void 0)}function Y(b,c,d,e){b.Oc.push([c,d,e]);b.pb&&U(b);return b}F.then=function(b,c,d){var e,f,g=new I.Promise(function(b,c){e=b;f=c});Y(this,e,function(b){b instanceof I.async.C.jb?g.cancel():f(b)});return g.then(b,c,d)};I.Thenable.$e(I.async.C);
219
+ I.async.C.prototype.Xi=function(){var b=new I.async.C;Y(this,b.Eb,b.Pa,b);b.fa=this;this.gc++;return b};function Z(b){return I.j.some(b.Oc,function(b){return I.Ca(b[1])})}
220
+ function U(b){b.Rc&&b.pb&&Z(b)&&(I.async.C.Ll(b.Rc),b.Rc=0);b.fa&&(b.fa.gc--,delete b.fa);for(var c=b.ma,d=!1,e=!1;b.Oc.length&&!b.gd;){var f=b.Oc.shift(),g=f[0],h=f[1];f=f[2];if(g=b.sb?h:g)try{var l=g.call(f||b.uf,c);I.X(l)&&(b.sb=b.sb&&(l==c||l instanceof Error),b.ma=c=l);if(I.Thenable.wg(c)||typeof I.global.Promise===p&&c instanceof I.global.Promise)e=!0,b.gd=!0}catch(m){c=m,b.sb=!0,W(b,c),Z(b)||(d=!0)}}b.ma=c;e?(e=I.bind(b.pf,b,!0),l=I.bind(b.pf,b,!1),c instanceof I.async.C?(Y(c,e,l),c.Vi=!0):
221
+ c.then(e,l)):I.async.C.ti&&c instanceof Error&&!(c instanceof I.async.C.jb)&&(d=b.sb=!0);d&&(b.Rc=I.async.C.nl(c))}I.async.C.hh=function(b){var c=new I.async.C;c.Eb(b);return c};I.async.C.gr=function(b){var c=new I.async.C;b.then(function(b){c.Eb(b)},function(b){c.Pa(b)});return c};I.async.C.ia=function(b){var c=new I.async.C;c.Pa(b);return c};I.async.C.fq=function(){var b=new I.async.C;b.cancel();return b};
222
+ I.async.C.yu=function(b,c,d){return b instanceof I.async.C?X(b.Xi(),c,d):X(I.async.C.hh(b),c,d)};I.async.C.Yb=function(){I.debug.Error.call(this)};I.bb(I.async.C.Yb,I.debug.Error);I.async.C.Yb.prototype.message="Deferred has already fired";I.async.C.Yb.prototype.name="AlreadyCalledError";I.async.C.jb=function(){I.debug.Error.call(this)};I.bb(I.async.C.jb,I.debug.Error);I.async.C.jb.prototype.message="Deferred was canceled";I.async.C.jb.prototype.name="CanceledError";
223
+ I.async.C.Ee=function(b){this.Ob=I.global.setTimeout(I.bind(this.ih,this),0);this.vj=b};I.async.C.Ee.prototype.ih=function(){delete I.async.C.Lb[this.Ob];throw this.vj;};I.async.C.Lb={};I.async.C.nl=function(b){b=new I.async.C.Ee(b);I.async.C.Lb[b.Ob]=b;return b.Ob};I.async.C.Ll=function(b){var c=I.async.C.Lb[b];c&&(I.global.clearTimeout(c.Ob),delete I.async.C.Lb[b])};I.async.C.Sp=function(){var b=I.async.C.Lb,c;for(c in b){var d=b[c];I.global.clearTimeout(d.Ob);d.ih()}};I.G={};I.G.H={};I.G.H.bd="closure_verification";I.G.H.Qh=5E3;I.G.H.be=[];I.G.H.jl=function(b,c){function d(){var e=b.shift();e=I.G.H.Lc(e,c);b.length&&Y(e,d,d,void 0);return e}if(!b.length)return I.async.C.hh(null);var e=I.G.H.be.length;I.j.extend(I.G.H.be,b);if(e)return I.G.H.Xg;b=I.G.H.be;I.G.H.Xg=d();return I.G.H.Xg};
224
+ I.G.H.Lc=function(b,c){var d=c||{};c=d.document||document;var e=I.b.D.s(b),f=I.a.createElement(k),g={Yg:f,lh:void 0},h=new I.async.C(I.G.H.$i,g),l=null,m=I.eb(d.timeout)?d.timeout:I.G.H.Qh;0<m&&(l=window.setTimeout(function(){I.G.H.kc(f,!0);h.Pa(new I.G.H.Error(I.G.H.$b.TIMEOUT,"Timeout reached for loading script "+e))},m),g.lh=l);f.onload=f.onreadystatechange=function(){f.readyState&&"loaded"!=f.readyState&&"complete"!=f.readyState||(I.G.H.kc(f,d.kq||!1,l),h.Eb(null))};f.onerror=function(){I.G.H.kc(f,
225
+ !0,l);h.Pa(new I.G.H.Error(I.G.H.$b.bi,"Error while loading script "+e))};g=d.attributes||{};I.object.extend(g,{type:z,charset:"UTF-8"});I.a.Pc(f,g);I.a.J.ql(f,b);I.G.H.Pj(c).appendChild(f);return h};
226
+ I.G.H.qt=function(b,c,d){I.global[I.G.H.bd]||(I.global[I.G.H.bd]={});var e=I.global[I.G.H.bd],f=I.b.D.s(b);if(I.X(e[c]))return I.async.C.ia(new I.G.H.Error(I.G.H.$b.Ei,"Verification object "+c+" already defined."));b=I.G.H.Lc(b,d);var g=new I.async.C(I.bind(b.cancel,b));X(b,function(){var b=e[c];I.X(b)?(g.Eb(b),delete e[c]):g.Pa(new I.G.H.Error(I.G.H.$b.Di,"Script "+f+" loaded, but verification object "+c+" was not defined."))});da(b,function(b){I.X(e[c])&&delete e[c];g.Pa(b)});return g};
227
+ I.G.H.Pj=function(b){var c=I.a.getElementsByTagName("HEAD",b);return!c||I.j.Sb(c)?b.documentElement:c[0]};I.G.H.$i=function(){if(this&&this.Yg){var b=this.Yg;b&&b.tagName==k&&I.G.H.kc(b,!0,this.lh)}};I.G.H.kc=function(b,c,d){I.eb(d)&&I.global.clearTimeout(d);b.onload=I.fb;b.onerror=I.fb;b.onreadystatechange=I.fb;c&&window.setTimeout(function(){I.a.removeNode(b)},0)};I.G.H.$b={bi:0,TIMEOUT:1,Di:2,Ei:3};
228
+ I.G.H.Error=function(b,c){var d="Jsloader error (code #"+b+")";c&&(d+=": "+c);I.debug.Error.call(this,d);this.code=b};I.bb(I.G.H.Error,I.debug.Error);var google={F:{}};google.F.L={};google.F.L.Fa={};google.F.L.Fa.kh=3E4;google.F.L.Fa.Gs=function(b,c){return{format:b,Hi:c}};google.F.L.Fa.Sj=function(b){return I.b.D.format(b.format,b.Hi)};google.F.L.Fa.load=function(b,c){b=I.b.D.format(b,c);var d=I.G.H.Lc(b,{timeout:google.F.L.Fa.kh,attributes:{async:!1,defer:!1}});return new Promise(function(b){X(d,b)})};
229
+ google.F.L.Fa.Bs=function(b){b=I.j.map(b,google.F.L.Fa.Sj);if(I.j.Sb(b))return Promise.resolve();var c={timeout:google.F.L.Fa.kh,attributes:{async:!1,defer:!1}},d=[];!I.userAgent.aa||I.userAgent.za(11)?I.j.forEach(b,function(b){d.push(I.G.H.Lc(b,c))}):d.push(I.G.H.jl(b,c));return Promise.all(I.j.map(d,function(b){return new Promise(function(c){return X(b,c)})}))};google.F.L.V={};if(I.ab(q))throw Error("Google Charts loader.js can only be loaded once.");google.F.L.V.Ql={1:"1.0","1.0":"current","1.1":"upcoming",41:w,42:w,43:w,44:w,46:"46.1","46.1":"46.2",previous:"45.2",current:"46",upcoming:"46.2"};google.F.L.V.Ok=function(b){var c=b,d=b.match(/^testing-/);d&&(c=c.replace(/^testing-/,""));b=c;do{var e=google.F.L.V.Ql[c];e&&(c=e)}while(e);d=(d?"testing-":"")+c;return{version:c==w?b:d,Hk:d}};google.F.L.V.rh=null;
230
+ google.F.L.V.Gk=function(b){var c=google.F.L.V.Ok(b),d=I.f.I.from("https://www.gstatic.com/charts/%{version}/loader.js");return google.F.L.Fa.load(d,{version:c.Hk}).then(function(){var d=I.ab("google.charts.loader.VersionSpecific.load")||I.ab("google.charts.loader.publicLoad")||I.ab("google.charts.versionSpecific.load");if(!d)throw Error("Bad version: "+b);google.F.L.V.rh=function(b){b=d(c.version,b);if(null==b||null==b.then){var e=I.ab("google.charts.loader.publicSetOnLoadCallback")||I.ab("google.charts.versionSpecific.setOnLoadCallback");
231
+ b=new Promise(function(b){e(b)});b.then=e}return b}})};google.F.L.V.Qd=null;google.F.L.V.mc=null;google.F.L.V.Ek=function(b,c){if(!google.F.L.V.Qd){if(c.enableUrlSettings&&window.URLSearchParams)try{b=(new URLSearchParams(top.location.search)).get("charts-version")||b}catch(d){console.info("Failed to get charts-version from top URL",d)}google.F.L.V.Qd=google.F.L.V.Gk(b)}return google.F.L.V.mc=google.F.L.V.Qd.then(function(){return google.F.L.V.rh(c)})};
232
+ google.F.L.V.pl=function(b){if(!google.F.L.V.mc)throw Error("Must call google.charts.load before google.charts.setOnLoadCallback");return b?google.F.L.V.mc.then(b):google.F.L.V.mc};google.F.load=function(b){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];d=0;"visualization"===c[d]&&d++;var e="current";I.O(c[d])&&(e=c[d],d++);var f={};I.la(c[d])&&(f=c[d]);return google.F.L.V.Ek(e,f)};I.pc(q,google.F.load);
233
+ google.F.Wj=function(b){for(var c=[],d=0;d<arguments.length;++d)c[d-0]=arguments[d];if("visualization"!==c[0])throw Error('Module "'+c[0]+'" is not supported.');google.F.load.apply(google.F,H.Ii(c))};google.F.bh=google.F.L.V.pl;I.pc("google.charts.setOnLoadCallback",google.F.bh);I.ab("google.load")||(I.pc("google.load",google.F.Wj),I.pc("google.setOnLoadCallback",google.F.bh));}).call(this);
js/vendor/jquery-ui/jquery-ui.css CHANGED
@@ -1,8 +1,8 @@
1
- /*! jQuery UI - v1.11.4 - 2015-03-11
2
  * http://jqueryui.com
3
- * Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
 
7
  /* Layout helpers
8
  ----------------------------------*/
@@ -38,9 +38,6 @@
38
  .ui-helper-clearfix:after {
39
  clear: both;
40
  }
41
- .ui-helper-clearfix {
42
- min-height: 0; /* support: IE7 */
43
- }
44
  .ui-helper-zfix {
45
  width: 100%;
46
  height: 100%;
@@ -60,20 +57,27 @@
60
  ----------------------------------*/
61
  .ui-state-disabled {
62
  cursor: default !important;
 
63
  }
64
 
65
 
66
  /* Icons
67
  ----------------------------------*/
68
-
69
- /* states and images */
70
  .ui-icon {
71
- display: block;
 
 
 
72
  text-indent: -99999px;
73
  overflow: hidden;
74
  background-repeat: no-repeat;
75
  }
76
 
 
 
 
 
 
77
 
78
  /* Misc visuals
79
  ----------------------------------*/
@@ -92,21 +96,8 @@
92
  position: relative;
93
  margin: 2px 0 0 0;
94
  padding: .5em .5em .5em .7em;
95
- min-height: 0; /* support: IE7 */
96
  font-size: 100%;
97
  }
98
- .ui-accordion .ui-accordion-icons {
99
- padding-left: 2.2em;
100
- }
101
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
102
- padding-left: 2.2em;
103
- }
104
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
105
- position: absolute;
106
- left: .5em;
107
- top: 50%;
108
- margin-top: -8px;
109
- }
110
  .ui-accordion .ui-accordion-content {
111
  padding: 1em 2.2em;
112
  border-top: 0;
@@ -118,17 +109,78 @@
118
  left: 0;
119
  cursor: default;
120
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  .ui-button {
 
122
  display: inline-block;
123
  position: relative;
124
- padding: 0;
125
  line-height: normal;
126
  margin-right: .1em;
127
  cursor: pointer;
128
  vertical-align: middle;
129
  text-align: center;
130
- overflow: visible; /* removes extra width in IE */
 
 
 
 
 
 
131
  }
 
132
  .ui-button,
133
  .ui-button:link,
134
  .ui-button:visited,
@@ -136,91 +188,129 @@
136
  .ui-button:active {
137
  text-decoration: none;
138
  }
 
139
  /* to make room for the icon, a width needs to be set here */
140
  .ui-button-icon-only {
141
- width: 2.2em;
142
- }
143
- /* button elements seem to need a little more width */
144
- button.ui-button-icon-only {
145
- width: 2.4em;
146
  }
147
- .ui-button-icons-only {
148
- width: 3.4em;
 
 
149
  }
150
- button.ui-button-icons-only {
151
- width: 3.7em;
 
 
 
 
 
 
152
  }
153
 
154
- /* button text element */
155
- .ui-button .ui-button-text {
156
- display: block;
157
- line-height: normal;
 
 
 
158
  }
159
- .ui-button-text-only .ui-button-text {
 
 
 
 
 
160
  padding: .4em 1em;
161
  }
162
- .ui-button-icon-only .ui-button-text,
163
- .ui-button-icons-only .ui-button-text {
164
- padding: .4em;
165
- text-indent: -9999999px;
 
 
 
 
 
 
 
166
  }
167
- .ui-button-text-icon-primary .ui-button-text,
168
- .ui-button-text-icons .ui-button-text {
169
- padding: .4em 1em .4em 2.1em;
 
170
  }
171
- .ui-button-text-icon-secondary .ui-button-text,
172
- .ui-button-text-icons .ui-button-text {
173
- padding: .4em 2.1em .4em 1em;
 
 
 
 
 
 
 
 
174
  }
175
- .ui-button-text-icons .ui-button-text {
176
- padding-left: 2.1em;
177
- padding-right: 2.1em;
178
  }
179
- /* no icon support for input elements, provide padding by default */
180
- input.ui-button {
181
  padding: .4em 1em;
182
  }
183
-
184
- /* button icon element(s) */
185
- .ui-button-icon-only .ui-icon,
186
- .ui-button-text-icon-primary .ui-icon,
187
- .ui-button-text-icon-secondary .ui-icon,
188
- .ui-button-text-icons .ui-icon,
189
- .ui-button-icons-only .ui-icon {
190
- position: absolute;
191
- top: 50%;
192
- margin-top: -8px;
193
  }
194
- .ui-button-icon-only .ui-icon {
195
- left: 50%;
196
- margin-left: -8px;
197
  }
198
- .ui-button-text-icon-primary .ui-button-icon-primary,
199
- .ui-button-text-icons .ui-button-icon-primary,
200
- .ui-button-icons-only .ui-button-icon-primary {
201
- left: .5em;
202
  }
203
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
204
- .ui-button-text-icons .ui-button-icon-secondary,
205
- .ui-button-icons-only .ui-button-icon-secondary {
206
- right: .5em;
207
  }
 
 
 
 
 
 
208
 
209
- /* button sets */
210
- .ui-buttonset {
211
- margin-right: 7px;
212
  }
213
- .ui-buttonset .ui-button {
214
- margin-left: 0;
215
- margin-right: -.3em;
216
  }
217
 
218
- /* workarounds */
219
- /* reset extra padding in Firefox, see h5bp.com/l */
220
- input.ui-button::-moz-focus-inner,
221
- button.ui-button::-moz-focus-inner {
222
- border: 0;
223
- padding: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  }
225
  .ui-datepicker {
226
  width: 17em;
@@ -387,8 +477,17 @@ button.ui-button::-moz-focus-inner {
387
  border-right-width: 0;
388
  border-left-width: 1px;
389
  }
390
- .ui-dialog {
 
 
 
 
391
  overflow: hidden;
 
 
 
 
 
392
  position: absolute;
393
  top: 0;
394
  left: 0;
@@ -437,90 +536,51 @@ button.ui-button::-moz-focus-inner {
437
  margin: .5em .4em .5em 0;
438
  cursor: pointer;
439
  }
440
- .ui-dialog .ui-resizable-se {
441
- width: 12px;
442
- height: 12px;
443
- right: -5px;
444
- bottom: -5px;
445
- background-position: 16px 16px;
446
- }
447
- .ui-draggable .ui-dialog-titlebar {
448
- cursor: move;
449
- }
450
- .ui-draggable-handle {
451
- -ms-touch-action: none;
452
- touch-action: none;
453
- }
454
- .ui-menu {
455
- list-style: none;
456
- padding: 0;
457
- margin: 0;
458
- display: block;
459
- outline: none;
460
- }
461
- .ui-menu .ui-menu {
462
- position: absolute;
463
  }
464
- .ui-menu .ui-menu-item {
465
- position: relative;
466
- margin: 0;
467
- padding: 3px 1em 3px .4em;
468
- cursor: pointer;
469
- min-height: 0; /* support: IE7 */
470
- /* support: IE10, see #8844 */
471
- list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
472
  }
473
- .ui-menu .ui-menu-divider {
474
- margin: 5px 0;
475
- height: 0;
476
- font-size: 0;
477
- line-height: 0;
478
- border-width: 1px 0 0 0;
479
  }
480
- .ui-menu .ui-state-focus,
481
- .ui-menu .ui-state-active {
482
- margin: -1px;
483
  }
484
-
485
- /* icon support */
486
- .ui-menu-icons {
487
- position: relative;
 
 
488
  }
489
- .ui-menu-icons .ui-menu-item {
490
- padding-left: 2em;
 
491
  }
492
-
493
- /* left-aligned */
494
- .ui-menu .ui-icon {
495
- position: absolute;
496
- top: 0;
497
  bottom: 0;
498
- left: .2em;
499
- margin: auto 0;
500
  }
501
-
502
- /* right-aligned */
503
- .ui-menu .ui-menu-icon {
504
- left: auto;
505
  right: 0;
 
506
  }
507
- .ui-progressbar {
508
- height: 2em;
509
- text-align: left;
510
- overflow: hidden;
511
- }
512
- .ui-progressbar .ui-progressbar-value {
513
- margin: -1px;
514
- height: 100%;
515
  }
516
- .ui-progressbar .ui-progressbar-overlay {
517
- background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
518
- height: 100%;
519
- filter: alpha(opacity=25); /* support: IE8 */
520
- opacity: 0.25;
521
  }
522
- .ui-progressbar-indeterminate .ui-progressbar-value {
523
- background-image: none;
 
524
  }
525
  .ui-resizable {
526
  position: relative;
@@ -592,6 +652,24 @@ button.ui-button::-moz-focus-inner {
592
  right: -5px;
593
  top: -5px;
594
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
  .ui-selectable {
596
  -ms-touch-action: none;
597
  touch-action: none;
@@ -611,7 +689,6 @@ button.ui-button::-moz-focus-inner {
611
  }
612
  .ui-selectmenu-menu .ui-menu {
613
  overflow: auto;
614
- /* Support: IE7 */
615
  overflow-x: hidden;
616
  padding-bottom: 1px;
617
  }
@@ -627,28 +704,20 @@ button.ui-button::-moz-focus-inner {
627
  .ui-selectmenu-open {
628
  display: block;
629
  }
630
- .ui-selectmenu-button {
631
- display: inline-block;
632
- overflow: hidden;
633
- position: relative;
634
- text-decoration: none;
635
- cursor: pointer;
636
- }
637
- .ui-selectmenu-button span.ui-icon {
638
- right: 0.5em;
639
- left: auto;
640
- margin-top: -8px;
641
- position: absolute;
642
- top: 50%;
643
- }
644
- .ui-selectmenu-button span.ui-selectmenu-text {
645
- text-align: left;
646
- padding: 0.4em 2.1em 0.4em 1em;
647
  display: block;
648
- line-height: 1.4;
649
  overflow: hidden;
650
  text-overflow: ellipsis;
 
 
 
651
  white-space: nowrap;
 
 
 
 
 
652
  }
653
  .ui-slider {
654
  position: relative;
@@ -730,14 +799,14 @@ button.ui-button::-moz-focus-inner {
730
  border: none;
731
  background: none;
732
  color: inherit;
733
- padding: 0;
734
  margin: .2em 0;
735
  vertical-align: middle;
736
  margin-left: .4em;
737
- margin-right: 22px;
738
  }
739
  .ui-spinner-button {
740
- width: 16px;
741
  height: 50%;
742
  font-size: .5em;
743
  padding: 0;
@@ -751,16 +820,9 @@ button.ui-button::-moz-focus-inner {
751
  }
752
  /* more specificity required here to override default borders */
753
  .ui-spinner a.ui-spinner-button {
754
- border-top: none;
755
- border-bottom: none;
756
- border-right: none;
757
- }
758
- /* vertically center icon */
759
- .ui-spinner .ui-icon {
760
- position: absolute;
761
- margin-top: -8px;
762
- top: 50%;
763
- left: 0;
764
  }
765
  .ui-spinner-up {
766
  top: 0;
@@ -768,12 +830,6 @@ button.ui-button::-moz-focus-inner {
768
  .ui-spinner-down {
769
  bottom: 0;
770
  }
771
-
772
- /* TR overrides */
773
- .ui-spinner .ui-icon-triangle-1-s {
774
- /* need to fix icons sprite */
775
- background-position: -65px -16px;
776
- }
777
  .ui-tabs {
778
  position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
779
  padding: .2em;
@@ -820,8 +876,6 @@ button.ui-button::-moz-focus-inner {
820
  position: absolute;
821
  z-index: 9999;
822
  max-width: 300px;
823
- -webkit-box-shadow: 0 0 5px #aaa;
824
- box-shadow: 0 0 5px #aaa;
825
  }
826
  body .ui-tooltip {
827
  border-width: 2px;
@@ -830,8 +884,8 @@ body .ui-tooltip {
830
  /* Component containers
831
  ----------------------------------*/
832
  .ui-widget {
833
- font-family: Verdana,Arial,sans-serif;
834
- font-size: 1.1em;
835
  }
836
  .ui-widget .ui-widget {
837
  font-size: 1em;
@@ -840,41 +894,54 @@ body .ui-tooltip {
840
  .ui-widget select,
841
  .ui-widget textarea,
842
  .ui-widget button {
843
- font-family: Verdana,Arial,sans-serif;
844
  font-size: 1em;
845
  }
 
 
 
846
  .ui-widget-content {
847
- border: 1px solid #aaaaaa;
848
- background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
849
- color: #222222;
850
  }
851
  .ui-widget-content a {
852
- color: #222222;
853
  }
854
  .ui-widget-header {
855
- border: 1px solid #aaaaaa;
856
- background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
857
- color: #222222;
858
  font-weight: bold;
859
  }
860
  .ui-widget-header a {
861
- color: #222222;
862
  }
863
 
864
  /* Interaction states
865
  ----------------------------------*/
866
  .ui-state-default,
867
  .ui-widget-content .ui-state-default,
868
- .ui-widget-header .ui-state-default {
869
- border: 1px solid #d3d3d3;
870
- background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
 
 
 
 
 
 
871
  font-weight: normal;
872
- color: #555555;
873
  }
874
  .ui-state-default a,
875
  .ui-state-default a:link,
876
- .ui-state-default a:visited {
877
- color: #555555;
 
 
 
 
878
  text-decoration: none;
879
  }
880
  .ui-state-hover,
@@ -882,11 +949,13 @@ body .ui-tooltip {
882
  .ui-widget-header .ui-state-hover,
883
  .ui-state-focus,
884
  .ui-widget-content .ui-state-focus,
885
- .ui-widget-header .ui-state-focus {
886
- border: 1px solid #999999;
887
- background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
 
 
888
  font-weight: normal;
889
- color: #212121;
890
  }
891
  .ui-state-hover a,
892
  .ui-state-hover a:hover,
@@ -895,22 +964,36 @@ body .ui-tooltip {
895
  .ui-state-focus a,
896
  .ui-state-focus a:hover,
897
  .ui-state-focus a:link,
898
- .ui-state-focus a:visited {
899
- color: #212121;
 
 
900
  text-decoration: none;
901
  }
 
 
 
 
902
  .ui-state-active,
903
  .ui-widget-content .ui-state-active,
904
- .ui-widget-header .ui-state-active {
905
- border: 1px solid #aaaaaa;
906
- background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
 
 
 
907
  font-weight: normal;
908
- color: #212121;
 
 
 
 
 
909
  }
910
  .ui-state-active a,
911
  .ui-state-active a:link,
912
  .ui-state-active a:visited {
913
- color: #212121;
914
  text-decoration: none;
915
  }
916
 
@@ -919,31 +1002,35 @@ body .ui-tooltip {
919
  .ui-state-highlight,
920
  .ui-widget-content .ui-state-highlight,
921
  .ui-widget-header .ui-state-highlight {
922
- border: 1px solid #fcefa1;
923
- background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
924
- color: #363636;
 
 
 
 
925
  }
926
  .ui-state-highlight a,
927
  .ui-widget-content .ui-state-highlight a,
928
  .ui-widget-header .ui-state-highlight a {
929
- color: #363636;
930
  }
931
  .ui-state-error,
932
  .ui-widget-content .ui-state-error,
933
  .ui-widget-header .ui-state-error {
934
- border: 1px solid #cd0a0a;
935
- background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
936
- color: #cd0a0a;
937
  }
938
  .ui-state-error a,
939
  .ui-widget-content .ui-state-error a,
940
  .ui-widget-header .ui-state-error a {
941
- color: #cd0a0a;
942
  }
943
  .ui-state-error-text,
944
  .ui-widget-content .ui-state-error-text,
945
  .ui-widget-header .ui-state-error-text {
946
- color: #cd0a0a;
947
  }
948
  .ui-priority-primary,
949
  .ui-widget-content .ui-priority-primary,
@@ -978,46 +1065,50 @@ body .ui-tooltip {
978
  }
979
  .ui-icon,
980
  .ui-widget-content .ui-icon {
981
- background-image: url("images/ui-icons_222222_256x240.png");
982
  }
983
  .ui-widget-header .ui-icon {
984
- background-image: url("images/ui-icons_222222_256x240.png");
985
- }
986
- .ui-state-default .ui-icon {
987
- background-image: url("images/ui-icons_888888_256x240.png");
988
  }
989
  .ui-state-hover .ui-icon,
990
- .ui-state-focus .ui-icon {
991
- background-image: url("images/ui-icons_454545_256x240.png");
 
 
992
  }
993
- .ui-state-active .ui-icon {
994
- background-image: url("images/ui-icons_454545_256x240.png");
 
995
  }
996
- .ui-state-highlight .ui-icon {
997
- background-image: url("images/ui-icons_2e83ff_256x240.png");
 
998
  }
999
  .ui-state-error .ui-icon,
1000
  .ui-state-error-text .ui-icon {
1001
- background-image: url("images/ui-icons_cd0a0a_256x240.png");
 
 
 
1002
  }
1003
 
1004
  /* positioning */
1005
  .ui-icon-blank { background-position: 16px 16px; }
1006
- .ui-icon-carat-1-n { background-position: 0 0; }
1007
- .ui-icon-carat-1-ne { background-position: -16px 0; }
1008
- .ui-icon-carat-1-e { background-position: -32px 0; }
1009
- .ui-icon-carat-1-se { background-position: -48px 0; }
1010
- .ui-icon-carat-1-s { background-position: -64px 0; }
1011
- .ui-icon-carat-1-sw { background-position: -80px 0; }
1012
- .ui-icon-carat-1-w { background-position: -96px 0; }
1013
- .ui-icon-carat-1-nw { background-position: -112px 0; }
1014
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
1015
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
1016
  .ui-icon-triangle-1-n { background-position: 0 -16px; }
1017
  .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1018
  .ui-icon-triangle-1-e { background-position: -32px -16px; }
1019
  .ui-icon-triangle-1-se { background-position: -48px -16px; }
1020
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
1021
  .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1022
  .ui-icon-triangle-1-w { background-position: -96px -16px; }
1023
  .ui-icon-triangle-1-nw { background-position: -112px -16px; }
@@ -1027,7 +1118,7 @@ body .ui-tooltip {
1027
  .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1028
  .ui-icon-arrow-1-e { background-position: -32px -32px; }
1029
  .ui-icon-arrow-1-se { background-position: -48px -32px; }
1030
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
1031
  .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1032
  .ui-icon-arrow-1-w { background-position: -96px -32px; }
1033
  .ui-icon-arrow-1-nw { background-position: -112px -32px; }
@@ -1039,7 +1130,7 @@ body .ui-tooltip {
1039
  .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1040
  .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1041
  .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1042
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
1043
  .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1044
  .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1045
  .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
@@ -1188,38 +1279,34 @@ body .ui-tooltip {
1188
  .ui-corner-top,
1189
  .ui-corner-left,
1190
  .ui-corner-tl {
1191
- border-top-left-radius: 4px;
1192
  }
1193
  .ui-corner-all,
1194
  .ui-corner-top,
1195
  .ui-corner-right,
1196
  .ui-corner-tr {
1197
- border-top-right-radius: 4px;
1198
  }
1199
  .ui-corner-all,
1200
  .ui-corner-bottom,
1201
  .ui-corner-left,
1202
  .ui-corner-bl {
1203
- border-bottom-left-radius: 4px;
1204
  }
1205
  .ui-corner-all,
1206
  .ui-corner-bottom,
1207
  .ui-corner-right,
1208
  .ui-corner-br {
1209
- border-bottom-right-radius: 4px;
1210
  }
1211
 
1212
  /* Overlays */
1213
  .ui-widget-overlay {
1214
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1215
- opacity: .3;
1216
- filter: Alpha(Opacity=30); /* support: IE8 */
1217
  }
1218
  .ui-widget-shadow {
1219
- margin: -8px 0 0 -8px;
1220
- padding: 8px;
1221
- background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
1222
- opacity: .3;
1223
- filter: Alpha(Opacity=30); /* support: IE8 */
1224
- border-radius: 8px;
1225
  }
1
+ /*! jQuery UI - v1.12.1 - 2016-09-14
2
  * http://jqueryui.com
3
+ * Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6
5
+ * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
 
7
  /* Layout helpers
8
  ----------------------------------*/
38
  .ui-helper-clearfix:after {
39
  clear: both;
40
  }
 
 
 
41
  .ui-helper-zfix {
42
  width: 100%;
43
  height: 100%;
57
  ----------------------------------*/
58
  .ui-state-disabled {
59
  cursor: default !important;
60
+ pointer-events: none;
61
  }
62
 
63
 
64
  /* Icons
65
  ----------------------------------*/
 
 
66
  .ui-icon {
67
+ display: inline-block;
68
+ vertical-align: middle;
69
+ margin-top: -.25em;
70
+ position: relative;
71
  text-indent: -99999px;
72
  overflow: hidden;
73
  background-repeat: no-repeat;
74
  }
75
 
76
+ .ui-widget-icon-block {
77
+ left: 50%;
78
+ margin-left: -8px;
79
+ display: block;
80
+ }
81
 
82
  /* Misc visuals
83
  ----------------------------------*/
96
  position: relative;
97
  margin: 2px 0 0 0;
98
  padding: .5em .5em .5em .7em;
 
99
  font-size: 100%;
100
  }
 
 
 
 
 
 
 
 
 
 
 
 
101
  .ui-accordion .ui-accordion-content {
102
  padding: 1em 2.2em;
103
  border-top: 0;
109
  left: 0;
110
  cursor: default;
111
  }
112
+ .ui-menu {
113
+ list-style: none;
114
+ padding: 0;
115
+ margin: 0;
116
+ display: block;
117
+ outline: 0;
118
+ }
119
+ .ui-menu .ui-menu {
120
+ position: absolute;
121
+ }
122
+ .ui-menu .ui-menu-item {
123
+ margin: 0;
124
+ cursor: pointer;
125
+ /* support: IE10, see #8844 */
126
+ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
127
+ }
128
+ .ui-menu .ui-menu-item-wrapper {
129
+ position: relative;
130
+ padding: 3px 1em 3px .4em;
131
+ }
132
+ .ui-menu .ui-menu-divider {
133
+ margin: 5px 0;
134
+ height: 0;
135
+ font-size: 0;
136
+ line-height: 0;
137
+ border-width: 1px 0 0 0;
138
+ }
139
+ .ui-menu .ui-state-focus,
140
+ .ui-menu .ui-state-active {
141
+ margin: -1px;
142
+ }
143
+
144
+ /* icon support */
145
+ .ui-menu-icons {
146
+ position: relative;
147
+ }
148
+ .ui-menu-icons .ui-menu-item-wrapper {
149
+ padding-left: 2em;
150
+ }
151
+
152
+ /* left-aligned */
153
+ .ui-menu .ui-icon {
154
+ position: absolute;
155
+ top: 0;
156
+ bottom: 0;
157
+ left: .2em;
158
+ margin: auto 0;
159
+ }
160
+
161
+ /* right-aligned */
162
+ .ui-menu .ui-menu-icon {
163
+ left: auto;
164
+ right: 0;
165
+ }
166
  .ui-button {
167
+ padding: .4em 1em;
168
  display: inline-block;
169
  position: relative;
 
170
  line-height: normal;
171
  margin-right: .1em;
172
  cursor: pointer;
173
  vertical-align: middle;
174
  text-align: center;
175
+ -webkit-user-select: none;
176
+ -moz-user-select: none;
177
+ -ms-user-select: none;
178
+ user-select: none;
179
+
180
+ /* Support: IE <= 11 */
181
+ overflow: visible;
182
  }
183
+
184
  .ui-button,
185
  .ui-button:link,
186
  .ui-button:visited,
188
  .ui-button:active {
189
  text-decoration: none;
190
  }
191
+
192
  /* to make room for the icon, a width needs to be set here */
193
  .ui-button-icon-only {
194
+ width: 2em;
195
+ box-sizing: border-box;
196
+ text-indent: -9999px;
197
+ white-space: nowrap;
 
198
  }
199
+
200
+ /* no icon support for input elements */
201
+ input.ui-button.ui-button-icon-only {
202
+ text-indent: 0;
203
  }
204
+
205
+ /* button icon element(s) */
206
+ .ui-button-icon-only .ui-icon {
207
+ position: absolute;
208
+ top: 50%;
209
+ left: 50%;
210
+ margin-top: -8px;
211
+ margin-left: -8px;
212
  }
213
 
214
+ .ui-button.ui-icon-notext .ui-icon {
215
+ padding: 0;
216
+ width: 2.1em;
217
+ height: 2.1em;
218
+ text-indent: -9999px;
219
+ white-space: nowrap;
220
+
221
  }
222
+
223
+ input.ui-button.ui-icon-notext .ui-icon {
224
+ width: auto;
225
+ height: auto;
226
+ text-indent: 0;
227
+ white-space: normal;
228
  padding: .4em 1em;
229
  }
230
+
231
+ /* workarounds */
232
+ /* Support: Firefox 5 - 40 */
233
+ input.ui-button::-moz-focus-inner,
234
+ button.ui-button::-moz-focus-inner {
235
+ border: 0;
236
+ padding: 0;
237
+ }
238
+ .ui-controlgroup {
239
+ vertical-align: middle;
240
+ display: inline-block;
241
  }
242
+ .ui-controlgroup > .ui-controlgroup-item {
243
+ float: left;
244
+ margin-left: 0;
245
+ margin-right: 0;
246
  }
247
+ .ui-controlgroup > .ui-controlgroup-item:focus,
248
+ .ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
249
+ z-index: 9999;
250
+ }
251
+ .ui-controlgroup-vertical > .ui-controlgroup-item {
252
+ display: block;
253
+ float: none;
254
+ width: 100%;
255
+ margin-top: 0;
256
+ margin-bottom: 0;
257
+ text-align: left;
258
  }
259
+ .ui-controlgroup-vertical .ui-controlgroup-item {
260
+ box-sizing: border-box;
 
261
  }
262
+ .ui-controlgroup .ui-controlgroup-label {
 
263
  padding: .4em 1em;
264
  }
265
+ .ui-controlgroup .ui-controlgroup-label span {
266
+ font-size: 80%;
 
 
 
 
 
 
 
 
267
  }
268
+ .ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
269
+ border-left: none;
 
270
  }
271
+ .ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
272
+ border-top: none;
 
 
273
  }
274
+ .ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
275
+ border-right: none;
 
 
276
  }
277
+ .ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
278
+ border-bottom: none;
279
+ }
280
+
281
+ /* Spinner specific style fixes */
282
+ .ui-controlgroup-vertical .ui-spinner-input {
283
 
284
+ /* Support: IE8 only, Android < 4.4 only */
285
+ width: 75%;
286
+ width: calc( 100% - 2.4em );
287
  }
288
+ .ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
289
+ border-top-style: solid;
 
290
  }
291
 
292
+ .ui-checkboxradio-label .ui-icon-background {
293
+ box-shadow: inset 1px 1px 1px #ccc;
294
+ border-radius: .12em;
295
+ border: none;
296
+ }
297
+ .ui-checkboxradio-radio-label .ui-icon-background {
298
+ width: 16px;
299
+ height: 16px;
300
+ border-radius: 1em;
301
+ overflow: visible;
302
+ border: none;
303
+ }
304
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
305
+ .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
306
+ background-image: none;
307
+ width: 8px;
308
+ height: 8px;
309
+ border-width: 4px;
310
+ border-style: solid;
311
+ }
312
+ .ui-checkboxradio-disabled {
313
+ pointer-events: none;
314
  }
315
  .ui-datepicker {
316
  width: 17em;
477
  border-right-width: 0;
478
  border-left-width: 1px;
479
  }
480
+
481
+ /* Icons */
482
+ .ui-datepicker .ui-icon {
483
+ display: block;
484
+ text-indent: -99999px;
485
  overflow: hidden;
486
+ background-repeat: no-repeat;
487
+ left: .5em;
488
+ top: .3em;
489
+ }
490
+ .ui-dialog {
491
  position: absolute;
492
  top: 0;
493
  left: 0;
536
  margin: .5em .4em .5em 0;
537
  cursor: pointer;
538
  }
539
+ .ui-dialog .ui-resizable-n {
540
+ height: 2px;
541
+ top: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
  }
543
+ .ui-dialog .ui-resizable-e {
544
+ width: 2px;
545
+ right: 0;
 
 
 
 
 
546
  }
547
+ .ui-dialog .ui-resizable-s {
548
+ height: 2px;
549
+ bottom: 0;
 
 
 
550
  }
551
+ .ui-dialog .ui-resizable-w {
552
+ width: 2px;
553
+ left: 0;
554
  }
555
+ .ui-dialog .ui-resizable-se,
556
+ .ui-dialog .ui-resizable-sw,
557
+ .ui-dialog .ui-resizable-ne,
558
+ .ui-dialog .ui-resizable-nw {
559
+ width: 7px;
560
+ height: 7px;
561
  }
562
+ .ui-dialog .ui-resizable-se {
563
+ right: 0;
564
+ bottom: 0;
565
  }
566
+ .ui-dialog .ui-resizable-sw {
567
+ left: 0;
 
 
 
568
  bottom: 0;
 
 
569
  }
570
+ .ui-dialog .ui-resizable-ne {
 
 
 
571
  right: 0;
572
+ top: 0;
573
  }
574
+ .ui-dialog .ui-resizable-nw {
575
+ left: 0;
576
+ top: 0;
 
 
 
 
 
577
  }
578
+ .ui-draggable .ui-dialog-titlebar {
579
+ cursor: move;
 
 
 
580
  }
581
+ .ui-draggable-handle {
582
+ -ms-touch-action: none;
583
+ touch-action: none;
584
  }
585
  .ui-resizable {
586
  position: relative;
652
  right: -5px;
653
  top: -5px;
654
  }
655
+ .ui-progressbar {
656
+ height: 2em;
657
+ text-align: left;
658
+ overflow: hidden;
659
+ }
660
+ .ui-progressbar .ui-progressbar-value {
661
+ margin: -1px;
662
+ height: 100%;
663
+ }
664
+ .ui-progressbar .ui-progressbar-overlay {
665
+ background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
666
+ height: 100%;
667
+ filter: alpha(opacity=25); /* support: IE8 */
668
+ opacity: 0.25;
669
+ }
670
+ .ui-progressbar-indeterminate .ui-progressbar-value {
671
+ background-image: none;
672
+ }
673
  .ui-selectable {
674
  -ms-touch-action: none;
675
  touch-action: none;
689
  }
690
  .ui-selectmenu-menu .ui-menu {
691
  overflow: auto;
 
692
  overflow-x: hidden;
693
  padding-bottom: 1px;
694
  }
704
  .ui-selectmenu-open {
705
  display: block;
706
  }
707
+ .ui-selectmenu-text {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
  display: block;
709
+ margin-right: 20px;
710
  overflow: hidden;
711
  text-overflow: ellipsis;
712
+ }
713
+ .ui-selectmenu-button.ui-button {
714
+ text-align: left;
715
  white-space: nowrap;
716
+ width: 14em;
717
+ }
718
+ .ui-selectmenu-icon.ui-icon {
719
+ float: right;
720
+ margin-top: 0;
721
  }
722
  .ui-slider {
723
  position: relative;
799
  border: none;
800
  background: none;
801
  color: inherit;
802
+ padding: .222em 0;
803
  margin: .2em 0;
804
  vertical-align: middle;
805
  margin-left: .4em;
806
+ margin-right: 2em;
807
  }
808
  .ui-spinner-button {
809
+ width: 1.6em;
810
  height: 50%;
811
  font-size: .5em;
812
  padding: 0;
820
  }
821
  /* more specificity required here to override default borders */
822
  .ui-spinner a.ui-spinner-button {
823
+ border-top-style: none;
824
+ border-bottom-style: none;
825
+ border-right-style: none;
 
 
 
 
 
 
 
826
  }
827
  .ui-spinner-up {
828
  top: 0;
830
  .ui-spinner-down {
831
  bottom: 0;
832
  }
 
 
 
 
 
 
833
  .ui-tabs {
834
  position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
835
  padding: .2em;
876
  position: absolute;
877
  z-index: 9999;
878
  max-width: 300px;
 
 
879
  }
880
  body .ui-tooltip {
881
  border-width: 2px;
884
  /* Component containers
885
  ----------------------------------*/
886
  .ui-widget {
887
+ font-family: Arial,Helvetica,sans-serif;
888
+ font-size: 1em;
889
  }
890
  .ui-widget .ui-widget {
891
  font-size: 1em;
894
  .ui-widget select,
895
  .ui-widget textarea,
896
  .ui-widget button {
897
+ font-family: Arial,Helvetica,sans-serif;
898
  font-size: 1em;
899
  }
900
+ .ui-widget.ui-widget-content {
901
+ border: 1px solid #c5c5c5;
902
+ }
903
  .ui-widget-content {
904
+ border: 1px solid #dddddd;
905
+ background: #ffffff;
906
+ color: #333333;
907
  }
908
  .ui-widget-content a {
909
+ color: #333333;
910
  }
911
  .ui-widget-header {
912
+ border: 1px solid #dddddd;
913
+ background: #e9e9e9;
914
+ color: #333333;
915
  font-weight: bold;
916
  }
917
  .ui-widget-header a {
918
+ color: #333333;
919
  }
920
 
921
  /* Interaction states
922
  ----------------------------------*/
923
  .ui-state-default,
924
  .ui-widget-content .ui-state-default,
925
+ .ui-widget-header .ui-state-default,
926
+ .ui-button,
927
+
928
+ /* We use html here because we need a greater specificity to make sure disabled
929
+ works properly when clicked or hovered */
930
+ html .ui-button.ui-state-disabled:hover,
931
+ html .ui-button.ui-state-disabled:active {
932
+ border: 1px solid #c5c5c5;
933
+ background: #f6f6f6;
934
  font-weight: normal;
935
+ color: #454545;
936
  }
937
  .ui-state-default a,
938
  .ui-state-default a:link,
939
+ .ui-state-default a:visited,
940
+ a.ui-button,
941
+ a:link.ui-button,
942
+ a:visited.ui-button,
943
+ .ui-button {
944
+ color: #454545;
945
  text-decoration: none;
946
  }
947
  .ui-state-hover,
949
  .ui-widget-header .ui-state-hover,
950
  .ui-state-focus,
951
  .ui-widget-content .ui-state-focus,
952
+ .ui-widget-header .ui-state-focus,
953
+ .ui-button:hover,
954
+ .ui-button:focus {
955
+ border: 1px solid #cccccc;
956
+ background: #ededed;
957
  font-weight: normal;
958
+ color: #2b2b2b;
959
  }
960
  .ui-state-hover a,
961
  .ui-state-hover a:hover,
964
  .ui-state-focus a,
965
  .ui-state-focus a:hover,
966
  .ui-state-focus a:link,
967
+ .ui-state-focus a:visited,
968
+ a.ui-button:hover,
969
+ a.ui-button:focus {
970
+ color: #2b2b2b;
971
  text-decoration: none;
972
  }
973
+
974
+ .ui-visual-focus {
975
+ box-shadow: 0 0 3px 1px rgb(94, 158, 214);
976
+ }
977
  .ui-state-active,
978
  .ui-widget-content .ui-state-active,
979
+ .ui-widget-header .ui-state-active,
980
+ a.ui-button:active,
981
+ .ui-button:active,
982
+ .ui-button.ui-state-active:hover {
983
+ border: 1px solid #003eff;
984
+ background: #007fff;
985
  font-weight: normal;
986
+ color: #ffffff;
987
+ }
988
+ .ui-icon-background,
989
+ .ui-state-active .ui-icon-background {
990
+ border: #003eff;
991
+ background-color: #ffffff;
992
  }
993
  .ui-state-active a,
994
  .ui-state-active a:link,
995
  .ui-state-active a:visited {
996
+ color: #ffffff;
997
  text-decoration: none;
998
  }
999
 
1002
  .ui-state-highlight,
1003
  .ui-widget-content .ui-state-highlight,
1004
  .ui-widget-header .ui-state-highlight {
1005
+ border: 1px solid #dad55e;
1006
+ background: #fffa90;
1007
+ color: #777620;
1008
+ }
1009
+ .ui-state-checked {
1010
+ border: 1px solid #dad55e;
1011
+ background: #fffa90;
1012
  }
1013
  .ui-state-highlight a,
1014
  .ui-widget-content .ui-state-highlight a,
1015
  .ui-widget-header .ui-state-highlight a {
1016
+ color: #777620;
1017
  }
1018
  .ui-state-error,
1019
  .ui-widget-content .ui-state-error,
1020
  .ui-widget-header .ui-state-error {
1021
+ border: 1px solid #f1a899;
1022
+ background: #fddfdf;
1023
+ color: #5f3f3f;
1024
  }
1025
  .ui-state-error a,
1026
  .ui-widget-content .ui-state-error a,
1027
  .ui-widget-header .ui-state-error a {
1028
+ color: #5f3f3f;
1029
  }
1030
  .ui-state-error-text,
1031
  .ui-widget-content .ui-state-error-text,
1032
  .ui-widget-header .ui-state-error-text {
1033
+ color: #5f3f3f;
1034
  }
1035
  .ui-priority-primary,
1036
  .ui-widget-content .ui-priority-primary,
1065
  }
1066
  .ui-icon,
1067
  .ui-widget-content .ui-icon {
1068
+ background-image: url("images/ui-icons_444444_256x240.png");
1069
  }
1070
  .ui-widget-header .ui-icon {
1071
+ background-image: url("images/ui-icons_444444_256x240.png");
 
 
 
1072
  }
1073
  .ui-state-hover .ui-icon,
1074
+ .ui-state-focus .ui-icon,
1075
+ .ui-button:hover .ui-icon,
1076
+ .ui-button:focus .ui-icon {
1077
+ background-image: url("images/ui-icons_555555_256x240.png");
1078
  }
1079
+ .ui-state-active .ui-icon,
1080
+ .ui-button:active .ui-icon {
1081
+ background-image: url("images/ui-icons_ffffff_256x240.png");
1082
  }
1083
+ .ui-state-highlight .ui-icon,
1084
+ .ui-button .ui-state-highlight.ui-icon {
1085
+ background-image: url("images/ui-icons_777620_256x240.png");
1086
  }
1087
  .ui-state-error .ui-icon,
1088
  .ui-state-error-text .ui-icon {
1089
+ background-image: url("images/ui-icons_cc0000_256x240.png");
1090
+ }
1091
+ .ui-button .ui-icon {
1092
+ background-image: url("images/ui-icons_777777_256x240.png");
1093
  }
1094
 
1095
  /* positioning */
1096
  .ui-icon-blank { background-position: 16px 16px; }
1097
+ .ui-icon-caret-1-n { background-position: 0 0; }
1098
+ .ui-icon-caret-1-ne { background-position: -16px 0; }
1099
+ .ui-icon-caret-1-e { background-position: -32px 0; }
1100
+ .ui-icon-caret-1-se { background-position: -48px 0; }
1101
+ .ui-icon-caret-1-s { background-position: -65px 0; }
1102
+ .ui-icon-caret-1-sw { background-position: -80px 0; }
1103
+ .ui-icon-caret-1-w { background-position: -96px 0; }
1104
+ .ui-icon-caret-1-nw { background-position: -112px 0; }
1105
+ .ui-icon-caret-2-n-s { background-position: -128px 0; }
1106
+ .ui-icon-caret-2-e-w { background-position: -144px 0; }
1107
  .ui-icon-triangle-1-n { background-position: 0 -16px; }
1108
  .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1109
  .ui-icon-triangle-1-e { background-position: -32px -16px; }
1110
  .ui-icon-triangle-1-se { background-position: -48px -16px; }
1111
+ .ui-icon-triangle-1-s { background-position: -65px -16px; }
1112
  .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1113
  .ui-icon-triangle-1-w { background-position: -96px -16px; }
1114
  .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1118
  .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1119
  .ui-icon-arrow-1-e { background-position: -32px -32px; }
1120
  .ui-icon-arrow-1-se { background-position: -48px -32px; }
1121
+ .ui-icon-arrow-1-s { background-position: -65px -32px; }
1122
  .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1123
  .ui-icon-arrow-1-w { background-position: -96px -32px; }
1124
  .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1130
  .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1131
  .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1132
  .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1133
+ .ui-icon-arrowthick-1-n { background-position: 1px -48px; }
1134
  .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1135
  .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1136
  .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1279
  .ui-corner-top,
1280
  .ui-corner-left,
1281
  .ui-corner-tl {
1282
+ border-top-left-radius: 3px;
1283
  }
1284
  .ui-corner-all,
1285
  .ui-corner-top,
1286
  .ui-corner-right,
1287
  .ui-corner-tr {
1288
+ border-top-right-radius: 3px;
1289
  }
1290
  .ui-corner-all,
1291
  .ui-corner-bottom,
1292
  .ui-corner-left,
1293
  .ui-corner-bl {
1294
+ border-bottom-left-radius: 3px;
1295
  }
1296
  .ui-corner-all,
1297
  .ui-corner-bottom,
1298
  .ui-corner-right,
1299
  .ui-corner-br {
1300
+ border-bottom-right-radius: 3px;
1301
  }
1302
 
1303
  /* Overlays */
1304
  .ui-widget-overlay {
1305
+ background: #aaaaaa;
1306
+ opacity: .003;
1307
+ filter: Alpha(Opacity=.3); /* support: IE8 */
1308
  }
1309
  .ui-widget-shadow {
1310
+ -webkit-box-shadow: 0px 0px 5px #666666;
1311
+ box-shadow: 0px 0px 5px #666666;
 
 
 
 
1312
  }
js/wplc_admin_pro.js CHANGED
@@ -276,6 +276,8 @@ jQuery(function() {
276
  }
277
  e.preventDefault();
278
 
 
 
279
 
280
  });
281
 
276
  }
277
  e.preventDefault();
278
 
279
+ jQuery(this).hide();
280
+
281
 
282
  });
283
 
js/wplc_agent_node.js CHANGED
@@ -34,6 +34,8 @@ var bleepblop_running = false;
34
  var ping_list = {};
35
  var old_version_detected = false;
36
 
 
 
37
  /**
38
  * Setup supported file suffix types
39
  */
@@ -114,10 +116,13 @@ var bleeper_visitor_filters = {
114
  };
115
 
116
  /* Regex for inline links */
117
- var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.;<>]*[-A-Z0-9+&@#\/%=~_|<>])/ig;
118
 
119
  (function($) {
120
  $(document).on("bleeper_dom_ready", function(e) {
 
 
 
121
  if (typeof bleeper_ring_override !== "undefined") {
122
  bleeper_ring = new Audio(bleeper_ring_override);
123
  }
@@ -134,6 +139,14 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
134
  sid = nc_getCookie("nc_sid");
135
  chatid = nc_getCookie("nc_chatid");
136
 
 
 
 
 
 
 
 
 
137
  if (typeof override_chatid !== "undefined") {
138
  chatid = override_chatid;
139
  }
@@ -167,13 +180,13 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
167
  jQuery("#wplc_send_msg").click();
168
  } else if (event.which === 38 && !event.shiftKey) {
169
  if (typeof lastmessagesent !== "undefined") {
170
- if(typeof wplc_integration_pro_active !== "undefined" && wplc_integration_pro_active === "true"){
171
  var mid = lastmessagesent;
172
  var mdiv = jQuery('.message_'+mid+ " .messageBody").html();
173
  jQuery("#inputMessage").val(mdiv);
174
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
175
  niftyIsEditing = mid;
176
- }
177
  }
178
 
179
  } else if (event.which === 27 && !event.shiftKey) {
@@ -208,7 +221,7 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
208
  });
209
 
210
 
211
- $(document).on("mouseout",".bleeper-edit-message", function() {
212
  $(this).hide();
213
 
214
  });
@@ -230,7 +243,7 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
230
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
231
  niftyIsEditing = mid;
232
 
233
- });
234
 
235
  // Click events
236
  // Focus input when clicking on the message input's border
@@ -249,6 +262,9 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
249
 
250
  $("body").on("click", ".init_chat", function() {
251
  var tcid = $(this).attr('cid');
 
 
 
252
  jQuery.event.trigger({type: "bleeper_initiate_chat", ndata:{chatid:tcid, agent:agent_id}});
253
  socket.emit('initiate chat',{chatid: tcid});
254
  nc_add_user_to_list(visitor_list[tcid], function() {
@@ -260,13 +276,24 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
260
  });
261
  });
262
 
 
 
 
 
 
 
 
 
 
 
 
263
  $("body").on("click", ".bleeper_close_item", function() {
264
  var tcid = $(this).attr('cid');
265
  $("#"+tcid).remove();
266
  bleeper_remove_chatid_from_ls(tcid);
267
  bleeper_remove_events(tcid);
268
 
269
- delete visitor_list[tcid];
270
 
271
  setTimeout(function() {
272
  $("#user_count").click();
@@ -326,7 +353,7 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
326
 
327
 
328
  params = {
329
- token: 'zf6fe1399sdfgsdfg02ad09ab6a8cb7345s',
330
  api_key: nifty_api_key
331
  },
332
 
@@ -366,7 +393,7 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
366
  });
367
 
368
 
369
- niftyShowDialog("Transfer chat", message, 'Transfer', 'Cancel', function() {
370
  var ag_selection = $('input[name=ag_t_selection]:checked', '.t_agent_list').val();
371
  var transfer_chat_id = $('input[name=ag_t_selection]:checked', '.t_agent_list').attr('cid');
372
  if (typeof ag_selection !== "undefined") {
@@ -375,6 +402,8 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
375
 
376
  },null);
377
 
 
 
378
  });
379
 
380
  $("body").on("click", ".chatTransferDepartment", function() {
@@ -389,7 +418,7 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
389
  message += '</div>';
390
 
391
 
392
- niftyShowDialog("Transfer chat", message, 'Transfer', 'Cancel', function() {
393
  var dp_selection = $('input[name=dp_t_selection]:checked', '.t_department_list').val();
394
  var transfer_chat_id = $('input[name=dp_t_selection]:checked', '.t_department_list').attr('cid');
395
  if (typeof dp_selection !== "undefined") {
@@ -398,6 +427,12 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
398
 
399
  },null);
400
 
 
 
 
 
 
 
401
  });
402
 
403
 
@@ -413,6 +448,49 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
413
  var selected_page_url = jQuery("#bleeper_direct_to_page_select").val();
414
 
415
  socket.emit('custom data',{action:'send_user_direct_to_page',chatid:active_chatid,agent_name:bleeper_agent_name, direction: selected_page_url, pretty_name: bleeper_valid_direct_to_page_array[selected_page_url]});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  },null);
417
 
418
  jQuery.event.trigger({type: "bleeper_direct_user_to_page_prompt"});
@@ -458,6 +536,15 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
458
  jQuery.event.trigger({type: "bleeper_add_initiate_button_no_col", cid:tmp_chatid_close});
459
  nc_remove_open_chat_visitor_row(tmp_chatid_close);
460
 
 
 
 
 
 
 
 
 
 
461
  setTimeout(function() {
462
  $("#user_count").click();
463
  },100);
@@ -679,8 +766,10 @@ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.
679
 
680
  $("#nifty_file_input").on("change", function(){
681
  var file = this.files[0]; //Last file in array
682
- wplcShareFile(file,'#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_select_file");
683
  jQuery("#chat_drag_zone").fadeOut();
 
 
684
 
685
  });
686
 
@@ -836,44 +925,6 @@ jQuery(document).on("bleeper_dom_ready", function(e) {
836
  bleeper_dash_fullscreen_minimal = !bleeper_dash_fullscreen_minimal; //Flips this state
837
  });
838
 
839
- var dragTimeout = -1;
840
- jQuery("html").bind("dragenter", function(){
841
- if(typeof chatid !== "undefined" && chatid !== false){
842
- jQuery("#chat_drag_zone").fadeIn();
843
- bleeper_show_drag_zone = true;
844
- }
845
-
846
- });
847
-
848
- jQuery("html").bind("dragover", function(){
849
- if(typeof chatid !== "undefined" && chatid !== false){
850
- bleeper_show_drag_zone = true;
851
- }
852
- });
853
- jQuery("html").bind("dragleave", function(){
854
- bleeper_show_drag_zone = false;
855
- clearTimeout(dragTimeout);
856
- dragTimeout = setTimeout(function(){
857
- if(!bleeper_show_drag_zone){ jQuery("#chat_drag_zone").fadeOut(); }
858
- }, 200);
859
- });
860
-
861
- jQuery("#chat_drag_zone").on("dragover", function(event) { event.preventDefault(); event.stopPropagation(); });
862
- jQuery("#chat_drag_zone").on("dragleave", function(event) { event.preventDefault(); event.stopPropagation(); });
863
-
864
- jQuery("#chat_drag_zone").on("drop", function(event) {
865
- event.preventDefault();
866
- event.stopPropagation();
867
- if(jQuery('#nifty_add_media:checked').length > 0){
868
- //Do nothing its open
869
- } else {
870
- jQuery("#nifty_add_media").click();
871
- }
872
-
873
- var fileInput = document.getElementById('nifty_file_input');
874
- fileInput.files = event.originalEvent.dataTransfer.files;
875
- });
876
-
877
  if (document.getElementById('messages') !== null) {
878
  bleeper_mutation_observer_init();
879
  bleeper_init_emoji_picker();
@@ -1130,7 +1181,7 @@ function niftyShowDialog(title, message, accept_btn, cancel_btn, callback, cance
1130
  jQuery("#nifty_admin_chat_prompt_cancel").text("Cancel");
1131
  }
1132
 
1133
-
1134
 
1135
  niftyRegisterDialogCallback(callback);
1136
  niftyRegisterDialogCancelCallback(cancel_callback);
@@ -1333,9 +1384,17 @@ function nc_buildUrl(url, parameters){
1333
  * @param {string} originalID The id of the div to show when upload final div to show after evething is complete
1334
  */
1335
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
 
 
 
 
 
 
1336
  var formData = new FormData();
1337
  formData.append('file', fileToUpload);
1338
  formData.append('timestamp', Date.now());
 
 
1339
  jQuery(uploadingID).show();
1340
  jQuery(originalID).hide();
1341
  jQuery(successID).hide();
@@ -1390,6 +1449,7 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
1390
  }
1391
 
1392
  if(fileLinkUrl !== false){
 
1393
  var tag = (fileLinkUrl.indexOf(".png") !== -1 || fileLinkUrl.indexOf(".PNG") !== -1 || fileLinkUrl.indexOf(".jpg") !== -1 || fileLinkUrl.indexOf(".JPG") !== -1 || fileLinkUrl.indexOf(".jpeg") !== -1 || fileLinkUrl.indexOf(".JPEG") !== -1 || fileLinkUrl.indexOf(".gif") !== -1 || fileLinkUrl.indexOf(".GIF") !== -1 || fileLinkUrl.indexOf(".bmp")!== -1 || fileLinkUrl.indexOf(".BMP") !== -1 ) ? "img" : "link";
1394
 
1395
  if(tag !== "img"){
@@ -1399,10 +1459,16 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
1399
  username: username,
1400
  message: (tag + ":" + fileLinkUrl + ":" + tag)
1401
  });
1402
- socket.emit("new message", {message:(tag + ":" + fileLinkUrl + ":" + tag),chatid:active_chatid});
1403
-
1404
- jQuery.event.trigger({type: "bleeper_add_message_chatbox", message: (tag + ":" + fileLinkUrl + ":" + tag)});
1405
- jQuery.event.trigger({type: "bleeper_send_message", message: (tag + ":" + fileLinkUrl + ":" + tag)});
 
 
 
 
 
 
1406
  }
1407
  }
1408
  else{
@@ -1436,7 +1502,7 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
1436
  }, 2000);
1437
  }
1438
  } else{
1439
- alert("File type not supported");
1440
  jQuery(uploadingID).hide();
1441
  jQuery(failedID).show();
1442
  setTimeout(function(){
@@ -1524,11 +1590,14 @@ function addChatMessage (data, options) {
1524
 
1525
 
1526
  var edit_item = "";
1527
- if(data.aoru !== 'u'){
1528
  var $editDiv = jQuery('<span class="bleeper-edit-message" style="display:none"/>: ').text('edit');
1529
  } else {
1530
  var $editDiv = jQuery('<span class=""/>: ').text('');
1531
- }
 
 
 
1532
 
1533
  var $messageBodyDiv = jQuery('<span class="messageBody" data-message="' + data.message + '">')
1534
  .html(wplcFormatParser(data.message));
@@ -1741,7 +1810,14 @@ function nc_no_visitors() {
1741
  * @param {int} count The new visitor count
1742
  */
1743
  function nc_update_visitor_count(count) {
1744
- jQuery("#active_count").html(document.querySelectorAll('.visitorList').length);
 
 
 
 
 
 
 
1745
  }
1746
 
1747
  /**
@@ -1846,6 +1922,10 @@ function nc_add_user_to_list(data, next) {
1846
  var date = new Date();
1847
  var minute = date.getMinutes();
1848
  var hour = date.getHours();
 
 
 
 
1849
 
1850
  /* update the visitor table */
1851
  jQuery("#vis"+data.chatid+" .session-state-label").html(bleeper_pretty_chat_status(data.state));
@@ -1938,6 +2018,11 @@ function nc_update_user_to_list(data) {
1938
  var date = new Date();
1939
  var minute = date.getMinutes();
1940
  var hour = date.getHours();
 
 
 
 
 
1941
 
1942
  jQuery("#"+data.chatid+ " .userList").attr("socket",data.socketid);
1943
  jQuery("#"+data.chatid+ " .userInfo").html(hour + ":" + minute);
@@ -2504,7 +2589,7 @@ wplcFormatParser = function(msg){
2504
  for (var i = 0, len = image_match.length; i < len; i++) {
2505
  var to_find = image_match[i];
2506
  var to_replace = to_find.substring(4, to_find.length-4); // remove the starting #### and ending ####
2507
- msg = msg.replace(to_find, "<img style='max-width:100%;' src='"+bleeper_url_path_em_stripper(to_replace.replace("::", ":"))+"' />");
2508
  bypass_inline_links = true;
2509
 
2510
  }
@@ -2515,7 +2600,7 @@ wplcFormatParser = function(msg){
2515
  for (var i = 0, len = image_match.length; i < len; i++) {
2516
  var to_find = image_match[i];
2517
  var to_replace = to_find.substring(4, to_find.length-4); // remove the starting #### and ending ####
2518
- msg = msg.replace(to_find, "<img style='max-width:100%;' src='"+bleeper_url_path_em_stripper(to_replace)+"' />");
2519
  bypass_inline_links = true;
2520
 
2521
  }
@@ -2626,14 +2711,14 @@ function nc_return_device_details(data){
2626
  * @param {object} data The visitor data packet
2627
  */
2628
  function nc_remove_visitor_after_time(data) {
2629
- var visitor_timeout_seconds = 12000; /* one second less than the a2vping */
2630
- clearTimeout(remove_visitor_timer[data.chatid]);
2631
 
2632
- remove_visitor_timer[data.chatid] = setTimeout(function() {
2633
- jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:data});
2634
 
2635
- clearTimeout(ping_list[data.socketid]);
2636
- },visitor_timeout_seconds);
2637
 
2638
  }
2639
 
@@ -2801,6 +2886,11 @@ bleeper_delegates = function() {
2801
  visitor_list[data.chatid].email = bleeper_strip_tags(data.data.email);
2802
  jQuery("#vis"+data.chatid+" .userName").html(bleeper_strip_tags(data.data.name));
2803
  var orig_elm = jQuery("#vis"+data.chatid);
 
 
 
 
 
2804
  jQuery("#vis"+data.chatid).remove();
2805
  jQuery(orig_elm).prependTo(".visitorListBox");
2806
  jQuery("#"+data.chatid+" .userName").html(bleeper_strip_tags(data.data.name));
@@ -2821,15 +2911,18 @@ bleeper_delegates = function() {
2821
  socket.on('transferring chat', function (data) {
2822
  if (typeof data.chatid !== "undefined") {
2823
 
2824
- var message = '<h2>'+data.from_agent+' has transferred a chat to you!</h2>';
2825
 
2826
- niftyShowDialog("Incoming Transfer chat", message, 'Accept', 'Reject', function() {
2827
  /* accept */
2828
  socket.emit('accept transfer', {socketid:data.socketid,chatid:data.chatid,from_agent:bleeper_agent_name})
2829
  /* add the user to the active chats */
2830
  nc_add_user_to_list(visitor_list[data.chatid], function(data){
2831
  /* open the chat */
2832
  jQuery("#"+data.chatid).click();
 
 
 
2833
  });
2834
  }, function() {
2835
  /* reject */
@@ -2844,9 +2937,9 @@ bleeper_delegates = function() {
2844
  if (typeof data.chatid !== "undefined" && typeof data.department !== "undefined") {
2845
  if(data.department === bleeper_agent_department){
2846
  //This agent is a part of the desired department
2847
- var message = '<h2>Transfer for your department!</h2>';
2848
 
2849
- niftyShowDialog("Incoming Department Transfer", message, 'Accept', 'Reject', function() {
2850
  /* accept */
2851
  socket.emit('accept department transfer', {socketid:data.socketid,chatid:data.chatid,from_agent:bleeper_agent_name})
2852
  /* add the user to the active chats */
@@ -3142,6 +3235,7 @@ bleeper_delegates = function() {
3142
  }
3143
 
3144
  jQuery.event.trigger({type: "bleeper_after_update_visitor_list"});
 
3145
  }
3146
 
3147
  });
@@ -3176,6 +3270,7 @@ bleeper_delegates = function() {
3176
  delete visitor_validator[data.chatid];
3177
  }
3178
  jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:data});
 
3179
  });
3180
 
3181
  socket.on('agent joined', function (data) {
@@ -3195,8 +3290,11 @@ bleeper_delegates = function() {
3195
  * @return void
3196
  */
3197
  socket.on('initiate received admin', function (data) {
3198
- jQuery.event.trigger({type: "bleeper_add_agent", ndata:{chatid:data.chatid, agent:agent_id}});
3199
- jQuery.event.trigger({type: "bleeper_notify_agent_initiate_received", ndata:{chatid:data.chatid, agent:agent_id}});
 
 
 
3200
  });
3201
 
3202
 
@@ -3407,6 +3505,7 @@ function bleeper_update_visitor_data_list_per_online(total_visitors) {
3407
  // this visitor must stay..
3408
  } else {
3409
  jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:total_visitors[m]});
 
3410
  delete total_visitors[m];
3411
  }
3412
  }
@@ -3488,7 +3587,9 @@ function bleeper_return_visitor_lifetime_data(data) {
3488
  } else {
3489
  bleeper_date_current = '';
3490
  }
3491
- return "Lifetime: <label class='label-default time-state-label' title='Total lifetime' alt='Total lifetime'>"+bleeper_date_first+"</label> / <label class='label-default time-state-label' title='Current page' alt='Current page'>"+bleeper_date_current+"</label>";
 
 
3492
 
3493
  }
3494
 
34
  var ping_list = {};
35
  var old_version_detected = false;
36
 
37
+ var current_init_attempt_id = false;
38
+
39
  /**
40
  * Setup supported file suffix types
41
  */
116
  };
117
 
118
  /* Regex for inline links */
119
+ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.;:<>]*[-A-Z0-9+&@#\/%=~_|<>])/ig;
120
 
121
  (function($) {
122
  $(document).on("bleeper_dom_ready", function(e) {
123
+
124
+
125
+
126
  if (typeof bleeper_ring_override !== "undefined") {
127
  bleeper_ring = new Audio(bleeper_ring_override);
128
  }
139
  sid = nc_getCookie("nc_sid");
140
  chatid = nc_getCookie("nc_chatid");
141
 
142
+ jQuery(".chatArea .messages img").on("load", function() {
143
+ if(typeof $messages !== "undefined" && typeof $messages[0] !== "undefined" && typeof $messages[0].scrollHeight !== "undefined"){
144
+ setTimeout(function(){
145
+ $messages[0].scrollTop = $messages[0].scrollHeight;
146
+ }, 300);
147
+ }
148
+ });
149
+
150
  if (typeof override_chatid !== "undefined") {
151
  chatid = override_chatid;
152
  }
180
  jQuery("#wplc_send_msg").click();
181
  } else if (event.which === 38 && !event.shiftKey) {
182
  if (typeof lastmessagesent !== "undefined") {
183
+ /*if(typeof wplc_integration_pro_active !== "undefined" && wplc_integration_pro_active === "true"){
184
  var mid = lastmessagesent;
185
  var mdiv = jQuery('.message_'+mid+ " .messageBody").html();
186
  jQuery("#inputMessage").val(mdiv);
187
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
188
  niftyIsEditing = mid;
189
+ }*/
190
  }
191
 
192
  } else if (event.which === 27 && !event.shiftKey) {
221
  });
222
 
223
 
224
+ /* $(document).on("mouseout",".bleeper-edit-message", function() {
225
  $(this).hide();
226
 
227
  });
243
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
244
  niftyIsEditing = mid;
245
 
246
+ }); */
247
 
248
  // Click events
249
  // Focus input when clicking on the message input's border
262
 
263
  $("body").on("click", ".init_chat", function() {
264
  var tcid = $(this).attr('cid');
265
+
266
+ current_init_attempt_id = tcid;
267
+
268
  jQuery.event.trigger({type: "bleeper_initiate_chat", ndata:{chatid:tcid, agent:agent_id}});
269
  socket.emit('initiate chat',{chatid: tcid});
270
  nc_add_user_to_list(visitor_list[tcid], function() {
276
  });
277
  });
278
 
279
+ $('body').on('click', '#inchat_drop_down', function(){
280
+ jQuery('#chatCloseTitle').hide();
281
+ if(typeof active_chatid !== 'undefined' && active_chatid !== null && active_chatid !== false && active_chatid !== undefined){
282
+ if(typeof visitor_list[active_chatid] !== 'undefined'){
283
+ if(visitor_list[active_chatid]['involved'].length > 1){
284
+ jQuery('#chatCloseTitle').show();
285
+ }
286
+ }
287
+ }
288
+ });
289
+
290
  $("body").on("click", ".bleeper_close_item", function() {
291
  var tcid = $(this).attr('cid');
292
  $("#"+tcid).remove();
293
  bleeper_remove_chatid_from_ls(tcid);
294
  bleeper_remove_events(tcid);
295
 
296
+ //delete visitor_list[tcid];
297
 
298
  setTimeout(function() {
299
  $("#user_count").click();
353
 
354
 
355
  params = {
356
+ token: '2d86b9f53059d3f4efed1ea51a888eb8',
357
  api_key: nifty_api_key
358
  },
359
 
393
  });
394
 
395
 
396
+ niftyShowDialog("Invite Agent", message, 'Invite', 'Cancel', function() {
397
  var ag_selection = $('input[name=ag_t_selection]:checked', '.t_agent_list').val();
398
  var transfer_chat_id = $('input[name=ag_t_selection]:checked', '.t_agent_list').attr('cid');
399
  if (typeof ag_selection !== "undefined") {
402
 
403
  },null);
404
 
405
+ jQuery('#nifty_admin_chat_prompt_confirm').hide();
406
+
407
  });
408
 
409
  $("body").on("click", ".chatTransferDepartment", function() {
418
  message += '</div>';
419
 
420
 
421
+ niftyShowDialog("Invite Department", message, 'Invite', 'Cancel', function() {
422
  var dp_selection = $('input[name=dp_t_selection]:checked', '.t_department_list').val();
423
  var transfer_chat_id = $('input[name=dp_t_selection]:checked', '.t_department_list').attr('cid');
424
  if (typeof dp_selection !== "undefined") {
427
 
428
  },null);
429
 
430
+ jQuery('#nifty_admin_chat_prompt_confirm').hide();
431
+
432
+ });
433
+
434
+ $('body').on('click', 'input[name=dp_t_selection],input[name=ag_t_selection]', function(){
435
+ jQuery('#nifty_admin_chat_prompt_confirm').show();
436
  });
437
 
438
 
448
  var selected_page_url = jQuery("#bleeper_direct_to_page_select").val();
449
 
450
  socket.emit('custom data',{action:'send_user_direct_to_page',chatid:active_chatid,agent_name:bleeper_agent_name, direction: selected_page_url, pretty_name: bleeper_valid_direct_to_page_array[selected_page_url]});
451
+
452
+ /** Store this for later retrieval */
453
+ var direct_to_page_message = {}
454
+ direct_to_page_message.originates = 0;
455
+ direct_to_page_message.msg = bleeper_agent_name + ' would like to direct you to the following page: ' + bleeper_valid_direct_to_page_array[selected_page_url] + ' - ' + selected_page_url;
456
+ direct_to_page_message.other = {};
457
+
458
+ var wplc_d = new Date();
459
+ direct_to_page_message.other.datetime = Math.round( wplc_d.getTime() / 1000 );
460
+ direct_to_page_message.other.agent_id = 0;
461
+
462
+ var randomNum = Math.floor((Math.random() * 100) + 1);
463
+ var msgID = Date.now()+randomNum;
464
+
465
+ wplc_push_message_to_chatbox(direct_to_page_message, 0, function() {
466
+ jQuery.event.trigger({type: "bleeper_scroll_bottom"});
467
+ });
468
+
469
+ if(direct_to_page_message.msg !== false){
470
+ /* this message is going to another agent */
471
+ var api_endpoint = 'send_agent_message';
472
+ var ato = 0;
473
+ var data = {
474
+ relay_action: 'wplc_admin_send_msg',
475
+ agent_id: 0,
476
+ security: wplc_nonce,
477
+ chat_id: active_chatid,
478
+ message: direct_to_page_message.msg,
479
+ ato: ato,
480
+ msg_id: msgID,
481
+ orig_override: direct_to_page_message.originates
482
+
483
+ };
484
+ wplc_rest_api(api_endpoint, data, 12000, function(){
485
+
486
+ data.orig_override = 3;
487
+ wplc_rest_api(api_endpoint, data, 12000, null);
488
+ });
489
+
490
+
491
+
492
+ }
493
+
494
  },null);
495
 
496
  jQuery.event.trigger({type: "bleeper_direct_user_to_page_prompt"});
536
  jQuery.event.trigger({type: "bleeper_add_initiate_button_no_col", cid:tmp_chatid_close});
537
  nc_remove_open_chat_visitor_row(tmp_chatid_close);
538
 
539
+ var data = {
540
+ agent_id: agent_id,
541
+ security: wplc_nonce,
542
+ chat_id: tmp_chatid_close,
543
+ };
544
+ wplc_rest_api('end_chat', data, 12000, function(){
545
+
546
+ });
547
+
548
  setTimeout(function() {
549
  $("#user_count").click();
550
  },100);
766
 
767
  $("#nifty_file_input").on("change", function(){
768
  var file = this.files[0]; //Last file in array
769
+ wplcShareFile(file,'#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_attach");
770
  jQuery("#chat_drag_zone").fadeOut();
771
+
772
+ this.value = "";
773
 
774
  });
775
 
925
  bleeper_dash_fullscreen_minimal = !bleeper_dash_fullscreen_minimal; //Flips this state
926
  });
927
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
928
  if (document.getElementById('messages') !== null) {
929
  bleeper_mutation_observer_init();
930
  bleeper_init_emoji_picker();
1181
  jQuery("#nifty_admin_chat_prompt_cancel").text("Cancel");
1182
  }
1183
 
1184
+ jQuery('#nifty_admin_chat_prompt_confirm').show();
1185
 
1186
  niftyRegisterDialogCallback(callback);
1187
  niftyRegisterDialogCancelCallback(cancel_callback);
1384
  * @param {string} originalID The id of the div to show when upload final div to show after evething is complete
1385
  */
1386
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
1387
+ if(fileToUpload == undefined || fileToUpload == false || fileToUpload == null){
1388
+ return;
1389
+ }
1390
+
1391
+ var wplc_allowed_files = ' Allowed File Types: .jpg, .jpeg, .png, .bmp, .mp4, .mp3, .mpeg, .mpeg4, .gif, .tiff, .tif, .zip, .oog, .webm, .avi, .wav, .doc, .pdf';
1392
+
1393
  var formData = new FormData();
1394
  formData.append('file', fileToUpload);
1395
  formData.append('timestamp', Date.now());
1396
+ formData.append('_wpnonce', wplc_restapi_nonce);
1397
+ formData.append('cid', active_chatid);
1398
  jQuery(uploadingID).show();
1399
  jQuery(originalID).hide();
1400
  jQuery(successID).hide();
1449
  }
1450
 
1451
  if(fileLinkUrl !== false){
1452
+ if(fileLinkUrl !== 'Security Violation - File unsafe'){
1453
  var tag = (fileLinkUrl.indexOf(".png") !== -1 || fileLinkUrl.indexOf(".PNG") !== -1 || fileLinkUrl.indexOf(".jpg") !== -1 || fileLinkUrl.indexOf(".JPG") !== -1 || fileLinkUrl.indexOf(".jpeg") !== -1 || fileLinkUrl.indexOf(".JPEG") !== -1 || fileLinkUrl.indexOf(".gif") !== -1 || fileLinkUrl.indexOf(".GIF") !== -1 || fileLinkUrl.indexOf(".bmp")!== -1 || fileLinkUrl.indexOf(".BMP") !== -1 ) ? "img" : "link";
1454
 
1455
  if(tag !== "img"){
1459
  username: username,
1460
  message: (tag + ":" + fileLinkUrl + ":" + tag)
1461
  });
1462
+ socket.emit("new message", {message:(tag + ":" + fileLinkUrl + ":" + tag),chatid:active_chatid, aoru: agent_id});
1463
+
1464
+ var randomNum = Math.floor((Math.random() * 100) + 1);
1465
+ var msgID = Date.now()+randomNum;
1466
+
1467
+ jQuery.event.trigger({type: "bleeper_add_message_chatbox", message: (tag + ":" + fileLinkUrl + ":" + tag), msg_id: msgID});
1468
+ jQuery.event.trigger({type: "bleeper_send_message", message: (tag + ":" + fileLinkUrl + ":" + tag), msg_id: msgID});
1469
+ } else {
1470
+ alert('Security Violation: File Not Allowed.' + wplc_allowed_files);
1471
+ }
1472
  }
1473
  }
1474
  else{
1502
  }, 2000);
1503
  }
1504
  } else{
1505
+ alert("File type not supported." + wplc_allowed_files);
1506
  jQuery(uploadingID).hide();
1507
  jQuery(failedID).show();
1508
  setTimeout(function(){
1590
 
1591
 
1592
  var edit_item = "";
1593
+ /*if(data.aoru !== 'u'){
1594
  var $editDiv = jQuery('<span class="bleeper-edit-message" style="display:none"/>: ').text('edit');
1595
  } else {
1596
  var $editDiv = jQuery('<span class=""/>: ').text('');
1597
+ }*/
1598
+
1599
+ var $editDiv = jQuery('<span class=""/>: ').text('');
1600
+
1601
 
1602
  var $messageBodyDiv = jQuery('<span class="messageBody" data-message="' + data.message + '">')
1603
  .html(wplcFormatParser(data.message));
1810
  * @param {int} count The new visitor count
1811
  */
1812
  function nc_update_visitor_count(count) {
1813
+ if(typeof count === 'number'){
1814
+ jQuery("#active_count").html(count);
1815
+ } else {
1816
+ /** Wait a second and then count the elements for a more accurate count */
1817
+ setTimeout(function(){
1818
+ jQuery("#active_count").html(document.querySelectorAll('.visitorList').length);
1819
+ }, 1000);
1820
+ }
1821
  }
1822
 
1823
  /**
1922
  var date = new Date();
1923
  var minute = date.getMinutes();
1924
  var hour = date.getHours();
1925
+
1926
+ if(minute < 10){
1927
+ minute = '0' + minute;
1928
+ }
1929
 
1930
  /* update the visitor table */
1931
  jQuery("#vis"+data.chatid+" .session-state-label").html(bleeper_pretty_chat_status(data.state));
2018
  var date = new Date();
2019
  var minute = date.getMinutes();
2020
  var hour = date.getHours();
2021
+
2022
+ if(minute < 10){
2023
+ minute = '0' + minute;
2024
+ }
2025
+
2026
 
2027
  jQuery("#"+data.chatid+ " .userList").attr("socket",data.socketid);
2028
  jQuery("#"+data.chatid+ " .userInfo").html(hour + ":" + minute);
2589
  for (var i = 0, len = image_match.length; i < len; i++) {
2590
  var to_find = image_match[i];
2591
  var to_replace = to_find.substring(4, to_find.length-4); // remove the starting #### and ending ####
2592
+ msg = msg.replace(to_find, "<img style='max-width:100%; cursor:pointer;' onclick='window.open(this.src)' src='"+bleeper_url_path_em_stripper(to_replace.replace("::", ":"))+"' />");
2593
  bypass_inline_links = true;
2594
 
2595
  }
2600
  for (var i = 0, len = image_match.length; i < len; i++) {
2601
  var to_find = image_match[i];
2602
  var to_replace = to_find.substring(4, to_find.length-4); // remove the starting #### and ending ####
2603
+ msg = msg.replace(to_find, "<img style='max-width:100%; cursor:pointer;' onclick='window.open(this.src)' src='"+bleeper_url_path_em_stripper(to_replace)+"' />");
2604
  bypass_inline_links = true;
2605
 
2606
  }
2711
  * @param {object} data The visitor data packet
2712
  */
2713
  function nc_remove_visitor_after_time(data) {
2714
+ // var visitor_timeout_seconds = 12000; /* one second less than the a2vping */
2715
+ // clearTimeout(remove_visitor_timer[data.chatid]);
2716
 
2717
+ // remove_visitor_timer[data.chatid] = setTimeout(function() {
2718
+ // //jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:data});
2719
 
2720
+ // clearTimeout(ping_list[data.socketid]);
2721
+ // },visitor_timeout_seconds);
2722
 
2723
  }
2724
 
2886
  visitor_list[data.chatid].email = bleeper_strip_tags(data.data.email);
2887
  jQuery("#vis"+data.chatid+" .userName").html(bleeper_strip_tags(data.data.name));
2888
  var orig_elm = jQuery("#vis"+data.chatid);
2889
+
2890
+ if(orig_elm.length == 0){
2891
+ bleeper_get_visitor_data();
2892
+ }
2893
+
2894
  jQuery("#vis"+data.chatid).remove();
2895
  jQuery(orig_elm).prependTo(".visitorListBox");
2896
  jQuery("#"+data.chatid+" .userName").html(bleeper_strip_tags(data.data.name));
2911
  socket.on('transferring chat', function (data) {
2912
  if (typeof data.chatid !== "undefined") {
2913
 
2914
+ var message = '<h2>'+data.from_agent+' has invited you to a chat!</h2>';
2915
 
2916
+ niftyShowDialog("Incoming Chat Invite", message, 'Accept', 'Reject', function() {
2917
  /* accept */
2918
  socket.emit('accept transfer', {socketid:data.socketid,chatid:data.chatid,from_agent:bleeper_agent_name})
2919
  /* add the user to the active chats */
2920
  nc_add_user_to_list(visitor_list[data.chatid], function(data){
2921
  /* open the chat */
2922
  jQuery("#"+data.chatid).click();
2923
+ setTimeout(function(){
2924
+ jQuery('#nifty_join_chat_button').click();
2925
+ }, 500);
2926
  });
2927
  }, function() {
2928
  /* reject */
2937
  if (typeof data.chatid !== "undefined" && typeof data.department !== "undefined") {
2938
  if(data.department === bleeper_agent_department){
2939
  //This agent is a part of the desired department
2940
+ var message = '<h2>Chat invite for your department!</h2>';
2941
 
2942
+ niftyShowDialog("Incoming Department Invite", message, 'Accept', 'Reject', function() {
2943
  /* accept */
2944
  socket.emit('accept department transfer', {socketid:data.socketid,chatid:data.chatid,from_agent:bleeper_agent_name})
2945
  /* add the user to the active chats */
3235
  }
3236
 
3237
  jQuery.event.trigger({type: "bleeper_after_update_visitor_list"});
3238
+
3239
  }
3240
 
3241
  });
3270
  delete visitor_validator[data.chatid];
3271
  }
3272
  jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:data});
3273
+ nc_update_visitor_count(false);
3274
  });
3275
 
3276
  socket.on('agent joined', function (data) {
3290
  * @return void
3291
  */
3292
  socket.on('initiate received admin', function (data) {
3293
+ if(current_init_attempt_id === data.chatid){
3294
+ jQuery.event.trigger({type: "bleeper_add_agent", ndata:{chatid:data.chatid, agent:agent_id}});
3295
+ jQuery.event.trigger({type: "bleeper_notify_agent_initiate_received", ndata:{chatid:data.chatid, agent:agent_id}});
3296
+ current_init_attempt_id = false;
3297
+ }
3298
  });
3299
 
3300
 
3505
  // this visitor must stay..
3506
  } else {
3507
  jQuery.event.trigger({type: "bleeper_remove_visitor", ndata:total_visitors[m]});
3508
+ nc_update_visitor_count(false);
3509
  delete total_visitors[m];
3510
  }
3511
  }
3587
  } else {
3588
  bleeper_date_current = '';
3589
  }
3590
+ /* Removed the following in 06/2019 */
3591
+ /*Lifetime: <label class='label-default time-state-label' title='Total lifetime' alt='Total lifetime'>"+bleeper_date_first+"</label> <br>*/
3592
+ return "Page: <label class='label-default time-state-label' title='Current page' alt='Current page'>"+bleeper_date_current+"</label>";
3593
 
3594
  }
3595
 
js/wplc_bleeper_admin_events.js CHANGED
@@ -202,6 +202,8 @@ jQuery(document).on("bleeper_custom_data_received", function(e) {
202
  }
203
 
204
  if(e.ndata.action === "wplc_send_live_rating") {
 
 
205
  if(typeof e.ndata.rating_data !== "undefined"){
206
  //Rating data received
207
  if(typeof e.ndata.rating_data.score !== "undefined"){
@@ -221,7 +223,7 @@ jQuery(document).on("bleeper_custom_data_received", function(e) {
221
  });
222
  }
223
  }
224
- }
225
  }
226
 
227
 
202
  }
203
 
204
  if(e.ndata.action === "wplc_send_live_rating") {
205
+ /** REMOVED as of 06-2019*/
206
+ /*
207
  if(typeof e.ndata.rating_data !== "undefined"){
208
  //Rating data received
209
  if(typeof e.ndata.rating_data.score !== "undefined"){
223
  });
224
  }
225
  }
226
+ }*/
227
  }
228
 
229
 
js/wplc_choose.js CHANGED
@@ -19,6 +19,7 @@ jQuery(document).on("bleeper_dom_ready", function(e) {
19
  * New agent disconnected
20
  */
21
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
 
22
  wplc_ma_update_admin_bar(-1, "event off"); //remove one agent
23
  });
24
  });
@@ -83,6 +84,9 @@ function wplc_choose_delegate(){
83
  wplc_ma_update_admin_bar(1, "click on"); //Add one agent
84
 
85
  } else {
 
 
 
86
  jQuery("#wplc_agent_status_text").html(wplc_choose_admin_strings.not_accepting_status);
87
  connection_lost_type = 'offline_status';
88
  var data = {
@@ -95,7 +99,20 @@ function wplc_choose_delegate(){
95
  wplc_ma_update_admin_bar(-1, "click off"); //remove one agent
96
 
97
  }
 
 
 
 
 
 
 
98
  };
 
 
 
 
 
 
99
  }
100
  }
101
  }
@@ -103,8 +120,6 @@ function wplc_choose_delegate(){
103
  //Parse the current value
104
  function wplc_ma_update_admin_bar(amount, where){
105
  wplc_online_agent_count = wplc_ma_parse_active_count_from_container();
106
- console.log(wplc_online_agent_count);
107
- console.log(where);
108
  wplc_online_agent_count += amount; //we can add a negative value to remove
109
 
110
  if(wplc_online_agent_count < 0){
19
  * New agent disconnected
20
  */
21
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
22
+ if(typeof e.ndata.chatid !== 'undefined'){ return; }
23
  wplc_ma_update_admin_bar(-1, "event off"); //remove one agent
24
  });
25
  });
84
  wplc_ma_update_admin_bar(1, "click on"); //Add one agent
85
 
86
  } else {
87
+ jQuery.event.trigger({type: "wplc_end_all_open_chats"});
88
+
89
+
90
  jQuery("#wplc_agent_status_text").html(wplc_choose_admin_strings.not_accepting_status);
91
  connection_lost_type = 'offline_status';
92
  var data = {
99
  wplc_ma_update_admin_bar(-1, "click off"); //remove one agent
100
 
101
  }
102
+
103
+ jQuery('#wplc_agent_status').attr('disabled', 'disabled');
104
+ wplc_switchery_init.disable();
105
+ setTimeout(function(){
106
+ jQuery('#wplc_agent_status').removeAttr('disabled', 'disabled');
107
+ wplc_switchery_init.enable();
108
+ }, 1000);
109
  };
110
+
111
+ if(jQuery('#choose_online').attr('data-force-on') === 'true'){
112
+ if(jQuery("#wplc_agent_status").attr('checked') === undefined || jQuery("#wplc_agent_status").attr('checked') !== 'checked'){
113
+ jQuery('.wplc_switchery').trigger('click');
114
+ }
115
+ }
116
  }
117
  }
118
  }
120
  //Parse the current value
121
  function wplc_ma_update_admin_bar(amount, where){
122
  wplc_online_agent_count = wplc_ma_parse_active_count_from_container();
 
 
123
  wplc_online_agent_count += amount; //we can add a negative value to remove
124
 
125
  if(wplc_online_agent_count < 0){
js/wplc_common_node.js CHANGED
@@ -1,4 +1,4 @@
1
  // server setup
2
 
3
  var wplc_baseurl = config.baseurl;
4
- var WPLC_SOCKET_URI = 'https://tcx-live-chat.appspot.com';
1
  // server setup
2
 
3
  var wplc_baseurl = config.baseurl;
4
+ var WPLC_SOCKET_URI = config.serverurl;
js/wplc_dashboard.js CHANGED
@@ -1,6 +1,6 @@
1
  var wplcApiUrls = {
2
  blogFeedUrl: 'https://wp-livechat.com/wp-json/wp/v2/posts',
3
- visitorURL: wplc_get_random_server() + '/api/v1/total-visitors-online?api_key='+nifty_api_key
4
  }
5
 
6
  function getTotalVisitors() {
1
  var wplcApiUrls = {
2
  blogFeedUrl: 'https://wp-livechat.com/wp-json/wp/v2/posts',
3
+ visitorURL: WPLC_SOCKET_URI + '/api/v1/total-visitors-online?api_key='+nifty_api_key
4
  }
5
 
6
  function getTotalVisitors() {
js/wplc_ma.js CHANGED
@@ -39,6 +39,8 @@ jQuery(function() {
39
  }
40
  });
41
  }
 
 
42
 
43
 
44
 
39
  }
40
  });
41
  }
42
+
43
+ jQuery(this).hide();
44
 
45
 
46
 
js/wplc_node.js CHANGED
@@ -111,7 +111,7 @@ var bleeper_current;
111
  var bleeper_location_info = false;
112
 
113
  /* Regex for inline links */
114
- var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.;<>]*[-A-Z0-9+&@#\/%=~_|<>])/ig;
115
 
116
  /* OS Holder */
117
  var bleeper_user_current_os = false; //When false the 'bleeper_get_operating_system' function will run all actions to identify the OS
@@ -221,48 +221,6 @@ jQuery(document).on('wplc_sockets_ready', function () {
221
 
222
  wplc_check_minimize_cookie = Cookies.get('nifty_minimize');
223
 
224
- var dragTimeout = -1;
225
- jQuery("html").bind("dragenter", function () {
226
- jQuery("#chat_drag_zone").fadeIn();
227
- bleeper_show_drag_zone = true;
228
- });
229
-
230
- jQuery("html").bind("dragover", function () {
231
- bleeper_show_drag_zone = true;
232
- });
233
-
234
- jQuery("html").bind("dragleave", function () {
235
- bleeper_show_drag_zone = false;
236
- clearTimeout(dragTimeout);
237
- dragTimeout = setTimeout(function () {
238
- if (!bleeper_show_drag_zone) {
239
- jQuery("#chat_drag_zone").fadeOut();
240
- }
241
- }, 200);
242
- });
243
-
244
- jQuery("#chat_drag_zone").on("dragover", function (event) {
245
- event.preventDefault();
246
- event.stopPropagation();
247
- });
248
- jQuery("#chat_drag_zone").on("dragleave", function (event) {
249
- event.preventDefault();
250
- event.stopPropagation();
251
- });
252
- jQuery("#chat_drag_zone").on("drop", function (event) {
253
- event.preventDefault();
254
- event.stopPropagation();
255
- if (jQuery('#nifty_add_media:checked').length > 0) {
256
- //Do nothing its open
257
- } else {
258
- jQuery("#nifty_add_media").click();
259
- }
260
-
261
- var fileInput = document.getElementById('nifty_file_input');
262
- fileInput.files = event.originalEvent.dataTransfer.files;
263
- jQuery("#chat_drag_zone").fadeOut();
264
- });
265
-
266
  /**
267
  * Builds the socket delegates. This needs to be called everytime a connection is made (i.e. moving from a short poll to a long poll)
268
  */
@@ -497,6 +455,8 @@ jQuery(document).on('wplc_sockets_ready', function () {
497
  if (typeof wplc_enable_ding !== 'undefined' && '1' === wplc_enable_ding) {
498
  bleeper_ping.play();
499
  }
 
 
500
  });
501
 
502
  // Whenever the server emits 'new message', update the chat body
@@ -534,6 +494,7 @@ jQuery(document).on('wplc_sockets_ready', function () {
534
  ndata: data
535
  });
536
 
 
537
  });
538
 
539
  socket.on('new_socket', function (socketid) {});
@@ -652,6 +613,8 @@ jQuery(document).on('wplc_sockets_ready', function () {
652
  var file = this.files[0]; //Last file in array
653
  wplcShareFile(file, '#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_select_file");
654
  jQuery("#chat_drag_zone").fadeOut();
 
 
655
  });
656
 
657
  /** Image pasting functionality */
@@ -767,7 +730,7 @@ jQuery(document).on('wplc_sockets_ready', function () {
767
  */
768
  wplc_connect = function (keepalive) {
769
 
770
- if (bleeper_inactive === false) {
771
  if (typeof socket !== "undefined") {
772
  if (socket.connected) {
773
 
@@ -866,13 +829,13 @@ jQuery(document).on('wplc_sockets_ready', function () {
866
 
867
  } else if (event.which === 38 && !event.shiftKey) {
868
  if (typeof lastmessagesent !== "undefined") {
869
- if (typeof wplc_integration_pro_active !== "undefined" && wplc_integration_pro_active === "true") {
870
  var mid = lastmessagesent;
871
  var mdiv = jQuery('.message_' + mid + " .messageBody").html();
872
  jQuery("#wplc_chatmsg").val(mdiv);
873
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
874
  niftyIsEditing = mid;
875
- }
876
  }
877
 
878
  } else if (event.which === 27 && !event.shiftKey) {
@@ -908,7 +871,7 @@ jQuery(document).on('wplc_sockets_ready', function () {
908
  $inputMessage.focus();
909
  });
910
 
911
- jQuery(document).on("mouseleave", ".message", function () {
912
  var tmid = jQuery(this).attr('mid');
913
  jQuery(".message_" + tmid + " .bleeper-edit-message").hide();
914
  });
@@ -916,13 +879,15 @@ jQuery(document).on('wplc_sockets_ready', function () {
916
  jQuery(document).on("mouseenter", ".message", function () {
917
  var tmid = jQuery(this).attr('mid');
918
  jQuery(".message_" + tmid + " .bleeper-edit-message").show();
919
- });
920
 
921
  jQuery(document).on("click", ".bleeper_restart_chat", function () {
922
  jQuery("#wp-live-chat-header").click();
 
 
923
  setTimeout(function () {
924
  jQuery("#wp-live-chat-header").click();
925
- }, 50);
926
 
927
  jQuery('#wplc_end_chat_button').show();
928
  jQuery('#wplc_end_chat_button').removeAttr('wplc_disable');
@@ -936,14 +901,14 @@ jQuery(document).on('wplc_sockets_ready', function () {
936
  sendMessage(message);
937
  });
938
 
939
- jQuery(document).on("click", ".bleeper-edit-message", function () {
940
- var mid = jQuery(this).parent().attr('mid');
941
- var mdiv = jQuery(this).siblings('.messageBody').attr("data-message");
942
- jQuery("#wplc_chatmsg").val(mdiv);
943
 
944
- // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
945
- niftyIsEditing = mid;
946
- });
947
 
948
 
949
  jQuery(document).on("nifty_trigger_open_chat", function (event) {
@@ -1006,11 +971,11 @@ jQuery("#wplc_start_chat_btn").on("click", function () {
1006
  var wplc_email = jQuery("#wplc_email").val();
1007
 
1008
  if (wplc_name.length <= 0) {
1009
- alert("Please enter your name");
1010
  return false;
1011
  }
1012
  if (wplc_email.length <= 0) {
1013
- alert("Please enter your email address");
1014
  return false;
1015
  }
1016
 
@@ -1391,9 +1356,16 @@ function niftyTextEdit(insertContent) {
1391
  * @param {string} originalID The id of the div to show when upload final div to show after evething is complete
1392
  */
1393
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID) {
 
 
 
 
 
 
1394
  var formData = new FormData();
1395
  formData.append('file', fileToUpload);
1396
  formData.append('timestamp', Date.now());
 
1397
  jQuery(uploadingID).show();
1398
  jQuery(originalID).hide();
1399
  jQuery(successID).hide();
@@ -1448,17 +1420,21 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
1448
  }
1449
 
1450
  if (fileLinkUrl !== false) {
1451
- var tag = (fileLinkUrl.indexOf(".png") !== -1 || fileLinkUrl.indexOf(".PNG") !== -1 || fileLinkUrl.indexOf(".jpg") !== -1 || fileLinkUrl.indexOf(".JPG") !== -1 || fileLinkUrl.indexOf(".jpeg") !== -1 || fileLinkUrl.indexOf(".JPEG") !== -1 || fileLinkUrl.indexOf(".gif") !== -1 || fileLinkUrl.indexOf(".GIF") !== -1 || fileLinkUrl.indexOf(".bmp") !== -1 || fileLinkUrl.indexOf(".BMP") !== -1) ? "img" : "link";
 
1452
 
1453
- if (tag !== "img") {
1454
- tag = (fileLinkUrl.indexOf(".mp4") !== -1 || fileLinkUrl.indexOf(".mpeg4") !== -1 || fileLinkUrl.indexOf(".webm") !== -1 || fileLinkUrl.indexOf(".oog") !== -1) ? "video" : "link"; //video now
 
 
 
 
 
 
 
 
 
1455
  }
1456
- jQuery("#wplc_chatmsg").val(tag + ":" + fileLinkUrl + ":" + tag); //Add to input field
1457
- jQuery("#wplc_send_msg").trigger("click"); //Send message
1458
- jQuery("#bleeper_send_msg").trigger("click"); //Send message
1459
- setTimeout(function () {
1460
- $messages[0].scrollTop = $messages[0].scrollHeight;
1461
- }, 1000);
1462
  }
1463
  } else {
1464
  jQuery(uploadingID).hide();
@@ -1490,7 +1466,7 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
1490
  }, 2000);
1491
  }
1492
  } else {
1493
- alert("File type not supported");
1494
  jQuery(uploadingID).hide();
1495
  jQuery(failedID).show();
1496
  setTimeout(function () {
@@ -1578,7 +1554,7 @@ var wplcFormatParser = function (msg) {
1578
  for (var i = 0, len = image_match.length; i < len; i++) {
1579
  var to_find = image_match[i];
1580
  var to_replace = to_find.substring(4, to_find.length - 4); // remove the starting #### and ending ####
1581
- msg = msg.replace(to_find, "<img style='max-width:100%;' src='" + bleeper_url_path_em_stripper(to_replace.replace("::", ":")) + "' />");
1582
  bypass_inline_links = true;
1583
 
1584
  }
@@ -1589,7 +1565,7 @@ var wplcFormatParser = function (msg) {
1589
  for (var i = 0, len = image_match.length; i < len; i++) {
1590
  var to_find = image_match[i];
1591
  var to_replace = to_find.substring(4, to_find.length - 4); // remove the starting #### and ending ####
1592
- msg = msg.replace(to_find, "<img src='" + bleeper_url_path_em_stripper(to_replace) + "' />");
1593
  bypass_inline_links = true; //There is an image being processed, let's leave it alone
1594
 
1595
  }
@@ -1625,7 +1601,9 @@ var wplcFormatParser = function (msg) {
1625
  }
1626
  }
1627
 
1628
- msg = msg.replace(/\n/g, "<br />");
 
 
1629
 
1630
  if (bypass_inline_links === false) {
1631
  msg = bleeper_inline_link_generator(msg);
111
  var bleeper_location_info = false;
112
 
113
  /* Regex for inline links */
114
+ var bleeper_link_match_regex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!,.;:<>]*[-A-Z0-9+&@#\/%=~_|<>])/ig;
115
 
116
  /* OS Holder */
117
  var bleeper_user_current_os = false; //When false the 'bleeper_get_operating_system' function will run all actions to identify the OS
221
 
222
  wplc_check_minimize_cookie = Cookies.get('nifty_minimize');
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  /**
225
  * Builds the socket delegates. This needs to be called everytime a connection is made (i.e. moving from a short poll to a long poll)
226
  */
455
  if (typeof wplc_enable_ding !== 'undefined' && '1' === wplc_enable_ding) {
456
  bleeper_ping.play();
457
  }
458
+
459
+ jQuery('#bleeper_chat_ended').remove();
460
  });
461
 
462
  // Whenever the server emits 'new message', update the chat body
494
  ndata: data
495
  });
496
 
497
+ jQuery('.tmp-welcome-msg').remove();
498
  });
499
 
500
  socket.on('new_socket', function (socketid) {});
613
  var file = this.files[0]; //Last file in array
614
  wplcShareFile(file, '#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_select_file");
615
  jQuery("#chat_drag_zone").fadeOut();
616
+
617
+ this.value = "";
618
  });
619
 
620
  /** Image pasting functionality */
730
  */
731
  wplc_connect = function (keepalive) {
732
 
733
+ if (bleeper_inactive === false && wplc_online) {
734
  if (typeof socket !== "undefined") {
735
  if (socket.connected) {
736
 
829
 
830
  } else if (event.which === 38 && !event.shiftKey) {
831
  if (typeof lastmessagesent !== "undefined") {
832
+ /*if (typeof wplc_integration_pro_active !== "undefined" && wplc_integration_pro_active === "true") {
833
  var mid = lastmessagesent;
834
  var mdiv = jQuery('.message_' + mid + " .messageBody").html();
835
  jQuery("#wplc_chatmsg").val(mdiv);
836
  // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
837
  niftyIsEditing = mid;
838
+ } */
839
  }
840
 
841
  } else if (event.which === 27 && !event.shiftKey) {
871
  $inputMessage.focus();
872
  });
873
 
874
+ /*jQuery(document).on("mouseleave", ".message", function () {
875
  var tmid = jQuery(this).attr('mid');
876
  jQuery(".message_" + tmid + " .bleeper-edit-message").hide();
877
  });
879
  jQuery(document).on("mouseenter", ".message", function () {
880
  var tmid = jQuery(this).attr('mid');
881
  jQuery(".message_" + tmid + " .bleeper-edit-message").show();
882
+ });*/
883
 
884
  jQuery(document).on("click", ".bleeper_restart_chat", function () {
885
  jQuery("#wp-live-chat-header").click();
886
+ jQuery(".wplc_agent_info").html('');
887
+ // jQuery('#wplc_chatbox').html('');
888
  setTimeout(function () {
889
  jQuery("#wp-live-chat-header").click();
890
+ }, 100);
891
 
892
  jQuery('#wplc_end_chat_button').show();
893
  jQuery('#wplc_end_chat_button').removeAttr('wplc_disable');
901
  sendMessage(message);
902
  });
903
 
904
+ // jQuery(document).on("click", ".bleeper-edit-message", function () {
905
+ // var mid = jQuery(this).parent().attr('mid');
906
+ // var mdiv = jQuery(this).siblings('.messageBody').attr("data-message");
907
+ // jQuery("#wplc_chatmsg").val(mdiv);
908
 
909
+ // // set the niftyIsEditing variable to the msgID so we can identify if we are in the process of editing a message
910
+ // niftyIsEditing = mid;
911
+ // });
912
 
913
 
914
  jQuery(document).on("nifty_trigger_open_chat", function (event) {
971
  var wplc_email = jQuery("#wplc_email").val();
972
 
973
  if (wplc_name.length <= 0) {
974
+ alert("Please Enter Your Name");
975
  return false;
976
  }
977
  if (wplc_email.length <= 0) {
978
+ alert("Please Enter Your Email Address");
979
  return false;
980
  }
981
 
1356
  * @param {string} originalID The id of the div to show when upload final div to show after evething is complete
1357
  */
1358
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID) {
1359
+ if(fileToUpload == undefined || fileToUpload == false || fileToUpload == null){
1360
+ return;
1361
+ }
1362
+
1363
+ var wplc_allowed_files = ' Allowed File Types: .jpg, .jpeg, .png, .bmp, .mp4, .mp3, .mpeg, .mpeg4, .gif, .tiff, .tif, .zip, .oog, .webm, .avi, .wav, .doc, .pdf';
1364
+
1365
  var formData = new FormData();
1366
  formData.append('file', fileToUpload);
1367
  formData.append('timestamp', Date.now());
1368
+ formData.append('_wpnonce', wplc_restapi_nonce);
1369
  jQuery(uploadingID).show();
1370
  jQuery(originalID).hide();
1371
  jQuery(successID).hide();
1420
  }
1421
 
1422
  if (fileLinkUrl !== false) {
1423
+ if(fileLinkUrl !== 'Security Violation'){
1424
+ var tag = (fileLinkUrl.indexOf(".png") !== -1 || fileLinkUrl.indexOf(".PNG") !== -1 || fileLinkUrl.indexOf(".jpg") !== -1 || fileLinkUrl.indexOf(".JPG") !== -1 || fileLinkUrl.indexOf(".jpeg") !== -1 || fileLinkUrl.indexOf(".JPEG") !== -1 || fileLinkUrl.indexOf(".gif") !== -1 || fileLinkUrl.indexOf(".GIF") !== -1 || fileLinkUrl.indexOf(".bmp") !== -1 || fileLinkUrl.indexOf(".BMP") !== -1) ? "img" : "link";
1425
 
1426
+ if (tag !== "img") {
1427
+ tag = (fileLinkUrl.indexOf(".mp4") !== -1 || fileLinkUrl.indexOf(".mpeg4") !== -1 || fileLinkUrl.indexOf(".webm") !== -1 || fileLinkUrl.indexOf(".oog") !== -1) ? "video" : "link"; //video now
1428
+ }
1429
+ jQuery("#wplc_chatmsg").val(tag + ":" + fileLinkUrl + ":" + tag); //Add to input field
1430
+ jQuery("#wplc_send_msg").trigger("click"); //Send message
1431
+ jQuery("#bleeper_send_msg").trigger("click"); //Send message
1432
+ setTimeout(function () {
1433
+ $messages[0].scrollTop = $messages[0].scrollHeight;
1434
+ }, 1000);
1435
+ } else {
1436
+ alert('Security Violation: File Not Allowed.' + wplc_allowed_files);
1437
  }
 
 
 
 
 
 
1438
  }
1439
  } else {
1440
  jQuery(uploadingID).hide();
1466
  }, 2000);
1467
  }
1468
  } else {
1469
+ alert("File type not supported." + wplc_allowed_files);
1470
  jQuery(uploadingID).hide();
1471
  jQuery(failedID).show();
1472
  setTimeout(function () {
1554
  for (var i = 0, len = image_match.length; i < len; i++) {
1555
  var to_find = image_match[i];
1556
  var to_replace = to_find.substring(4, to_find.length - 4); // remove the starting #### and ending ####
1557
+ msg = msg.replace(to_find, "<img style='max-width:100%; cursor:pointer;' onclick='window.open(this.src)' src='" + bleeper_url_path_em_stripper(to_replace.replace("::", ":")) + "' />");
1558
  bypass_inline_links = true;
1559
 
1560
  }
1565
  for (var i = 0, len = image_match.length; i < len; i++) {
1566
  var to_find = image_match[i];
1567
  var to_replace = to_find.substring(4, to_find.length - 4); // remove the starting #### and ending ####
1568
+ msg = msg.replace(to_find, "<img style='max-width:100%; cursor:pointer;' onclick='window.open(this.src)' src='" + bleeper_url_path_em_stripper(to_replace) + "' />");
1569
  bypass_inline_links = true; //There is an image being processed, let's leave it alone
1570
 
1571
  }
1601
  }
1602
  }
1603
 
1604
+ if (msg.indexOf('wplc-ds-wrapper') !== -1) {
1605
+ msg = msg.replace(/\n/g, "<br />");
1606
+ }
1607
 
1608
  if (bypass_inline_links === false) {
1609
  msg = bleeper_inline_link_generator(msg);
js/wplc_pro_features.js CHANGED
@@ -1,26 +1,43 @@
1
  var wplc_searchTimeout;
2
  var wplc_is_typing = false;
3
  var wplc_has_sent_auto_first_response = false;
 
4
 
5
 
6
  jQuery(document).on("wplc_animation_done", function(e) {
 
 
 
 
 
 
7
 
8
 
9
  jQuery('.nifty_rating_icon').click(function(evt){
 
10
  jQuery('.nifty_rating_icon').removeClass('wplc-color-1');
11
  jQuery(this).addClass('wplc-color-1');
 
12
  });
13
  jQuery("#nifty_rating_pos").click(function(evt){
14
- jQuery("#nifty_rating_thanks").hide();
15
- jQuery("#nifty_ratings_form").fadeIn();
16
- jQuery("#nifty_rating_button").attr("nifty-rating", "1");
 
 
 
 
17
 
18
  evt.stopImmediatePropagation();
19
  });
20
  jQuery("#nifty_rating_neg").click(function(evt){
21
- jQuery("#nifty_rating_thanks").hide();
22
- jQuery("#nifty_ratings_form").fadeIn();
23
- jQuery("#nifty_rating_button").attr("nifty-rating", "0");
 
 
 
 
24
 
25
  evt.stopImmediatePropagation();
26
  });
@@ -61,6 +78,11 @@ jQuery(document).on("wplc_animation_done", function(e) {
61
  evt.stopImmediatePropagation();
62
  });
63
 
 
 
 
 
 
64
  function wplc_pro_rating_show_thanks_message(){
65
  jQuery("#nifty_recording").fadeOut();
66
  jQuery("#nifty_rating_thanks").fadeIn();
@@ -68,6 +90,8 @@ jQuery(document).on("wplc_animation_done", function(e) {
68
  setTimeout(function(){
69
  jQuery("#nifty_rating_thanks").fadeOut();
70
  }, 2000);
 
 
71
  }
72
  });
73
 
@@ -116,6 +140,19 @@ jQuery(document).on("bleeper_send_message", function(e) {
116
 
117
  setTimeout(function(){
118
  jQuery('#wplc_chatbox').append(first_response_html);
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }, 1000);
120
  }
121
  wplc_has_sent_auto_first_response = true;
@@ -133,10 +170,16 @@ function wplc_start_chat_pro_data(data){
133
 
134
  /* Handles Uploading and sharing a file within chat*/
135
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
 
 
 
 
 
 
136
  var formData = new FormData();
137
 
138
  formData.append('action', 'wplc_upload_file');
139
- formData.append('cid', Cookies.get('wplc_cid'));
140
  formData.append('file', fileToUpload);
141
  formData.append('timestamp', Date.now());
142
  formData.append('security', wplc_nonce );
@@ -166,6 +209,8 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
166
  jQuery(originalID).show();
167
  }, 2000);
168
 
 
 
169
  //All good post the link to file
170
  var tag = (data.indexOf(".png") !== -1 || data.indexOf(".PNG") !== -1 ||data.indexOf(".jpg") !== -1 || data.indexOf(".JPG") !== -1 || data.indexOf(".jpeg") !== -1 || data.indexOf(".gif") !== -1 || data.indexOf(".bmp")!== -1 ) ? "img" : "link";
171
 
@@ -174,6 +219,10 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
174
  }
175
  jQuery("#wplc_chatmsg").val(tag + ":" + data + ":" + tag); //Add to input field
176
  jQuery("#wplc_send_msg").trigger("click"); //Send message
 
 
 
 
177
  }
178
  else{
179
  jQuery(uploadingID).hide();
@@ -204,7 +253,7 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
204
  }, 2000);
205
  }
206
  } else{
207
- alert("File type not supported");
208
  jQuery(uploadingID).hide();
209
  jQuery(failedID).show();
210
  setTimeout(function(){
1
  var wplc_searchTimeout;
2
  var wplc_is_typing = false;
3
  var wplc_has_sent_auto_first_response = false;
4
+ var wplc_user_has_left_rating = false;
5
 
6
 
7
  jQuery(document).on("wplc_animation_done", function(e) {
8
+
9
+ jQuery("#wplc_message").on("keyup", function(){
10
+ var wplc_char_count = jQuery('#wplc_message').val().length;
11
+ var wplc_char_limit = 700;
12
+ jQuery('.wplc_char_counter').text(wplc_char_count + " / " + wplc_char_limit);
13
+ });
14
 
15
 
16
  jQuery('.nifty_rating_icon').click(function(evt){
17
+ if(!wplc_user_has_left_rating){
18
  jQuery('.nifty_rating_icon').removeClass('wplc-color-1');
19
  jQuery(this).addClass('wplc-color-1');
20
+ }
21
  });
22
  jQuery("#nifty_rating_pos").click(function(evt){
23
+ if(!wplc_user_has_left_rating){
24
+ jQuery("#nifty_rating_thanks").hide();
25
+ // jQuery("#nifty_ratings_form").fadeIn();
26
+ jQuery("#nifty_rating_button").attr("nifty-rating", "1");
27
+ jQuery('#nifty_rating_button').click();
28
+ wplc_user_has_left_rating = true;
29
+ }
30
 
31
  evt.stopImmediatePropagation();
32
  });
33
  jQuery("#nifty_rating_neg").click(function(evt){
34
+ if(!wplc_user_has_left_rating){
35
+ jQuery("#nifty_rating_thanks").hide();
36
+ // jQuery("#nifty_ratings_form").fadeIn();
37
+ jQuery("#nifty_rating_button").attr("nifty-rating", "0");
38
+ jQuery('#nifty_rating_button').click();
39
+ wplc_user_has_left_rating = true;
40
+ }
41
 
42
  evt.stopImmediatePropagation();
43
  });
78
  evt.stopImmediatePropagation();
79
  });
80
 
81
+ jQuery("#nifty_rating_button_cancel").click(function(evt){
82
+ jQuery('.nifty_rating_icon').removeClass('wplc-color-1');
83
+ jQuery("#nifty_ratings_form").fadeOut();
84
+ });
85
+
86
  function wplc_pro_rating_show_thanks_message(){
87
  jQuery("#nifty_recording").fadeOut();
88
  jQuery("#nifty_rating_thanks").fadeIn();
90
  setTimeout(function(){
91
  jQuery("#nifty_rating_thanks").fadeOut();
92
  }, 2000);
93
+
94
+ jQuery("#nifty_ratings_comment").val("");
95
  }
96
  });
97
 
140
 
141
  setTimeout(function(){
142
  jQuery('#wplc_chatbox').append(first_response_html);
143
+
144
+ var data = {
145
+ relay_action: 'wplc_admin_send_msg',
146
+ security: wplc_nonce,
147
+ chat_id: wplc_cid,
148
+ message: wplc_pro_auto_resp_chat_msg,
149
+ msg_id: Date.now(),
150
+ agent_id:0
151
+ };
152
+
153
+ if(typeof wplc_rest_api !== "undefined"){
154
+ wplc_rest_api('send_message', data, 12000, null);
155
+ }
156
  }, 1000);
157
  }
158
  wplc_has_sent_auto_first_response = true;
170
 
171
  /* Handles Uploading and sharing a file within chat*/
172
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
173
+ if(fileToUpload == undefined || fileToUpload == false || fileToUpload == null){
174
+ return;
175
+ }
176
+
177
+ var wplc_allowed_files = ' Allowed File Types: .jpg, .jpeg, .png, .bmp, .mp4, .mp3, .mpeg, .mpeg4, .gif, .tiff, .tif, .zip, .oog, .webm, .avi, .wav, .doc, .pdf';
178
+
179
  var formData = new FormData();
180
 
181
  formData.append('action', 'wplc_upload_file');
182
+ formData.append('cid', Cookies.get('wplc_cid'));
183
  formData.append('file', fileToUpload);
184
  formData.append('timestamp', Date.now());
185
  formData.append('security', wplc_nonce );
209
  jQuery(originalID).show();
210
  }, 2000);
211
 
212
+ if(data !== 'Security Violation'){
213
+
214
  //All good post the link to file
215
  var tag = (data.indexOf(".png") !== -1 || data.indexOf(".PNG") !== -1 ||data.indexOf(".jpg") !== -1 || data.indexOf(".JPG") !== -1 || data.indexOf(".jpeg") !== -1 || data.indexOf(".gif") !== -1 || data.indexOf(".bmp")!== -1 ) ? "img" : "link";
216
 
219
  }
220
  jQuery("#wplc_chatmsg").val(tag + ":" + data + ":" + tag); //Add to input field
221
  jQuery("#wplc_send_msg").trigger("click"); //Send message
222
+
223
+ } else {
224
+ alert('Security Violation: File Not Allowed.' + wplc_allowed_files);
225
+ }
226
  }
227
  else{
228
  jQuery(uploadingID).hide();
253
  }, 2000);
254
  }
255
  } else{
256
+ alert("File type not supported." + wplc_allowed_files);
257
  jQuery(uploadingID).hide();
258
  jQuery(failedID).show();
259
  setTimeout(function(){
js/wplc_server.js CHANGED
@@ -667,7 +667,7 @@ function wplc_push_message_to_chatbox(the_message, aoru, next) {
667
  if(typeof agent_id !== "undefined" && typeof message_aid !== "undefined"){
668
  if(parseInt(agent_id) === parseInt(message_aid)){
669
  //I own this message
670
- message_edit_string = "<span class='bleeper-edit-message' style='display:none;'>Edit</span>";
671
 
672
  }
673
  }
@@ -695,7 +695,7 @@ function wplc_push_message_to_chatbox(the_message, aoru, next) {
695
 
696
  } else if (parseInt(the_message.originates) === 0 || parseInt(the_message.originates) === 3) {
697
  //System Notification
698
- message_class = "wplc_system_notification wplc-color-4";
699
  message_content = the_message.msg;
700
  if (typeof the_message.other.ntype !== "undefined") {
701
  if (the_message.other.ntype === "joined") {
@@ -713,7 +713,7 @@ function wplc_push_message_to_chatbox(the_message, aoru, next) {
713
  }
714
 
715
  if (aoru === 'u') {
716
- message_edit_string = "<span class='bleeper-edit-message' style='display:none;'>Edit</span>";
717
 
718
  if (jQuery(wplc_email).val() !== "") {
719
  message_grav = md5(jQuery(wplc_email).val());
@@ -763,8 +763,19 @@ function wplc_push_message_to_chatbox(the_message, aoru, next) {
763
  if(the_message.other.from_an_agent === true || the_message.other.from_an_agent === "true"){
764
  //Cannot edit this
765
  message_edit_string = "";
 
 
766
  }
767
  }
 
 
 
 
 
 
 
 
 
768
  message_class += " message_"+the_message.mid;
769
 
770
  if (message_content !== ""){
@@ -858,6 +869,13 @@ jQuery(function(){
858
  jQuery(function(){
859
  var wplc_node_searchTimeout;
860
 
 
 
 
 
 
 
 
861
  jQuery("body").on("keydown","#wplc_chatmsg, #wplc_admin_chatmsg", function(e) {
862
  if(typeof wplc_node_sockets_ready !== "undefined" && wplc_node_sockets_ready === true){
863
  if(typeof wplc_node_is_client_typing !== "undefined"){
@@ -899,7 +917,7 @@ jQuery(function(){
899
  alert(wplc_error_messages.valid_email); return false;
900
  }
901
  if (wplc_msg.length <= 0) { alert(wplc_error_messages.empty_message); return false; }
902
- jQuery("#wp-live-chat-2-info").hide();
903
  jQuery("#wplc_message_div").html(wplc_offline_msg);
904
 
905
  wplc_cid = Cookies.get('wplc_cid');
667
  if(typeof agent_id !== "undefined" && typeof message_aid !== "undefined"){
668
  if(parseInt(agent_id) === parseInt(message_aid)){
669
  //I own this message
670
+ // message_edit_string = "<span class='bleeper-edit-message' style='display:none;'>Edit</span>";
671
 
672
  }
673
  }
695
 
696
  } else if (parseInt(the_message.originates) === 0 || parseInt(the_message.originates) === 3) {
697
  //System Notification
698
+ message_class = "wplc-system-notification wplc-color-4";
699
  message_content = the_message.msg;
700
  if (typeof the_message.other.ntype !== "undefined") {
701
  if (the_message.other.ntype === "joined") {
713
  }
714
 
715
  if (aoru === 'u') {
716
+ // message_edit_string = "<span class='bleeper-edit-message' style='display:none;'>Edit</span>";
717
 
718
  if (jQuery(wplc_email).val() !== "") {
719
  message_grav = md5(jQuery(wplc_email).val());
763
  if(the_message.other.from_an_agent === true || the_message.other.from_an_agent === "true"){
764
  //Cannot edit this
765
  message_edit_string = "";
766
+ message_class += ' agent_to_agent';
767
+
768
  }
769
  }
770
+
771
+ if(typeof the_message.afrom !== 'undefined' && typeof the_message.ato !== 'undefined'){
772
+ if(the_message.afrom > 0 && the_message.ato > 0){
773
+ if(parseInt(agent_id) !== the_message.afrom){
774
+ message_class += ' agent_to_agent';
775
+ }
776
+ }
777
+ }
778
+
779
  message_class += " message_"+the_message.mid;
780
 
781
  if (message_content !== ""){
869
  jQuery(function(){
870
  var wplc_node_searchTimeout;
871
 
872
+ jQuery("body").on("keydown","#wplc_chatmsg", function(e) {
873
+ if (e.which==13 && jQuery.trim(document.getElementById('wplc_chatmsg').value)=='') {
874
+ // sink this event
875
+ return false;
876
+ }
877
+ });
878
+
879
  jQuery("body").on("keydown","#wplc_chatmsg, #wplc_admin_chatmsg", function(e) {
880
  if(typeof wplc_node_sockets_ready !== "undefined" && wplc_node_sockets_ready === true){
881
  if(typeof wplc_node_is_client_typing !== "undefined"){
917
  alert(wplc_error_messages.valid_email); return false;
918
  }
919
  if (wplc_msg.length <= 0) { alert(wplc_error_messages.empty_message); return false; }
920
+ jQuery("#wp-live-chat.classic #wp-live-chat-2-info").hide();
921
  jQuery("#wplc_message_div").html(wplc_offline_msg);
922
 
923
  wplc_cid = Cookies.get('wplc_cid');
js/wplc_tabs.js CHANGED
@@ -24,6 +24,32 @@ jQuery(function() {
24
  return active;
25
  }
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
 
29
  jQuery("#wplc_tabs").tabs({
@@ -121,6 +147,8 @@ jQuery(function() {
121
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
122
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
123
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
124
  });
125
 
126
  jQuery("#wplc_theme_1").click(function() {
@@ -138,6 +166,8 @@ jQuery(function() {
138
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
139
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
140
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
141
  });
142
 
143
  jQuery("#wplc_theme_2").click(function() {
@@ -155,6 +185,8 @@ jQuery(function() {
155
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
156
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
157
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
158
  });
159
 
160
  jQuery("#wplc_theme_3").click(function() {
@@ -172,6 +204,8 @@ jQuery(function() {
172
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
173
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
174
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
175
  });
176
 
177
  jQuery("#wplc_theme_4").click(function() {
@@ -189,6 +223,8 @@ jQuery(function() {
189
  jQuery("#wplc_theme_4").addClass("wplc_theme_active");
190
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
191
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
192
  });
193
 
194
  jQuery("#wplc_theme_5").click(function() {
@@ -206,6 +242,8 @@ jQuery(function() {
206
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
207
  jQuery("#wplc_theme_5").addClass("wplc_theme_active");
208
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
 
 
209
  });
210
 
211
  jQuery("#wplc_theme_6").click(function() {
@@ -223,6 +261,8 @@ jQuery(function() {
223
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
224
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
225
  jQuery("#wplc_theme_6").addClass("wplc_theme_active");
 
 
226
  });
227
 
228
 
24
  return active;
25
  }
26
 
27
+ jQuery('#wplc_agent_select').on('change', function(){
28
+ jQuery('#wplc_add_agent').show();
29
+ });
30
+
31
+ jQuery('.wplc_check_url').on('change', function(){
32
+ jQuery('.wplc_check_url').removeClass('invalid_url');
33
+ jQuery('.invalid_url_text').remove();
34
+ jQuery('input[name=wplc_save_settings]').removeAttr('disabled');
35
+
36
+ if(!wplc_valid_url_checker(jQuery(this).val()) && jQuery(this).val().trim() !== ""){
37
+ jQuery(this).addClass('invalid_url');
38
+ jQuery('<span class="invalid_url_text">Invalid URL</span>').insertAfter(this);
39
+
40
+ jQuery('input[name=wplc_save_settings]').attr('disabled', 'disabled');
41
+ }
42
+ });
43
+
44
+ function wplc_valid_url_checker(str) {
45
+ var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
46
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
47
+ '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
48
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
49
+ '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
50
+ '(\\#[-a-z\\d_]*)?$','i'); // fragment locator
51
+ return !!pattern.test(str);
52
+ }
53
 
54
 
55
  jQuery("#wplc_tabs").tabs({
147
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
148
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
149
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
150
+
151
+ jQuery('.wplc_custom_pall_rows').hide();
152
  });
153
 
154
  jQuery("#wplc_theme_1").click(function() {
166
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
167
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
168
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
169
+
170
+ jQuery('.wplc_custom_pall_rows').hide();
171
  });
172
 
173
  jQuery("#wplc_theme_2").click(function() {
185
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
186
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
187
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
188
+
189
+ jQuery('.wplc_custom_pall_rows').hide();
190
  });
191
 
192
  jQuery("#wplc_theme_3").click(function() {
204
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
205
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
206
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
207
+
208
+ jQuery('.wplc_custom_pall_rows').hide();
209
  });
210
 
211
  jQuery("#wplc_theme_4").click(function() {
223
  jQuery("#wplc_theme_4").addClass("wplc_theme_active");
224
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
225
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
226
+
227
+ jQuery('.wplc_custom_pall_rows').hide();
228
  });
229
 
230
  jQuery("#wplc_theme_5").click(function() {
242
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
243
  jQuery("#wplc_theme_5").addClass("wplc_theme_active");
244
  jQuery("#wplc_theme_6").removeClass("wplc_theme_active");
245
+
246
+ jQuery('.wplc_custom_pall_rows').hide();
247
  });
248
 
249
  jQuery("#wplc_theme_6").click(function() {
261
  jQuery("#wplc_theme_4").removeClass("wplc_theme_active");
262
  jQuery("#wplc_theme_5").removeClass("wplc_theme_active");
263
  jQuery("#wplc_theme_6").addClass("wplc_theme_active");
264
+
265
+ jQuery('.wplc_custom_pall_rows').show();
266
  });
267
 
268
 
js/wplc_transcript.js CHANGED
@@ -9,12 +9,12 @@ function sendTranscript(event) {
9
  }
10
  if (jQuery('#chatTranscriptTitle').length) {
11
  if (!isCloseChatClicked) {
12
- jQuery("#chatTranscriptTitle").addClass('is-disabled');
13
  }
14
  var cur_id = jQuery('#chatCloseTitle').attr('cid');
15
  data.action = 'wplc_et_admin_email_transcript';
16
  data.security = wplc_transcript_nonce.ajax_nonce;
17
- data.cid = cur_id;
18
  jQuery.post(ajaxurl, data, function(response) {
19
  if (typeof response === 'string' && response.length < 1) {
20
  return;
@@ -35,7 +35,7 @@ function sendTranscript(event) {
35
  } else {
36
  if (!isCloseChatClicked) {
37
  jQuery(".wplc_admin_email_transcript").hide();
38
- html = "<span class='wplc_et_loading'><em>" + wplc_transcript_nonce.string_loading + "</em></span>";
39
  jQuery(".wplc_admin_email_transcript").after(html);
40
  }
41
  var cur_id = jQuery(this).attr("cid");
@@ -50,7 +50,7 @@ function sendTranscript(event) {
50
  } else {
51
  jQuery(".wplc_et_loading").hide();
52
 
53
- html = "<span class=''>" + wplc_transcript_nonce.string_chat_emailed + "</span>";
54
  jQuery("#wplc_admin_email_transcript").after(html);
55
  jQuery("#wplc_admin_email_transcript").hide();
56
  }
9
  }
10
  if (jQuery('#chatTranscriptTitle').length) {
11
  if (!isCloseChatClicked) {
12
+ // jQuery("#chatTranscriptTitle").addClass('is-disabled');
13
  }
14
  var cur_id = jQuery('#chatCloseTitle').attr('cid');
15
  data.action = 'wplc_et_admin_email_transcript';
16
  data.security = wplc_transcript_nonce.ajax_nonce;
17
+ data.cid = active_chatid;
18
  jQuery.post(ajaxurl, data, function(response) {
19
  if (typeof response === 'string' && response.length < 1) {
20
  return;
35
  } else {
36
  if (!isCloseChatClicked) {
37
  jQuery(".wplc_admin_email_transcript").hide();
38
+ html = "<span class='wplc_et_loading' style='color:#000'><em>" + wplc_transcript_nonce.string_loading + "</em></span>";
39
  jQuery(".wplc_admin_email_transcript").after(html);
40
  }
41
  var cur_id = jQuery(this).attr("cid");
50
  } else {
51
  jQuery(".wplc_et_loading").hide();
52
 
53
+ html = "<span class='' style='color:#000'>The chat transcript has been emailed.</span>";
54
  jQuery("#wplc_admin_email_transcript").after(html);
55
  jQuery("#wplc_admin_email_transcript").hide();
56
  }
js/wplc_u.js CHANGED
@@ -357,7 +357,7 @@ function wplc_map_node_variables() {
357
  */
358
  function wplc_send_welcome_message() {
359
  if(wplc_welcome_msg !== "" && !wplc_shown_welcome){
360
- message_class = "wplc_system_notification wplc-color-4";
361
  var concatenated_message = "<span class='" + message_class + "'>";
362
  concatenated_message += wplc_welcome_msg;
363
  concatenated_message += "</span>";
357
  */
358
  function wplc_send_welcome_message() {
359
  if(wplc_welcome_msg !== "" && !wplc_shown_welcome){
360
+ message_class = "wplc-system-notification wplc-color-4 tmp-welcome-msg";
361
  var concatenated_message = "<span class='" + message_class + "'>";
362
  concatenated_message += wplc_welcome_msg;
363
  concatenated_message += "</span>";
js/wplc_u_admin_chat.js CHANGED
@@ -457,6 +457,12 @@ jQuery(function () {
457
 
458
  /* Handles Uploading and sharing a file within chat*/
459
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
 
 
 
 
 
 
460
  var formData = new FormData();
461
 
462
  formData.append('action', 'wplc_upload_file');
@@ -528,7 +534,7 @@ function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalI
528
  }, 2000);
529
  }
530
  } else{
531
- alert("File type not supported");
532
  jQuery(uploadingID).hide();
533
  jQuery(failedID).show();
534
  setTimeout(function(){
457
 
458
  /* Handles Uploading and sharing a file within chat*/
459
  function wplcShareFile(fileToUpload, failedID, successID, uploadingID, originalID){
460
+ if(fileToUpload == undefined || fileToUpload == false || fileToUpload == null){
461
+ return;
462
+ }
463
+
464
+ var wplc_allowed_files = ' Allowed File Types: .jpg, .jpeg, .png, .bmp, .mp4, .mp3, .mpeg, .mpeg4, .gif, .tiff, .tif, .zip, .oog, .webm, .avi, .wav, .doc, .pdf';
465
+
466
  var formData = new FormData();
467
 
468
  formData.append('action', 'wplc_upload_file');
534
  }, 2000);
535
  }
536
  } else{
537
+ alert("File type not supported." + wplc_allowed_files);
538
  jQuery(uploadingID).hide();
539
  jQuery(failedID).show();
540
  setTimeout(function(){
js/wplc_u_admin_events.js CHANGED
@@ -611,6 +611,7 @@ jQuery(document).on("bleeper_dom_ready", function(e) {
611
  jQuery(".nifty_bg_holder_text").html("You are not accepting chats");
612
  jQuery(".nifty_bg_holder").fadeIn();
613
  jQuery(".nifty_bg_holder").css('left','25%');
 
614
  }
615
  });
616
 
@@ -636,7 +637,22 @@ jQuery(document).on("bleeper_dom_ready", function(e) {
636
 
637
  }
638
  }
639
- })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
 
641
 
642
  /**
@@ -695,6 +711,10 @@ jQuery(document).on("bleeper_dom_ready", function(e) {
695
  wplc_push_message_to_chatbox(the_message,'a', function() {
696
  jQuery.event.trigger({type: "bleeper_scroll_bottom"});
697
  });
 
 
 
 
698
  }
699
 
700
  }
611
  jQuery(".nifty_bg_holder_text").html("You are not accepting chats");
612
  jQuery(".nifty_bg_holder").fadeIn();
613
  jQuery(".nifty_bg_holder").css('left','25%');
614
+
615
  }
616
  });
617
 
637
 
638
  }
639
  }
640
+ });
641
+
642
+ jQuery(document).on('wplc_end_all_open_chats', function(){
643
+ jQuery('.userList').each(function(){
644
+ var userChatID = jQuery(this).attr('id');
645
+
646
+ if(typeof socket !== 'undefined'){
647
+ socket.emit('agent left', {chatid:userChatID, agent:agent_id, agent_name:username});
648
+ // socket.emit('end chat', {chatid:userChatID, agent:agent_id, agent_name:username, visitor_socket: active_socket});
649
+ }
650
+
651
+ nifty_chat_remove_agent_involved(userChatID, agent_id);
652
+
653
+ jQuery('.bleeper_close_item_' + userChatID).click();
654
+ });
655
+ });
656
 
657
 
658
  /**
711
  wplc_push_message_to_chatbox(the_message,'a', function() {
712
  jQuery.event.trigger({type: "bleeper_scroll_bottom"});
713
  });
714
+
715
+ setTimeout(function(){
716
+ jQuery('.bleeper_close_item[cid=' + e.ndata.chatid + ']').click();
717
+ }, 800);
718
  }
719
 
720
  }
js/wplc_u_events.js CHANGED
@@ -279,17 +279,12 @@ jQuery(function() {
279
  );
280
  });
281
 
282
-
283
-
284
-
285
-
286
-
287
-
288
  jQuery("body").on("keyup","#wplc_chatmsg", function(event){
289
- if(event.keyCode === 13){
290
  jQuery("#wplc_send_msg").trigger("click");
291
  }
292
  });
 
293
  jQuery("body").on("click", "#wplc_send_msg", function() {
294
  var wplc_cid = jQuery("#wplc_cid").val();
295
  if (wplc_cid.length < 1) {
279
  );
280
  });
281
 
 
 
 
 
 
 
282
  jQuery("body").on("keyup","#wplc_chatmsg", function(event){
283
+ if(event.keyCode === 13 && jQuery.trim(document.getElementById('wplc_chatmsg').value)!=''){
284
  jQuery("#wplc_send_msg").trigger("click");
285
  }
286
  });
287
+
288
  jQuery("body").on("click", "#wplc_send_msg", function() {
289
  var wplc_cid = jQuery("#wplc_cid").val();
290
  if (wplc_cid.length < 1) {
js/wplc_u_node_events.js CHANGED
@@ -6,6 +6,11 @@
6
  var agent_joined = {};
7
 
8
  jQuery(function() {
 
 
 
 
 
9
  jQuery(document).on("wplc_open_chat", function(e) {
10
  jQuery("#bleeper_chat_ended").html('').hide();
11
  nc_status = Cookies.get("nc_status");
@@ -246,6 +251,25 @@ jQuery(function() {
246
  });
247
  }
248
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
  if (typeof wplc_enable_ga !== "undefined" && wplc_enable_ga === '1') {
250
  if (typeof ga !== "undefined") {
251
  ga('send', {
@@ -295,14 +319,14 @@ jQuery(function() {
295
  * @return void
296
  */
297
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
298
- the_message = wplc_generate_system_notification_object(e.ndata.agent_name+bleeper_localized_strings[3], {}, 0);
299
- if (typeof agent_joined[parseInt(e.ndata.aid)] !== "undefined" && agent_joined[parseInt(e.ndata.aid)] === true) {
300
- agent_joined[parseInt(e.ndata.aid)] = undefined;
301
- wplc_push_message_to_chatbox(the_message,'u', function() {
302
- wplc_scroll_to_bottom();
303
- });
304
- }
305
-
306
  });
307
 
308
  /**
@@ -483,18 +507,21 @@ jQuery(function() {
483
 
484
  user_heartbeat = undefined;
485
 
486
- socket.disconnect({test:'test'});
487
 
488
  niftyUpdateStatusCookie('browsing');
 
 
 
489
  // restart connection as a visitor
490
  if (typeof io !== "undefined") {
491
  socket = io.connect(WPLC_SOCKET_URI, { query : query_string, transports: ['websocket'] } );
492
  wplc_chat_delegates();
493
  }
494
 
495
- if(typeof Cookies !== "undefined"){
496
- Cookies.remove("wplc_cid");
497
- }
498
 
499
  if (typeof wplc_enable_ga !== "undefined" && wplc_enable_ga === '1') {
500
  if (typeof ga !== "undefined") {
6
  var agent_joined = {};
7
 
8
  jQuery(function() {
9
+
10
+ jQuery('body').on('click', '.wplc_custom_dropdown', function(){
11
+ jQuery(this).removeClass('unselected');
12
+ });
13
+
14
  jQuery(document).on("wplc_open_chat", function(e) {
15
  jQuery("#bleeper_chat_ended").html('').hide();
16
  nc_status = Cookies.get("nc_status");
251
  });
252
  }
253
 
254
+ jQuery('#agent_grav_' + parseInt(e.ndata.agent)).remove();
255
+
256
+ var wplc_current_agent_names = jQuery(".wplc_agent_name").text();
257
+
258
+ var wplc_aid_group = jQuery(".wplc_agent_info").attr("aid");
259
+ if(wplc_aid_group.indexOf(parseInt(e.ndata.agent)) !== -1){
260
+ wplc_aid_group = wplc_aid_group.replace(parseInt(e.ndata.agent), '');
261
+
262
+ jQuery(".wplc_agent_info").attr("aid", wplc_aid_group);
263
+ }
264
+
265
+ if(wplc_current_agent_names.indexOf(e.ndata.agent_name) !== -1){
266
+ wplc_current_agent_names = wplc_current_agent_names.replace(', ' + e.ndata.agent_name, '');
267
+ wplc_current_agent_names = wplc_current_agent_names.replace(e.ndata.agent_name + ', ', '');
268
+ jQuery(".wplc_agent_name").text(wplc_current_agent_names);
269
+ jQuery(".wplc_agent_name").attr('title', wplc_current_agent_names);
270
+ }
271
+
272
+
273
  if (typeof wplc_enable_ga !== "undefined" && wplc_enable_ga === '1') {
274
  if (typeof ga !== "undefined") {
275
  ga('send', {
319
  * @return void
320
  */
321
  jQuery(document).on("bleeper_agent_disconnected", function(e) {
322
+ /** Disconnects removed as per request */
323
+ /*the_message = wplc_generate_system_notification_object(e.ndata.agent_name+bleeper_localized_strings[3], {}, 0);
324
+ if (typeof agent_joined[parseInt(e.ndata.aid)] !== "undefined" && agent_joined[parseInt(e.ndata.aid)] === true) {
325
+ agent_joined[parseInt(e.ndata.aid)] = undefined;
326
+ wplc_push_message_to_chatbox(the_message,'u', function() {
327
+ wplc_scroll_to_bottom();
328
+ });
329
+ }*/
330
  });
331
 
332
  /**
507
 
508
  user_heartbeat = undefined;
509
 
510
+ //socket.disconnect({test:'test'});
511
 
512
  niftyUpdateStatusCookie('browsing');
513
+ nc_status = 'browsing';
514
+ nifty_chat_status_temp = 'browsing';
515
+ nifty_chat_status = 'browsing';
516
  // restart connection as a visitor
517
  if (typeof io !== "undefined") {
518
  socket = io.connect(WPLC_SOCKET_URI, { query : query_string, transports: ['websocket'] } );
519
  wplc_chat_delegates();
520
  }
521
 
522
+ // if(typeof Cookies !== "undefined"){
523
+ // Cookies.remove("wplc_cid");
524
+ // }
525
 
526
  if (typeof wplc_enable_ga !== "undefined" && wplc_enable_ga === '1') {
527
  if (typeof ga !== "undefined") {
js/wplc_u_pro.js CHANGED
@@ -559,8 +559,8 @@ jQuery(function() {
559
 
560
 
561
  if(jQuery("#wplc_email").attr('wplc_hide') !== "1"){
562
- if (wplc_name.length <= 0) { alert("Please enter your name"); return false; }
563
- if (wplc_email.length <= 0) { alert("Please enter your email address"); return false; }
564
  var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
565
  if (!testEmail.test(wplc_email)){
566
  alert("Please Enter a Valid Email Address"); return false;
@@ -619,14 +619,14 @@ jQuery(function() {
619
  var wplc_domain = jQuery("#wplc_domain_offline").val();
620
  var ip_address = jQuery("#wplc_ip_address").val();
621
 
622
- if (wplc_name.length <= 0) { alert("Please enter your name"); return false; }
623
- if (wplc_email.length <= 0) { alert("Please enter your email address"); return false; }
624
  var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
625
  if (!testEmail.test(wplc_email)){
626
  alert("Please Enter a Valid Email Address"); return false;
627
  }
628
- if (wplc_msg.length <= 0) { alert("Please enter a message"); return false; }
629
- jQuery("#wp-live-chat-2-info").hide();
630
  jQuery("#wplc_message_div").html(wplc_offline_msg);
631
 
632
  wplc_cid = Cookies.get('wplc_cid');
@@ -656,7 +656,7 @@ jQuery(function() {
656
  }
657
 
658
  jQuery("body").on("keyup","#wplc_chatmsg", function(event){
659
- if(event.keyCode == 13){
660
  jQuery("#wplc_send_msg").trigger("click");
661
  }
662
  });
559
 
560
 
561
  if(jQuery("#wplc_email").attr('wplc_hide') !== "1"){
562
+ if (wplc_name.length <= 0) { alert("Please Enter Your Name"); return false; }
563
+ if (wplc_email.length <= 0) { alert("Please enter Your Email Address"); return false; }
564
  var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
565
  if (!testEmail.test(wplc_email)){
566
  alert("Please Enter a Valid Email Address"); return false;
619
  var wplc_domain = jQuery("#wplc_domain_offline").val();
620
  var ip_address = jQuery("#wplc_ip_address").val();
621
 
622
+ if (wplc_name.length <= 0) { alert("Please Enter Your Name"); return false; }
623
+ if (wplc_email.length <= 0) { alert("Please Enter Your Email Address"); return false; }
624
  var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
625
  if (!testEmail.test(wplc_email)){
626
  alert("Please Enter a Valid Email Address"); return false;
627
  }
628
+ if (wplc_msg.length <= 0) { alert("Please Enter a Message"); return false; }
629
+ // jQuery("#wp-live-chat-2-info").hide();
630
  jQuery("#wplc_message_div").html(wplc_offline_msg);
631
 
632
  wplc_cid = Cookies.get('wplc_cid');
656
  }
657
 
658
  jQuery("body").on("keyup","#wplc_chatmsg", function(event){
659
+ if(event.keyCode === 13 && jQuery.trim(document.getElementById('wplc_chatmsg').value)!=''){
660
  jQuery("#wplc_send_msg").trigger("click");
661
  }
662
  });
js/wplc_u_pro_events.js CHANGED
@@ -56,6 +56,8 @@ jQuery(function () {
56
  var file = this.files[0]; //Last file in array
57
  wplcShareFile(file,'#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_select_file");
58
  evt.stopImmediatePropagation();
 
 
59
  });
60
 
61
  /**
56
  var file = this.files[0]; //Last file in array
57
  wplcShareFile(file,'#nifty_attach_fail_icon', '#nifty_attach_success_icon', '#nifty_attach_uploading_icon', "#nifty_select_file");
58
  evt.stopImmediatePropagation();
59
+
60
+ this.value = "";
61
  });
62
 
63
  /**
modules/advanced_features.php CHANGED
@@ -138,7 +138,9 @@ add_filter("wplc_filter_inner_live_chat_box_4th_layer", "wplc_add_end_chat_butto
138
  */
139
  function wplc_add_end_chat_button_to_chat_box($content, $wplc_settings){
140
  $custom_attr = apply_filters('wplc_end_button_custom_attributes_filter', "", $wplc_settings);
141
- $text = __("End Chat", "wplivechat");
 
 
142
  $html = "<button id=\"wplc_end_chat_button\" type=\"button\" $custom_attr>$text</button>";
143
 
144
  return $content . $html;
138
  */
139
  function wplc_add_end_chat_button_to_chat_box($content, $wplc_settings){
140
  $custom_attr = apply_filters('wplc_end_button_custom_attributes_filter', "", $wplc_settings);
141
+ // $text = __("End Chat", "wplivechat");
142
+ // $text = "<i class='fa fa-times'></i>";
143
+ $text = "<i class='fa fa-angle-down'></i><i class='fa fa-angle-up'></i>";
144
  $html = "<button id=\"wplc_end_chat_button\" type=\"button\" $custom_attr>$text</button>";
145
 
146
  return $content . $html;
modules/api/wplc-api-functions.php CHANGED
@@ -14,6 +14,8 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  * - Agent ID
15
  */
16
  function wplc_api_accept_chat(WP_REST_Request $request){
 
 
17
  $return_array = array();
18
  if(isset($request)){
19
  if(isset($request['token'])){
@@ -80,6 +82,8 @@ function wplc_api_accept_chat(WP_REST_Request $request){
80
  * - Agent ID
81
  */
82
  function wplc_api_end_chat(WP_REST_Request $request){
 
 
83
  $return_array = array();
84
  if(isset($request)){
85
  if(isset($request['token'])){
@@ -152,6 +156,8 @@ function wplc_api_end_chat(WP_REST_Request $request){
152
  * - Message ID (Rel)
153
  */
154
  function wplc_edit_message(WP_REST_Request $request){
 
 
155
  $return_array = array();
156
  if(isset($request)){
157
  if(isset($request['server_token'])){
@@ -257,6 +263,8 @@ function wplc_edit_message(WP_REST_Request $request){
257
  * - Message
258
  */
259
  function wplc_api_send_message(WP_REST_Request $request){
 
 
260
  $return_array = array();
261
  if(isset($request)){
262
  if(isset($request['server_token'])){
@@ -352,6 +360,8 @@ function wplc_api_send_message(WP_REST_Request $request){
352
  * - Chat ID
353
  */
354
  function wplc_api_get_status(WP_REST_Request $request){
 
 
355
  $return_array = array();
356
  if(isset($request)){
357
  if(isset($request['token'])){
@@ -408,6 +418,8 @@ function wplc_api_get_status(WP_REST_Request $request){
408
  * - Offset (Defaults to 0)
409
  */
410
  function wplc_api_get_messages(WP_REST_Request $request){
 
 
411
  $return_array = array();
412
  if(isset($request)){
413
  if(isset($request['token'])){
@@ -472,6 +484,8 @@ function wplc_api_get_messages(WP_REST_Request $request){
472
  * - Token
473
  */
474
  function wplc_api_get_sessions(WP_REST_Request $request){
 
 
475
  $return_array = array();
476
  if(isset($request)){
477
  if(isset($request['token'])){
@@ -510,6 +524,7 @@ function wplc_api_get_sessions(WP_REST_Request $request){
510
  * Records an admin message via the API
511
  */
512
  function wplc_api_record_admin_message($cid, $msg){
 
513
  global $wpdb;
514
  global $wplc_tblname_msgs;
515
 
@@ -630,6 +645,7 @@ function wplc_api_return_sessions() {
630
  * @return $return_array array
631
  */
632
  function wplc_api_call_start_chat( WP_REST_Request $request ){
 
633
 
634
  $return_array = array();
635
 
@@ -691,12 +707,6 @@ function wplc_api_call_start_chat( WP_REST_Request $request ){
691
 
692
  $cid = $wpdb->insert_id;
693
 
694
- wplc_mrg_notify_via_email( array(
695
- 'name' => $request['wplc_name'],
696
- 'email' => $request['wplc_email'],
697
- ) );
698
-
699
-
700
  do_action("wplc_start_chat_hook_after_data_insert", $cid, 2, $request['wplc_name']);
701
 
702
  do_action("wplc_change_chat_status_hook", $cid, 2); /* so we fire off onesignal events */
@@ -746,6 +756,8 @@ function wplc_api_call_start_chat( WP_REST_Request $request ){
746
  * Upload end point
747
  */
748
  function wplc_api_remote_upload(WP_REST_Request $request){
 
 
749
  $return_array = array();
750
  $return_array['response'] = 'false';
751
 
@@ -762,6 +774,8 @@ function wplc_api_permission_check(){
762
  }
763
 
764
  function wplc_validate_agent_check(WP_REST_Request $request){
 
 
765
  $return_array = array();
766
  if(isset($request)){
767
  if(isset($request['agent_id'])){
@@ -789,6 +803,8 @@ function wplc_validate_agent_check(WP_REST_Request $request){
789
 
790
  # PRO API FUNCTIONS
791
  function wplc_api_send_agent_message_mrg(WP_REST_Request $request){
 
 
792
  $return_array = array();
793
  if(isset($request)){
794
  if(isset($request['server_token'])){
@@ -812,7 +828,11 @@ function wplc_api_send_agent_message_mrg(WP_REST_Request $request){
812
  if ($action == "wplc_admin_send_msg"){
813
  $message = sanitize_text_field( $message );
814
  $ato = intval( $request['ato'] );
815
- wplc_api_record_agent_chat_msg_mrg(sanitize_text_field( $request['agent_id'] ), $chat_id, $message, true, $ato, $other);
 
 
 
 
816
  wplc_update_active_timestamp($chat_id);
817
 
818
  $return_array['response'] = "Message sent successfully";
@@ -867,6 +887,8 @@ function wplc_api_send_agent_message_mrg(WP_REST_Request $request){
867
 
868
 
869
  function wplc_api_get_agent_unread_message_counts_mrg( WP_REST_Request $request ) {
 
 
870
  $return_array = array();
871
  if(isset($request)){
872
  if(isset($request['token'])){
@@ -915,6 +937,7 @@ function wplc_api_get_agent_unread_message_counts_mrg( WP_REST_Request $request
915
  }
916
 
917
  function wplc_api_initiate_chat_mrg(WP_REST_REQUEST $request) {
 
918
 
919
  $return_array = array();
920
  if(isset($request)) {
@@ -1028,6 +1051,8 @@ function wplc_api_initiate_chat_mrg(WP_REST_REQUEST $request) {
1028
  }
1029
 
1030
  function wplc_api_email_notification_mrg(WP_REST_Request $request) {
 
 
1031
  $return_array = array();
1032
  if(isset($request)){
1033
  if(isset($request['security'])){
@@ -1109,6 +1134,8 @@ function wplc_api_email_notification_mrg(WP_REST_Request $request) {
1109
 
1110
 
1111
  function wplc_api_is_typing_mrg(WP_REST_Request $request){
 
 
1112
  $return_array = array();
1113
  if(isset($request)){
1114
  if(isset($request['security'])){
@@ -1184,7 +1211,7 @@ function wplc_api_is_typing_mrg(WP_REST_Request $request){
1184
  }
1185
 
1186
 
1187
- function wplc_api_record_agent_chat_msg_mrg($from, $cid, $msg, $rest_check = false, $ato = false, $other = false) {
1188
  global $wpdb;
1189
  global $wplc_tblname_msgs;
1190
 
@@ -1258,10 +1285,13 @@ function wplc_api_record_agent_chat_msg_mrg($from, $cid, $msg, $rest_check = fal
1258
  $fromname = 'agent';
1259
  }
1260
  $orig = '1';
 
 
 
1261
 
1262
 
1263
  $orig_msg = $msg;
1264
-
1265
  $msg = apply_filters("wplc_filter_message_control",$msg);
1266
 
1267
 
@@ -1318,42 +1348,52 @@ function wplc_api_remote_upload_handler_mrg($return_array, $request){
1318
  $upload_dir = wp_upload_dir();
1319
  $user_dirname = $upload_dir['basedir'];
1320
 
 
 
 
 
 
 
 
 
 
 
 
1321
  if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
1322
  @mkdir($user_dirname.'/wp_live_chat/');
1323
  }
1324
 
1325
- if( !file_exists( realpath($user_dirname."/wp_live_chat/" . intval($request['cid']) ) ) ){
1326
- @mkdir( realpath($user_dirname.'/wp_live_chat/'. intval($request['cid']) ) );
1327
  }
1328
 
1329
  if (isset($remote_files['file'])) {
1330
 
1331
  $file_name = strtolower( sanitize_file_name($remote_files['file']['name']) );
1332
  $file_name = basename($file_name); //This prevents traversal
 
1333
 
1334
  if(!wplc_check_file_name_for_unsafe_extension($file_name)){
1335
  if(wplc_check_file_name_for_safe_extension($file_name)){
1336
- if( file_exists( realpath($user_dirname . "/wp_live_chat/" . intval($request['cid']) . "/" . sanitize_file_name($remote_files['file']['name']) )) ){
1337
  $file_name = rand(0, 10) . "-" . $file_name;
1338
  }
1339
 
1340
- $file_name = str_replace(" ", "_", $file_name);
1341
-
1342
- if(move_uploaded_file( realpath( sanitize_file_name($remote_files['file']['tmp_name'])), realpath($user_dirname."/wp_live_chat/" . intval($request['cid']) . "/" . $file_name)) ){
1343
 
1344
- if(wplc_check_file_mime_type( realpath($user_dirname. "/wp_live_chat/" . intval($request['cid']) . "/" . $file_name) )){
1345
- $response = realpath($upload_dir['baseurl']."/wp_live_chat/" . intval($request['cid']) . "/" . $file_name);
1346
 
1347
  $return_array['response'] = wp_filter_post_kses(strip_tags($response));
1348
  } else {
1349
- @unlink( realpath($user_dirname. "/wp_live_chat/" . intval($request['cid']) . "/" . $file_name) );
1350
- $return_array['response'] = __('Security Violation - MIME Type not allowed', 'wplivechat');
1351
  }
1352
  } else {
1353
- $return_array['response'] = __('File could not be uploaded', 'wplivechat');
1354
  }
1355
  } else {
1356
- $return_array['response'] = __('Security Violation - Does not match allowed file types', 'wplivechat');
1357
  }
1358
  } else {
1359
  $return_array['response'] = __('Security Violation - File unsafe', 'wplivechat');
@@ -1368,4 +1408,20 @@ function wplc_api_remote_upload_handler_mrg($return_array, $request){
1368
  }
1369
 
1370
  return $return_array;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1371
  }
14
  * - Agent ID
15
  */
16
  function wplc_api_accept_chat(WP_REST_Request $request){
17
+ $request = wplc_api_sanitize_request_params($request);
18
+
19
  $return_array = array();
20
  if(isset($request)){
21
  if(isset($request['token'])){
82
  * - Agent ID
83
  */
84
  function wplc_api_end_chat(WP_REST_Request $request){
85
+ $request = wplc_api_sanitize_request_params($request);
86
+
87
  $return_array = array();
88
  if(isset($request)){
89
  if(isset($request['token'])){
156
  * - Message ID (Rel)
157
  */
158
  function wplc_edit_message(WP_REST_Request $request){
159
+ $request = wplc_api_sanitize_request_params($request);
160
+
161
  $return_array = array();
162
  if(isset($request)){
163
  if(isset($request['server_token'])){
263
  * - Message
264
  */
265
  function wplc_api_send_message(WP_REST_Request $request){
266
+ $request = wplc_api_sanitize_request_params($request);
267
+
268
  $return_array = array();
269
  if(isset($request)){
270
  if(isset($request['server_token'])){
360
  * - Chat ID
361
  */
362
  function wplc_api_get_status(WP_REST_Request $request){
363
+ $request = wplc_api_sanitize_request_params($request);
364
+
365
  $return_array = array();
366
  if(isset($request)){
367
  if(isset($request['token'])){
418
  * - Offset (Defaults to 0)
419
  */
420
  function wplc_api_get_messages(WP_REST_Request $request){
421
+ $request = wplc_api_sanitize_request_params($request);
422
+
423
  $return_array = array();
424
  if(isset($request)){
425
  if(isset($request['token'])){
484
  * - Token
485
  */
486
  function wplc_api_get_sessions(WP_REST_Request $request){
487
+ $request = wplc_api_sanitize_request_params($request);
488
+
489
  $return_array = array();
490
  if(isset($request)){
491
  if(isset($request['token'])){
524
  * Records an admin message via the API
525
  */
526
  function wplc_api_record_admin_message($cid, $msg){
527
+
528
  global $wpdb;
529
  global $wplc_tblname_msgs;
530
 
645
  * @return $return_array array
646
  */
647
  function wplc_api_call_start_chat( WP_REST_Request $request ){
648
+ $request = wplc_api_sanitize_request_params($request);
649
 
650
  $return_array = array();
651
 
707
 
708
  $cid = $wpdb->insert_id;
709
 
 
 
 
 
 
 
710
  do_action("wplc_start_chat_hook_after_data_insert", $cid, 2, $request['wplc_name']);
711
 
712
  do_action("wplc_change_chat_status_hook", $cid, 2); /* so we fire off onesignal events */
756
  * Upload end point
757
  */
758
  function wplc_api_remote_upload(WP_REST_Request $request){
759
+ $request = wplc_api_sanitize_request_params($request);
760
+
761
  $return_array = array();
762
  $return_array['response'] = 'false';
763
 
774
  }
775
 
776
  function wplc_validate_agent_check(WP_REST_Request $request){
777
+ $request = wplc_api_sanitize_request_params($request);
778
+
779
  $return_array = array();
780
  if(isset($request)){
781
  if(isset($request['agent_id'])){
803
 
804
  # PRO API FUNCTIONS
805
  function wplc_api_send_agent_message_mrg(WP_REST_Request $request){
806
+ $request = wplc_api_sanitize_request_params($request);
807
+
808
  $return_array = array();
809
  if(isset($request)){
810
  if(isset($request['server_token'])){
828
  if ($action == "wplc_admin_send_msg"){
829
  $message = sanitize_text_field( $message );
830
  $ato = intval( $request['ato'] );
831
+ if(isset($request['orig_override'])){
832
+ wplc_api_record_agent_chat_msg_mrg(sanitize_text_field( $request['agent_id'] ), $chat_id, $message, true, $ato, $other, $request['orig_override']);
833
+ } else {
834
+ wplc_api_record_agent_chat_msg_mrg(sanitize_text_field( $request['agent_id'] ), $chat_id, $message, true, $ato, $other);
835
+ }
836
  wplc_update_active_timestamp($chat_id);
837
 
838
  $return_array['response'] = "Message sent successfully";
887
 
888
 
889
  function wplc_api_get_agent_unread_message_counts_mrg( WP_REST_Request $request ) {
890
+ $request = wplc_api_sanitize_request_params($request);
891
+
892
  $return_array = array();
893
  if(isset($request)){
894
  if(isset($request['token'])){
937
  }
938
 
939
  function wplc_api_initiate_chat_mrg(WP_REST_REQUEST $request) {
940
+ $request = wplc_api_sanitize_request_params($request);
941
 
942
  $return_array = array();
943
  if(isset($request)) {
1051
  }
1052
 
1053
  function wplc_api_email_notification_mrg(WP_REST_Request $request) {
1054
+ $request = wplc_api_sanitize_request_params($request);
1055
+
1056
  $return_array = array();
1057
  if(isset($request)){
1058
  if(isset($request['security'])){
1134
 
1135
 
1136
  function wplc_api_is_typing_mrg(WP_REST_Request $request){
1137
+ $request = wplc_api_sanitize_request_params($request);
1138
+
1139
  $return_array = array();
1140
  if(isset($request)){
1141
  if(isset($request['security'])){
1211
  }
1212
 
1213
 
1214
+ function wplc_api_record_agent_chat_msg_mrg($from, $cid, $msg, $rest_check = false, $ato = false, $other = false, $orig_override = false) {
1215
  global $wpdb;
1216
  global $wplc_tblname_msgs;
1217
 
1285
  $fromname = 'agent';
1286
  }
1287
  $orig = '1';
1288
+ if($orig_override !== false){
1289
+ $orig = sanitize_text_field($orig_override);
1290
+ }
1291
 
1292
 
1293
  $orig_msg = $msg;
1294
+
1295
  $msg = apply_filters("wplc_filter_message_control",$msg);
1296
 
1297
 
1348
  $upload_dir = wp_upload_dir();
1349
  $user_dirname = $upload_dir['basedir'];
1350
 
1351
+ $cid=0;
1352
+ if (isset($request['cid'])) {
1353
+ $cid = sanitize_text_field($request['cid']);
1354
+ if( ! filter_var($cid, FILTER_VALIDATE_INT) ) {
1355
+ /* We need to identify if this CID is a node CID, and if so, return the WP CID */
1356
+ $cid = wplc_return_chat_id_by_rel($cid);
1357
+ }
1358
+
1359
+ $cid = intval($cid);
1360
+ }
1361
+
1362
  if( !file_exists( $user_dirname."/wp_live_chat/" ) ){
1363
  @mkdir($user_dirname.'/wp_live_chat/');
1364
  }
1365
 
1366
+ if( !realpath($user_dirname."/wp_live_chat/" . $cid ) ){
1367
+ @mkdir( $user_dirname.'/wp_live_chat/'. $cid );
1368
  }
1369
 
1370
  if (isset($remote_files['file'])) {
1371
 
1372
  $file_name = strtolower( sanitize_file_name($remote_files['file']['name']) );
1373
  $file_name = basename($file_name); //This prevents traversal
1374
+ $file_name = str_replace(" ", "_", $file_name);
1375
 
1376
  if(!wplc_check_file_name_for_unsafe_extension($file_name)){
1377
  if(wplc_check_file_name_for_safe_extension($file_name)){
1378
+ if( realpath($user_dirname . "/wp_live_chat/" . $cid . "/" . $file_name ) == false ){
1379
  $file_name = rand(0, 10) . "-" . $file_name;
1380
  }
1381
 
1382
+ if(move_uploaded_file($remote_files['file']['tmp_name'], $user_dirname."/wp_live_chat/" . $cid . "/" . $file_name) ){
 
 
1383
 
1384
+ if(wplc_check_file_mime_type($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name) ){
1385
+ $response = $upload_dir['baseurl']."/wp_live_chat/" . $cid . "/" . $file_name;
1386
 
1387
  $return_array['response'] = wp_filter_post_kses(strip_tags($response));
1388
  } else {
1389
+ @unlink( realpath($user_dirname. "/wp_live_chat/" . $cid . "/" . $file_name) );
1390
+ $return_array['response'] = __('Security Violation - File unsafe', 'wplivechat');
1391
  }
1392
  } else {
1393
+ $return_array['response'] = __('Security Violation - File unsafe', 'wplivechat');
1394
  }
1395
  } else {
1396
+ $return_array['response'] = __('Security Violation - File unsafe', 'wplivechat');
1397
  }
1398
  } else {
1399
  $return_array['response'] = __('Security Violation - File unsafe', 'wplivechat');
1408
  }
1409
 
1410
  return $return_array;
1411
+ }
1412
+
1413
+ /**
1414
+ * Cleanup all REST Params
1415
+ */
1416
+ function wplc_api_sanitize_request_params(WP_REST_Request $request){
1417
+ global $wpdb;
1418
+
1419
+ $params = $request->get_params();
1420
+ foreach ($params as $key => $value) {
1421
+ if(is_string($value)){
1422
+ $request->set_param($key, $wpdb->_real_escape($value));
1423
+ }
1424
+ }
1425
+
1426
+ return $request;
1427
  }
modules/gdpr.php CHANGED
@@ -562,7 +562,7 @@ function wplc_gdpr_end_chat_action_prompt($content, $wplc_settings = false){
562
  }
563
 
564
 
565
- add_action('admin_notices', 'wplc_gdpr_disabled_warning');
566
  /**
567
  * Notice of doom
568
  */
562
  }
563
 
564
 
565
+ //add_action('admin_notices', 'wplc_gdpr_disabled_warning');
566
  /**
567
  * Notice of doom
568
  */
modules/node_server.php CHANGED
@@ -7,11 +7,8 @@ if ( ! defined( 'ABSPATH' ) ) {
7
  exit;
8
  }
9
 
10
- define("BLEEPER_REMOTE_DASH_ROUTE", "remote_dashboard.php");
11
- define("BLEEPER_NODE_SERVER_URL", "https://livechat-001.us-3.evennode.com");
12
-
13
  define("BLEEPER_NODE_END_POINTS_ROUTE", "api/v1/");
14
- define("BLEEPER_NODE_END_POINT_TOKEN", "zf6fe1399sdfgsdfg02ad09ab6a8cb7345s");
15
 
16
 
17
  add_action("wplc_activate_hook", "wplc_node_server_token_check", 10);
@@ -47,6 +44,9 @@ function wplc_admin_dashboard() {
47
  $variables = array("node_token" => $wplc_node_token, "action" => "wordpress");
48
  $variables = apply_filters("wplc_admin_dashboard_layout_node_request_variable_filter", $variables); //Filter for pro to add a few request variables to the mix for additional structure
49
 
 
 
 
50
  ?>
51
  <div class='nifty_top_wrapper'>
52
  <div class="wrap">
@@ -80,9 +80,9 @@ function wplc_admin_dashboard() {
80
  <input type="checkbox" id="user_list_mobile_control" name="user_list_mobile_control" checked="checked">
81
  <div id='user_list' class='col-md-3'>
82
  <?php if (!empty($variables['choose']) && !empty($variables['aid'])) { ?>
83
- <div id='choose_online'>
84
  <div id="wplc_agent_status_text" style="display: inline-block; padding-left: 10px;"></div>
85
- <input type="checkbox" class="wplc_switchery" name="wplc_agent_status" id="wplc_agent_status" <?php if (isset($variables['choose'][$variables['aid']]) && $variables['choose'][$variables['aid']] === "true") { echo 'checked'; } ?> />
86
  </div>
87
  <?php } ?>
88
  <div id='user_count'>
@@ -95,6 +95,10 @@ function wplc_admin_dashboard() {
95
  <span class="agent_count"><?php echo (isset($variables['agent_count']) ? intval($variables['agent_count']) : "1"); ?> Agent(s) Online</span>
96
  <?php } ?>
97
  <span class='history_link'><a href='./admin.php?page=wplivechat-menu-history' target='_BLANK' id='wplc_history_link'>Chat History</a></span>
 
 
 
 
98
  <div class='userListBox_Wrapper'>
99
  <div class='userListBox'></div>
100
  </div>
@@ -125,12 +129,12 @@ function wplc_admin_dashboard() {
125
  </button>
126
  <div class="dropdown-menu" aria-labelledby='inchat_drop_down'>
127
  <?php if (isset($variables['pro']) && isset($variables['include_transfers'])){ ?>
128
- <a href="javascript:void(0);" class='dropdown-item chatTransfer' id='chatTransferLink'>Transfer</a>
129
- <a href="javascript:void(0);" class='dropdown-item chatTransferDepartment' id='chatTransferDepLink'>Department Transfer</a>
130
  <a href="javascript:void(0);" class='dropdown-item chatDirectUserToPagePrompt' id='chatDirectUserToPageLink'>Direct User To Page</a>
131
  <?php } ?>
132
  <a href="javascript:void(0);" class='dropdown-item chatTranscript' id='chatTranscriptTitle' style='display:none;'>Transcript</a>
133
- <a href="javascript:void(0);" class='dropdown-item chatClose' id='chatCloseTitle'>Leave chat</a>
134
  <a href="javascript:void(0);" class='dropdown-item endChat' id='chatEndTitle'>End chat</a>
135
  <?php if (!isset($variables['pro'])){ ?>
136
  <a href="javascript:void(0);" class='dropdown-item chatTransferUps' id="chatTransferUps">Transfer</a>
@@ -185,7 +189,14 @@ function wplc_admin_dashboard() {
185
  <img id="wplc_send_msg" class='nifty_send_arrow' style="display:none;" src='<?php echo WPLC_PLUGIN_URL;?>/images/arrow.png' />
186
 
187
  <?php if (isset($variables['pro']) && isset($variables['include_media_sharing'])){ ?>
188
- <label for='nifty_add_media' class="nifty_add_media_button"><i class="fa fa-plus"></i></label>
 
 
 
 
 
 
 
189
  <input type="checkbox" id="nifty_add_media" />
190
  <ul class='nifty_media_prompt'>
191
  <li>
@@ -196,7 +207,7 @@ function wplc_admin_dashboard() {
196
  <i class="nifty_attach_icon fa fa-minus-circle" id="nifty_attach_fail_icon" style="display:none;"></i>
197
  </label>
198
  </li>
199
- </ul>
200
  <input type="file" id="nifty_file_input" name="nifty_file_input" style="display:none">
201
  <?php } else { ?>
202
  <label for='nifty_add_media' class="nifty_add_media_button"><i class="fa fa-plus"></i></label>
@@ -326,7 +337,7 @@ function wplc_node_server_token_regenerate(){
326
  */
327
  function wplc_node_server_post($route, $form_data){
328
 
329
- $url = trailingslashit(BLEEPER_NODE_SERVER_URL) . trailingslashit(BLEEPER_NODE_END_POINTS_ROUTE) . $route;
330
 
331
  if(!isset($form_data['token'])){
332
  $form_data['token'] = BLEEPER_NODE_END_POINT_TOKEN; //Add the security token
@@ -350,9 +361,14 @@ function wplc_node_server_post($route, $form_data){
350
  $form_data['origin_url'] = $origin_url; //Add the security token
351
  }
352
 
353
- $options = array();
354
- $context = @stream_context_create($options);
355
- $result = @file_get_contents($url . "?" . http_build_query($form_data), false, $context);
 
 
 
 
 
356
 
357
  if ($result === FALSE) {
358
  return false;
@@ -393,7 +409,7 @@ function wplc_filter_notification_hook_node($type,$cid,$data){
393
  'notification_text' => $msg,
394
  );
395
 
396
- error_log("Using deprecated wplc_node_server_post() for user_chat_notification");
397
  $user_request = wplc_node_server_post("user_chat_notification", $form_data);
398
 
399
  }
@@ -428,6 +444,8 @@ function wplc_api_node_routes(){
428
  * @return void
429
  */
430
  function wplc_node_async_storage_rest(WP_REST_Request $request){
 
 
431
  $return_array = array();
432
  $return_array['request_status'] = false; //Default to be returned if something goes wrong
433
  if(isset($request)){
@@ -743,7 +761,7 @@ function wplc_admin_remote_dashboard_scripts($wplc_settings){
743
  $wplc_transcript_localizations = array(
744
  'ajax_nonce' => $wplc_et_ajax_nonce,
745
  'string_loading' => __( "Sending transcript...", "wplivechat" ),
746
- 'string_title' => __( "Sending Transcript", "wplivechat" ),
747
  'string_close' => __( "Close", "wplivechat" ),
748
  'string_chat_emailed' => __( "The chat transcript has been emailed.", "wplivechat" ),
749
  'string_error1' => __( "There was a problem emailing the chat.", "wplivechat" )
@@ -839,7 +857,8 @@ function wplc_admin_remote_dashboard_scripts($wplc_settings){
839
  wp_localize_script('wplc-admin-js-agent', 'wplc_restapi_nonce', "false");
840
  }
841
 
842
- $agent_tagline = apply_filters( "wplc_filter_simple_agent_data_agent_tagline", '', get_current_user_id() );
 
843
  $agent_bio = apply_filters( "wplc_filter_simple_agent_data_agent_bio", '', '', get_current_user_id() );
844
  $social_links = apply_filters( "wplc_filter_simple_agent_data_social_links", '', get_current_user_id() );
845
  $head_data = array(
@@ -1092,8 +1111,8 @@ function wplc_admin_remote_dashboard_dynamic_translation_handler(){
1092
  'wplc_history_link' => __('Chat History', 'wplivechat'),
1093
  'nifty_agent_heading' => __('Agents', 'wplivechat'),
1094
  'drag_zone_inner_text' => __('Drag Files Here', 'wplivechat'),
1095
- 'chatTransferLink' => __('Transfer', 'wplivechat'),
1096
- 'chatTransferDepLink' => __('Department Transfer', 'wplivechat'),
1097
  'chatDirectUserToPageLink' => __('Direct User To Page', 'wplivechat'),
1098
  'chatCloseTitle' => __('Leave chat', 'wplivechat'),
1099
  'chatEndTitle' => __('End chat', 'wplivechat'),
7
  exit;
8
  }
9
 
 
 
 
10
  define("BLEEPER_NODE_END_POINTS_ROUTE", "api/v1/");
11
+ define("BLEEPER_NODE_END_POINT_TOKEN", "2d86b9f53059d3f4efed1ea51a888eb8");
12
 
13
 
14
  add_action("wplc_activate_hook", "wplc_node_server_token_check", 10);
44
  $variables = array("node_token" => $wplc_node_token, "action" => "wordpress");
45
  $variables = apply_filters("wplc_admin_dashboard_layout_node_request_variable_filter", $variables); //Filter for pro to add a few request variables to the mix for additional structure
46
 
47
+ $wplc_choose_settings = get_option("WPLC_CHOOSE_SETTINGS");
48
+ $force_online = (!isset($wplc_choose_settings['wplc_auto_online']) || $wplc_choose_settings['wplc_auto_online'] != 1) ? true : false;
49
+
50
  ?>
51
  <div class='nifty_top_wrapper'>
52
  <div class="wrap">
80
  <input type="checkbox" id="user_list_mobile_control" name="user_list_mobile_control" checked="checked">
81
  <div id='user_list' class='col-md-3'>
82
  <?php if (!empty($variables['choose']) && !empty($variables['aid'])) { ?>
83
+ <div id='choose_online' data-force-on='<?php echo $force_online ? "true" : "false"; ?>'>
84
  <div id="wplc_agent_status_text" style="display: inline-block; padding-left: 10px;"></div>
85
+ <input type="checkbox" class="wplc_switchery" name="wplc_agent_status" id="wplc_agent_status" <?php if ((isset($variables['choose'][$variables['aid']]) && $variables['choose'][$variables['aid']] === "true")) { echo 'checked'; } ?> />
86
  </div>
87
  <?php } ?>
88
  <div id='user_count'>
95
  <span class="agent_count"><?php echo (isset($variables['agent_count']) ? intval($variables['agent_count']) : "1"); ?> Agent(s) Online</span>
96
  <?php } ?>
97
  <span class='history_link'><a href='./admin.php?page=wplivechat-menu-history' target='_BLANK' id='wplc_history_link'>Chat History</a></span>
98
+ <div class='exp_cols'>
99
+ <div class='col1'>Name</div>
100
+ <div class='col3'>Agent</div>
101
+ </div>
102
  <div class='userListBox_Wrapper'>
103
  <div class='userListBox'></div>
104
  </div>
129
  </button>
130
  <div class="dropdown-menu" aria-labelledby='inchat_drop_down'>
131
  <?php if (isset($variables['pro']) && isset($variables['include_transfers'])){ ?>
132
+ <a href="javascript:void(0);" class='dropdown-item chatTransfer' id='chatTransferLink'>Invite Agent</a>
133
+ <a href="javascript:void(0);" class='dropdown-item chatTransferDepartment' id='chatTransferDepLink'>Invite Department</a>
134
  <a href="javascript:void(0);" class='dropdown-item chatDirectUserToPagePrompt' id='chatDirectUserToPageLink'>Direct User To Page</a>
135
  <?php } ?>
136
  <a href="javascript:void(0);" class='dropdown-item chatTranscript' id='chatTranscriptTitle' style='display:none;'>Transcript</a>
137
+ <a href="javascript:void(0);" class='dropdown-item chatClose' id='chatCloseTitle' style="display:none;">Leave chat</a>
138
  <a href="javascript:void(0);" class='dropdown-item endChat' id='chatEndTitle'>End chat</a>
139
  <?php if (!isset($variables['pro'])){ ?>
140
  <a href="javascript:void(0);" class='dropdown-item chatTransferUps' id="chatTransferUps">Transfer</a>
189
  <img id="wplc_send_msg" class='nifty_send_arrow' style="display:none;" src='<?php echo WPLC_PLUGIN_URL;?>/images/arrow.png' />
190
 
191
  <?php if (isset($variables['pro']) && isset($variables['include_media_sharing'])){ ?>
192
+ <label for="nifty_file_input" class='nifty_add_media_button'>
193
+ <i class="nifty_tedit_icon fa fa-paperclip" id="nifty_attach" ></i>
194
+ <i class="nifty_attach_icon fa fa-circle-o-notch fa-spin" id="nifty_attach_uploading_icon" style="display:none;"></i>
195
+ <i class="nifty_attach_icon fa fa-check-circle" id="nifty_attach_success_icon" style="display:none;"></i>
196
+ <i class="nifty_attach_icon fa fa-minus-circle" id="nifty_attach_fail_icon" style="display:none;"></i>
197
+ </label>
198
+
199
+ <!--<label for='nifty_add_media' class="nifty_add_media_button"><i class="fa fa-plus"></i></label>
200
  <input type="checkbox" id="nifty_add_media" />
201
  <ul class='nifty_media_prompt'>
202
  <li>
207
  <i class="nifty_attach_icon fa fa-minus-circle" id="nifty_attach_fail_icon" style="display:none;"></i>
208
  </label>
209
  </li>
210
+ </ul>-->
211
  <input type="file" id="nifty_file_input" name="nifty_file_input" style="display:none">
212
  <?php } else { ?>
213
  <label for='nifty_add_media' class="nifty_add_media_button"><i class="fa fa-plus"></i></label>
337
  */
338
  function wplc_node_server_post($route, $form_data){
339
 
340
+ $url = trailingslashit(WPLC_CHAT_SERVER) . trailingslashit(BLEEPER_NODE_END_POINTS_ROUTE) . $route;
341
 
342
  if(!isset($form_data['token'])){
343
  $form_data['token'] = BLEEPER_NODE_END_POINT_TOKEN; //Add the security token
361
  $form_data['origin_url'] = $origin_url; //Add the security token
362
  }
363
 
364
+ // $options = array();
365
+ // $context = @stream_context_create($options);
366
+ // $result = @file_get_contents($url . "?" . http_build_query($form_data), false, $context);
367
+
368
+ $result = wp_remote_get($url . "?" . http_build_query($form_data));
369
+ if ( is_array( $result ) ) {
370
+ $result = $result['body']; // use the content
371
+ }
372
 
373
  if ($result === FALSE) {
374
  return false;
409
  'notification_text' => $msg,
410
  );
411
 
412
+ // error_log("Using deprecated wplc_node_server_post() for user_chat_notification");
413
  $user_request = wplc_node_server_post("user_chat_notification", $form_data);
414
 
415
  }
444
  * @return void
445
  */
446
  function wplc_node_async_storage_rest(WP_REST_Request $request){
447
+ $request = wplc_api_sanitize_request_params($request);
448
+
449
  $return_array = array();
450
  $return_array['request_status'] = false; //Default to be returned if something goes wrong
451
  if(isset($request)){
761
  $wplc_transcript_localizations = array(
762
  'ajax_nonce' => $wplc_et_ajax_nonce,
763
  'string_loading' => __( "Sending transcript...", "wplivechat" ),
764
+ 'string_title' => __( "Chat Transcript", "wplivechat" ),
765
  'string_close' => __( "Close", "wplivechat" ),
766
  'string_chat_emailed' => __( "The chat transcript has been emailed.", "wplivechat" ),
767
  'string_error1' => __( "There was a problem emailing the chat.", "wplivechat" )
857
  wp_localize_script('wplc-admin-js-agent', 'wplc_restapi_nonce', "false");
858
  }
859
 
860
+ // $agent_tagline = apply_filters( "wplc_filter_simple_agent_data_agent_tagline", '', get_current_user_id() );
861
+ $agent_tagline = get_user_meta( intval(get_current_user_id()), 'wplc_user_tagline', true );
862
  $agent_bio = apply_filters( "wplc_filter_simple_agent_data_agent_bio", '', '', get_current_user_id() );
863
  $social_links = apply_filters( "wplc_filter_simple_agent_data_social_links", '', get_current_user_id() );
864
  $head_data = array(
1111
  'wplc_history_link' => __('Chat History', 'wplivechat'),
1112
  'nifty_agent_heading' => __('Agents', 'wplivechat'),
1113
  'drag_zone_inner_text' => __('Drag Files Here', 'wplivechat'),
1114
+ 'chatTransferLink' => __('Invite Agent', 'wplivechat'),
1115
+ 'chatTransferDepLink' => __('Invite Department', 'wplivechat'),
1116
  'chatDirectUserToPageLink' => __('Direct User To Page', 'wplivechat'),
1117
  'chatCloseTitle' => __('Leave chat', 'wplivechat'),
1118
  'chatEndTitle' => __('End chat', 'wplivechat'),
readme.txt CHANGED
@@ -215,6 +215,9 @@ If the live chat box still does not appear on your website, please go through th
215
 
216
 
217
  == Upgrade Notice ==
 
 
 
218
  = 8.0.34 =
219
  It is highly recommended that you upgrade to WP Live Chat Support version 8.0.34 for security reasons.
220
 
@@ -283,6 +286,196 @@ We have patched the PHPMailer vulnerability. Please update to version 7.0.02.
283
 
284
 
285
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  = 8.0.34 - 2019-06-03 - High priority =
287
  * Fixed issue with activation function
288
  * Fixed issue with node server ping when chatbox is offline
215
 
216
 
217
  == Upgrade Notice ==
218
+ = 8.0.35 =
219
+ It is highly recommended that you upgrade to WP Live Chat Support version 8.0.35 for stability reasons.
220
+
221
  = 8.0.34 =
222
  It is highly recommended that you upgrade to WP Live Chat Support version 8.0.34 for security reasons.
223
 
286
 
287
 
288
  == Changelog ==
289
+ = 8.0.35 - 2019-07-05 - High priority =
290
+ * Moved away from EvenNode and onto Google App Engine for high performance multi-region chat
291
+ * Updated jQuery UI to 1.12.1 (CSS Only)
292
+ * Added custom styles to add jQuery UI support in settings area
293
+ * Removed non-vendor version of jQuery UI
294
+ * Added SQL sanitizing to Rest Request params
295
+ * Moved external Nimble Squirrel image to a local reference
296
+ * Moved Google Chart loader.js to a local reference
297
+ * Updated Switchery to support disable and enable calls
298
+ * Added enable/disable calls to switchery to prevent toggle spamming, which could cause sockets to remain unclosed
299
+ * Fixed issues with file sharing from agent/user side
300
+ * Fixed issue with user message position in modern dashboard
301
+ * Fixed bug where email notificaitons were being sent twice
302
+ * Fixed bug where chat would not automatically switch to 'online' when choose when online toggle was disabled
303
+ * Fixed bug with transfer functionality
304
+ * Fixed an issue where history would include browsing users
305
+ * Fixed undefined reference 'get random server' function in wplc_dashboard.js
306
+ * Fixed issue with shrink header alignment
307
+ * Changed field content to change placeholder of custom field
308
+ * Added support to auto link generator for port numbers in the URL
309
+ * Fixed issue with chat transcripts not being sent correctly
310
+ * Fixed issue with chat animation header toggle
311
+ * Fixed issue with hovercard showing when spamming header chat
312
+ * Changed position of typing indicator on front end
313
+ * Changed title for chat transcript modal
314
+ * Fixed offline message styling inconsistency - Modern Theme
315
+ * Fixed offline message sending and storage bugs
316
+ * Fixed dropdown custom field styling inconsistency
317
+ * Modified agent list in settings area
318
+ * Fixed issues with drag and drop upload on frontend
319
+ * Fixed inconsistent alert messages
320
+ * Updated classic stylesheet
321
+ * Fixed issues with trigger editing
322
+ * Added mobile support for WDT Emoji Library
323
+ * Added max height to offline form in modern theme
324
+ * Changed active theme/color selection indicator
325
+ * Changed custom color selector system
326
+ * Added URL validation for social links
327
+ * Changed position of social icons - Modern Theme
328
+ * Removed 'Leave Chat' button in chat dashboard
329
+ * Fixed issue with message tone preview playback on 'Default'
330
+ * Added security violation alerts for unsupported files
331
+ * Removed the disconnect agent notice
332
+ * Fixed issues with 'Direct user to page' functionality
333
+ * Fixed issues with event logging
334
+ * Added auto responder first message storage
335
+ * Fixed styling issues with system notifications
336
+ * Restructured chat input tools
337
+ * Restyled styling for chat input tools
338
+ * Fixed issues with emoji popup container placement
339
+ * Changed custom color scheme selector title
340
+ * Removed drag and drop file sharing
341
+ * Fixed issue with mouse over cursor pointer in settings
342
+ * Fixed classic styling message box
343
+ * Added code to hide/show add agent button based on whether a selection has been made from dropdown
344
+ * Added a URL validation notice in the settings area
345
+ * Fixed issue with documentation notices in admin area
346
+ * Fixed issues with documentation suggestions on the frontend
347
+ * Fixed displacement of custom fields when compared to default fields
348
+ * Fixed styling issue with message textarea in classic theme
349
+ * Fixed incorrect URL pointer
350
+ * Restructured message tools and styling in classic
351
+ * Resolved issues with history persistence
352
+ * Resolved issues with chat agent header not being received
353
+ * Removed message edit functionality
354
+ * Changed MIME error reports to a standard error message
355
+ * Fixed issue with file sharing when cancelling file selection
356
+ * Fixed issue with inaccurate 'user left' notifications
357
+ * Added a character counter and soft limiter to the offline messages input
358
+ * Added allowed filetypes to error messages for file sharing
359
+ * Fixed issues with direct user to page links exceeding chat space
360
+ * Fixed styling issues with documentation suggestions on the front end
361
+ * Fixed time placement of active chat rows in modern dashboard
362
+ * Removed text indent on close icon for active chat rows in modern dashboard
363
+ * Fixed styling issues with the agent count
364
+ * Added visual column names to the active chats panel
365
+ * Fixed issue where offline message header would be hidden upon submission
366
+ * Fixed issue where offline chatbox would overlap icon (modern theme) on some devices
367
+ * Removed styling from email system. Changed to plain text style
368
+ * Removed username from offline message subject line
369
+ * Fixed issue where end chat button was not visible on mobile devices (modern theme)
370
+ * Auto close chat session when user ends a chat (agent dashboard)
371
+ * Changed session handling when user ends chats
372
+ * Overall improvements to chat session handling
373
+ * Fixed styling issues with settings tooltips
374
+ * Fixed issues with editing custom fields
375
+ * Added default field name to custom field dropdown as 'first choice'
376
+ * Changed position of visitor avatar in dashboard
377
+ * Added check for if minute value is less than 10 - Active visitor row in dashboard
378
+ * Added fixed width to offline messages table
379
+ * Standardize table avatar styles
380
+ * Fixed issue where agent profile picture went missing when sharing files
381
+ * Hide add agent button again after adding a new agent in settings
382
+ * Moved position of typing indicator in classic theme
383
+ * Added reserved space to last message to allow for typing indicator to display independently in most cases
384
+ * Fixed issues with creating a new trigger
385
+ * Fixed issue with dashboard chat transcripts not passing chat ID
386
+ * Added JS validation for social links
387
+ * Changed font-sized in both modern and classic
388
+ * Standardize padding, offsets, and margis in modern and classic
389
+ * Changed style of end chat button
390
+ * Added satisfaction reporting card for 'no agent'
391
+ * Altered styles of reporting cards
392
+ * Added auto scroll on image load in agent dashboard
393
+ * Updated fonts in hovercard popup
394
+ * Fixed undefined 'editor_enabled' variable in functions.php
395
+ * Fixed styling for blog posts in dashboard page
396
+ * Fixed bug where agent header information would be removed on disconnect
397
+ * Improved header styling on the frontend(modern)
398
+ * Fixed bug where chat history would still be visible after switching to offline
399
+ * Added code to automatically notify the user that the agent has left/ended the chat when going offline
400
+ * Added URL JS validation to redirect URL field
401
+ * Fixed issue with typing indicator in classic theme, animation related
402
+ * Fixed issue with sending transcripts from history
403
+ * Fixed styling issues in transcript emails
404
+ * Added attachment prefix stripping to transcripts get_messages call
405
+ * Changed tagline styling in modern chatbox
406
+ * Made changes to show social icons at all times
407
+ * Fixed tagline persistence on page reloads
408
+ * Fixed bug where empty social and redirects links were not allowed
409
+ * Fixed bug with scrollable region becoming visible in firefox in some instances
410
+ * Fixed issue with attachment stacking in agent dashboard
411
+ * Added click to open for image attachments
412
+ * Added scroll support to message input on frontend
413
+ * Fixed missing pointer cursors on front end chat controls
414
+ * Standardized size of in chat controls
415
+ * Changed 'transfer' references to 'invite' references instead
416
+ * Fixed multi agent chat header stacking
417
+ * Fixed typo in auto transfer notice
418
+ * Added 'Direct to page' notification storage
419
+ * Added admin direct to page notice in real time
420
+ * Improved links in chatbox (styling)
421
+ * Added welcome message removal event handler
422
+ * Removed scroll collapse/expand handler for modern chat header
423
+ * Added ability to cancel rating and close prompt
424
+ * Added exceprt support for agent name chain with title attribute on hover (modern)
425
+ * Added title attribute to tagline along with italic styling (modern)
426
+ * Improvements to overall visitor list management as well as chat restarts
427
+ * Changed auto end chats to only notify visitor that the agent has left
428
+ * Fixed issues with tagline being sent twice in some cases
429
+ * Removed involved agents when user restarts chats
430
+ * Clear chatbox when user restarts chat
431
+ * Changed structure of lifetime tracking
432
+ * Fixed history processing issue
433
+ * Made changes to agent satisfaction reporting
434
+ * Added code to show the 'Leave chat' button only when multiple agents are involved in a chat
435
+ * Removed time from system notifications in email transcripts
436
+ * Added break tag to system notifications in email transcripts
437
+ * Added ability to upload the same file repeatedly
438
+ * Changed tab index of rate button
439
+ * Clear rating after submission
440
+ * Fixed rating stacking
441
+ * Added code to hide 'invite' button until a department/agent is selected
442
+ * Removed the clear chat history on user restart of chat event
443
+ * Changed documentation suggestions to make use of WP Remote Get requests to improve reliability
444
+ * Changed participant notification system
445
+ * Added code to update the chat header when an agent leaves the chat
446
+ * Made changes to the agent online sync controller
447
+ * Fixed "Undefined variable: ret" in Custom Fields control
448
+ * Removed option to disable the advanced editor filters
449
+ * Rebuilt active visitor counter
450
+ * Added code to show the confirm button in dialogs by default
451
+ * Improved message deserialization
452
+ * Added code to rebuild header when agent rejoins after going offline
453
+ * Removed code which disables transcript once
454
+ * Improved participant tracking
455
+ * Added code to remove the 'restart chat' button on frontend if agent reaches out again
456
+ * Added auto join on invite accepted
457
+ * Fixed bug where switching an agent to offline mode would cause agent counter to behave unexpectedly
458
+ * Improvements to join event control
459
+ * Fixed bug where one agent initiates a chat, but all agents are added to the chat involved list
460
+ * Improvements to internal agent to agent chat system
461
+ * Improved push to chatbox functionality
462
+ * Fixed slashing of gutenberg HTML attributes
463
+ * Added end chat rest call when agent ends chat
464
+ * Added additional filtering to transcript functionality
465
+ * Removed GDPR and Deprecation notices
466
+ * Removed Lifetime indicator in agent screen
467
+ * Removed realtime rating feedback for agent screens
468
+ * Removed chat rating note functionality
469
+ * Removed the need to double-confirm rating submission
470
+ * Removed rating stacking, multiple ratings per chat no longer supported
471
+ * Forced the rating note content to be empty to avoid any submission of notes from front end
472
+ * Removed rating comments from reporting screen
473
+ * Enabled Experience Ratings, Typing indicator, show date and time options for all new installations
474
+ * Fixed styling issue with avatars on missed chats page
475
+ * Removed collapsed attachment icon toolbar from agent dashboard
476
+ * Moved attachment controls into input bar tools for agent dashboard
477
+ * Removed deprecated images from image directory
478
+
479
  = 8.0.34 - 2019-06-03 - High priority =
480
  * Fixed issue with activation function
481
  * Fixed issue with node server ping when chatbox is offline
wp-live-chat-support.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP Live Chat Support
4
  Plugin URI: http://www.wp-livechat.com
5
  Description: The easiest to use website live chat plugin. Let your visitors chat with you and increase sales conversion rates with WP Live Chat Support.
6
- Version: 8.0.34
7
  Author: WP-LiveChat
8
  Author URI: http://www.wp-livechat.com
9
  Text Domain: wplivechat
@@ -11,6 +11,197 @@
11
  */
12
 
13
  /*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  * 8.0.34 - 2019-06-03 - High priority
15
  * Fixed issue with activation function
16
  * Fixed issue with node server ping when chatbox is offline
@@ -569,6 +760,17 @@ function wplc_hook_control_remove_transient() {
569
  delete_transient('wplc_is_admin_logged_in');
570
  }
571
 
 
 
 
 
 
 
 
 
 
 
 
572
  function wplc_check_guid() {
573
  $guid=get_option('WPLC_GUID');
574
  $guid_fqdn=get_option('WPLC_GUID_URL');
@@ -578,19 +780,16 @@ function wplc_check_guid() {
578
  }
579
  if (empty($guid) || $guid_fqdn!=get_option('siteurl')) { // guid not assigned or fqdn is changed since last assignment
580
  $wplc_settings = get_option("WPLC_SETTINGS");
581
- $server=0;
582
- if (isset($wplc_settings['wplc_use_node_server'])){
583
- $server=intval($wplc_settings['wplc_use_node_server']);
584
- if ($server!=0){
585
- $server=1;
586
- }
587
- }
588
  $data_array = array(
589
  'method' => 'POST',
590
  'body' => array(
591
  'method' => 'get_guid',
592
  'url' => get_option('siteurl'),
593
- 'server' => $server
 
 
594
  )
595
  );
596
  $response = wp_remote_post(WPLC_ACTIVATION_SERVER.'/api/v1', $data_array);
@@ -625,7 +824,14 @@ function wplc_action_callback() {
625
  echo 1;
626
  }
627
  } else if ($_POST['action'] == "wplc_user_send_offline_message") {
628
- $cid=intval($_POST['cid']);
 
 
 
 
 
 
 
629
  $name=sanitize_text_field($_POST['name']);
630
  $email=sanitize_text_field($_POST['email']);
631
  $msg=sanitize_text_field($_POST['msg']);
@@ -776,7 +982,6 @@ function wplc_metric_dashboard_redirect(){
776
  function wplc_admin_menu() {
777
 
778
  $cap = apply_filters("wplc_ma_filter_menu_control",array());
779
- if ( get_option("wplc_seen_surveys") ) { $survey_new = ""; } else { $survey_new = ' <span class="update-plugins"><span class="plugin-count">New</span></span>'; }
780
 
781
  $wplc_current_user = get_current_user_id();
782
 
@@ -785,7 +990,7 @@ function wplc_admin_menu() {
785
  $wplc_mainpage = add_menu_page('WP Live Chat', __('Live Chat', 'wplivechat'), $cap[0], 'wplivechat-menu', 'wplc_admin_menu_layout', 'dashicons-format-chat');
786
  add_submenu_page('wplivechat-menu', __('Dashboard', 'wplivechat'), __('Dashboard', 'wplivechat'), $cap[1], 'wplivechat-menu-dashboard', 'wplc_admin_dashboard_layout');
787
  add_submenu_page('wplivechat-menu', __('Settings', 'wplivechat'), __('Settings', 'wplivechat'), $cap[1], 'wplivechat-menu-settings', 'wplc_admin_settings_layout');
788
- add_submenu_page('wplivechat-menu', __('Surveys', 'wplivechat'), __('Surveys', 'wplivechat'). $survey_new, $cap[2], 'wplivechat-menu-survey', 'wplc_admin_survey_layout');
789
  }
790
 
791
 
@@ -1057,18 +1262,19 @@ function wplc_push_js_to_front() {
1057
  $a_array[$user->ID] = array();
1058
  $a_array[$user->ID]['name'] = apply_filters( "wplc_decide_agents_name", $user->display_name, $wplc_acbc_data );
1059
  $a_array[$user->ID]['md5'] = md5( $user->user_email );
 
1060
  }
1061
  }
1062
  wp_localize_script('wplc-user-script', 'wplc_agent_data', $a_array);
1063
 
1064
 
1065
  $wplc_error_messages = array(
1066
- 'valid_name' => __( "Please enter your name", "wplivechat" ),
1067
- 'valid_email' => __( "Please enter your email address", "wplivechat" ),
1068
- 'server_connection_lost' => __("Connection to server lost. Please reload this page. Error: ", "wplivechat"),
1069
- 'chat_ended_by_operator' => ( empty( $wplc_settings['wplc_text_chat_ended'] ) ) ? __("The chat has been ended by the operator.", "wplivechat") : sanitize_text_field( $wplc_settings['wplc_text_chat_ended'] ) ,
1070
- 'empty_message' => __( "Please enter a message", "wplivechat" ),
1071
- 'disconnected_message' => __("Disconnected, attempting to reconnect...", "wplivechat"),
1072
  );
1073
 
1074
  $wplc_error_messages = apply_filters( "wplc_user_error_messages_filter", $wplc_error_messages );
@@ -1433,7 +1639,16 @@ function wplc_filter_control_live_chat_box_html_main_div_top($wplc_settings,$log
1433
  $ret_msg .= "</div>";
1434
  }
1435
 
1436
- $ret_msg .= "<div id=\"wp-live-chat\" wplc_animation=\"".$wplc_animation."\" style=\"".$wplc_starting_point." ".$wplc_box_align.";\" class=\"".$wplc_theme_type." ".$wplc_class." wplc_close\" original_pos=\"".$original_pos."\" ".$wplc_extra_attr." > ";
 
 
 
 
 
 
 
 
 
1437
  return $ret_msg;
1438
  }
1439
 
@@ -1547,7 +1762,7 @@ function wplc_filter_control_live_chat_box_html_ask_user_detail($wplc_settings)
1547
  } else {
1548
  //Dont ask the user
1549
 
1550
- $ret_msg .= "<div style=\"padding: 7px; text-align: center;\">";
1551
  if (isset($wplc_settings['wplc_user_alternative_text'])) {
1552
  $ret_msg .= html_entity_decode( stripslashes($wplc_settings['wplc_user_alternative_text']) );
1553
  }
@@ -1732,7 +1947,8 @@ function wplc_filter_control_live_chat_box_html_2nd_layer($wplc_settings,$logged
1732
  $ret_msg .= "<div id=\"wplc_message_div\">";
1733
  $ret_msg .= "<input type=\"text\" name=\"wplc_name\" id=\"wplc_name\" value=\"$wplc_loggedin_user_name\" placeholder=\"".__("Name", "wplivechat")."\" />";
1734
  $ret_msg .= "<input type=\"text\" name=\"wplc_email\" id=\"wplc_email\" value=\"$wplc_loggedin_user_email\" placeholder=\"".__("Email", "wplivechat")."\" />";
1735
- $ret_msg .= "<textarea name=\"wplc_message\" id=\"wplc_message\" placeholder=\"".__("Message", "wplivechat")."\"></textarea>";
 
1736
 
1737
  if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
1738
  $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
@@ -1856,7 +2072,7 @@ function wplc_filter_control_live_chat_box_above_main_div( $msg, $wplc_settings,
1856
  $agent_string = '
1857
  <p style="text-align:center;">
1858
  <img class="img-thumbnail img-circle wplc_thumb32 wplc_agent_involved" style="max-width:inherit;" id="agent_grav_'.$agent_id.'" title="'.$agent.'" src="https://www.gravatar.com/avatar/'.md5($user_info->user_email).'?s=60&d=mm" /><br />
1859
- <span class="wplc_agent_name wplc-color-2">'.$agent.'</span>
1860
  '.$extra.'
1861
  <span class="bleeper_pullup down"><i class="fa fa-angle-up"></i></span>
1862
  </p>';
@@ -1911,7 +2127,6 @@ function wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_u
1911
  $ret_msg .= "<div id='bleeper_chat_ended' style='display:none;'></div>";
1912
  $ret_msg .= "<div id='wplc_user_message_div'>";
1913
 
1914
- $ret_msg .= "<p id='wplc_msg_notice'>".$text."</p>";
1915
 
1916
  //Editor Controls
1917
  $ret_msg .= apply_filters("wplc_filter_chat_text_editor","");
@@ -1924,6 +2139,10 @@ function wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_u
1924
  $ret_msg .= apply_filters("wplc_filter_typing_control_div_theme_2","");
1925
  }
1926
 
 
 
 
 
1927
  //Upload Controls
1928
  $ret_msg .= apply_filters("wplc_filter_chat_upload","");
1929
 
@@ -1933,10 +2152,6 @@ function wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_u
1933
 
1934
  $ret_msg .= function_exists("wplc_emoji_selector_div") ? wplc_emoji_selector_div() : "";
1935
 
1936
- $current_theme = isset($wplc_settings['wplc_newtheme']) ? $wplc_settings['wplc_newtheme'] : "theme-2";
1937
- if($current_theme === "theme-2"){
1938
- $ret_msg .= apply_filters("wplc_filter_chat_4th_layer_below_input","", $wplc_settings); //Ratings/Social Icon Filter
1939
- }
1940
 
1941
  $ret_msg .= "</div>";
1942
  $ret_msg .= "</div>";
@@ -2147,6 +2362,7 @@ function wplc_return_default_theme($wplc_settings,$logged_in,$wplc_using_locale,
2147
  $ret_msg .= "</div>";
2148
  $ret_msg .= " <div id=\"wp-live-chat-4\" style=\"display:none;\">";
2149
  $ret_msg .= apply_filters("wplc_filter_live_chat_box_html_4th_layer",wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_using_locale, $cid));
 
2150
  $ret_msg .= "</div>";
2151
  return $ret_msg;
2152
  }
@@ -2192,6 +2408,7 @@ function wplc_theme_control_function($wplc_settings,$logged_in,$wplc_using_local
2192
  $ret_msg .= " <div id=\"wp-live-chat-4\" style=\"display:none;\">";
2193
  $ret_msg .= apply_filters("wplc_filter_live_chat_box_html_4th_layer",wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_using_locale, $cid));
2194
  $ret_msg .= " </div>";
 
2195
  $ret_msg .= "</div>";
2196
  } else {
2197
  $ret_msg = $default_theme;
@@ -2751,11 +2968,11 @@ function wplc_draw_chat_area($cid, $chat_data = false) {
2751
 
2752
  echo " <div class='admin_visitor_info_box1'>";
2753
  echo " <span class='admin_chat_name'>" . sanitize_text_field($result->name) . "</span>";
2754
- echo " <span class='admin_chat_email'>" . sanitize_text_field($result->email) . "</span>";
2755
  echo " </div>";
2756
  echo " </div>";
2757
 
2758
- echo " <div class='admin_visitor_advanced_info'>";
2759
  echo " <strong>" . __("Site Info", "wplivechat") . "</strong>";
2760
  echo " <hr />";
2761
  echo " <span class='part1'>" . __("Chat initiated on:", "wplivechat") . "</span> <span class='part2'>" . esc_url($result->url) . "</span>";
@@ -3081,11 +3298,12 @@ function wplc_activate() {
3081
  'wplc_welcome_msg' => __("Please standby for an agent. While you wait for the agent you may type your message.","wplivechat"),
3082
  'wplc_typing_enabled' => '1',
3083
  'wplc_show_avatar' => '1',
3084
- 'wplc_ux_editor' => '1',
3085
  'wplc_ux_file_share' => '1',
3086
  'wplc_ux_exp_rating' => '1',
3087
  'wplc_default_department' => '-1',
3088
  'wplc_enable_font_awesome' => '1',
 
 
3089
  );
3090
 
3091
  //Added V8: Default Settings array filter
@@ -3508,7 +3726,7 @@ function wplc_add_admin_stylesheet() {
3508
  wp_enqueue_style( 'wplc-font-awesome' );
3509
 
3510
  if (isset($_GET['page']) && ($_GET['page'] == 'wplivechat-menu' || $_GET['page'] == 'wplivechat-menu-api-keys-page' || $_GET['page'] == 'wplivechat-menu-settings' || $_GET['page'] == 'wplivechat-menu-offline-messages' || $_GET['page'] == 'wplivechat-menu-history' || $_GET['page'] == 'wplivechat-menu-missed-chats' || $_GET['page'] == 'wplivechat-menu-dashboard')) {
3511
- wp_register_style( 'wplc-jquery-ui', plugins_url( '/css/jquery-ui.min.css', __FILE__ ), false, WPLC_PLUGIN_VERSION );
3512
  wp_enqueue_style( 'wplc-jquery-ui' );
3513
 
3514
  wp_enqueue_script( 'jquery-ui-core' );
@@ -3724,6 +3942,7 @@ function wplc_hook_control_chat_history() {
3724
  SELECT *
3725
  FROM $wplc_tblname_chats
3726
  WHERE `name` NOT LIKE 'agent-to-agent chat'
 
3727
  ORDER BY `timestamp` DESC
3728
  LIMIT $limit OFFSET $offset
3729
  "
@@ -3863,11 +4082,11 @@ function wplc_admin_display_offline_messages() {
3863
  <table class=\"wp-list-table wplc_list_table widefat \" cellspacing=\"0\">
3864
  <thead>
3865
  <tr>
3866
- <th class='manage-column column-id'><span>" . __("Date", "wplivechat") . "</span></th>
3867
- <th scope='col' id='wplc_name_colum' class='manage-column column-id'><span>" . __("Name", "wplivechat") . "</span></th>
3868
- <th scope='col' id='wplc_email_colum' class='manage-column column-id'>" . __("Email", "wplivechat") . "</th>
3869
- <th scope='col' id='wplc_message_colum' class='manage-column column-id'>" . __("Message", "wplivechat") . "</th>
3870
- <th scope='col' id='wplc_message_colum' class='manage-column column-id'>" . __("Actions", "wplivechat") . "</th>
3871
  </tr>
3872
  </thead>
3873
  <tbody id=\"the-list\" class='list:wp_list_text_link'>";
@@ -4064,7 +4283,8 @@ function wplc_head() {
4064
  if (isset($_POST['wplc_display_name'])) { $wplc_data['wplc_display_name'] = sanitize_text_field($_POST['wplc_display_name']); }
4065
  if (isset($_POST['wplc_display_to_loggedin_only'])) { $wplc_data['wplc_display_to_loggedin_only'] = sanitize_text_field($_POST['wplc_display_to_loggedin_only']); }
4066
  if (isset($_POST['wplc_redirect_to_thank_you_page'])) { $wplc_data['wplc_redirect_to_thank_you_page'] = sanitize_text_field($_POST['wplc_redirect_to_thank_you_page']); }
4067
- if (isset($_POST['wplc_redirect_thank_you_url'])) { $wplc_data['wplc_redirect_thank_you_url'] = esc_url(str_replace("https:", "", str_replace("http:", "", $_POST['wplc_redirect_thank_you_url']) ) ); }
 
4068
  if (isset($_POST['wplc_is_gif_integration_enabled'] )){ $wplc_data['wplc_is_gif_integration_enabled'] = sanitize_text_field($_POST['wplc_is_gif_integration_enabled']); }
4069
  if (isset($_POST['wplc_preferred_gif_provider'])) { $wplc_data['wplc_preferred_gif_provider'] = sanitize_text_field($_POST['wplc_preferred_gif_provider']); }
4070
  if (isset($_POST['wplc_giphy_api_key'])) { $wplc_data['wplc_giphy_api_key'] = sanitize_text_field($_POST['wplc_giphy_api_key']); }
@@ -4100,7 +4320,6 @@ function wplc_head() {
4100
  if (isset($_POST['wplc_user_welcome_chat'])) { $wplc_data['wplc_user_welcome_chat'] = sanitize_text_field($_POST['wplc_user_welcome_chat']); }
4101
  if (isset($_POST['wplc_welcome_msg'])) { $wplc_data['wplc_welcome_msg'] = sanitize_text_field($_POST['wplc_welcome_msg']); }
4102
  if (isset($_POST['wplc_typing_enabled']) && $_POST['wplc_typing_enabled'] == "1") { $wplc_data['wplc_typing_enabled'] = sanitize_text_field($_POST['wplc_typing_enabled']); } else { $wplc_data['wplc_typing_enabled'] = "0"; }
4103
- if (isset($_POST['wplc_ux_editor'])) { $wplc_data['wplc_ux_editor'] = sanitize_text_field($_POST['wplc_ux_editor']); } else { $wplc_data['wplc_ux_editor'] = "0"; }
4104
  if (isset($_POST['wplc_ux_file_share'])) { $wplc_data['wplc_ux_file_share'] = sanitize_text_field($_POST['wplc_ux_file_share']); } else { $wplc_data['wplc_ux_file_share'] = "0"; }
4105
  if (isset($_POST['wplc_ux_exp_rating'])) { $wplc_data['wplc_ux_exp_rating'] = sanitize_text_field($_POST['wplc_ux_exp_rating']); } else { $wplc_data['wplc_ux_exp_rating'] = "0"; }
4106
  if (isset($_POST['wplc_disable_initiate_chat']) && $_POST['wplc_disable_initiate_chat'] == "1") { $wplc_data['wplc_disable_initiate_chat'] = sanitize_text_field($_POST['wplc_disable_initiate_chat']); } else { $wplc_data['wplc_disable_initiate_chat'] = "0"; }
@@ -4112,8 +4331,8 @@ function wplc_head() {
4112
  if (isset($_POST['wplc_pro_delay'])) { $wplc_acbc_data['wplc_chat_delay'] = sanitize_text_field($_POST['wplc_pro_delay']); }
4113
  if (isset($_POST['wplc_pro_chat_notification'])) { $wplc_acbc_data['wplc_pro_chat_notification'] = sanitize_text_field($_POST['wplc_pro_chat_notification']); }
4114
  if (isset($_POST['wplc_pro_chat_email_address'])) { $wplc_acbc_data['wplc_pro_chat_email_address'] = sanitize_text_field($_POST['wplc_pro_chat_email_address']); }
4115
- if (isset($_POST['wplc_social_fb'])) { $wplc_acbc_data['wplc_social_fb'] = str_replace("https:", "", esc_url($_POST['wplc_social_fb']) ); }
4116
- if (isset($_POST['wplc_social_tw'])) { $wplc_acbc_data['wplc_social_tw'] = str_replace("https:", "", esc_url($_POST['wplc_social_tw']) ); }
4117
  if (isset($_POST['wplc_ringtone'])) { $wplc_data['wplc_ringtone'] = str_replace("https:", "", sanitize_text_field($_POST['wplc_ringtone']) ); }
4118
  if (isset($_POST['wplc_messagetone'])) { $wplc_data['wplc_messagetone'] = str_replace("https:", "", sanitize_text_field($_POST['wplc_messagetone']) ); }
4119
  if(isset($_POST['wplc_animation'])){ $wplc_data['wplc_animation'] = sanitize_text_field($_POST['wplc_animation']); }
@@ -4154,9 +4373,13 @@ function wplc_head() {
4154
 
4155
 
4156
  if(isset($_POST['wplc_ban_users_ip'])){
4157
- $wplc_banned_ip_addresses = explode('<br />', nl2br(sanitize_text_field($_POST['wplc_ban_users_ip'])));
 
4158
  foreach($wplc_banned_ip_addresses as $key => $value) {
4159
- $data[$key] = trim($value);
 
 
 
4160
  }
4161
  $wplc_banned_ip_addresses = maybe_serialize($data);
4162
 
@@ -4724,13 +4947,13 @@ function wplc_string_check() {
4724
 
4725
  add_filter("wplc_filter_typing_control_div","wplc_filter_control_return_chat_response_box_before",2,1);
4726
  function wplc_filter_control_return_chat_response_box_before($string) {
4727
- $string = $string. "<div class='typing_indicator wplc-color-2 wplc-color-bg-1'></div>";
4728
 
4729
  return $string;
4730
  }
4731
  add_filter("wplc_filter_typing_control_div_theme_2","wplc_filter_control_return_chat_response_box_before_theme2",2,1);
4732
  function wplc_filter_control_return_chat_response_box_before_theme2($string) {
4733
- $string = $string. "<div class='typing_indicator wplc-color-2 wplc-color-bg-1'></div>";
4734
 
4735
  return $string;
4736
  }
@@ -5090,8 +5313,15 @@ function wplc_transcript_callback() {
5090
 
5091
  if ( $_POST['action'] == "wplc_et_admin_email_transcript" ) {
5092
  if ( isset( $_POST['cid'] ) ) {
5093
- $cid = wplc_return_chat_id_by_rel( intval($_POST['cid']) );
5094
- echo json_encode( wplc_send_transcript( sanitize_text_field( $cid ) ) );
 
 
 
 
 
 
 
5095
  } else {
5096
  echo json_encode( array( "error" => "no CID" ) );
5097
  }
@@ -5175,14 +5405,14 @@ function wplc_transcript_return_default_email_body() {
5175
 
5176
 
5177
 
5178
- <table id="" border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color: #ec822c;">
5179
  <tbody>
5180
  <tr>
5181
  <td width="100%" style="padding: 30px 20px 100px 20px;">
5182
- <table align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:600px;">
5183
  <tbody>
5184
  <tr>
5185
- <td style="text-align: center; padding-bottom: 20px;">
5186
 
5187
  <p>[wplc_et_transcript_header_text]</p>
5188
  </td>
@@ -5190,24 +5420,24 @@ function wplc_transcript_return_default_email_body() {
5190
  </tbody>
5191
  </table>
5192
 
5193
- <table id="" align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width: 600px; font-family: Georgia, serif; font-size: 12px; color: rgb(51, 62, 72); border: 0px solid rgb(255, 255, 255); border-radius: 10px; background-color: rgb(255, 255, 255);">
5194
  <tbody>
5195
  <tr>
5196
- <td class="sortable-list ui-sortable" style="padding:20px;">
5197
  [wplc_et_transcript]
5198
  </td>
5199
  </tr>
5200
  </tbody>
5201
  </table>
5202
 
5203
- <table align="center" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:100%;">
5204
  <tbody>
5205
  <tr>
5206
- <td style="padding:20px;">
5207
  <table border="0" cellpadding="0" cellspacing="0" class="" width="100%">
5208
  <tbody>
5209
  <tr>
5210
- <td id="" align="center">
5211
  <p>[wplc_et_transcript_footer_text]</p>
5212
  </td>
5213
  </tr>
@@ -5323,7 +5553,12 @@ function wplc_transcript_get_transcript() {
5323
  $cid = $current_chat_id;
5324
 
5325
  if ( intval( $cid ) > 0 ) {
5326
- return wplc_return_chat_messages( intval( $cid ), true );
 
 
 
 
 
5327
  } else {
5328
  return "0";
5329
  }
@@ -5372,7 +5607,7 @@ function wplc_features_admin_js() {
5372
  wp_enqueue_script('wplc-admin-features');
5373
  }
5374
 
5375
- add_action('admin_notices', 'wplc_encryption_deprecated_notice');
5376
  /**
5377
  * Notice of doom
5378
  */
3
  Plugin Name: WP Live Chat Support
4
  Plugin URI: http://www.wp-livechat.com
5
  Description: The easiest to use website live chat plugin. Let your visitors chat with you and increase sales conversion rates with WP Live Chat Support.
6
+ Version: 8.0.35
7
  Author: WP-LiveChat
8
  Author URI: http://www.wp-livechat.com
9
  Text Domain: wplivechat
11
  */
12
 
13
  /*
14
+ * 8.0.35 - 2019-07-05 - High priority
15
+ * Moved away from EvenNode and onto Google App Engine for high performance multi-region chat
16
+ * Updated jQuery UI to 1.12.1 (CSS Only)
17
+ * Added custom styles to add jQuery UI support in settings area
18
+ * Removed non-vendor version of jQuery UI
19
+ * Added SQL sanitizing to Rest Request params
20
+ * Moved external Nimble Squirrel image to a local reference
21
+ * Moved Google Chart loader.js to a local reference
22
+ * Updated Switchery to support disable and enable calls
23
+ * Added enable/disable calls to switchery to prevent toggle spamming, which could cause sockets to remain unclosed
24
+ * Fixed issues with file sharing from agent/user side
25
+ * Fixed issue with user message position in modern dashboard
26
+ * Fixed bug where email notificaitons were being sent twice
27
+ * Fixed bug where chat would not automatically switch to 'online' when choose when online toggle was disabled
28
+ * Fixed bug with transfer functionality
29
+ * Fixed an issue where history would include browsing users
30
+ * Fixed undefined reference 'get random server' function in wplc_dashboard.js
31
+ * Fixed issue with shrink header alignment
32
+ * Changed field content to change placeholder of custom field
33
+ * Added support to auto link generator for port numbers in the URL
34
+ * Fixed issue with chat transcripts not being sent correctly
35
+ * Fixed issue with chat animation header toggle
36
+ * Fixed issue with hovercard showing when spamming header chat
37
+ * Changed position of typing indicator on front end
38
+ * Changed title for chat transcript modal
39
+ * Fixed offline message styling inconsistency - Modern Theme
40
+ * Fixed offline message sending and storage bugs
41
+ * Fixed dropdown custom field styling inconsistency
42
+ * Modified agent list in settings area
43
+ * Fixed issues with drag and drop upload on frontend
44
+ * Fixed inconsistent alert messages
45
+ * Updated classic stylesheet
46
+ * Fixed issues with trigger editing
47
+ * Added mobile support for WDT Emoji Library
48
+ * Added max height to offline form in modern theme
49
+ * Changed active theme/color selection indicator
50
+ * Changed custom color selector system
51
+ * Added URL validation for social links
52
+ * Changed position of social icons - Modern Theme
53
+ * Removed 'Leave Chat' button in chat dashboard
54
+ * Fixed issue with message tone preview playback on 'Default'
55
+ * Added security violation alerts for unsupported files
56
+ * Removed the disconnect agent notice
57
+ * Fixed issues with 'Direct user to page' functionality
58
+ * Fixed issues with event logging
59
+ * Added auto responder first message storage
60
+ * Fixed styling issues with system notifications
61
+ * Restructured chat input tools
62
+ * Restyled styling for chat input tools
63
+ * Fixed issues with emoji popup container placement
64
+ * Changed custom color scheme selector title
65
+ * Removed drag and drop file sharing
66
+ * Fixed issue with mouse over cursor pointer in settings
67
+ * Fixed classic styling message box
68
+ * Added code to hide/show add agent button based on whether a selection has been made from dropdown
69
+ * Added a URL validation notice in the settings area
70
+ * Fixed issue with documentation notices in admin area
71
+ * Fixed issues with documentation suggestions on the frontend
72
+ * Fixed displacement of custom fields when compared to default fields
73
+ * Fixed styling issue with message textarea in classic theme
74
+ * Fixed incorrect URL pointer
75
+ * Restructured message tools and styling in classic
76
+ * Resolved issues with history persistence
77
+ * Resolved issues with chat agent header not being received
78
+ * Removed message edit functionality
79
+ * Changed typing indicator style/placement
80
+ * Changed MIME error reports to a standard error message
81
+ * Fixed issue with file sharing when cancelling file selection
82
+ * Fixed issue with inaccurate 'user left' notifications
83
+ * Added a character counter and soft limiter to the offline messages input
84
+ * Added allowed filetypes to error messages for file sharing
85
+ * Fixed issues with direct user to page links exceeding chat space
86
+ * Fixed styling issues with documentation suggestions on the front end
87
+ * Fixed time placement of active chat rows in modern dashboard
88
+ * Removed text indent on close icon for active chat rows in modern dashboard
89
+ * Fixed styling issues with the agent count
90
+ * Added visual column names to the active chats panel
91
+ * Fixed issue where offline message header would be hidden upon submission
92
+ * Fixed issue where offline chatbox would overlap icon (modern theme) on some devices
93
+ * Removed styling from email system. Changed to plain text style
94
+ * Removed username from offline message subject line
95
+ * Fixed issue where end chat button was not visible on mobile devices (modern theme)
96
+ * Auto close chat session when user ends a chat (agent dashboard)
97
+ * Changed session handling when user ends chats
98
+ * Overall improvements to chat session handling
99
+ * Fixed styling issues with settings tooltips
100
+ * Fixed issues with editing custom fields
101
+ * Added default field name to custom field dropdown as 'first choice'
102
+ * Changed position of visitor avatar in dashboard
103
+ * Added check for if minute value is less than 10 - Active visitor row in dashboard
104
+ * Added fixed width to offline messages table
105
+ * Standardize table avatar styles
106
+ * Fixed issue where agent profile picture went missing when sharing files
107
+ * Hide add agent button again after adding a new agent in settings
108
+ * Moved position of typing indicator in classic theme
109
+ * Added reserved space to last message to allow for typing indicator to display independently in most cases
110
+ * Fixed issues with creating a new trigger
111
+ * Fixed issue with dashboard chat transcripts not passing chat ID
112
+ * Added JS validation for social links
113
+ * Changed font-sized in both modern and classic
114
+ * Standardize padding, offsets, and margis in modern and classic
115
+ * Changed style of end chat button
116
+ * Added satisfaction reporting card for 'no agent'
117
+ * Altered styles of reporting cards
118
+ * Added auto scroll on image load in agent dashboard
119
+ * Updated fonts in hovercard popup
120
+ * Fixed undefined 'editor_enabled' variable in functions.php
121
+ * Fixed styling for blog posts in dashboard page
122
+ * Fixed bug where agent header information would be removed on disconnect
123
+ * Improved header styling on the frontend(modern)
124
+ * Fixed bug where chat history would still be visible after switching to offline
125
+ * Added code to automatically notify the user that the agent has left/ended the chat when going offline
126
+ * Added URL JS validation to redirect URL field
127
+ * Fixed issue with typing indicator in classic theme, animation related
128
+ * Fixed issue with sending transcripts from history
129
+ * Fixed styling issues in transcript emails
130
+ * Added attachment prefix stripping to transcripts get_messages call
131
+ * Changed tagline styling in modern chatbox
132
+ * Made changes to show social icons at all times
133
+ * Fixed tagline persistence on page reloads
134
+ * Fixed bug where empty social and redirects links were not allowed
135
+ * Fixed bug with scrollable region becoming visible in firefox in some instances
136
+ * Fixed issue with attachment stacking in agent dashboard
137
+ * Added click to open for image attachments
138
+ * Added scroll support to message input on frontend
139
+ * Fixed missing pointer cursors on front end chat controls
140
+ * Standardized size of in chat controls
141
+ * Changed 'transfer' references to 'invite' references instead
142
+ * Fixed multi agent chat header stacking
143
+ * Fixed typo in auto transfer notice
144
+ * Added 'Direct to page' notification storage
145
+ * Added admin direct to page notice in real time
146
+ * Improved links in chatbox (styling)
147
+ * Added welcome message removal event handler
148
+ * Removed scroll collapse/expand handler for modern chat header
149
+ * Added ability to cancel rating and close prompt
150
+ * Added exceprt support for agent name chain with title attribute on hover (modern)
151
+ * Added title attribute to tagline along with italic styling (modern)
152
+ * Improvements to overall visitor list management as well as chat restarts
153
+ * Changed auto end chats to only notify visitor that the agent has left
154
+ * Fixed issues with tagline being sent twice in some cases
155
+ * Removed involved agents when user restarts chats
156
+ * Clear chatbox when user restarts chat
157
+ * Changed structure of lifetime tracking
158
+ * Fixed history processing issue
159
+ * Made changes to agent satisfaction reporting
160
+ * Added code to show the 'Leave chat' button only when multiple agents are involved in a chat
161
+ * Removed time from system notifications in email transcripts
162
+ * Added break tag to system notifications in email transcripts
163
+ * Added ability to upload the same file repeatedly
164
+ * Changed tab index of rate button
165
+ * Clear rating after submission
166
+ * Fixed rating stacking
167
+ * Added code to hide 'invite' button until a department/agent is selected
168
+ * Removed the clear chat history on user restart of chat event
169
+ * Changed documentation suggestions to make use of WP Remote Get requests to improve reliability
170
+ * Changed participant notification system
171
+ * Added code to update the chat header when an agent leaves the chat
172
+ * Made changes to the agent online sync controller
173
+ * Fixed "Undefined variable: ret" in Custom Fields control
174
+ * Removed option to disable the advanced editor filters
175
+ * Rebuilt active visitor counter
176
+ * Added code to show the confirm button in dialogs by default
177
+ * Improved message deserialization
178
+ * Added code to rebuild header when agent rejoins after going offline
179
+ * Removed code which disables transcript once sent
180
+ * Improved participant tracking
181
+ * Added code to remove the 'restart chat' button on frontend if agent reaches out again
182
+ * Added auto join on invite accepted
183
+ * Fixed bug where switching an agent to offline mode would cause agent counter to behave unexpectedly
184
+ * Improvements to join event control
185
+ * Fixed bug where one agent initiates a chat, but all agents are added to the chat involved list
186
+ * Improvements to internal agent to agent chat system
187
+ * Improved push to chatbox functionality
188
+ * Fixed slashing of gutenberg HTML attributes
189
+ * Added end chat rest call when agent ends chat
190
+ * Added additional filtering to transcript functionality
191
+ * Removed GDPR and Deprecation notices
192
+ * Removed Lifetime indicator in agent screen
193
+ * Removed realtime rating feedback for agent screens
194
+ * Removed chat rating note functionality
195
+ * Removed the need to double-confirm rating submission
196
+ * Removed rating stacking, multiple ratings per chat no longer supported
197
+ * Forced the rating note content to be empty to avoid any submission of notes from front end
198
+ * Removed rating comments from reporting screen
199
+ * Enabled Experience Ratings, Typing indicator, show date and time options for all new installations
200
+ * Fixed styling issue with avatars on missed chats page
201
+ * Removed collapsed attachment icon toolbar from agent dashboard
202
+ * Moved attachment controls into input bar tools for agent dashboard
203
+ * Removed deprecated images from image directory
204
+ *
205
  * 8.0.34 - 2019-06-03 - High priority
206
  * Fixed issue with activation function
207
  * Fixed issue with node server ping when chatbox is offline
760
  delete_transient('wplc_is_admin_logged_in');
761
  }
762
 
763
+ function wplc_parameter_bool($settings, $name) {
764
+ $param=0;
765
+ if (!empty($settings) && isset($settings[$name])){
766
+ $param=intval($settings[$name]);
767
+ if ($param!=0){
768
+ $param=1;
769
+ }
770
+ }
771
+ return $param;
772
+ }
773
+
774
  function wplc_check_guid() {
775
  $guid=get_option('WPLC_GUID');
776
  $guid_fqdn=get_option('WPLC_GUID_URL');
780
  }
781
  if (empty($guid) || $guid_fqdn!=get_option('siteurl')) { // guid not assigned or fqdn is changed since last assignment
782
  $wplc_settings = get_option("WPLC_SETTINGS");
783
+ $server = wplc_parameter_bool($wplc_settings, 'wplc_use_node_server');
784
+ $gdpr = wplc_parameter_bool($wplc_settings, 'wplc_gdpr_enabled');
 
 
 
 
 
785
  $data_array = array(
786
  'method' => 'POST',
787
  'body' => array(
788
  'method' => 'get_guid',
789
  'url' => get_option('siteurl'),
790
+ 'server' => $server,
791
+ 'gdpr' => $gdpr,
792
+ 'version' => WPLC_PLUGIN_VERSION
793
  )
794
  );
795
  $response = wp_remote_post(WPLC_ACTIVATION_SERVER.'/api/v1', $data_array);
824
  echo 1;
825
  }
826
  } else if ($_POST['action'] == "wplc_user_send_offline_message") {
827
+ $cid = sanitize_text_field($_POST['cid']);
828
+ if( ! filter_var($request['chat_id'], FILTER_VALIDATE_INT) ) {
829
+ /* We need to identify if this CID is a node CID, and if so, return the WP CID */
830
+ $cid = wplc_return_chat_id_by_rel($cid);
831
+ } else {
832
+ $cid = intval($cid);
833
+ }
834
+
835
  $name=sanitize_text_field($_POST['name']);
836
  $email=sanitize_text_field($_POST['email']);
837
  $msg=sanitize_text_field($_POST['msg']);
982
  function wplc_admin_menu() {
983
 
984
  $cap = apply_filters("wplc_ma_filter_menu_control",array());
 
985
 
986
  $wplc_current_user = get_current_user_id();
987
 
990
  $wplc_mainpage = add_menu_page('WP Live Chat', __('Live Chat', 'wplivechat'), $cap[0], 'wplivechat-menu', 'wplc_admin_menu_layout', 'dashicons-format-chat');
991
  add_submenu_page('wplivechat-menu', __('Dashboard', 'wplivechat'), __('Dashboard', 'wplivechat'), $cap[1], 'wplivechat-menu-dashboard', 'wplc_admin_dashboard_layout');
992
  add_submenu_page('wplivechat-menu', __('Settings', 'wplivechat'), __('Settings', 'wplivechat'), $cap[1], 'wplivechat-menu-settings', 'wplc_admin_settings_layout');
993
+ add_submenu_page('wplivechat-menu', __('Surveys', 'wplivechat'), __('Surveys', 'wplivechat'), $cap[2], 'wplivechat-menu-survey', 'wplc_admin_survey_layout');
994
  }
995
 
996
 
1262
  $a_array[$user->ID] = array();
1263
  $a_array[$user->ID]['name'] = apply_filters( "wplc_decide_agents_name", $user->display_name, $wplc_acbc_data );
1264
  $a_array[$user->ID]['md5'] = md5( $user->user_email );
1265
+ $a_array[$user->ID]['tagline'] = get_user_meta($user->ID, 'wplc_user_tagline', true);
1266
  }
1267
  }
1268
  wp_localize_script('wplc-user-script', 'wplc_agent_data', $a_array);
1269
 
1270
 
1271
  $wplc_error_messages = array(
1272
+ 'valid_name' => __( "Please Enter Your Name", "wplivechat" ),
1273
+ 'valid_email' => __( "Please Enter Your Email Address", "wplivechat" ),
1274
+ 'server_connection_lost' => __("Connection to Server Lost. Please Reload This Page. Error: ", "wplivechat"),
1275
+ 'chat_ended_by_operator' => ( empty( $wplc_settings['wplc_text_chat_ended'] ) ) ? __("The Chat Has Been Ended By The Operator.", "wplivechat") : sanitize_text_field( $wplc_settings['wplc_text_chat_ended'] ) ,
1276
+ 'empty_message' => __( "Please Enter a Message", "wplivechat" ),
1277
+ 'disconnected_message' => __("Disconnected, Attempting to Reconnect...", "wplivechat"),
1278
  );
1279
 
1280
  $wplc_error_messages = apply_filters( "wplc_user_error_messages_filter", $wplc_error_messages );
1639
  $ret_msg .= "</div>";
1640
  }
1641
 
1642
+ $additional_class = 'emoji_only';
1643
+ if(isset($wplc_settings["wplc_ux_file_share"]) && $wplc_settings["wplc_ux_file_share"] !== "0" && isset($wplc_settings["wplc_ux_exp_rating"]) && $wplc_settings["wplc_ux_exp_rating"] !== "0"){
1644
+ $additional_class = 'file_sharing_ratings_enabled';
1645
+ } else if (isset($wplc_settings["wplc_ux_file_share"]) && $wplc_settings["wplc_ux_file_share"] !== "0"){
1646
+ $additional_class = 'file_sharing_enabled';
1647
+ } else if (isset($wplc_settings["wplc_ux_exp_rating"]) && $wplc_settings["wplc_ux_exp_rating"] !== "0"){
1648
+ $additional_class = 'rating_enabled';
1649
+ }
1650
+
1651
+ $ret_msg .= "<div id=\"wp-live-chat\" wplc_animation=\"".$wplc_animation."\" style=\"".$wplc_starting_point." ".$wplc_box_align.";\" class=\"".$wplc_theme_type." ".$wplc_class." ".$additional_class." wplc_close\" original_pos=\"".$original_pos."\" ".$wplc_extra_attr." > ";
1652
  return $ret_msg;
1653
  }
1654
 
1762
  } else {
1763
  //Dont ask the user
1764
 
1765
+ $ret_msg .= "<div style=\"padding: 7px; text-align: center; font-size:12pt;\">";
1766
  if (isset($wplc_settings['wplc_user_alternative_text'])) {
1767
  $ret_msg .= html_entity_decode( stripslashes($wplc_settings['wplc_user_alternative_text']) );
1768
  }
1947
  $ret_msg .= "<div id=\"wplc_message_div\">";
1948
  $ret_msg .= "<input type=\"text\" name=\"wplc_name\" id=\"wplc_name\" value=\"$wplc_loggedin_user_name\" placeholder=\"".__("Name", "wplivechat")."\" />";
1949
  $ret_msg .= "<input type=\"text\" name=\"wplc_email\" id=\"wplc_email\" value=\"$wplc_loggedin_user_email\" placeholder=\"".__("Email", "wplivechat")."\" />";
1950
+ $ret_msg .= "<textarea name=\"wplc_message\" id=\"wplc_message\" placeholder=\"".__("Message", "wplivechat")."\" maxlength='700'></textarea>";
1951
+ $ret_msg .= "<span class='wplc_char_counter'></span>";
1952
 
1953
  if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
1954
  $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
2072
  $agent_string = '
2073
  <p style="text-align:center;">
2074
  <img class="img-thumbnail img-circle wplc_thumb32 wplc_agent_involved" style="max-width:inherit;" id="agent_grav_'.$agent_id.'" title="'.$agent.'" src="https://www.gravatar.com/avatar/'.md5($user_info->user_email).'?s=60&d=mm" /><br />
2075
+ <span class="wplc_agent_name wplc-color-2" title="' . $agent . '">'.$agent.'</span>
2076
  '.$extra.'
2077
  <span class="bleeper_pullup down"><i class="fa fa-angle-up"></i></span>
2078
  </p>';
2127
  $ret_msg .= "<div id='bleeper_chat_ended' style='display:none;'></div>";
2128
  $ret_msg .= "<div id='wplc_user_message_div'>";
2129
 
 
2130
 
2131
  //Editor Controls
2132
  $ret_msg .= apply_filters("wplc_filter_chat_text_editor","");
2139
  $ret_msg .= apply_filters("wplc_filter_typing_control_div_theme_2","");
2140
  }
2141
 
2142
+ $current_theme = isset($wplc_settings['wplc_newtheme']) ? $wplc_settings['wplc_newtheme'] : "theme-2";
2143
+ $ret_msg .= apply_filters("wplc_filter_chat_4th_layer_below_input","", $wplc_settings); //Ratings/Social Icon Filter
2144
+
2145
+
2146
  //Upload Controls
2147
  $ret_msg .= apply_filters("wplc_filter_chat_upload","");
2148
 
2152
 
2153
  $ret_msg .= function_exists("wplc_emoji_selector_div") ? wplc_emoji_selector_div() : "";
2154
 
 
 
 
 
2155
 
2156
  $ret_msg .= "</div>";
2157
  $ret_msg .= "</div>";
2362
  $ret_msg .= "</div>";
2363
  $ret_msg .= " <div id=\"wp-live-chat-4\" style=\"display:none;\">";
2364
  $ret_msg .= apply_filters("wplc_filter_live_chat_box_html_4th_layer",wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_using_locale, $cid));
2365
+ $ret_msg .= apply_filters("wplc_filter_chat_social_div_hook","", $wplc_settings); //Ratings/Social Icon Filter
2366
  $ret_msg .= "</div>";
2367
  return $ret_msg;
2368
  }
2408
  $ret_msg .= " <div id=\"wp-live-chat-4\" style=\"display:none;\">";
2409
  $ret_msg .= apply_filters("wplc_filter_live_chat_box_html_4th_layer",wplc_filter_control_live_chat_box_html_4th_layer($wplc_settings,$wplc_using_locale, $cid));
2410
  $ret_msg .= " </div>";
2411
+ $ret_msg .= apply_filters("wplc_filter_chat_social_div_hook","", $wplc_settings); //Ratings/Social Icon Filter
2412
  $ret_msg .= "</div>";
2413
  } else {
2414
  $ret_msg = $default_theme;
2968
 
2969
  echo " <div class='admin_visitor_info_box1'>";
2970
  echo " <span class='admin_chat_name'>" . sanitize_text_field($result->name) . "</span>";
2971
+ echo " <span class='admin_chat_email'> " . sanitize_text_field($result->email) . "</span>";
2972
  echo " </div>";
2973
  echo " </div>";
2974
 
2975
+ echo " <div class='admin_visitor_advanced_info'><br><br>";
2976
  echo " <strong>" . __("Site Info", "wplivechat") . "</strong>";
2977
  echo " <hr />";
2978
  echo " <span class='part1'>" . __("Chat initiated on:", "wplivechat") . "</span> <span class='part2'>" . esc_url($result->url) . "</span>";
3298
  'wplc_welcome_msg' => __("Please standby for an agent. While you wait for the agent you may type your message.","wplivechat"),
3299
  'wplc_typing_enabled' => '1',
3300
  'wplc_show_avatar' => '1',
 
3301
  'wplc_ux_file_share' => '1',
3302
  'wplc_ux_exp_rating' => '1',
3303
  'wplc_default_department' => '-1',
3304
  'wplc_enable_font_awesome' => '1',
3305
+ 'wplc_show_date' => '1',
3306
+ 'wplc_show_time' => '1'
3307
  );
3308
 
3309
  //Added V8: Default Settings array filter
3726
  wp_enqueue_style( 'wplc-font-awesome' );
3727
 
3728
  if (isset($_GET['page']) && ($_GET['page'] == 'wplivechat-menu' || $_GET['page'] == 'wplivechat-menu-api-keys-page' || $_GET['page'] == 'wplivechat-menu-settings' || $_GET['page'] == 'wplivechat-menu-offline-messages' || $_GET['page'] == 'wplivechat-menu-history' || $_GET['page'] == 'wplivechat-menu-missed-chats' || $_GET['page'] == 'wplivechat-menu-dashboard')) {
3729
+ wp_register_style( 'wplc-jquery-ui', plugins_url('/js/vendor/jquery-ui/jquery-ui.css', __FILE__), false, WPLC_PLUGIN_VERSION );
3730
  wp_enqueue_style( 'wplc-jquery-ui' );
3731
 
3732
  wp_enqueue_script( 'jquery-ui-core' );
3942
  SELECT *
3943
  FROM $wplc_tblname_chats
3944
  WHERE `name` NOT LIKE 'agent-to-agent chat'
3945
+ AND (`status` = 1 OR `status` = 2 OR `status` = 3 OR `status` = 6 OR `status` = 8)
3946
  ORDER BY `timestamp` DESC
3947
  LIMIT $limit OFFSET $offset
3948
  "
4082
  <table class=\"wp-list-table wplc_list_table widefat \" cellspacing=\"0\">
4083
  <thead>
4084
  <tr>
4085
+ <th class='manage-column column-id' style='width: 15%'><span>" . __("Date", "wplivechat") . "</span></th>
4086
+ <th scope='col' id='wplc_name_colum' class='manage-column column-id' style='width: 10%'><span>" . __("Name", "wplivechat") . "</span></th>
4087
+ <th scope='col' id='wplc_email_colum' class='manage-column column-id' style='width: 15%'>" . __("Email", "wplivechat") . "</th>
4088
+ <th scope='col' id='wplc_message_colum' class='manage-column column-id' style='width: 40%'>" . __("Message", "wplivechat") . "</th>
4089
+ <th scope='col' id='wplc_message_colum' class='manage-column column-id' style='width: 10%'>" . __("Actions", "wplivechat") . "</th>
4090
  </tr>
4091
  </thead>
4092
  <tbody id=\"the-list\" class='list:wp_list_text_link'>";
4283
  if (isset($_POST['wplc_display_name'])) { $wplc_data['wplc_display_name'] = sanitize_text_field($_POST['wplc_display_name']); }
4284
  if (isset($_POST['wplc_display_to_loggedin_only'])) { $wplc_data['wplc_display_to_loggedin_only'] = sanitize_text_field($_POST['wplc_display_to_loggedin_only']); }
4285
  if (isset($_POST['wplc_redirect_to_thank_you_page'])) { $wplc_data['wplc_redirect_to_thank_you_page'] = sanitize_text_field($_POST['wplc_redirect_to_thank_you_page']); }
4286
+
4287
+ if (isset($_POST['wplc_redirect_thank_you_url']) && filter_var($_POST['wplc_redirect_thank_you_url'], FILTER_VALIDATE_URL)) { $wplc_data['wplc_redirect_thank_you_url'] = esc_url($_POST['wplc_redirect_thank_you_url']); } else { $wplc_data['wplc_redirect_thank_you_url'] = sanitize_text_field($_POST['wplc_redirect_thank_you_url']); }
4288
  if (isset($_POST['wplc_is_gif_integration_enabled'] )){ $wplc_data['wplc_is_gif_integration_enabled'] = sanitize_text_field($_POST['wplc_is_gif_integration_enabled']); }
4289
  if (isset($_POST['wplc_preferred_gif_provider'])) { $wplc_data['wplc_preferred_gif_provider'] = sanitize_text_field($_POST['wplc_preferred_gif_provider']); }
4290
  if (isset($_POST['wplc_giphy_api_key'])) { $wplc_data['wplc_giphy_api_key'] = sanitize_text_field($_POST['wplc_giphy_api_key']); }
4320
  if (isset($_POST['wplc_user_welcome_chat'])) { $wplc_data['wplc_user_welcome_chat'] = sanitize_text_field($_POST['wplc_user_welcome_chat']); }
4321
  if (isset($_POST['wplc_welcome_msg'])) { $wplc_data['wplc_welcome_msg'] = sanitize_text_field($_POST['wplc_welcome_msg']); }
4322
  if (isset($_POST['wplc_typing_enabled']) && $_POST['wplc_typing_enabled'] == "1") { $wplc_data['wplc_typing_enabled'] = sanitize_text_field($_POST['wplc_typing_enabled']); } else { $wplc_data['wplc_typing_enabled'] = "0"; }
 
4323
  if (isset($_POST['wplc_ux_file_share'])) { $wplc_data['wplc_ux_file_share'] = sanitize_text_field($_POST['wplc_ux_file_share']); } else { $wplc_data['wplc_ux_file_share'] = "0"; }
4324
  if (isset($_POST['wplc_ux_exp_rating'])) { $wplc_data['wplc_ux_exp_rating'] = sanitize_text_field($_POST['wplc_ux_exp_rating']); } else { $wplc_data['wplc_ux_exp_rating'] = "0"; }
4325
  if (isset($_POST['wplc_disable_initiate_chat']) && $_POST['wplc_disable_initiate_chat'] == "1") { $wplc_data['wplc_disable_initiate_chat'] = sanitize_text_field($_POST['wplc_disable_initiate_chat']); } else { $wplc_data['wplc_disable_initiate_chat'] = "0"; }
4331
  if (isset($_POST['wplc_pro_delay'])) { $wplc_acbc_data['wplc_chat_delay'] = sanitize_text_field($_POST['wplc_pro_delay']); }
4332
  if (isset($_POST['wplc_pro_chat_notification'])) { $wplc_acbc_data['wplc_pro_chat_notification'] = sanitize_text_field($_POST['wplc_pro_chat_notification']); }
4333
  if (isset($_POST['wplc_pro_chat_email_address'])) { $wplc_acbc_data['wplc_pro_chat_email_address'] = sanitize_text_field($_POST['wplc_pro_chat_email_address']); }
4334
+ if (isset($_POST['wplc_social_fb']) && filter_var($_POST['wplc_social_fb'], FILTER_VALIDATE_URL)) { $wplc_acbc_data['wplc_social_fb'] = esc_url($_POST['wplc_social_fb']); } else {$wplc_acbc_data['wplc_social_fb'] = sanitize_text_field($_POST['wplc_social_fb']); }
4335
+ if (isset($_POST['wplc_social_tw']) && filter_var($_POST['wplc_social_tw'], FILTER_VALIDATE_URL)) { $wplc_acbc_data['wplc_social_tw'] = esc_url($_POST['wplc_social_tw']); } else { $wplc_acbc_data['wplc_social_tw'] = sanitize_text_field($_POST['wplc_social_tw']); }
4336
  if (isset($_POST['wplc_ringtone'])) { $wplc_data['wplc_ringtone'] = str_replace("https:", "", sanitize_text_field($_POST['wplc_ringtone']) ); }
4337
  if (isset($_POST['wplc_messagetone'])) { $wplc_data['wplc_messagetone'] = str_replace("https:", "", sanitize_text_field($_POST['wplc_messagetone']) ); }
4338
  if(isset($_POST['wplc_animation'])){ $wplc_data['wplc_animation'] = sanitize_text_field($_POST['wplc_animation']); }
4373
 
4374
 
4375
  if(isset($_POST['wplc_ban_users_ip'])){
4376
+ $wplc_banned_ip_addresses = explode('<br />', nl2br($_POST['wplc_ban_users_ip']));
4377
+ $data = array();
4378
  foreach($wplc_banned_ip_addresses as $key => $value) {
4379
+ $clean_val = trim(sanitize_text_field($value));
4380
+ if(!empty($clean_val)){
4381
+ $data[$key] = $clean_val;
4382
+ }
4383
  }
4384
  $wplc_banned_ip_addresses = maybe_serialize($data);
4385
 
4947
 
4948
  add_filter("wplc_filter_typing_control_div","wplc_filter_control_return_chat_response_box_before",2,1);
4949
  function wplc_filter_control_return_chat_response_box_before($string) {
4950
+ $string = $string. "<div class='typing_indicator wplc-color-1'></div>";
4951
 
4952
  return $string;
4953
  }
4954
  add_filter("wplc_filter_typing_control_div_theme_2","wplc_filter_control_return_chat_response_box_before_theme2",2,1);
4955
  function wplc_filter_control_return_chat_response_box_before_theme2($string) {
4956
+ $string = $string. "<div class='typing_indicator wplc-color-1'></div>";
4957
 
4958
  return $string;
4959
  }
5313
 
5314
  if ( $_POST['action'] == "wplc_et_admin_email_transcript" ) {
5315
  if ( isset( $_POST['cid'] ) ) {
5316
+ $cid = sanitize_text_field($_POST['cid']);
5317
+ if( ! filter_var($cid, FILTER_VALIDATE_INT) ) {
5318
+ /* We need to identify if this CID is a node CID, and if so, return the WP CID */
5319
+ $cid = wplc_return_chat_id_by_rel($cid);
5320
+ } else {
5321
+ $cid = intval($cid);
5322
+ }
5323
+
5324
+ echo json_encode( wplc_send_transcript( $cid ) );
5325
  } else {
5326
  echo json_encode( array( "error" => "no CID" ) );
5327
  }
5405
 
5406
 
5407
 
5408
+ <table id="" border="0" cellpadding="0" cellspacing="0" width="100%" style="font-family: Georgia, serif;">
5409
  <tbody>
5410
  <tr>
5411
  <td width="100%" style="padding: 30px 20px 100px 20px;">
5412
+ <table cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate;">
5413
  <tbody>
5414
  <tr>
5415
+ <td style="padding-bottom: 20px;">
5416
 
5417
  <p>[wplc_et_transcript_header_text]</p>
5418
  </td>
5420
  </tbody>
5421
  </table>
5422
 
5423
+ <table id="" cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; font-size: 12px; color: rgb(51, 62, 72);">
5424
  <tbody>
5425
  <tr>
5426
+ <td class="sortable-list ui-sortable" >
5427
  [wplc_et_transcript]
5428
  </td>
5429
  </tr>
5430
  </tbody>
5431
  </table>
5432
 
5433
+ <table cellpadding="0" cellspacing="0" class="" width="100%" style="border-collapse: separate; max-width:100%;">
5434
  <tbody>
5435
  <tr>
5436
+ <td style="padding-top:20px;">
5437
  <table border="0" cellpadding="0" cellspacing="0" class="" width="100%">
5438
  <tbody>
5439
  <tr>
5440
+ <td id="">
5441
  <p>[wplc_et_transcript_footer_text]</p>
5442
  </td>
5443
  </tr>
5553
  $cid = $current_chat_id;
5554
 
5555
  if ( intval( $cid ) > 0 ) {
5556
+ $output_html = wplc_return_chat_messages( intval( $cid ), true );
5557
+
5558
+ // Remove empty documentation suggestions, and unneeded list items
5559
+ $output_html = str_replace('<li></li>', '', $output_html);
5560
+
5561
+ return $output_html;
5562
  } else {
5563
  return "0";
5564
  }
5607
  wp_enqueue_script('wplc-admin-features');
5608
  }
5609
 
5610
+ // add_action('admin_notices', 'wplc_encryption_deprecated_notice');
5611
  /**
5612
  * Notice of doom
5613
  */