Visual Form Builder - Version 2.7.5

Version Description

Update HTML field to use CKEditor. Fix Export bugs.

Download this release

Release Info

Developer mmuro
Plugin Icon 128x128 Visual Form Builder
Version 2.7.5
Comparing to
See all releases

Code changes from version 2.7.4 to 2.7.5

Files changed (36) hide show
  1. css/visual-form-builder-admin.css +233 -119
  2. css/visual-form-builder.css +66 -54
  3. includes/class-entries-detail.php +39 -25
  4. includes/class-entries-list.php +117 -117
  5. includes/class-export.php +253 -144
  6. includes/class-forms-list.php +99 -96
  7. includes/email.php +79 -79
  8. includes/form-output.php +156 -155
  9. js/ckeditor/ckeditor.js +919 -0
  10. js/ckeditor/config.js +30 -0
  11. js/ckeditor/contents.css +103 -0
  12. js/ckeditor/lang/en.js +5 -0
  13. js/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  14. js/ckeditor/plugins/icons.png +0 -0
  15. js/ckeditor/plugins/link/dialogs/anchor.js +8 -0
  16. js/ckeditor/plugins/link/dialogs/link.js +36 -0
  17. js/ckeditor/plugins/link/images/anchor.png +0 -0
  18. js/ckeditor/skins/moono/dialog.css +5 -0
  19. js/ckeditor/skins/moono/dialog_ie.css +5 -0
  20. js/ckeditor/skins/moono/dialog_ie7.css +5 -0
  21. js/ckeditor/skins/moono/dialog_ie8.css +5 -0
  22. js/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  23. js/ckeditor/skins/moono/dialog_opera.css +5 -0
  24. js/ckeditor/skins/moono/editor.css +5 -0
  25. js/ckeditor/skins/moono/editor_gecko.css +5 -0
  26. js/ckeditor/skins/moono/editor_ie.css +5 -0
  27. js/ckeditor/skins/moono/editor_ie7.css +5 -0
  28. js/ckeditor/skins/moono/editor_ie8.css +5 -0
  29. js/ckeditor/skins/moono/editor_iequirks.css +5 -0
  30. js/ckeditor/skins/moono/icons.png +0 -0
  31. js/ckeditor/skins/moono/images/arrow.png +0 -0
  32. js/ckeditor/skins/moono/images/close.png +0 -0
  33. js/ckeditor/skins/moono/images/mini.png +0 -0
  34. js/ckeditor/skins/moono/readme.md +51 -0
  35. readme.txt +23 -7
  36. visual-form-builder.php +384 -368
css/visual-form-builder-admin.css CHANGED
@@ -8,9 +8,9 @@
8
  display: inline-block;
9
  *display: inline;
10
  /* IE7 inline-block hack */
11
-
12
  *zoom: 1;
13
- padding: 14px 24px;
14
  margin-bottom: 0;
15
  line-height: 20px;
16
  text-align: center;
@@ -32,7 +32,7 @@
32
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
33
  *background-color: #e6e6e6;
34
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
35
-
36
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
37
  border: 1px solid #cccccc;
38
  *border: 0;
@@ -46,7 +46,7 @@
46
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
47
  text-decoration: none;
48
  }
49
-
50
  .vfb-btn:hover,
51
  .vfb-btn:focus {
52
  color: #333333;
@@ -57,13 +57,13 @@
57
  -o-transition: background-position 0.1s linear;
58
  transition: background-position 0.1s linear;
59
  }
60
-
61
  .vfb-btn:focus {
62
  outline: thin dotted #333;
63
  outline: 5px auto -webkit-focus-ring-color;
64
  outline-offset: -2px;
65
  }
66
-
67
  .vfb-btn.active,
68
  .vfb-btn:active {
69
  background-image: none;
@@ -72,12 +72,12 @@
72
  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
73
  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
74
  }
75
-
76
 
77
  .vfb-btn-primary.active {
78
  color: rgba(255, 255, 255, 0.75);
79
  }
80
-
81
  .vfb-btn-primary {
82
  color: #ffffff;
83
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
@@ -93,10 +93,10 @@
93
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
94
  *background-color: #0044cc;
95
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
96
-
97
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
98
  }
99
-
100
  .vfb-btn-primary:hover,
101
  .vfb-btn-primary:focus,
102
  .vfb-btn-primary:active,
@@ -107,12 +107,31 @@
107
  background-color: #0044cc;
108
  *background-color: #003bb3;
109
  }
110
-
111
  .vfb-btn-primary:active,
112
  .vfb-btn-primary.active {
113
  background-color: #003399 \9;
114
  }
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  .vfb-pro-call-to-action .cta-sign-up {
117
  color: #fff;
118
  display: block;
@@ -124,7 +143,7 @@
124
  width: 100%;
125
  line-height: 22px;
126
  }
127
-
128
  .vfb-pro-call-to-action .cta-price {
129
  color: #ace7ff;
130
  display: block;
@@ -136,7 +155,7 @@
136
  width: 100%;
137
  line-height: 20px;
138
  }
139
-
140
  .vfb-pro-upgrade {
141
  display: inline;
142
  float: left;
@@ -146,33 +165,34 @@
146
  border: 1px solid #21759b;
147
  border-radius: 5px;
148
  }
149
-
150
  .rtl .vfb-pro-upgrade {
151
  float: right;
152
  }
153
-
154
- .vfb-pro-upgrade h2 {
155
- font-size: 20px;
 
156
  font-weight: 500;
157
  padding: 5px 0;
158
  text-align: center;
159
  }
160
-
161
  .vfb-pro-upgrade h2 a {
162
  text-decoration: none;
163
  }
164
-
165
  .vfb-pro-upgrade ul {
166
  list-style: outside;
167
  margin-left: 10px;
168
  }
169
-
170
  .rtl .vfb-pro-upgrade ul {
171
  margin-left: 0;
172
  margin-right: 10px;
173
  }
174
 
175
- /* !Form View framework */
176
  #vfb-form-builder-frame{
177
  display:block;
178
  margin: 0 -8px 0 290px;
@@ -209,7 +229,7 @@
209
  margin-right: 0;
210
  margin-left: 10px;
211
  }
212
-
213
  #vfb-form-builder-management .form-edit{
214
  margin-bottom: 20px;
215
  border: 1px solid #dfdfdf;
@@ -231,14 +251,14 @@
231
  clear:both;
232
  padding:3px 0 5px;
233
  }
234
-
235
  .vfb-major-publishing-actions .publishing-action{
236
  float:right;
237
  margin: 5px 0 1px;
238
  text-align: right;
239
  line-height: 23px;
240
  }
241
-
242
  #form-editor-header .publishing-action{
243
  margin-top:12px;
244
  }
@@ -252,36 +272,36 @@
252
  white-space: nowrap;
253
  font-size: 12px;
254
  }
255
-
256
  .sub-navigation li{
257
  display: inline;
258
  margin:0;
259
  padding:0;
260
  }
261
-
262
  .sub-navigation a{
263
  padding:0.2em;
264
  text-decoration: none;
265
  line-height: 2;
266
  }
267
-
268
  .sub-navigation a.current{
269
  border:medium none;
270
  background:none;
271
  color: black;
272
  font-weight: bold;
273
  }
274
-
275
  .sub-navigation a:hover{
276
  color:rgb(213,78,33);
277
  }
278
-
279
  /* Form Box view */
280
  #vfb-sidebar,
281
  #vfb-main{
282
  float: left;
283
  margin: 10px 0;
284
- width: 260px;
285
  }
286
 
287
  .rtl #vfb-sidebar,
@@ -295,12 +315,12 @@
295
  #vfb-main.vfb-order-type-list{
296
  width: 100%;
297
  }
298
-
299
  #vfb-main p a,
300
  #vfb-main h3 a{
301
  text-decoration: none;
302
  }
303
-
304
  #vfb-main .submitdelete{
305
  color: #BC0B0B;
306
  text-decoration: none;
@@ -308,7 +328,7 @@
308
  #vfb-main .submitdelete:hover{
309
  color:red;
310
  }
311
-
312
  #vfb-sidebar{
313
  margin-left: -300px;
314
  }
@@ -357,7 +377,7 @@
357
  padding-right: 0;
358
  padding-left: 20px;
359
  }
360
-
361
  .vfb-form-alpha-list hr{
362
  display:block;
363
  margin:1em 0;
@@ -375,24 +395,24 @@
375
  font-size:14px;
376
  line-height: 17px;
377
  }
378
-
379
  .rtl .vfb-form-alpha-group .letter,
380
  .rtl .wrap h2.letter {
381
  float: right;
382
  }
383
-
384
  .vfb-form-alpha-form{
385
  display: block;
386
  margin:10px 0;
387
  padding-left:150px;
388
  width:auto;
389
  }
390
-
391
  .rtl .vfb-form-alpha-form {
392
  padding-left: 0;
393
  padding-right: 150px;
394
  }
395
-
396
  .vfb-form-alpha-form h3{
397
  float:left;
398
  margin: 0;
@@ -400,39 +420,39 @@
400
  word-wrap: break-word;
401
  font-size:17px;
402
  }
403
-
404
  .rtl .vfb-form-alpha-form h3 {
405
  float: right;
406
  }
407
-
408
  .vfb-form-alpha-form .vfb-publishing-actions,
409
  .vfb-form-alpha-form .vfb-form-meta{
410
  float:left;
411
  width:20%;
412
  text-align: center;
413
  }
414
-
415
  .rtl .vfb-form-alpha-form .vfb-publishing-actions,
416
  .rtl .vfb-form-alpha-form .vfb-form-meta {
417
  float: right;
418
  }
419
-
420
  .vfb-form-alpha-form .vfb-form-meta{
421
  width: 30%;
422
  }
423
-
424
  .vfb-form-alpha-form .vfb-publishing-actions p,
425
  .vfb-form-alpha-form .vfb-form-meta p{
426
  margin:0;
427
  }
428
-
429
  .vfb-form-alpha-form .vfb-form-meta,
430
  .vfb-form-alpha-form .paypal{
431
  float:left;
432
  margin:0;
433
  text-align: left;
434
  }
435
-
436
  .rtl .vfb-form-alpha-form .vfb-form-meta,
437
  .rtl .vfb-form-alpha-form .paypal {
438
  float: right;
@@ -447,18 +467,18 @@
447
  border:1px dashed #bbb;
448
  background-color:#f5f5f5;
449
  }
450
-
451
  #vfb-main .vfb-sortable-placeholder{
452
  float:left;
453
  margin:8px;
454
  height:200px;
455
  width:210px;
456
  }
457
-
458
  .rtl #vfb-main .vfb-sortable-placeholder {
459
  float: right;
460
  }
461
-
462
  #vfb-menu-to-edit .mjs-nestedSortable-error{
463
  border-color:red;
464
  background-color:#fbe3e4;
@@ -478,7 +498,7 @@
478
  color: white;
479
  text-align: center;
480
  }
481
-
482
  .vfb-meta-entries-total:hover span,
483
  .vfb-meta-entries-total-today:hover span{
484
  background-color: #d54e21;
@@ -497,7 +517,7 @@ strong .vfb-meta-entries-total span {
497
  min-width: 22px;
498
  padding-bottom: 1px;
499
  }
500
-
501
  /* !New Form box */
502
  #new-form{
503
  margin:8px 0;
@@ -543,7 +563,7 @@ strong .vfb-meta-entries-total span {
543
  margin-left: 0;
544
  margin-right: -8px;
545
  }
546
-
547
  #vfb-form-builder-frame.columns-1 #vfb-postbox-container-1{
548
  float:none;
549
  }
@@ -612,7 +632,7 @@ strong .vfb-meta-entries-total span {
612
  #vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{
613
  width: 50.5%;
614
  }
615
-
616
  #vfb-form-builder-frame.columns-1 .vfb-postbox-container {
617
  width: 100%;
618
  }
@@ -636,20 +656,20 @@ strong .vfb-meta-entries-total span {
636
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px 10px transparent;
637
  text-indent:-999em;
638
  }
639
-
640
  .rtl .item-edit {
641
  right: auto;
642
  left: -20px;
643
  }
644
-
645
  .item-edit:hover{
646
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px 10px transparent;
647
  }
648
-
649
  .item-edit.opened{
650
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -25px transparent;
651
  }
652
-
653
  .item-edit.opened:hover{
654
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -148px transparent;
655
  }
@@ -667,11 +687,11 @@ strong .vfb-meta-entries-total span {
667
  .rtl .options-other-hide .widefat {
668
  margin: 0 0 7px 6px;
669
  }
670
-
671
  #form-settings .description-thin{
672
  margin:12px 10px 12px 0;
673
  }
674
-
675
  .rtl #form-settings .description-thin {
676
  margin: 12px 0 12px 10px;
677
  }
@@ -719,18 +739,18 @@ strong .vfb-meta-entries-total span {
719
  .deleteCondition {
720
  background-position: -12px -677px;
721
  }
722
-
723
  .addEmail,
724
  .deleteEmail {
725
  margin-top: 5px;
726
  }
727
-
728
  .ui-state-disabled .menu-item-handle{
729
  background: #dfdfdf;
730
  box-shadow: none;
731
  cursor:default;
732
  }
733
-
734
 
735
  #vfb-poststuff{
736
  display:block;
@@ -741,7 +761,7 @@ strong .vfb-meta-entries-total span {
741
  margin-right: 0;
742
  margin-left: 300px;
743
  }
744
-
745
  #vfb-entries-body-content{
746
  float:left;
747
  width:100%;
@@ -764,7 +784,7 @@ strong .vfb-meta-entries-total span {
764
  margin-right: 0;
765
  margin-left: -300px;
766
  }
767
-
768
  label.error{
769
  display:block;
770
  color:red;
@@ -796,7 +816,7 @@ label.error{
796
  padding-left: 0;
797
  padding-right: 10px;
798
  }
799
-
800
  .vfb-menu-item-type-fieldset,
801
  .vfb-menu-item-type-verification,
802
  #form-element-fieldset {
@@ -813,7 +833,7 @@ label.error{
813
  margin-right: 13em;
814
  padding: 7px 0;
815
  }
816
-
817
  .rtl .vfb-menu-item-handle .item-title {
818
  margin-right: 0;
819
  margin-left: 13em;
@@ -837,7 +857,7 @@ label.error{
837
  text-decoration:none;
838
  font-weight:bold;
839
  }
840
-
841
  #form-details-nav a.current,
842
  .charts-nav a.current{
843
  height:40px;
@@ -865,14 +885,14 @@ label.error{
865
  .form-details-current, .active{
866
  display:block;
867
  }
868
-
869
  #confirmation-message textarea,
870
  #notification textarea{
871
  width:100%;
872
  height:10em;
873
  font-family:Consolas,Monaco,monospace;
874
  }
875
-
876
  #form-success-message-page,
877
  #form-success-message-redirect{
878
  margin-top:10px;
@@ -909,7 +929,7 @@ label.error{
909
  }
910
 
911
  .rtl #promote-vfb #twitter {
912
- background-position: right -746px;
913
  }
914
 
915
  #promote-vfb #star {
@@ -967,12 +987,12 @@ ul#vfb-menu-to-edit ul{
967
  border:1px solid #ccc;
968
  border-radius:3px;
969
  }
970
-
971
  .vfb-details.section{
972
  width:97.55%;
973
  background-color:#efefef;
974
  }
975
-
976
  .vfb-details .postbox{
977
  min-height:60px;
978
  }
@@ -1008,7 +1028,7 @@ ul.vfb-fields-col-2{
1008
  .rtl ul.vfb-fields-col-2 {
1009
  float: right;
1010
  }
1011
-
1012
  #vfb-form-builder-frame.columns-1 #vfb-postbox-container-1 #form-items .tabs-panel{
1013
  height:auto;
1014
  }
@@ -1081,29 +1101,29 @@ ul.vfb-fields-col-2{
1081
  }
1082
 
1083
  /* !Form Settings buttons */
1084
- .vfb-button {
1085
- position: relative;
1086
- display: inline-block;
1087
- overflow: visible;
1088
  margin: 0;
1089
- padding:0.5em 2.5em 0.5em 1em;
1090
- outline: none;
1091
  border: 1px solid #d4d4d4;
1092
  border-radius: 0.2em;
1093
  background-color: #f5f5f5;
1094
  color: #333;
1095
- text-decoration: none;
1096
- text-shadow: 1px 1px 0 #fff;
1097
- white-space: nowrap;
1098
- font:12px/normal sans-serif;
1099
  cursor: pointer;
1100
  zoom: 1;
1101
  -webkit-background-clip: padding;
1102
  -moz-background-clip: padding;
1103
- -o-background-clip: padding-box;
1104
- *display: inline;
1105
  }
1106
-
1107
  .vfb-button:hover,
1108
  .vfb-button:active,
1109
  .vfb-button.current {
@@ -1115,7 +1135,7 @@ ul.vfb-fields-col-2{
1115
  background-image: -o-linear-gradient(#599bdc, #3072b3);
1116
  background-image: linear-gradient(#599bdc, #3072b3);
1117
  color: #fff;
1118
- text-decoration: none;
1119
  text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
1120
  }
1121
 
@@ -1127,16 +1147,16 @@ ul.vfb-fields-col-2{
1127
  padding: 0;
1128
  border: 0;
1129
  }
1130
-
1131
  .vfb-button.vfb-delete {
1132
  color: #900;
1133
  }
1134
 
1135
  .vfb-button.vfb-delete:hover,
1136
  .vfb-button.vfb-delete:focus,
1137
- .vfb-button.vfb-delete:active {
1138
  border-color: #b53f3a;
1139
- border-bottom-color: #a0302a;
1140
  background-color: #dc5f59;
1141
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dc5f59), to(#b33630));
1142
  background-image: -moz-linear-gradient(#dc5f59, #b33630);
@@ -1144,15 +1164,15 @@ ul.vfb-fields-col-2{
1144
  background-image: linear-gradient(#dc5f59, #b33630);
1145
  color: #fff;
1146
  }
1147
-
1148
  .vfb-button.vfb-delete:focus,
1149
  .vfb-button.vfb-delete:active {
1150
  text-shadow: none;
1151
  }
1152
-
1153
  .vfb-button.vfb-duplicate:hover,
1154
  .vfb-button.vfb-duplicate:focus,
1155
- .vfb-button.vfb-duplicate:active {
1156
  border-color: #008e0d;
1157
  border-bottom-color: #008e0d;
1158
  border-left-color: #82BA0B;
@@ -1164,15 +1184,15 @@ ul.vfb-fields-col-2{
1164
  background-image: linear-gradient(#7cbc0a, #82BA0B);
1165
  color: #fff;
1166
  }
1167
-
1168
  .vfb-button.vfb-duplicate:focus,
1169
  .vfb-button.vfb-duplicate:active {
1170
  text-shadow: none;
1171
  }
1172
-
1173
  .vfb-button.vfb-conditional-fields:hover,
1174
  .vfb-button.vfb-conditional-fields:focus,
1175
- .vfb-button.vfb-conditional-fields:active {
1176
  border-color: #929292;
1177
  border-bottom-color: #929292;
1178
  background-color: #eeeeee;
@@ -1183,7 +1203,7 @@ ul.vfb-fields-col-2{
1183
  color: #000000;
1184
  text-shadow: 1px 0px 0px rgba(255,255,255,1);
1185
  }
1186
-
1187
  .vfb-button.vfb-conditional-fields:focus,
1188
  .vfb-button.vfb-conditional-fields:active {
1189
  text-shadow: none;
@@ -1194,26 +1214,26 @@ ul.vfb-fields-col-2{
1194
  margin-top:10px;
1195
  list-style:none;
1196
  }
1197
-
1198
  .rtl .vfb-button-group {
1199
  margin-left: -2px;
1200
  }
1201
-
1202
  .vfb-button-group .vfb-button{
1203
  float:left;
1204
  margin-right: 5px;
1205
  }
1206
-
1207
  .rtl .vfb-button-group .vfb-button {
1208
  float: right;
1209
  margin-right: 0;
1210
  margin-left: 5px;
1211
  }
1212
-
1213
  .vfb-button-group .button-primary {
1214
  margin-top: 2px;
1215
  }
1216
-
1217
  .button-icon{
1218
  position:absolute;
1219
  top:0;
@@ -1221,23 +1241,23 @@ ul.vfb-fields-col-2{
1221
  width:16px;
1222
  height:24px;
1223
  }
1224
-
1225
  .button-icon.vfb-small-arrow{
1226
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 0px -118px transparent;
1227
  }
1228
-
1229
  .current .button-icon.vfb-small-arrow {
1230
  background: url('../images/arrows.png?d=20120921') no-repeat scroll 0 -30px transparent;
1231
  }
1232
-
1233
  .button-icon.plus {
1234
  background: url('../images/sprite.png?d=20120921') no-repeat scroll -12px -644px transparent;
1235
  }
1236
-
1237
  .button-icon.delete {
1238
  background: url('../images/sprite.png?d=20120921') no-repeat scroll -12px -671px transparent;
1239
  }
1240
-
1241
  #form-settings{
1242
  display:none;
1243
  width: 100%;
@@ -1266,9 +1286,9 @@ ul.vfb-fields-col-2{
1266
  padding: 5px 15px;
1267
  height: 25px;
1268
  background:none repeat scroll 0 0 #F5F5F5;
1269
- box-shadow:
1270
- 0px 0px 0px 1px rgba(155,155,155,0.3),
1271
- 1px 0px 0px 0px rgba(255,255,255,0.9) inset,
1272
  0px 2px 2px rgba(0,0,0,0.1);
1273
  color: #777777;
1274
  text-decoration:none;
@@ -1280,7 +1300,7 @@ ul.vfb-fields-col-2{
1280
  line-height: 28px;
1281
  cursor: pointer;
1282
  }
1283
-
1284
  .settings-links .vfb-large-arrow{
1285
  position: absolute;
1286
  top: 7px;
@@ -1289,20 +1309,20 @@ ul.vfb-fields-col-2{
1289
  height: 24px;
1290
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -278px transparent;
1291
  }
1292
-
1293
  .rtl .settings-links .vfb-large-arrow {
1294
  right: auto;
1295
  left: 13px;
1296
  }
1297
-
1298
  .settings-links.on .vfb-large-arrow{
1299
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -252px transparent;
1300
  }
1301
-
1302
  .settings-links:hover, .settings-links.on{
1303
  background: #c6e1ec;
1304
- box-shadow:
1305
- 0px 0px 0px 1px rgba(155,155,155,0.3),
1306
  0px 2px 2px rgba(0,0,0,0.1);
1307
  color: #3d7489;
1308
  text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
@@ -1323,7 +1343,7 @@ ul.vfb-fields-col-2{
1323
  margin-right: 0;
1324
  margin-left: 2px;
1325
  }
1326
-
1327
  .tooltip {
1328
  position:absolute;
1329
  top:-40px;
@@ -1339,7 +1359,7 @@ ul.vfb-fields-col-2{
1339
  text-indent:0;
1340
  font-style:normal;
1341
  }
1342
-
1343
  .tooltip h3,
1344
  .vfb-tooltip .tooltip h3{
1345
  margin:5px 0;
@@ -1349,13 +1369,13 @@ ul.vfb-fields-col-2{
1349
  font-size:13px;
1350
  font-family: sans-serif;
1351
  }
1352
-
1353
  .tooltip p{
1354
  margin-top:10px;
1355
  font-size:12px;
1356
  }
1357
 
1358
- /* !Import/Export */
1359
  .vfb-export-label {
1360
  width: 10em;
1361
  float: left;
@@ -1375,3 +1395,97 @@ ul.vfb-fields-col-2{
1375
  margin-left: 10em;
1376
  padding: 5px;
1377
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  display: inline-block;
9
  *display: inline;
10
  /* IE7 inline-block hack */
11
+
12
  *zoom: 1;
13
+ padding: 15px 10px;
14
  margin-bottom: 0;
15
  line-height: 20px;
16
  text-align: center;
32
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
33
  *background-color: #e6e6e6;
34
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
35
+
36
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
37
  border: 1px solid #cccccc;
38
  *border: 0;
46
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
47
  text-decoration: none;
48
  }
49
+
50
  .vfb-btn:hover,
51
  .vfb-btn:focus {
52
  color: #333333;
57
  -o-transition: background-position 0.1s linear;
58
  transition: background-position 0.1s linear;
59
  }
60
+
61
  .vfb-btn:focus {
62
  outline: thin dotted #333;
63
  outline: 5px auto -webkit-focus-ring-color;
64
  outline-offset: -2px;
65
  }
66
+
67
  .vfb-btn.active,
68
  .vfb-btn:active {
69
  background-image: none;
72
  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
73
  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
74
  }
75
+
76
 
77
  .vfb-btn-primary.active {
78
  color: rgba(255, 255, 255, 0.75);
79
  }
80
+
81
  .vfb-btn-primary {
82
  color: #ffffff;
83
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
93
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
94
  *background-color: #0044cc;
95
  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
96
+
97
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
98
  }
99
+
100
  .vfb-btn-primary:hover,
101
  .vfb-btn-primary:focus,
102
  .vfb-btn-primary:active,
107
  background-color: #0044cc;
108
  *background-color: #003bb3;
109
  }
110
+
111
  .vfb-btn-primary:active,
112
  .vfb-btn-primary.active {
113
  background-color: #003399 \9;
114
  }
115
 
116
+ .vfb-btn-inverse {
117
+ background-color: #363636;
118
+ background-image: linear-gradient(to bottom, #444444, #222222);
119
+ background-repeat: repeat-x;
120
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
121
+ color: #FFFFFF;
122
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
123
+ }
124
+
125
+ .vfb-btn-inverse:hover,
126
+ .vfb-btn-inverse:focus,
127
+ .vfb-btn-inverse:active,
128
+ .vfb-btn-inverse.active,
129
+ .vfb-btn-inverse.disabled,
130
+ .vfb-btn-inverse[disabled] {
131
+ background-color: #222222;
132
+ color: #FFFFFF;
133
+ }
134
+
135
  .vfb-pro-call-to-action .cta-sign-up {
136
  color: #fff;
137
  display: block;
143
  width: 100%;
144
  line-height: 22px;
145
  }
146
+
147
  .vfb-pro-call-to-action .cta-price {
148
  color: #ace7ff;
149
  display: block;
155
  width: 100%;
156
  line-height: 20px;
157
  }
158
+
159
  .vfb-pro-upgrade {
160
  display: inline;
161
  float: left;
165
  border: 1px solid #21759b;
166
  border-radius: 5px;
167
  }
168
+
169
  .rtl .vfb-pro-upgrade {
170
  float: right;
171
  }
172
+
173
+ .vfb-pro-upgrade h2,
174
+ .wrap .vfb-pro-upgrade h2 {
175
+ font-size: 23px;
176
  font-weight: 500;
177
  padding: 5px 0;
178
  text-align: center;
179
  }
180
+
181
  .vfb-pro-upgrade h2 a {
182
  text-decoration: none;
183
  }
184
+
185
  .vfb-pro-upgrade ul {
186
  list-style: outside;
187
  margin-left: 10px;
188
  }
189
+
190
  .rtl .vfb-pro-upgrade ul {
191
  margin-left: 0;
192
  margin-right: 10px;
193
  }
194
 
195
+ /* !Form View framework */
196
  #vfb-form-builder-frame{
197
  display:block;
198
  margin: 0 -8px 0 290px;
229
  margin-right: 0;
230
  margin-left: 10px;
231
  }
232
+
233
  #vfb-form-builder-management .form-edit{
234
  margin-bottom: 20px;
235
  border: 1px solid #dfdfdf;
251
  clear:both;
252
  padding:3px 0 5px;
253
  }
254
+
255
  .vfb-major-publishing-actions .publishing-action{
256
  float:right;
257
  margin: 5px 0 1px;
258
  text-align: right;
259
  line-height: 23px;
260
  }
261
+
262
  #form-editor-header .publishing-action{
263
  margin-top:12px;
264
  }
272
  white-space: nowrap;
273
  font-size: 12px;
274
  }
275
+
276
  .sub-navigation li{
277
  display: inline;
278
  margin:0;
279
  padding:0;
280
  }
281
+
282
  .sub-navigation a{
283
  padding:0.2em;
284
  text-decoration: none;
285
  line-height: 2;
286
  }
287
+
288
  .sub-navigation a.current{
289
  border:medium none;
290
  background:none;
291
  color: black;
292
  font-weight: bold;
293
  }
294
+
295
  .sub-navigation a:hover{
296
  color:rgb(213,78,33);
297
  }
298
+
299
  /* Form Box view */
300
  #vfb-sidebar,
301
  #vfb-main{
302
  float: left;
303
  margin: 10px 0;
304
+ width: 280px;
305
  }
306
 
307
  .rtl #vfb-sidebar,
315
  #vfb-main.vfb-order-type-list{
316
  width: 100%;
317
  }
318
+
319
  #vfb-main p a,
320
  #vfb-main h3 a{
321
  text-decoration: none;
322
  }
323
+
324
  #vfb-main .submitdelete{
325
  color: #BC0B0B;
326
  text-decoration: none;
328
  #vfb-main .submitdelete:hover{
329
  color:red;
330
  }
331
+
332
  #vfb-sidebar{
333
  margin-left: -300px;
334
  }
377
  padding-right: 0;
378
  padding-left: 20px;
379
  }
380
+
381
  .vfb-form-alpha-list hr{
382
  display:block;
383
  margin:1em 0;
395
  font-size:14px;
396
  line-height: 17px;
397
  }
398
+
399
  .rtl .vfb-form-alpha-group .letter,
400
  .rtl .wrap h2.letter {
401
  float: right;
402
  }
403
+
404
  .vfb-form-alpha-form{
405
  display: block;
406
  margin:10px 0;
407
  padding-left:150px;
408
  width:auto;
409
  }
410
+
411
  .rtl .vfb-form-alpha-form {
412
  padding-left: 0;
413
  padding-right: 150px;
414
  }
415
+
416
  .vfb-form-alpha-form h3{
417
  float:left;
418
  margin: 0;
420
  word-wrap: break-word;
421
  font-size:17px;
422
  }
423
+
424
  .rtl .vfb-form-alpha-form h3 {
425
  float: right;
426
  }
427
+
428
  .vfb-form-alpha-form .vfb-publishing-actions,
429
  .vfb-form-alpha-form .vfb-form-meta{
430
  float:left;
431
  width:20%;
432
  text-align: center;
433
  }
434
+
435
  .rtl .vfb-form-alpha-form .vfb-publishing-actions,
436
  .rtl .vfb-form-alpha-form .vfb-form-meta {
437
  float: right;
438
  }
439
+
440
  .vfb-form-alpha-form .vfb-form-meta{
441
  width: 30%;
442
  }
443
+
444
  .vfb-form-alpha-form .vfb-publishing-actions p,
445
  .vfb-form-alpha-form .vfb-form-meta p{
446
  margin:0;
447
  }
448
+
449
  .vfb-form-alpha-form .vfb-form-meta,
450
  .vfb-form-alpha-form .paypal{
451
  float:left;
452
  margin:0;
453
  text-align: left;
454
  }
455
+
456
  .rtl .vfb-form-alpha-form .vfb-form-meta,
457
  .rtl .vfb-form-alpha-form .paypal {
458
  float: right;
467
  border:1px dashed #bbb;
468
  background-color:#f5f5f5;
469
  }
470
+
471
  #vfb-main .vfb-sortable-placeholder{
472
  float:left;
473
  margin:8px;
474
  height:200px;
475
  width:210px;
476
  }
477
+
478
  .rtl #vfb-main .vfb-sortable-placeholder {
479
  float: right;
480
  }
481
+
482
  #vfb-menu-to-edit .mjs-nestedSortable-error{
483
  border-color:red;
484
  background-color:#fbe3e4;
498
  color: white;
499
  text-align: center;
500
  }
501
+
502
  .vfb-meta-entries-total:hover span,
503
  .vfb-meta-entries-total-today:hover span{
504
  background-color: #d54e21;
517
  min-width: 22px;
518
  padding-bottom: 1px;
519
  }
520
+
521
  /* !New Form box */
522
  #new-form{
523
  margin:8px 0;
563
  margin-left: 0;
564
  margin-right: -8px;
565
  }
566
+
567
  #vfb-form-builder-frame.columns-1 #vfb-postbox-container-1{
568
  float:none;
569
  }
632
  #vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{
633
  width: 50.5%;
634
  }
635
+
636
  #vfb-form-builder-frame.columns-1 .vfb-postbox-container {
637
  width: 100%;
638
  }
656
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px 10px transparent;
657
  text-indent:-999em;
658
  }
659
+
660
  .rtl .item-edit {
661
  right: auto;
662
  left: -20px;
663
  }
664
+
665
  .item-edit:hover{
666
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px 10px transparent;
667
  }
668
+
669
  .item-edit.opened{
670
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -25px transparent;
671
  }
672
+
673
  .item-edit.opened:hover{
674
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -148px transparent;
675
  }
687
  .rtl .options-other-hide .widefat {
688
  margin: 0 0 7px 6px;
689
  }
690
+
691
  #form-settings .description-thin{
692
  margin:12px 10px 12px 0;
693
  }
694
+
695
  .rtl #form-settings .description-thin {
696
  margin: 12px 0 12px 10px;
697
  }
739
  .deleteCondition {
740
  background-position: -12px -677px;
741
  }
742
+
743
  .addEmail,
744
  .deleteEmail {
745
  margin-top: 5px;
746
  }
747
+
748
  .ui-state-disabled .menu-item-handle{
749
  background: #dfdfdf;
750
  box-shadow: none;
751
  cursor:default;
752
  }
753
+
754
 
755
  #vfb-poststuff{
756
  display:block;
761
  margin-right: 0;
762
  margin-left: 300px;
763
  }
764
+
765
  #vfb-entries-body-content{
766
  float:left;
767
  width:100%;
784
  margin-right: 0;
785
  margin-left: -300px;
786
  }
787
+
788
  label.error{
789
  display:block;
790
  color:red;
816
  padding-left: 0;
817
  padding-right: 10px;
818
  }
819
+
820
  .vfb-menu-item-type-fieldset,
821
  .vfb-menu-item-type-verification,
822
  #form-element-fieldset {
833
  margin-right: 13em;
834
  padding: 7px 0;
835
  }
836
+
837
  .rtl .vfb-menu-item-handle .item-title {
838
  margin-right: 0;
839
  margin-left: 13em;
857
  text-decoration:none;
858
  font-weight:bold;
859
  }
860
+
861
  #form-details-nav a.current,
862
  .charts-nav a.current{
863
  height:40px;
885
  .form-details-current, .active{
886
  display:block;
887
  }
888
+
889
  #confirmation-message textarea,
890
  #notification textarea{
891
  width:100%;
892
  height:10em;
893
  font-family:Consolas,Monaco,monospace;
894
  }
895
+
896
  #form-success-message-page,
897
  #form-success-message-redirect{
898
  margin-top:10px;
929
  }
930
 
931
  .rtl #promote-vfb #twitter {
932
+ background-position: right -746px;
933
  }
934
 
935
  #promote-vfb #star {
987
  border:1px solid #ccc;
988
  border-radius:3px;
989
  }
990
+
991
  .vfb-details.section{
992
  width:97.55%;
993
  background-color:#efefef;
994
  }
995
+
996
  .vfb-details .postbox{
997
  min-height:60px;
998
  }
1028
  .rtl ul.vfb-fields-col-2 {
1029
  float: right;
1030
  }
1031
+
1032
  #vfb-form-builder-frame.columns-1 #vfb-postbox-container-1 #form-items .tabs-panel{
1033
  height:auto;
1034
  }
1101
  }
1102
 
1103
  /* !Form Settings buttons */
1104
+ .vfb-button {
1105
+ position: relative;
1106
+ display: inline-block;
1107
+ overflow: visible;
1108
  margin: 0;
1109
+ padding:0.5em 2.5em 0.5em 1em;
1110
+ outline: none;
1111
  border: 1px solid #d4d4d4;
1112
  border-radius: 0.2em;
1113
  background-color: #f5f5f5;
1114
  color: #333;
1115
+ text-decoration: none;
1116
+ text-shadow: 1px 1px 0 #fff;
1117
+ white-space: nowrap;
1118
+ font:12px/normal sans-serif;
1119
  cursor: pointer;
1120
  zoom: 1;
1121
  -webkit-background-clip: padding;
1122
  -moz-background-clip: padding;
1123
+ -o-background-clip: padding-box;
1124
+ *display: inline;
1125
  }
1126
+
1127
  .vfb-button:hover,
1128
  .vfb-button:active,
1129
  .vfb-button.current {
1135
  background-image: -o-linear-gradient(#599bdc, #3072b3);
1136
  background-image: linear-gradient(#599bdc, #3072b3);
1137
  color: #fff;
1138
+ text-decoration: none;
1139
  text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
1140
  }
1141
 
1147
  padding: 0;
1148
  border: 0;
1149
  }
1150
+
1151
  .vfb-button.vfb-delete {
1152
  color: #900;
1153
  }
1154
 
1155
  .vfb-button.vfb-delete:hover,
1156
  .vfb-button.vfb-delete:focus,
1157
+ .vfb-button.vfb-delete:active {
1158
  border-color: #b53f3a;
1159
+ border-bottom-color: #a0302a;
1160
  background-color: #dc5f59;
1161
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#dc5f59), to(#b33630));
1162
  background-image: -moz-linear-gradient(#dc5f59, #b33630);
1164
  background-image: linear-gradient(#dc5f59, #b33630);
1165
  color: #fff;
1166
  }
1167
+
1168
  .vfb-button.vfb-delete:focus,
1169
  .vfb-button.vfb-delete:active {
1170
  text-shadow: none;
1171
  }
1172
+
1173
  .vfb-button.vfb-duplicate:hover,
1174
  .vfb-button.vfb-duplicate:focus,
1175
+ .vfb-button.vfb-duplicate:active {
1176
  border-color: #008e0d;
1177
  border-bottom-color: #008e0d;
1178
  border-left-color: #82BA0B;
1184
  background-image: linear-gradient(#7cbc0a, #82BA0B);
1185
  color: #fff;
1186
  }
1187
+
1188
  .vfb-button.vfb-duplicate:focus,
1189
  .vfb-button.vfb-duplicate:active {
1190
  text-shadow: none;
1191
  }
1192
+
1193
  .vfb-button.vfb-conditional-fields:hover,
1194
  .vfb-button.vfb-conditional-fields:focus,
1195
+ .vfb-button.vfb-conditional-fields:active {
1196
  border-color: #929292;
1197
  border-bottom-color: #929292;
1198
  background-color: #eeeeee;
1203
  color: #000000;
1204
  text-shadow: 1px 0px 0px rgba(255,255,255,1);
1205
  }
1206
+
1207
  .vfb-button.vfb-conditional-fields:focus,
1208
  .vfb-button.vfb-conditional-fields:active {
1209
  text-shadow: none;
1214
  margin-top:10px;
1215
  list-style:none;
1216
  }
1217
+
1218
  .rtl .vfb-button-group {
1219
  margin-left: -2px;
1220
  }
1221
+
1222
  .vfb-button-group .vfb-button{
1223
  float:left;
1224
  margin-right: 5px;
1225
  }
1226
+
1227
  .rtl .vfb-button-group .vfb-button {
1228
  float: right;
1229
  margin-right: 0;
1230
  margin-left: 5px;
1231
  }
1232
+
1233
  .vfb-button-group .button-primary {
1234
  margin-top: 2px;
1235
  }
1236
+
1237
  .button-icon{
1238
  position:absolute;
1239
  top:0;
1241
  width:16px;
1242
  height:24px;
1243
  }
1244
+
1245
  .button-icon.vfb-small-arrow{
1246
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 0px -118px transparent;
1247
  }
1248
+
1249
  .current .button-icon.vfb-small-arrow {
1250
  background: url('../images/arrows.png?d=20120921') no-repeat scroll 0 -30px transparent;
1251
  }
1252
+
1253
  .button-icon.plus {
1254
  background: url('../images/sprite.png?d=20120921') no-repeat scroll -12px -644px transparent;
1255
  }
1256
+
1257
  .button-icon.delete {
1258
  background: url('../images/sprite.png?d=20120921') no-repeat scroll -12px -671px transparent;
1259
  }
1260
+
1261
  #form-settings{
1262
  display:none;
1263
  width: 100%;
1286
  padding: 5px 15px;
1287
  height: 25px;
1288
  background:none repeat scroll 0 0 #F5F5F5;
1289
+ box-shadow:
1290
+ 0px 0px 0px 1px rgba(155,155,155,0.3),
1291
+ 1px 0px 0px 0px rgba(255,255,255,0.9) inset,
1292
  0px 2px 2px rgba(0,0,0,0.1);
1293
  color: #777777;
1294
  text-decoration:none;
1300
  line-height: 28px;
1301
  cursor: pointer;
1302
  }
1303
+
1304
  .settings-links .vfb-large-arrow{
1305
  position: absolute;
1306
  top: 7px;
1309
  height: 24px;
1310
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -278px transparent;
1311
  }
1312
+
1313
  .rtl .settings-links .vfb-large-arrow {
1314
  right: auto;
1315
  left: 13px;
1316
  }
1317
+
1318
  .settings-links.on .vfb-large-arrow{
1319
  background:url('../images/arrows.png?d=20121201') no-repeat scroll 8px -252px transparent;
1320
  }
1321
+
1322
  .settings-links:hover, .settings-links.on{
1323
  background: #c6e1ec;
1324
+ box-shadow:
1325
+ 0px 0px 0px 1px rgba(155,155,155,0.3),
1326
  0px 2px 2px rgba(0,0,0,0.1);
1327
  color: #3d7489;
1328
  text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
1343
  margin-right: 0;
1344
  margin-left: 2px;
1345
  }
1346
+
1347
  .tooltip {
1348
  position:absolute;
1349
  top:-40px;
1359
  text-indent:0;
1360
  font-style:normal;
1361
  }
1362
+
1363
  .tooltip h3,
1364
  .vfb-tooltip .tooltip h3{
1365
  margin:5px 0;
1369
  font-size:13px;
1370
  font-family: sans-serif;
1371
  }
1372
+
1373
  .tooltip p{
1374
  margin-top:10px;
1375
  font-size:12px;
1376
  }
1377
 
1378
+ /* !Import/Export */
1379
  .vfb-export-label {
1380
  width: 10em;
1381
  float: left;
1395
  margin-left: 10em;
1396
  padding: 5px;
1397
  }
1398
+ @media print {
1399
+ body * {
1400
+ float: none;
1401
+ }
1402
+
1403
+ html,
1404
+ .wrap,
1405
+ #wpbody-content,
1406
+ #vfb-poststuff {
1407
+ background: none !important;
1408
+ padding: 0;
1409
+ margin: 0;
1410
+ height: auto;
1411
+ }
1412
+
1413
+ #wpadminbar,
1414
+ #adminmenuwrap,
1415
+ #adminmenushadow,
1416
+ #adminmenuback,
1417
+ .screen-reader-shortcut,
1418
+ #screen-meta,
1419
+ #screen-meta-links,
1420
+ #wpfooter,
1421
+ #icon-options-general,
1422
+ .wrap h2,
1423
+ .view-entry,
1424
+ #major-publishing-actions,
1425
+ .clear {
1426
+ display: none;
1427
+ }
1428
+
1429
+ #wpcontent,
1430
+ body #wpcontent {
1431
+ margin-left: 0;
1432
+ width: auto;
1433
+ height: auto;
1434
+ }
1435
+
1436
+ #entry-edit h3 span {
1437
+ font-size: 23px;
1438
+ font-weight: normal;
1439
+ }
1440
+
1441
+ #vfb-poststuff {
1442
+ page-break-after: auto;
1443
+ }
1444
+
1445
+ #vfb-entries-body-content {
1446
+ width: 100%;
1447
+ height: auto;
1448
+ margin: 0 0 50px 0;
1449
+ padding: 0;
1450
+ }
1451
+
1452
+ #side-info-column{
1453
+ width: 100%;
1454
+ height: auto;
1455
+ float: none;
1456
+ }
1457
+
1458
+ #side-info-column .postbox .inside {
1459
+ margin: 0;
1460
+ padding: 0;
1461
+ }
1462
+
1463
+ #minor-publishing,
1464
+ .misc-pub-section,
1465
+ #submitdiv,
1466
+ #submitdiv h3 {
1467
+ background: none !important;
1468
+ border: none;
1469
+ margin: 0;
1470
+ }
1471
+
1472
+ #submitdiv h3 span {
1473
+ font-family: sans-serif;
1474
+ font-size: 16px;
1475
+ }
1476
+
1477
+ .inner-sidebar #side-sortables,
1478
+ .columns-2 .inner-sidebar #side-sortables {
1479
+ margin: 0;
1480
+ padding: 0;
1481
+ width: auto;
1482
+ }
1483
+
1484
+ table {
1485
+ page-break-inside: auto;
1486
+ }
1487
+
1488
+ tr textarea {
1489
+ overflow: visible;
1490
+ }
1491
+ }
css/visual-form-builder.css CHANGED
@@ -14,6 +14,7 @@ form.visual-form-builder li{
14
  list-style: none;
15
  list-style-image: none;
16
  list-style-type: none;
 
17
  }
18
 
19
  /* !Remove list item styles */
@@ -29,14 +30,15 @@ form.visual-form-builder li{
29
  padding:0;
30
  font-size:12px;
31
  }
32
-
33
- .visual-form-builder ui li {
34
  background: none;
35
  list-style: none;
36
  list-style-image: none;
37
  list-style-type: none;
 
38
  }
39
-
40
  .visual-form-builder li,
41
  .entry-content .visual-form-builder li,
42
  .comment-content .visual-form-builder li,
@@ -50,8 +52,8 @@ form.visual-form-builder li{
50
  padding: 6px 1% 9px;
51
  width: 64%;
52
  }
53
-
54
- .visual-form-builder li div span,
55
  span.vfb-full input,
56
  span.vfb-full input[type="text"].vfb-medium,
57
  span.vfb-full select{
@@ -59,12 +61,12 @@ span.vfb-full select{
59
  float:left;
60
  width:100%;
61
  }
62
-
63
  .visual-form-builder span.vfb-left{
64
  float:left;
65
  width:48%;
66
  }
67
-
68
  .visual-form-builder span.vfb-right{
69
  float:right;
70
  width:48%;
@@ -131,7 +133,7 @@ label.vfb-desc{
131
  label.vfb-desc{
132
  font-weight:bold;
133
  }
134
-
135
  .visual-form-builder.left-label .vfb-desc,
136
  .visual-form-builder.right-label .vfb-desc{
137
  float:left;
@@ -143,7 +145,7 @@ label.vfb-desc{
143
  padding-top:2px;
144
  text-align:right;
145
  }
146
-
147
  .visual-form-builder.left-label li div,
148
  .visual-form-builder.right-label li div {
149
  float: left;
@@ -157,11 +159,11 @@ label.vfb-desc{
157
  padding:0 0 5px;
158
  width:88%;
159
  }
160
-
161
  .rtl .visual-form-builder label.vfb-choice {
162
  margin: -16px 23px 0 0;
163
  }
164
-
165
  .visual-form-builder label span{
166
  color:#BC1212;
167
  }
@@ -175,10 +177,47 @@ input[type="url"].vfb-text,
175
  textarea.vfb-textarea {
176
  background: none repeat scroll 0 0 #FAFAFA;
177
  border: 1px solid #DDDDDD;
178
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1) inset;
179
  border-radius: 3px;
180
  padding: 3px 0;
181
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
 
183
  input.vfb-text,
184
  input[type="text"].vfb-text,
@@ -345,10 +384,18 @@ label.error{
345
  font-size:90%;
346
  }
347
 
348
- input.error,
349
- select.error,
350
- textarea.error{
351
- border:1px solid red;
 
 
 
 
 
 
 
 
352
  }
353
 
354
  /* !Success Mesage - Default */
@@ -362,41 +409,6 @@ p#form_success{
362
  font-size:12px;
363
  }
364
 
365
- /* !HTML Quicktags */
366
- .ed_button{
367
- font-family:Arial,"Bitstream Vera Sans",Helvetica,Verdana,sans-serif;
368
- font-size:12px;
369
- background-image: -moz-linear-gradient(top, #fcfcfc 0%, #e9e8e8 100%);
370
- background-image: -o-linear-gradient(top, #fcfcfc 0%, #e9e8e8 100%);
371
- background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fcfcfc), color-stop(1, #e9e8e8));
372
- background-image: linear-gradient(top, #fcfcfc 0%, #e9e8e8 100%);
373
- min-width:26px;
374
- margin:3px 1px 4px;
375
- padding:2px 4px;
376
- box-shadow:0 1px 0 #e3e3e3;
377
- border-radius:3px 3px 3px 3px;
378
- border:#C3C3C3 1px solid;
379
- text-transform:lowercase;
380
- }
381
- .ed_button:hover{
382
- background:none repeat scroll 0 0 #dddddd;
383
- border-color:#aaaaaa;
384
- cursor:pointer;
385
- }
386
- .ed_button.ed_bold{
387
- font-weight:bold;
388
- }
389
- .ed_button.ed_italic{
390
- font-style:italic;
391
- }
392
- .ed_button.ed_link{
393
- color:#0000FF;
394
- text-decoration:underline;
395
- }
396
- .ed_button.ed_del{
397
- text-decoration:line-through;
398
- }
399
-
400
  /* !Instructions */
401
  .vfb-item-instructions{
402
  background-color:#e3e3e3;
@@ -408,13 +420,13 @@ p#form_success{
408
  list-style: disc;
409
  padding-bottom: 0;
410
  }
411
-
412
  .vfb-item-instructions ol,
413
  .vfb-item-instructions ol li{
414
  list-style: decimal;
415
  padding-bottom: 0;
416
  }
417
-
418
  /* !Sections */
419
  .vfb-section-div{
420
  background-color:#D4D4D4;
14
  list-style: none;
15
  list-style-image: none;
16
  list-style-type: none;
17
+ margin: 0;
18
  }
19
 
20
  /* !Remove list item styles */
30
  padding:0;
31
  font-size:12px;
32
  }
33
+
34
+ .visual-form-builder ul li {
35
  background: none;
36
  list-style: none;
37
  list-style-image: none;
38
  list-style-type: none;
39
+ margin: 0;
40
  }
41
+
42
  .visual-form-builder li,
43
  .entry-content .visual-form-builder li,
44
  .comment-content .visual-form-builder li,
52
  padding: 6px 1% 9px;
53
  width: 64%;
54
  }
55
+
56
+ .visual-form-builder li div span.vfb-span,
57
  span.vfb-full input,
58
  span.vfb-full input[type="text"].vfb-medium,
59
  span.vfb-full select{
61
  float:left;
62
  width:100%;
63
  }
64
+
65
  .visual-form-builder span.vfb-left{
66
  float:left;
67
  width:48%;
68
  }
69
+
70
  .visual-form-builder span.vfb-right{
71
  float:right;
72
  width:48%;
133
  label.vfb-desc{
134
  font-weight:bold;
135
  }
136
+
137
  .visual-form-builder.left-label .vfb-desc,
138
  .visual-form-builder.right-label .vfb-desc{
139
  float:left;
145
  padding-top:2px;
146
  text-align:right;
147
  }
148
+
149
  .visual-form-builder.left-label li div,
150
  .visual-form-builder.right-label li div {
151
  float: left;
159
  padding:0 0 5px;
160
  width:88%;
161
  }
162
+
163
  .rtl .visual-form-builder label.vfb-choice {
164
  margin: -16px 23px 0 0;
165
  }
166
+
167
  .visual-form-builder label span{
168
  color:#BC1212;
169
  }
177
  textarea.vfb-textarea {
178
  background: none repeat scroll 0 0 #FAFAFA;
179
  border: 1px solid #DDDDDD;
 
180
  border-radius: 3px;
181
  padding: 3px 0;
182
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
183
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
184
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
185
+ -webkit-transition: border linear .2s, box-shadow linear .2s;
186
+ -moz-transition: border linear .2s, box-shadow linear .2s;
187
+ -o-transition: border linear .2s, box-shadow linear .2s;
188
+ transition: border linear .2s, box-shadow linear .2s;
189
+ }
190
+
191
+ input.vfb-text:focus,
192
+ input[type="text"].vfb-text:focus,
193
+ input[type="tel"].vfb-text:focus,
194
+ input[type="email"].vfb-text:focus,
195
+ input[type="url"].vfb-text:focus,
196
+ textarea.vfb-textarea:focus {
197
+ border-color: rgb(82, 168, 236);
198
+ border-color: rgba(82, 168, 236, 0.8);
199
+ outline: 0;
200
+ outline: thin dotted \9;
201
+ /* IE6-9 */
202
+
203
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
204
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
205
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
206
+ }
207
+
208
+ input.vfb-text.error:focus,
209
+ input[type="text"].vfb-text.error:focus,
210
+ input[type="tel"].vfb-text.error:focus,
211
+ input[type="email"].vfb-text.error:focus,
212
+ input[type="url"].vfb-text.error:focus,
213
+ textarea.vfb-textarea.error:focus {
214
+ border-color: rgb(238,83,83);
215
+ border-color: rgba(238,83,83,0.8);
216
+
217
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
218
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
219
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
220
+ }
221
 
222
  input.vfb-text,
223
  input[type="text"].vfb-text,
384
  font-size:90%;
385
  }
386
 
387
+ input.vfb-text.error,
388
+ input[type="text"].vfb-text.error,
389
+ input[type="tel"].vfb-text.error,
390
+ input[type="email"].vfb-text.error,
391
+ input[type="url"].vfb-text.error,
392
+ textarea.vfb-textarea.error {
393
+ border-color: rgb(238,83,83);
394
+ border-color: rgba(238,83,83,0.8);
395
+
396
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
397
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
398
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
399
  }
400
 
401
  /* !Success Mesage - Default */
409
  font-size:12px;
410
  }
411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
  /* !Instructions */
413
  .vfb-item-instructions{
414
  background-color:#e3e3e3;
420
  list-style: disc;
421
  padding-bottom: 0;
422
  }
423
+
424
  .vfb-item-instructions ol,
425
  .vfb-item-instructions ol li{
426
  list-style: decimal;
427
  padding-bottom: 0;
428
  }
429
+
430
  /* !Sections */
431
  .vfb-section-div{
432
  background-color:#D4D4D4;
includes/class-entries-detail.php CHANGED
@@ -1,34 +1,34 @@
1
  <?php
2
  /**
3
  * Class that builds our Entries detail page
4
- *
5
  * @since 1.4
6
  */
7
  class VisualFormBuilder_Entries_Detail{
8
  public function __construct(){
9
  global $wpdb;
10
-
11
  // Setup global database table names
12
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
13
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
14
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
15
-
16
  add_action( 'admin_init', array( &$this, 'entries_detail' ) );
17
  }
18
-
19
  public function entries_detail(){
20
  global $wpdb;
21
-
22
  $entry_id = absint( $_REQUEST['entry'] );
23
-
24
  $entries = $wpdb->get_results( $wpdb->prepare( "SELECT forms.form_title, entries.* FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id WHERE entries.entries_id = %d", $entry_id ) );
25
-
26
  echo '<p>' . sprintf( '<a href="?page=%s" class="view-entry">&laquo; Back to Entries</a>', $_REQUEST['page'] ) . '</p>';
27
-
28
  // Get the date/time format that is saved in the options table
29
  $date_format = get_option('date_format');
30
  $time_format = get_option('time_format');
31
-
32
  // Loop trough the entries and setup the data to be displayed for each row
33
  foreach ( $entries as $entry ) {
34
  $data = unserialize( $entry->data );
@@ -68,9 +68,14 @@ class VisualFormBuilder_Entries_Detail{
68
  <div class="clear"></div>
69
  </div> <!--#misc-publishing-actions -->
70
  </div> <!-- #minor-publishing -->
71
-
72
  <div id="major-publishing-actions">
73
- <div id="delete-action"><?php echo sprintf( '<a class="submitdelete deletion entry-delete" href="?page=%s&action=%s&entry=%s">Trash</a>', $_REQUEST['page'], 'trash_entry', $entry_id ); ?></div>
 
 
 
 
 
74
  <div class="clear"></div>
75
  </div> <!-- #major-publishing-actions -->
76
  </div> <!-- #submitbox -->
@@ -83,7 +88,7 @@ class VisualFormBuilder_Entries_Detail{
83
  <?php
84
  $count = 0;
85
  $open_fieldset = $open_section = false;
86
-
87
  foreach ( $data as $k => $v ) {
88
  if ( !is_array( $v ) ) {
89
  if ( $count == 0 ) {
@@ -91,7 +96,7 @@ class VisualFormBuilder_Entries_Detail{
91
  <h3><span>' . $entry->form_title . ' : ' . __( 'Entry' , 'visual-form-builder') .' #' . $entry->entries_id . '</span></h3>
92
  <div class="inside">';
93
  }
94
-
95
  echo '<h4>' . ucwords( $k ) . '</h4>';
96
  echo $v;
97
  $count++;
@@ -99,18 +104,18 @@ class VisualFormBuilder_Entries_Detail{
99
  else {
100
  // Cast each array as an object
101
  $obj = (object) $v;
102
-
103
  if ( $obj->type == 'fieldset' ) {
104
  // Close each fieldset
105
  if ( $open_fieldset == true )
106
  echo '</table>';
107
-
108
  echo '<h3>' . stripslashes( $obj->name ) . '</h3><table class="form-table">';
109
-
110
  $open_fieldset = true;
111
  }
112
-
113
-
114
  switch ( $obj->type ) {
115
  case 'fieldset' :
116
  case 'section' :
@@ -120,28 +125,37 @@ class VisualFormBuilder_Entries_Detail{
120
  case 'secret' :
121
 
122
  break;
123
-
 
 
 
 
 
 
 
 
 
124
  default :
125
  ?>
126
  <tr valign="top">
127
  <th scope="row"><label for="field[<?php echo $obj->id; ?>]"><?php echo stripslashes( $obj->name ); ?></label></th>
128
- <td style="background:#eee;border:1px solid #ddd"><?php echo stripslashes( esc_attr( $obj->value ) ); ?></td>
129
  </tr>
130
  <?php
131
  break;
132
-
133
  }
134
  }
135
  }
136
-
137
  if ( $count > 0 )
138
  echo '</div></div>';
139
-
140
  }
141
  echo '</table></div>';
142
  echo '<br class="clear"></div>';
143
-
144
-
145
  echo '</form>';
146
  }
147
  }
1
  <?php
2
  /**
3
  * Class that builds our Entries detail page
4
+ *
5
  * @since 1.4
6
  */
7
  class VisualFormBuilder_Entries_Detail{
8
  public function __construct(){
9
  global $wpdb;
10
+
11
  // Setup global database table names
12
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
13
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
14
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
15
+
16
  add_action( 'admin_init', array( &$this, 'entries_detail' ) );
17
  }
18
+
19
  public function entries_detail(){
20
  global $wpdb;
21
+
22
  $entry_id = absint( $_REQUEST['entry'] );
23
+
24
  $entries = $wpdb->get_results( $wpdb->prepare( "SELECT forms.form_title, entries.* FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id WHERE entries.entries_id = %d", $entry_id ) );
25
+
26
  echo '<p>' . sprintf( '<a href="?page=%s" class="view-entry">&laquo; Back to Entries</a>', $_REQUEST['page'] ) . '</p>';
27
+
28
  // Get the date/time format that is saved in the options table
29
  $date_format = get_option('date_format');
30
  $time_format = get_option('time_format');
31
+
32
  // Loop trough the entries and setup the data to be displayed for each row
33
  foreach ( $entries as $entry ) {
34
  $data = unserialize( $entry->data );
68
  <div class="clear"></div>
69
  </div> <!--#misc-publishing-actions -->
70
  </div> <!-- #minor-publishing -->
71
+
72
  <div id="major-publishing-actions">
73
+ <div id="delete-action">
74
+ <?php echo sprintf( '<a class="submitdelete deletion entry-delete" href="?page=%2$s&action=%3$s&entry=%4$d">%1$s</a>', __( 'Move to Trash', 'visual-form-builder' ), $_REQUEST['page'], 'trash', $entry_id ); ?>
75
+ </div>
76
+ <div id="publishing-action">
77
+ <?php submit_button( __( 'Print', 'visual-form-builder' ), 'secondary', 'submit', false, array( 'onclick' => 'window.print();return false;' ) ); ?>
78
+ </div>
79
  <div class="clear"></div>
80
  </div> <!-- #major-publishing-actions -->
81
  </div> <!-- #submitbox -->
88
  <?php
89
  $count = 0;
90
  $open_fieldset = $open_section = false;
91
+
92
  foreach ( $data as $k => $v ) {
93
  if ( !is_array( $v ) ) {
94
  if ( $count == 0 ) {
96
  <h3><span>' . $entry->form_title . ' : ' . __( 'Entry' , 'visual-form-builder') .' #' . $entry->entries_id . '</span></h3>
97
  <div class="inside">';
98
  }
99
+
100
  echo '<h4>' . ucwords( $k ) . '</h4>';
101
  echo $v;
102
  $count++;
104
  else {
105
  // Cast each array as an object
106
  $obj = (object) $v;
107
+
108
  if ( $obj->type == 'fieldset' ) {
109
  // Close each fieldset
110
  if ( $open_fieldset == true )
111
  echo '</table>';
112
+
113
  echo '<h3>' . stripslashes( $obj->name ) . '</h3><table class="form-table">';
114
+
115
  $open_fieldset = true;
116
  }
117
+
118
+
119
  switch ( $obj->type ) {
120
  case 'fieldset' :
121
  case 'section' :
125
  case 'secret' :
126
 
127
  break;
128
+
129
+ case 'file-upload' :
130
+ ?>
131
+ <tr valign="top">
132
+ <th scope="row"><label for="field[<?php echo $obj->id; ?>]"><?php echo stripslashes( $obj->name ); ?></label></th>
133
+ <td style="background:#eee;border:1px solid #ddd"><a href="<?php esc_attr_e( $obj->value ); ?>" target="_blank"><?php echo stripslashes( esc_html( $obj->value ) ); ?></a></td>
134
+ </tr>
135
+ <?php
136
+ break;
137
+
138
  default :
139
  ?>
140
  <tr valign="top">
141
  <th scope="row"><label for="field[<?php echo $obj->id; ?>]"><?php echo stripslashes( $obj->name ); ?></label></th>
142
+ <td style="background:#eee;border:1px solid #ddd"><?php echo stripslashes( wp_specialchars_decode( esc_html( $obj->value ) ) ); ?></td>
143
  </tr>
144
  <?php
145
  break;
146
+
147
  }
148
  }
149
  }
150
+
151
  if ( $count > 0 )
152
  echo '</div></div>';
153
+
154
  }
155
  echo '</table></div>';
156
  echo '<br class="clear"></div>';
157
+
158
+
159
  echo '</form>';
160
  }
161
  }
includes/class-entries-list.php CHANGED
@@ -1,36 +1,36 @@
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
- *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Entries_List extends WP_List_Table {
8
 
9
  function __construct(){
10
  global $status, $page, $wpdb;
11
-
12
  // CSV delimiter
13
  $this->delimiter = apply_filters( 'vfb_csv_delimiter', ',' );
14
-
15
  // Setup global database table names
16
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
17
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
18
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
19
-
20
  // Set parent defaults
21
  parent::__construct( array(
22
  'singular' => 'entry',
23
  'plural' => 'entries',
24
  'ajax' => false
25
  ) );
26
-
27
  // Handle our bulk actions
28
  $this->process_bulk_action();
29
  }
30
 
31
  /**
32
  * Display column names. We'll handle the Form column separately.
33
- *
34
  * @since 1.2
35
  * @returns $item string Column name
36
  */
@@ -45,40 +45,40 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
45
  return $item[ $column_name ];
46
  }
47
  }
48
-
49
  /**
50
  * Builds the on:hover links for the Form column
51
- *
52
  * @since 1.2
53
  */
54
  function column_form( $item ){
55
-
56
  // Build row actions
57
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
58
  $actions['view'] = sprintf( '<a href="?page=%s&action=%s&entry=%s" id="%3$s" class="view-entry">View</a>', $_REQUEST['page'], 'view', $item['entry_id'] );
59
-
60
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
61
  $actions['trash'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">Trash</a>', $_REQUEST['page'], 'trash', $item['entry_id'] );
62
  elseif ( $this->get_entry_status() && 'trash' == $this->get_entry_status() ) {
63
  $actions['restore'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">%s</a>', $_REQUEST['page'], 'restore', $item['entry_id'], __( 'Restore', 'visual-form-builder' ) );
64
  $actions['delete'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">%s</a>', $_REQUEST['page'], 'delete', $item['entry_id'], __( 'Delete Permanently', 'visual-form-builder' ) );
65
  }
66
-
67
  return sprintf( '%1$s %2$s', $item['form'], $this->row_actions( $actions ) );
68
  }
69
-
70
  /**
71
  * Used for checkboxes and bulk editing
72
- *
73
  * @since 1.2
74
  */
75
  function column_cb( $item ){
76
  return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['entry_id'] );
77
  }
78
-
79
  /**
80
  * Builds the actual columns
81
- *
82
  * @since 1.2
83
  */
84
  function get_columns(){
@@ -92,22 +92,22 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
92
  'ip_address' => __( 'IP Address' , 'visual-form-builder'),
93
  'date' => __( 'Date Submitted' , 'visual-form-builder')
94
  );
95
-
96
  return $columns;
97
  }
98
-
99
  /**
100
  * A custom function to get the entries and sort them
101
- *
102
  * @since 1.2
103
  * @returns array() $cols SQL results
104
  */
105
  function get_entries( $orderby = 'date', $order = 'ASC', $per_page, $offset = 0, $search = '' ){
106
  global $wpdb;
107
-
108
  // Set OFFSET for pagination
109
  $offset = ( $offset > 0 ) ? "OFFSET $offset" : '';
110
-
111
  switch ( $orderby ) {
112
  case 'date':
113
  $order_col = 'date_submitted';
@@ -122,60 +122,60 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
122
  $order_col = $orderby;
123
  break;
124
  }
125
-
126
  $where = '';
127
-
128
  // If the form filter dropdown is used
129
  if ( $this->current_filter_action() )
130
  $where .= 'AND forms.form_id = ' . $this->current_filter_action();
131
-
132
  // Get the month and year from the dropdown
133
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
134
-
135
  // If a month/year has been selected, parse out the month/year and build the clause
136
  if ( $m > 0 ) {
137
  $year = substr( $m, 0, 4 );
138
  $month = substr( $m, -2 );
139
-
140
  $where .= " AND YEAR(date_submitted) = $year AND MONTH(date_submitted) = $month";
141
  }
142
 
143
  // Get the month/year from the dropdown
144
  $today = isset( $_REQUEST['today'] ) ? (int) $_REQUEST['today'] : 0;
145
-
146
  // Parse month/year and build the clause
147
  if ( $today > 0 )
148
  $where .= " AND entries.date_submitted >= curdate()";
149
 
150
  // Entries type filter
151
  $where .= ( $this->get_entry_status() && 'all' !== $this->get_entry_status() ) ? $wpdb->prepare( ' AND entries.entry_approved = %s', $this->get_entry_status() ) : '';
152
-
153
  // Always display approved entries, unless an Entries Type filter is set
154
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
155
  $where .= $wpdb->prepare( ' AND entries.entry_approved = %d', 1 );
156
 
157
  $sql_order = sanitize_sql_orderby( "$order_col $order" );
158
  $cols = $wpdb->get_results( "SELECT forms.form_title, entries.entries_id, entries.form_id, entries.subject, entries.sender_name, entries.sender_email, entries.emails_to, entries.date_submitted, entries.ip_address FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id WHERE 1=1 $where $search ORDER BY $sql_order LIMIT $per_page $offset" );
159
-
160
  return $cols;
161
  }
162
 
163
  /**
164
  * Get the entry status: All, Spam, or Trash
165
- *
166
  * @since 2.1
167
  * @returns string Entry status
168
  */
169
  function get_entry_status() {
170
  if ( !isset( $_REQUEST['entry_status'] ) )
171
  return false;
172
-
173
  return esc_html( $_REQUEST['entry_status'] );
174
  }
175
 
176
  /**
177
  * Build the different views for the entries screen
178
- *
179
  * @since 2.1
180
  * @returns array $status_links Status links with counts
181
  */
@@ -184,45 +184,45 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
184
  $num_entries = $this->get_entries_count();
185
  $class = '';
186
  $link = '?page=vfb-entries';
187
-
188
  $stati = array(
189
  'all' => _n_noop( 'All <span class="count">(<span class="pending-count">%s</span>)</span>', 'All <span class="count">(<span class="pending-count">%s</span>)</span>' ),
190
  'trash' => _n_noop( 'Trash <span class="count">(<span class="trash-count">%s</span>)</span>', 'Trash <span class="count">(<span class="trash-count">%s</span>)</span>' )
191
  );
192
-
193
  $total_entries = (int) $num_entries->all;
194
  $entry_status = isset( $_REQUEST['entry_status'] ) ? $_REQUEST['entry_status'] : 'all';
195
-
196
  foreach ( $stati as $status => $label ) {
197
  $class = ( $status == $entry_status ) ? ' class="current"' : '';
198
-
199
  if ( !isset( $num_entries->$status ) )
200
  $num_entries->$status = 10;
201
-
202
- $link = add_query_arg( 'entry_status', $status, $link );
203
-
204
  $status_links[ $status ] = "<li class='$status'><a href='$link'$class>" . sprintf(
205
  translate_nooped_plural( $label, $num_entries->$status ),
206
  number_format_i18n( $num_entries->$status )
207
  ) . '</a>';
208
  }
209
-
210
  return $status_links;
211
  }
212
 
213
  /**
214
  * Get the number of entries for use with entry statuses
215
- *
216
  * @since 2.1
217
  * @returns array $stats Counts of different entry types
218
  */
219
  function get_entries_count() {
220
  global $wpdb;
221
-
222
  $stats = array();
223
-
224
  $entries = $wpdb->get_results( "SELECT entries.entry_approved, COUNT( * ) AS num_entries FROM $this->entries_table_name AS entries WHERE 1=1 GROUP BY entries.entry_approved", ARRAY_A );
225
-
226
  $total = 0;
227
  $approved = array( '0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
228
  foreach ( (array) $entries as $row ) {
@@ -232,25 +232,25 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
232
  if ( isset( $approved[ $row['entry_approved' ] ] ) )
233
  $stats[ $approved[ $row['entry_approved' ] ] ] = $row['num_entries'];
234
  }
235
-
236
  $stats['all'] = $total;
237
  foreach ( $approved as $key ) {
238
  if ( empty( $stats[ $key ] ) )
239
  $stats[ $key ] = 0;
240
  }
241
-
242
  $stats = (object) $stats;
243
-
244
  return $stats;
245
  }
246
-
247
  /**
248
  * Setup which columns are sortable. Default is by Date.
249
- *
250
  * @since 1.2
251
  * @returns array() $sortable_columns Sortable columns
252
  */
253
- function get_sortable_columns() {
254
  $sortable_columns = array(
255
  'form' => array( 'form', false ),
256
  'subject' => array( 'subject', false ),
@@ -258,73 +258,73 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
258
  'sender_email' => array( 'sender_email', false ),
259
  'date' => array( 'date', true )
260
  );
261
-
262
  return $sortable_columns;
263
  }
264
-
265
  /**
266
  * Define our bulk actions
267
- *
268
  * @since 1.2
269
  * @returns array() $actions Bulk actions
270
  */
271
  function get_bulk_actions() {
272
-
273
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
274
  $actions['trash'] = __( 'Move to Trash', 'visual-form-builder' );
275
  elseif ( $this->get_entry_status() && 'trash' == $this->get_entry_status() ) {
276
  $actions['restore'] = __( 'Restore', 'visual-form-builder' );
277
  $actions['delete'] = __( 'Delete Permanently', 'visual-form-builder' );
278
  }
279
-
280
  return $actions;
281
  }
282
-
283
  /**
284
  * Process our bulk actions
285
- *
286
  * @since 1.2
287
  */
288
  function process_bulk_action() {
289
  global $wpdb;
290
-
291
  $entry_id = '';
292
-
293
- // Set the Entry ID array
294
  if ( isset( $_REQUEST['entry'] ) ) :
295
  if ( is_array( $_REQUEST['entry'] ) )
296
  $entry_id = $_REQUEST['entry'];
297
  else
298
  $entry_id = (array) $_REQUEST['entry'];
299
  endif;
300
-
301
- switch( $this->current_action() ) :
302
  case 'trash' :
303
  foreach ( $entry_id as $id ) {
304
  $id = absint( $id );
305
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $id ) );
306
  }
307
  break;
308
-
309
  case 'delete' :
310
  foreach ( $entry_id as $id ) {
311
  $id = absint( $id );
312
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
313
  }
314
  break;
315
-
316
  case 'restore' :
317
  foreach ( $entry_id as $id ) {
318
  $id = absint( $id );
319
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 1 ), array( 'entries_id' => $id ) );
320
  }
321
  break;
322
-
323
  case 'delete' :
324
  $entry_id = ( isset( $_REQUEST['entry'] ) && is_array( $_REQUEST['entry'] ) ) ? $_REQUEST['entry'] : array( $_REQUEST['entry'] );
325
-
326
  global $wpdb;
327
-
328
  foreach ( $entry_id as $id ) {
329
  $id = absint( $id );
330
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
@@ -332,42 +332,42 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
332
  break;
333
  endswitch;
334
  }
335
-
336
  /**
337
  * Adds our forms filter dropdown
338
- *
339
  * @since 1.2
340
  */
341
  function extra_tablenav( $which ) {
342
  global $wpdb;
343
-
344
  $cols = $wpdb->get_results( "SELECT DISTINCT forms.form_title, forms.form_id FROM $this->form_table_name AS forms ORDER BY forms.form_title ASC" );
345
-
346
  // Only display the dropdown on the top of the table
347
  if ( 'top' == $which ) {
348
  echo '<div class="alignleft actions">';
349
  $this->months_dropdown();
350
  echo '<select id="form-filter" name="form-filter">
351
  <option value="-1"' . selected( $this->current_filter_action(), -1 ) . '>' . __( 'View all forms' , 'visual-form-builder') . '</option>';
352
-
353
  foreach ( $cols as $form ) {
354
  echo '<option value="' . $form->form_id . '"' . selected( $this->current_filter_action(), $form->form_id ) . '>' . $form->form_title . '</option>';
355
  }
356
-
357
  echo '</select>
358
  <input type="submit" value="' . __( 'Filter' , 'visual-form-builder') . '" class="button-secondary" />
359
  </div>';
360
  }
361
  }
362
-
363
  /**
364
  * Display Year/Month filter
365
- *
366
  * @since 2.3.1
367
  */
368
- function months_dropdown() {
369
  global $wpdb, $wp_locale;
370
-
371
  $months = $wpdb->get_results( "
372
  SELECT DISTINCT YEAR( forms.date_submitted ) AS year, MONTH( forms.date_submitted ) AS month
373
  FROM $this->entries_table_name AS forms
@@ -378,7 +378,7 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
378
 
379
  if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
380
  return;
381
-
382
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
383
  ?>
384
  <select name='m'>
@@ -387,7 +387,7 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
387
  foreach ( $months as $arc_row ) {
388
  if ( 0 == $arc_row->year )
389
  continue;
390
-
391
  $month = zeroise( $arc_row->month, 2 );
392
  $year = $arc_row->year;
393
 
@@ -401,100 +401,100 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
401
  </select>
402
  <?php
403
  }
404
-
405
  /**
406
  * Set our forms filter action
407
- *
408
  * @since 1.2
409
  * @returns int Form ID
410
  */
411
  function current_filter_action() {
412
  if ( isset( $_REQUEST['form-filter'] ) && -1 != $_REQUEST['form-filter'] )
413
  return $_REQUEST['form-filter'];
414
-
415
  return false;
416
  }
417
-
418
  /**
419
  * Display Search box
420
- *
421
  * @since 1.4
422
  * @returns html Search Form
423
  */
424
  function search_box( $text, $input_id ) {
425
  parent::search_box( $text, $input_id );
426
  }
427
-
428
  /**
429
  * Prepares our data for display
430
- *
431
  * @since 1.2
432
  */
433
  function prepare_items() {
434
  global $wpdb;
435
-
436
  // get the current user ID
437
  $user = get_current_user_id();
438
-
439
  // get the current admin screen
440
  $screen = get_current_screen();
441
-
442
  // retrieve the "per_page" option
443
  $screen_option = $screen->get_option( 'per_page', 'option' );
444
-
445
  // retrieve the value of the option stored for the current user
446
  $per_page = get_user_meta( $user, $screen_option, true );
447
-
448
  // get the default value if none is set
449
  if ( empty ( $per_page) || $per_page < 1 )
450
  $per_page = $screen->get_option( 'per_page', 'default' );
451
-
452
  // Get the date/time format that is saved in the options table
453
  $date_format = get_option( 'date_format' );
454
  $time_format = get_option( 'time_format' );
455
-
456
  // What page are we looking at?
457
  $current_page = $this->get_pagenum();
458
-
459
  // Use offset for pagination
460
  $offset = ( $current_page - 1 ) * $per_page;
461
-
462
  // Get column headers
463
  $columns = $this->get_columns();
464
  $hidden = array();
465
-
466
  // Get sortable columns
467
  $sortable = $this->get_sortable_columns();
468
-
469
  // Build the column headers
470
  $this->_column_headers = array($columns, $hidden, $sortable);
471
-
472
  // Get entries search terms
473
  $search_terms = ( !empty( $_REQUEST['s'] ) ) ? explode( ' ', $_REQUEST['s'] ) : array();
474
-
475
  $searchand = $search = '';
476
  // Loop through search terms and build query
477
  foreach( $search_terms as $term ) {
478
  $term = esc_sql( like_escape( $term ) );
479
-
480
  $search .= "{$searchand}((entries.subject LIKE '%{$term}%') OR (entries.sender_name LIKE '%{$term}%') OR (entries.sender_email LIKE '%{$term}%') OR (entries.emails_to LIKE '%{$term}%') OR (entries.data LIKE '%{$term}%'))";
481
  $searchand = ' AND ';
482
  }
483
-
484
  $search = ( !empty($search) ) ? " AND ({$search}) " : '';
485
-
486
  // Set our ORDER BY and ASC/DESC to sort the entries
487
  $orderby = ( !empty( $_REQUEST['orderby'] ) ) ? $_REQUEST['orderby'] : 'date';
488
  $order = ( !empty( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : 'desc';
489
-
490
  // Get the sorted entries
491
  $entries = $this->get_entries( $orderby, $order, $per_page, $offset, $search );
492
-
493
  $data = array();
494
 
495
  // Loop trough the entries and setup the data to be displayed for each row
496
  foreach ( $entries as $entry ) {
497
- $data[] =
498
  array(
499
  'entry_id' => $entry->entries_id,
500
  'form' => stripslashes( $entry->form_title ),
@@ -508,42 +508,42 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
508
  }
509
 
510
  $where = '';
511
-
512
  // If the form filter dropdown is used
513
  if ( $this->current_filter_action() )
514
  $where .= 'AND form_id = ' . $this->current_filter_action();
515
-
516
  // Get the month/year from the dropdown
517
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
518
-
519
  // Parse month/year and build the clause
520
  if ( $m > 0 ) {
521
  $year = substr( $m, 0, 4 );
522
  $month = substr( $m, -2 );
523
-
524
  $where .= " AND YEAR(date_submitted) = $year AND MONTH(date_submitted) = $month";
525
  }
526
 
527
  // Get the month/year from the dropdown
528
  $today = isset( $_REQUEST['today'] ) ? (int) $_REQUEST['today'] : 0;
529
-
530
  // Parse month/year and build the clause
531
  if ( $today > 0 )
532
  $where .= " AND entries.date_submitted >= curdate()";
533
 
534
  // Entry type filter
535
  $where .= ( $this->get_entry_status() && 'all' !== $this->get_entry_status() ) ? $wpdb->prepare( ' AND entries.entry_approved = %s', $this->get_entry_status() ) : '';
536
-
537
  // Always display approved entries, unless an Entries Type filter is set
538
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
539
  $where .= $wpdb->prepare( ' AND entries.entry_approved = %d', 1 );
540
-
541
  // How many entries do we have?
542
  $total_items = $wpdb->get_var( "SELECT COUNT(*) FROM $this->entries_table_name AS entries WHERE 1=1 $where" );
543
 
544
  // Add sorted data to the items property
545
  $this->items = $data;
546
-
547
  // Register our pagination
548
  $this->set_pagination_args( array(
549
  'total_items' => $total_items,
@@ -551,7 +551,7 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
551
  'total_pages' => ceil( $total_items / $per_page )
552
  ) );
553
  }
554
-
555
  /**
556
  * Display the pagination.
557
  * Customize default function to work with months and form drop down filters
@@ -574,10 +574,10 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
574
  $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
575
 
576
  $page_links = array();
577
-
578
  // Added to pick up the months dropdown
579
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
580
-
581
  $disable_first = $disable_last = '';
582
  if ( $current == 1 )
583
  $disable_first = ' disabled';
@@ -590,7 +590,7 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
590
  esc_url( remove_query_arg( 'paged', $current_url ) ),
591
  '&laquo;'
592
  );
593
-
594
  // Modified the add_query_args to include my custom dropdowns
595
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
596
  'prev-page' . $disable_first,
@@ -617,7 +617,7 @@ class VisualFormBuilder_Entries_List extends WP_List_Table {
617
  esc_url( add_query_arg( array( 'paged' => min( $total_pages, $current+1 ), 'm' => $m, 'form-filter' => $this->current_filter_action() ), $current_url ) ),
618
  '&rsaquo;'
619
  );
620
-
621
  // Modified the add_query_args to include my custom dropdowns
622
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
623
  'last-page' . $disable_last,
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
+ *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Entries_List extends WP_List_Table {
8
 
9
  function __construct(){
10
  global $status, $page, $wpdb;
11
+
12
  // CSV delimiter
13
  $this->delimiter = apply_filters( 'vfb_csv_delimiter', ',' );
14
+
15
  // Setup global database table names
16
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
17
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
18
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
19
+
20
  // Set parent defaults
21
  parent::__construct( array(
22
  'singular' => 'entry',
23
  'plural' => 'entries',
24
  'ajax' => false
25
  ) );
26
+
27
  // Handle our bulk actions
28
  $this->process_bulk_action();
29
  }
30
 
31
  /**
32
  * Display column names. We'll handle the Form column separately.
33
+ *
34
  * @since 1.2
35
  * @returns $item string Column name
36
  */
45
  return $item[ $column_name ];
46
  }
47
  }
48
+
49
  /**
50
  * Builds the on:hover links for the Form column
51
+ *
52
  * @since 1.2
53
  */
54
  function column_form( $item ){
55
+
56
  // Build row actions
57
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
58
  $actions['view'] = sprintf( '<a href="?page=%s&action=%s&entry=%s" id="%3$s" class="view-entry">View</a>', $_REQUEST['page'], 'view', $item['entry_id'] );
59
+
60
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
61
  $actions['trash'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">Trash</a>', $_REQUEST['page'], 'trash', $item['entry_id'] );
62
  elseif ( $this->get_entry_status() && 'trash' == $this->get_entry_status() ) {
63
  $actions['restore'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">%s</a>', $_REQUEST['page'], 'restore', $item['entry_id'], __( 'Restore', 'visual-form-builder' ) );
64
  $actions['delete'] = sprintf( '<a href="?page=%s&action=%s&entry=%s">%s</a>', $_REQUEST['page'], 'delete', $item['entry_id'], __( 'Delete Permanently', 'visual-form-builder' ) );
65
  }
66
+
67
  return sprintf( '%1$s %2$s', $item['form'], $this->row_actions( $actions ) );
68
  }
69
+
70
  /**
71
  * Used for checkboxes and bulk editing
72
+ *
73
  * @since 1.2
74
  */
75
  function column_cb( $item ){
76
  return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['entry_id'] );
77
  }
78
+
79
  /**
80
  * Builds the actual columns
81
+ *
82
  * @since 1.2
83
  */
84
  function get_columns(){
92
  'ip_address' => __( 'IP Address' , 'visual-form-builder'),
93
  'date' => __( 'Date Submitted' , 'visual-form-builder')
94
  );
95
+
96
  return $columns;
97
  }
98
+
99
  /**
100
  * A custom function to get the entries and sort them
101
+ *
102
  * @since 1.2
103
  * @returns array() $cols SQL results
104
  */
105
  function get_entries( $orderby = 'date', $order = 'ASC', $per_page, $offset = 0, $search = '' ){
106
  global $wpdb;
107
+
108
  // Set OFFSET for pagination
109
  $offset = ( $offset > 0 ) ? "OFFSET $offset" : '';
110
+
111
  switch ( $orderby ) {
112
  case 'date':
113
  $order_col = 'date_submitted';
122
  $order_col = $orderby;
123
  break;
124
  }
125
+
126
  $where = '';
127
+
128
  // If the form filter dropdown is used
129
  if ( $this->current_filter_action() )
130
  $where .= 'AND forms.form_id = ' . $this->current_filter_action();
131
+
132
  // Get the month and year from the dropdown
133
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
134
+
135
  // If a month/year has been selected, parse out the month/year and build the clause
136
  if ( $m > 0 ) {
137
  $year = substr( $m, 0, 4 );
138
  $month = substr( $m, -2 );
139
+
140
  $where .= " AND YEAR(date_submitted) = $year AND MONTH(date_submitted) = $month";
141
  }
142
 
143
  // Get the month/year from the dropdown
144
  $today = isset( $_REQUEST['today'] ) ? (int) $_REQUEST['today'] : 0;
145
+
146
  // Parse month/year and build the clause
147
  if ( $today > 0 )
148
  $where .= " AND entries.date_submitted >= curdate()";
149
 
150
  // Entries type filter
151
  $where .= ( $this->get_entry_status() && 'all' !== $this->get_entry_status() ) ? $wpdb->prepare( ' AND entries.entry_approved = %s', $this->get_entry_status() ) : '';
152
+
153
  // Always display approved entries, unless an Entries Type filter is set
154
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
155
  $where .= $wpdb->prepare( ' AND entries.entry_approved = %d', 1 );
156
 
157
  $sql_order = sanitize_sql_orderby( "$order_col $order" );
158
  $cols = $wpdb->get_results( "SELECT forms.form_title, entries.entries_id, entries.form_id, entries.subject, entries.sender_name, entries.sender_email, entries.emails_to, entries.date_submitted, entries.ip_address FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id WHERE 1=1 $where $search ORDER BY $sql_order LIMIT $per_page $offset" );
159
+
160
  return $cols;
161
  }
162
 
163
  /**
164
  * Get the entry status: All, Spam, or Trash
165
+ *
166
  * @since 2.1
167
  * @returns string Entry status
168
  */
169
  function get_entry_status() {
170
  if ( !isset( $_REQUEST['entry_status'] ) )
171
  return false;
172
+
173
  return esc_html( $_REQUEST['entry_status'] );
174
  }
175
 
176
  /**
177
  * Build the different views for the entries screen
178
+ *
179
  * @since 2.1
180
  * @returns array $status_links Status links with counts
181
  */
184
  $num_entries = $this->get_entries_count();
185
  $class = '';
186
  $link = '?page=vfb-entries';
187
+
188
  $stati = array(
189
  'all' => _n_noop( 'All <span class="count">(<span class="pending-count">%s</span>)</span>', 'All <span class="count">(<span class="pending-count">%s</span>)</span>' ),
190
  'trash' => _n_noop( 'Trash <span class="count">(<span class="trash-count">%s</span>)</span>', 'Trash <span class="count">(<span class="trash-count">%s</span>)</span>' )
191
  );
192
+
193
  $total_entries = (int) $num_entries->all;
194
  $entry_status = isset( $_REQUEST['entry_status'] ) ? $_REQUEST['entry_status'] : 'all';
195
+
196
  foreach ( $stati as $status => $label ) {
197
  $class = ( $status == $entry_status ) ? ' class="current"' : '';
198
+
199
  if ( !isset( $num_entries->$status ) )
200
  $num_entries->$status = 10;
201
+
202
+ $link = add_query_arg( 'entry_status', $status, $link );
203
+
204
  $status_links[ $status ] = "<li class='$status'><a href='$link'$class>" . sprintf(
205
  translate_nooped_plural( $label, $num_entries->$status ),
206
  number_format_i18n( $num_entries->$status )
207
  ) . '</a>';
208
  }
209
+
210
  return $status_links;
211
  }
212
 
213
  /**
214
  * Get the number of entries for use with entry statuses
215
+ *
216
  * @since 2.1
217
  * @returns array $stats Counts of different entry types
218
  */
219
  function get_entries_count() {
220
  global $wpdb;
221
+
222
  $stats = array();
223
+
224
  $entries = $wpdb->get_results( "SELECT entries.entry_approved, COUNT( * ) AS num_entries FROM $this->entries_table_name AS entries WHERE 1=1 GROUP BY entries.entry_approved", ARRAY_A );
225
+
226
  $total = 0;
227
  $approved = array( '0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
228
  foreach ( (array) $entries as $row ) {
232
  if ( isset( $approved[ $row['entry_approved' ] ] ) )
233
  $stats[ $approved[ $row['entry_approved' ] ] ] = $row['num_entries'];
234
  }
235
+
236
  $stats['all'] = $total;
237
  foreach ( $approved as $key ) {
238
  if ( empty( $stats[ $key ] ) )
239
  $stats[ $key ] = 0;
240
  }
241
+
242
  $stats = (object) $stats;
243
+
244
  return $stats;
245
  }
246
+
247
  /**
248
  * Setup which columns are sortable. Default is by Date.
249
+ *
250
  * @since 1.2
251
  * @returns array() $sortable_columns Sortable columns
252
  */
253
+ function get_sortable_columns() {
254
  $sortable_columns = array(
255
  'form' => array( 'form', false ),
256
  'subject' => array( 'subject', false ),
258
  'sender_email' => array( 'sender_email', false ),
259
  'date' => array( 'date', true )
260
  );
261
+
262
  return $sortable_columns;
263
  }
264
+
265
  /**
266
  * Define our bulk actions
267
+ *
268
  * @since 1.2
269
  * @returns array() $actions Bulk actions
270
  */
271
  function get_bulk_actions() {
272
+
273
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
274
  $actions['trash'] = __( 'Move to Trash', 'visual-form-builder' );
275
  elseif ( $this->get_entry_status() && 'trash' == $this->get_entry_status() ) {
276
  $actions['restore'] = __( 'Restore', 'visual-form-builder' );
277
  $actions['delete'] = __( 'Delete Permanently', 'visual-form-builder' );
278
  }
279
+
280
  return $actions;
281
  }
282
+
283
  /**
284
  * Process our bulk actions
285
+ *
286
  * @since 1.2
287
  */
288
  function process_bulk_action() {
289
  global $wpdb;
290
+
291
  $entry_id = '';
292
+
293
+ // Set the Entry ID array
294
  if ( isset( $_REQUEST['entry'] ) ) :
295
  if ( is_array( $_REQUEST['entry'] ) )
296
  $entry_id = $_REQUEST['entry'];
297
  else
298
  $entry_id = (array) $_REQUEST['entry'];
299
  endif;
300
+
301
+ switch( $this->current_action() ) :
302
  case 'trash' :
303
  foreach ( $entry_id as $id ) {
304
  $id = absint( $id );
305
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $id ) );
306
  }
307
  break;
308
+
309
  case 'delete' :
310
  foreach ( $entry_id as $id ) {
311
  $id = absint( $id );
312
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
313
  }
314
  break;
315
+
316
  case 'restore' :
317
  foreach ( $entry_id as $id ) {
318
  $id = absint( $id );
319
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 1 ), array( 'entries_id' => $id ) );
320
  }
321
  break;
322
+
323
  case 'delete' :
324
  $entry_id = ( isset( $_REQUEST['entry'] ) && is_array( $_REQUEST['entry'] ) ) ? $_REQUEST['entry'] : array( $_REQUEST['entry'] );
325
+
326
  global $wpdb;
327
+
328
  foreach ( $entry_id as $id ) {
329
  $id = absint( $id );
330
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
332
  break;
333
  endswitch;
334
  }
335
+
336
  /**
337
  * Adds our forms filter dropdown
338
+ *
339
  * @since 1.2
340
  */
341
  function extra_tablenav( $which ) {
342
  global $wpdb;
343
+
344
  $cols = $wpdb->get_results( "SELECT DISTINCT forms.form_title, forms.form_id FROM $this->form_table_name AS forms ORDER BY forms.form_title ASC" );
345
+
346
  // Only display the dropdown on the top of the table
347
  if ( 'top' == $which ) {
348
  echo '<div class="alignleft actions">';
349
  $this->months_dropdown();
350
  echo '<select id="form-filter" name="form-filter">
351
  <option value="-1"' . selected( $this->current_filter_action(), -1 ) . '>' . __( 'View all forms' , 'visual-form-builder') . '</option>';
352
+
353
  foreach ( $cols as $form ) {
354
  echo '<option value="' . $form->form_id . '"' . selected( $this->current_filter_action(), $form->form_id ) . '>' . $form->form_title . '</option>';
355
  }
356
+
357
  echo '</select>
358
  <input type="submit" value="' . __( 'Filter' , 'visual-form-builder') . '" class="button-secondary" />
359
  </div>';
360
  }
361
  }
362
+
363
  /**
364
  * Display Year/Month filter
365
+ *
366
  * @since 2.3.1
367
  */
368
+ function months_dropdown( $post_type = '' ) {
369
  global $wpdb, $wp_locale;
370
+
371
  $months = $wpdb->get_results( "
372
  SELECT DISTINCT YEAR( forms.date_submitted ) AS year, MONTH( forms.date_submitted ) AS month
373
  FROM $this->entries_table_name AS forms
378
 
379
  if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
380
  return;
381
+
382
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
383
  ?>
384
  <select name='m'>
387
  foreach ( $months as $arc_row ) {
388
  if ( 0 == $arc_row->year )
389
  continue;
390
+
391
  $month = zeroise( $arc_row->month, 2 );
392
  $year = $arc_row->year;
393
 
401
  </select>
402
  <?php
403
  }
404
+
405
  /**
406
  * Set our forms filter action
407
+ *
408
  * @since 1.2
409
  * @returns int Form ID
410
  */
411
  function current_filter_action() {
412
  if ( isset( $_REQUEST['form-filter'] ) && -1 != $_REQUEST['form-filter'] )
413
  return $_REQUEST['form-filter'];
414
+
415
  return false;
416
  }
417
+
418
  /**
419
  * Display Search box
420
+ *
421
  * @since 1.4
422
  * @returns html Search Form
423
  */
424
  function search_box( $text, $input_id ) {
425
  parent::search_box( $text, $input_id );
426
  }
427
+
428
  /**
429
  * Prepares our data for display
430
+ *
431
  * @since 1.2
432
  */
433
  function prepare_items() {
434
  global $wpdb;
435
+
436
  // get the current user ID
437
  $user = get_current_user_id();
438
+
439
  // get the current admin screen
440
  $screen = get_current_screen();
441
+
442
  // retrieve the "per_page" option
443
  $screen_option = $screen->get_option( 'per_page', 'option' );
444
+
445
  // retrieve the value of the option stored for the current user
446
  $per_page = get_user_meta( $user, $screen_option, true );
447
+
448
  // get the default value if none is set
449
  if ( empty ( $per_page) || $per_page < 1 )
450
  $per_page = $screen->get_option( 'per_page', 'default' );
451
+
452
  // Get the date/time format that is saved in the options table
453
  $date_format = get_option( 'date_format' );
454
  $time_format = get_option( 'time_format' );
455
+
456
  // What page are we looking at?
457
  $current_page = $this->get_pagenum();
458
+
459
  // Use offset for pagination
460
  $offset = ( $current_page - 1 ) * $per_page;
461
+
462
  // Get column headers
463
  $columns = $this->get_columns();
464
  $hidden = array();
465
+
466
  // Get sortable columns
467
  $sortable = $this->get_sortable_columns();
468
+
469
  // Build the column headers
470
  $this->_column_headers = array($columns, $hidden, $sortable);
471
+
472
  // Get entries search terms
473
  $search_terms = ( !empty( $_REQUEST['s'] ) ) ? explode( ' ', $_REQUEST['s'] ) : array();
474
+
475
  $searchand = $search = '';
476
  // Loop through search terms and build query
477
  foreach( $search_terms as $term ) {
478
  $term = esc_sql( like_escape( $term ) );
479
+
480
  $search .= "{$searchand}((entries.subject LIKE '%{$term}%') OR (entries.sender_name LIKE '%{$term}%') OR (entries.sender_email LIKE '%{$term}%') OR (entries.emails_to LIKE '%{$term}%') OR (entries.data LIKE '%{$term}%'))";
481
  $searchand = ' AND ';
482
  }
483
+
484
  $search = ( !empty($search) ) ? " AND ({$search}) " : '';
485
+
486
  // Set our ORDER BY and ASC/DESC to sort the entries
487
  $orderby = ( !empty( $_REQUEST['orderby'] ) ) ? $_REQUEST['orderby'] : 'date';
488
  $order = ( !empty( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : 'desc';
489
+
490
  // Get the sorted entries
491
  $entries = $this->get_entries( $orderby, $order, $per_page, $offset, $search );
492
+
493
  $data = array();
494
 
495
  // Loop trough the entries and setup the data to be displayed for each row
496
  foreach ( $entries as $entry ) {
497
+ $data[] =
498
  array(
499
  'entry_id' => $entry->entries_id,
500
  'form' => stripslashes( $entry->form_title ),
508
  }
509
 
510
  $where = '';
511
+
512
  // If the form filter dropdown is used
513
  if ( $this->current_filter_action() )
514
  $where .= 'AND form_id = ' . $this->current_filter_action();
515
+
516
  // Get the month/year from the dropdown
517
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
518
+
519
  // Parse month/year and build the clause
520
  if ( $m > 0 ) {
521
  $year = substr( $m, 0, 4 );
522
  $month = substr( $m, -2 );
523
+
524
  $where .= " AND YEAR(date_submitted) = $year AND MONTH(date_submitted) = $month";
525
  }
526
 
527
  // Get the month/year from the dropdown
528
  $today = isset( $_REQUEST['today'] ) ? (int) $_REQUEST['today'] : 0;
529
+
530
  // Parse month/year and build the clause
531
  if ( $today > 0 )
532
  $where .= " AND entries.date_submitted >= curdate()";
533
 
534
  // Entry type filter
535
  $where .= ( $this->get_entry_status() && 'all' !== $this->get_entry_status() ) ? $wpdb->prepare( ' AND entries.entry_approved = %s', $this->get_entry_status() ) : '';
536
+
537
  // Always display approved entries, unless an Entries Type filter is set
538
  if ( !$this->get_entry_status() || 'all' == $this->get_entry_status() )
539
  $where .= $wpdb->prepare( ' AND entries.entry_approved = %d', 1 );
540
+
541
  // How many entries do we have?
542
  $total_items = $wpdb->get_var( "SELECT COUNT(*) FROM $this->entries_table_name AS entries WHERE 1=1 $where" );
543
 
544
  // Add sorted data to the items property
545
  $this->items = $data;
546
+
547
  // Register our pagination
548
  $this->set_pagination_args( array(
549
  'total_items' => $total_items,
551
  'total_pages' => ceil( $total_items / $per_page )
552
  ) );
553
  }
554
+
555
  /**
556
  * Display the pagination.
557
  * Customize default function to work with months and form drop down filters
574
  $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
575
 
576
  $page_links = array();
577
+
578
  // Added to pick up the months dropdown
579
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
580
+
581
  $disable_first = $disable_last = '';
582
  if ( $current == 1 )
583
  $disable_first = ' disabled';
590
  esc_url( remove_query_arg( 'paged', $current_url ) ),
591
  '&laquo;'
592
  );
593
+
594
  // Modified the add_query_args to include my custom dropdowns
595
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
596
  'prev-page' . $disable_first,
617
  esc_url( add_query_arg( array( 'paged' => min( $total_pages, $current+1 ), 'm' => $m, 'form-filter' => $this->current_filter_action() ), $current_url ) ),
618
  '&rsaquo;'
619
  );
620
+
621
  // Modified the add_query_args to include my custom dropdowns
622
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
623
  'last-page' . $disable_last,
includes/class-export.php CHANGED
@@ -1,17 +1,17 @@
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
- *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Export {
8
-
9
  public function __construct(){
10
  global $wpdb;
11
-
12
  // CSV delimiter
13
  $this->delimiter = apply_filters( 'vfb_csv_delimiter', ',' );
14
-
15
  // Setup our default columns
16
  $this->default_cols = array(
17
  'entries_id' => __( 'Entries ID' , 'visual-form-builder'),
@@ -22,21 +22,21 @@ class VisualFormBuilder_Export {
22
  'sender_email' => __( 'Sender Email' , 'visual-form-builder'),
23
  'emails_to' => __( 'Emailed To' , 'visual-form-builder'),
24
  );
25
-
26
  // Setup global database table names
27
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
28
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
29
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
30
-
31
  // AJAX for loading new entry checkboxes
32
  add_action( 'wp_ajax_visual_form_builder_export_load_options', array( &$this, 'ajax_load_options' ) );
33
 
34
  // AJAX for getting entries count
35
  add_action( 'wp_ajax_visual_form_builder_export_entries_count', array( &$this, 'ajax_entries_count' ) );
36
-
37
  $this->process_export_action();
38
  }
39
-
40
  /**
41
  * Display the export form
42
  *
@@ -45,55 +45,57 @@ class VisualFormBuilder_Export {
45
  */
46
  public function display(){
47
  global $wpdb;
48
-
49
  // Query to get all forms
50
  $order = sanitize_sql_orderby( 'form_id ASC' );
51
  $where = apply_filters( 'vfb_pre_get_forms_export', '' );
52
- $forms = $wpdb->get_results( "SELECT * FROM $this->form_table_name WHERE 1=1 $where ORDER BY $order" );
53
-
54
  if ( !$forms ) :
55
  echo sprintf(
56
  '<div class="vfb-form-alpha-list"><h3 id="vfb-no-forms">You currently do not have any forms. Click on the <a href="%1$s">New Form</a> button to get started.</h3></div>',
57
  esc_url( admin_url( 'admin.php?page=vfb-add-new' ) )
58
  );
59
-
60
  return;
61
  endif;
62
-
63
  $entries_count = $this->count_entries( $forms[0]->form_id );
64
-
65
  // Return nothing if no entries found
66
  if ( !$entries_count ) :
67
  $no_entries = __( 'No entries to pull field names from.', 'visual-form-builder' );
68
  else :
 
69
  $limit = $entries_count > 1000 ? 1000 : $entries_count;
70
-
71
  // Safe to get entries now
72
- $entries = $wpdb->get_results( $wpdb->prepare( "SELECT form_id, data FROM $this->entries_table_name WHERE 1=1 AND form_id = %d LIMIT %d", $forms[0]->form_id, $limit ), ARRAY_A );
73
-
74
  // Get columns
75
  $columns = $this->get_cols( $entries );
76
-
77
  // Get JSON data
78
  $data = json_decode( $columns, true );
79
  endif;
80
-
81
  ?>
82
  <form method="post" id="vfb-export">
83
  <p><?php _e( 'Backup and save some or all of your Visual Form Builder data.', 'visual-form-builder' ); ?></p>
84
  <p><?php _e( 'Once you have saved the file, you will be able to import Visual Form Builder Pro data from this site into another site.', 'visual-form-builder' ); ?></p>
85
  <h3><?php _e( 'Choose what to export', 'visual-form-builder' ); ?></h3>
86
-
87
  <p><label><input type="radio" name="vfb-content" value="all" disabled="disabled" /> <?php _e( 'All data', 'visual-form-builder' ); ?></label></p>
88
  <p class="description"><?php _e( 'This will contain all of your forms, fields, entries, and email design settings.', 'visual-form-builder' ); ?><br><strong>*<?php _e( 'Only available in Visual Form Builder Pro', 'visual-form-builder' ); ?>*</strong></p>
89
-
90
  <p><label><input type="radio" name="vfb-content" value="forms" disabled="disabled" /> <?php _e( 'Forms', 'visual-form-builder' ); ?></label></p>
91
  <p class="description"><?php _e( 'This will contain all of your forms, fields, and email design settings', 'visual-form-builder' ); ?>.<br><strong>*<?php _e( 'Only available in Visual Form Builder Pro', 'visual-form-builder' ); ?>*</strong></p>
92
-
93
  <p><label><input type="radio" name="vfb-content" value="entries" checked="checked" /> <?php _e( 'Entries', 'visual-form-builder' ); ?></label></p>
94
-
95
  <ul id="entries-filters" class="vfb-export-filters">
96
  <li><p class="description"><?php _e( 'This will export entries in either a .csv, .txt, or .xls and cannot be used with the Import. If you need to import entries on another site, please use the All data option above.', 'visual-form-builder' ); ?></p></li>
 
97
  <li>
98
  <label class="vfb-export-label" for="format"><?php _e( 'Format', 'visual-form-builder' ); ?>:</label>
99
  <select name="format">
@@ -102,16 +104,23 @@ class VisualFormBuilder_Export {
102
  <option value="xls" disabled="disabled"><?php _e( 'Excel (.xls) - Pro only', 'visual-form-builder' ); ?></option>
103
  </select>
104
  </li>
 
105
  <li>
106
- <label class="vfb-export-label" for="form_id"><?php _e( 'Form', 'visual-form-builder' ); ?>:</label>
107
- <select id="vfb-export-entries-forms" name="form_id">
108
- <?php
109
- foreach ( $forms as $form ) {
110
- echo '<option value="' . $form->form_id . '" id="' . $form->form_key . '">' . stripslashes( $form->form_title ) . '</option>';
111
- }
112
- ?>
 
 
 
 
 
113
  </select>
114
  </li>
 
115
  <li>
116
  <label class="vfb-export-label"><?php _e( 'Date Range', 'visual-form-builder' ); ?>:</label>
117
  <select name="entries_start_date">
@@ -123,11 +132,9 @@ class VisualFormBuilder_Export {
123
  <?php $this->months_dropdown(); ?>
124
  </select>
125
  </li>
126
- <?php
127
- if ( $entries_count > 1000 ) :
128
- $num_pages = ceil( $entries_count / 1000 );
129
- ?>
130
- <li id="vfb-export-entries-pages">
131
  <label class="vfb-export-label"><?php _e( 'Page to Export', 'visual-form-builder' ); ?>:</label>
132
  <select id="vfb-export-entries-rows" name="entries_page">
133
  <?php
@@ -138,15 +145,12 @@ class VisualFormBuilder_Export {
138
  </select>
139
  <p class="description"><?php _e( 'A large number of entries have been detected for this form. Only 1000 entries can be exported at a time.', 'visual-form-builder' ); ?></p>
140
  </li>
141
- <?php
142
- endif;
143
- ?>
144
-
145
  <li>
146
  <label class="vfb-export-label"><?php _e( 'Fields', 'visual-form-builder' ); ?>:</label>
147
-
148
  <p><a id="vfb-export-select-all" href="#"><?php _e( 'Select All', 'visual-form-builder' ); ?></a></p>
149
-
150
  <div id="vfb-export-entries-fields">
151
  <?php
152
  if ( isset( $no_entries ) )
@@ -157,13 +161,13 @@ class VisualFormBuilder_Export {
157
  </div>
158
  </li>
159
  </ul>
160
-
161
  <?php submit_button( __( 'Download Export File', 'visual-form-builder' ) ); ?>
162
  </form>
163
  <?php
164
  }
165
-
166
-
167
  /**
168
  * Build the entries export array
169
  *
@@ -173,77 +177,79 @@ class VisualFormBuilder_Export {
173
  */
174
  public function export_entries( $args = array() ) {
175
  global $wpdb;
176
-
177
  // Set inital fields as a string
178
  $initial_fields = implode( ',', $this->default_cols );
179
-
180
- $defaults = array(
181
  'content' => 'entries',
182
  'format' => 'csv',
183
  'form_id' => 0,
184
- 'start_date' => false,
185
  'end_date' => false,
186
  'page' => 0,
187
- 'fields' => $initial_fields
188
  );
189
-
190
  $args = wp_parse_args( $args, $defaults );
191
-
192
  $where = '';
193
-
194
  $limit = '0,1000';
195
-
196
  if ( 'entries' == $args['content'] ) {
197
  if ( 0 !== $args['form_id'] )
198
  $where .= $wpdb->prepare( " AND form_id = %d", $args['form_id'] );
199
-
200
  if ( $args['start_date'] )
201
  $where .= $wpdb->prepare( " AND date_submitted >= %s", date( 'Y-m-d', strtotime( $args['start_date'] ) ) );
202
-
203
  if ( $args['end_date'] )
204
- $where .= $wpdb->prepare( " AND date_submitted < %s", date( 'Y-m-d', strtotime('+1 month', strtotime( $args['end_date'] ) ) ) );
205
-
206
  if ( $args['page'] > 1 )
207
  $limit = ( $args['page'] - 1 ) * 1000 . ',1000';
208
  }
209
-
210
- $entries = $wpdb->get_results( "SELECT * FROM $this->entries_table_name WHERE 1=1 $where LIMIT $limit" );
 
 
211
  $form_key = $wpdb->get_var( $wpdb->prepare( "SELECT form_key, form_title FROM $this->form_table_name WHERE form_id = %d", $args['form_id'] ) );
212
  $form_title = $wpdb->get_var( null, 1 );
213
-
214
  $sitename = sanitize_key( get_bloginfo( 'name' ) );
215
  if ( ! empty($sitename) ) $sitename .= '.';
216
  $filename = $sitename . 'vfb.' . "$form_key." . date( 'Y-m-d' ) . ".{$args['format']}";
217
-
218
  $content_type = 'text/csv';
219
-
220
  // Return nothing if no entries found
221
  if ( !$entries )
222
  return;
223
-
224
  header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
225
  header( 'Content-Description: File Transfer' );
226
  header( 'Content-Disposition: attachment; filename=' . $filename );
227
  header( "Content-Type: $content_type; charset=" . get_option( 'blog_charset' ), true );
228
  header( 'Expires: 0' );
229
  header( 'Pragma: public' );
230
-
231
  // Get columns
232
  $columns = $this->get_cols( $entries );
233
-
234
  // Get JSON data
235
  $data = json_decode( $columns, true );
236
-
237
  // Build array of fields to display
238
  $fields = !is_array( $args['fields'] ) ? array_map( 'trim', explode( ',', $args['fields'] ) ) : $args['fields'];
239
-
240
  // Strip slashes from header values
241
  $fields = array_map( 'stripslashes', $fields );
242
-
243
  // Build CSV
244
  $this->csv( $data, $fields );
245
  }
246
-
247
  /**
248
  * Build the entries as JSON
249
  *
@@ -252,16 +258,16 @@ class VisualFormBuilder_Export {
252
  * @param array $entries The resulting database query for entries
253
  */
254
  public function get_cols( $entries ) {
255
-
256
  // Initialize row index at 0
257
  $row = 0;
258
  $output = array();
259
-
260
  // Loop through all entries
261
  foreach ( $entries as $entry ) :
262
-
263
  foreach ( $entry as $key => $value ) :
264
-
265
  switch ( $key ) {
266
  case 'entries_id':
267
  case 'date_submitted':
@@ -271,20 +277,20 @@ class VisualFormBuilder_Export {
271
  case 'sender_email':
272
  $output[ $row ][ stripslashes( $this->default_cols[ $key ] ) ] = $value;
273
  break;
274
-
275
  case 'emails_to':
276
  $output[ $row ][ stripslashes( $this->default_cols[ $key ] ) ] = implode( ',', maybe_unserialize( $value ) );
277
  break;
278
-
279
  case 'data':
280
  // Unserialize value only if it was serialized
281
  $fields = maybe_unserialize( $value );
282
-
283
  // Loop through our submitted data
284
  foreach ( $fields as $field_key => $field_value ) :
285
  // Cast each array as an object
286
  $obj = (object) $field_value;
287
-
288
  switch ( $obj->type ) {
289
  case 'fieldset' :
290
  case 'section' :
@@ -294,9 +300,9 @@ class VisualFormBuilder_Export {
294
  case 'secret' :
295
  case 'submit' :
296
  break;
297
-
298
  default :
299
- $output[ $row ][ stripslashes( $obj->name ) ] = $obj->value;
300
  break;
301
  } //end $obj switch
302
  endforeach; // end $fields loop
@@ -305,21 +311,107 @@ class VisualFormBuilder_Export {
305
  endforeach; // end $entry loop
306
  $row++;
307
  endforeach; //end $entries loop
308
-
309
- return json_encode( $output );
310
  }
311
 
312
  public function count_entries( $form_id ) {
313
  global $wpdb;
314
-
315
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $this->entries_table_name WHERE form_id = %d", $form_id ) );
316
-
317
  if ( !$count )
318
  return 0;
319
-
320
  return $count;
321
  }
322
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
  /**
324
  * Return the entries data formatted for CSV
325
  *
@@ -331,32 +423,37 @@ class VisualFormBuilder_Export {
331
  public function csv( $data, $fields ) {
332
  // Open file with PHP wrapper
333
  $fh = @fopen( 'php://output', 'w' );
334
-
335
- // Build headers
336
- fputcsv( $fh, $fields, $this->delimiter );
337
-
338
- $rows = $fields_clean = array();
339
-
340
  // Decode special characters
341
  foreach ( $fields as $field ) :
 
 
 
 
 
342
  $fields_clean[] = wp_specialchars_decode( $field, ENT_QUOTES );
343
  endforeach;
344
-
345
- // Build table rows and cells
 
 
 
346
  foreach ( $data as $row ) :
347
-
348
  foreach ( $fields_clean as $label ) {
349
  $label = wp_specialchars_decode( $label );
350
  $rows[ $label ] = ( isset( $row[ $label ] ) && in_array( $label, $fields_clean ) ) ? $row[ $label ] : '';
351
  }
352
-
353
  fputcsv( $fh, $rows, $this->delimiter );
354
-
355
  endforeach;
356
-
357
  // Close the file
358
  fclose( $fh );
359
-
360
  exit();
361
  }
362
 
@@ -369,86 +466,98 @@ class VisualFormBuilder_Export {
369
  */
370
  public function ajax_load_options() {
371
  global $wpdb, $export;
372
-
373
  if ( !isset( $_REQUEST['action'] ) )
374
  return;
375
-
376
  if ( $_REQUEST['action'] !== 'visual_form_builder_export_load_options' )
377
  return;
378
-
379
  $form_id = absint( $_REQUEST['id'] );
380
-
 
 
 
 
 
 
 
 
 
381
  $offset = '';
382
  $limit = 1000;
383
-
384
  if ( isset( $_REQUEST['count'] ) )
385
- $limit = absint( $_REQUEST['count'] );
386
  elseif ( isset( $_REQUEST['offset'] ) ) {
387
  $offset = absint( $_REQUEST['offset'] );
388
  $offset_num = $offset * 1000;
389
-
390
  if ( $offset >= 1 )
391
  $offset = "OFFSET $offset";
392
  }
393
-
394
  // Safe to get entries now
395
- $entries = $wpdb->get_results( "SELECT DISTINCT data FROM {$this->entries_table_name} WHERE form_id = $form_id LIMIT $limit $offset", ARRAY_A );
396
-
397
  // Return nothing if no entries found
398
  if ( !$entries ) {
399
  echo __( 'No entries to pull field names from.', 'visual-form-builder' );
400
  wp_die();
401
  }
402
-
403
  // Get columns
404
  $columns = $export->get_cols( $entries );
405
-
406
  // Get JSON data
407
  $data = json_decode( $columns, true );
408
-
409
  echo $this->build_options( $data );
410
-
411
  wp_die();
412
  }
413
 
414
  public function ajax_entries_count() {
415
  global $wpdb, $export;
416
-
417
  if ( !isset( $_REQUEST['action'] ) )
418
  return;
419
-
420
  if ( $_REQUEST['action'] !== 'visual_form_builder_export_entries_count' )
421
  return;
422
-
423
  $form_id = absint( $_REQUEST['id'] );
424
-
425
  echo $export->count_entries( $form_id );
426
-
427
  wp_die();
428
  }
429
 
430
  public function build_options( $data ) {
431
-
432
  $output = '';
433
-
434
  $array = array();
435
  foreach ( $data as $row ) :
436
  $array = array_merge( $row, $array );
437
  endforeach;
438
-
439
  $array = array_keys( $array );
440
  $array = array_values( array_merge( $this->default_cols, $array ) );
441
  $array = array_map( 'stripslashes', $array );
442
-
443
  foreach ( $array as $k => $v ) :
444
  $selected = ( in_array( $v, $this->default_cols ) ) ? ' checked="checked"' : '';
445
-
446
- $output .= sprintf( '<label for="vfb-display-entries-val-%1$d"><input name="entries_columns[]" class="vfb-display-entries-vals" id="vfb-display-entries-val-%1$d" type="checkbox" value="%2$s" %3$s> %2$s</label><br>', $k, $v, $selected );
 
 
 
447
  endforeach;
448
-
449
  return $output;
450
  }
451
-
452
  /**
453
  * Return the selected export type
454
  *
@@ -459,10 +568,10 @@ class VisualFormBuilder_Export {
459
  public function export_action() {
460
  if ( isset( $_REQUEST['vfb-content'] ) )
461
  return $_REQUEST['vfb-content'];
462
-
463
  return false;
464
  }
465
-
466
  /**
467
  * Determine which export process to run
468
  *
@@ -470,29 +579,29 @@ class VisualFormBuilder_Export {
470
  *
471
  */
472
  public function process_export_action() {
473
-
474
  $args = array();
475
-
476
  if ( !isset( $_REQUEST['vfb-content'] ) || 'entries' == $_REQUEST['vfb-content'] ) {
477
  $args['content'] = 'entries';
478
-
479
  $args['format'] = 'csv';
480
-
481
- if ( isset( $_REQUEST['form_id'] ) )
482
- $args['form_id'] = (int) $_REQUEST['form_id'];
483
-
484
  if ( isset( $_REQUEST['entries_start_date'] ) || isset( $_REQUEST['entries_end_date'] ) ) {
485
  $args['start_date'] = $_REQUEST['entries_start_date'];
486
  $args['end_date'] = $_REQUEST['entries_end_date'];
487
  }
488
-
489
  if ( isset( $_REQUEST['entries_columns'] ) )
490
  $args['fields'] = array_map( 'esc_html', $_REQUEST['entries_columns'] );
491
-
492
  if ( isset( $_REQUEST['entries_page'] ) )
493
  $args['page'] = absint( $_REQUEST['entries_page'] );
494
  }
495
-
496
  switch( $this->export_action() ) {
497
  case 'entries' :
498
  $this->export_entries( $args );
@@ -500,17 +609,17 @@ class VisualFormBuilder_Export {
500
  break;
501
  }
502
  }
503
-
504
  /**
505
  * Display Year/Month filter
506
- *
507
  * @since 1.7
508
  */
509
  public function months_dropdown() {
510
  global $wpdb, $wp_locale;
511
-
512
  $where = apply_filters( 'vfb_pre_get_entries', '' );
513
-
514
  $months = $wpdb->get_results( "
515
  SELECT DISTINCT YEAR( forms.date_submitted ) AS year, MONTH( forms.date_submitted ) AS month
516
  FROM $this->entries_table_name AS forms
@@ -522,14 +631,14 @@ class VisualFormBuilder_Export {
522
 
523
  if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
524
  return;
525
-
526
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
527
  ?>
528
  <?php
529
  foreach ( $months as $arc_row ) {
530
  if ( 0 == $arc_row->year )
531
  continue;
532
-
533
  $month = zeroise( $arc_row->month, 2 );
534
  $year = $arc_row->year;
535
 
@@ -542,4 +651,4 @@ class VisualFormBuilder_Export {
542
  <?php
543
  }
544
  }
545
- ?>
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
+ *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Export {
8
+
9
  public function __construct(){
10
  global $wpdb;
11
+
12
  // CSV delimiter
13
  $this->delimiter = apply_filters( 'vfb_csv_delimiter', ',' );
14
+
15
  // Setup our default columns
16
  $this->default_cols = array(
17
  'entries_id' => __( 'Entries ID' , 'visual-form-builder'),
22
  'sender_email' => __( 'Sender Email' , 'visual-form-builder'),
23
  'emails_to' => __( 'Emailed To' , 'visual-form-builder'),
24
  );
25
+
26
  // Setup global database table names
27
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
28
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
29
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
30
+
31
  // AJAX for loading new entry checkboxes
32
  add_action( 'wp_ajax_visual_form_builder_export_load_options', array( &$this, 'ajax_load_options' ) );
33
 
34
  // AJAX for getting entries count
35
  add_action( 'wp_ajax_visual_form_builder_export_entries_count', array( &$this, 'ajax_entries_count' ) );
36
+
37
  $this->process_export_action();
38
  }
39
+
40
  /**
41
  * Display the export form
42
  *
45
  */
46
  public function display(){
47
  global $wpdb;
48
+
49
  // Query to get all forms
50
  $order = sanitize_sql_orderby( 'form_id ASC' );
51
  $where = apply_filters( 'vfb_pre_get_forms_export', '' );
52
+ $forms = $wpdb->get_results( "SELECT form_id, form_key, form_title FROM $this->form_table_name WHERE 1=1 $where ORDER BY $order" );
53
+
54
  if ( !$forms ) :
55
  echo sprintf(
56
  '<div class="vfb-form-alpha-list"><h3 id="vfb-no-forms">You currently do not have any forms. Click on the <a href="%1$s">New Form</a> button to get started.</h3></div>',
57
  esc_url( admin_url( 'admin.php?page=vfb-add-new' ) )
58
  );
59
+
60
  return;
61
  endif;
62
+
63
  $entries_count = $this->count_entries( $forms[0]->form_id );
64
+
65
  // Return nothing if no entries found
66
  if ( !$entries_count ) :
67
  $no_entries = __( 'No entries to pull field names from.', 'visual-form-builder' );
68
  else :
69
+
70
  $limit = $entries_count > 1000 ? 1000 : $entries_count;
71
+
72
  // Safe to get entries now
73
+ $entries = $wpdb->get_results( $wpdb->prepare( "SELECT DISTINCT data FROM $this->entries_table_name WHERE form_id = %d AND entry_approved = 1 LIMIT %d", $forms[0]->form_id, $limit ), ARRAY_A );
74
+
75
  // Get columns
76
  $columns = $this->get_cols( $entries );
77
+
78
  // Get JSON data
79
  $data = json_decode( $columns, true );
80
  endif;
81
+
82
  ?>
83
  <form method="post" id="vfb-export">
84
  <p><?php _e( 'Backup and save some or all of your Visual Form Builder data.', 'visual-form-builder' ); ?></p>
85
  <p><?php _e( 'Once you have saved the file, you will be able to import Visual Form Builder Pro data from this site into another site.', 'visual-form-builder' ); ?></p>
86
  <h3><?php _e( 'Choose what to export', 'visual-form-builder' ); ?></h3>
87
+
88
  <p><label><input type="radio" name="vfb-content" value="all" disabled="disabled" /> <?php _e( 'All data', 'visual-form-builder' ); ?></label></p>
89
  <p class="description"><?php _e( 'This will contain all of your forms, fields, entries, and email design settings.', 'visual-form-builder' ); ?><br><strong>*<?php _e( 'Only available in Visual Form Builder Pro', 'visual-form-builder' ); ?>*</strong></p>
90
+
91
  <p><label><input type="radio" name="vfb-content" value="forms" disabled="disabled" /> <?php _e( 'Forms', 'visual-form-builder' ); ?></label></p>
92
  <p class="description"><?php _e( 'This will contain all of your forms, fields, and email design settings', 'visual-form-builder' ); ?>.<br><strong>*<?php _e( 'Only available in Visual Form Builder Pro', 'visual-form-builder' ); ?>*</strong></p>
93
+
94
  <p><label><input type="radio" name="vfb-content" value="entries" checked="checked" /> <?php _e( 'Entries', 'visual-form-builder' ); ?></label></p>
95
+
96
  <ul id="entries-filters" class="vfb-export-filters">
97
  <li><p class="description"><?php _e( 'This will export entries in either a .csv, .txt, or .xls and cannot be used with the Import. If you need to import entries on another site, please use the All data option above.', 'visual-form-builder' ); ?></p></li>
98
+ <!-- Format -->
99
  <li>
100
  <label class="vfb-export-label" for="format"><?php _e( 'Format', 'visual-form-builder' ); ?>:</label>
101
  <select name="format">
104
  <option value="xls" disabled="disabled"><?php _e( 'Excel (.xls) - Pro only', 'visual-form-builder' ); ?></option>
105
  </select>
106
  </li>
107
+ <!-- Forms -->
108
  <li>
109
+ <label class="vfb-export-label" for="form_id"><?php _e( 'Form', 'visual-form-builder' ); ?>:</label>
110
+ <select id="vfb-export-entries-forms" name="entries_form_id">
111
+ <?php
112
+ foreach ( $forms as $form ) :
113
+ echo sprintf(
114
+ '<option value="%1$d" id="%2$s">%3$s</option>',
115
+ $form->form_id,
116
+ $form->form_key,
117
+ stripslashes( $form->form_title )
118
+ );
119
+ endforeach;
120
+ ?>
121
  </select>
122
  </li>
123
+ <!-- Date Range -->
124
  <li>
125
  <label class="vfb-export-label"><?php _e( 'Date Range', 'visual-form-builder' ); ?>:</label>
126
  <select name="entries_start_date">
132
  <?php $this->months_dropdown(); ?>
133
  </select>
134
  </li>
135
+ <!-- Pages to Export -->
136
+ <?php $num_pages = ceil( $entries_count / 1000 ); ?>
137
+ <li id="vfb-export-entries-pages" style="display:<?php echo ( $entries_count > 1000 ) ? 'list-item' : 'none'; ?>">
 
 
138
  <label class="vfb-export-label"><?php _e( 'Page to Export', 'visual-form-builder' ); ?>:</label>
139
  <select id="vfb-export-entries-rows" name="entries_page">
140
  <?php
145
  </select>
146
  <p class="description"><?php _e( 'A large number of entries have been detected for this form. Only 1000 entries can be exported at a time.', 'visual-form-builder' ); ?></p>
147
  </li>
148
+ <!-- Fields -->
 
 
 
149
  <li>
150
  <label class="vfb-export-label"><?php _e( 'Fields', 'visual-form-builder' ); ?>:</label>
151
+
152
  <p><a id="vfb-export-select-all" href="#"><?php _e( 'Select All', 'visual-form-builder' ); ?></a></p>
153
+
154
  <div id="vfb-export-entries-fields">
155
  <?php
156
  if ( isset( $no_entries ) )
161
  </div>
162
  </li>
163
  </ul>
164
+
165
  <?php submit_button( __( 'Download Export File', 'visual-form-builder' ) ); ?>
166
  </form>
167
  <?php
168
  }
169
+
170
+
171
  /**
172
  * Build the entries export array
173
  *
177
  */
178
  public function export_entries( $args = array() ) {
179
  global $wpdb;
180
+
181
  // Set inital fields as a string
182
  $initial_fields = implode( ',', $this->default_cols );
183
+
184
+ $defaults = array(
185
  'content' => 'entries',
186
  'format' => 'csv',
187
  'form_id' => 0,
188
+ 'start_date' => false,
189
  'end_date' => false,
190
  'page' => 0,
191
+ 'fields' => $initial_fields,
192
  );
193
+
194
  $args = wp_parse_args( $args, $defaults );
195
+
196
  $where = '';
197
+
198
  $limit = '0,1000';
199
+
200
  if ( 'entries' == $args['content'] ) {
201
  if ( 0 !== $args['form_id'] )
202
  $where .= $wpdb->prepare( " AND form_id = %d", $args['form_id'] );
203
+
204
  if ( $args['start_date'] )
205
  $where .= $wpdb->prepare( " AND date_submitted >= %s", date( 'Y-m-d', strtotime( $args['start_date'] ) ) );
206
+
207
  if ( $args['end_date'] )
208
+ $where .= $wpdb->prepare( " AND date_submitted < %s", date( 'Y-m-d', strtotime( '+1 month', strtotime( $args['end_date'] ) ) ) );
209
+
210
  if ( $args['page'] > 1 )
211
  $limit = ( $args['page'] - 1 ) * 1000 . ',1000';
212
  }
213
+
214
+ $form_id = ( 0 !== $args['form_id'] ) ? $args['form_id'] : null;
215
+
216
+ $entries = $wpdb->get_results( "SELECT * FROM $this->entries_table_name WHERE entry_approved = 1 $where ORDER BY entries_id ASC LIMIT $limit" );
217
  $form_key = $wpdb->get_var( $wpdb->prepare( "SELECT form_key, form_title FROM $this->form_table_name WHERE form_id = %d", $args['form_id'] ) );
218
  $form_title = $wpdb->get_var( null, 1 );
219
+
220
  $sitename = sanitize_key( get_bloginfo( 'name' ) );
221
  if ( ! empty($sitename) ) $sitename .= '.';
222
  $filename = $sitename . 'vfb.' . "$form_key." . date( 'Y-m-d' ) . ".{$args['format']}";
223
+
224
  $content_type = 'text/csv';
225
+
226
  // Return nothing if no entries found
227
  if ( !$entries )
228
  return;
229
+
230
  header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
231
  header( 'Content-Description: File Transfer' );
232
  header( 'Content-Disposition: attachment; filename=' . $filename );
233
  header( "Content-Type: $content_type; charset=" . get_option( 'blog_charset' ), true );
234
  header( 'Expires: 0' );
235
  header( 'Pragma: public' );
236
+
237
  // Get columns
238
  $columns = $this->get_cols( $entries );
239
+
240
  // Get JSON data
241
  $data = json_decode( $columns, true );
242
+
243
  // Build array of fields to display
244
  $fields = !is_array( $args['fields'] ) ? array_map( 'trim', explode( ',', $args['fields'] ) ) : $args['fields'];
245
+
246
  // Strip slashes from header values
247
  $fields = array_map( 'stripslashes', $fields );
248
+
249
  // Build CSV
250
  $this->csv( $data, $fields );
251
  }
252
+
253
  /**
254
  * Build the entries as JSON
255
  *
258
  * @param array $entries The resulting database query for entries
259
  */
260
  public function get_cols( $entries ) {
261
+
262
  // Initialize row index at 0
263
  $row = 0;
264
  $output = array();
265
+
266
  // Loop through all entries
267
  foreach ( $entries as $entry ) :
268
+
269
  foreach ( $entry as $key => $value ) :
270
+
271
  switch ( $key ) {
272
  case 'entries_id':
273
  case 'date_submitted':
277
  case 'sender_email':
278
  $output[ $row ][ stripslashes( $this->default_cols[ $key ] ) ] = $value;
279
  break;
280
+
281
  case 'emails_to':
282
  $output[ $row ][ stripslashes( $this->default_cols[ $key ] ) ] = implode( ',', maybe_unserialize( $value ) );
283
  break;
284
+
285
  case 'data':
286
  // Unserialize value only if it was serialized
287
  $fields = maybe_unserialize( $value );
288
+
289
  // Loop through our submitted data
290
  foreach ( $fields as $field_key => $field_value ) :
291
  // Cast each array as an object
292
  $obj = (object) $field_value;
293
+
294
  switch ( $obj->type ) {
295
  case 'fieldset' :
296
  case 'section' :
300
  case 'secret' :
301
  case 'submit' :
302
  break;
303
+
304
  default :
305
+ $output[ $row ][ stripslashes( $obj->name ) . "{{{$obj->id}}}" ] = $obj->value;
306
  break;
307
  } //end $obj switch
308
  endforeach; // end $fields loop
311
  endforeach; // end $entry loop
312
  $row++;
313
  endforeach; //end $entries loop
314
+
315
+ return json_encode( $output );
316
  }
317
 
318
  public function count_entries( $form_id ) {
319
  global $wpdb;
320
+
321
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $this->entries_table_name WHERE form_id = %d", $form_id ) );
322
+
323
  if ( !$count )
324
  return 0;
325
+
326
  return $count;
327
  }
328
+
329
+ public function get_form_IDs( $form_id = null ) {
330
+ global $wpdb;
331
+
332
+ $where = '';
333
+
334
+ if ( $form_id )
335
+ $where .= $wpdb->prepare( " AND form_id = %d", $form_id );
336
+
337
+ $form_ids = $wpdb->get_col( "SELECT DISTINCT form_id FROM $this->form_table_name WHERE 1=1 $where" );
338
+
339
+ if ( !$form_ids )
340
+ return;
341
+
342
+ return $form_ids;
343
+ }
344
+
345
+ public function get_field_IDs( $form_id = null ) {
346
+ global $wpdb;
347
+
348
+ $where = '';
349
+
350
+ if ( $form_id )
351
+ $where .= $wpdb->prepare( " AND form_id = %d", $form_id );
352
+
353
+ $field_ids = $wpdb->get_col( "SELECT DISTINCT field_id FROM $this->field_table_name WHERE 1=1 $where" );
354
+
355
+ if ( !$field_ids )
356
+ return;
357
+
358
+ return $field_ids;
359
+ }
360
+
361
+ public function get_entry_IDs( $form_id = null ) {
362
+ global $wpdb;
363
+
364
+ $where = '';
365
+
366
+ if ( $form_id ) :
367
+ $where .= $wpdb->prepare( " AND form_id = %d", $form_id );
368
+
369
+ $count = $this->count_entries( $form_id );
370
+ $where .= " LIMIT $count";
371
+ endif;
372
+
373
+
374
+
375
+ $entry_ids = $wpdb->get_col( "SELECT DISTINCT entries_id FROM $this->entries_table_name WHERE entry_approved = 1 $where" );
376
+
377
+ if ( !$entry_ids )
378
+ return;
379
+
380
+ return $entry_ids;
381
+ }
382
+
383
+ public function get_form_design_IDs( $form_id = null ) {
384
+ global $wpdb;
385
+
386
+ $where = '';
387
+
388
+ if ( $form_id )
389
+ $where .= $wpdb->prepare( " AND form_id = %d", $form_id );
390
+
391
+ $design_ids = $wpdb->get_col( "SELECT DISTINCT design_id FROM {$this->design_table_name} WHERE 1=1 $where" );
392
+
393
+ if ( !$design_ids )
394
+ return;
395
+
396
+ return $design_ids;
397
+ }
398
+
399
+ public function get_payments_IDs( $form_id = null ) {
400
+ global $wpdb;
401
+
402
+ $where = '';
403
+
404
+ if ( $form_id )
405
+ $where .= $wpdb->prepare( " AND form_id = %d", $form_id );
406
+
407
+ $payments_ids = $wpdb->get_col( "SELECT DISTINCT payment_id FROM {$this->payment_table_name} WHERE 1=1 $where" );
408
+
409
+ if ( !$payments_ids )
410
+ return;
411
+
412
+ return $payments_ids;
413
+ }
414
+
415
  /**
416
  * Return the entries data formatted for CSV
417
  *
423
  public function csv( $data, $fields ) {
424
  // Open file with PHP wrapper
425
  $fh = @fopen( 'php://output', 'w' );
426
+
427
+ $rows = $fields_clean = $fields_header = array();
428
+
 
 
 
429
  // Decode special characters
430
  foreach ( $fields as $field ) :
431
+ // Strip unique ID for a clean header
432
+ $search = preg_replace( '/{{(\d+)}}/', '', $field );
433
+ $fields_header[] = $search;
434
+
435
+ // Field with unique ID to use as matching data
436
  $fields_clean[] = wp_specialchars_decode( $field, ENT_QUOTES );
437
  endforeach;
438
+
439
+ // Build headers
440
+ fputcsv( $fh, $fields_header, $this->delimiter );
441
+
442
+ // Build table rows and cells
443
  foreach ( $data as $row ) :
444
+
445
  foreach ( $fields_clean as $label ) {
446
  $label = wp_specialchars_decode( $label );
447
  $rows[ $label ] = ( isset( $row[ $label ] ) && in_array( $label, $fields_clean ) ) ? $row[ $label ] : '';
448
  }
449
+
450
  fputcsv( $fh, $rows, $this->delimiter );
451
+
452
  endforeach;
453
+
454
  // Close the file
455
  fclose( $fh );
456
+
457
  exit();
458
  }
459
 
466
  */
467
  public function ajax_load_options() {
468
  global $wpdb, $export;
469
+
470
  if ( !isset( $_REQUEST['action'] ) )
471
  return;
472
+
473
  if ( $_REQUEST['action'] !== 'visual_form_builder_export_load_options' )
474
  return;
475
+
476
  $form_id = absint( $_REQUEST['id'] );
477
+
478
+ // Safe to get entries now
479
+ $entry_ids = $this->get_entry_IDs( $form_id );
480
+
481
+ // Return nothing if no entries found
482
+ if ( !$entry_ids ) {
483
+ echo __( 'No entries to pull field names from.', 'visual-form-builder-pro' );
484
+ wp_die();
485
+ }
486
+
487
  $offset = '';
488
  $limit = 1000;
489
+
490
  if ( isset( $_REQUEST['count'] ) )
491
+ $limit = ( $_REQUEST['count'] < 1000 ) ? absint( $_REQUEST['count'] ) : 1000;
492
  elseif ( isset( $_REQUEST['offset'] ) ) {
493
  $offset = absint( $_REQUEST['offset'] );
494
  $offset_num = $offset * 1000;
495
+
496
  if ( $offset >= 1 )
497
  $offset = "OFFSET $offset";
498
  }
499
+
500
  // Safe to get entries now
501
+ $entries = $wpdb->get_results( "SELECT DISTINCT data FROM {$this->entries_table_name} WHERE form_id = $form_id AND entry_approved = 1 LIMIT $limit $offset", ARRAY_A );
502
+
503
  // Return nothing if no entries found
504
  if ( !$entries ) {
505
  echo __( 'No entries to pull field names from.', 'visual-form-builder' );
506
  wp_die();
507
  }
508
+
509
  // Get columns
510
  $columns = $export->get_cols( $entries );
511
+
512
  // Get JSON data
513
  $data = json_decode( $columns, true );
514
+
515
  echo $this->build_options( $data );
516
+
517
  wp_die();
518
  }
519
 
520
  public function ajax_entries_count() {
521
  global $wpdb, $export;
522
+
523
  if ( !isset( $_REQUEST['action'] ) )
524
  return;
525
+
526
  if ( $_REQUEST['action'] !== 'visual_form_builder_export_entries_count' )
527
  return;
528
+
529
  $form_id = absint( $_REQUEST['id'] );
530
+
531
  echo $export->count_entries( $form_id );
532
+
533
  wp_die();
534
  }
535
 
536
  public function build_options( $data ) {
537
+
538
  $output = '';
539
+
540
  $array = array();
541
  foreach ( $data as $row ) :
542
  $array = array_merge( $row, $array );
543
  endforeach;
544
+
545
  $array = array_keys( $array );
546
  $array = array_values( array_merge( $this->default_cols, $array ) );
547
  $array = array_map( 'stripslashes', $array );
548
+
549
  foreach ( $array as $k => $v ) :
550
  $selected = ( in_array( $v, $this->default_cols ) ) ? ' checked="checked"' : '';
551
+
552
+ // Strip unique ID for a clean list
553
+ $search = preg_replace( '/{{(\d+)}}/', '', $v );
554
+
555
+ $output .= sprintf( '<label for="vfb-display-entries-val-%1$d"><input name="entries_columns[]" class="vfb-display-entries-vals" id="vfb-display-entries-val-%1$d" type="checkbox" value="%4$s" %3$s> %2$s</label><br>', $k, $search, $selected, $v );
556
  endforeach;
557
+
558
  return $output;
559
  }
560
+
561
  /**
562
  * Return the selected export type
563
  *
568
  public function export_action() {
569
  if ( isset( $_REQUEST['vfb-content'] ) )
570
  return $_REQUEST['vfb-content'];
571
+
572
  return false;
573
  }
574
+
575
  /**
576
  * Determine which export process to run
577
  *
579
  *
580
  */
581
  public function process_export_action() {
582
+
583
  $args = array();
584
+
585
  if ( !isset( $_REQUEST['vfb-content'] ) || 'entries' == $_REQUEST['vfb-content'] ) {
586
  $args['content'] = 'entries';
587
+
588
  $args['format'] = 'csv';
589
+
590
+ if ( isset( $_REQUEST['entries_form_id'] ) )
591
+ $args['form_id'] = (int) $_REQUEST['entries_form_id'];
592
+
593
  if ( isset( $_REQUEST['entries_start_date'] ) || isset( $_REQUEST['entries_end_date'] ) ) {
594
  $args['start_date'] = $_REQUEST['entries_start_date'];
595
  $args['end_date'] = $_REQUEST['entries_end_date'];
596
  }
597
+
598
  if ( isset( $_REQUEST['entries_columns'] ) )
599
  $args['fields'] = array_map( 'esc_html', $_REQUEST['entries_columns'] );
600
+
601
  if ( isset( $_REQUEST['entries_page'] ) )
602
  $args['page'] = absint( $_REQUEST['entries_page'] );
603
  }
604
+
605
  switch( $this->export_action() ) {
606
  case 'entries' :
607
  $this->export_entries( $args );
609
  break;
610
  }
611
  }
612
+
613
  /**
614
  * Display Year/Month filter
615
+ *
616
  * @since 1.7
617
  */
618
  public function months_dropdown() {
619
  global $wpdb, $wp_locale;
620
+
621
  $where = apply_filters( 'vfb_pre_get_entries', '' );
622
+
623
  $months = $wpdb->get_results( "
624
  SELECT DISTINCT YEAR( forms.date_submitted ) AS year, MONTH( forms.date_submitted ) AS month
625
  FROM $this->entries_table_name AS forms
631
 
632
  if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) )
633
  return;
634
+
635
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
636
  ?>
637
  <?php
638
  foreach ( $months as $arc_row ) {
639
  if ( 0 == $arc_row->year )
640
  continue;
641
+
642
  $month = zeroise( $arc_row->month, 2 );
643
  $year = $arc_row->year;
644
 
651
  <?php
652
  }
653
  }
654
+ ?>
includes/class-forms-list.php CHANGED
@@ -1,33 +1,33 @@
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
- *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Forms_List extends WP_List_Table {
8
-
9
  function __construct(){
10
  global $status, $page, $wpdb;
11
-
12
  // Setup global database table names
13
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
14
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
15
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
16
-
17
  // Set parent defaults
18
  parent::__construct( array(
19
  'singular' => 'form',
20
  'plural' => 'forms',
21
  'ajax' => false
22
  ) );
23
-
24
  // Handle our bulk actions
25
  $this->process_bulk_action();
26
  }
27
 
28
  /**
29
  * Display column names
30
- *
31
  * @since 1.2
32
  * @returns $item string Column name
33
  */
@@ -39,32 +39,35 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
39
  return $item[ $column_name ];
40
  }
41
  }
42
-
43
  /**
44
  * Builds the on:hover links for the Form column
45
- *
46
  * @since 1.2
47
  */
48
  function column_form_title( $item ){
49
-
50
  $actions = array();
51
-
52
  // Edit Form
53
  $form_title = sprintf( '<strong><a href="?page=%s&form=%s" id="%3$s" class="view-form">%s</a></strong>', $_REQUEST['page'], $item['form_id'], $item['form_title'] );
54
  $actions['edit'] = sprintf( '<a href="?page=%s&action=%s&form=%s" id="%3$s" class="view-form">%s</a>', $_REQUEST['page'], 'edit', $item['form_id'], __( 'Edit', 'visual-form-builder' ) );
55
 
 
 
 
56
  // Delete Form
57
- $actions['delete'] = sprintf( '<a href="?page=%s&action=%s&form=%s" id="%3$s" class="view-form">%s</a>', $_REQUEST['page'], 'delete', $item['form_id'], __( 'Delete', 'visual-form-builder' ) );
58
-
59
  return sprintf( '%1$s %2$s', $form_title, $this->row_actions( $actions ) );
60
  }
61
-
62
  function column_entries( $item ) {
63
- $this->comments_bubble( $item['form_id'], $item['entries'] );
64
  }
65
-
66
  function comments_bubble( $form_id, $count ) {
67
-
68
  echo sprintf(
69
  '<div class="entries-count-wrapper"><a href="%1$s" title="%2$s" class="vfb-meta-entries-total"><span class="entries-count">%4$s</span></a> %3$s</div>',
70
  esc_url( add_query_arg( array( 'form-filter' => $form_id ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
@@ -72,10 +75,10 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
72
  __( 'Total', 'visual-form-builder-pro' ),
73
  number_format_i18n( $count['total'] )
74
  );
75
-
76
  if ( $count['today'] )
77
  echo '<strong>';
78
-
79
  echo sprintf(
80
  '<div class="entries-count-wrapper"><a href="%1$s" title="%2$s" class="vfb-meta-entries-total"><span class="entries-count">%4$s</span></a> %3$s</div>',
81
  esc_url( add_query_arg( array( 'form-filter' => $form_id, 'today' => 1 ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
@@ -83,23 +86,23 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
83
  __( 'Today', 'visual-form-builder-pro' ),
84
  number_format_i18n( $count['today'] )
85
  );
86
-
87
  if ( $count['today'] )
88
  echo '</strong>';
89
  }
90
-
91
  /**
92
  * Used for checkboxes and bulk editing
93
- *
94
  * @since 1.2
95
  */
96
  function column_cb( $item ){
97
  return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['form_id'] );
98
  }
99
-
100
  /**
101
  * Builds the actual columns
102
- *
103
  * @since 1.2
104
  */
105
  function get_columns(){
@@ -109,242 +112,242 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
109
  'form_id' => __( 'Form ID' , 'visual-form-builder'),
110
  'entries' => __( 'Entries', 'visual-form-builder' ),
111
  );
112
-
113
  return $columns;
114
  }
115
-
116
  /**
117
  * A custom function to get the entries and sort them
118
- *
119
  * @since 1.2
120
  * @returns array() $cols SQL results
121
  */
122
  function get_forms( $orderby = 'form_id', $order = 'ASC', $per_page, $offset = 0, $search = '' ){
123
  global $wpdb;
124
-
125
  // Set OFFSET for pagination
126
  $offset = ( $offset > 0 ) ? "OFFSET $offset" : '';
127
-
128
  $where = apply_filters( 'vfb_pre_get_entries', '' );
129
-
130
  // If the form filter dropdown is used
131
  if ( $this->current_filter_action() )
132
  $where .= ' AND forms.form_id = ' . $this->current_filter_action();
133
-
134
  $sql_order = sanitize_sql_orderby( "$orderby $order" );
135
  $cols = $wpdb->get_results( "SELECT forms.form_id, forms.form_title FROM $this->form_table_name AS forms WHERE 1=1 $where $search ORDER BY $sql_order LIMIT $per_page $offset" );
136
-
137
  return $cols;
138
  }
139
-
140
  /**
141
  * Get the number of entries for use with entry statuses
142
- *
143
  * @since 2.1
144
  * @returns array $stats Counts of different entry types
145
  */
146
  function get_entries_count( $form_id ) {
147
  global $wpdb;
148
-
149
  $entries = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( * ) FROM $this->entries_table_name AS entries WHERE entries.entry_approved = 1 AND form_id = %d", $form_id ) );
150
-
151
  return $entries;
152
  }
153
-
154
  /**
155
  * Get the number of entries for use with entry statuses
156
- *
157
  * @since 2.1
158
  * @returns array $stats Counts of different entry types
159
  */
160
  function get_entries_today_count( $form_id ) {
161
  global $wpdb;
162
-
163
  $entries = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( * ) FROM $this->entries_table_name AS entries WHERE entries.entry_approved = 1 AND form_id = %d AND date_submitted >= curdate()", $form_id ) );
164
-
165
  return $entries;
166
  }
167
-
168
  /**
169
  * Get the number of forms
170
- *
171
  * @since 2.2.7
172
  * @returns int $count Form count
173
  */
174
  function get_forms_count() {
175
  global $wpdb;
176
-
177
  $count = $wpdb->get_var( "SELECT COUNT(*) FROM $this->form_table_name" );
178
-
179
  return $count;
180
  }
181
 
182
  /**
183
  * Setup which columns are sortable. Default is by Date.
184
- *
185
  * @since 1.2
186
  * @returns array() $sortable_columns Sortable columns
187
  */
188
- function get_sortable_columns() {
189
  $sortable_columns = array(
190
  'id' => array( 'id', false ),
191
  'form_id' => array( 'form_id', false ),
192
  'form_title' => array( 'form_title', true ),
193
  'entries' => array( 'entries_count', false ),
194
  );
195
-
196
  return $sortable_columns;
197
  }
198
-
199
  /**
200
  * Define our bulk actions
201
- *
202
  * @since 1.2
203
  * @returns array() $actions Bulk actions
204
  */
205
  function get_bulk_actions() {
206
  $actions = array();
207
-
208
  // Build the row actions
209
  $actions['delete'] = __( 'Delete Permanently', 'visual-form-builder' );
210
-
211
  return $actions;
212
  }
213
-
214
  /**
215
  * Process ALL actions on the Entries screen, not only Bulk Actions
216
- *
217
  * @since 1.2
218
  */
219
  function process_bulk_action() {
220
  global $wpdb;
221
-
222
  $form_id = '';
223
-
224
- // Set the Entry ID array
225
  if ( isset( $_REQUEST['entry'] ) ) {
226
  if ( is_array( $_REQUEST['entry'] ) )
227
  $form_id = $_REQUEST['entry'];
228
  else
229
  $form_id = (array) $_REQUEST['entry'];
230
  }
231
-
232
- switch( $this->current_action() ) {
233
  case 'trash' :
234
  foreach ( $form_id as $id ) {
235
  $id = absint( $id );
236
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $id ) );
237
  }
238
  break;
239
-
240
  case 'delete' :
241
  foreach ( $form_id as $id ) {
242
  $id = absint( $id );
243
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
244
  }
245
  break;
246
-
247
  }
248
  }
249
-
250
  /**
251
  * Set our forms filter action
252
- *
253
  * @since 1.2
254
  * @returns int Form ID
255
  */
256
  function current_filter_action() {
257
  if ( isset( $_REQUEST['form-filter'] ) && -1 != $_REQUEST['form-filter'] )
258
  return $_REQUEST['form-filter'];
259
-
260
  return false;
261
  }
262
-
263
  /**
264
  * Display Search box
265
- *
266
  * @since 1.4
267
  * @returns html Search Form
268
  */
269
  function search_box( $text, $input_id ) {
270
  parent::search_box( $text, $input_id );
271
  }
272
-
273
  /**
274
  * Prepares our data for display
275
- *
276
  * @since 1.2
277
  */
278
  function prepare_items() {
279
  global $wpdb;
280
-
281
  // get the current user ID
282
  $user = get_current_user_id();
283
-
284
  // get the current admin screen
285
  $screen = get_current_screen();
286
-
287
  // retrieve the "per_page" option
288
  $screen_option = $screen->get_option( 'per_page', 'option' );
289
-
290
  // retrieve the value of the option stored for the current user
291
  $per_page = get_user_meta( $user, $screen_option, true );
292
-
293
  // get the default value if none is set
294
  if ( empty ( $per_page) || $per_page < 1 )
295
  $per_page = $screen->get_option( 'per_page', 'default' );
296
-
297
  // Get the date/time format that is saved in the options table
298
  $date_format = get_option( 'date_format' );
299
  $time_format = get_option( 'time_format' );
300
-
301
  // What page are we looking at?
302
  $current_page = $this->get_pagenum();
303
-
304
  // Use offset for pagination
305
  $offset = ( $current_page - 1 ) * $per_page;
306
-
307
  // Get column headers
308
  $columns = $this->get_columns();
309
  $hidden = array();
310
-
311
  // Get sortable columns
312
  $sortable = $this->get_sortable_columns();
313
-
314
  // Build the column headers
315
  $this->_column_headers = array($columns, $hidden, $sortable);
316
 
317
  // Get entries search terms
318
  $search_terms = ( !empty( $_REQUEST['s'] ) ) ? explode( ' ', $_REQUEST['s'] ) : array();
319
-
320
  $searchand = $search = '';
321
  // Loop through search terms and build query
322
  foreach( $search_terms as $term ) {
323
  $term = esc_sql( like_escape( $term ) );
324
-
325
  $search .= "{$searchand}((forms.form_title LIKE '%{$term}%') OR (forms.form_key LIKE '%{$term}%') OR (forms.form_email_subject LIKE '%{$term}%'))";
326
  $searchand = ' AND ';
327
  }
328
-
329
  $search = ( !empty($search) ) ? " AND ({$search}) " : '';
330
-
331
  // Set our ORDER BY and ASC/DESC to sort the entries
332
  $orderby = ( !empty( $_REQUEST['orderby'] ) ) ? $_REQUEST['orderby'] : 'form_id';
333
  $order = ( !empty( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : 'desc';
334
-
335
  // Get the sorted entries
336
  $forms = $this->get_forms( $orderby, $order, $per_page, $offset, $search );
337
-
338
  $data = array();
339
-
340
  // Loop trough the entries and setup the data to be displayed for each row
341
  foreach ( $forms as $form ) :
342
-
343
  $entries_counts = array(
344
  'total' => $this->get_entries_count( $form->form_id ),
345
  'today' => $this->get_entries_today_count( $form->form_id ),
346
  );
347
-
348
  $data[] = array(
349
  'id' => $form->form_id,
350
  'form_id' => $form->form_id,
@@ -352,13 +355,13 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
352
  'entries' => $entries_counts,
353
  );
354
  endforeach;
355
-
356
  // How many forms do we have?
357
  $total_items = $this->get_forms_count();
358
-
359
  // Add sorted data to the items property
360
  $this->items = $data;
361
-
362
  // Register our pagination
363
  $this->set_pagination_args( array(
364
  'total_items' => $total_items,
@@ -366,7 +369,7 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
366
  'total_pages' => ceil( $total_items / $per_page )
367
  ) );
368
  }
369
-
370
  /**
371
  * Display the pagination.
372
  * Customize default function to work with months and form drop down filters
@@ -375,7 +378,7 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
375
  * @access protected
376
  */
377
  function pagination( $which ) {
378
-
379
  if ( empty( $this->_pagination_args ) )
380
  return;
381
 
@@ -390,10 +393,10 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
390
  $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
391
 
392
  $page_links = array();
393
-
394
  // Added to pick up the months dropdown
395
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
396
-
397
  $disable_first = $disable_last = '';
398
  if ( $current == 1 )
399
  $disable_first = ' disabled';
@@ -406,7 +409,7 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
406
  esc_url( remove_query_arg( 'paged', $current_url ) ),
407
  '&laquo;'
408
  );
409
-
410
  // Modified the add_query_args to include my custom dropdowns
411
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
412
  'prev-page' . $disable_first,
@@ -433,7 +436,7 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
433
  esc_url( add_query_arg( array( 'paged' => min( $total_pages, $current+1 ), 'm' => $m, 'form-filter' => $this->current_filter_action() ), $current_url ) ),
434
  '&rsaquo;'
435
  );
436
-
437
  // Modified the add_query_args to include my custom dropdowns
438
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
439
  'last-page' . $disable_last,
@@ -456,6 +459,6 @@ class VisualFormBuilder_Forms_List extends WP_List_Table {
456
 
457
  echo $this->_pagination;
458
  }
459
-
460
  }
461
  ?>
1
  <?php
2
  /**
3
  * Class that builds our Entries table
4
+ *
5
  * @since 1.2
6
  */
7
  class VisualFormBuilder_Forms_List extends WP_List_Table {
8
+
9
  function __construct(){
10
  global $status, $page, $wpdb;
11
+
12
  // Setup global database table names
13
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
14
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
15
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
16
+
17
  // Set parent defaults
18
  parent::__construct( array(
19
  'singular' => 'form',
20
  'plural' => 'forms',
21
  'ajax' => false
22
  ) );
23
+
24
  // Handle our bulk actions
25
  $this->process_bulk_action();
26
  }
27
 
28
  /**
29
  * Display column names
30
+ *
31
  * @since 1.2
32
  * @returns $item string Column name
33
  */
39
  return $item[ $column_name ];
40
  }
41
  }
42
+
43
  /**
44
  * Builds the on:hover links for the Form column
45
+ *
46
  * @since 1.2
47
  */
48
  function column_form_title( $item ){
49
+
50
  $actions = array();
51
+
52
  // Edit Form
53
  $form_title = sprintf( '<strong><a href="?page=%s&form=%s" id="%3$s" class="view-form">%s</a></strong>', $_REQUEST['page'], $item['form_id'], $item['form_title'] );
54
  $actions['edit'] = sprintf( '<a href="?page=%s&action=%s&form=%s" id="%3$s" class="view-form">%s</a>', $_REQUEST['page'], 'edit', $item['form_id'], __( 'Edit', 'visual-form-builder' ) );
55
 
56
+ // Duplicate Form
57
+ $actions['copy'] = sprintf( '<a href="%s&action=%s&form=%s" id="%3$s" class="view-form">%s</a>', wp_nonce_url( admin_url( 'admin.php?page=visual-form-builder' ), 'copy-form-' . $item['form_id'] ), 'copy_form', $item['form_id'], __( 'Duplicate', 'visual-form-builder' ) );
58
+
59
  // Delete Form
60
+ $actions['delete'] = sprintf( '<a href="%s&action=%s&form=%s" id="%3$s" class="view-form">%s</a>', wp_nonce_url( admin_url( 'admin.php?page=visual-form-builder' ), 'delete-form-' . $item['form_id'] ), 'delete_form', $item['form_id'], __( 'Delete', 'visual-form-builder' ) );
61
+
62
  return sprintf( '%1$s %2$s', $form_title, $this->row_actions( $actions ) );
63
  }
64
+
65
  function column_entries( $item ) {
66
+ $this->comments_bubble( $item['form_id'], $item['entries'] );
67
  }
68
+
69
  function comments_bubble( $form_id, $count ) {
70
+
71
  echo sprintf(
72
  '<div class="entries-count-wrapper"><a href="%1$s" title="%2$s" class="vfb-meta-entries-total"><span class="entries-count">%4$s</span></a> %3$s</div>',
73
  esc_url( add_query_arg( array( 'form-filter' => $form_id ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
75
  __( 'Total', 'visual-form-builder-pro' ),
76
  number_format_i18n( $count['total'] )
77
  );
78
+
79
  if ( $count['today'] )
80
  echo '<strong>';
81
+
82
  echo sprintf(
83
  '<div class="entries-count-wrapper"><a href="%1$s" title="%2$s" class="vfb-meta-entries-total"><span class="entries-count">%4$s</span></a> %3$s</div>',
84
  esc_url( add_query_arg( array( 'form-filter' => $form_id, 'today' => 1 ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
86
  __( 'Today', 'visual-form-builder-pro' ),
87
  number_format_i18n( $count['today'] )
88
  );
89
+
90
  if ( $count['today'] )
91
  echo '</strong>';
92
  }
93
+
94
  /**
95
  * Used for checkboxes and bulk editing
96
+ *
97
  * @since 1.2
98
  */
99
  function column_cb( $item ){
100
  return sprintf( '<input type="checkbox" name="%1$s[]" value="%2$s" />', $this->_args['singular'], $item['form_id'] );
101
  }
102
+
103
  /**
104
  * Builds the actual columns
105
+ *
106
  * @since 1.2
107
  */
108
  function get_columns(){
112
  'form_id' => __( 'Form ID' , 'visual-form-builder'),
113
  'entries' => __( 'Entries', 'visual-form-builder' ),
114
  );
115
+
116
  return $columns;
117
  }
118
+
119
  /**
120
  * A custom function to get the entries and sort them
121
+ *
122
  * @since 1.2
123
  * @returns array() $cols SQL results
124
  */
125
  function get_forms( $orderby = 'form_id', $order = 'ASC', $per_page, $offset = 0, $search = '' ){
126
  global $wpdb;
127
+
128
  // Set OFFSET for pagination
129
  $offset = ( $offset > 0 ) ? "OFFSET $offset" : '';
130
+
131
  $where = apply_filters( 'vfb_pre_get_entries', '' );
132
+
133
  // If the form filter dropdown is used
134
  if ( $this->current_filter_action() )
135
  $where .= ' AND forms.form_id = ' . $this->current_filter_action();
136
+
137
  $sql_order = sanitize_sql_orderby( "$orderby $order" );
138
  $cols = $wpdb->get_results( "SELECT forms.form_id, forms.form_title FROM $this->form_table_name AS forms WHERE 1=1 $where $search ORDER BY $sql_order LIMIT $per_page $offset" );
139
+
140
  return $cols;
141
  }
142
+
143
  /**
144
  * Get the number of entries for use with entry statuses
145
+ *
146
  * @since 2.1
147
  * @returns array $stats Counts of different entry types
148
  */
149
  function get_entries_count( $form_id ) {
150
  global $wpdb;
151
+
152
  $entries = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( * ) FROM $this->entries_table_name AS entries WHERE entries.entry_approved = 1 AND form_id = %d", $form_id ) );
153
+
154
  return $entries;
155
  }
156
+
157
  /**
158
  * Get the number of entries for use with entry statuses
159
+ *
160
  * @since 2.1
161
  * @returns array $stats Counts of different entry types
162
  */
163
  function get_entries_today_count( $form_id ) {
164
  global $wpdb;
165
+
166
  $entries = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( * ) FROM $this->entries_table_name AS entries WHERE entries.entry_approved = 1 AND form_id = %d AND date_submitted >= curdate()", $form_id ) );
167
+
168
  return $entries;
169
  }
170
+
171
  /**
172
  * Get the number of forms
173
+ *
174
  * @since 2.2.7
175
  * @returns int $count Form count
176
  */
177
  function get_forms_count() {
178
  global $wpdb;
179
+
180
  $count = $wpdb->get_var( "SELECT COUNT(*) FROM $this->form_table_name" );
181
+
182
  return $count;
183
  }
184
 
185
  /**
186
  * Setup which columns are sortable. Default is by Date.
187
+ *
188
  * @since 1.2
189
  * @returns array() $sortable_columns Sortable columns
190
  */
191
+ function get_sortable_columns() {
192
  $sortable_columns = array(
193
  'id' => array( 'id', false ),
194
  'form_id' => array( 'form_id', false ),
195
  'form_title' => array( 'form_title', true ),
196
  'entries' => array( 'entries_count', false ),
197
  );
198
+
199
  return $sortable_columns;
200
  }
201
+
202
  /**
203
  * Define our bulk actions
204
+ *
205
  * @since 1.2
206
  * @returns array() $actions Bulk actions
207
  */
208
  function get_bulk_actions() {
209
  $actions = array();
210
+
211
  // Build the row actions
212
  $actions['delete'] = __( 'Delete Permanently', 'visual-form-builder' );
213
+
214
  return $actions;
215
  }
216
+
217
  /**
218
  * Process ALL actions on the Entries screen, not only Bulk Actions
219
+ *
220
  * @since 1.2
221
  */
222
  function process_bulk_action() {
223
  global $wpdb;
224
+
225
  $form_id = '';
226
+
227
+ // Set the Entry ID array
228
  if ( isset( $_REQUEST['entry'] ) ) {
229
  if ( is_array( $_REQUEST['entry'] ) )
230
  $form_id = $_REQUEST['entry'];
231
  else
232
  $form_id = (array) $_REQUEST['entry'];
233
  }
234
+
235
+ switch( $this->current_action() ) {
236
  case 'trash' :
237
  foreach ( $form_id as $id ) {
238
  $id = absint( $id );
239
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $id ) );
240
  }
241
  break;
242
+
243
  case 'delete' :
244
  foreach ( $form_id as $id ) {
245
  $id = absint( $id );
246
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE entries_id = %d", $id ) );
247
  }
248
  break;
249
+
250
  }
251
  }
252
+
253
  /**
254
  * Set our forms filter action
255
+ *
256
  * @since 1.2
257
  * @returns int Form ID
258
  */
259
  function current_filter_action() {
260
  if ( isset( $_REQUEST['form-filter'] ) && -1 != $_REQUEST['form-filter'] )
261
  return $_REQUEST['form-filter'];
262
+
263
  return false;
264
  }
265
+
266
  /**
267
  * Display Search box
268
+ *
269
  * @since 1.4
270
  * @returns html Search Form
271
  */
272
  function search_box( $text, $input_id ) {
273
  parent::search_box( $text, $input_id );
274
  }
275
+
276
  /**
277
  * Prepares our data for display
278
+ *
279
  * @since 1.2
280
  */
281
  function prepare_items() {
282
  global $wpdb;
283
+
284
  // get the current user ID
285
  $user = get_current_user_id();
286
+
287
  // get the current admin screen
288
  $screen = get_current_screen();
289
+
290
  // retrieve the "per_page" option
291
  $screen_option = $screen->get_option( 'per_page', 'option' );
292
+
293
  // retrieve the value of the option stored for the current user
294
  $per_page = get_user_meta( $user, $screen_option, true );
295
+
296
  // get the default value if none is set
297
  if ( empty ( $per_page) || $per_page < 1 )
298
  $per_page = $screen->get_option( 'per_page', 'default' );
299
+
300
  // Get the date/time format that is saved in the options table
301
  $date_format = get_option( 'date_format' );
302
  $time_format = get_option( 'time_format' );
303
+
304
  // What page are we looking at?
305
  $current_page = $this->get_pagenum();
306
+
307
  // Use offset for pagination
308
  $offset = ( $current_page - 1 ) * $per_page;
309
+
310
  // Get column headers
311
  $columns = $this->get_columns();
312
  $hidden = array();
313
+
314
  // Get sortable columns
315
  $sortable = $this->get_sortable_columns();
316
+
317
  // Build the column headers
318
  $this->_column_headers = array($columns, $hidden, $sortable);
319
 
320
  // Get entries search terms
321
  $search_terms = ( !empty( $_REQUEST['s'] ) ) ? explode( ' ', $_REQUEST['s'] ) : array();
322
+
323
  $searchand = $search = '';
324
  // Loop through search terms and build query
325
  foreach( $search_terms as $term ) {
326
  $term = esc_sql( like_escape( $term ) );
327
+
328
  $search .= "{$searchand}((forms.form_title LIKE '%{$term}%') OR (forms.form_key LIKE '%{$term}%') OR (forms.form_email_subject LIKE '%{$term}%'))";
329
  $searchand = ' AND ';
330
  }
331
+
332
  $search = ( !empty($search) ) ? " AND ({$search}) " : '';
333
+
334
  // Set our ORDER BY and ASC/DESC to sort the entries
335
  $orderby = ( !empty( $_REQUEST['orderby'] ) ) ? $_REQUEST['orderby'] : 'form_id';
336
  $order = ( !empty( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : 'desc';
337
+
338
  // Get the sorted entries
339
  $forms = $this->get_forms( $orderby, $order, $per_page, $offset, $search );
340
+
341
  $data = array();
342
+
343
  // Loop trough the entries and setup the data to be displayed for each row
344
  foreach ( $forms as $form ) :
345
+
346
  $entries_counts = array(
347
  'total' => $this->get_entries_count( $form->form_id ),
348
  'today' => $this->get_entries_today_count( $form->form_id ),
349
  );
350
+
351
  $data[] = array(
352
  'id' => $form->form_id,
353
  'form_id' => $form->form_id,
355
  'entries' => $entries_counts,
356
  );
357
  endforeach;
358
+
359
  // How many forms do we have?
360
  $total_items = $this->get_forms_count();
361
+
362
  // Add sorted data to the items property
363
  $this->items = $data;
364
+
365
  // Register our pagination
366
  $this->set_pagination_args( array(
367
  'total_items' => $total_items,
369
  'total_pages' => ceil( $total_items / $per_page )
370
  ) );
371
  }
372
+
373
  /**
374
  * Display the pagination.
375
  * Customize default function to work with months and form drop down filters
378
  * @access protected
379
  */
380
  function pagination( $which ) {
381
+
382
  if ( empty( $this->_pagination_args ) )
383
  return;
384
 
393
  $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
394
 
395
  $page_links = array();
396
+
397
  // Added to pick up the months dropdown
398
  $m = isset( $_REQUEST['m'] ) ? (int) $_REQUEST['m'] : 0;
399
+
400
  $disable_first = $disable_last = '';
401
  if ( $current == 1 )
402
  $disable_first = ' disabled';
409
  esc_url( remove_query_arg( 'paged', $current_url ) ),
410
  '&laquo;'
411
  );
412
+
413
  // Modified the add_query_args to include my custom dropdowns
414
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
415
  'prev-page' . $disable_first,
436
  esc_url( add_query_arg( array( 'paged' => min( $total_pages, $current+1 ), 'm' => $m, 'form-filter' => $this->current_filter_action() ), $current_url ) ),
437
  '&rsaquo;'
438
  );
439
+
440
  // Modified the add_query_args to include my custom dropdowns
441
  $page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
442
  'last-page' . $disable_last,
459
 
460
  echo $this->_pagination;
461
  }
462
+
463
  }
464
  ?>
includes/email.php CHANGED
@@ -1,45 +1,45 @@
1
  <?php
2
  global $wpdb, $post;
3
-
4
- $required = ( isset( $_REQUEST['_vfb-required-secret'] ) && $_REQUEST['_vfb-required-secret'] == '0' ) ? false : true;
5
- $secret_field = ( isset( $_REQUEST['_vfb-secret'] ) ) ? $_REQUEST['_vfb-secret'] : '';
6
- $honeypot = ( isset( $_REQUEST['vfb-spam'] ) ) ? $_REQUEST['vfb-spam'] : '';
7
- $referrer = ( isset( $_REQUEST['_wp_http_referer'] ) ) ? $_REQUEST['_wp_http_referer'] : false;
8
  $wp_get_referer = wp_get_referer();
9
 
10
  // If the verification is set to required, run validation check
11
  if ( true == $required && !empty( $secret_field ) ) :
12
  if ( !empty( $honeypot ) )
13
  wp_die( __( 'Security check: hidden spam field should be blank.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
14
- if ( !is_numeric( $_REQUEST[ $secret_field ] ) || strlen( $_REQUEST[ $secret_field ] ) !== 2 )
15
  wp_die( __( 'Security check: failed secret question. Please try again!' , 'visual-form-builder'), '', array( 'back_link' => true ) );
16
  endif;
17
 
18
  // Basic security check before moving any further
19
- if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
20
-
21
  // Test if referral URL has been set
22
  if ( !$referrer )
23
  wp_die( __( 'Security check: referal URL does not appear to be set.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
24
-
25
  // Test if the referral URL matches what sent from WordPress
26
  if ( $wp_get_referer )
27
  wp_die( __( 'Security check: referal does not match this site.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
28
-
29
  // Test if it's a known SPAM bot
30
  if ( $this->isBot() )
31
  wp_die( __( 'Security check: looks like you are a SPAM bot. If you think this is an error, please email the site owner.' , 'visual-form-builder' ), '', array( 'back_link' => true ) );
32
-
33
  // Set submitted action to display success message
34
  $this->submitted = true;
35
-
36
  // Tells us which form to get from the database
37
- $form_id = absint( $_REQUEST['form_id'] );
38
-
39
  // Query to get all forms
40
  $order = sanitize_sql_orderby( 'form_id DESC' );
41
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
42
-
43
  // Get sender and email details
44
  foreach ( $forms as $form ) :
45
  $form_settings = (object) array(
@@ -55,47 +55,47 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
55
  'form_notification_message' => stripslashes( $form->form_notification_message ),
56
  'form_notification_entry' => stripslashes( $form->form_notification_entry )
57
  );
58
- // Allow the form settings to be filtered (ex: return $form_settings->'form_title' = 'Hello World';)
59
  $form_settings = (object) apply_filters_ref_array( 'vfb_email_form_settings', array( $form_settings, $form_id ) );
60
  endforeach;
61
-
62
  // Sender name field ID
63
  $sender = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_name_override FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
64
-
65
  // Sender email field ID
66
  $email = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_override FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
67
-
68
  // Notifcation email field ID
69
  $notify = $wpdb->get_var( $wpdb->prepare( "SELECT form_notification_email FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
70
 
71
  $reply_to_name = $form_settings->form_from_name;
72
  $reply_to_email = $form_settings->form_from;
73
-
74
  // Use field for sender name
75
  if ( !empty( $sender ) ) {
76
  $form_settings->form_from_name = wp_kses_data( $_POST[ 'vfb-' . $sender ] );
77
  $reply_to_name = $form_settings->form_from_name;
78
  }
79
-
80
- // Use field for sender email
81
  if ( !empty( $email ) ) {
82
  $form_settings->form_from = sanitize_email( $_POST[ 'vfb-' . $email ] );
83
  $reply_to_email = $form_settings->form_from;
84
  }
85
-
86
- // Use field for copy email
87
  $copy_email = ( !empty( $notify ) ) ? sanitize_email( $_POST[ 'vfb-' . $notify ] ) : '';
88
 
89
  // Query to get all forms
90
  $order = sanitize_sql_orderby( 'field_sequence ASC' );
91
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT field_id, field_key, field_name, field_type, field_options, field_parent, field_required FROM $this->field_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
92
-
93
  // Setup counter for alt rows
94
  $i = $points = 0;
95
-
96
  // Setup HTML email vars
97
  $header = $body = $message = $footer = $html_email = $auto_response_email = $attachments = '';
98
-
99
  // Prepare the beginning of the content
100
  $header = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
101
  <html>
@@ -104,59 +104,59 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
104
  <title>HTML Email</title>
105
  </head>
106
  <body><table rules="all" style="border-color: #666;" cellpadding="10">' . "\n";
107
-
108
  // Loop through each form field and build the body of the message
109
  foreach ( $fields as $field ) :
110
  // Handle attachments
111
  if ( $field->field_type == 'file-upload' ) :
112
  $value = ( isset( $_FILES[ 'vfb-' . $field->field_id ] ) ) ? $_FILES[ 'vfb-' . $field->field_id ] : '';
113
-
114
  if ( $value['size'] > 0 ) :
115
  // 25MB is the max size allowed
116
  $size = apply_filters( 'vfb_max_file_size', 25 );
117
  $max_attach_size = $size * 1048576;
118
-
119
  // Display error if file size has been exceeded
120
  if ( $value['size'] > $max_attach_size )
121
  wp_die( sprintf( __( "File size exceeds %dMB. Most email providers will reject emails with attachments larger than %dMB. Please decrease the file size and try again.", 'visual-form-builder' ), $size ), '', array( 'back_link' => true ) );
122
-
123
  // Options array for the wp_handle_upload function. 'test_form' => false
124
- $upload_overrides = array( 'test_form' => false );
125
-
126
  // We need to include the file that runs the wp_handle_upload function
127
  require_once( ABSPATH . 'wp-admin/includes/file.php' );
128
-
129
  // Handle the upload using WP's wp_handle_upload function. Takes the posted file and an options array
130
  $uploaded_file = wp_handle_upload( $value, $upload_overrides );
131
-
132
  // If the wp_handle_upload call returned a local path for the image
133
  if ( isset( $uploaded_file['file'] ) ) :
134
  // Retrieve the file type from the file name. Returns an array with extension and mime type
135
  $wp_filetype = wp_check_filetype( basename( $uploaded_file['file'] ), null );
136
-
137
  // Return the current upload directory location
138
- $wp_upload_dir = wp_upload_dir();
139
-
140
  $media_upload = array(
141
- 'guid' => $wp_upload_dir['baseurl'] . _wp_relative_upload_path( $uploaded_file['file'] ),
142
  'post_mime_type' => $wp_filetype['type'],
143
  'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $uploaded_file['file'] ) ),
144
  'post_content' => '',
145
  'post_status' => 'inherit'
146
  );
147
-
148
  // Insert attachment into Media Library and get attachment ID
149
  $attach_id = wp_insert_attachment( $media_upload, $uploaded_file['file'] );
150
-
151
  // Include the file that runs wp_generate_attachment_metadata()
152
  require_once( ABSPATH . 'wp-admin/includes/image.php' );
153
-
154
  // Setup attachment metadata
155
  $attach_data = wp_generate_attachment_metadata( $attach_id, $uploaded_file['file'] );
156
-
157
  // Update the attachment metadata
158
  wp_update_attachment_metadata( $attach_id, $attach_data );
159
-
160
  $attachments[ 'vfb-' . $field->field_id ] = $uploaded_file['file'];
161
 
162
  $data[] = array(
@@ -168,7 +168,7 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
168
  'parent_id' => $field->field_parent,
169
  'value' => $uploaded_file['url']
170
  );
171
-
172
  $body .= sprintf(
173
  '<tr>
174
  <td><strong>%1$s: </strong></td>
@@ -189,11 +189,11 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
189
  $value
190
  );
191
  endif;
192
-
193
  // Everything else
194
  else :
195
  $value = ( isset( $_POST[ 'vfb-' . $field->field_id ] ) ) ? $_POST[ 'vfb-' . $field->field_id ] : '';
196
-
197
  // If time field, build proper output
198
  if ( is_array( $value ) && $field->field_type == 'time' )
199
  $value = $this->build_array_form_item( $value, $field->field_type );
@@ -208,12 +208,12 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
208
  // Lastly, handle single values
209
  else
210
  $value = html_entity_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES, 'UTF-8' );
211
-
212
  // Setup spam catcher RegEx
213
  $exploits = '/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i';
214
  $profanity = '/(beastial|bestial|blowjob|clit|cock|cum|cunilingus|cunillingus|cunnilingus|cunt|ejaculate|fag|felatio|fellatio|fuck|fuk|fuks|gangbang|gangbanged|gangbangs|hotsex|jism|jiz|kock|kondum|kum|kunilingus|orgasim|orgasims|orgasm|orgasms|phonesex|phuk|phuq|porn|pussies|pussy|spunk|xxx)/i';
215
  $spamwords = '/(viagra|phentermine|tramadol|adipex|advai|alprazolam|ambien|ambian|amoxicillin|antivert|blackjack|backgammon|texas|holdem|poker|carisoprodol|ciara|ciprofloxacin|debt|dating|porn)/i';
216
-
217
  // Add up points for each spam hit
218
  if ( preg_match( $exploits, $value ) )
219
  $points += 2;
@@ -221,14 +221,14 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
221
  $points += 1;
222
  elseif ( preg_match( $spamwords, $value ) )
223
  $points += 1;
224
-
225
  //Sanitize input
226
  $value = $this->sanitize_input( $value, $field->field_type );
227
  // Validate input
228
  $this->validate_input( $value, $field->field_name, $field->field_type, $field->field_required );
229
-
230
  $removed_field_types = array( 'verification', 'secret', 'submit' );
231
-
232
  // Don't add certain fields to the email
233
  if ( ! in_array( $field->field_type, $removed_field_types ) ) :
234
  if ( $field->field_type == 'fieldset' ) :
@@ -248,7 +248,7 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
248
  else :
249
  // Convert new lines to break tags for textarea in html
250
  $display_value = ( 'textarea' == $field->field_type ) ? nl2br( $value ) : $value;
251
-
252
  $body .= sprintf(
253
  '<tr>
254
  <td><strong>%1$s: </strong></td>
@@ -259,7 +259,7 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
259
  );
260
  endif;
261
  endif;
262
-
263
  $data[] = array(
264
  'id' => $field->field_id,
265
  'slug' => $field->field_key,
@@ -269,14 +269,14 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
269
  'parent_id' => $field->field_parent,
270
  'value' => esc_html( $value )
271
  );
272
-
273
  endif;
274
-
275
  // If the user accumulates more than 4 points, it might be spam
276
  if ( $points > 4 )
277
  wp_die( __( 'Your responses look too much like spam and could not be sent at this time.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
278
  endforeach;
279
-
280
  // Setup our entries data
281
  $entry = array(
282
  'form_id' => $form_id,
@@ -288,7 +288,7 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
288
  'date_submitted' => date_i18n( 'Y-m-d G:i:s' ),
289
  'ip_address' => esc_html( $_SERVER['REMOTE_ADDR'] )
290
  );
291
-
292
  // Insert this data into the entries table
293
  $wpdb->insert( $this->entries_table_name, $entry );
294
 
@@ -301,48 +301,48 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
301
  </table>
302
  </body>
303
  </html>' . "\n";
304
-
305
  // Build complete HTML email
306
  $message = $header . $body . $footer;
307
-
308
  // Wrap lines longer than 70 words to meet email standards
309
  $message = wordwrap( $message, 70 );
310
-
311
  // Decode HTML for message so it outputs properly
312
  $notify_message = ( $form_settings->form_notification_message !== '' ) ? html_entity_decode( $form_settings->form_notification_message ) : '';
313
-
314
  // Initialize header filter vars
315
  $header_from_name = stripslashes( $reply_to_name );
316
  $header_from = $reply_to_email;
317
  $header_content_type = 'text/html';
318
-
319
- // Either prepend the notification message to the submitted entry, or send by itself
320
  if ( $form_settings->form_notification_entry !== '' )
321
  $auto_response_email = $header . $notify_message . $body . $footer;
322
  else
323
  $auto_response_email = sprintf( '%1$s<table cellspacing="0" border="0" cellpadding="0" width="100%%"><tr><td colspan="2" class="mainbar" align="left" valign="top" width="600">%2$s</td></tr>%3$s', $header, $notify_message, $footer );
324
-
325
-
326
- // Build email headers
327
  $from_name = ( $header_from_name == '' ) ? 'WordPress' : $header_from_name;
328
-
329
  // Use the admin_email as the From email
330
  $from_email = get_site_option( 'admin_email' );
331
-
332
  // Get the site domain and get rid of www.
333
  $sitename = strtolower( $_SERVER['SERVER_NAME'] );
334
  if ( substr( $sitename, 0, 4 ) == 'www.' )
335
  $sitename = substr( $sitename, 4 );
336
-
337
  // Get the domain from the admin_email
338
  list( $user, $domain ) = explode( '@', $from_email );
339
-
340
  // If site domain and admin_email domain match, use admin_email, otherwise a same domain email must be created
341
  $from_email = ( $sitename == $domain ) ? $from_email : "wordpress@$sitename";
342
-
343
  $reply_to = "\"$from_name\" <$header_from>";
344
  $headers = "Sender: $from_email\r\n" . "From: $reply_to\r\n" . "Reply-To: $reply_to\r\n" . "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"\r\n";
345
-
346
  $form_subject = wp_specialchars_decode( $form_settings->form_subject, ENT_QUOTES );
347
  $notify_subject = wp_specialchars_decode( $form_settings->form_notification_subject, ENT_QUOTES );
348
 
@@ -353,22 +353,22 @@ if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
353
  foreach ( $emails_to as $email ) {
354
  wp_mail( $email, $form_subject, $message, $headers, $attachments );
355
  }
356
-
357
  // Send auto-responder email
358
  if ( $form_settings->form_notification_setting !== '' ) :
359
-
360
  $attachments = ( $form_settings->form_notification_entry !== '' ) ? $attachments : '';
361
-
362
  // Reset headers for notification email
363
  $reply_name = stripslashes( $form_settings->form_notification_email_name );
364
  $reply_email = $form_settings->form_notification_email_from;
365
  $reply_to = "\"$reply_name\" <$reply_email>";
366
  $headers = "Sender: $from_email\r\n" . "From: $reply_to\r\n" . "Reply-To: $reply_to\r\n" . "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"\r\n";
367
-
368
  // Send the mail
369
  wp_mail( $copy_email, $notify_subject, $auto_response_email, $headers, $attachments );
370
-
371
  endif;
372
-
373
  endif;
374
  ?>
1
  <?php
2
  global $wpdb, $post;
3
+
4
+ $required = ( isset( $_POST['_vfb-required-secret'] ) && $_POST['_vfb-required-secret'] == '0' ) ? false : true;
5
+ $secret_field = ( isset( $_POST['_vfb-secret'] ) ) ? esc_html( $_POST['_vfb-secret'] ) : '';
6
+ $honeypot = ( isset( $_POST['vfb-spam'] ) ) ? esc_html( $_POST['vfb-spam'] ) : '';
7
+ $referrer = ( isset( $_POST['_wp_http_referer'] ) ) ? esc_html( $_POST['_wp_http_referer'] ) : false;
8
  $wp_get_referer = wp_get_referer();
9
 
10
  // If the verification is set to required, run validation check
11
  if ( true == $required && !empty( $secret_field ) ) :
12
  if ( !empty( $honeypot ) )
13
  wp_die( __( 'Security check: hidden spam field should be blank.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
14
+ if ( !is_numeric( $_POST[ $secret_field ] ) || strlen( $_POST[ $secret_field ] ) !== 2 )
15
  wp_die( __( 'Security check: failed secret question. Please try again!' , 'visual-form-builder'), '', array( 'back_link' => true ) );
16
  endif;
17
 
18
  // Basic security check before moving any further
19
+ if ( isset( $_POST['visual-form-builder-submit'] ) ) :
20
+
21
  // Test if referral URL has been set
22
  if ( !$referrer )
23
  wp_die( __( 'Security check: referal URL does not appear to be set.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
24
+
25
  // Test if the referral URL matches what sent from WordPress
26
  if ( $wp_get_referer )
27
  wp_die( __( 'Security check: referal does not match this site.' , 'visual-form-builder'), '', array( 'back_link' => true ) );
28
+
29
  // Test if it's a known SPAM bot
30
  if ( $this->isBot() )
31
  wp_die( __( 'Security check: looks like you are a SPAM bot. If you think this is an error, please email the site owner.' , 'visual-form-builder' ), '', array( 'back_link' => true ) );
32
+
33
  // Set submitted action to display success message
34
  $this->submitted = true;
35
+
36
  // Tells us which form to get from the database
37
+ $form_id = absint( $_POST['form_id'] );
38
+
39
  // Query to get all forms
40
  $order = sanitize_sql_orderby( 'form_id DESC' );
41
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
42
+
43
  // Get sender and email details
44
  foreach ( $forms as $form ) :
45
  $form_settings = (object) array(
55
  'form_notification_message' => stripslashes( $form->form_notification_message ),
56
  'form_notification_entry' => stripslashes( $form->form_notification_entry )
57
  );
58
+ // Allow the form settings to be filtered (ex: return $form_settings->'form_title' = 'Hello World';)
59
  $form_settings = (object) apply_filters_ref_array( 'vfb_email_form_settings', array( $form_settings, $form_id ) );
60
  endforeach;
61
+
62
  // Sender name field ID
63
  $sender = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_name_override FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
64
+
65
  // Sender email field ID
66
  $email = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_override FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
67
+
68
  // Notifcation email field ID
69
  $notify = $wpdb->get_var( $wpdb->prepare( "SELECT form_notification_email FROM $this->form_table_name WHERE form_id = %d", $form_id ) );
70
 
71
  $reply_to_name = $form_settings->form_from_name;
72
  $reply_to_email = $form_settings->form_from;
73
+
74
  // Use field for sender name
75
  if ( !empty( $sender ) ) {
76
  $form_settings->form_from_name = wp_kses_data( $_POST[ 'vfb-' . $sender ] );
77
  $reply_to_name = $form_settings->form_from_name;
78
  }
79
+
80
+ // Use field for sender email
81
  if ( !empty( $email ) ) {
82
  $form_settings->form_from = sanitize_email( $_POST[ 'vfb-' . $email ] );
83
  $reply_to_email = $form_settings->form_from;
84
  }
85
+
86
+ // Use field for copy email
87
  $copy_email = ( !empty( $notify ) ) ? sanitize_email( $_POST[ 'vfb-' . $notify ] ) : '';
88
 
89
  // Query to get all forms
90
  $order = sanitize_sql_orderby( 'field_sequence ASC' );
91
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT field_id, field_key, field_name, field_type, field_options, field_parent, field_required FROM $this->field_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
92
+
93
  // Setup counter for alt rows
94
  $i = $points = 0;
95
+
96
  // Setup HTML email vars
97
  $header = $body = $message = $footer = $html_email = $auto_response_email = $attachments = '';
98
+
99
  // Prepare the beginning of the content
100
  $header = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
101
  <html>
104
  <title>HTML Email</title>
105
  </head>
106
  <body><table rules="all" style="border-color: #666;" cellpadding="10">' . "\n";
107
+
108
  // Loop through each form field and build the body of the message
109
  foreach ( $fields as $field ) :
110
  // Handle attachments
111
  if ( $field->field_type == 'file-upload' ) :
112
  $value = ( isset( $_FILES[ 'vfb-' . $field->field_id ] ) ) ? $_FILES[ 'vfb-' . $field->field_id ] : '';
113
+
114
  if ( $value['size'] > 0 ) :
115
  // 25MB is the max size allowed
116
  $size = apply_filters( 'vfb_max_file_size', 25 );
117
  $max_attach_size = $size * 1048576;
118
+
119
  // Display error if file size has been exceeded
120
  if ( $value['size'] > $max_attach_size )
121
  wp_die( sprintf( __( "File size exceeds %dMB. Most email providers will reject emails with attachments larger than %dMB. Please decrease the file size and try again.", 'visual-form-builder' ), $size ), '', array( 'back_link' => true ) );
122
+
123
  // Options array for the wp_handle_upload function. 'test_form' => false
124
+ $upload_overrides = array( 'test_form' => false );
125
+
126
  // We need to include the file that runs the wp_handle_upload function
127
  require_once( ABSPATH . 'wp-admin/includes/file.php' );
128
+
129
  // Handle the upload using WP's wp_handle_upload function. Takes the posted file and an options array
130
  $uploaded_file = wp_handle_upload( $value, $upload_overrides );
131
+
132
  // If the wp_handle_upload call returned a local path for the image
133
  if ( isset( $uploaded_file['file'] ) ) :
134
  // Retrieve the file type from the file name. Returns an array with extension and mime type
135
  $wp_filetype = wp_check_filetype( basename( $uploaded_file['file'] ), null );
136
+
137
  // Return the current upload directory location
138
+ $wp_upload_dir = wp_upload_dir();
139
+
140
  $media_upload = array(
141
+ 'guid' => $wp_upload_dir['baseurl'] . _wp_relative_upload_path( $uploaded_file['file'] ),
142
  'post_mime_type' => $wp_filetype['type'],
143
  'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $uploaded_file['file'] ) ),
144
  'post_content' => '',
145
  'post_status' => 'inherit'
146
  );
147
+
148
  // Insert attachment into Media Library and get attachment ID
149
  $attach_id = wp_insert_attachment( $media_upload, $uploaded_file['file'] );
150
+
151
  // Include the file that runs wp_generate_attachment_metadata()
152
  require_once( ABSPATH . 'wp-admin/includes/image.php' );
153
+
154
  // Setup attachment metadata
155
  $attach_data = wp_generate_attachment_metadata( $attach_id, $uploaded_file['file'] );
156
+
157
  // Update the attachment metadata
158
  wp_update_attachment_metadata( $attach_id, $attach_data );
159
+
160
  $attachments[ 'vfb-' . $field->field_id ] = $uploaded_file['file'];
161
 
162
  $data[] = array(
168
  'parent_id' => $field->field_parent,
169
  'value' => $uploaded_file['url']
170
  );
171
+
172
  $body .= sprintf(
173
  '<tr>
174
  <td><strong>%1$s: </strong></td>
189
  $value
190
  );
191
  endif;
192
+
193
  // Everything else
194
  else :
195
  $value = ( isset( $_POST[ 'vfb-' . $field->field_id ] ) ) ? $_POST[ 'vfb-' . $field->field_id ] : '';
196
+
197
  // If time field, build proper output
198
  if ( is_array( $value ) && $field->field_type == 'time' )
199
  $value = $this->build_array_form_item( $value, $field->field_type );
208
  // Lastly, handle single values
209
  else
210
  $value = html_entity_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES, 'UTF-8' );
211
+
212
  // Setup spam catcher RegEx
213
  $exploits = '/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i';
214
  $profanity = '/(beastial|bestial|blowjob|clit|cock|cum|cunilingus|cunillingus|cunnilingus|cunt|ejaculate|fag|felatio|fellatio|fuck|fuk|fuks|gangbang|gangbanged|gangbangs|hotsex|jism|jiz|kock|kondum|kum|kunilingus|orgasim|orgasims|orgasm|orgasms|phonesex|phuk|phuq|porn|pussies|pussy|spunk|xxx)/i';
215
  $spamwords = '/(viagra|phentermine|tramadol|adipex|advai|alprazolam|ambien|ambian|amoxicillin|antivert|blackjack|backgammon|texas|holdem|poker|carisoprodol|ciara|ciprofloxacin|debt|dating|porn)/i';
216
+
217
  // Add up points for each spam hit
218
  if ( preg_match( $exploits, $value ) )
219
  $points += 2;
221
  $points += 1;
222
  elseif ( preg_match( $spamwords, $value ) )
223
  $points += 1;
224
+
225
  //Sanitize input
226
  $value = $this->sanitize_input( $value, $field->field_type );
227
  // Validate input
228
  $this->validate_input( $value, $field->field_name, $field->field_type, $field->field_required );
229
+
230
  $removed_field_types = array( 'verification', 'secret', 'submit' );
231
+
232
  // Don't add certain fields to the email
233
  if ( ! in_array( $field->field_type, $removed_field_types ) ) :
234
  if ( $field->field_type == 'fieldset' ) :
248
  else :
249
  // Convert new lines to break tags for textarea in html
250
  $display_value = ( 'textarea' == $field->field_type ) ? nl2br( $value ) : $value;
251
+
252
  $body .= sprintf(
253
  '<tr>
254
  <td><strong>%1$s: </strong></td>
259
  );
260
  endif;
261
  endif;
262
+
263
  $data[] = array(
264
  'id' => $field->field_id,
265
  'slug' => $field->field_key,
269
  'parent_id' => $field->field_parent,
270
  'value' => esc_html( $value )
271
  );
272
+
273
  endif;
274
+
275
  // If the user accumulates more than 4 points, it might be spam
276
  if ( $points > 4 )
277
  wp_die( __( 'Your responses look too much like spam and could not be sent at this time.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
278
  endforeach;
279
+
280
  // Setup our entries data
281
  $entry = array(
282
  'form_id' => $form_id,
288
  'date_submitted' => date_i18n( 'Y-m-d G:i:s' ),
289
  'ip_address' => esc_html( $_SERVER['REMOTE_ADDR'] )
290
  );
291
+
292
  // Insert this data into the entries table
293
  $wpdb->insert( $this->entries_table_name, $entry );
294
 
301
  </table>
302
  </body>
303
  </html>' . "\n";
304
+
305
  // Build complete HTML email
306
  $message = $header . $body . $footer;
307
+
308
  // Wrap lines longer than 70 words to meet email standards
309
  $message = wordwrap( $message, 70 );
310
+
311
  // Decode HTML for message so it outputs properly
312
  $notify_message = ( $form_settings->form_notification_message !== '' ) ? html_entity_decode( $form_settings->form_notification_message ) : '';
313
+
314
  // Initialize header filter vars
315
  $header_from_name = stripslashes( $reply_to_name );
316
  $header_from = $reply_to_email;
317
  $header_content_type = 'text/html';
318
+
319
+ // Either prepend the notification message to the submitted entry, or send by itself
320
  if ( $form_settings->form_notification_entry !== '' )
321
  $auto_response_email = $header . $notify_message . $body . $footer;
322
  else
323
  $auto_response_email = sprintf( '%1$s<table cellspacing="0" border="0" cellpadding="0" width="100%%"><tr><td colspan="2" class="mainbar" align="left" valign="top" width="600">%2$s</td></tr>%3$s', $header, $notify_message, $footer );
324
+
325
+
326
+ // Build email headers
327
  $from_name = ( $header_from_name == '' ) ? 'WordPress' : $header_from_name;
328
+
329
  // Use the admin_email as the From email
330
  $from_email = get_site_option( 'admin_email' );
331
+
332
  // Get the site domain and get rid of www.
333
  $sitename = strtolower( $_SERVER['SERVER_NAME'] );
334
  if ( substr( $sitename, 0, 4 ) == 'www.' )
335
  $sitename = substr( $sitename, 4 );
336
+
337
  // Get the domain from the admin_email
338
  list( $user, $domain ) = explode( '@', $from_email );
339
+
340
  // If site domain and admin_email domain match, use admin_email, otherwise a same domain email must be created
341
  $from_email = ( $sitename == $domain ) ? $from_email : "wordpress@$sitename";
342
+
343
  $reply_to = "\"$from_name\" <$header_from>";
344
  $headers = "Sender: $from_email\r\n" . "From: $reply_to\r\n" . "Reply-To: $reply_to\r\n" . "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"\r\n";
345
+
346
  $form_subject = wp_specialchars_decode( $form_settings->form_subject, ENT_QUOTES );
347
  $notify_subject = wp_specialchars_decode( $form_settings->form_notification_subject, ENT_QUOTES );
348
 
353
  foreach ( $emails_to as $email ) {
354
  wp_mail( $email, $form_subject, $message, $headers, $attachments );
355
  }
356
+
357
  // Send auto-responder email
358
  if ( $form_settings->form_notification_setting !== '' ) :
359
+
360
  $attachments = ( $form_settings->form_notification_entry !== '' ) ? $attachments : '';
361
+
362
  // Reset headers for notification email
363
  $reply_name = stripslashes( $form_settings->form_notification_email_name );
364
  $reply_email = $form_settings->form_notification_email_from;
365
  $reply_to = "\"$reply_name\" <$reply_email>";
366
  $headers = "Sender: $from_email\r\n" . "From: $reply_to\r\n" . "Reply-To: $reply_to\r\n" . "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"\r\n";
367
+
368
  // Send the mail
369
  wp_mail( $copy_email, $notify_subject, $auto_response_email, $headers, $attachments );
370
+
371
  endif;
372
+
373
  endif;
374
  ?>
includes/form-output.php CHANGED
@@ -4,7 +4,7 @@ global $wpdb;
4
  // Extract shortcode attributes, set defaults
5
  extract( shortcode_atts( array(
6
  'id' => ''
7
- ), $atts )
8
  );
9
 
10
  // Add JavaScript files to the front-end, only once
@@ -16,12 +16,12 @@ $form_id = ( isset( $id ) && !empty( $id ) ) ? (int) $id : key( $atts );
16
 
17
 
18
  // If form is submitted, show success message, otherwise the form
19
- if ( isset( $_REQUEST['visual-form-builder-submit'] ) && isset( $_REQUEST['form_id'] ) && $_REQUEST['form_id'] == $form_id ) {
20
  $output = $this->confirmation();
21
  return;
22
  }
23
 
24
- $order = sanitize_sql_orderby( 'form_id DESC' );
25
  $form = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
26
 
27
  // Return if no form found
@@ -38,7 +38,7 @@ $open_fieldset = $open_section = false;
38
  $submit = 'Submit';
39
  $verification = '';
40
 
41
- $label_alignment = ( $form->form_label_alignment !== '' ) ? " $form->form_label_alignment" : '';
42
 
43
  // Start form container
44
  $output .= '<div class="visual-form-builder-container">';
@@ -46,7 +46,7 @@ $output .= '<div class="visual-form-builder-container">';
46
  $output .= sprintf(
47
  '<form id="%1$s-%2$d" class="visual-form-builder %3$s %4$s" method="post" enctype="multipart/form-data">
48
  <input type="hidden" name="form_id" value="%5$d" />',
49
- esc_html( $form->form_key ),
50
  $form_id,
51
  "vfb-form-$form_id",
52
  $label_alignment,
@@ -55,17 +55,17 @@ $output .= sprintf(
55
  foreach ( $fields as $field ) :
56
  $field_id = absint( $field->field_id );
57
  $field_type = esc_html( $field->field_type );
58
- $field_name = stripslashes( $field->field_name );
59
  $required_span = ( !empty( $field->field_required ) && $field->field_required === 'yes' ) ? ' <span>*</span>' : '';
60
- $required = ( !empty( $field->field_required ) && $field->field_required === 'yes' ) ? ' required' : '';
61
- $validation = ( !empty( $field->field_validation ) ) ? " $field->field_validation" : '';
62
- $css = ( !empty( $field->field_css ) ) ? " $field->field_css" : '';
63
- $id_attr = 'vfb-' . esc_html( $field->field_key ) . '-' . $field_id;
64
- $size = ( !empty( $field->field_size ) ) ? " vfb-$field->field_size" : '';
65
- $layout = ( !empty( $field->field_layout ) ) ? " vfb-$field->field_layout" : '';
66
  $default = ( !empty( $field->field_default ) ) ? wp_specialchars_decode( esc_html( stripslashes( $field->field_default ) ), ENT_QUOTES ) : '';
67
  $description = ( !empty( $field->field_description ) ) ? wp_specialchars_decode( esc_html( stripslashes( $field->field_description ) ), ENT_QUOTES ) : '';
68
-
69
  // Close each section
70
  if ( $open_section == true ) :
71
  // If this field's parent does NOT equal our section ID
@@ -74,51 +74,50 @@ foreach ( $fields as $field ) :
74
  $open_section = false;
75
  endif;
76
  endif;
77
-
78
  // Force an initial fieldset and display an error message to strongly encourage user to add one
79
  if ( $count === 1 && $field_type !== 'fieldset' ) :
80
  $output .= '<fieldset class="fieldset"><div class="legend" style="background-color:#FFEBE8;border:1px solid #CC0000;"><h3>Oops! Missing Fieldset</h3><p style="color:black;">If you are seeing this message, it means you need to <strong>add a Fieldset to the beginning of your form</strong>. Your form may not function or display properly without one.</p></div><ul class="section section-' . $count . '">';
81
-
82
  $count++;
83
  endif;
84
-
85
  if ( $field_type == 'fieldset' ) :
86
  // Close each fieldset
87
  if ( $open_fieldset == true )
88
  $output .= '</ul><br /></fieldset>';
89
-
90
  $output .= sprintf(
91
- '<fieldset class="vfb-fieldset vfb-fieldset-%1$d %2$s %3$s" id="%4$s"><div class="vfb-legend"><h3>%5$s</h3></div><ul class="vfb-section vfb-section-%1$d">',
92
  $count,
93
- $field->field_key,
94
  $css,
95
  $id_attr,
96
  $field_name
97
  );
98
-
99
  $open_fieldset = true;
100
  $count++;
101
-
102
  elseif ( $field_type == 'section' ) :
103
-
104
  $output .= sprintf(
105
- '<div class="vfb-section-div %1$s %2$s"><h4>%3$s</h4>',
106
  $id_attr,
107
  $css,
108
  $field_name
109
  );
110
-
111
  // Save section ID for future comparison
112
  $sec_id = $field_id;
113
  $open_section = true;
114
-
115
  elseif ( !in_array( $field_type, array( 'verification', 'secret', 'submit' ) ) ) :
116
-
117
- $columns_choice = ( !empty( $field->field_size ) && in_array( $field_type, array( 'radio', 'checkbox' ) ) ) ? " vfb-$field->field_size" : '';
118
-
119
  if ( $field_type !== 'hidden' ) :
120
- $id_attr = 'vfb-' . esc_html( $field->field_key ) . '-' . $field_id;
121
-
122
  $output .= sprintf(
123
  '<li class="vfb-item vfb-item-%1$s %2$s %3$s" id="item-%4$s"><label for="%4$s" class="vfb-desc">%5$s %6$s</label>',
124
  $field_type,
@@ -129,20 +128,20 @@ foreach ( $fields as $field ) :
129
  $required_span
130
  );
131
  endif;
132
-
133
  elseif ( in_array( $field_type, array( 'verification', 'secret' ) ) ) :
134
-
135
  if ( $field_type == 'verification' ) :
136
  $verification .= sprintf(
137
- '<fieldset class="vfb-fieldset vfb-fieldset-%1$d %2$s %3$s" id="%4$s"><div class="vfb-legend"><h3>%5$s</h3></div><ul class="vfb-section vfb-section-%1$d">',
138
  $count,
139
- $field->field_key,
140
  $css,
141
  $id_attr,
142
  $field_name
143
  );
144
  endif;
145
-
146
  if ( $field_type == 'secret' ) :
147
  // Default logged in values
148
  $logged_in_display = $logged_in_value = '';
@@ -152,24 +151,24 @@ foreach ( $fields as $field ) :
152
  // Hide the secret field if logged in
153
  $logged_in_display = ' style="display:none;"';
154
  $logged_in_value = 14;
155
-
156
  // Get logged in user details
157
  $user = wp_get_current_user();
158
  $user_identity = ! empty( $user->ID ) ? $user->display_name : '';
159
-
160
  // Display a message for logged in users
161
  $verification .= '<li class="vfb-item" id="' . $id_attr . '">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. Verification not required.', 'visual-form-builder' ), admin_url( 'profile.php' ), $user_identity ) . '</li>';
162
  endif;
163
-
164
  $validation = ' {digits:true,maxlength:2,minlength:2}';
165
- $verification .= '<li class="vfb-item vfb-item-' . $field_type . '"' . $logged_in_display . '><label for="' . $id_attr . '" class="vfb-desc">'. stripslashes( $field->field_name ) . $required_span . '</label>';
166
-
167
  // Set variable for testing if required is Yes/No
168
  if ( $required == '' )
169
  $verification .= '<input type="hidden" name="_vfb-required-secret" value="0" />';
170
-
171
  $verification .= '<input type="hidden" name="_vfb-secret" value="vfb-' . $field_id . '" />';
172
-
173
  $verification_item = sprintf(
174
  '<input type="text" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s" />',
175
  $field_id,
@@ -180,12 +179,12 @@ foreach ( $fields as $field ) :
180
  $validation,
181
  $css
182
  );
183
-
184
- $verification .= ( !empty( $field->field_description ) ) ? sprintf( '<span>%1$s<label>%2$s</label></span>', $verification_item, $description ) : $verification_item;
185
-
186
  endif;
187
  endif;
188
-
189
  switch ( $field_type ) {
190
  case 'text' :
191
  case 'email' :
@@ -193,7 +192,7 @@ foreach ( $fields as $field ) :
193
  case 'currency' :
194
  case 'number' :
195
  case 'phone' :
196
-
197
  // HTML5 types
198
  if ( in_array( $field_type, array( 'email', 'url' ) ) )
199
  $type = esc_attr( $field_type );
@@ -201,7 +200,7 @@ foreach ( $fields as $field ) :
201
  $type = 'tel';
202
  else
203
  $type = 'text';
204
-
205
  $form_item = sprintf(
206
  '<input type="%8$s" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s" />',
207
  $field_id,
@@ -213,13 +212,13 @@ foreach ( $fields as $field ) :
213
  $css,
214
  $type
215
  );
216
-
217
- $output .= ( !empty( $description ) ) ? sprintf( '<span>%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
218
-
219
  break;
220
-
221
  case 'textarea' :
222
-
223
  $form_item = sprintf(
224
  '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea %4$s %5$s %6$s">%3$s</textarea>',
225
  $field_id,
@@ -229,26 +228,26 @@ foreach ( $fields as $field ) :
229
  $required,
230
  $css
231
  );
232
-
233
  $output .= '<div>';
234
-
235
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
236
-
237
  $output .= '</div>';
238
-
239
  break;
240
-
241
  case 'select' :
242
-
243
  $field_options = maybe_unserialize( $field->field_options );
244
-
245
  $options = '';
246
-
247
  // Loop through each option and output
248
  foreach ( $field_options as $option => $value ) {
249
  $options .= sprintf( '<option value="%1$s"%2$s>%1$s</option>', esc_attr(trim( stripslashes( $value ) ) ), selected( $default, ++$option, 0 ) );
250
  }
251
-
252
  $form_item = sprintf(
253
  '<select name="vfb-%1$d" id="%2$s" class="vfb-select %3$s %4$s %5$s">%6$s</select>',
254
  $field_id,
@@ -258,23 +257,23 @@ foreach ( $fields as $field ) :
258
  $css,
259
  $options
260
  );
261
-
262
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
263
-
264
  break;
265
-
266
  case 'radio' :
267
-
268
  $field_options = maybe_unserialize( $field->field_options );
269
-
270
  $options = '';
271
-
272
  // Loop through each option and output
273
  foreach ( $field_options as $option => $value ) {
274
  $option++;
275
-
276
  $options .= sprintf(
277
- '<span><input type="radio" name="vfb-%1$d" id="%2$s-%3$d" value="%6$s" class="vfb-radio %4$s %5$s"%8$s /><label for="%2$s-%3$d" class="vfb-choice">%7$s</label></span>',
278
  $field_id,
279
  $id_attr,
280
  $option,
@@ -285,27 +284,27 @@ foreach ( $fields as $field ) :
285
  checked( $default, $option, 0 )
286
  );
287
  }
288
-
289
  $form_item = $options;
290
-
291
  $output .= '<div>';
292
-
293
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
294
-
295
  $output .= '<div style="clear:both"></div></div>';
296
-
297
  break;
298
-
299
  case 'checkbox' :
300
-
301
  $field_options = maybe_unserialize( $field->field_options );
302
-
303
  $options = '';
304
-
305
  // Loop through each option and output
306
  foreach ( $field_options as $option => $value ) {
307
  $options .= sprintf(
308
- '<span><input type="checkbox" name="vfb-%1$d[]" id="%2$s-%3$d" value="%6$s" class="vfb-checkbox %4$s %5$s"%8$s /><label for="%2$s-%3$d" class="vfb-choice">%7$s</label></span>',
309
  $field_id,
310
  $id_attr,
311
  $option,
@@ -316,21 +315,21 @@ foreach ( $fields as $field ) :
316
  checked( $default, ++$option, 0 )
317
  );
318
  }
319
-
320
  $form_item = $options;
321
-
322
  $output .= '<div>';
323
-
324
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
325
-
326
  $output .= '<div style="clear:both"></div></div>';
327
-
328
  break;
329
-
330
  case 'address' :
331
-
332
  $address = '';
333
-
334
  $address_parts = array(
335
  'address' => array(
336
  'label' => __( 'Address', 'visual-form-builder' ),
@@ -357,58 +356,58 @@ foreach ( $fields as $field ) :
357
  'layout' => 'right'
358
  )
359
  );
360
-
361
  $address_parts = apply_filters( 'vfb_address_labels', $address_parts, $form_id );
362
-
363
  foreach ( $address_parts as $parts => $part ) :
364
-
365
  // Make sure the second address line is not required
366
  $addr_required = ( 'address-2' !== $parts ) ? $required : '';
367
-
368
  if ( 'country' == $parts ) :
369
-
370
  $options = '';
371
-
372
  foreach ( $this->countries as $country ) {
373
  $options .= sprintf( '<option value="%1$s"%2$s>%1$s</option>', $country, selected( $default, $country, 0 ) );
374
  }
375
-
376
  $address .= sprintf(
377
  '<span class="vfb-%3$s"><select name="vfb-%1$d[%4$s]" class="vfb-select %7$s %8$s" id="%2$s-%4$s">%6$s</select><label for="%2$s-%4$s">%5$s</label></span>',
378
  $field_id,
379
  $id_attr,
380
- $part['layout'],
381
- $parts,
382
- $part['label'],
383
  $options,
384
  $addr_required,
385
  $css
386
  );
387
-
388
- else :
389
-
390
  $address .= sprintf(
391
  '<span class="vfb-%3$s"><input type="text" name="vfb-%1$d[%4$s]" id="%2$s-%4$s" maxlength="150" class="vfb-text vfb-medium %7$s %8$s" /><label for="%2$s-%4$s">%5$s</label></span>',
392
  $field_id,
393
  $id_attr,
394
- $part['layout'],
395
- $parts,
396
- $part['label'],
397
  $size,
398
  $addr_required,
399
  $css
400
  );
401
-
402
  endif;
403
-
404
  endforeach;
405
-
406
  $output .= "<div>$address</div>";
407
-
408
  break;
409
-
410
  case 'date' :
411
-
412
  $form_item = sprintf(
413
  '<input type="text" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text vfb-date-picker %4$s %5$s %6$s" />',
414
  $field_id,
@@ -418,36 +417,36 @@ foreach ( $fields as $field ) :
418
  $required,
419
  $css
420
  );
421
-
422
- $output .= ( !empty( $description ) ) ? sprintf( '<span>%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
423
-
424
  break;
425
-
426
  case 'time' :
427
-
428
  $hour = $minute = $ampm = '';
429
-
430
  // Get the time format (12 or 24)
431
  $time_format = str_replace( 'time-', '', $validation );
432
-
433
  $time_format = apply_filters( 'vfb_time_format', $time_format, $form_id );
434
  $total_mins = apply_filters( 'vfb_time_min_total', 55, $form_id );
435
  $min_interval = apply_filters( 'vfb_time_min_interval', 5, $form_id );
436
-
437
  // Set whether we start with 0 or 1 and how many total hours
438
  $hour_start = ( $time_format == '12' ) ? 1 : 0;
439
  $hour_total = ( $time_format == '12' ) ? 12 : 23;
440
-
441
  // Hour
442
  for ( $i = $hour_start; $i <= $hour_total; $i++ ) {
443
  $hour .= sprintf( '<option value="%1$02d">%1$02d</option>', $i );
444
  }
445
-
446
  // Minute
447
  for ( $i = 0; $i <= $total_mins; $i += $min_interval ) {
448
  $minute .= sprintf( '<option value="%1$02d">%1$02d</option>', $i );
449
  }
450
-
451
  // AM/PM
452
  if ( $time_format == '12' ) {
453
  $ampm = sprintf(
@@ -460,7 +459,7 @@ foreach ( $fields as $field ) :
460
  $css
461
  );
462
  }
463
-
464
  $form_item = sprintf(
465
  '<span class="vfb-time"><select name="vfb-%1$d[hour]" id="%2$s-hour" class="vfb-select %5$s %6$s">%3$s</select><label for="%2$s-hour">HH</label></span>' .
466
  '<span class="vfb-time"><select name="vfb-%1$d[min]" id="%2$s-min" class="vfb-select %5$s %6$s">%4$s</select><label for="%2$s-min">MM</label></span>' .
@@ -473,18 +472,17 @@ foreach ( $fields as $field ) :
473
  $css,
474
  $ampm
475
  );
476
-
477
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
478
-
479
  $output .= '<div class="clear"></div>';
480
-
481
  break;
482
-
483
  case 'html' :
484
-
485
  $form_item = sprintf(
486
- '<script type="text/javascript">edToolbar("%2$s");</script>' .
487
- '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea vfbEditor %4$s %5$s %6$s">%3$s</textarea>',
488
  $field_id,
489
  $id_attr,
490
  $default,
@@ -492,21 +490,21 @@ foreach ( $fields as $field ) :
492
  $required,
493
  $css
494
  );
495
-
496
  $output .= '<div>';
497
-
498
- $output .= ( !empty( $description ) ) ? sprintf( '<span><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
499
-
500
  $output .= '</div>';
501
-
502
  break;
503
-
504
  case 'file-upload' :
505
-
506
  $options = maybe_unserialize( $field->field_options );
507
  $accept = ( !empty( $options[0] ) ) ? " {accept:'$options[0]'}" : '';
508
-
509
-
510
  $form_item = sprintf(
511
  '<input type="file" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s %8$s" />',
512
  $field_id,
@@ -518,18 +516,18 @@ foreach ( $fields as $field ) :
518
  $css,
519
  $accept
520
  );
521
-
522
- $output .= ( !empty( $description ) ) ? sprintf( '<span>%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
523
-
524
  break;
525
-
526
  case 'instructions' :
527
-
528
  $output .= wp_specialchars_decode( esc_html( stripslashes( $field->field_description ) ), ENT_QUOTES );
529
-
530
  break;
531
-
532
- case 'submit' :
533
  $submit = sprintf(
534
  '<li class="vfb-item vfb-item-submit" id="%2$s">
535
  <input type="submit" name="visual-form-builder-submit" id="sendmail" value="%3$s" class="vfb-submit %4$s" />
@@ -539,9 +537,9 @@ foreach ( $fields as $field ) :
539
  wp_specialchars_decode( esc_html( $field_name ), ENT_QUOTES ),
540
  $css
541
  );
542
-
543
  break;
544
-
545
  default:
546
  echo '';
547
  }
@@ -556,7 +554,7 @@ $output .= '</ul><br /></fieldset>';
556
 
557
  // Make sure the verification displays even if they have not updated their form
558
  if ( empty( $verification ) ) :
559
-
560
  $verification = sprintf(
561
  '<fieldset class="vfb-fieldset vfb-verification">
562
  <div class="vfb-legend"><h3>%1$s</h3></div>
@@ -569,7 +567,7 @@ if ( empty( $verification ) ) :
569
  $count,
570
  __( 'Please enter any two digits with <strong>no</strong> spaces (Example: 12)' , 'visual-form-builder')
571
  );
572
-
573
  endif;
574
 
575
  // Output our security test
@@ -589,4 +587,7 @@ $output .= '</form>';
589
 
590
  // Close form container
591
  $output .= '</div> <!-- .visual-form-builder-container -->';
 
 
 
592
  ?>
4
  // Extract shortcode attributes, set defaults
5
  extract( shortcode_atts( array(
6
  'id' => ''
7
+ ), $atts )
8
  );
9
 
10
  // Add JavaScript files to the front-end, only once
16
 
17
 
18
  // If form is submitted, show success message, otherwise the form
19
+ if ( isset( $_POST['visual-form-builder-submit'] ) && isset( $_POST['form_id'] ) && $_POST['form_id'] == $form_id ) {
20
  $output = $this->confirmation();
21
  return;
22
  }
23
 
24
+ $order = sanitize_sql_orderby( 'form_id DESC' );
25
  $form = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
26
 
27
  // Return if no form found
38
  $submit = 'Submit';
39
  $verification = '';
40
 
41
+ $label_alignment = ( $form->form_label_alignment !== '' ) ? esc_attr( " $form->form_label_alignment" ) : '';
42
 
43
  // Start form container
44
  $output .= '<div class="visual-form-builder-container">';
46
  $output .= sprintf(
47
  '<form id="%1$s-%2$d" class="visual-form-builder %3$s %4$s" method="post" enctype="multipart/form-data">
48
  <input type="hidden" name="form_id" value="%5$d" />',
49
+ esc_attr( $form->form_key ),
50
  $form_id,
51
  "vfb-form-$form_id",
52
  $label_alignment,
55
  foreach ( $fields as $field ) :
56
  $field_id = absint( $field->field_id );
57
  $field_type = esc_html( $field->field_type );
58
+ $field_name = esc_html( stripslashes( $field->field_name ) );
59
  $required_span = ( !empty( $field->field_required ) && $field->field_required === 'yes' ) ? ' <span>*</span>' : '';
60
+ $required = ( !empty( $field->field_required ) && $field->field_required === 'yes' ) ? esc_attr( ' required' ) : '';
61
+ $validation = ( !empty( $field->field_validation ) ) ? esc_attr( " $field->field_validation" ) : '';
62
+ $css = ( !empty( $field->field_css ) ) ? esc_attr( " $field->field_css" ) : '';
63
+ $id_attr = "vfb-{$field_id}";
64
+ $size = ( !empty( $field->field_size ) ) ? esc_attr( " vfb-$field->field_size" ) : '';
65
+ $layout = ( !empty( $field->field_layout ) ) ? esc_attr( " vfb-$field->field_layout" ) : '';
66
  $default = ( !empty( $field->field_default ) ) ? wp_specialchars_decode( esc_html( stripslashes( $field->field_default ) ), ENT_QUOTES ) : '';
67
  $description = ( !empty( $field->field_description ) ) ? wp_specialchars_decode( esc_html( stripslashes( $field->field_description ) ), ENT_QUOTES ) : '';
68
+
69
  // Close each section
70
  if ( $open_section == true ) :
71
  // If this field's parent does NOT equal our section ID
74
  $open_section = false;
75
  endif;
76
  endif;
77
+
78
  // Force an initial fieldset and display an error message to strongly encourage user to add one
79
  if ( $count === 1 && $field_type !== 'fieldset' ) :
80
  $output .= '<fieldset class="fieldset"><div class="legend" style="background-color:#FFEBE8;border:1px solid #CC0000;"><h3>Oops! Missing Fieldset</h3><p style="color:black;">If you are seeing this message, it means you need to <strong>add a Fieldset to the beginning of your form</strong>. Your form may not function or display properly without one.</p></div><ul class="section section-' . $count . '">';
81
+
82
  $count++;
83
  endif;
84
+
85
  if ( $field_type == 'fieldset' ) :
86
  // Close each fieldset
87
  if ( $open_fieldset == true )
88
  $output .= '</ul><br /></fieldset>';
89
+
90
  $output .= sprintf(
91
+ '<fieldset class="vfb-fieldset vfb-fieldset-%1$d %2$s %3$s" id="item-%4$s"><div class="vfb-legend"><h3>%5$s</h3></div><ul class="vfb-section vfb-section-%1$d">',
92
  $count,
93
+ esc_attr( $field->field_key ),
94
  $css,
95
  $id_attr,
96
  $field_name
97
  );
98
+
99
  $open_fieldset = true;
100
  $count++;
101
+
102
  elseif ( $field_type == 'section' ) :
103
+
104
  $output .= sprintf(
105
+ '<div id="%1$s" class="vfb-section-div %2$s"><h4>%3$s</h4>',
106
  $id_attr,
107
  $css,
108
  $field_name
109
  );
110
+
111
  // Save section ID for future comparison
112
  $sec_id = $field_id;
113
  $open_section = true;
114
+
115
  elseif ( !in_array( $field_type, array( 'verification', 'secret', 'submit' ) ) ) :
116
+
117
+ $columns_choice = ( !empty( $field->field_size ) && in_array( $field_type, array( 'radio', 'checkbox' ) ) ) ? esc_attr( " vfb-$field->field_size" ) : '';
118
+
119
  if ( $field_type !== 'hidden' ) :
120
+
 
121
  $output .= sprintf(
122
  '<li class="vfb-item vfb-item-%1$s %2$s %3$s" id="item-%4$s"><label for="%4$s" class="vfb-desc">%5$s %6$s</label>',
123
  $field_type,
128
  $required_span
129
  );
130
  endif;
131
+
132
  elseif ( in_array( $field_type, array( 'verification', 'secret' ) ) ) :
133
+
134
  if ( $field_type == 'verification' ) :
135
  $verification .= sprintf(
136
+ '<fieldset class="vfb-fieldset vfb-fieldset-%1$d %2$s %3$s" id="item-%4$s"><div class="vfb-legend"><h3>%5$s</h3></div><ul class="vfb-section vfb-section-%1$d">',
137
  $count,
138
+ esc_attr( $field->field_key ),
139
  $css,
140
  $id_attr,
141
  $field_name
142
  );
143
  endif;
144
+
145
  if ( $field_type == 'secret' ) :
146
  // Default logged in values
147
  $logged_in_display = $logged_in_value = '';
151
  // Hide the secret field if logged in
152
  $logged_in_display = ' style="display:none;"';
153
  $logged_in_value = 14;
154
+
155
  // Get logged in user details
156
  $user = wp_get_current_user();
157
  $user_identity = ! empty( $user->ID ) ? $user->display_name : '';
158
+
159
  // Display a message for logged in users
160
  $verification .= '<li class="vfb-item" id="' . $id_attr . '">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. Verification not required.', 'visual-form-builder' ), admin_url( 'profile.php' ), $user_identity ) . '</li>';
161
  endif;
162
+
163
  $validation = ' {digits:true,maxlength:2,minlength:2}';
164
+ $verification .= '<li class="vfb-item vfb-item-' . $field_type . '"' . $logged_in_display . '><label for="' . $id_attr . '" class="vfb-desc">'. $field_name . $required_span . '</label>';
165
+
166
  // Set variable for testing if required is Yes/No
167
  if ( $required == '' )
168
  $verification .= '<input type="hidden" name="_vfb-required-secret" value="0" />';
169
+
170
  $verification .= '<input type="hidden" name="_vfb-secret" value="vfb-' . $field_id . '" />';
171
+
172
  $verification_item = sprintf(
173
  '<input type="text" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s" />',
174
  $field_id,
179
  $validation,
180
  $css
181
  );
182
+
183
+ $verification .= ( !empty( $field->field_description ) ) ? sprintf( '<span class="vfb-span">%1$s<label>%2$s</label></span>', $verification_item, $description ) : $verification_item;
184
+
185
  endif;
186
  endif;
187
+
188
  switch ( $field_type ) {
189
  case 'text' :
190
  case 'email' :
192
  case 'currency' :
193
  case 'number' :
194
  case 'phone' :
195
+
196
  // HTML5 types
197
  if ( in_array( $field_type, array( 'email', 'url' ) ) )
198
  $type = esc_attr( $field_type );
200
  $type = 'tel';
201
  else
202
  $type = 'text';
203
+
204
  $form_item = sprintf(
205
  '<input type="%8$s" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s" />',
206
  $field_id,
212
  $css,
213
  $type
214
  );
215
+
216
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span">%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
217
+
218
  break;
219
+
220
  case 'textarea' :
221
+
222
  $form_item = sprintf(
223
  '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea %4$s %5$s %6$s">%3$s</textarea>',
224
  $field_id,
228
  $required,
229
  $css
230
  );
231
+
232
  $output .= '<div>';
233
+
234
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
235
+
236
  $output .= '</div>';
237
+
238
  break;
239
+
240
  case 'select' :
241
+
242
  $field_options = maybe_unserialize( $field->field_options );
243
+
244
  $options = '';
245
+
246
  // Loop through each option and output
247
  foreach ( $field_options as $option => $value ) {
248
  $options .= sprintf( '<option value="%1$s"%2$s>%1$s</option>', esc_attr(trim( stripslashes( $value ) ) ), selected( $default, ++$option, 0 ) );
249
  }
250
+
251
  $form_item = sprintf(
252
  '<select name="vfb-%1$d" id="%2$s" class="vfb-select %3$s %4$s %5$s">%6$s</select>',
253
  $field_id,
257
  $css,
258
  $options
259
  );
260
+
261
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
262
+
263
  break;
264
+
265
  case 'radio' :
266
+
267
  $field_options = maybe_unserialize( $field->field_options );
268
+
269
  $options = '';
270
+
271
  // Loop through each option and output
272
  foreach ( $field_options as $option => $value ) {
273
  $option++;
274
+
275
  $options .= sprintf(
276
+ '<span class="vfb-span"><input type="radio" name="vfb-%1$d" id="%2$s-%3$d" value="%6$s" class="vfb-radio %4$s %5$s"%8$s /><label for="%2$s-%3$d" class="vfb-choice">%7$s</label></span>',
277
  $field_id,
278
  $id_attr,
279
  $option,
284
  checked( $default, $option, 0 )
285
  );
286
  }
287
+
288
  $form_item = $options;
289
+
290
  $output .= '<div>';
291
+
292
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
293
+
294
  $output .= '<div style="clear:both"></div></div>';
295
+
296
  break;
297
+
298
  case 'checkbox' :
299
+
300
  $field_options = maybe_unserialize( $field->field_options );
301
+
302
  $options = '';
303
+
304
  // Loop through each option and output
305
  foreach ( $field_options as $option => $value ) {
306
  $options .= sprintf(
307
+ '<span class="vfb-span"><input type="checkbox" name="vfb-%1$d[]" id="%2$s-%3$d" value="%6$s" class="vfb-checkbox %4$s %5$s"%8$s /><label for="%2$s-%3$d" class="vfb-choice">%7$s</label></span>',
308
  $field_id,
309
  $id_attr,
310
  $option,
315
  checked( $default, ++$option, 0 )
316
  );
317
  }
318
+
319
  $form_item = $options;
320
+
321
  $output .= '<div>';
322
+
323
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
324
+
325
  $output .= '<div style="clear:both"></div></div>';
326
+
327
  break;
328
+
329
  case 'address' :
330
+
331
  $address = '';
332
+
333
  $address_parts = array(
334
  'address' => array(
335
  'label' => __( 'Address', 'visual-form-builder' ),
356
  'layout' => 'right'
357
  )
358
  );
359
+
360
  $address_parts = apply_filters( 'vfb_address_labels', $address_parts, $form_id );
361
+
362
  foreach ( $address_parts as $parts => $part ) :
363
+
364
  // Make sure the second address line is not required
365
  $addr_required = ( 'address-2' !== $parts ) ? $required : '';
366
+
367
  if ( 'country' == $parts ) :
368
+
369
  $options = '';
370
+
371
  foreach ( $this->countries as $country ) {
372
  $options .= sprintf( '<option value="%1$s"%2$s>%1$s</option>', $country, selected( $default, $country, 0 ) );
373
  }
374
+
375
  $address .= sprintf(
376
  '<span class="vfb-%3$s"><select name="vfb-%1$d[%4$s]" class="vfb-select %7$s %8$s" id="%2$s-%4$s">%6$s</select><label for="%2$s-%4$s">%5$s</label></span>',
377
  $field_id,
378
  $id_attr,
379
+ esc_attr( $part['layout'] ),
380
+ esc_attr( $parts ),
381
+ esc_html( $part['label'] ),
382
  $options,
383
  $addr_required,
384
  $css
385
  );
386
+
387
+ else :
388
+
389
  $address .= sprintf(
390
  '<span class="vfb-%3$s"><input type="text" name="vfb-%1$d[%4$s]" id="%2$s-%4$s" maxlength="150" class="vfb-text vfb-medium %7$s %8$s" /><label for="%2$s-%4$s">%5$s</label></span>',
391
  $field_id,
392
  $id_attr,
393
+ esc_attr( $part['layout'] ),
394
+ esc_attr( $parts ),
395
+ esc_html( $part['label'] ),
396
  $size,
397
  $addr_required,
398
  $css
399
  );
400
+
401
  endif;
402
+
403
  endforeach;
404
+
405
  $output .= "<div>$address</div>";
406
+
407
  break;
408
+
409
  case 'date' :
410
+
411
  $form_item = sprintf(
412
  '<input type="text" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text vfb-date-picker %4$s %5$s %6$s" />',
413
  $field_id,
417
  $required,
418
  $css
419
  );
420
+
421
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span">%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
422
+
423
  break;
424
+
425
  case 'time' :
426
+
427
  $hour = $minute = $ampm = '';
428
+
429
  // Get the time format (12 or 24)
430
  $time_format = str_replace( 'time-', '', $validation );
431
+
432
  $time_format = apply_filters( 'vfb_time_format', $time_format, $form_id );
433
  $total_mins = apply_filters( 'vfb_time_min_total', 55, $form_id );
434
  $min_interval = apply_filters( 'vfb_time_min_interval', 5, $form_id );
435
+
436
  // Set whether we start with 0 or 1 and how many total hours
437
  $hour_start = ( $time_format == '12' ) ? 1 : 0;
438
  $hour_total = ( $time_format == '12' ) ? 12 : 23;
439
+
440
  // Hour
441
  for ( $i = $hour_start; $i <= $hour_total; $i++ ) {
442
  $hour .= sprintf( '<option value="%1$02d">%1$02d</option>', $i );
443
  }
444
+
445
  // Minute
446
  for ( $i = 0; $i <= $total_mins; $i += $min_interval ) {
447
  $minute .= sprintf( '<option value="%1$02d">%1$02d</option>', $i );
448
  }
449
+
450
  // AM/PM
451
  if ( $time_format == '12' ) {
452
  $ampm = sprintf(
459
  $css
460
  );
461
  }
462
+
463
  $form_item = sprintf(
464
  '<span class="vfb-time"><select name="vfb-%1$d[hour]" id="%2$s-hour" class="vfb-select %5$s %6$s">%3$s</select><label for="%2$s-hour">HH</label></span>' .
465
  '<span class="vfb-time"><select name="vfb-%1$d[min]" id="%2$s-min" class="vfb-select %5$s %6$s">%4$s</select><label for="%2$s-min">MM</label></span>' .
472
  $css,
473
  $ampm
474
  );
475
+
476
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
477
+
478
  $output .= '<div class="clear"></div>';
479
+
480
  break;
481
+
482
  case 'html' :
483
+
484
  $form_item = sprintf(
485
+ '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea ckeditor %4$s %5$s %6$s">%3$s</textarea>',
 
486
  $field_id,
487
  $id_attr,
488
  $default,
490
  $required,
491
  $css
492
  );
493
+
494
  $output .= '<div>';
495
+
496
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span"><label>%2$s</label></span>%1$s', $form_item, $description ) : $form_item;
497
+
498
  $output .= '</div>';
499
+
500
  break;
501
+
502
  case 'file-upload' :
503
+
504
  $options = maybe_unserialize( $field->field_options );
505
  $accept = ( !empty( $options[0] ) ) ? " {accept:'$options[0]'}" : '';
506
+
507
+
508
  $form_item = sprintf(
509
  '<input type="file" name="vfb-%1$d" id="%2$s" value="%3$s" class="vfb-text %4$s %5$s %6$s %7$s %8$s" />',
510
  $field_id,
516
  $css,
517
  $accept
518
  );
519
+
520
+ $output .= ( !empty( $description ) ) ? sprintf( '<span class="vfb-span">%1$s<label>%2$s</label></span>', $form_item, $description ) : $form_item;
521
+
522
  break;
523
+
524
  case 'instructions' :
525
+
526
  $output .= wp_specialchars_decode( esc_html( stripslashes( $field->field_description ) ), ENT_QUOTES );
527
+
528
  break;
529
+
530
+ case 'submit' :
531
  $submit = sprintf(
532
  '<li class="vfb-item vfb-item-submit" id="%2$s">
533
  <input type="submit" name="visual-form-builder-submit" id="sendmail" value="%3$s" class="vfb-submit %4$s" />
537
  wp_specialchars_decode( esc_html( $field_name ), ENT_QUOTES ),
538
  $css
539
  );
540
+
541
  break;
542
+
543
  default:
544
  echo '';
545
  }
554
 
555
  // Make sure the verification displays even if they have not updated their form
556
  if ( empty( $verification ) ) :
557
+
558
  $verification = sprintf(
559
  '<fieldset class="vfb-fieldset vfb-verification">
560
  <div class="vfb-legend"><h3>%1$s</h3></div>
567
  $count,
568
  __( 'Please enter any two digits with <strong>no</strong> spaces (Example: 12)' , 'visual-form-builder')
569
  );
570
+
571
  endif;
572
 
573
  // Output our security test
587
 
588
  // Close form container
589
  $output .= '</div> <!-- .visual-form-builder-container -->';
590
+
591
+ // Force tags to balance
592
+ force_balance_tags( $output );
593
  ?>
js/ckeditor/ckeditor.js ADDED
@@ -0,0 +1,919 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ (function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a={timestamp:"D3NA",version:"4.1.1",revision:"5a2a7e3",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var a=document.getElementsByTagName("script"),d=0;d<a.length;d++){var c=a[d].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(c){b=c[1];break}}-1==b.indexOf(":/")&&(b=0===b.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+b:location.href.match(/^[^\?]*\/(?:)/)[0]+
6
+ b);if(!b)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return b}(),getUrl:function(b){-1==b.indexOf(":/")&&0!==b.indexOf("/")&&(b=this.basePath+b);this.timestamp&&("/"!=b.charAt(b.length-1)&&!/[&?]t=/.test(b))&&(b+=(0<=b.indexOf("?")?"&":"?")+"t="+this.timestamp);return b},domReady:function(){function b(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",b,
7
+ !1),a()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",b),a())}catch(d){}}function a(){for(var b;b=d.shift();)b()}var d=[];return function(a){d.push(a);"complete"===document.readyState&&setTimeout(b,1);if(1==d.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",b,!1),window.addEventListener("load",b,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",b);window.attachEvent("onload",b);a=!1;try{a=
8
+ !window.frameElement}catch(e){}if(document.documentElement.doScroll&&a){var c=function(){try{document.documentElement.doScroll("left")}catch(a){setTimeout(c,1);return}b()};c()}}}}()},c=window.CKEDITOR_GETURL;if(c){var b=a.getUrl;a.getUrl=function(f){return c.call(a,f)||b.call(a,f)}}return a}());
9
+ CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(a){var c=CKEDITOR.event.prototype,b;for(b in c)a[b]==void 0&&(a[b]=c[b])},CKEDITOR.event.prototype=function(){function a(f){var a=c(this);return a[f]||(a[f]=new b(f))}var c=function(b){b=b.getPrivate&&b.getPrivate()||b._||(b._={});return b.events||(b.events={})},b=function(b){this.name=b;this.listeners=[]};b.prototype={getListenerIndex:function(b){for(var a=0,d=this.listeners;a<d.length;a++)if(d[a].fn==b)return a;return-1}};
10
+ return{define:function(b,e){var d=a.call(this,b);CKEDITOR.tools.extend(d,e,true)},on:function(b,e,d,c,l){function i(a,h,n,p){a={name:b,sender:this,editor:a,data:h,listenerData:c,stop:n,cancel:p,removeListener:m};return e.call(d,a)===false?false:a.data}function m(){r.removeListener(b,e)}var n=a.call(this,b);if(n.getListenerIndex(e)<0){n=n.listeners;d||(d=this);isNaN(l)&&(l=10);var r=this;i.fn=e;i.priority=l;for(var p=n.length-1;p>=0;p--)if(n[p].priority<=l){n.splice(p+1,0,i);return{removeListener:m}}n.unshift(i)}return{removeListener:m}},
11
+ once:function(){var b=arguments[1];arguments[1]=function(a){a.removeListener();return b.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var b=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return b},fire:function(){var b=0,a=function(){b=1},d=0,j=function(){d=1};return function(l,i,m){var n=c(this)[l],l=b,r=d;b=d=0;if(n){var p=n.listeners;if(p.length)for(var p=p.slice(0),g,h=0;h<p.length;h++){if(n.errorProof)try{g=p[h].call(this,
12
+ m,i,a,j)}catch(u){}else g=p[h].call(this,m,i,a,j);g===false?d=1:typeof g!="undefined"&&(i=g);if(b||d)break}}i=d?false:typeof i=="undefined"?true:i;b=l;d=r;return i}}(),fireOnce:function(b,a,d){a=this.fire(b,a,d);delete c(this)[b];return a},removeListener:function(b,a){var d=c(this)[b];if(d){var j=d.getListenerIndex(a);j>=0&&d.listeners.splice(j,1)}},removeAllListeners:function(){var b=c(this),a;for(a in b)delete b[a]},hasListeners:function(b){return(b=c(this)[b])&&b.listeners.length>0}}}());
13
+ CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,c){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,c,this)},CKEDITOR.editor.prototype.fireOnce=function(a,c){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,c,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
14
+ CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),c=window.opera,b={ie:eval("/*@cc_on!@*/false"),opera:!!c&&c.version,webkit:a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat",mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var b=document.domain,a=window.location.hostname;return b!=a&&b!="["+a+"]"},secure:location.protocol==
15
+ "https:"};b.gecko=navigator.product=="Gecko"&&!b.webkit&&!b.opera;if(b.webkit)a.indexOf("chrome")>-1?b.chrome=true:b.safari=true;var f=0;if(b.ie){f=b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;b.ie9Compat=f==9;b.ie8Compat=f==8;b.ie7Compat=f==7;b.ie6Compat=f<7||b.quirks}if(b.gecko){var e=a.match(/rv:([\d\.]+)/);if(e){e=e[1].split(".");f=e[0]*1E4+(e[1]||0)*100+(e[2]||0)*1}}b.opera&&(f=parseFloat(c.version()));b.air&&(f=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));
16
+ b.webkit&&(f=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=f;b.isCompatible=b.iOS&&f>=534||!b.mobile&&(b.ie&&f>6||b.gecko&&f>=10801||b.opera&&f>=9.5||b.air&&f>=1||b.webkit&&f>=522||false);b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.opera?"opera":b.webkit?"webkit":"unknown");if(b.quirks)b.cssClass=b.cssClass+" cke_browser_quirks";if(b.ie){b.cssClass=b.cssClass+(" cke_browser_ie"+(b.quirks||b.version<7?"6":b.version));if(b.quirks)b.cssClass=b.cssClass+" cke_browser_iequirks"}if(b.gecko)if(f<
17
+ 10900)b.cssClass=b.cssClass+" cke_browser_gecko18";else if(f<=11E3)b.cssClass=b.cssClass+" cke_browser_gecko19";if(b.air)b.cssClass=b.cssClass+" cke_browser_air";return b}());
18
+ "unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a=
19
+ CKEDITOR.loadFullCore,c=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():c&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},c*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={};
20
+ (function(){var a=[],c=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(b,a){if(!b&&!a)return true;if(!b||!a||b.length!=a.length)return false;for(var e=0;e<b.length;e++)if(b[e]!=a[e])return false;return true},clone:function(b){var a;if(b&&b instanceof Array){a=[];for(var e=0;e<b.length;e++)a[e]=CKEDITOR.tools.clone(b[e]);return a}if(b===null||typeof b!="object"||
21
+ b instanceof String||b instanceof Number||b instanceof Boolean||b instanceof Date||b instanceof RegExp)return b;a=new b.constructor;for(e in b)a[e]=CKEDITOR.tools.clone(b[e]);return a},capitalize:function(b){return b.charAt(0).toUpperCase()+b.substring(1).toLowerCase()},extend:function(b){var a=arguments.length,e,d;if(typeof(e=arguments[a-1])=="boolean")a--;else if(typeof(e=arguments[a-2])=="boolean"){d=arguments[a-1];a=a-2}for(var c=1;c<a;c++){var l=arguments[c],i;for(i in l)if(e===true||b[i]==void 0)if(!d||
22
+ i in d)b[i]=l[i]}return b},prototypedCopy:function(b){var a=function(){};a.prototype=b;return new a},copy:function(b){var a={},e;for(e in b)a[e]=b[e];return a},isArray:function(b){return!!b&&b instanceof Array},isEmpty:function(b){for(var a in b)if(b.hasOwnProperty(a))return false;return true},cssVendorPrefix:function(b,a,e){if(e)return c+b+":"+a+";"+b+":"+a;e={};e[b]=a;e[c+b]=a;return e},cssStyleToDomStyle:function(){var b=document.createElement("div").style,a=typeof b.cssFloat!="undefined"?"cssFloat":
23
+ typeof b.styleFloat!="undefined"?"styleFloat":"float";return function(b){return b=="float"?a:b.replace(/-./g,function(b){return b.substr(1).toUpperCase()})}}(),buildStyleHtml:function(b){for(var b=[].concat(b),a,e=[],d=0;d<b.length;d++)if(a=b[d])/@import|[{}]/.test(a)?e.push("<style>"+a+"</style>"):e.push('<link type="text/css" rel=stylesheet href="'+a+'">');return e.join("")},htmlEncode:function(b){return(""+b).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;")},htmlEncodeAttr:function(b){return b.replace(/"/g,
24
+ "&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},getNextNumber:function(){var b=0;return function(){return++b}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(b,a){var e=a(b);e.prototype=b.prototype;return e},setTimeout:function(b,a,e,d,c){c||(c=window);e||(e=c);return c.setTimeout(function(){d?b.apply(e,[].concat(d)):b.apply(e)},a||0)},trim:function(){var b=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(a){return a.replace(b,"")}}(),ltrim:function(){var b=/^[ \t\n\r]+/g;
25
+ return function(a){return a.replace(b,"")}}(),rtrim:function(){var b=/[ \t\n\r]+$/g;return function(a){return a.replace(b,"")}}(),indexOf:function(b,a){if(typeof a=="function")for(var e=0,d=b.length;e<d;e++){if(a(b[e]))return e}else{if(b.indexOf)return b.indexOf(a);e=0;for(d=b.length;e<d;e++)if(b[e]===a)return e}return-1},search:function(b,a){var e=CKEDITOR.tools.indexOf(b,a);return e>=0?b[e]:null},bind:function(b,a){return function(){return b.apply(a,arguments)}},createClass:function(b){var a=b.$,
26
+ e=b.base,d=b.privates||b._,c=b.proto,b=b.statics;!a&&(a=function(){e&&this.base.apply(this,arguments)});if(d)var l=a,a=function(){var b=this._||(this._={}),a;for(a in d){var f=d[a];b[a]=typeof f=="function"?CKEDITOR.tools.bind(f,this):f}l.apply(this,arguments)};if(e){a.prototype=this.prototypedCopy(e.prototype);a.prototype.constructor=a;a.base=e;a.baseProto=e.prototype;a.prototype.base=function(){this.base=e.prototype.base;e.apply(this,arguments);this.base=arguments.callee}}c&&this.extend(a.prototype,
27
+ c,true);b&&this.extend(a,b,true);return a},addFunction:function(b,f){return a.push(function(){return b.apply(f||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var f=a[b];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var b=/^-?\d+\.?\d*px$/,a;return function(e){a=CKEDITOR.tools.trim(e+"")+"px";return b.test(a)?a:e||""}}(),convertToPx:function(){var b;return function(a){if(!b){b=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',
28
+ CKEDITOR.document);CKEDITOR.document.getBody().append(b)}if(!/%$/.test(a)){b.setStyle("width",a);return b.$.clientWidth}return a}}(),repeat:function(b,a){return Array(a+1).join(b)},tryThese:function(){for(var b,a=0,e=arguments.length;a<e;a++){var d=arguments[a];try{b=d();break}catch(c){}}return b},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(b){return function(){var a=arguments,e=this;window.setTimeout(function(){b.apply(e,a)},0)}},normalizeCssText:function(b,
29
+ a){var e=[],d,c=CKEDITOR.tools.parseCssText(b,true,a);for(d in c)e.push(d+":"+c[d]);e.sort();return e.length?e.join(";")+";":""},convertRgbToHex:function(b){return b.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(b,a,d,c){b=[a,d,c];for(a=0;a<3;a++)b[a]=("0"+parseInt(b[a],10).toString(16)).slice(-2);return"#"+b.join("")})},parseCssText:function(b,a,e){var d={};if(e){e=new CKEDITOR.dom.element("span");e.setAttribute("style",b);b=CKEDITOR.tools.convertRgbToHex(e.getAttribute("style")||
30
+ "")}if(!b||b==";")return d;b.replace(/&quot;/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(b,e,c){if(a){e=e.toLowerCase();e=="font-family"&&(c=c.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,","));c=CKEDITOR.tools.trim(c)}d[e]=c});return d},writeCssText:function(b,a){var e,c=[];for(e in b)c.push(e+":"+b[e]);a&&c.sort();return c.join("; ")},objectCompare:function(b,a,c){var d;if(!b&&!a)return true;if(!b||!a)return false;for(d in b)if(b[d]!=a[d])return false;if(!c)for(d in a)if(b[d]!=
31
+ a[d])return false;return true},objectKeys:function(b){var a=[],c;for(c in b)a.push(c);return a},convertArrayToObject:function(b,a){var c={};arguments.length==1&&(a=true);for(var d=0,j=b.length;d<j;++d)c[b[d]]=a;return c}}})();
32
+ CKEDITOR.dtd=function(){var a=CKEDITOR.tools.extend,c=function(b,a){for(var f=CKEDITOR.tools.clone(b),c=1;c<arguments.length;c++){var a=arguments[c],g;for(g in a)delete f[g]}return f},b={},f={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},d={command:1,link:1,meta:1,noscript:1,script:1,style:1},j={},l={"#":1},i={center:1,dir:1,noframes:1};
33
+ a(b,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},l,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});a(f,e,b,i);c={a:c(b,{a:1,button:1}),abbr:b,address:f,
34
+ area:j,article:a({style:1},f),aside:a({style:1},f),audio:a({source:1,track:1},f),b:b,base:j,bdi:b,bdo:b,blockquote:f,body:f,br:j,button:c(b,{a:1,button:1}),canvas:b,caption:f,cite:b,code:b,col:j,colgroup:{col:1},command:j,datalist:a({option:1},b),dd:f,del:b,details:a({summary:1},f),dfn:b,div:a({style:1},f),dl:{dt:1,dd:1},dt:f,em:b,embed:j,fieldset:a({legend:1},f),figcaption:f,figure:a({figcaption:1},f),footer:f,form:f,h1:b,h2:b,h3:b,h4:b,h5:b,h6:b,head:a({title:1,base:1},d),header:f,hgroup:{h1:1,
35
+ h2:1,h3:1,h4:1,h5:1,h6:1},hr:j,html:a({head:1,body:1},f,d),i:b,iframe:l,img:j,input:j,ins:b,kbd:b,keygen:j,label:b,legend:b,li:f,link:j,map:f,mark:b,menu:a({li:1},f),meta:j,meter:c(b,{meter:1}),nav:f,noscript:a({link:1,meta:1,style:1},b),object:a({param:1},b),ol:{li:1},optgroup:{option:1},option:l,output:b,p:b,param:j,pre:b,progress:c(b,{progress:1}),q:b,rp:b,rt:b,ruby:a({rp:1,rt:1},b),s:b,samp:b,script:l,section:a({style:1},f),select:{optgroup:1,option:1},small:b,source:j,span:b,strong:b,style:l,
36
+ sub:b,summary:b,sup:b,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:f,textarea:l,tfoot:{tr:1},th:f,thead:{tr:1},time:c(b,{time:1}),title:l,tr:{th:1,td:1},track:j,u:b,ul:{li:1},"var":b,video:a({source:1,track:1},f),wbr:j,acronym:b,applet:a({param:1},f),basefont:j,big:b,center:f,dialog:j,dir:{li:1},font:b,isindex:j,noframes:f,strike:b,tt:b};a(c,{$block:a({audio:1,dd:1,dt:1,li:1,video:1},e,i),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
37
+ fieldset:1,figure:1,footer:1,form:1,header:1,hgroup:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:b,$list:{dl:1,ol:1,
38
+ ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:a({body:1,head:1,html:1},c.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,
39
+ sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return c}();CKEDITOR.dom.event=function(a){this.$=a};
40
+ CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var a=this.getKey();if(this.$.ctrlKey||this.$.metaKey)a=a+CKEDITOR.CTRL;this.$.shiftKey&&(a=a+CKEDITOR.SHIFT);this.$.altKey&&(a=a+CKEDITOR.ALT);return a},preventDefault:function(a){var c=this.$;c.preventDefault?c.preventDefault():c.returnValue=false;a&&this.stopPropagation()},stopPropagation:function(){var a=this.$;a.stopPropagation?a.stopPropagation():a.cancelBubble=true},getTarget:function(){var a=
41
+ this.$.target||this.$.srcElement;return a?new CKEDITOR.dom.node(a):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var a=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(a.documentElement.scrollLeft||a.body.scrollLeft),y:this.$.pageY||this.$.clientY+(a.documentElement.scrollTop||a.body.scrollTop)}}};CKEDITOR.CTRL=1114112;CKEDITOR.SHIFT=2228224;CKEDITOR.ALT=4456448;CKEDITOR.EVENT_PHASE_CAPTURING=1;CKEDITOR.EVENT_PHASE_AT_TARGET=2;
42
+ CKEDITOR.EVENT_PHASE_BUBBLING=3;CKEDITOR.dom.domObject=function(a){if(a)this.$=a};
43
+ CKEDITOR.dom.domObject.prototype=function(){var a=function(a,b){return function(f){typeof CKEDITOR!="undefined"&&a.fire(b,new CKEDITOR.dom.event(f))}};return{getPrivate:function(){var a;if(!(a=this.getCustomData("_")))this.setCustomData("_",a={});return a},on:function(c){var b=this.getCustomData("_cke_nativeListeners");if(!b){b={};this.setCustomData("_cke_nativeListeners",b)}if(!b[c]){b=b[c]=a(this,c);this.$.addEventListener?this.$.addEventListener(c,b,!!CKEDITOR.event.useCapture):this.$.attachEvent&&
44
+ this.$.attachEvent("on"+c,b)}return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(a){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(a)){var b=this.getCustomData("_cke_nativeListeners"),f=b&&b[a];if(f){this.$.removeEventListener?this.$.removeEventListener(a,f,false):this.$.detachEvent&&this.$.detachEvent("on"+a,f);delete b[a]}}},removeAllListeners:function(){var a=this.getCustomData("_cke_nativeListeners"),b;for(b in a){var f=a[b];this.$.detachEvent?
45
+ this.$.detachEvent("on"+b,f):this.$.removeEventListener&&this.$.removeEventListener(b,f,false);delete a[b]}}}}();
46
+ (function(a){var c={};CKEDITOR.on("reset",function(){c={}});a.equals=function(b){try{return b&&b.$===this.$}catch(a){return false}};a.setCustomData=function(b,a){var e=this.getUniqueId();(c[e]||(c[e]={}))[b]=a;return this};a.getCustomData=function(b){var a=this.$["data-cke-expando"];return(a=a&&c[a])&&b in a?a[b]:null};a.removeCustomData=function(b){var a=this.$["data-cke-expando"],a=a&&c[a],e,d;if(a){e=a[b];d=b in a;delete a[b]}return d?e:null};a.clearCustomData=function(){this.removeAllListeners();
47
+ var b=this.$["data-cke-expando"];b&&delete c[b]};a.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(a)})(CKEDITOR.dom.domObject.prototype);
48
+ CKEDITOR.dom.node=function(a){return a?new CKEDITOR.dom[a.nodeType==CKEDITOR.NODE_DOCUMENT?"document":a.nodeType==CKEDITOR.NODE_ELEMENT?"element":a.nodeType==CKEDITOR.NODE_TEXT?"text":a.nodeType==CKEDITOR.NODE_COMMENT?"comment":a.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](a):this};CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject;CKEDITOR.NODE_ELEMENT=1;CKEDITOR.NODE_DOCUMENT=9;CKEDITOR.NODE_TEXT=3;CKEDITOR.NODE_COMMENT=8;CKEDITOR.NODE_DOCUMENT_FRAGMENT=11;
49
+ CKEDITOR.POSITION_IDENTICAL=0;CKEDITOR.POSITION_DISCONNECTED=1;CKEDITOR.POSITION_FOLLOWING=2;CKEDITOR.POSITION_PRECEDING=4;CKEDITOR.POSITION_IS_CONTAINED=8;CKEDITOR.POSITION_CONTAINS=16;
50
+ CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(a,c){a.append(this,c);return a},clone:function(a,c){var b=this.$.cloneNode(a),f=function(b){b["data-cke-expando"]&&(b["data-cke-expando"]=false);if(b.nodeType==CKEDITOR.NODE_ELEMENT){c||b.removeAttribute("id",false);if(a)for(var b=b.childNodes,d=0;d<b.length;d++)f(b[d])}};f(b);return new CKEDITOR.dom.node(b)},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(a){a.$.parentNode.insertBefore(this.$,
51
+ a.$.nextSibling);return a},insertBefore:function(a){a.$.parentNode.insertBefore(this.$,a.$);return a},insertBeforeMe:function(a){this.$.parentNode.insertBefore(a.$,this.$);return a},getAddress:function(a){for(var c=[],b=this.getDocument().$.documentElement,f=this.$;f&&f!=b;){var e=f.parentNode;e&&c.unshift(this.getIndex.call({$:f},a));f=e}return c},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(a){var c=this.$,b=-1,
52
+ f;if(!this.$.parentNode)return b;do if(!a||!(c!=this.$&&c.nodeType==CKEDITOR.NODE_TEXT&&(f||!c.nodeValue))){b++;f=c.nodeType==CKEDITOR.NODE_TEXT}while(c=c.previousSibling);return b},getNextSourceNode:function(a,c,b){if(b&&!b.call)var f=b,b=function(b){return!b.equals(f)};var a=!a&&this.getFirst&&this.getFirst(),e;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&b&&b(this,true)===false)return null;a=this.getNext()}for(;!a&&(e=(e||this).getParent());){if(b&&b(e,true)===false)return null;a=e.getNext()}return!a||
53
+ b&&b(a)===false?null:c&&c!=a.type?a.getNextSourceNode(false,c,b):a},getPreviousSourceNode:function(a,c,b){if(b&&!b.call)var f=b,b=function(b){return!b.equals(f)};var a=!a&&this.getLast&&this.getLast(),e;if(!a){if(this.type==CKEDITOR.NODE_ELEMENT&&b&&b(this,true)===false)return null;a=this.getPrevious()}for(;!a&&(e=(e||this).getParent());){if(b&&b(e,true)===false)return null;a=e.getPrevious()}return!a||b&&b(a)===false?null:c&&a.type!=c?a.getPreviousSourceNode(false,c,b):a},getPrevious:function(a){var c=
54
+ this.$,b;do b=(c=c.previousSibling)&&c.nodeType!=10&&new CKEDITOR.dom.node(c);while(b&&a&&!a(b));return b},getNext:function(a){var c=this.$,b;do b=(c=c.nextSibling)&&new CKEDITOR.dom.node(c);while(b&&a&&!a(b));return b},getParent:function(a){var c=this.$.parentNode;return c&&(c.nodeType==CKEDITOR.NODE_ELEMENT||a&&c.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(c):null},getParents:function(a){var c=this,b=[];do b[a?"push":"unshift"](c);while(c=c.getParent());return b},getCommonAncestor:function(a){if(a.equals(this))return this;
55
+ if(a.contains&&a.contains(this))return a;var c=this.contains?this:this.getParent();do if(c.contains(a))return c;while(c=c.getParent());return null},getPosition:function(a){var c=this.$,b=a.$;if(c.compareDocumentPosition)return c.compareDocumentPosition(b);if(c==b)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&a.type==CKEDITOR.NODE_ELEMENT){if(c.contains){if(c.contains(b))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(b.contains(c))return CKEDITOR.POSITION_IS_CONTAINED+
56
+ CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in c)return c.sourceIndex<0||b.sourceIndex<0?CKEDITOR.POSITION_DISCONNECTED:c.sourceIndex<b.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}for(var c=this.getAddress(),a=a.getAddress(),b=Math.min(c.length,a.length),f=0;f<=b-1;f++)if(c[f]!=a[f]){if(f<b)return c[f]<a[f]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;break}return c.length<a.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+
57
+ CKEDITOR.POSITION_FOLLOWING},getAscendant:function(a,c){var b=this.$,f;if(!c)b=b.parentNode;for(;b;){if(b.nodeName&&(f=b.nodeName.toLowerCase(),typeof a=="string"?f==a:f in a))return new CKEDITOR.dom.node(b);try{b=b.parentNode}catch(e){b=null}}return null},hasAscendant:function(a,c){var b=this.$;if(!c)b=b.parentNode;for(;b;){if(b.nodeName&&b.nodeName.toLowerCase()==a)return true;b=b.parentNode}return false},move:function(a,c){a.append(this.remove(),c)},remove:function(a){var c=this.$,b=c.parentNode;
58
+ if(b){if(a)for(;a=c.firstChild;)b.insertBefore(c.removeChild(a),c);b.removeChild(c)}return this},replace:function(a){this.insertBefore(a);a.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var a;this.getFirst&&(a=this.getFirst());){if(a.type==CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.ltrim(a.getText()),b=a.getLength();if(c){if(c.length<b){a.split(b-c.length);this.$.removeChild(this.$.firstChild)}}else{a.remove();continue}}break}},rtrim:function(){for(var a;this.getLast&&(a=
59
+ this.getLast());){if(a.type==CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.rtrim(a.getText()),b=a.getLength();if(c){if(c.length<b){a.split(c.length);this.$.lastChild.parentNode.removeChild(this.$.lastChild)}}else{a.remove();continue}}break}if(!CKEDITOR.env.ie&&!CKEDITOR.env.opera)(a=this.$.lastChild)&&(a.type==1&&a.nodeName.toLowerCase()=="br")&&a.parentNode.removeChild(a)},isReadOnly:function(){var a=this;this.type!=CKEDITOR.NODE_ELEMENT&&(a=this.getParent());if(a&&typeof a.$.isContentEditable!="undefined")return!(a.$.isContentEditable||
60
+ a.data("cke-editable"));for(;a;){if(a.data("cke-editable"))break;if(a.getAttribute("contentEditable")=="false")return true;if(a.getAttribute("contentEditable")=="true")break;a=a.getParent()}return!a}});CKEDITOR.dom.window=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject;
61
+ CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var a=this.$.document,c=a.compatMode=="CSS1Compat";return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},getScrollPosition:function(){var a=this.$;if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};a=a.document;return{x:a.documentElement.scrollLeft||a.body.scrollLeft||0,y:a.documentElement.scrollTop||
62
+ a.body.scrollTop||0}},getFrame:function(){var a=this.$.frameElement;return a?new CKEDITOR.dom.element.get(a):null}});CKEDITOR.dom.document=function(a){CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;
63
+ CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(a){if(this.$.createStyleSheet)this.$.createStyleSheet(a);else{var c=new CKEDITOR.dom.element("link");c.setAttributes({rel:"stylesheet",type:"text/css",href:a});this.getHead().append(c)}},appendStyleText:function(a){if(this.$.createStyleSheet){var c=this.$.createStyleSheet("");c.cssText=a}else{var b=new CKEDITOR.dom.element("style",this);b.append(new CKEDITOR.dom.text(a,this));this.getHead().append(b)}return c||
64
+ b.$.sheet},createElement:function(a,c){var b=new CKEDITOR.dom.element(a,this);if(c){c.attributes&&b.setAttributes(c.attributes);c.styles&&b.setStyles(c.styles)}return b},createText:function(a){return new CKEDITOR.dom.text(a,this)},focus:function(){this.getWindow().focus()},getActive:function(){return new CKEDITOR.dom.element(this.$.activeElement)},getById:function(a){return(a=this.$.getElementById(a))?new CKEDITOR.dom.element(a):null},getByAddress:function(a,c){for(var b=this.$.documentElement,f=
65
+ 0;b&&f<a.length;f++){var e=a[f];if(c)for(var d=-1,j=0;j<b.childNodes.length;j++){var l=b.childNodes[j];if(!(c===true&&l.nodeType==3&&l.previousSibling&&l.previousSibling.nodeType==3)){d++;if(d==e){b=l;break}}}else b=b.childNodes[e]}return b?new CKEDITOR.dom.node(b):null},getElementsByTag:function(a,c){if((!CKEDITOR.env.ie||document.documentMode>8)&&c)a=c+":"+a;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a=
66
+ a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){var a=new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=function(){return a})()},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.isCustomDomain()&&(this.$.domain=document.domain);
67
+ this.$.write(a);this.$.close()}});CKEDITOR.dom.nodeList=function(a){this.$=a};CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(a){if(a<0||a>=this.$.length)return null;return(a=this.$[a])?new CKEDITOR.dom.node(a):null}};CKEDITOR.dom.element=function(a,c){typeof a=="string"&&(a=(c?c.$:document).createElement(a));CKEDITOR.dom.domObject.call(this,a)};
68
+ CKEDITOR.dom.element.get=function(a){return(a=typeof a=="string"?document.getElementById(a)||document.getElementsByName(a)[0]:a)&&(a.$?a:new CKEDITOR.dom.element(a))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(a,c){var b=new CKEDITOR.dom.element("div",c);b.setHtml(a);return b.getFirst().remove()};
69
+ CKEDITOR.dom.element.setMarker=function(a,c,b,f){var e=c.getCustomData("list_marker_id")||c.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),d=c.getCustomData("list_marker_names")||c.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");a[e]=c;d[b]=1;return c.setCustomData(b,f)};CKEDITOR.dom.element.clearAllMarkers=function(a){for(var c in a)CKEDITOR.dom.element.clearMarkers(a,a[c],1)};
70
+ CKEDITOR.dom.element.clearMarkers=function(a,c,b){var f=c.getCustomData("list_marker_names"),e=c.getCustomData("list_marker_id"),d;for(d in f)c.removeCustomData(d);c.removeCustomData("list_marker_names");if(b){c.removeCustomData("list_marker_id");delete a[e]}};
71
+ (function(){function a(b){for(var a=0,e=0,d=c[b].length;e<d;e++)a=a+(parseInt(this.getComputedStyle(c[b][e])||0,10)||0);return a}CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:function(b){var a=this.$.className;a&&(RegExp("(?:^|\\s)"+b+"(?:\\s|$)","").test(a)||(a=a+(" "+b)));this.$.className=a||b},removeClass:function(b){var a=this.getAttribute("class");if(a){b=RegExp("(?:^|\\s+)"+b+"(?=\\s|$)","i");if(b.test(a))(a=a.replace(b,"").replace(/^\s+/,""))?this.setAttribute("class",
72
+ a):this.removeAttribute("class")}return this},hasClass:function(b){return RegExp("(?:^|\\s+)"+b+"(?=\\s|$)","").test(this.getAttribute("class"))},append:function(b,a){typeof b=="string"&&(b=this.getDocument().createElement(b));a?this.$.insertBefore(b.$,this.$.firstChild):this.$.appendChild(b.$);return b},appendHtml:function(b){if(this.$.childNodes.length){var a=new CKEDITOR.dom.element("div",this.getDocument());a.setHtml(b);a.moveChildren(this)}else this.setHtml(b)},appendText:function(b){this.$.text!=
73
+ void 0?this.$.text=this.$.text+b:this.append(new CKEDITOR.dom.text(b))},appendBogus:function(){for(var b=this.getLast();b&&b.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(b.getText());)b=b.getPrevious();if(!b||!b.is||!b.is("br")){b=CKEDITOR.env.opera?this.getDocument().createText(""):this.getDocument().createElement("br");CKEDITOR.env.gecko&&b.setAttribute("type","_moz");this.append(b)}},breakParent:function(b){var a=new CKEDITOR.dom.range(this.getDocument());a.setStartAfter(this);a.setEndAfter(b);
74
+ b=a.extractContents();a.insertNode(this.remove());b.insertAfterNode(this)},contains:CKEDITOR.env.ie||CKEDITOR.env.webkit?function(b){var a=this.$;return b.type!=CKEDITOR.NODE_ELEMENT?a.contains(b.getParent().$):a!=b.$&&a.contains(b.$)}:function(b){return!!(this.$.compareDocumentPosition(b.$)&16)},focus:function(){function b(){try{this.$.focus()}catch(b){}}return function(a){a?CKEDITOR.tools.setTimeout(b,100,this):b.call(this)}}(),getHtml:function(){var b=this.$.innerHTML;return CKEDITOR.env.ie?b.replace(/<\?[^>]*>/g,
75
+ ""):b},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var b=this.$.ownerDocument.createElement("div");b.appendChild(this.$.cloneNode(true));return b.innerHTML},getClientRect:function(){var b=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!b.width&&(b.width=b.right-b.left);!b.height&&(b.height=b.bottom-b.top);return b},setHtml:function(){var b=function(b){return this.$.innerHTML=b};return CKEDITOR.env.ie&&CKEDITOR.env.version<9?function(b){try{return this.$.innerHTML=
76
+ b}catch(a){this.$.innerHTML="";var c=new CKEDITOR.dom.element("body",this.getDocument());c.$.innerHTML=b;for(c=c.getChildren();c.count();)this.append(c.getItem(0));return b}}:b}(),setText:function(b){CKEDITOR.dom.element.prototype.setText=this.$.innerText!=void 0?function(b){return this.$.innerText=b}:function(b){return this.$.textContent=b};return this.setText(b)},getAttribute:function(){var b=function(b){return this.$.getAttribute(b,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?
77
+ function(b){switch(b){case "class":b="className";break;case "http-equiv":b="httpEquiv";break;case "name":return this.$.name;case "tabindex":b=this.$.getAttribute(b,2);b!==0&&this.$.tabIndex===0&&(b=null);return b;case "checked":b=this.$.attributes.getNamedItem(b);return(b.specified?b.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[b];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?
78
+ this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(b,2)}:b}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:CKEDITOR.env.ie?function(b){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(b)]}:function(b){var a=this.getWindow().$.getComputedStyle(this.$,null);return a?a.getPropertyValue(b):""},getDtd:function(){var b=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return b};return b},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
79
+ getTabIndex:CKEDITOR.env.ie?function(){var b=this.$.tabIndex;b===0&&(!CKEDITOR.dtd.$tabIndex[this.getName()]&&parseInt(this.getAttribute("tabindex"),10)!==0)&&(b=-1);return b}:CKEDITOR.env.webkit?function(){var b=this.$.tabIndex;if(b==void 0){b=parseInt(this.getAttribute("tabindex"),10);isNaN(b)&&(b=-1)}return b}:function(){return this.$.tabIndex},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||
80
+ null},getNameAtt:function(){return this.$.name||null},getName:function(){var b=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&!(document.documentMode>8)){var a=this.$.scopeName;a!="HTML"&&(b=a.toLowerCase()+":"+b)}return(this.getName=function(){return b})()},getValue:function(){return this.$.value},getFirst:function(b){var a=this.$.firstChild;(a=a&&new CKEDITOR.dom.node(a))&&(b&&!b(a))&&(a=a.getNext(b));return a},getLast:function(b){var a=this.$.lastChild;(a=a&&new CKEDITOR.dom.node(a))&&(b&&!b(a))&&
81
+ (a=a.getPrevious(b));return a},getStyle:function(b){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(b)]},is:function(){var b=this.getName();if(typeof arguments[0]=="object")return!!arguments[0][b];for(var a=0;a<arguments.length;a++)if(arguments[a]==b)return true;return false},isEditable:function(b){var a=this.getName();if(this.isReadOnly()||this.getComputedStyle("display")=="none"||this.getComputedStyle("visibility")=="hidden"||CKEDITOR.dtd.$nonEditable[a]||CKEDITOR.dtd.$empty[a]||this.is("a")&&
82
+ (this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount())return false;if(b!==false){b=CKEDITOR.dtd[a]||CKEDITOR.dtd.span;return!(!b||!b["#"])}return true},isIdentical:function(b){var a=this.clone(0,1),b=b.clone(0,1);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(a.$.isEqualNode){a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText);
83
+ b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText);return a.$.isEqualNode(b.$)}a=a.getOuterHtml();b=b.getOuterHtml();if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&this.is("a")){var c=this.getParent();if(c.type==CKEDITOR.NODE_ELEMENT){c=c.clone();c.setHtml(a);a=c.getHtml();c.setHtml(b);b=c.getHtml()}}return a==b},isVisible:function(){var b=(this.$.offsetHeight||this.$.offsetWidth)&&this.getComputedStyle("visibility")!="hidden",a,c;if(b&&(CKEDITOR.env.webkit||CKEDITOR.env.opera)){a=
84
+ this.getWindow();if(!a.equals(CKEDITOR.document.getWindow())&&(c=a.$.frameElement))b=(new CKEDITOR.dom.element(c)).isVisible()}return!!b},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return false;for(var b=this.getChildren(),a=0,c=b.count();a<c;a++){var d=b.getItem(a);if(!(d.type==CKEDITOR.NODE_ELEMENT&&d.data("cke-bookmark"))&&(d.type==CKEDITOR.NODE_ELEMENT&&!d.isEmptyInlineRemoveable()||d.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(d.getText())))return false}return true},
85
+ hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(){for(var b=this.$.attributes,a=0;a<b.length;a++){var c=b[a];switch(c.nodeName){case "class":if(this.getAttribute("class"))return true;case "data-cke-expando":continue;default:if(c.specified)return true}}return false}:function(){var b=this.$.attributes,a=b.length,c={"data-cke-expando":1,_moz_dirty:1};return a>0&&(a>2||!c[b[0].nodeName]||a==2&&!c[b[1].nodeName])},hasAttribute:function(){function b(b){b=this.$.attributes.getNamedItem(b);
86
+ return!(!b||!b.specified)}return CKEDITOR.env.ie&&CKEDITOR.env.version<8?function(a){return a=="name"?!!this.$.name:b.call(this,a)}:b}(),hide:function(){this.setStyle("display","none")},moveChildren:function(b,a){var c=this.$,b=b.$;if(c!=b){var d;if(a)for(;d=c.lastChild;)b.insertBefore(c.removeChild(d),b.firstChild);else for(;d=c.firstChild;)b.appendChild(c.removeChild(d))}},mergeSiblings:function(){function b(b,a,c){if(a&&a.type==CKEDITOR.NODE_ELEMENT){for(var j=[];a.data("cke-bookmark")||a.isEmptyInlineRemoveable();){j.push(a);
87
+ a=c?a.getNext():a.getPrevious();if(!a||a.type!=CKEDITOR.NODE_ELEMENT)return}if(b.isIdentical(a)){for(var l=c?b.getLast():b.getFirst();j.length;)j.shift().move(b,!c);a.moveChildren(b,!c);a.remove();l&&l.type==CKEDITOR.NODE_ELEMENT&&l.mergeSiblings()}}}return function(a){if(a===false||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a")){b(this,this.getNext(),true);b(this,this.getPrevious())}}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var b=function(b,
88
+ a){this.$.setAttribute(b,a);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(a,c){a=="class"?this.$.className=c:a=="style"?this.$.style.cssText=c:a=="tabindex"?this.$.tabIndex=c:a=="checked"?this.$.checked=c:a=="contenteditable"?b.call(this,"contentEditable",c):b.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(a,c){if(a=="src"&&c.match(/^http:\/\//))try{b.apply(this,arguments)}catch(d){}else b.apply(this,arguments);
89
+ return this}:b}(),setAttributes:function(b){for(var a in b)this.setAttribute(a,b[a]);return this},setValue:function(b){this.$.value=b;return this},removeAttribute:function(){var b=function(b){this.$.removeAttribute(b)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(b){b=="class"?b="className":b=="tabindex"?b="tabIndex":b=="contenteditable"&&(b="contentEditable");this.$.removeAttribute(b)}:b}(),removeAttributes:function(b){if(CKEDITOR.tools.isArray(b))for(var a=0;a<
90
+ b.length;a++)this.removeAttribute(b[a]);else for(a in b)b.hasOwnProperty(a)&&this.removeAttribute(a)},removeStyle:function(b){var a=this.$.style;if(!a.removeProperty&&(b=="border"||b=="margin"||b=="padding")){var c=["top","left","right","bottom"],d;b=="border"&&(d=["color","style","width"]);for(var a=[],j=0;j<c.length;j++)if(d)for(var l=0;l<d.length;l++)a.push([b,c[j],d[l]].join("-"));else a.push([b,c[j]].join("-"));for(b=0;b<a.length;b++)this.removeStyle(a[b])}else{a.removeProperty?a.removeProperty(b):
91
+ a.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(b));this.$.style.cssText||this.removeAttribute("style")}},setStyle:function(b,a){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(b)]=a;return this},setStyles:function(b){for(var a in b)this.setStyle(a,b[a]);return this},setOpacity:function(b){if(CKEDITOR.env.ie&&CKEDITOR.env.version<9){b=Math.round(b*100);this.setStyle("filter",b>=100?"":"progid:DXImageTransform.Microsoft.Alpha(opacity="+b+")")}else this.setStyle("opacity",b)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
92
+ "none"));if(CKEDITOR.env.ie||CKEDITOR.env.opera){this.setAttribute("unselectable","on");for(var b,a=this.getElementsByTag("*"),c=0,d=a.count();c<d;c++){b=a.getItem(c);b.setAttribute("unselectable","on")}}},getPositionedAncestor:function(){for(var b=this;b.getName()!="html";){if(b.getComputedStyle("position")!="static")return b;b=b.getParent()}return null},getDocumentPosition:function(b){var a=0,c=0,d=this.getDocument(),j=d.getBody(),l=d.$.compatMode=="BackCompat";if(document.documentElement.getBoundingClientRect){var i=
93
+ this.$.getBoundingClientRect(),m=d.$.documentElement,n=m.clientTop||j.$.clientTop||0,r=m.clientLeft||j.$.clientLeft||0,p=true;if(CKEDITOR.env.ie){p=d.getDocumentElement().contains(this);d=d.getBody().contains(this);p=l&&d||!l&&p}if(p){a=i.left+(!l&&m.scrollLeft||j.$.scrollLeft);a=a-r;c=i.top+(!l&&m.scrollTop||j.$.scrollTop);c=c-n}}else{j=this;for(d=null;j&&!(j.getName()=="body"||j.getName()=="html");){a=a+(j.$.offsetLeft-j.$.scrollLeft);c=c+(j.$.offsetTop-j.$.scrollTop);if(!j.equals(this)){a=a+(j.$.clientLeft||
94
+ 0);c=c+(j.$.clientTop||0)}for(;d&&!d.equals(j);){a=a-d.$.scrollLeft;c=c-d.$.scrollTop;d=d.getParent()}d=j;j=(i=j.$.offsetParent)?new CKEDITOR.dom.element(i):null}}if(b){j=this.getWindow();d=b.getWindow();if(!j.equals(d)&&j.$.frameElement){b=(new CKEDITOR.dom.element(j.$.frameElement)).getDocumentPosition(b);a=a+b.x;c=c+b.y}}if(!document.documentElement.getBoundingClientRect&&CKEDITOR.env.gecko&&!l){a=a+(this.$.clientLeft?1:0);c=c+(this.$.clientTop?1:0)}return{x:a,y:c}},scrollIntoView:function(b){var a=
95
+ this.getParent();if(a){do{(a.$.clientWidth&&a.$.clientWidth<a.$.scrollWidth||a.$.clientHeight&&a.$.clientHeight<a.$.scrollHeight)&&!a.is("body")&&this.scrollIntoParent(a,b,1);if(a.is("html")){var c=a.getWindow();try{var d=c.$.frameElement;d&&(a=new CKEDITOR.dom.element(d))}catch(j){}}}while(a=a.getParent())}},scrollIntoParent:function(b,a,c){var d,j,l,i;function m(a,c){if(/body|html/.test(b.getName()))b.getWindow().$.scrollBy(a,c);else{b.$.scrollLeft=b.$.scrollLeft+a;b.$.scrollTop=b.$.scrollTop+c}}
96
+ function n(b,a){var c={x:0,y:0};if(!b.is(p?"body":"html")){var g=b.$.getBoundingClientRect();c.x=g.left;c.y=g.top}g=b.getWindow();if(!g.equals(a)){g=n(CKEDITOR.dom.element.get(g.$.frameElement),a);c.x=c.x+g.x;c.y=c.y+g.y}return c}function r(b,a){return parseInt(b.getComputedStyle("margin-"+a)||0,10)||0}!b&&(b=this.getWindow());l=b.getDocument();var p=l.$.compatMode=="BackCompat";b instanceof CKEDITOR.dom.window&&(b=p?l.getBody():l.getDocumentElement());l=b.getWindow();j=n(this,l);var g=n(b,l),h=this.$.offsetHeight;
97
+ d=this.$.offsetWidth;var u=b.$.clientHeight,w=b.$.clientWidth;l=j.x-r(this,"left")-g.x||0;i=j.y-r(this,"top")-g.y||0;d=j.x+d+r(this,"right")-(g.x+w)||0;j=j.y+h+r(this,"bottom")-(g.y+u)||0;if(i<0||j>0)m(0,a===true?i:a===false?j:i<0?i:j);if(c&&(l<0||d>0))m(l<0?l:d,0)},setState:function(b,a,c){a=a||"cke";switch(b){case CKEDITOR.TRISTATE_ON:this.addClass(a+"_on");this.removeClass(a+"_off");this.removeClass(a+"_disabled");c&&this.setAttribute("aria-pressed",true);c&&this.removeAttribute("aria-disabled");
98
+ break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(a+"_disabled");this.removeClass(a+"_off");this.removeClass(a+"_on");c&&this.setAttribute("aria-disabled",true);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(a+"_off");this.removeClass(a+"_on");this.removeClass(a+"_disabled");c&&this.removeAttribute("aria-pressed");c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var b=this.$;try{b.contentWindow.document}catch(a){b.src=b.src}return b&&new CKEDITOR.dom.document(b.contentWindow.document)},
99
+ copyAttributes:function(b,a){for(var c=this.$.attributes,a=a||{},d=0;d<c.length;d++){var j=c[d],l=j.nodeName.toLowerCase(),i;if(!(l in a))if(l=="checked"&&(i=this.getAttribute(l)))b.setAttribute(l,i);else if(j.specified||CKEDITOR.env.ie&&j.nodeValue&&l=="value"){i=this.getAttribute(l);if(i===null)i=j.nodeValue;b.setAttribute(l,i)}}if(this.$.style.cssText!=="")b.$.style.cssText=this.$.style.cssText},renameNode:function(b){if(this.getName()!=b){var a=this.getDocument(),b=new CKEDITOR.dom.element(b,
100
+ a);this.copyAttributes(b);this.moveChildren(b);this.getParent()&&this.$.parentNode.replaceChild(b.$,this.$);b.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=b.$}},getChild:function(){function b(b,a){var c=b.childNodes;if(a>=0&&a<c.length)return c[a]}return function(a){var c=this.$;if(a.slice)for(;a.length>0&&c;)c=b(c,a.shift());else c=b(c,a);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){this.on("contextmenu",
101
+ function(b){b.data.getTarget().hasClass("cke_enable_context_menu")||b.data.preventDefault()})},getDirection:function(b){return b?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(b,a){b="data-"+b;if(a===void 0)return this.getAttribute(b);a===false?this.removeAttribute(b):this.setAttribute(b,a);return null},getEditor:function(){var b=CKEDITOR.instances,
102
+ a,c;for(a in b){c=b[a];if(c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return c}return null}});var c={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(b,c,e){if(typeof c=="number"){if(e&&(!CKEDITOR.env.ie||!CKEDITOR.env.quirks))c=c-a.call(this,b);this.setStyle(b,c+"px")}};CKEDITOR.dom.element.prototype.getSize=function(b,
103
+ c){var e=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(b)],this.$["client"+CKEDITOR.tools.capitalize(b)])||0;c&&(e=e-a.call(this,b));return e}})();CKEDITOR.dom.documentFragment=function(a){a=a||CKEDITOR.document;this.$=a.type==CKEDITOR.NODE_DOCUMENT?a.$.createDocumentFragment():a};
104
+ CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(a){a=a.$;a.parentNode.insertBefore(this.$,a.nextSibling)}},!0,{append:1,appendBogus:1,getFirst:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
105
+ (function(){function a(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed){this.end();return null}c.optimize()}var d,n=c.startContainer;d=c.endContainer;var r=c.startOffset,p=c.endOffset,g,h=this.guard,u=this.type,f=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var k=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),e=d.type==CKEDITOR.NODE_ELEMENT?d.getChild(p):d.getNext();this._.guardLTR=function(a,b){return(!b||!k.equals(a))&&(!e||
106
+ !a.equals(e))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var F=n.type==CKEDITOR.NODE_ELEMENT?n:n.getParent(),D=n.type==CKEDITOR.NODE_ELEMENT?r?n.getChild(r-1):null:n.getPrevious();this._.guardRTL=function(a,b){return(!b||!F.equals(a))&&(!D||!a.equals(D))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var B=a?this._.guardRTL:this._.guardLTR;g=h?function(a,b){return B(a,b)===false?false:h(a,b)}:B;if(this.current)d=this.current[f](false,u,g);else{if(a)d.type==
107
+ CKEDITOR.NODE_ELEMENT&&(d=p>0?d.getChild(p-1):g(d,true)===false?null:d.getPreviousSourceNode(true,u,g));else{d=n;if(d.type==CKEDITOR.NODE_ELEMENT&&!(d=d.getChild(r)))d=g(n,true)===false?null:n.getNextSourceNode(true,u,g)}d&&g(d)===false&&(d=null)}for(;d&&!this._.end;){this.current=d;if(!this.evaluator||this.evaluator(d)!==false){if(!b)return d}else if(b&&this.evaluator)return false;d=d[f](false,u,g)}this.end();return this.current=null}function c(b){for(var c,d=null;c=a.call(this,b);)d=c;return d}
108
+ CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a;this._={}},proto:{end:function(){this._.end=1},next:function(){return a.call(this)},previous:function(){return a.call(this,1)},checkForward:function(){return a.call(this,0,1)!==false},checkBackward:function(){return a.call(this,1,1)!==false},lastForward:function(){return c.call(this)},lastBackward:function(){return c.call(this,1)},reset:function(){delete this.current;this._={}}}});var b={block:1,"list-item":1,table:1,"table-row-group":1,
109
+ "table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(a){a=a?CKEDITOR.tools.extend({},CKEDITOR.dtd.$block,a||{}):CKEDITOR.dtd.$block;return this.getComputedStyle("float")=="none"&&b[this.getComputedStyle("display")]||a[this.getName()]};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=
110
+ function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&a.getName()=="span"&&a.data("cke-bookmark")}return function(d){var n,r;n=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(r=d.getParent())&&c(r);n=a?n:n||c(d);return!!(b^n)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()=="​");return!!(a^c)}};CKEDITOR.dom.walker.invisible=
111
+ function(a){var b=CKEDITOR.dom.walker.whitespaces();return function(c){if(b(c))c=1;else{c.type==CKEDITOR.NODE_TEXT&&(c=c.getParent());c=!c.$.offsetHeight}return!!(a^c)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!e(a)&&!d(a)}return function(c){var d=!CKEDITOR.env.ie?c.is&&c.is("br"):c.getText&&f.test(c.getText());if(d){d=c.getParent();c=c.getNext(b);d=d.isBlockBoundary()&&(!c||c.type==CKEDITOR.NODE_ELEMENT&&
112
+ c.isBlockBoundary())}return!!(a^d)}};var f=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/,e=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark();CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(d(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty));return a&&(!CKEDITOR.env.ie?a.is&&a.is("br"):a.getText&&f.test(a.getText()))?a:false}})();
113
+ CKEDITOR.dom.range=function(a){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=true;var c=a instanceof CKEDITOR.dom.document;this.document=c?a:a.getDocument();this.root=c?a.getBody():a};
114
+ (function(){function a(){var a=false,b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(true),g=CKEDITOR.dom.walker.bogus();return function(h){if(c(h)||b(h))return true;if(g(h)&&!a)return a=true;return h.type==CKEDITOR.NODE_TEXT&&(h.hasAscendant("pre")||CKEDITOR.tools.trim(h.getText()).length)||h.type==CKEDITOR.NODE_ELEMENT&&!h.is(d)?false:true}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(1);return function(g){return c(g)||b(g)?true:!a&&j(g)||
115
+ g.type==CKEDITOR.NODE_ELEMENT&&g.is(CKEDITOR.dtd.$removeEmpty)}}function b(a){return!l(a)&&!i(a)}var f=function(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset},e=function(a,b,c,g){a.optimizeBookmark();var h=a.startContainer,d=a.endContainer,f=a.startOffset,k=a.endOffset,e,j;if(d.type==CKEDITOR.NODE_TEXT)d=d.split(k);else if(d.getChildCount()>0)if(k>=d.getChildCount()){d=d.append(a.document.createText(""));j=true}else d=d.getChild(k);
116
+ if(h.type==CKEDITOR.NODE_TEXT){h.split(f);h.equals(d)&&(d=h.getNext())}else if(f)if(f>=h.getChildCount()){h=h.append(a.document.createText(""));e=true}else h=h.getChild(f).getPrevious();else{h=h.append(a.document.createText(""),1);e=true}var f=h.getParents(),k=d.getParents(),l,i,q;for(l=0;l<f.length;l++){i=f[l];q=k[l];if(!i.equals(q))break}for(var m=c,s,A,v,o=l;o<f.length;o++){s=f[o];m&&!s.equals(h)&&(A=m.append(s.clone()));for(s=s.getNext();s;){if(s.equals(k[o])||s.equals(d))break;v=s.getNext();
117
+ if(b==2)m.append(s.clone(true));else{s.remove();b==1&&m.append(s)}s=v}m&&(m=A)}m=c;for(c=l;c<k.length;c++){s=k[c];b>0&&!s.equals(d)&&(A=m.append(s.clone()));if(!f[c]||s.$.parentNode!=f[c].$.parentNode)for(s=s.getPrevious();s;){if(s.equals(f[c])||s.equals(h))break;v=s.getPrevious();if(b==2)m.$.insertBefore(s.$.cloneNode(true),m.$.firstChild);else{s.remove();b==1&&m.$.insertBefore(s.$,m.$.firstChild)}s=v}m&&(m=A)}if(b==2){i=a.startContainer;if(i.type==CKEDITOR.NODE_TEXT){i.$.data=i.$.data+i.$.nextSibling.data;
118
+ i.$.parentNode.removeChild(i.$.nextSibling)}a=a.endContainer;if(a.type==CKEDITOR.NODE_TEXT&&a.$.nextSibling){a.$.data=a.$.data+a.$.nextSibling.data;a.$.parentNode.removeChild(a.$.nextSibling)}}else{if(i&&q&&(h.$.parentNode!=i.$.parentNode||d.$.parentNode!=q.$.parentNode)){b=q.getIndex();e&&q.$.parentNode==h.$.parentNode&&b--;if(g&&i.type==CKEDITOR.NODE_ELEMENT){g=CKEDITOR.dom.element.createFromHtml('<span data-cke-bookmark="1" style="display:none">&nbsp;</span>',a.document);g.insertAfter(i);i.mergeSiblings(false);
119
+ a.moveToBookmark({startNode:g})}else a.setStart(q.getParent(),b)}a.collapse(true)}e&&h.remove();j&&d.$.parentNode&&d.remove()},d={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},j=CKEDITOR.dom.walker.bogus(),l=new CKEDITOR.dom.walker.whitespaces,i=new CKEDITOR.dom.walker.bookmark,m=/^[\t\r\n ]*(?:&nbsp;|\xa0)$/;CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);
120
+ a.startContainer=this.startContainer;a.startOffset=this.startOffset;a.endContainer=this.endContainer;a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){if(a){this.endContainer=this.startContainer;this.endOffset=this.startOffset}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset}this.collapsed=true},cloneContents:function(){var a=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||e(this,2,a);return a},deleteContents:function(a){this.collapsed||
121
+ e(this,0,null,a)},extractContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||e(this,1,b,a);return b},createBookmark:function(a){var b,c,g,h,d=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml("&nbsp;");if(a){g="cke_bm_"+CKEDITOR.tools.getNextNumber();b.setAttribute("id",g+(d?"C":"S"))}if(!d){c=b.clone();c.setHtml("&nbsp;");a&&c.setAttribute("id",g+"E");h=this.clone();h.collapse();h.insertNode(c)}h=
122
+ this.clone();h.collapse(true);h.insertNode(b);if(c){this.setStartAfter(b);this.setEndBefore(c)}else this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?g+(d?"C":"S"):b,endNode:a?g+"E":c,serializable:a,collapsed:d}},createBookmark2:function(a){var b=this.startContainer,c=this.endContainer,g=this.startOffset,h=this.endOffset,d=this.collapsed,f,k;if(!b||!c)return{start:0,end:0};if(a){if(b.type==CKEDITOR.NODE_ELEMENT){if((f=b.getChild(g))&&f.type==CKEDITOR.NODE_TEXT&&g>0&&f.getPrevious().type==
123
+ CKEDITOR.NODE_TEXT){b=f;g=0}f&&f.type==CKEDITOR.NODE_ELEMENT&&(g=f.getIndex(1))}for(;b.type==CKEDITOR.NODE_TEXT&&(k=b.getPrevious())&&k.type==CKEDITOR.NODE_TEXT;){b=k;g=g+k.getLength()}if(!d){if(c.type==CKEDITOR.NODE_ELEMENT){if((f=c.getChild(h))&&f.type==CKEDITOR.NODE_TEXT&&h>0&&f.getPrevious().type==CKEDITOR.NODE_TEXT){c=f;h=0}f&&f.type==CKEDITOR.NODE_ELEMENT&&(h=f.getIndex(1))}for(;c.type==CKEDITOR.NODE_TEXT&&(k=c.getPrevious())&&k.type==CKEDITOR.NODE_TEXT;){c=k;h=h+k.getLength()}}}return{start:b.getAddress(a),
124
+ end:d?null:c.getAddress(a),startOffset:g,endOffset:h,normalized:a,collapsed:d,is2:true}},moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),c=a.startOffset,g=a.end&&this.document.getByAddress(a.end,a.normalized),a=a.endOffset;this.setStart(b,c);g?this.setEnd(g,a):this.collapse(true)}else{b=(c=a.serializable)?this.document.getById(a.startNode):a.startNode;a=c?this.document.getById(a.endNode):a.endNode;this.setStartBefore(b);b.remove();if(a){this.setEndBefore(a);
125
+ a.remove()}else this.collapse(true)}},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,c=this.startOffset,g=this.endOffset,h;if(a.type==CKEDITOR.NODE_ELEMENT){h=a.getChildCount();if(h>c)a=a.getChild(c);else if(h<1)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}}if(b.type==CKEDITOR.NODE_ELEMENT){h=b.getChildCount();if(h>g)b=b.getChild(g).getPreviousSourceNode(true);else if(h<1)b=b.getPreviousSourceNode();
126
+ else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var c=this.startContainer,g=this.endContainer,c=c.equals(g)?a&&c.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?c.getChild(this.startOffset):c:c.getCommonAncestor(g);return b&&!c.is?c.getParent():c},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=
127
+ a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&(a.is("span")&&a.data("cke-bookmark"))&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&(b.is&&b.is("span")&&b.data("cke-bookmark"))&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,
128
+ g=this.startOffset,h=this.collapsed;if((!a||h)&&c&&c.type==CKEDITOR.NODE_TEXT){if(g)if(g>=c.getLength()){g=c.getIndex()+1;c=c.getParent()}else{var d=c.split(g),g=c.getIndex()+1,c=c.getParent();if(this.startContainer.equals(this.endContainer))this.setEnd(d,this.endOffset-this.startOffset);else if(c.equals(this.endContainer))this.endOffset=this.endOffset+1}else{g=c.getIndex();c=c.getParent()}this.setStart(c,g);if(h){this.collapse(true);return}}c=this.endContainer;g=this.endOffset;if(!b&&!h&&c&&c.type==
129
+ CKEDITOR.NODE_TEXT){if(g){g>=c.getLength()||c.split(g);g=c.getIndex()+1}else g=c.getIndex();c=c.getParent();this.setEnd(c,g)}},enlarge:function(a,b){switch(a){case CKEDITOR.ENLARGE_INLINE:var c=1;case CKEDITOR.ENLARGE_ELEMENT:if(this.collapsed)break;var g=this.getCommonAncestor(),h=this.root,d,f,k,e,j,l=false,i,q;i=this.startContainer;q=this.startOffset;if(i.type==CKEDITOR.NODE_TEXT){if(q){i=!CKEDITOR.tools.trim(i.substring(0,q)).length&&i;l=!!i}if(i&&!(e=i.getPrevious()))k=i.getParent()}else{q&&
130
+ (e=i.getChild(q-1)||i.getLast());e||(k=i)}for(;k||e;){if(k&&!e){!j&&k.equals(g)&&(j=true);if(c?k.isBlockBoundary():!h.contains(k))break;if(!l||k.getComputedStyle("display")!="inline"){l=false;j?d=k:this.setStartBefore(k)}e=k.getPrevious()}for(;e;){i=false;if(e.type==CKEDITOR.NODE_COMMENT)e=e.getPrevious();else{if(e.type==CKEDITOR.NODE_TEXT){q=e.getText();/[^\s\ufeff]/.test(q)&&(e=null);i=/[\s\ufeff]$/.test(q)}else if((e.$.offsetWidth>0||b&&e.is("br"))&&!e.data("cke-bookmark"))if(l&&CKEDITOR.dtd.$removeEmpty[e.getName()]){q=
131
+ e.getText();if(/[^\s\ufeff]/.test(q))e=null;else for(var m=e.$.getElementsByTagName("*"),s=0,A;A=m[s++];)if(!CKEDITOR.dtd.$removeEmpty[A.nodeName.toLowerCase()]){e=null;break}e&&(i=!!q.length)}else e=null;i&&(l?j?d=k:k&&this.setStartBefore(k):l=true);if(e){i=e.getPrevious();if(!k&&!i){k=e;e=null;break}e=i}else k=null}}k&&(k=k.getParent())}i=this.endContainer;q=this.endOffset;k=e=null;j=l=false;if(i.type==CKEDITOR.NODE_TEXT){i=!CKEDITOR.tools.trim(i.substring(q)).length&&i;l=!(i&&i.getLength());if(i&&
132
+ !(e=i.getNext()))k=i.getParent()}else(e=i.getChild(q))||(k=i);for(;k||e;){if(k&&!e){!j&&k.equals(g)&&(j=true);if(c?k.isBlockBoundary():!h.contains(k))break;if(!l||k.getComputedStyle("display")!="inline"){l=false;j?f=k:k&&this.setEndAfter(k)}e=k.getNext()}for(;e;){i=false;if(e.type==CKEDITOR.NODE_TEXT){q=e.getText();/[^\s\ufeff]/.test(q)&&(e=null);i=/^[\s\ufeff]/.test(q)}else if(e.type==CKEDITOR.NODE_ELEMENT){if((e.$.offsetWidth>0||b&&e.is("br"))&&!e.data("cke-bookmark"))if(l&&CKEDITOR.dtd.$removeEmpty[e.getName()]){q=
133
+ e.getText();if(/[^\s\ufeff]/.test(q))e=null;else{m=e.$.getElementsByTagName("*");for(s=0;A=m[s++];)if(!CKEDITOR.dtd.$removeEmpty[A.nodeName.toLowerCase()]){e=null;break}}e&&(i=!!q.length)}else e=null}else i=1;i&&l&&(j?f=k:this.setEndAfter(k));if(e){i=e.getNext();if(!k&&!i){k=e;e=null;break}e=i}else k=null}k&&(k=k.getParent())}if(d&&f){g=d.contains(f)?f:d;this.setStartBefore(g);this.setEndAfter(g)}break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:k=new CKEDITOR.dom.range(this.root);
134
+ h=this.root;k.setStartAt(h,CKEDITOR.POSITION_AFTER_START);k.setEnd(this.startContainer,this.startOffset);k=new CKEDITOR.dom.walker(k);var v,o,x=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),I=function(a){var b=x(a);b||(v=a);return b},c=function(a){var b=I(a);!b&&(a.is&&a.is("br"))&&(o=a);return b};k.guard=I;k=k.lastBackward();v=v||h;this.setStartAt(v,!v.is("br")&&(!k&&this.checkStartOfBlock()||k&&v.contains(k))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);
135
+ if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){k=this.clone();k=new CKEDITOR.dom.walker(k);var G=CKEDITOR.dom.walker.whitespaces(),C=CKEDITOR.dom.walker.bookmark();k.evaluator=function(a){return!G(a)&&!C(a)};if((k=k.previous())&&k.type==CKEDITOR.NODE_ELEMENT&&k.is("br"))break}k=this.clone();k.collapse();k.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);k=new CKEDITOR.dom.walker(k);k.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?c:I;v=null;k=k.lastForward();v=v||h;this.setEndAt(v,!k&&this.checkEndOfBlock()||k&&
136
+ v.contains(k)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);o&&this.setEndAfter(o)}},shrink:function(a,b,c){if(!this.collapsed){var a=a||CKEDITOR.SHRINK_TEXT,g=this.clone(),h=this.startContainer,d=this.endContainer,e=this.startOffset,f=this.endOffset,j=1,i=1;if(h&&h.type==CKEDITOR.NODE_TEXT)if(e)if(e>=h.getLength())g.setStartAfter(h);else{g.setStartBefore(h);j=0}else g.setStartBefore(h);if(d&&d.type==CKEDITOR.NODE_TEXT)if(f)if(f>=d.getLength())g.setEndAfter(d);else{g.setEndAfter(d);
137
+ i=0}else g.setEndBefore(d);var g=new CKEDITOR.dom.walker(g),l=CKEDITOR.dom.walker.bookmark();g.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var m;g.guard=function(b,g){if(l(b))return true;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||g&&b.equals(m)||c===false&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary())return false;!g&&b.type==CKEDITOR.NODE_ELEMENT&&(m=b);return true};if(j)(h=g[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":
138
+ "next"]())&&this.setStartAt(h,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);if(i){g.reset();(g=g[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(g,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END)}return!(!j&&!i)}},insertNode:function(a){this.optimizeBookmark();this.trim(false,true);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},
139
+ moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(true)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex();a=a.getParent()}this.startContainer=a;this.startOffset=b;if(!this.endContainer){this.endContainer=
140
+ a;this.endOffset=b}f(this)},setEnd:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex()+1;a=a.getParent()}this.endContainer=a;this.endOffset=b;if(!this.startContainer){this.startContainer=a;this.startOffset=b}f(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),
141
+ a.getIndex())},setStartAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setStart(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==CKEDITOR.NODE_TEXT?this.setStart(a,a.getLength()):this.setStart(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(a)}f(this)},setEndAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setEnd(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==
142
+ CKEDITOR.NODE_TEXT?this.setEnd(a,a.getLength()):this.setEnd(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(a)}f(this)},fixBlock:function(a,b){var c=this.createBookmark(),g=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(g);g.trim();CKEDITOR.env.ie||g.appendBogus();this.insertNode(g);this.moveToBookmark(c);return g},splitBlock:function(a){var b=
143
+ new CKEDITOR.dom.elementPath(this.startContainer,this.root),c=new CKEDITOR.dom.elementPath(this.endContainer,this.root),g=b.block,h=c.block,d=null;if(!b.blockLimit.equals(c.blockLimit))return null;if(a!="br"){if(!g){g=this.fixBlock(true,a);h=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block}h||(h=this.fixBlock(false,a))}a=g&&this.checkStartOfBlock();b=h&&this.checkEndOfBlock();this.deleteContents();if(g&&g.equals(h))if(b){d=new CKEDITOR.dom.elementPath(this.startContainer,this.root);
144
+ this.moveToPosition(h,CKEDITOR.POSITION_AFTER_END);h=null}else if(a){d=new CKEDITOR.dom.elementPath(this.startContainer,this.root);this.moveToPosition(g,CKEDITOR.POSITION_BEFORE_START);g=null}else{h=this.splitElement(g);!CKEDITOR.env.ie&&!g.is("ul","ol")&&g.appendBogus()}return{previousBlock:g,nextBlock:h,wasStartOfBlock:a,wasEndOfBlock:b,elementPath:d}},splitElement:function(a){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var b=this.extractContents(),c=a.clone(false);
145
+ b.appendTo(c);c.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return c},removeEmptyBlocksAtEnd:function(){function a(g){return function(a){return b(a)||(c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable())||g.is("table")&&a.is("caption")?false:true}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(false);return function(b){for(var c=this.createBookmark(),d=this[b?"endPath":"startPath"](),e=d.block||d.blockLimit,f;e&&!e.equals(d.root)&&!e.getFirst(a(e));){f=
146
+ e.getParent();this[b?"setEndAt":"setStartAt"](e,CKEDITOR.POSITION_AFTER_END);e.remove(1);e=f}this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var d=b==CKEDITOR.START,g=this.clone();g.collapse(d);g[d?"setStartAt":"setEndAt"](a,d?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);g=new CKEDITOR.dom.walker(g);
147
+ g.evaluator=c(d);return g[d?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var b=this.startContainer,c=this.startOffset;if(CKEDITOR.env.ie&&c&&b.type==CKEDITOR.NODE_TEXT){b=CKEDITOR.tools.ltrim(b.substring(0,c));m.test(b)&&this.trim(0,1)}this.trim();b=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(true);c.setStartAt(b.block||b.blockLimit,CKEDITOR.POSITION_AFTER_START);b=new CKEDITOR.dom.walker(c);b.evaluator=a();return b.checkBackward()},checkEndOfBlock:function(){var b=
148
+ this.endContainer,c=this.endOffset;if(CKEDITOR.env.ie&&b.type==CKEDITOR.NODE_TEXT){b=CKEDITOR.tools.rtrim(b.substring(c));m.test(b)&&this.trim(1,0)}this.trim();b=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(false);c.setEndAt(b.block||b.blockLimit,CKEDITOR.POSITION_BEFORE_END);b=new CKEDITOR.dom.walker(c);b.evaluator=a();return b.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);
149
+ c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if(b.getAttribute("contentEditable")=="false"&&!b.data("cke-editable"))return 0;if(b.is("html")||b.getAttribute("contentEditable")=="true"&&(b.contains(c)||b.equals(c)))break}b=
150
+ b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(a,c){if(a.type==CKEDITOR.NODE_ELEMENT&&!a.isEditable(false)){this.moveToPosition(a,c?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);return true}for(var d=0;a;){if(a.type==CKEDITOR.NODE_TEXT){c&&this.checkEndOfBlock()&&m.test(a.getText())?this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(a,c?CKEDITOR.POSITION_AFTER_END:
151
+ CKEDITOR.POSITION_BEFORE_START);d=1;break}if(a.type==CKEDITOR.NODE_ELEMENT)if(a.isEditable()){this.moveToPosition(a,c?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START);d=1}else c&&(a.is("br")&&this.checkEndOfBlock())&&this.moveToPosition(a,CKEDITOR.POSITION_BEFORE_START);var g=a,h=d,e=void 0;g.type==CKEDITOR.NODE_ELEMENT&&g.isEditable(false)&&(e=g[c?"getLast":"getFirst"](b));!h&&!e&&(e=g[c?"getPrevious":"getNext"](b));a=e}return!!d},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},
152
+ moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,true)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(false,true),c=CKEDITOR.dom.walker.whitespaces(true);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=
153
+ this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("<span>&nbsp;</span>",this.document),b,c,d,h=this.clone();h.optimize();if(d=h.startContainer.type==CKEDITOR.NODE_TEXT){c=h.startContainer.getText();b=h.startContainer.split(h.startOffset);
154
+ a.insertAfter(h.startContainer)}else h.insertNode(a);a.scrollIntoView();if(d){h.startContainer.setText(c);b.remove()}a.remove()}}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;
155
+ (function(){function a(a){if(!(arguments.length<1)){this.range=a;this.forceBrBreak=0;this.enlargeBr=1;this.enforceRealBlocks=0;this._||(this._={})}}function c(a,b,c){for(a=a.getNextSourceNode(b,null,c);!f(a);)a=a.getNextSourceNode(b,null,c);return a}var b=/^[\r\n\t ]+$/,f=CKEDITOR.dom.walker.bookmark(false,true),e=CKEDITOR.dom.walker.whitespaces(true),d=function(a){return f(a)&&e(a)};a.prototype={getNextParagraph:function(a){a=a||"p";if(!CKEDITOR.dtd[this.range.root.getName()][a])return null;var e,
156
+ i,m,n,r,p;if(!this._.started){i=this.range.clone();i.shrink(CKEDITOR.NODE_ELEMENT,true);n=i.endContainer.hasAscendant("pre",true)||i.startContainer.hasAscendant("pre",true);i.enlarge(this.forceBrBreak&&!n||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(!i.collapsed){n=new CKEDITOR.dom.walker(i.clone());var g=CKEDITOR.dom.walker.bookmark(true,true);n.evaluator=g;this._.nextNode=n.next();n=new CKEDITOR.dom.walker(i.clone());n.evaluator=g;n=n.previous();this._.lastNode=
157
+ n.getNextSourceNode(true);if(this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()){g=this.range.clone();g.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END);if(g.checkEndOfBlock()){g=new CKEDITOR.dom.elementPath(g.endContainer,g.root);this._.lastNode=(g.block||g.blockLimit).getNextSourceNode(true)}}if(!this._.lastNode){this._.lastNode=this._.docEndMarker=i.document.createText("");this._.lastNode.insertAfter(n)}i=
158
+ null}this._.started=1}g=this._.nextNode;n=this._.lastNode;for(this._.nextNode=null;g;){var h=0,u=g.hasAscendant("pre"),w=g.type!=CKEDITOR.NODE_ELEMENT,k=0;if(w)g.type==CKEDITOR.NODE_TEXT&&b.test(g.getText())&&(w=0);else{var t=g.getName();if(g.isBlockBoundary(this.forceBrBreak&&!u&&{br:1})){if(t=="br")w=1;else if(!i&&!g.getChildCount()&&t!="hr"){e=g;m=g.equals(n);break}if(i){i.setEndAt(g,CKEDITOR.POSITION_BEFORE_START);if(t!="br")this._.nextNode=g}h=1}else{if(g.getFirst()){if(!i){i=this.range.clone();
159
+ i.setStartAt(g,CKEDITOR.POSITION_BEFORE_START)}g=g.getFirst();continue}w=1}}if(w&&!i){i=this.range.clone();i.setStartAt(g,CKEDITOR.POSITION_BEFORE_START)}m=(!h||w)&&g.equals(n);if(i&&!h)for(;!g.getNext(d)&&!m;){t=g.getParent();if(t.isBlockBoundary(this.forceBrBreak&&!u&&{br:1})){h=1;w=0;m||t.equals(n);i.setEndAt(t,CKEDITOR.POSITION_BEFORE_END);break}g=t;w=1;m=g.equals(n);k=1}w&&i.setEndAt(g,CKEDITOR.POSITION_AFTER_END);g=c(g,k,n);if((m=!g)||h&&i)break}if(!e){if(!i){this._.docEndMarker&&this._.docEndMarker.remove();
160
+ return this._.nextNode=null}e=new CKEDITOR.dom.elementPath(i.startContainer,i.root);g=e.blockLimit;h={div:1,th:1,td:1};e=e.block;if(!e&&g&&!this.enforceRealBlocks&&h[g.getName()]&&i.checkStartOfBlock()&&i.checkEndOfBlock()&&!g.equals(i.root))e=g;else if(!e||this.enforceRealBlocks&&e.getName()=="li"){e=this.range.document.createElement(a);i.extractContents().appendTo(e);e.trim();i.insertNode(e);r=p=true}else if(e.getName()!="li"){if(!i.checkStartOfBlock()||!i.checkEndOfBlock()){e=e.clone(false);i.extractContents().appendTo(e);
161
+ e.trim();p=i.splitBlock();r=!p.wasStartOfBlock;p=!p.wasEndOfBlock;i.insertNode(e)}}else if(!m)this._.nextNode=e.equals(n)?null:c(i.getBoundaryNodes().endNode,1,n)}if(r)(i=e.getPrevious())&&i.type==CKEDITOR.NODE_ELEMENT&&(i.getName()=="br"?i.remove():i.getLast()&&i.getLast().$.nodeName.toLowerCase()=="br"&&i.getLast().remove());if(p)(i=e.getLast())&&i.type==CKEDITOR.NODE_ELEMENT&&i.getName()=="br"&&(CKEDITOR.env.ie||i.getPrevious(f)||i.getNext(f))&&i.remove();if(!this._.nextNode)this._.nextNode=m||
162
+ e.equals(n)||!n?null:c(e,1,n);return e}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this)}})();
163
+ CKEDITOR.command=function(a,c){this.uiItems=[];this.exec=function(b){if(this.state==CKEDITOR.TRISTATE_DISABLED||!this.checkAllowed())return false;this.editorFocus&&a.focus();return this.fire("exec")===false?true:c.exec.call(this,a,b)!==false};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return true;if(this.context&&!b.isContextFor(this.context)){this.disable();return true}this.enable();return this.fire("refresh",{editor:a,path:b})===false?true:c.refresh&&c.refresh.apply(this,arguments)!==
164
+ false};var b;this.checkAllowed=function(){return typeof b=="boolean"?b:b=a.filter.checkFeature(this)};CKEDITOR.tools.extend(this,c,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!c.context,state:CKEDITOR.TRISTATE_DISABLED});CKEDITOR.event.call(this)};
165
+ CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.checkAllowed()&&this.setState(!this.preserveState||typeof this.previousState=="undefined"?CKEDITOR.TRISTATE_OFF:this.previousState)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(a){if(this.state==a||!this.checkAllowed())return false;this.previousState=this.state;this.state=a;this.fire("state");return true},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):
166
+ this.state==CKEDITOR.TRISTATE_ON&&this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;
167
+ CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"<!DOCTYPE html>",bodyId:"",bodyClass:"",fullPage:!1,height:200,extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};
168
+ (function(){function a(a,b,d,g,h){var f=b.name;if((g||typeof a.elements!="function"||a.elements(f))&&(!a.match||a.match(b))){if(g=!h){a:if(a.nothingRequired)g=true;else{if(h=a.requiredClasses){f=b.classes;for(g=0;g<h.length;++g)if(CKEDITOR.tools.indexOf(f,h[g])==-1){g=false;break a}}g=e(b.styles,a.requiredStyles)&&e(b.attributes,a.requiredAttributes)}g=!g}if(!g){if(!a.propertiesOnly)d.valid=true;if(!d.allAttributes)d.allAttributes=c(a.attributes,b.attributes,d.validAttributes);if(!d.allStyles)d.allStyles=
169
+ c(a.styles,b.styles,d.validStyles);if(!d.allClasses){a=a.classes;b=b.classes;g=d.validClasses;if(a)if(a===true)b=true;else{for(var h=0,f=b.length,k;h<f;++h){k=b[h];g[k]||(g[k]=a(k))}b=false}else b=false;d.allClasses=b}}}}function c(a,b,c){if(!a)return false;if(a===true)return true;for(var d in b)c[d]||(c[d]=a(d,b[d]));return false}function b(a,b){if(!a)return false;if(a===true)return a;if(typeof a=="string"){a=q(a);return a=="*"?true:CKEDITOR.tools.convertArrayToObject(a.split(b))}if(CKEDITOR.tools.isArray(a))return a.length?
170
+ CKEDITOR.tools.convertArrayToObject(a):false;var c={},d=0,g;for(g in a){c[g]=a[g];d++}return d?c:false}function f(b){if(b._.filterFunction)return b._.filterFunction;var c=/^cke:(object|embed|param)$/,d=/^(object|embed|param)$/;return b._.filterFunction=function(g,h,e,f,k,j,p){var o=g.name,r,l=false;if(k)g.name=o=o.replace(c,"$1");if(e=e&&e[o]){i(g);for(o=0;o<e.length;++o)u(b,g,e[o]);m(g)}if(h){var o=g.name,e=h.elements[o],w=h.generic,h={valid:false,validAttributes:{},validClasses:{},validStyles:{},
171
+ allAttributes:false,allClasses:false,allStyles:false};if(!e&&!w){f.push(g);return true}i(g);if(e){o=0;for(r=e.length;o<r;++o)a(e[o],g,h,true,j)}if(w){o=0;for(r=w.length;o<r;++o)a(w[o],g,h,false,j)}if(!h.valid){f.push(g);return true}j=h.validAttributes;o=h.validStyles;e=h.validClasses;r=g.attributes;var w=g.styles,q=r["class"],x=r.style,t,B,D=[],s=[],F=/^data-cke-/,z=false;delete r.style;delete r["class"];if(!h.allAttributes)for(t in r)if(!j[t])if(F.test(t)){if(t!=(B=t.replace(/^data-cke-saved-/,""))&&
172
+ !j[B]){delete r[t];z=true}}else{delete r[t];z=true}if(h.allStyles){if(x)r.style=x}else{for(t in w)o[t]?D.push(t+":"+w[t]):z=true;if(D.length)r.style=D.sort().join("; ")}if(h.allClasses)q&&(r["class"]=q);else{for(t in e)e[t]&&s.push(t);s.length&&(r["class"]=s.sort().join(" "));q&&s.length<q.split(/\s+/).length&&(z=true)}z&&(l=true);if(!p&&!n(g)){f.push(g);return true}}if(k)g.name=g.name.replace(d,"cke:$1");return l}}function e(a,b){if(!b)return true;for(var c=0;c<b.length;++c)if(!(b[c]in a))return false;
173
+ return true}function d(a){if(!a)return{};for(var a=a.split(/\s*,\s*/).sort(),b={};a.length;)b[a.shift()]=z;return b}function j(a){for(var b,c,d,g,h={},e=1,a=q(a);b=a.match(v);){if(c=b[2]){d=l(c,"styles");g=l(c,"attrs");c=l(c,"classes")}else d=g=c=null;h["$"+e++]={elements:b[1],classes:c,styles:d,attributes:g};a=a.slice(b[0].length)}return h}function l(a,b){var c=a.match(o[b]);return c?q(c[1]):null}function i(a){if(!a.styles)a.styles=CKEDITOR.tools.parseCssText(a.attributes.style||"",1);if(!a.classes)a.classes=
174
+ a.attributes["class"]?a.attributes["class"].split(/\s+/):[]}function m(a){var b=a.attributes,c;delete b.style;delete b["class"];if(c=CKEDITOR.tools.writeCssText(a.styles,true))b.style=c;a.classes.length&&(b["class"]=a.classes.sort().join(" "))}function n(a){switch(a.name){case "a":if(!a.children.length&&!a.attributes.name)return false;break;case "img":if(!a.attributes.src)return false}return true}function r(a){return!a?false:a===true?true:function(b){return b in a}}function p(){return new CKEDITOR.htmlParser.element("br")}
175
+ function g(a){return a.type==CKEDITOR.NODE_ELEMENT&&(a.name=="br"||D.$block[a.name])}function h(a,b,c){var d=a.name;if(D.$empty[d]||!a.children.length)if(d=="hr"&&b=="br")a.replaceWith(p());else{a.parent&&c.push({check:"it",el:a.parent});a.remove()}else if(D.$block[d]||d=="tr")if(b=="br"){if(a.previous&&!g(a.previous)){b=p();b.insertBefore(a)}if(a.next&&!g(a.next)){b=p();b.insertAfter(a)}a.replaceWithChildren()}else{var d=a.children,h;b:{h=D[b];for(var e=0,f=d.length,k;e<f;++e){k=d[e];if(k.type==
176
+ CKEDITOR.NODE_ELEMENT&&!h[k.name]){h=false;break b}}h=true}if(h){a.name=b;a.attributes={};c.push({check:"parent-down",el:a})}else{h=a.parent;for(var e=h.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT||h.name=="body",j,f=d.length;f>0;){k=d[--f];if(e&&(k.type==CKEDITOR.NODE_TEXT||k.type==CKEDITOR.NODE_ELEMENT&&D.$inline[k.name])){if(!j){j=new CKEDITOR.htmlParser.element(b);j.insertAfter(a);c.push({check:"parent-down",el:j})}j.add(k,0)}else{j=null;k.insertAfter(a);h.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(k.type==
177
+ CKEDITOR.NODE_ELEMENT&&!D[h.name][k.name])&&c.push({check:"el-up",el:k})}}a.remove()}}else if(d=="style")a.remove();else{a.parent&&c.push({check:"it",el:a.parent});a.replaceWithChildren()}}function u(a,b,c){var d,g;for(d=0;d<c.length;++d){g=c[d];if((!g.check||a.check(g.check,false))&&(!g.left||g.left(b))){g.right(b,x);break}}}function w(a,b){var c=b.getDefinition(),d=c.attributes,g=c.styles,h,e,f,k;if(a.name!=c.element)return false;for(h in d)if(h=="class"){c=d[h].split(/\s+/);for(f=a.classes.join("|");k=
178
+ c.pop();)if(f.indexOf(k)==-1)return false}else if(a.attributes[h]!=d[h])return false;for(e in g)if(a.styles[e]!=g[e])return false;return true}function k(a,b){var c,d;if(typeof a=="string")c=a;else if(a instanceof CKEDITOR.style)d=a;else{c=a[0];d=a[1]}return[{element:c,left:d,right:function(a,c){c.transform(a,b)}}]}function t(a){return function(b){return w(b,a)}}function F(a){return function(b,c){c[a](b)}}var D=CKEDITOR.dtd,B=CKEDITOR.tools.copy,q=CKEDITOR.tools.trim,z="cke-test";CKEDITOR.filter=function(a){this.allowedContent=
179
+ [];this.disabled=false;this.editor=null;this.enterMode=CKEDITOR.ENTER_P;this._={rules:{},transformations:{},cachedTests:{}};if(a instanceof CKEDITOR.editor){var b=this.editor=a;this.customConfig=true;var a=b.config.allowedContent,c;if(a===true)this.disabled=true;else{if(!a)this.customConfig=false;this.enterMode=c=b.blockless?CKEDITOR.ENTER_BR:b.config.enterMode;this.allow("br "+(c==CKEDITOR.ENTER_P?"p":c==CKEDITOR.ENTER_DIV?"div":""),"default",1);this.allow(a,"config",1);this.allow(b.config.extraAllowedContent,
180
+ "extra",1);this._.toHtmlListener=b.on("toHtml",function(a){this.applyTo(a.data.dataValue,true,a.data.dontFilter)&&b.fire("dataFiltered")},this,null,6);this._.toDataFormatListener=b.on("toDataFormat",function(a){this.applyTo(a.data.dataValue,false,true)},this,null,11)}}else{this.customConfig=false;this.allow(a,"default",1)}};CKEDITOR.filter.prototype={allow:function(a,c,d){if(this.disabled||this.customConfig&&!d||!a)return false;this._.cachedChecks={};var g,h;if(typeof a=="string")a=j(a);else if(a instanceof
181
+ CKEDITOR.style){h=a.getDefinition();d={};a=h.attributes;d[h.element]=h={styles:h.styles,requiredStyles:h.styles&&CKEDITOR.tools.objectKeys(h.styles)};if(a){a=B(a);h.classes=a["class"]?a["class"].split(/\s+/):null;h.requiredClasses=h.classes;delete a["class"];h.attributes=a;h.requiredAttributes=a&&CKEDITOR.tools.objectKeys(a)}a=d}else if(CKEDITOR.tools.isArray(a)){for(g=0;g<a.length;++g)h=this.allow(a[g],c,d);return h}var e,d=[];for(e in a){h=a[e];h=typeof h=="boolean"?{}:typeof h=="function"?{match:h}:
182
+ B(h);if(e.charAt(0)!="$")h.elements=e;if(c)h.featureName=c.toLowerCase();var f=h;f.elements=b(f.elements,/\s+/)||null;f.propertiesOnly=f.propertiesOnly||f.elements===true;var k=/\s*,\s*/,u=void 0;for(u in s){f[u]=b(f[u],k)||null;var o=f,p=A[u],i=b(f[A[u]],k),l=f[u],w=[],m=true,q=void 0;i?m=false:i={};for(q in l)if(q.charAt(0)=="!"){q=q.slice(1);w.push(q);i[q]=true;m=false}for(;q=w.pop();){l[q]=l["!"+q];delete l["!"+q]}o[p]=(m?false:i)||null}f.match=f.match||null;this.allowedContent.push(h);d.push(h)}c=
183
+ this._.rules;e=c.elements||{};a=c.generic||[];h=0;for(f=d.length;h<f;++h){k=B(d[h]);u=k.classes===true||k.styles===true||k.attributes===true;o=k;p=void 0;for(p in s)o[p]=r(o[p]);i=true;for(p in A){p=A[p];o[p]=CKEDITOR.tools.objectKeys(o[p]);o[p]&&(i=false)}o.nothingRequired=i;if(k.elements===true||k.elements===null){k.elements=r(k.elements);a[u?"unshift":"push"](k)}else{o=k.elements;delete k.elements;for(g in o)if(e[g])e[g][u?"unshift":"push"](k);else e[g]=[k]}}c.elements=e;c.generic=a.length?a:null;
184
+ return true},applyTo:function(a,b,c){var d=[],g=!c&&this._.rules,e=this._.transformations,k=f(this),j=this.editor&&this.editor.config.protectedSource,u=false;a.forEach(function(a){if(a.type==CKEDITOR.NODE_ELEMENT){if(!b||!(a.name=="span"&&~CKEDITOR.tools.objectKeys(a.attributes).join("|").indexOf("data-cke-")))k(a,g,e,d,b)&&(u=true)}else if(a.type==CKEDITOR.NODE_COMMENT&&a.value.match(/^\{cke_protected\}(?!\{C\})/)){var c;a:{var h=decodeURIComponent(a.value.replace(/^\{cke_protected\}/,""));c=[];
185
+ var f,o,p;if(j)for(o=0;o<j.length;++o)if((p=h.match(j[o]))&&p[0].length==h.length){c=true;break a}h=CKEDITOR.htmlParser.fragment.fromHtml(h);h.children.length==1&&(f=h.children[0]).type==CKEDITOR.NODE_ELEMENT&&k(f,g,e,c,b);c=!c.length}c||d.push(a)}},null,true);d.length&&(u=true);for(var o,p,a=[],c=["p","br","div"][this.enterMode-1];o=d.pop();)o.type==CKEDITOR.NODE_ELEMENT?h(o,c,a):o.remove();for(;p=a.pop();){o=p.el;if(o.parent)switch(p.check){case "it":D.$removeEmpty[o.name]&&!o.children.length?h(o,
186
+ c,a):n(o)||h(o,c,a);break;case "el-up":o.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&!D[o.parent.name][o.name]&&h(o,c,a);break;case "parent-down":o.parent.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT&&!D[o.parent.name][o.name]&&h(o.parent,c,a)}}return u},checkFeature:function(a){if(this.disabled||!a)return true;a.toFeature&&(a=a.toFeature(this.editor));return!a.requiredContent||this.check(a.requiredContent)},disable:function(){this.disabled=true;this._.toHtmlListener&&this._.toHtmlListener.removeListener();
187
+ this._.toDataFormatListener&&this._.toDataFormatListener.removeListener()},addContentForms:function(a){if(!this.disabled&&a){var b,c,d=[],h;for(b=0;b<a.length&&!h;++b){c=a[b];if((typeof c=="string"||c instanceof CKEDITOR.style)&&this.check(c))h=c}if(h){for(b=0;b<a.length;++b)d.push(k(a[b],h));this.addTransformations(d)}}},addFeature:function(a){if(this.disabled||!a)return true;a.toFeature&&(a=a.toFeature(this.editor));this.allow(a.allowedContent,a.name);this.addTransformations(a.contentTransformations);
188
+ this.addContentForms(a.contentForms);return this.customConfig&&a.requiredContent?this.check(a.requiredContent):true},addTransformations:function(a){var b,c;if(!this.disabled&&a){var d=this._.transformations,h;for(h=0;h<a.length;++h){b=a[h];var g=void 0,e=void 0,f=void 0,k=void 0,o=void 0,j=void 0;c=[];for(e=0;e<b.length;++e){f=b[e];if(typeof f=="string"){f=f.split(/\s*:\s*/);k=f[0];o=null;j=f[1]}else{k=f.check;o=f.left;j=f.right}if(!g){g=f;g=g.element?g.element:k?k.match(/^([a-z0-9]+)/i)[0]:g.left.getDefinition().element}o instanceof
189
+ CKEDITOR.style&&(o=t(o));c.push({check:k==g?null:k,left:o,right:typeof j=="string"?F(j):j})}b=g;d[b]||(d[b]=[]);d[b].push(c)}}},check:function(a,b,c){if(this.disabled)return true;if(CKEDITOR.tools.isArray(a)){for(var h=a.length;h--;)if(this.check(a[h],b,c))return true;return false}var g,e;if(typeof a=="string"){e=a+"<"+(b===false?"0":"1")+(c?"1":"0")+">";if(e in this._.cachedChecks)return this._.cachedChecks[e];h=j(a).$1;g=h.styles;var k=h.classes;h.name=h.elements;h.classes=k=k?k.split(/\s*,\s*/):
190
+ [];h.styles=d(g);h.attributes=d(h.attributes);h.children=[];k.length&&(h.attributes["class"]=k.join(" "));if(g)h.attributes.style=CKEDITOR.tools.writeCssText(h.styles);g=h}else{h=a.getDefinition();g=h.styles;k=h.attributes||{};if(g){g=B(g);k.style=CKEDITOR.tools.writeCssText(g,true)}else g={};g={name:h.element,attributes:k,classes:k["class"]?k["class"].split(/\s+/):[],styles:g,children:[]}}var k=CKEDITOR.tools.clone(g),o=[],p;if(b!==false&&(p=this._.transformations[g.name])){for(h=0;h<p.length;++h)u(this,
191
+ g,p[h]);m(g)}f(this)(k,this._.rules,b===false?false:this._.transformations,o,false,!c,!c);b=o.length>0?false:CKEDITOR.tools.objectCompare(g.attributes,k.attributes,true)?true:false;typeof a=="string"&&(this._.cachedChecks[e]=b);return b}};var s={styles:1,attributes:1,classes:1},A={styles:"requiredStyles",attributes:"requiredAttributes",classes:"requiredClasses"},v=/^([a-z0-9*\s]+)((?:\s*\{[!\w\-,\s\*]+\}\s*|\s*\[[!\w\-,\s\*]+\]\s*|\s*\([!\w\-,\s\*]+\)\s*){0,3})(?:;\s*|$)/i,o={styles:/{([^}]+)}/,attrs:/\[([^\]]+)\]/,
192
+ classes:/\(([^\)]+)\)/},x=CKEDITOR.filter.transformationsTools={sizeToStyle:function(a){this.lengthToStyle(a,"width");this.lengthToStyle(a,"height")},sizeToAttribute:function(a){this.lengthToAttribute(a,"width");this.lengthToAttribute(a,"height")},lengthToStyle:function(a,b,c){c=c||b;if(!(c in a.styles)){var d=a.attributes[b];if(d){/^\d+$/.test(d)&&(d=d+"px");a.styles[c]=d}}delete a.attributes[b]},lengthToAttribute:function(a,b,c){c=c||b;if(!(c in a.attributes)){var d=a.styles[b],h=d&&d.match(/^(\d+)(?:\.\d*)?px$/);
193
+ h?a.attributes[c]=h[1]:d==z&&(a.attributes[c]=z)}delete a.styles[b]},alignmentToStyle:function(a){if(!("float"in a.styles)){var b=a.attributes.align;if(b=="left"||b=="right")a.styles["float"]=b}delete a.attributes.align},alignmentToAttribute:function(a){if(!("align"in a.attributes)){var b=a.styles["float"];if(b=="left"||b=="right")a.attributes.align=b}delete a.styles["float"]},matchesStyle:w,transform:function(a,b){if(typeof b=="string")a.name=b;else{var c=b.getDefinition(),d=c.styles,h=c.attributes,
194
+ g,e,k,f;a.name=c.element;for(g in h)if(g=="class"){c=a.classes.join("|");for(k=h[g].split(/\s+/);f=k.pop();)c.indexOf(f)==-1&&a.classes.push(f)}else a.attributes[g]=h[g];for(e in d)a.styles[e]=d[e]}}}})();
195
+ (function(){CKEDITOR.focusManager=function(a){if(a.focusManager)return a.focusManager;this.hasFocus=false;this.currentActive=null;this._={editor:a};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(){this._.timer&&clearTimeout(this._.timer);if(!this.hasFocus&&!this._.locked){var a=CKEDITOR.currentInstance;a&&a.focusManager.blur(1);this.hasFocus=true;(a=this._.editor.container)&&a.addClass("cke_focus");this._.editor.fire("focus")}},lock:function(){this._.locked=
196
+ 1},unlock:function(){delete this._.locked},blur:function(a){function c(){if(this.hasFocus){this.hasFocus=false;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var b=CKEDITOR.focusManager._.blurDelay;a||!b?c.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;c.call(this)},b,this)}},add:function(a,c){var b=a.getCustomData("focusmanager");if(!b||b!=this){b&&b.remove(a);var b=
197
+ "focus",f="blur";if(c)if(CKEDITOR.env.ie){b="focusin";f="focusout"}else CKEDITOR.event.useCapture=1;var e={blur:function(){a.equals(this.currentActive)&&this.blur()},focus:function(){this.currentActive=a;this.focus()}};a.on(b,e.focus,this);a.on(f,e.blur,this);if(c)CKEDITOR.event.useCapture=0;a.setCustomData("focusmanager",this);a.setCustomData("focusmanager_handlers",e)}},remove:function(a){a.removeCustomData("focusmanager");var c=a.removeCustomData("focusmanager_handlers");a.removeListener("blur",
198
+ c.blur);a.removeListener("focus",c.focus)}}})();CKEDITOR.keystrokeHandler=function(a){if(a.keystrokeHandler)return a.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:a};return this};
199
+ (function(){var a,c=function(b){var b=b.data,c=b.getKeystroke(),d=this.keystrokes[c],j=this._.editor;a=j.fire("key",{keyCode:c})===false;if(!a){d&&(a=j.execCommand(d,{from:"keystrokeHandler"})!==false);a||(a=!!this.blockedKeystrokes[c])}a&&b.preventDefault(true);return!a},b=function(b){if(a){a=false;b.data.preventDefault(true)}};CKEDITOR.keystrokeHandler.prototype={attach:function(a){a.on("keydown",c,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)a.on("keypress",b,this)}}})();
200
+ (function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mk:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,sk:1,sl:1,sq:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1,zh:1},load:function(a,c,b){if(!a||!CKEDITOR.lang.languages[a])a=this.detect(c,a);this[a]?b(a,this[a]):CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+
201
+ a+".js"),function(){b(a,this[a])},this)},detect:function(a,c){var b=this.languages,c=c||navigator.userLanguage||navigator.language||a,f=c.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=f[1],f=f[2];b[e+"-"+f]?e=e+"-"+f:b[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||a}}})();
202
+ CKEDITOR.scriptLoader=function(){var a={},c={};return{load:function(b,f,e,d){var j=typeof b=="string";j&&(b=[b]);e||(e=CKEDITOR);var l=b.length,i=[],m=[],n=function(a){f&&(j?f.call(e,a):f.call(e,i,m))};if(l===0)n(true);else{var r=function(a,b){(b?i:m).push(a);if(--l<=0){d&&CKEDITOR.document.getDocumentElement().removeStyle("cursor");n(b)}},p=function(b,d){a[b]=1;var h=c[b];delete c[b];for(var g=0;g<h.length;g++)h[g](b,d)},g=function(b){if(a[b])r(b,true);else{var d=c[b]||(c[b]=[]);d.push(r);if(!(d.length>
203
+ 1)){var h=new CKEDITOR.dom.element("script");h.setAttributes({type:"text/javascript",src:b});if(f)if(CKEDITOR.env.ie)h.$.onreadystatechange=function(){if(h.$.readyState=="loaded"||h.$.readyState=="complete"){h.$.onreadystatechange=null;p(b,true)}};else{h.$.onload=function(){setTimeout(function(){p(b,true)},0)};h.$.onerror=function(){p(b,false)}}h.appendTo(CKEDITOR.document.getHead())}}};d&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var h=0;h<l;h++)g(b[h])}}}}();
204
+ CKEDITOR.resourceManager=function(a,c){this.basePath=a;this.fileName=c;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
205
+ CKEDITOR.resourceManager.prototype={add:function(a,c){if(this.registered[a])throw'[CKEDITOR.resourceManager.add] The resource name "'+a+'" is already registered.';var b=this.registered[a]=c||{};b.name=a;b.path=this.getPath(a);CKEDITOR.fire(a+CKEDITOR.tools.capitalize(this.fileName)+"Ready",b);return this.get(a)},get:function(a){return this.registered[a]||null},getPath:function(a){var c=this.externals[a];return CKEDITOR.getUrl(c&&c.dir||this.basePath+a+"/")},getFilePath:function(a){var c=this.externals[a];
206
+ return CKEDITOR.getUrl(this.getPath(a)+(c&&typeof c.file=="string"?c.file:this.fileName+".js"))},addExternal:function(a,c,b){for(var a=a.split(","),f=0;f<a.length;f++)this.externals[a[f]]={dir:c,file:b}},load:function(a,c,b){CKEDITOR.tools.isArray(a)||(a=a?[a]:[]);for(var f=this.loaded,e=this.registered,d=[],j={},l={},i=0;i<a.length;i++){var m=a[i];if(m)if(!f[m]&&!e[m]){var n=this.getFilePath(m);d.push(n);n in j||(j[n]=[]);j[n].push(m)}else l[m]=this.get(m)}CKEDITOR.scriptLoader.load(d,function(a,
207
+ d){if(d.length)throw'[CKEDITOR.resourceManager.load] Resource name "'+j[d[0]].join(",")+'" was not found at "'+d[0]+'".';for(var g=0;g<a.length;g++)for(var h=j[a[g]],e=0;e<h.length;e++){var i=h[e];l[i]=this.get(i);f[i]=1}c.call(b,l)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
208
+ CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(a){var c={};return function(b,f,e){var d={},j=function(b){a.call(this,b,function(a){CKEDITOR.tools.extend(d,a);var b=[],l;for(l in a){var r=a[l],p=r&&r.requires;if(!c[l]){if(r.icons)for(var g=r.icons.split(","),h=0;h<g.length;h++)CKEDITOR.skin.addIcon(g[h],r.path+"icons/"+g[h]+".png");c[l]=1}if(p){p.split&&(p=p.split(","));for(r=0;r<p.length;r++)d[p[r]]||b.push(p[r])}}if(b.length)j.call(this,b);else{for(l in d){r=d[l];if(r.onLoad&&
209
+ !r.onLoad._called){r.onLoad()===false&&delete d[l];r.onLoad._called=1}}f&&f.call(e||window,d)}},this)};j.call(this,b)}});CKEDITOR.plugins.setLang=function(a,c,b){var f=this.get(a),a=f.langEntries||(f.langEntries={}),f=f.lang||(f.lang=[]);f.split&&(f=f.split(","));CKEDITOR.tools.indexOf(f,c)==-1&&f.push(c);a[c]=b};CKEDITOR.ui=function(a){if(a.ui)return a.ui;this.items={};this.instances={};this.editor=a;this._={handlers:{}};return this};
210
+ CKEDITOR.ui.prototype={add:function(a,c,b){b.name=a.toLowerCase();var f=this.items[a]={type:c,command:b.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(f,b)},get:function(a){return this.instances[a]},create:function(a){var c=this.items[a],b=c&&this._.handlers[c.type],f=c&&c.command&&this.editor.getCommand(c.command),b=b&&b.create.apply(this,c.args);this.instances[a]=b;f&&f.uiItems.push(b);if(b&&!b.type)b.type=c.type;return b},addHandler:function(a,c){this._.handlers[a]=
211
+ c},space:function(a){return CKEDITOR.document.getById(this.spaceId(a))},spaceId:function(a){return this.editor.id+"_"+a}};CKEDITOR.event.implementOn(CKEDITOR.ui);
212
+ (function(){function a(a,d,g){CKEDITOR.event.call(this);a=a&&CKEDITOR.tools.clone(a);if(d!==void 0){if(d instanceof CKEDITOR.dom.element){if(!g)throw Error("One of the element modes must be specified.");}else throw Error("Expect element of type CKEDITOR.dom.element.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&g==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(g==CKEDITOR.ELEMENT_MODE_INLINE&&!d.is(CKEDITOR.dtd.$editable)||g==CKEDITOR.ELEMENT_MODE_REPLACE&&
213
+ d.is(CKEDITOR.dtd.$nonBodyContent))throw Error('The specified element mode is not supported on element: "'+d.getName()+'".');this.element=d;this.elementMode=g;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(d.getId()||d.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||c();this.id=CKEDITOR.tools.getNextId();this.status="unloaded";this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);
214
+ this.focusManager=new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("readOnly",b);this.on("selectionChange",e);this.on("mode",b);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){j(this,a)},0,this)}function c(){do var a="editor"+ ++p;while(CKEDITOR.instances[a]);return a}function b(){var a=this.commands,b;for(b in a)f(this,a[b])}
215
+ function f(a,b){b[b.startDisabled?"disable":a.readOnly&&!b.readOnly?"disable":b.modes[a.mode]?"enable":"disable"]()}function e(a){var b=this.commands,c=a.editor,d=a.data.path,g;for(g in b){a=b[g];a.contextSensitive&&a.refresh(c,d)}}function d(a){var b=a.config.customConfig;if(!b)return false;var b=CKEDITOR.getUrl(b),c=g[b]||(g[b]={});if(c.fn){c.fn.call(a,a.config);(CKEDITOR.getUrl(a.config.customConfig)==b||!d(a))&&a.fireOnce("customConfigLoaded")}else CKEDITOR.scriptLoader.load(b,function(){c.fn=
216
+ CKEDITOR.editorConfig?CKEDITOR.editorConfig:function(){};d(a)});return true}function j(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,true);delete a.config.on}a.readOnly=!(!a.config.readOnly&&!(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&a.element.getAttribute("disabled")));a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&!CKEDITOR.dtd[a.element.getName()].p;
217
+ a.tabIndex=a.config.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;if(a.config.skin)CKEDITOR.skinName=a.config.skin;a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);a.filter=new CKEDITOR.filter(a);l(a)});if(b&&b.customConfig!=void 0)a.config.customConfig=b.customConfig;d(a)||a.fireOnce("customConfigLoaded")}function l(a){CKEDITOR.skin.loadPart("editor",function(){i(a)})}function i(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,c){a.langCode=
218
+ b;a.lang=CKEDITOR.tools.prototypedCopy(c);if(CKEDITOR.env.gecko&&CKEDITOR.env.version<10900&&a.lang.dir=="rtl")a.lang.dir="ltr";if(!a.config.contentsLangDirection)a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir;a.fire("langLoaded");m(a)})}function m(a){a.getStylesSet(function(b){a.once("loaded",function(){a.fire("stylesSet",{styles:b})},null,null,1);n(a)})}function n(a){var b=a.config,c=b.plugins,d=b.extraPlugins,g=b.removePlugins;if(d)var e=
219
+ RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?=,|$)","g"),c=c.replace(e,""),c=c+(","+d);if(g)var f=RegExp("(?:^|,)(?:"+g.replace(/\s*,\s*/g,"|")+")(?=,|$)","g"),c=c.replace(f,"");CKEDITOR.env.air&&(c=c+",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],g=[],e=[];a.plugins=c;for(var k in c){var j=c[k],o=j.lang,p=null,i=j.requires,r;CKEDITOR.tools.isArray(i)&&(i=i.join(","));if(i&&(r=i.match(f)))for(;i=r.pop();)CKEDITOR.tools.setTimeout(function(a,b){throw Error('Plugin "'+a.replace(",",
220
+ "")+'" cannot be removed from the plugins list, because it\'s required by "'+b+'" plugin.');},0,null,[i,k]);if(o&&!a.lang[k]){o.split&&(o=o.split(","));if(CKEDITOR.tools.indexOf(o,a.langCode)>=0)p=a.langCode;else{p=a.langCode.replace(/-.*/,"");p=p!=a.langCode&&CKEDITOR.tools.indexOf(o,p)>=0?p:CKEDITOR.tools.indexOf(o,"en")>=0?"en":o[0]}if(!j.langEntries||!j.langEntries[p])e.push(CKEDITOR.getUrl(j.path+"lang/"+p+".js"));else{a.lang[k]=j.langEntries[p];p=null}}g.push(p);d.push(j)}CKEDITOR.scriptLoader.load(e,
221
+ function(){for(var c=["beforeInit","init","afterInit"],e=0;e<c.length;e++)for(var k=0;k<d.length;k++){var f=d[k];e===0&&(g[k]&&f.lang&&f.langEntries)&&(a.lang[f.name]=f.langEntries[g[k]]);if(f[c[e]])f[c[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(k=0;k<a.config.blockedKeystrokes.length;k++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[k]]=1;a.status="loaded";a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function r(){var a=
222
+ this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?a.setValue(b):a.setHtml(b);return true}return false}a.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=a;var p=0,g={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){b.name=a.toLowerCase();var c=new CKEDITOR.command(this,b);this.mode&&f(this,c);return this.commands[a]=c},destroy:function(a){this.fire("beforeDestroy");
223
+ !a&&r.call(this);this.editable(null);this.status="destroyed";this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){return(a=a||this.getSelection().getStartElement())?new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,b){var c=this.getCommand(a),d={name:a,commandData:b,command:c};if(c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&
224
+ this.fire("beforeCommandExec",d)!==true){d.returnValue=c.exec(d.commandData);if(!c.async&&this.fire("afterCommandExec",d)!==true)return d.returnValue}return false},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&this.fire("beforeGetData");var b=this._.data;if(typeof b!="string")b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():"";b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=
225
+ this.fire("getSnapshot");if(typeof a!="string"){var b=this.element;b&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a=b.is("textarea")?b.getValue():b.getHtml())}return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},setData:function(a,b,c){if(b)this.on("dataReady",function(a){a.removeListener();b.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=a==void 0||a;if(this.readOnly!=a){this.readOnly=
226
+ a;this.editable().setReadOnly(a);this.fire("readOnly")}},insertHtml:function(a,b){this.fire("insertHtml",{dataValue:a,mode:b})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",a)},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return this.status=="ready"&&this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return r.call(this)},setKeystroke:function(){for(var a=
227
+ this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,g=b.length;g--;){c=b[g];d=0;if(CKEDITOR.tools.isArray(c)){d=c[1];c=c[0]}d?a[c]=d:delete a[c]}},addFeature:function(a){return this.filter.addFeature(a)}})})();CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;
228
+ CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)--\>)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))","g")}};
229
+ (function(){var a=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,c={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(b){for(var f,e,d=0,j;f=this._.htmlPartsRegex.exec(b);){e=f.index;if(e>d){d=b.substring(d,e);if(j)j.push(d);else this.onText(d)}d=
230
+ this._.htmlPartsRegex.lastIndex;if(e=f[1]){e=e.toLowerCase();if(j&&CKEDITOR.dtd.$cdata[e]){this.onCDATA(j.join(""));j=null}if(!j){this.onTagClose(e);continue}}if(j)j.push(f[0]);else if(e=f[3]){e=e.toLowerCase();if(!/="/.test(e)){var l={},i;f=f[4];var m=!!(f&&f.charAt(f.length-1)=="/");if(f)for(;i=a.exec(f);){var n=i[1].toLowerCase();i=i[2]||i[3]||i[4]||"";l[n]=!i&&c[n]?n:i}this.onTagOpen(e,l,m);!j&&CKEDITOR.dtd.$cdata[e]&&(j=[])}}else if(e=f[2])this.onComment(e)}if(b.length>d)this.onText(b.substring(d,
231
+ b.length))}}})();
232
+ CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(a){this._.output.push("<",a)},openTagClose:function(a,c){c?this._.output.push(" />"):this._.output.push(">")},attribute:function(a,c){typeof c=="string"&&(c=CKEDITOR.tools.htmlEncodeAttr(c));this._.output.push(" ",a,'="',c,'"')},closeTag:function(a){this._.output.push("</",a,">")},text:function(a){this._.output.push(a)},comment:function(a){this._.output.push("<\!--",a,"--\>")},write:function(a){this._.output.push(a)},
233
+ reset:function(){this._.output=[];this._.indent=false},getHtml:function(a){var c=this._.output.join("");a&&this.reset();return c}}});"use strict";
234
+ (function(){CKEDITOR.htmlParser.node=function(){};CKEDITOR.htmlParser.node.prototype={remove:function(){var a=this.parent.children,c=CKEDITOR.tools.indexOf(a,this),b=this.previous,f=this.next;b&&(b.next=f);f&&(f.previous=b);a.splice(c,1);this.parent=null},replaceWith:function(a){var c=this.parent.children,b=CKEDITOR.tools.indexOf(c,this),f=a.previous=this.previous,e=a.next=this.next;f&&(f.next=a);e&&(e.previous=a);c[b]=a;a.parent=this.parent;this.parent=null},insertAfter:function(a){var c=a.parent.children,
235
+ b=CKEDITOR.tools.indexOf(c,a),f=a.next;c.splice(b+1,0,this);this.next=a.next;this.previous=a;a.next=this;f&&(f.previous=this);this.parent=a.parent},insertBefore:function(a){var c=a.parent.children,b=CKEDITOR.tools.indexOf(c,a);c.splice(b,0,this);this.next=a;(this.previous=a.previous)&&(a.previous.next=this);a.previous=this;this.parent=a.parent}}})();"use strict";CKEDITOR.htmlParser.comment=function(a){this.value=a;this._={isBlockLike:false}};
236
+ CKEDITOR.htmlParser.comment.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_COMMENT,filter:function(a){var c=this.value;if(!(c=a.onComment(c,this))){this.remove();return false}if(typeof c!="string"){this.replaceWith(c);return false}this.value=c;return true},writeHtml:function(a,c){c&&this.filter(c);a.comment(this.value)}});"use strict";
237
+ (function(){CKEDITOR.htmlParser.text=function(a){this.value=a;this._={isBlockLike:false}};CKEDITOR.htmlParser.text.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(a){if(!(this.value=a.onText(this.value,this))){this.remove();return false}},writeHtml:function(a,c){c&&this.filter(c);a.text(this.value)}})})();"use strict";
238
+ (function(){CKEDITOR.htmlParser.cdata=function(a){this.value=a};CKEDITOR.htmlParser.cdata.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_TEXT,filter:function(){},writeHtml:function(a){a.write(this.value)}})})();"use strict";CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false}};
239
+ (function(){function a(a){return a.name=="a"&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var c=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),b={ol:1,ul:1},f=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1});CKEDITOR.htmlParser.fragment.fromHtml=function(e,d,j){function l(a){var b;if(u.length>0)for(var c=0;c<u.length;c++){var d=u[c],g=d.name,e=CKEDITOR.dtd[g],h=k.name&&
240
+ CKEDITOR.dtd[k.name];if((!h||h[g])&&(!a||!e||e[a]||!CKEDITOR.dtd[a])){if(!b){i();b=1}d=d.clone();d.parent=k;k=d;u.splice(c,1);c--}else if(g==k.name){n(k,k.parent,1);c--}}}function i(){for(;w.length;)n(w.shift(),k)}function m(a){if(a._.isBlockLike&&a.name!="pre"&&a.name!="textarea"){var b=a.children.length,c=a.children[b-1],d;if(c&&c.type==CKEDITOR.NODE_TEXT)(d=CKEDITOR.tools.rtrim(c.value))?c.value=d:a.children.length=b-1}}function n(b,c,d){var c=c||k||h,e=k;if(b.previous===void 0){if(r(c,b)){k=c;
241
+ g.onTagOpen(j,{});b.returnPoint=c=k}m(b);(!a(b)||b.children.length)&&c.add(b);b.name=="pre"&&(F=false);b.name=="textarea"&&(t=false)}if(b.returnPoint){k=b.returnPoint;delete b.returnPoint}else k=d?c:e}function r(a,b){if((a==h||a.name=="body")&&j&&(!a.name||CKEDITOR.dtd[a.name][j])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function p(a,b){return a in CKEDITOR.dtd.$listItem||
242
+ a in CKEDITOR.dtd.$tableContent?a==b||a=="dt"&&b=="dd"||a=="dd"&&b=="dt":false}var g=new CKEDITOR.htmlParser,h=d instanceof CKEDITOR.htmlParser.element?d:typeof d=="string"?new CKEDITOR.htmlParser.element(d):new CKEDITOR.htmlParser.fragment,u=[],w=[],k=h,t=h.name=="textarea",F=h.name=="pre";g.onTagOpen=function(d,e,h,j){e=new CKEDITOR.htmlParser.element(d,e);if(e.isUnknown&&h)e.isEmpty=true;e.isOptionalClose=j;if(a(e))u.push(e);else{if(d=="pre")F=true;else{if(d=="br"&&F){k.add(new CKEDITOR.htmlParser.text("\n"));
243
+ return}d=="textarea"&&(t=true)}if(d=="br")w.push(e);else{for(;;){j=(h=k.name)?CKEDITOR.dtd[h]||(k._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!e.isUnknown&&!k.isUnknown&&!j[d])if(k.isOptionalClose)g.onTagClose(h);else if(d in b&&h in b){h=k.children;(h=h[h.length-1])&&h.name=="li"||n(h=new CKEDITOR.htmlParser.element("li"),k);!e.returnPoint&&(e.returnPoint=k);k=h}else if(d in CKEDITOR.dtd.$listItem&&!p(d,h))g.onTagOpen(d=="li"?"ul":"dl",{},0,1);else if(h in c&&!p(d,h)){!e.returnPoint&&
244
+ (e.returnPoint=k);k=k.parent}else{h in CKEDITOR.dtd.$inline&&u.unshift(k);if(k.parent)n(k,k.parent,1);else{e.isOrphan=1;break}}else break}l(d);i();e.parent=k;e.isEmpty?n(e):k=e}}};g.onTagClose=function(a){for(var b=u.length-1;b>=0;b--)if(a==u[b].name){u.splice(b,1);return}for(var c=[],d=[],g=k;g!=h&&g.name!=a;){g._.isBlockLike||d.unshift(g);c.push(g);g=g.returnPoint||g.parent}if(g!=h){for(b=0;b<c.length;b++){var e=c[b];n(e,e.parent)}k=g;g._.isBlockLike&&i();n(g,g.parent);if(g==k)k=k.parent;u=u.concat(d)}a==
245
+ "body"&&(j=false)};g.onText=function(a){if((!k._.hasInlineStarted||w.length)&&!F&&!t){a=CKEDITOR.tools.ltrim(a);if(a.length===0)return}var d=k.name,e=d?CKEDITOR.dtd[d]||(k._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!t&&!e["#"]&&d in c){g.onTagOpen(d in b?"li":d=="dl"?"dd":d=="table"?"tr":d=="tr"?"td":"");g.onText(a)}else{i();l();!F&&!t&&(a=a.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));a=new CKEDITOR.htmlParser.text(a);if(r(k,a))this.onTagOpen(j,{},0,1);k.add(a)}};g.onCDATA=function(a){k.add(new CKEDITOR.htmlParser.cdata(a))};
246
+ g.onComment=function(a){i();l();k.add(new CKEDITOR.htmlParser.comment(a))};g.parse(e);for(i(!CKEDITOR.env.ie&&1);k!=h;)n(k,k.parent,1);m(h);return h};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=b>0?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT){c.value=CKEDITOR.tools.rtrim(c.value);if(c.value.length===0){this.children.pop();this.add(a);return}}c.next=a}a.previous=c;a.parent=this;
247
+ this.children.splice(b,0,a);if(!this._.hasInlineStarted)this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike},filter:function(a){a.onRoot(this);this.filterChildren(a)},filterChildren:function(a,b){if(this.childrenFilteredBy!=a.id){if(b&&!this.parent)a.onRoot(this);this.childrenFilteredBy=a.id;for(var c=0;c<this.children.length;c++)this.children[c].filter(a)===false&&c--}},writeHtml:function(a,b){b&&this.filter(b);this.writeChildrenHtml(a)},writeChildrenHtml:function(a,
248
+ b,c){if(c&&!this.parent&&b)b.onRoot(this);b&&this.filterChildren(b);for(var b=0,c=this.children,f=c.length;b<f;b++)c[b].writeHtml(a)},forEach:function(a,b,c){!c&&(!b||this.type==b)&&a(this);for(var c=this.children,f,i=0,m=c.length;i<m;i++){f=c[i];f.type==CKEDITOR.NODE_ELEMENT?f.forEach(a,b):(!b||f.type==b)&&a(f)}}}})();
249
+ (function(){function a(a,b){for(var c=0;a&&c<b.length;c++)var e=b[c],a=a.replace(e[0],e[1]);return a}function c(a,b,c){typeof b=="function"&&(b=[b]);var e,f;f=a.length;var n=b&&b.length;if(n){for(e=0;e<f&&a[e].pri<=c;e++);for(f=n-1;f>=0;f--)if(n=b[f]){n.pri=c;a.splice(e,0,n)}}}function b(a,b,c){if(b)for(var e in b){var m=a[e];a[e]=f(m,b[e],c);m||a.$length++}}function f(a,b,f){if(b){b.pri=f;if(a){if(a.splice)c(a,b,f);else{a=a.pri>f?[b,a]:[a,b];a.filter=e}return a}return b.filter=b}}function e(a){for(var b=
250
+ a.type||a instanceof CKEDITOR.htmlParser.fragment,c=0;c<this.length;c++){if(b)var e=a.type,f=a.name;var n=this[c].apply(window,arguments);if(n===false)return n;if(b){if(n&&(n.name!=f||n.type!=e))return n}else if(typeof n!="string")return n;n!=void 0&&(a=n)}return a}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(a){this.id=CKEDITOR.tools.getNextNumber();this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};a&&this.addRules(a,10)},proto:{addRules:function(a,
251
+ e){typeof e!="number"&&(e=10);c(this._.elementNames,a.elementNames,e);c(this._.attributeNames,a.attributeNames,e);b(this._.elements,a.elements,e);b(this._.attributes,a.attributes,e);this._.text=f(this._.text,a.text,e)||this._.text;this._.comment=f(this._.comment,a.comment,e)||this._.comment;this._.root=f(this._.root,a.root,e)||this._.root},applyTo:function(a){a.filter(this)},onElementName:function(b){return a(b,this._.elementNames)},onAttributeName:function(b){return a(b,this._.attributeNames)},onText:function(a){var b=
252
+ this._.text;return b?b.filter(a):a},onComment:function(a,b){var c=this._.comment;return c?c.filter(a,b):a},onRoot:function(a){var b=this._.root;return b?b.filter(a):a},onElement:function(a){for(var b=[this._.elements["^"],this._.elements[a.name],this._.elements.$],c,e=0;e<3;e++)if(c=b[e]){c=c.filter(a,this);if(c===false)return null;if(c&&c!=a)return this.onNode(c);if(a.parent&&!a.name)break}return a},onNode:function(a){var b=a.type;return b==CKEDITOR.NODE_ELEMENT?this.onElement(a):b==CKEDITOR.NODE_TEXT?
253
+ new CKEDITOR.htmlParser.text(this.onText(a.value)):b==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a.value)):null},onAttribute:function(a,b,c){if(b=this._.attributes[b]){a=b.filter(c,a,this);if(a===false)return false;if(typeof a!="undefined")return a}return c}}})})();
254
+ (function(){function a(a,c){function g(a){return a||CKEDITOR.env.ie?new CKEDITOR.htmlParser.text(" "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function h(a,c){return function(e){if(e.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var h=[],o=b(e),r,j;if(o)for(k(o,1)&&h.push(o);o;){if(d(o)&&(r=f(o))&&k(r))if((j=f(r))&&!d(j))h.push(r);else{var u=r,l=g(p),y=u.parent.children,m=CKEDITOR.tools.indexOf(y,u);y.splice(m+1,0,l);y=u.next;u.next=l;l.previous=u;l.parent=u.parent;l.next=y;i(r)}o=o.previous}for(o=
255
+ 0;o<h.length;o++)i(h[o]);if(h=CKEDITOR.env.opera&&!a||(typeof c=="function"?c(e)!==false:c))if(!p&&CKEDITOR.env.ie&&e.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)h=false;else if(!p&&CKEDITOR.env.ie&&(document.documentMode>7||e.name in CKEDITOR.dtd.tr||e.name in CKEDITOR.dtd.$listItem))h=false;else{h=b(e);h=!h||e.name=="form"&&h.name=="input"}h&&e.add(g(a))}}}function k(a,b){if((!p||!CKEDITOR.env.ie)&&a.type==CKEDITOR.NODE_ELEMENT&&a.name=="br"&&!a.attributes["data-cke-eol"])return true;var c;if(a.type==
256
+ CKEDITOR.NODE_TEXT&&(c=a.value.match(F))){if(c.index){j(a,new CKEDITOR.htmlParser.text(a.value.substring(0,c.index)));a.value=c[0]}if(CKEDITOR.env.ie&&p&&(!b||a.parent.name in r))return true;if(!p)if((c=a.previous)&&c.name=="br"||!c||d(c))return true}return false}var o={elements:{}},p=c=="html",r=CKEDITOR.tools.extend({},z),u;for(u in r)"#"in B[u]||delete r[u];for(u in r)o.elements[u]=h(p,a.config.fillEmptyBlocks!==false);o.root=h(p);o.elements.br=function(a){return function(b){if(b.parent.type!=
257
+ CKEDITOR.NODE_DOCUMENT_FRAGMENT){var c=b.attributes;if("data-cke-bogus"in c||"data-cke-eol"in c)delete c["data-cke-bogus"];else{for(c=b.next;c&&e(c);)c=c.next;var h=f(b);!c&&d(b.parent)?l(b.parent,g(a)):d(c)&&(h&&!d(h))&&j(c,g(a))}}}}(p);return o}function c(a){return a.enterMode!=CKEDITOR.ENTER_BR&&a.autoParagraph!==false?a.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false}function b(a){for(a=a.children[a.children.length-1];a&&e(a);)a=a.previous;return a}function f(a){for(a=a.previous;a&&e(a);)a=a.previous;
258
+ return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function d(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in z||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function j(a,b){var c=a.parent.children,g=CKEDITOR.tools.indexOf(c,a);c.splice(g,0,b);c=a.previous;a.previous=b;b.next=a;b.parent=a.parent;if(c){b.previous=c;c.next=b}}function l(a,b){var c=a.children[a.children.length-1];a.children.push(b);
259
+ b.parent=a;if(c){c.next=b;b.previous=c}}function i(a){var b=a.parent.children,c=CKEDITOR.tools.indexOf(b,a),g=a.previous,a=a.next;g&&(g.next=a);a&&(a.previous=g);b.splice(c,1)}function m(a){var b=a.parent;return b?CKEDITOR.tools.indexOf(b.children,a):-1}function n(a){a=a.attributes;a.contenteditable!="false"&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function r(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}
260
+ function p(a){return a.replace(o,function(a,b,c){return"<"+b+c.replace(x,function(a,b){return!/^on/.test(b)&&c.indexOf("data-cke-saved-"+b)==-1?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+">"})}function g(a,b){return a.replace(b,function(a,b,c){a.indexOf("<textarea")==0&&(a=b+w(c).replace(/</g,"&lt;").replace(/>/g,"&gt;")+"</textarea>");return"<cke:encoded>"+encodeURIComponent(a)+"</cke:encoded>"})}function h(a){return a.replace(C,function(a,b){return decodeURIComponent(b)})}function u(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,
261
+ function(a){return"<\!--"+D+"{C}"+encodeURIComponent(a).replace(/--/g,"%2D%2D")+"--\>"})}function w(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function k(a,b){var c=b._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function t(a,b){for(var c=[],g=b.config.protectedSource,d=b._.dataStore||(b._.dataStore=
262
+ {id:1}),e=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,g=[/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(g),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(c.push(a)-1)+"--\>"}),h=0;h<g.length;h++)a=a.replace(g[h],function(a){a=a.replace(e,function(a,b,g){return c[g]});return/cke_temp(comment)?/.test(a)?a:"<\!--{cke_temp}"+(c.push(a)-1)+"--\>"});a=a.replace(e,function(a,b,g){return"<\!--"+D+(b?"{C}":"")+encodeURIComponent(c[g]).replace(/--/g,"%2D%2D")+
263
+ "--\>"});return a.replace(/(['"]).*?\1/g,function(a){return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){d[d.id]=decodeURIComponent(b);return"{cke_protected_"+d.id++ +"}"})})}CKEDITOR.htmlDataProcessor=function(b){var d,e,f=this;this.editor=b;this.dataFilter=d=new CKEDITOR.htmlParser.filter;this.htmlFilter=e=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;d.addRules(s);d.addRules(a(b,"data"));e.addRules(A);e.addRules(a(b,"html"));b.on("toHtml",function(a){var a=
264
+ a.data,d=a.dataValue,d=t(d,b),d=g(d,G),d=p(d),d=g(d,I),d=d.replace(Q,"$1cke:$2"),d=d.replace(E,"<cke:$1$2></cke:$1>"),d=CKEDITOR.env.opera?d:d.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),e=a.context||b.editable().getName(),f;if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&e=="pre"){e="div";d="<pre>"+d+"</pre>";f=1}e=b.document.createElement(e);e.setHtml("a"+d);d=e.getHtml().substr(1);d=d.replace(RegExp(" data-cke-"+CKEDITOR.rnd+"-","ig")," ");f&&(d=d.replace(/^<pre>|<\/pre>$/gi,""));d=d.replace(L,"$1$2");
265
+ d=h(d);d=w(d);a.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(d,a.context,a.fixForBody===false?false:c(b.config))},null,null,5);b.on("toHtml",function(a){a.data.dataValue.filterChildren(f.dataFilter,true)},null,null,10);b.on("toHtml",function(a){var a=a.data,b=a.dataValue,c=new CKEDITOR.htmlParser.basicWriter;b.writeChildrenHtml(c);b=c.getHtml(true);a.dataValue=u(b)},null,null,15);b.on("toDataFormat",function(a){a.data.dataValue=CKEDITOR.htmlParser.fragment.fromHtml(a.data.dataValue,b.editable().getName(),
266
+ c(b.config))},null,null,5);b.on("toDataFormat",function(a){a.data.dataValue.filterChildren(f.htmlFilter,true)},null,null,10);b.on("toDataFormat",function(a){var c=a.data.dataValue,g=f.writer;g.reset();c.writeChildrenHtml(g);c=g.getHtml(true);c=w(c);c=k(c,b);a.data.dataValue=c},null,null,15)};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,c,g){var d=this.editor;!b&&b!==null&&(b=d.editable().getName());return d.fire("toHtml",{dataValue:a,context:b,fixForBody:c,dontFilter:!!g}).dataValue},
267
+ toDataFormat:function(a){return this.editor.fire("toDataFormat",{dataValue:a}).dataValue}};var F=/(?:&nbsp;|\xa0)$/,D="{cke_protected}",B=CKEDITOR.dtd,q=["caption","colgroup","col","thead","tfoot","tbody"],z=CKEDITOR.tools.extend({},B.$blockLimit,B.$block),s={elements:{},attributeNames:[[/^on/,"data-cke-pa-on"]]},A={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return false;
268
+ for(var c=["name","href","src"],g,d=0;d<c.length;d++){g="data-cke-saved-"+c[d];g in b&&delete b[c[d]]}}return a},table:function(a){a.children.slice(0).sort(function(a,b){var c,g;if(a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type){c=CKEDITOR.tools.indexOf(q,a.name);g=CKEDITOR.tools.indexOf(q,b.name)}if(!(c>-1&&g>-1&&c!=g)){c=m(a);g=m(b)}return c>g?1:-1})},embed:function(a){var b=a.parent;if(b&&b.name=="object"){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c);b&&(a.attributes.height=
269
+ b)}},param:function(a){a.children=[];a.isEmpty=true;return a},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false},span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));
270
+ if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var b=a.children[0];!b&&l(a,b=new CKEDITOR.htmlParser.text);b.value=a.attributes["data-cke-title"]||""}},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,""))||false}}};if(CKEDITOR.env.ie)A.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})};for(var v in{input:1,textarea:1}){s.elements[v]=n;A.elements[v]=r}var o=/<(a|area|img|input|source)\b([^>]*)>/gi,
271
+ x=/\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,I=/(?:<style(?=[ >])[^>]*>[\s\S]*?<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,G=/(<textarea(?=[ >])[^>]*>)([\s\S]*?)(?:<\/textarea>)/gi,C=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,Q=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,L=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,E=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();"use strict";
272
+ CKEDITOR.htmlParser.element=function(a,c){this.name=a;this.attributes=c||{};this.children=[];var b=a||"",f=b.match(/^cke:(.*)/);f&&(b=f[1]);b=!(!CKEDITOR.dtd.$nonBodyContent[b]&&!CKEDITOR.dtd.$block[b]&&!CKEDITOR.dtd.$listItem[b]&&!CKEDITOR.dtd.$tableContent[b]&&!(CKEDITOR.dtd.$nonEditable[b]||b=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[a];this.isUnknown=!CKEDITOR.dtd[a];this._={isBlockLike:b,hasInlineStarted:this.isEmpty||!b}};
273
+ CKEDITOR.htmlParser.cssStyle=function(a){var c={};((a instanceof CKEDITOR.htmlParser.element?a.attributes.style:a)||"").replace(/&quot;/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,f,e){f=="font-family"&&(e=e.replace(/["']/g,""));c[f.toLowerCase()]=e});return{rules:c,populate:function(a){var c=this.toString();if(c)a instanceof CKEDITOR.dom.element?a.setAttribute("style",c):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=c:a.style=c},toString:function(){var a=[],f;
274
+ for(f in c)c[f]&&a.push(f,":",c[f],";");return a.join("")}}};
275
+ (function(){var a=function(a,c){a=a[0];c=c[0];return a<c?-1:a>c?1:0},c=CKEDITOR.htmlParser.fragment.prototype;CKEDITOR.htmlParser.element.prototype=CKEDITOR.tools.extend(new CKEDITOR.htmlParser.node,{type:CKEDITOR.NODE_ELEMENT,add:c.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},filter:function(a){var c=this,e,d;if(!c.parent)a.onRoot(c);for(;;){e=c.name;if(!(d=a.onElementName(e))){this.remove();return false}c.name=d;if(!(c=a.onElement(c))){this.remove();return false}if(c!==
276
+ this){this.replaceWith(c);return false}if(c.name==e)break;if(c.type!=CKEDITOR.NODE_ELEMENT){this.replaceWith(c);return false}if(!c.name){this.replaceWithChildren();return false}}e=c.attributes;var j,l;for(j in e){l=j;for(d=e[j];;)if(l=a.onAttributeName(j))if(l!=j){delete e[j];j=l}else break;else{delete e[j];break}l&&((d=a.onAttribute(c,l,d))===false?delete e[l]:e[l]=d)}c.isEmpty||this.filterChildren(a);return true},filterChildren:c.filterChildren,writeHtml:function(b,c){c&&this.filter(c);var e=this.name,
277
+ d=[],j=this.attributes,l,i;b.openTag(e,j);for(l in j)d.push([l,j[l]]);b.sortAttributes&&d.sort(a);l=0;for(i=d.length;l<i;l++){j=d[l];b.attribute(j[0],j[1])}b.openTagClose(e,this.isEmpty);this.writeChildrenHtml(b);this.isEmpty||b.closeTag(e)},writeChildrenHtml:c.writeChildrenHtml,replaceWithChildren:function(){for(var a=this.children,c=a.length;c;)a[--c].insertAfter(this);this.remove()},forEach:c.forEach})})();
278
+ (function(){var a={};CKEDITOR.template=function(c){if(a[c])this.output=a[c];else{var b=c.replace(/'/g,"\\'").replace(/{([^}]+)}/g,function(a,b){return"',data['"+b+"']==undefined?'{"+b+"}':data['"+b+"'],'"});this.output=a[c]=Function("data","buffer","return buffer?buffer.push('"+b+"'):['"+b+"'].join('');")}}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
279
+ CKEDITOR.add=function(a){CKEDITOR.instances[a.name]=a;a.on("focus",function(){if(CKEDITOR.currentInstance!=a){CKEDITOR.currentInstance=a;CKEDITOR.fire("currentInstance")}});a.on("blur",function(){if(CKEDITOR.currentInstance==a){CKEDITOR.currentInstance=null;CKEDITOR.fire("currentInstance")}});CKEDITOR.fire("instance",null,a)};CKEDITOR.remove=function(a){delete CKEDITOR.instances[a.name]};
280
+ (function(){var a={};CKEDITOR.addTemplate=function(c,b){var f=a[c];if(f)return f;f={name:c,source:b};CKEDITOR.fire("template",f);return a[c]=new CKEDITOR.template(f.source)};CKEDITOR.getTemplate=function(c){return a[c]}})();(function(){var a=[];CKEDITOR.addCss=function(c){a.push(c)};CKEDITOR.getCss=function(){return a.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2;
281
+ CKEDITOR.TRISTATE_DISABLED=0;
282
+ (function(){CKEDITOR.inline=function(a,c){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var b=new CKEDITOR.editor(c,a,CKEDITOR.ELEMENT_MODE_INLINE);b.setData(a.getHtml(),null,true);b.on("loaded",function(){b.fire("uiReady");b.editable(a);b.container=a;b.setData(b.getData(1));b.resetDirty();b.fire("contentDom");b.mode="wysiwyg";b.fire("mode");b.status="ready";
283
+ b.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,b)},null,null,1E4);b.on("destroy",function(){b.element.clearCustomData();delete b.element});return b};CKEDITOR.inlineAll=function(){var a,c,b;for(b in CKEDITOR.dtd.$editable)for(var f=CKEDITOR.document.getElementsByTag(b),e=0,d=f.count();e<d;e++){a=f.getItem(e);if(a.getAttribute("contenteditable")=="true"){c={element:a,config:{}};CKEDITOR.fire("inline",c)!==false&&CKEDITOR.inline(a,c.config)}}};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&
284
+ CKEDITOR.inlineAll()})})();CKEDITOR.replaceClass="ckeditor";
285
+ (function(){function a(a,e,l,i){if(!CKEDITOR.env.isCompatible)return null;a=CKEDITOR.dom.element.get(a);if(a.getEditor())throw'The editor instance "'+a.getEditor().name+'" is already attached to the provided element.';var m=new CKEDITOR.editor(e,a,i);i==CKEDITOR.ELEMENT_MODE_REPLACE&&a.setStyle("visibility","hidden");l&&m.setData(l,null,true);m.on("loaded",function(){b(m);i==CKEDITOR.ELEMENT_MODE_REPLACE&&m.config.autoUpdateElement&&f(m);m.setMode(m.config.startupMode,function(){m.resetDirty();m.status=
286
+ "ready";m.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",null,m)})});m.on("destroy",c);return m}function c(){var a=this.container,b=this.element;if(a){a.clearCustomData();a.remove()}if(b){b.clearCustomData();this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&b.show();delete this.element}}function b(a){var b=a.name,c=a.element,f=a.elementMode,m=a.fire("uiSpace",{space:"top",html:""}).html,n=a.fire("uiSpace",{space:"bottom",html:""}).html;e||(e=CKEDITOR.addTemplate("maincontainer",'<{outerEl} id="cke_{name}" class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+
287
+ CKEDITOR.env.cssClass+'" dir="{langDir}" lang="{langCode}" role="application" aria-labelledby="cke_{name}_arialbl"><span id="cke_{name}_arialbl" class="cke_voice_label">{voiceLabel}</span><{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation"></{outerEl}>{bottomHtml}</{outerEl}></{outerEl}>'));b=CKEDITOR.dom.element.createFromHtml(e.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.lang.editor,
288
+ topHtml:m?'<span id="'+a.ui.spaceId("top")+'" class="cke_top cke_reset_all" role="presentation" style="height:auto">'+m+"</span>":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'<span id="'+a.ui.spaceId("bottom")+'" class="cke_bottom cke_reset_all" role="presentation">'+n+"</span>":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(f==CKEDITOR.ELEMENT_MODE_REPLACE){c.hide();b.insertAfter(c)}else c.append(b);a.container=b;m&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();c=
289
+ a.config.width;f=a.config.height;c&&b.setStyle("width",CKEDITOR.tools.cssLength(c));f&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(f));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}function f(a){var b=a.element;if(a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&b.is("textarea")){var c=b.$.form&&new CKEDITOR.dom.element(b.$.form);if(c){var e=function(){a.updateElement()};c.on("submit",e);if(!c.$.submit.nodeName&&!c.$.submit.length)c.$.submit=
290
+ CKEDITOR.tools.override(c.$.submit,function(b){return function(){a.updateElement();b.apply?b.apply(this,arguments):b()}});a.on("destroy",function(){c.removeListener("submit",e)})}}}CKEDITOR.replace=function(b,c){return a(b,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(b,c,e){return a(b,c,e,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var c=null,e=a[b];if(e.name||e.id){if(typeof arguments[0]==
291
+ "string"){if(!RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)").test(e.className))continue}else if(typeof arguments[0]=="function"){c={};if(arguments[0](e,c)===false)continue}this.replace(e,c)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes={}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var c=this,e=this._.modes;if(!(a==c.mode||!e||!e[a])){c.fire("beforeSetMode",a);if(c.mode){var f=c.checkDirty();c._.previousMode=c.mode;c.fire("beforeModeUnload");c.editable(0);
292
+ c.ui.space("contents").setHtml("");c.mode=""}this._.modes[a](function(){c.mode=a;f!==void 0&&!f&&c.resetDirty();setTimeout(function(){c.fire("mode");b&&b.call(c)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,c,e){var f=this.container,n=this.ui.space("contents"),r=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement,e=e?f.getChild(1):f;e.setSize("width",a,true);r&&(r.style.width="1%");n.setStyle("height",Math.max(b-(c?0:(e.$.offsetHeight||0)-(n.$.clientHeight||0)),0)+
293
+ "px");r&&(r.style.width="100%");this.fire("resize")};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};var e;CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
294
+ (function(){function a(a){var c=a.editor,g=c.editable(),d=a.data.path,e=d.blockLimit,f=a.data.selection.getRanges()[0],k=c.config.enterMode;if(CKEDITOR.env.gecko){var i=d.block||d.blockLimit||d.root,j=i&&i.getLast(b);i&&(i.isBlockBoundary()&&(!j||!(j.type==CKEDITOR.NODE_ELEMENT&&j.isBlockBoundary()))&&!i.is("pre")&&!i.getBogus())&&i.appendBogus()}if(c.config.autoParagraph!==false&&k!=CKEDITOR.ENTER_BR&&f.collapsed&&g.equals(e)&&!d.block){g=f.clone();g.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);d=new CKEDITOR.dom.walker(g);
295
+ d.guard=function(a){return!b(a)||a.type==CKEDITOR.NODE_COMMENT||a.isReadOnly()};if(!d.checkForward()||g.checkStartOfBlock()&&g.checkEndOfBlock()){c=f.fixBlock(true,c.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p");if(CKEDITOR.env.ie)(c=c.getFirst(b))&&(c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText()).match(/^(?:&nbsp;|\xa0)$/))&&c.remove();f.select();a.cancel()}}}function c(a){var b=a.data.getTarget();if(b.is("input")){b=b.getAttribute("type");(b=="submit"||b=="reset")&&a.data.preventDefault()}}
296
+ function b(a){return i(a)&&m(a)}function f(a,b){return function(c){var d=CKEDITOR.dom.element.get(c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget);(!d||!b.equals(d)&&!b.contains(d))&&a.call(this,c)}}function e(a){var c,g=a.getRanges()[0],a=a.root,d=g.startPath(),e={table:1,ul:1,ol:1,dl:1},f=CKEDITOR.dom.walker.bogus();if(d.contains(e)){var k=g.clone();k.collapse(1);k.setStartAt(a,CKEDITOR.POSITION_AFTER_START);k=new CKEDITOR.dom.walker(k);d=function(a,g){return function(a,d){d&&(a.type==
297
+ CKEDITOR.NODE_ELEMENT&&a.is(e))&&(c=a);if(b(a)&&!d&&(!g||!f(a)))return false}};k.guard=d(k);k.checkBackward();if(c){k=g.clone();k.collapse();k.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);k=new CKEDITOR.dom.walker(k);k.guard=d(k,1);c=0;k.checkForward();return c}}return null}function d(a){a.editor.focus();a.editor.fire("saveSnapshot")}function j(a,b){var c=a.editor;!b&&c.getSelection().scrollIntoView();setTimeout(function(){c.fire("saveSnapshot")},0)}CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,
298
+ $:function(a,b){this.base(b.$||b);this.editor=a;this.hasFocus=false;this.setup()},proto:{focus:function(){this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]();CKEDITOR.env.safari&&!this.isInline()&&(CKEDITOR.document.getActive().equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var c=Array.prototype.slice.call(arguments,0);if(CKEDITOR.env.ie&&/^focus|blur$/.exec(a)){a=a=="focus"?"focusin":"focusout";b=f(b,this);c[0]=a;c[1]=b}return CKEDITOR.dom.element.prototype.on.apply(this,
299
+ c)},attachListener:function(a,b,c,d,e,f){!this._.listeners&&(this._.listeners=[]);var k=Array.prototype.slice.call(arguments,1);this._.listeners.push(a.on.apply(a,k))},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,c;for(c in a)if(a.hasOwnProperty(c)){b=a[c];b!==null?this.setAttribute(c,b):this.removeAttribute(c)}},attachClass:function(a){var b=this.getCustomData("classes");if(!this.hasClass(a)){!b&&
300
+ (b=[]);b.push(a);this.setCustomData("classes",b);this.addClass(a)}},changeAttr:function(a,b){var c=this.getAttribute(a);if(b!==c){!this._.attrChanges&&(this._.attrChanges={});a in this._.attrChanges||(this._.attrChanges[a]=c);this.setAttribute(a,b)}},insertHtml:function(a,b){d(this);n(this,b||"html",a)},insertText:function(a){d(this);var b=this.editor,c=b.getSelection().getStartElement().hasAscendant("pre",true)?CKEDITOR.ENTER_BR:b.config.enterMode,b=c==CKEDITOR.ENTER_BR,e=CKEDITOR.tools,a=e.htmlEncode(a.replace(/\r\n/g,
301
+ "\n")),a=a.replace(/\t/g,"&nbsp;&nbsp; &nbsp;"),c=c==CKEDITOR.ENTER_P?"p":"div";if(!b){var f=/\n{2}/g;if(f.test(a))var i="<"+c+">",k="</"+c+">",a=i+a.replace(f,function(){return k+i})+k}a=a.replace(/\n/g,"<br>");b||(a=a.replace(RegExp("<br>(?=</"+c+">)"),function(a){return e.repeat(a,2)}));a=a.replace(/^ | $/g,"&nbsp;");a=a.replace(/(>|\s) /g,function(a,b){return b+"&nbsp;"}).replace(/ (?=<)/g,"&nbsp;");n(this,"text",a)},insertElement:function(a){d(this);for(var c=this.editor,g=c.config.enterMode,
302
+ e=c.getSelection(),f=e.getRanges(),i=a.getName(),k=CKEDITOR.dtd.$block[i],m,n,l,B=f.length-1;B>=0;B--){m=f[B];if(!m.checkReadOnly()){m.deleteContents(1);n=!B&&a||a.clone(1);var q,z;if(k)for(;(q=m.getCommonAncestor(0,1))&&(z=CKEDITOR.dtd[q.getName()])&&(!z||!z[i]);)if(q.getName()in CKEDITOR.dtd.span)m.splitElement(q);else if(m.checkStartOfBlock()&&m.checkEndOfBlock()){m.setStartBefore(q);m.collapse(true);q.remove()}else m.splitBlock(g==CKEDITOR.ENTER_DIV?"div":"p",c.editable());m.insertNode(n);l||
303
+ (l=n)}}if(l){m.moveToPosition(l,CKEDITOR.POSITION_AFTER_END);if(k)if((a=l.getNext(b))&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(CKEDITOR.dtd.$block))a.getDtd()["#"]?m.moveToElementEditStart(a):m.moveToElementEditEnd(l);else if(!a&&g!=CKEDITOR.ENTER_BR){a=m.fixBlock(true,g==CKEDITOR.ENTER_DIV?"div":"p");m.moveToElementEditStart(a)}}e.selectRanges([m]);j(this,CKEDITOR.env.opera)},setData:function(a,b){!b&&this.editor.dataProcessor&&(a=this.editor.dataProcessor.toHtml(a));this.setHtml(a);this.editor.fire("dataReady")},
304
+ getData:function(a){var b=this.getHtml();!a&&this.editor.dataProcessor&&(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",function(){var b=this.getData();this.is("textarea")||
305
+ a.config.ignoreEmptyParagraph!==false&&(b=b.replace(l,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&b.type=="Control"||this.focus()},this);this.attachListener(a,"insertHtml",
306
+ function(a){this.insertHtml(a.data.dataValue,a.data.mode)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");this.attachClass(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"cke_editable_inline":a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE||a.elementMode==CKEDITOR.ELEMENT_MODE_APPENDTO?"cke_editable_themed":"");this.attachClass("cke_contents_"+
307
+ a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(a){CKEDITOR.env.opera&&CKEDITOR.document.getActive().equals(this.isInline()?this:this.getWindow().getFrame())?a.cancel():this.hasFocus=false},null,null,-1);this.on("focus",function(){this.hasFocus=true},null,null,-1);a.focusManager.add(this);if(this.equals(CKEDITOR.document.getActive())){this.hasFocus=true;a.once("contentDom",function(){a.focusManager.focus()})}this.isInline()&&
308
+ this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var g=a.config.contentsLangDirection;this.getDirection(1)!=g&&this.changeAttr("dir",g);var d=CKEDITOR.getCss();if(d){g=b.getHead();if(!g.getCustomData("stylesheet")){d=b.appendStyleText(d);d=new CKEDITOR.dom.element(d.ownerNode||d.owningElement);g.setCustomData("stylesheet",d);d.data("cke-temp",1)}}g=
309
+ b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",g+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=a.getTarget();b.is("a")&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.keyCode,g;if(c in{8:1,46:1}){var d=a.getSelection(),b=d.getRanges()[0],h=b.startPath(),f,p,j,c=c==8;if(d=e(d)){a.fire("saveSnapshot");
310
+ b.moveToPosition(d,CKEDITOR.POSITION_BEFORE_START);d.remove();b.select();a.fire("saveSnapshot");g=1}else if(b.collapsed)if((f=h.block)&&b[c?"checkStartOfBlock":"checkEndOfBlock"]()&&(j=f[c?"getPrevious":"getNext"](i))&&j.is("table")){a.fire("saveSnapshot");b[c?"checkEndOfBlock":"checkStartOfBlock"]()&&f.remove();b["moveToElementEdit"+(c?"End":"Start")](j);b.select();a.fire("saveSnapshot");g=1}else if(h.blockLimit&&h.blockLimit.is("td")&&(p=h.blockLimit.getAscendant("table"))&&b.checkBoundaryOfElement(p,
311
+ c?CKEDITOR.START:CKEDITOR.END)&&(j=p[c?"getPrevious":"getNext"](i))){a.fire("saveSnapshot");b["moveToElementEdit"+(c?"End":"Start")](j);b.checkStartOfBlock()&&b.checkEndOfBlock()?j.remove():b.select();a.fire("saveSnapshot");g=1}else if((p=h.contains(["td","th","caption"]))&&b.checkBoundaryOfElement(p,c?CKEDITOR.START:CKEDITOR.END))g=1}return!g});CKEDITOR.env.ie&&this.attachListener(this,"click",c);!CKEDITOR.env.ie&&!CKEDITOR.env.opera&&this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();
312
+ if(c.is("img","hr","input","textarea","select")){a.getSelection().selectElement(c);c.is("input","textarea","select")&&b.data.preventDefault()}});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(b.data.$.button==2){b=b.data.getTarget();if(!b.getOuterHtml().replace(l,"")){var c=a.createRange();c.moveToElementEditStart(b);c.select(true)}}});if(CKEDITOR.env.webkit){this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()});this.attachListener(this,
313
+ "mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})}}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");if(--c)a.setCustomData("stylesheet_ref",c);else{a.removeCustomData("stylesheet_ref");b.removeCustomData("stylesheet").remove()}}delete this.editor}}});
314
+ CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;if(arguments.length)b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null);return b};var l=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>|&nbsp;|\u00A0|&#160;)?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,i=CKEDITOR.dom.walker.whitespaces(true),m=CKEDITOR.dom.walker.bookmark(false,true);CKEDITOR.on("instanceLoaded",function(b){var c=b.editor;c.on("insertElement",
315
+ function(a){a=a.data;if(a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))){a.getAttribute("contentEditable")!="false"&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1");a.setAttribute("contentEditable",false)}});c.on("selectionChange",function(b){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();c.fire("lockSnapshot");a(b);c.fire("unlockSnapshot");!d&&c.resetDirty()}}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",
316
+ function(){var a=b.editable();if(a&&a.isInline()){var c=this.lang.editor+", "+this.name;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);a.changeAttr("title",c);if(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents")){var d=CKEDITOR.tools.getNextId(),e=CKEDITOR.dom.element.createFromHtml('<span id="'+d+'" class="cke_voice_label">'+this.lang.common.editorHelp+"</span>");c.append(e);a.changeAttr("aria-describedby",d)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");
317
+ var n=function(){function a(b){return b.type==CKEDITOR.NODE_ELEMENT}function c(b,d){var g,e,h,f,o=[],i=d.range.startContainer;g=d.range.startPath();for(var i=k[i.getName()],j=0,m=b.getChildren(),n=m.count(),l=-1,u=-1,t=0,w=g.contains(k.$list);j<n;++j){g=m.getItem(j);if(a(g)){h=g.getName();if(w&&h in CKEDITOR.dtd.$list)o=o.concat(c(g,d));else{f=!!i[h];if(h=="br"&&g.data("cke-eol")&&(!j||j==n-1)){t=(e=j?o[j-1].node:m.getItem(j+1))&&(!a(e)||!e.is("br"));e=e&&a(e)&&k.$block[e.getName()]}l==-1&&!f&&(l=
318
+ j);f||(u=j);o.push({isElement:1,isLineBreak:t,isBlock:g.isBlockBoundary(),hasBlockSibling:e,node:g,name:h,allowed:f});e=t=0}}else o.push({isElement:0,node:g,allowed:1})}if(l>-1)o[l].firstNotAllowed=1;if(u>-1)o[u].lastNotAllowed=1;return o}function d(b,c){var e=[],h=b.getChildren(),f=h.count(),i,o=0,j=k[c],p=!b.is(k.$inline)||b.is("br");for(p&&e.push(" ");o<f;o++){i=h.getItem(o);a(i)&&!i.is(j)?e=e.concat(d(i,c)):e.push(i)}p&&e.push(" ");return e}function e(b){return b&&a(b)&&(b.is(k.$removeEmpty)||
319
+ b.is("a")&&!b.isBlockBoundary())}function f(b,c,d,g){var e=b.clone(),h,k;e.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);if((h=(new CKEDITOR.dom.walker(e)).next())&&a(h)&&m[h.getName()]&&(k=h.getPrevious())&&a(k)&&!k.getParent().equals(b.startContainer)&&d.contains(k)&&g.contains(h)&&h.isIdentical(k)){h.moveChildren(k);h.remove();f(b,c,d,g)}}function i(b,c){function d(b,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&a(b)&&b.is("br")){b.remove();return 1}}var g=c.endContainer.getChild(c.endOffset),e=c.endContainer.getChild(c.endOffset-
320
+ 1);g&&d(g,b[b.length-1]);if(e&&d(e,b[0])){c.setEnd(c.endContainer,c.endOffset-1);c.collapse()}}var k=CKEDITOR.dtd,m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},l={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},n=CKEDITOR.tools.extend({},k.$inline);delete n.br;return function(m,q,t){var s=m.editor;m.getDocument();var A=s.getSelection().getRanges()[0],v=false;if(q=="unfiltered_html"){q="html";v=true}if(!A.checkReadOnly()){var o=(new CKEDITOR.dom.elementPath(A.startContainer,
321
+ A.root)).blockLimit||A.root,q={type:q,dontFilter:v,editable:m,editor:s,range:A,blockLimit:o,mergeCandidates:[],zombies:[]},s=q.range,v=q.mergeCandidates,x,I,G,C;if(q.type=="text"&&s.shrink(CKEDITOR.SHRINK_ELEMENT,true,false)){x=CKEDITOR.dom.element.createFromHtml("<span>&nbsp;</span>",s.document);s.insertNode(x);s.setStartAfter(x)}I=new CKEDITOR.dom.elementPath(s.startContainer);q.endPath=G=new CKEDITOR.dom.elementPath(s.endContainer);if(!s.collapsed){var o=G.block||G.blockLimit,Q=s.getCommonAncestor();
322
+ o&&(!o.equals(Q)&&!o.contains(Q)&&s.checkEndOfBlock())&&q.zombies.push(o);s.deleteContents()}for(;(C=a(s.startContainer)&&s.startContainer.getChild(s.startOffset-1))&&a(C)&&C.isBlockBoundary()&&I.contains(C);)s.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END);f(s,q.blockLimit,I,G);if(x){s.setEndBefore(x);s.collapse();x.remove()}x=s.startPath();if(o=x.contains(e,false,1)){s.splitElement(o);q.inlineStylesRoot=o;q.inlineStylesPeak=x.lastElement}x=s.createBookmark();(o=x.startNode.getPrevious(b))&&a(o)&&
323
+ e(o)&&v.push(o);(o=x.startNode.getNext(b))&&a(o)&&e(o)&&v.push(o);for(o=x.startNode;(o=o.getParent())&&e(o);)v.push(o);s.moveToBookmark(x);if(t){C=t;t=q.range;if(q.type=="text"&&q.inlineStylesRoot){x=C;C=q.inlineStylesPeak;s=C.getDocument().createText("{cke-peak}");for(v=q.inlineStylesRoot.getParent();!C.equals(v);){s=s.appendTo(C.clone());C=C.getParent()}C=s.getOuterHtml().replace("{cke-peak}",x)}x=q.blockLimit.getName();if(/^\s+|\s+$/.test(C)&&"span"in CKEDITOR.dtd[x]){var L='<span data-cke-marker="1">&nbsp;</span>';
324
+ C=L+C+L}C=q.editor.dataProcessor.toHtml(C,null,false,q.dontFilter);x=t.document.createElement("body");x.setHtml(C);if(L){x.getFirst().remove();x.getLast().remove()}if((L=t.startPath().block)&&!(L.getChildCount()==1&&L.getBogus()))a:{var E;if(x.getChildCount()==1&&a(E=x.getFirst())&&E.is(l)){L=E.getElementsByTag("*");t=0;for(s=L.count();t<s;t++){C=L.getItem(t);if(!C.is(n))break a}E.moveChildren(E.getParent(1));E.remove()}}q.dataWrapper=x;E=q.range;var L=E.document,y,t=q.blockLimit;x=0;var J;C=[];var H,
325
+ N,v=s=0,K,O;I=E.startContainer;var o=q.endPath.elements[0],P;G=o.getPosition(I);Q=!!o.getCommonAncestor(I)&&G!=CKEDITOR.POSITION_IDENTICAL&&!(G&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);I=c(q.dataWrapper,q);for(i(I,E);x<I.length;x++){G=I[x];if(y=G.isLineBreak){y=E;K=t;var M=void 0,R=void 0;if(G.hasBlockSibling)y=1;else{M=y.startContainer.getAscendant(k.$block,1);if(!M||!M.is({div:1,p:1}))y=0;else{R=M.getPosition(K);if(R==CKEDITOR.POSITION_IDENTICAL||R==CKEDITOR.POSITION_CONTAINS)y=
326
+ 0;else{K=y.splitElement(M);y.moveToPosition(K,CKEDITOR.POSITION_AFTER_START);y=1}}}}if(y)v=x>0;else{y=E.startPath();if(!G.isBlock&&(N=q.editor.config.enterMode!=CKEDITOR.ENTER_BR&&q.editor.config.autoParagraph!==false?q.editor.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false)&&!y.block&&y.blockLimit&&y.blockLimit.equals(E.root)){N=L.createElement(N);!CKEDITOR.env.ie&&N.appendBogus();E.insertNode(N);!CKEDITOR.env.ie&&(J=N.getBogus())&&J.remove();E.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}if((y=
327
+ E.startPath().block)&&!y.equals(H)){if(J=y.getBogus()){J.remove();C.push(y)}H=y}G.firstNotAllowed&&(s=1);if(s&&G.isElement){y=E.startContainer;for(K=null;y&&!k[y.getName()][G.name];){if(y.equals(t)){y=null;break}K=y;y=y.getParent()}if(y){if(K){O=E.splitElement(K);q.zombies.push(O);q.zombies.push(K)}}else{K=t.getName();P=!x;y=x==I.length-1;K=d(G.node,K);for(var M=[],R=K.length,T=0,U=void 0,V=0,W=-1;T<R;T++){U=K[T];if(U==" "){if(!V&&(!P||T)){M.push(new CKEDITOR.dom.text(" "));W=M.length}V=1}else{M.push(U);
328
+ V=0}}y&&W==M.length&&M.pop();P=M}}if(P){for(;y=P.pop();)E.insertNode(y);P=0}else E.insertNode(G.node);if(G.lastNotAllowed&&x<I.length-1){(O=Q?o:O)&&E.setEndAt(O,CKEDITOR.POSITION_AFTER_START);s=0}E.collapse()}}q.dontMoveCaret=v;q.bogusNeededBlocks=C}J=q.range;var S;O=q.bogusNeededBlocks;for(P=J.createBookmark();H=q.zombies.pop();)if(H.getParent()){N=J.clone();N.moveToElementEditStart(H);N.removeEmptyBlocksAtEnd()}if(O)for(;H=O.pop();)H.append(CKEDITOR.env.ie?J.document.createText(" "):J.document.createElement("br"));
329
+ for(;H=q.mergeCandidates.pop();)H.mergeSiblings();J.moveToBookmark(P);if(!q.dontMoveCaret){for(H=a(J.startContainer)&&J.startContainer.getChild(J.startOffset-1);H&&a(H)&&!H.is(k.$empty);){if(H.isBlockBoundary())J.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END);else{if(e(H)&&H.getHtml().match(/(\s|&nbsp;)$/g)){S=null;break}S=J.clone();S.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END)}H=H.getLast(b)}S&&J.moveToRange(S)}A.select();j(m)}}}()})();
330
+ (function(){function a(){var a=this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){this.fire("selectionCheck",a);var b=this.elementPath();if(!b.compare(this._.selectionPreviousPath)){this._.selectionPreviousPath=b;this.fire("selectionChange",{selection:a,path:b})}}}function c(){i=true;if(!l){b.call(this);l=CKEDITOR.tools.setTimeout(b,200,this)}}function b(){l=null;if(i){CKEDITOR.tools.setTimeout(a,0,this);i=false}}function f(a){function b(c,d){return!c||c.type==CKEDITOR.NODE_TEXT?false:
331
+ a.clone()["moveToElementEdit"+(d?"End":"Start")](c)}if(!(a.root instanceof CKEDITOR.editable))return false;var c=a.startContainer,d=a.getPreviousNode(m,null,c),e=a.getNextNode(m,null,c);return b(d)||b(e,1)||!d&&!e&&!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?true:false}function e(a){return a.getCustomData("cke-fillingChar")}function d(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(b!==false){var d,e=a.getDocument().getSelection().getNative(),f=e&&e.type!="None"&&
332
+ e.getRangeAt(0);if(c.getLength()>1&&f&&f.intersectsNode(c.$)){d=[e.anchorOffset,e.focusOffset];f=e.focusNode==c.$&&e.focusOffset>0;e.anchorNode==c.$&&e.anchorOffset>0&&d[0]--;f&&d[1]--;var i;f=e;if(!f.isCollapsed){i=f.getRangeAt(0);i.setStart(f.anchorNode,f.anchorOffset);i.setEnd(f.focusNode,f.focusOffset);i=i.collapsed}i&&d.unshift(d.pop())}}c.setText(j(c.getText()));if(d){c=e.getRangeAt(0);c.setStart(c.startContainer,d[0]);c.setEnd(c.startContainer,d[1]);e.removeAllRanges();e.addRange(c)}}}function j(a){return a.replace(/\u200B( )?/g,
333
+ function(a){return a[1]?" ":""})}var l,i,m=CKEDITOR.dom.walker.invisible(1);CKEDITOR.on("instanceCreated",function(b){function g(){var a=e.getSelection();a&&a.removeAllRanges()}var e=b.editor;e.define("selectionChange",{errorProof:1});e.on("contentDom",function(){var b=e.document,g=CKEDITOR.document,f=e.editable(),i=b.getBody(),j=b.getDocumentElement(),p=f.isInline(),m;CKEDITOR.env.gecko&&f.attachListener(f,"focus",function(a){a.removeListener();if(m!==0){a=e.getSelection().getNative();if(a.isCollapsed&&
334
+ a.anchorNode==f.$){a=e.createRange();a.moveToElementEditStart(f);a.select()}}},null,null,-2);f.attachListener(f,"focus",function(){e.unlockSelection(m);m=0},null,null,-1);f.attachListener(f,"mousedown",function(){m=0});if(CKEDITOR.env.ie||CKEDITOR.env.opera||p){var l,r=function(){l=e.getSelection(1);l.lock()};n?f.attachListener(f,"beforedeactivate",r,null,null,-1):f.attachListener(e,"selectionCheck",r,null,null,-1);f.attachListener(f,"blur",function(){e.lockSelection(l);m=1},null,null,-1)}if(CKEDITOR.env.ie&&
335
+ !p){var s;f.attachListener(f,"mousedown",function(a){a.data.$.button==2&&e.document.$.selection.type=="None"&&(s=e.window.getScrollPosition())});f.attachListener(f,"mouseup",function(a){if(a.data.$.button==2&&s){e.document.$.documentElement.scrollLeft=s.x;e.document.$.documentElement.scrollTop=s.y}s=null});if(b.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)j.on("mousedown",function(a){function b(a){a=a.data.$;if(d){var c=i.$.createTextRange();try{c.moveToPoint(a.x,
336
+ a.y)}catch(e){}d.setEndPoint(f.compareEndPoints("StartToStart",c)<0?"EndToEnd":"StartToStart",c);d.select()}}function c(){j.removeListener("mousemove",b);g.removeListener("mouseup",c);j.removeListener("mouseup",c);d.select()}a=a.data;if(a.getTarget().is("html")&&a.$.y<j.$.clientHeight&&a.$.x<j.$.clientWidth){var d=i.$.createTextRange();try{d.moveToPoint(a.$.x,a.$.y)}catch(e){}var f=d.duplicate();j.on("mousemove",b);g.on("mouseup",c);j.on("mouseup",c)}});if(CKEDITOR.env.version>7){j.on("mousedown",
337
+ function(a){if(a.data.getTarget().is("html")){g.on("mouseup",A);j.on("mouseup",A)}});var A=function(){g.removeListener("mouseup",A);j.removeListener("mouseup",A);var a=CKEDITOR.document.$.selection,c=a.createRange();a.type!="None"&&c.parentElement().ownerDocument==b.$&&c.select()}}}}f.attachListener(f,"selectionchange",a,e);f.attachListener(f,"keyup",c,e);f.attachListener(f,"focus",function(){e.forceNextSelectionCheck();e.selectionChange(1)});if(p?CKEDITOR.env.webkit||CKEDITOR.env.gecko:CKEDITOR.env.opera){var v;
338
+ f.attachListener(f,"mousedown",function(){v=1});f.attachListener(b.getDocumentElement(),"mouseup",function(){v&&c.call(e);v=0})}else f.attachListener(CKEDITOR.env.ie?f:b.getDocumentElement(),"mouseup",c,e);CKEDITOR.env.webkit&&f.attachListener(b,"keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:d(f)}},null,null,-1)});e.on("contentDomUnload",e.forceNextSelectionCheck,e);e.on("dataReady",function(){e.selectionChange(1)});CKEDITOR.env.ie9Compat&&
339
+ e.on("beforeDestroy",g,null,null,9);CKEDITOR.env.webkit&&e.on("setData",g);e.on("contentDomUnload",function(){e.unlockSelection()})});CKEDITOR.on("instanceReady",function(a){var b=a.editor;if(CKEDITOR.env.webkit){b.on("selectionChange",function(){var a=b.editable(),c=e(a);c&&(c.getCustomData("ready")?d(a):c.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",function(){d(b.editable())},null,null,-1);var c,f,a=function(){var a=b.editable();if(a)if(a=e(a)){var d=b.document.$.defaultView.getSelection();
340
+ d.type=="Caret"&&d.anchorNode==a.$&&(f=1);c=a.getText();a.setText(j(c))}},i=function(){var a=b.editable();if(a)if(a=e(a)){a.setText(c);if(f){b.document.$.defaultView.getSelection().setPosition(a.$,a.getLength());f=0}}};b.on("beforeUndoImage",a);b.on("afterUndoImage",i);b.on("beforeGetData",a,null,null,0);b.on("getData",i)}});CKEDITOR.editor.prototype.selectionChange=function(b){(b?a:c).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if(this._.savedSelection&&!a)return this._.savedSelection;
341
+ return(a=this.editable())?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&&a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;if(b){b.unlock(a);delete this._.savedSelection;return true}return false};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};
342
+ CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var n=typeof window.getSelection!="function";CKEDITOR.dom.selection=function(a){var b=a instanceof CKEDITOR.dom.element;this.document=
343
+ a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=b?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(CKEDITOR.env.webkit){a=this.document.getWindow().$.getSelection();if(a.type=="None"&&this.document.getActive().equals(this.root)||a.type=="Caret"&&a.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT){var c=new CKEDITOR.dom.range(this.root);c.moveToPosition(this.root,CKEDITOR.POSITION_AFTER_START);b=this.document.$.createRange();b.setStart(c.startContainer.$,c.startOffset);b.collapse(1);
344
+ var d=this.root.on("focus",function(a){a.cancel()},null,null,-100);a.addRange(b);d.removeListener()}}var a=this.getNative(),e;if(a)if(a.getRangeAt)e=(c=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(c.commonAncestorContainer);else{try{c=a.createRange()}catch(f){}e=c&&CKEDITOR.dom.element.get(c.item&&c.item(0)||c.parentElement())}if(!e||!this.root.equals(e)&&!this.root.contains(e)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement=null;this._.cache.selectedElement=null;this._.cache.selectedText=
345
+ "";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var r={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype={getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=n?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:n?function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_NONE;
346
+ try{var c=this.getNative(),d=c.type;if(d=="Text")b=CKEDITOR.SELECTION_TEXT;if(d=="Control")b=CKEDITOR.SELECTION_ELEMENT;if(c.createRange().parentElement())b=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(c.rangeCount==1){var c=c.getRangeAt(0),d=c.startContainer;if(d==c.endContainer&&d.nodeType==1&&c.endOffset-c.startOffset==1&&r[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=
347
+ CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a=n?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement(),e=d.ownerDocument;if(!d.hasChildNodes())return{container:d,offset:0};for(var f=d.children,h,i,j=b.duplicate(),m=0,p=f.length-1,l=-1,n,o;m<=p;){l=Math.floor((m+p)/2);h=f[l];j.moveToElementText(h);n=j.compareEndPoints("StartToStart",b);if(n>0)p=l-1;else if(n<0)m=l+1;else{if(CKEDITOR.env.ie9Compat&&
348
+ h.tagName=="BR"){f=e.defaultView.getSelection();return{container:f[c?"anchorNode":"focusNode"],offset:f[c?"anchorOffset":"focusOffset"]}}return{container:d,offset:a(h)}}}if(l==-1||l==f.length-1&&n<0){j.moveToElementText(d);j.setEndPoint("StartToStart",b);e=j.text.replace(/(\r\n|\r)/g,"\n").length;f=d.childNodes;if(!e){h=f[f.length-1];return h.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:f.length}:{container:h,offset:h.nodeValue.length}}for(d=f.length;e>0&&d>0;){i=f[--d];if(i.nodeType==CKEDITOR.NODE_TEXT){o=
349
+ i;e=e-i.nodeValue.length}}return{container:o,offset:-e}}j.collapse(n>0?true:false);j.setEndPoint(n>0?"StartToStart":"EndToStart",b);e=j.text.replace(/(\r\n|\r)/g,"\n").length;if(!e)return{container:d,offset:a(h)+(n>0?0:1)};for(;e>0;)try{i=h[n>0?"previousSibling":"nextSibling"];if(i.nodeType==CKEDITOR.NODE_TEXT){e=e-i.nodeValue.length;o=i}h=i}catch(x){return{container:d,offset:a(h)}}return{container:o,offset:n>0?-e:o.nodeValue.length+e}};return function(){var a=this.getNative(),c=a&&a.createRange(),
350
+ d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root);d=b(c,true);a.setStart(new CKEDITOR.dom.node(d.container),d.offset);d=b(c);a.setEnd(new CKEDITOR.dom.node(d.container),d.offset);a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var g=c.item(e),f=g.parentNode,i=0,a=new CKEDITOR.dom.range(this.root);i<
351
+ f.childNodes.length&&f.childNodes[i]!=g;i++);a.setStart(new CKEDITOR.dom.node(f),i);a.setEnd(new CKEDITOR.dom.node(f),i+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};return function(b){var c=this._.cache;if(c.ranges&&!b)return c.ranges;
352
+ if(!c.ranges)c.ranges=new CKEDITOR.dom.rangeList(a.call(this));if(b)for(var d=c.ranges,e=0;e<d.length;e++){var f=d[e];f.getCommonAncestor().isReadOnly()&&d.splice(e,1);if(!f.collapsed){if(f.startContainer.isReadOnly())for(var b=f.startContainer,i;b;){if((i=b.type==CKEDITOR.NODE_ELEMENT)&&b.is("body")||!b.isReadOnly())break;i&&b.getAttribute("contentEditable")=="false"&&f.setStartAfter(b);b=b.getParent()}b=f.startContainer;i=f.endContainer;var j=f.startOffset,m=f.endOffset,l=f.clone();b&&b.type==CKEDITOR.NODE_TEXT&&
353
+ (j>=b.getLength()?l.setStartAfter(b):l.setStartBefore(b));i&&i.type==CKEDITOR.NODE_TEXT&&(m?l.setEndAfter(i):l.setEndBefore(i));b=new CKEDITOR.dom.walker(l);b.evaluator=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&a.isReadOnly()){var b=f.clone();f.setEndBefore(a);f.collapsed&&d.splice(e--,1);if(!(a.getPosition(l.endContainer)&CKEDITOR.POSITION_CONTAINS)){b.setStartAfter(a);b.collapsed||d.splice(e+1,0,b)}return true}return false};b.next()}}return c.ranges}}(),getStartElement:function(){var a=this._.cache;
354
+ if(a.startElement!==void 0)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed){b=c.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent())}else{for(c.optimize();;){b=c.startContainer;if(c.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary())c.setStartAfter(b);else break}b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();
355
+ b=b.getChild(c.startOffset);if(!b||b.type!=CKEDITOR.NODE_ELEMENT)b=c.startContainer;else for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;){b=c;c=c.getFirst()}}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(a.selectedElement!==void 0)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},function(){for(var a=b.getRanges()[0],c,d,e=2;e&&(!(c=a.getEnclosedNode())||!(c.type==
356
+ CKEDITOR.NODE_ELEMENT&&r[c.getName()]&&(d=c)));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(a.selectedText!==void 0)return a.selectedText;var b=this.getNative(),b=n?b.type=="Control"?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=
357
+ 1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),c=!b&&this.getRanges();this.isLocked=0;this.reset();if(a)(a=b||c[0]&&c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={}},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){if(a.length)if(this.isLocked){var b=CKEDITOR.document.getActive();this.unlock();
358
+ this.selectRanges(a);this.lock();!b.equals(this.root)&&b.focus()}else{if(n){var c=CKEDITOR.dom.walker.whitespaces(true),e=/\ufeff|\u00a0/,i={table:1,tbody:1,tr:1};if(a.length>1){b=a[a.length-1];a[0].setEnd(b.endContainer,b.endOffset)}var b=a[0],a=b.collapsed,k,j,m,l=b.getEnclosedNode();if(l&&l.type==CKEDITOR.NODE_ELEMENT&&l.getName()in r&&(!l.is("a")||!l.getText()))try{m=l.$.createControlRange();m.addElement(l.$);m.select();return}catch(B){}(b.startContainer.type==CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in
359
+ i||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in i)&&b.shrink(CKEDITOR.NODE_ELEMENT,true);m=b.createBookmark();var i=m.startNode,q;if(!a)q=m.endNode;m=b.document.$.body.createTextRange();m.moveToElementText(i.$);m.moveStart("character",1);if(q){e=b.document.$.body.createTextRange();e.moveToElementText(q.$);m.setEndPoint("EndToEnd",e);m.moveEnd("character",-1)}else{k=i.getNext(c);j=i.hasAscendant("pre");k=!(k&&k.getText&&k.getText().match(e))&&(j||!i.hasPrevious()||i.getPrevious().is&&
360
+ i.getPrevious().is("br"));j=b.document.createElement("span");j.setHtml("&#65279;");j.insertBefore(i);k&&b.document.createText("").insertBefore(i)}b.setStartBefore(i);i.remove();if(a){if(k){m.moveStart("character",-1);m.select();b.document.$.selection.clear()}else m.select();b.moveToPosition(j,CKEDITOR.POSITION_BEFORE_START);j.remove()}else{b.setEndBefore(q);q.remove();m.select()}}else{q=this.getNative();if(!q)return;if(CKEDITOR.env.opera){b=this.document.$.createRange();b.selectNodeContents(this.root.$);
361
+ q.addRange(b)}this.removeAllRanges();for(e=0;e<a.length;e++){if(e<a.length-1){b=a[e];m=a[e+1];j=b.clone();j.setStart(b.endContainer,b.endOffset);j.setEnd(m.startContainer,m.startOffset);if(!j.collapsed){j.shrink(CKEDITOR.NODE_ELEMENT,true);k=j.getCommonAncestor();j=j.getEnclosedNode();if(k.isReadOnly()||j&&j.isReadOnly()){m.setStart(b.startContainer,b.startOffset);a.splice(e--,1);continue}}}b=a[e];m=this.document.$.createRange();k=b.startContainer;if(CKEDITOR.env.opera&&b.collapsed&&k.type==CKEDITOR.NODE_ELEMENT){j=
362
+ k.getChild(b.startOffset-1);c=k.getChild(b.startOffset);if(!j&&!c&&k.is(CKEDITOR.dtd.$removeEmpty)||j&&j.type==CKEDITOR.NODE_ELEMENT||c&&c.type==CKEDITOR.NODE_ELEMENT){b.insertNode(this.document.createText(""));b.collapse(1)}}if(b.collapsed&&CKEDITOR.env.webkit&&f(b)){k=this.root;d(k,false);j=k.getDocument().createText("​");k.setCustomData("cke-fillingChar",j);b.insertNode(j);if((k=j.getNext())&&!j.getPrevious()&&k.type==CKEDITOR.NODE_ELEMENT&&k.getName()=="br"){d(this.root);b.moveToPosition(k,CKEDITOR.POSITION_BEFORE_START)}else b.moveToPosition(j,
363
+ CKEDITOR.POSITION_AFTER_END)}m.setStart(b.startContainer.$,b.startOffset);try{m.setEnd(b.endContainer.$,b.endOffset)}catch(z){if(z.toString().indexOf("NS_ERROR_ILLEGAL_VALUE")>=0){b.collapse(1);m.setEnd(b.endContainer.$,b.endOffset)}else throw z;}q.addRange(m)}}this.reset();this.root.fire("selectionchange")}},createBookmarks:function(a){return this.getRanges().createBookmarks(a)},createBookmarks2:function(a){return this.getRanges().createBookmarks2(a)},selectBookmarks:function(a){for(var b=[],c=0;c<
364
+ a.length;c++){var d=new CKEDITOR.dom.range(this.root);d.moveToBookmark(a[c]);b.push(d)}this.selectRanges(b);return this},getCommonAncestor:function(){var a=this.getRanges();return a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer)},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){var a=this.getNative();try{a&&a[n?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}})();
365
+ CKEDITOR.editor.prototype.attachStyleStateChange=function(a,c){var b=this._.styleStateChangeCallbacks;if(!b){b=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(a){for(var c=0;c<b.length;c++){var d=b[c],j=d.style.checkActive(a.data.path)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;d.fn.call(this,j)}})}b.push({style:a,fn:c})};CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
366
+ (function(){function a(a,b){for(var c,d;a=a.getParent();){if(a.equals(b))break;if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");e=="false"?c=a:e=="true"&&(d=1)}}return c}function c(b){var c=b.document;if(b.collapsed){c=u(this,c);b.insertNode(c);b.moveToPosition(c,CKEDITOR.POSITION_BEFORE_END)}else{var d=this.element,e=this._.definition,f,g=e.ignoreReadonly,h=g||e.includeReadonly;h==void 0&&(h=b.root.getCustomData("cke_includeReadonly"));var i=CKEDITOR.dtd[d]||
367
+ (f=true,CKEDITOR.dtd.span);b.enlarge(CKEDITOR.ENLARGE_INLINE,1);b.trim();var j=b.createBookmark(),k=j.startNode,m=j.endNode,l=k,n;if(!g){var r=b.getCommonAncestor(),g=a(k,r),r=a(m,r);g&&(l=g.getNextSourceNode(true));r&&(m=r)}for(l.getPosition(m)==CKEDITOR.POSITION_FOLLOWING&&(l=0);l;){g=false;if(l.equals(m)){l=null;g=true}else{var q=l.type,s=q==CKEDITOR.NODE_ELEMENT?l.getName():null,r=s&&l.getAttribute("contentEditable")=="false",t=s&&l.getAttribute("data-nostyle");if(s&&l.data("cke-bookmark")){l=
368
+ l.getNextSourceNode(true);continue}if(!s||i[s]&&!t&&(!r||h)&&(l.getPosition(m)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||e.childRule(l))){var v=l.getParent();if(v&&((v.getDtd()||CKEDITOR.dtd.span)[d]||f)&&(!e.parentRule||e.parentRule(v))){if(!n&&(!s||!CKEDITOR.dtd.$removeEmpty[s]||(l.getPosition(m)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|
369
+ CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED)){n=b.clone();n.setStartBefore(l)}if(q==CKEDITOR.NODE_TEXT||r||q==CKEDITOR.NODE_ELEMENT&&!l.getChildCount()){for(var q=l,w;(g=!q.getNext(A))&&(w=q.getParent(),i[w.getName()])&&(w.getPosition(k)|CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_FOLLOWING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||
370
+ e.childRule(w));)q=w;n.setEndAfter(q)}}else g=true}else g=true;l=l.getNextSourceNode(t||r&&!h)}if(g&&n&&!n.collapsed){for(var g=u(this,c),r=g.hasAttributes(),t=n.getCommonAncestor(),q={},s={},v={},D={},B,z,F;g&&t;){if(t.getName()==d){for(B in e.attributes)if(!D[B]&&(F=t.getAttribute(z)))g.getAttribute(B)==F?s[B]=1:D[B]=1;for(z in e.styles)if(!v[z]&&(F=t.getStyle(z)))g.getStyle(z)==F?q[z]=1:v[z]=1}t=t.getParent()}for(B in s)g.removeAttribute(B);for(z in q)g.removeStyle(z);r&&!g.hasAttributes()&&(g=
371
+ null);if(g){n.extractContents().appendTo(g);p.call(this,g);n.insertNode(g);g.mergeSiblings();CKEDITOR.env.ie||g.$.normalize()}else{g=new CKEDITOR.dom.element("span");n.extractContents().appendTo(g);n.insertNode(g);p.call(this,g);g.remove(true)}n=null}}b.moveToBookmark(j);b.shrink(CKEDITOR.SHRINK_TEXT)}}function b(a){a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var b=a.createBookmark(),c=b.startNode;if(a.collapsed){for(var d=new CKEDITOR.dom.elementPath(c.getParent(),a.root),e,f=0,h;f<d.elements.length&&(h=
372
+ d.elements[f]);f++){if(h==d.block||h==d.blockLimit)break;if(this.checkElementRemovable(h)){var i;if(a.collapsed&&(a.checkBoundaryOfElement(h,CKEDITOR.END)||(i=a.checkBoundaryOfElement(h,CKEDITOR.START)))){e=h;e.match=i?"start":"end"}else{h.mergeSiblings();h.getName()==this.element?r.call(this,h):g(h,t(this)[h.getName()])}}}if(e){h=c;for(f=0;;f++){i=d.elements[f];if(i.equals(e))break;else if(i.match)continue;else i=i.clone();i.append(h);h=i}h[e.match=="start"?"insertBefore":"insertAfter"](e)}}else{var j=
373
+ b.endNode,k=this,d=function(){for(var a=new CKEDITOR.dom.elementPath(c.getParent()),b=new CKEDITOR.dom.elementPath(j.getParent()),e=null,d=null,f=0;f<a.elements.length;f++){var g=a.elements[f];if(g==a.block||g==a.blockLimit)break;k.checkElementRemovable(g)&&(e=g)}for(f=0;f<b.elements.length;f++){g=b.elements[f];if(g==b.block||g==b.blockLimit)break;k.checkElementRemovable(g)&&(d=g)}d&&j.breakParent(d);e&&c.breakParent(e)};d();for(e=c;!e.equals(j);){f=e.getNextSourceNode();if(e.type==CKEDITOR.NODE_ELEMENT&&
374
+ this.checkElementRemovable(e)){e.getName()==this.element?r.call(this,e):g(e,t(this)[e.getName()]);if(f.type==CKEDITOR.NODE_ELEMENT&&f.contains(c)){d();f=c.getNext()}}e=f}}a.moveToBookmark(b)}function f(a){var b=a.getEnclosedNode()||a.getCommonAncestor(false,true);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&w(a,this)}function e(a){var b=a.getCommonAncestor(true,true);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,
375
+ c=b.attributes;if(c)for(var e in c)a.removeAttribute(e,c[e]);if(b.styles)for(var d in b.styles)b.styles.hasOwnProperty(d)&&a.removeStyle(d)}}function d(a){var b=a.createBookmark(true),c=a.createIterator();c.enforceRealBlocks=true;if(this._.enterMode)c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var e,d=a.document;e=c.getNextParagraph();)if(!e.isReadOnly()){var f=u(this,d,e);l(e,f)}a.moveToBookmark(b)}function j(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=true;c.enlargeBr=
376
+ this._.enterMode!=CKEDITOR.ENTER_BR;for(var e;e=c.getNextParagraph();)if(this.checkElementRemovable(e))if(e.is("pre")){var d=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div");d&&e.copyAttributes(d);l(e,d)}else r.call(this,e);a.moveToBookmark(b)}function l(a,b){var c=!b;if(c){b=a.getDocument().createElement("div");a.copyAttributes(b)}var e=b&&b.is("pre"),d=a.is("pre"),f=!e&&d;if(e&&!d){d=b;(f=a.getBogus())&&f.remove();f=a.getHtml();f=m(f,
377
+ /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");f=f.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+|&nbsp;)/g," ");f=f.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(d);d.$.outerHTML="<pre>"+f+"</pre>";d.copyAttributes(g.getFirst());d=g.getFirst().remove()}else d.setHtml(f);b=d}else f?b=n(c?[a.getHtml()]:i(a),b):a.moveChildren(b);b.replace(a);if(e){var c=b,j;if((j=c.getPrevious(v))&&j.is&&j.is("pre")){e=m(j.getHtml(),/\n$/,"")+
378
+ "\n\n"+m(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="<pre>"+e+"</pre>":c.setHtml(e);j.remove()}}else c&&h(b)}function i(a){a.getName();var b=[];m(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"</pre>"+c+"<pre>"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function m(a,b,c){var e="",d="",a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,
379
+ b,c){b&&(e=b);c&&(d=c);return""});return e+a.replace(b,c)+d}function n(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var e=0;e<a.length;e++){var d=a[e],d=d.replace(/(\r\n|\r)/g,"\n"),d=m(d,/^[ \t]*\n/,""),d=m(d,/\n$/,""),d=m(d,/^[ \t]+|[ \t]+$/g,function(a,b){return a.length==1?"&nbsp;":b?" "+CKEDITOR.tools.repeat("&nbsp;",a.length-1):CKEDITOR.tools.repeat("&nbsp;",a.length-1)+" "}),d=d.replace(/\n/g,"<br>"),d=d.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat("&nbsp;",
380
+ a.length-1)+" "});if(c){var f=b.clone();f.setHtml(d);c.append(f)}else b.setHtml(d)}return c||b}function r(a){var b=this._.definition,c=b.attributes,b=b.styles,d=t(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(b),f;for(f in c)if(!((f=="class"||this._.definition.fullMatch)&&a.getAttribute(f)!=F(f,c[f]))){e=a.hasAttribute(f);a.removeAttribute(f)}for(var i in b)if(!(this._.definition.fullMatch&&a.getStyle(i)!=F(i,b[i],true))){e=e||!!a.getStyle(i);a.removeStyle(i)}g(a,d,B[a.getName()]);
381
+ e&&(this._.definition.alwaysRemoveElement?h(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?h(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function p(a){for(var b=t(this),c=a.getElementsByTag(this.element),d=c.count();--d>=0;)r.call(this,c.getItem(d));for(var e in b)if(e!=this.element){c=a.getElementsByTag(e);for(d=c.count()-1;d>=0;d--){var f=c.getItem(d);g(f,b[e])}}}function g(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=
382
+ b[d][0],f;if(f=a.getAttribute(e)){var g=b[d][1];(g===null||g.test&&g.test(f)||typeof g=="string"&&f==g)&&a.removeAttribute(e)}}c||h(a)}function h(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(v),d=a.getNext(v);c&&(c.type==CKEDITOR.NODE_TEXT||!c.isBlockBoundary({br:1}))&&a.append("br",1);d&&(d.type==CKEDITOR.NODE_TEXT||!d.isBlockBoundary({br:1}))&&a.append("br");a.remove(true)}else{c=a.getFirst();d=a.getLast();a.remove(true);if(c){c.type==CKEDITOR.NODE_ELEMENT&&
383
+ c.mergeSiblings();d&&(!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT)&&d.mergeSiblings()}}}function u(a,b,c){var d;d=a.element;d=="*"&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=w(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function w(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);
384
+ return a}function k(a,b){for(var c in a)a[c]=a[c].replace(s,function(a,c){return b[c]})}function t(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;if(typeof e=="string")f=e.toLowerCase();else{f=e.element?e.element.toLowerCase():a.element;g=e.attributes}e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function F(a,
385
+ b,c){var d=new CKEDITOR.dom.element("span");d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function D(a,b){for(var c=a.document,d=a.getRanges(),e=b?this.removeFromRange:this.applyToRange,f,g=d.createIterator();f=g.getNextRange();)e.call(this,f);a.selectRanges(d);c.removeCustomData("doc_processing_style")}var B={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,
386
+ keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},q={a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},z=/\s*(?:;\s*|$)/,s=/#\((.+?)\)/g,A=CKEDITOR.dom.walker.bookmark(0,1),v=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){var c=a.attributes;if(c&&c.style){a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style));delete c.style}if(b){a=CKEDITOR.tools.clone(a);k(a.attributes,b);k(a.styles,
387
+ b)}c=this.element=a.element?typeof a.element=="string"?a.element.toLowerCase():a.element:"*";this.type=a.type||(B[c]?CKEDITOR.STYLE_BLOCK:q[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);if(typeof this.element=="object")this.type=CKEDITOR.STYLE_OBJECT;this._={definition:a}};CKEDITOR.editor.prototype.applyStyle=function(a){D.call(a,this.getSelection())};CKEDITOR.editor.prototype.removeStyle=function(a){D.call(a,this.getSelection(),1)};CKEDITOR.style.prototype={apply:function(a){D.call(this,a.getSelection())},
388
+ remove:function(a){D.call(this,a.getSelection(),1)},applyToRange:function(a){return(this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?d:this.type==CKEDITOR.STYLE_OBJECT?f:null).call(this,a)},removeFromRange:function(a){return(this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?b:this.type==CKEDITOR.STYLE_BLOCK?j:this.type==CKEDITOR.STYLE_OBJECT?e:null).call(this,a)},applyToObject:function(a){w(a,this)},checkActive:function(a){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||
389
+ a.blockLimit,true);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var b=a.elements,c=0,d;c<b.length;c++){d=b[c];if(!(this.type==CKEDITOR.STYLE_INLINE&&(d==a.block||d==a.blockLimit))){if(this.type==CKEDITOR.STYLE_OBJECT){var e=d.getName();if(!(typeof this.element=="string"?e==this.element:e in this.element))continue}if(this.checkElementRemovable(d,true))return true}}}return false},checkApplicable:function(a){switch(this.type){case CKEDITOR.STYLE_OBJECT:return a.contains(this.element)}return true},
390
+ checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return false;var d=a.getName();if(typeof this.element=="string"?d==this.element:d in this.element){if(!b&&!a.hasAttributes())return true;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f){e++;d[g]=f[g]}if(g=CKEDITOR.style.getStyleText(c)){d.style||e++;d.style=g}d._length=e;c=c._AC=d}if(c._length){for(var h in c)if(h!="_length"){e=a.getAttribute(h)||"";if(h=="style")a:{d=c[h];typeof d==
391
+ "string"&&(d=CKEDITOR.tools.parseCssText(d));typeof e=="string"&&(e=CKEDITOR.tools.parseCssText(e,true));g=void 0;for(g in d)if(!(g in e&&(e[g]==d[g]||d[g]=="inherit"||e[g]=="inherit"))){d=false;break a}d=true}else d=c[h]==e;if(d){if(!b)return true}else if(b)return false}if(b)return true}else return true}return false},checkElementRemovable:function(a,b){if(this.checkElementMatch(a,b))return true;var c=t(this)[a.getName()];if(c){var d;if(!(c=c.attributes))return true;for(var e=0;e<c.length;e++){d=
392
+ c[e][0];if(d=a.getAttribute(d)){var f=c[e][1];if(f===null||typeof f=="string"&&d==f||f.test(d))return true}}}return false},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;d=="bdo"&&(d="span");var c=["<",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'="',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style="',e,'"');c.push(">",a||b.name,"</",d,">");return c.join("")},getDefinition:function(){return this._.definition}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;
393
+ if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||"",d="";c.length&&(c=c.replace(z,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(z,";");f=="inherit"?d=d+g:c=c+g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d}})();CKEDITOR.styleCommand=function(a,c){this.requiredContent=this.allowedContent=this.style=a;CKEDITOR.tools.extend(this,c,true)};
394
+ CKEDITOR.styleCommand.prototype.exec=function(a){a.focus();this.state==CKEDITOR.TRISTATE_OFF?a.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&a.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(a,c,b){CKEDITOR.stylesSet.addExternal(a,c,"");CKEDITOR.stylesSet.load(a,b)};
395
+ CKEDITOR.editor.prototype.getStylesSet=function(a){if(this._.stylesDefinitions)a(this._.stylesDefinitions);else{var c=this,b=c.config.stylesCombo_stylesSet||c.config.stylesSet;if(b===false)a(null);else if(b instanceof Array){c._.stylesDefinitions=b;a(b)}else{b||(b="default");var b=b.split(":"),f=b[0];CKEDITOR.stylesSet.addExternal(f,b[1]?b.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(f,function(b){c._.stylesDefinitions=b[f];a(c._.stylesDefinitions)})}}};
396
+ CKEDITOR.dom.comment=function(a,c){typeof a=="string"&&(a=(c?c.$:document).createComment(a));CKEDITOR.dom.domObject.call(this,a)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"<\!--"+this.$.nodeValue+"--\>"}});
397
+ (function(){var a={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(a[c]=1);var b={};for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(b[c]=1);CKEDITOR.dom.elementPath=function(c,e){var d=null,j=null,l=[],e=e||c.getDocument().getBody(),i=c;do if(i.type==CKEDITOR.NODE_ELEMENT){l.push(i);if(!this.lastElement){this.lastElement=i;if(i.is(CKEDITOR.dtd.$object))continue}var m=i.getName();if(!j){!d&&b[m]&&(d=i);if(a[m]){var n;if(n=!d){if(m=m=="div"){a:{m=
398
+ i.getChildren();n=0;for(var r=m.count();n<r;n++){var p=m.getItem(n);if(p.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[p.getName()]){m=true;break a}}m=false}m=!m&&!i.equals(e)}n=m}n?d=i:j=i}}if(i.equals(e))break}while(i=i.getParent());this.block=d;this.blockLimit=j;this.root=e;this.elements=l}})();
399
+ CKEDITOR.dom.elementPath.prototype={compare:function(a){var c=this.elements,a=a&&a.elements;if(!a||c.length!=a.length)return false;for(var b=0;b<c.length;b++)if(!c[b].equals(a[b]))return false;return true},contains:function(a,c,b){var f;typeof a=="string"&&(f=function(b){return b.getName()==a});a instanceof CKEDITOR.dom.element?f=function(b){return b.equals(a)}:CKEDITOR.tools.isArray(a)?f=function(b){return CKEDITOR.tools.indexOf(a,b.getName())>-1}:typeof a=="function"?f=a:typeof a=="object"&&(f=
400
+ function(b){return b.getName()in a});var e=this.elements,d=e.length;c&&d--;if(b){e=Array.prototype.slice.call(e,0);e.reverse()}for(c=0;c<d;c++)if(f(e[c]))return e[c];return null},isContextFor:function(a){var c;if(a in CKEDITOR.dtd.$block){c=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit;return!!c.getDtd()[a]}return true},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
401
+ CKEDITOR.dom.text=function(a,c){typeof a=="string"&&(a=(c?c.$:document).createTextNode(a));this.$=a};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node;
402
+ CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(a){this.$.nodeValue=a},split:function(a){var c=this.$.parentNode,b=c.childNodes.length,f=this.getLength(),e=this.getDocument(),d=new CKEDITOR.dom.text(this.$.splitText(a),e);if(c.childNodes.length==b)if(a>=f){d=e.createText("");d.insertAfter(this)}else{a=e.createText("");a.insertAfter(d);a.remove()}return d},substring:function(a,
403
+ c){return typeof c!="number"?this.$.nodeValue.substr(a):this.$.nodeValue.substring(a,c)}});
404
+ (function(){function a(a,c,e){var d=a.serializable,j=c[e?"endContainer":"startContainer"],l=e?"endOffset":"startOffset",i=d?c.document.getById(a.startNode):a.startNode,a=d?c.document.getById(a.endNode):a.endNode;if(j.equals(i.getPrevious())){c.startOffset=c.startOffset-j.getLength()-a.getPrevious().getLength();j=a.getNext()}else if(j.equals(a.getPrevious())){c.startOffset=c.startOffset-j.getLength();j=a.getNext()}j.equals(i.getParent())&&c[l]++;j.equals(a.getParent())&&c[l]++;c[e?"endContainer":"startContainer"]=
405
+ j;return c}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,c)};var c={createIterator:function(){var a=this,c=CKEDITOR.dom.walker.bookmark(),e=[],d;return{getNextRange:function(j){d=d==void 0?0:d+1;var l=a[d];if(l&&a.length>1){if(!d)for(var i=a.length-1;i>=0;i--)e.unshift(a[i].createBookmark(true));if(j)for(var m=0;a[d+m+1];){for(var n=l.document,j=0,i=n.getById(e[m].endNode),n=n.getById(e[m+
406
+ 1].startNode);;){i=i.getNextSourceNode(false);if(n.equals(i))j=1;else if(c(i)||i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary())continue;break}if(!j)break;m++}for(l.moveToBookmark(e.shift());m--;){i=a[++d];i.moveToBookmark(e.shift());l.setEnd(i.endContainer,i.endOffset)}}return l}}},createBookmarks:function(b){for(var c=[],e,d=0;d<this.length;d++){c.push(e=this[d].createBookmark(b,true));for(var j=d+1;j<this.length;j++){this[j]=a(e,this[j]);this[j]=a(e,this[j],true)}}return c},createBookmarks2:function(a){for(var c=
407
+ [],e=0;e<this.length;e++)c.push(this[e].createBookmark2(a));return c},moveToBookmarks:function(a){for(var c=0;c<this.length;c++)this[c].moveToBookmark(a[c])}}})();
408
+ (function(){function a(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function c(b){var c=CKEDITOR.skin["ua_"+b],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,f;e<c.length;e++){f=c[e];if(d.ie&&(f.replace(/^ie/,"")==d.version||d.quirks&&f=="iequirks"))f="ie";if(d[f]){b=b+("_"+c[e]);break}}return CKEDITOR.getUrl(a()+b+".css")}function b(a,b){if(!d[a]){CKEDITOR.document.appendStyleSheet(c(a));d[a]=1}b&&b()}
409
+ function f(a){var b=a.getById(j);if(!b){b=a.getHead().append("style");b.setAttribute("id",j);b.setAttribute("type","text/css")}return b}function e(a,b,c){var d,e,f;if(CKEDITOR.env.webkit){b=b.split("}").slice(0,-1);for(e=0;e<b.length;e++)b[e]=b[e].split("{")}for(var i=0;i<a.length;i++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){f=b[e][1];for(d=0;d<c.length;d++)f=f.replace(c[d][0],c[d][1]);a[i].$.sheet.addRule(b[e][0],f)}else{f=b;for(d=0;d<c.length;d++)f=f.replace(c[d][0],c[d][1]);CKEDITOR.env.ie?
410
+ a[i].$.styleSheet.cssText=a[i].$.styleSheet.cssText+f:a[i].$.innerHTML=a[i].$.innerHTML+f}}var d={};CKEDITOR.skin={path:a,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(a()+"skin.js"),function(){b(c,d)}):b(c,d)},getPath:function(a){return CKEDITOR.getUrl(c(a))},icons:{},addIcon:function(a,b,c){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0})},getIconStyle:function(a,b,c,d){var e;if(a){a=a.toLowerCase();b&&
411
+ (e=this.icons[a+"-rtl"]);e||(e=this.icons[a])}a=c||e&&e.path||"";d=d||e&&e.offset;return a&&"background-image:url("+CKEDITOR.getUrl(a)+");background-position:0 "+d+"px;"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=f(CKEDITOR.document);return(this.setUiColor=function(a){var c=CKEDITOR.skin.chameleon,d=[[i,a]];this.uiColor=a;e([b],c(this,"editor"),d);e(l,c(this,"panel"),d)}).call(this,a)}});var j="cke_ui_color",l=[],i=/\$color/g;
412
+ CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor,a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=f(a);l.push(a);var c=b.getUiColor();c&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[i,c]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
413
+ (function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=false;else{var a=CKEDITOR.dom.element.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;border: 1px solid;border-color: red blue;"></div>',CKEDITOR.document);a.appendTo(CKEDITOR.document.getHead());try{CKEDITOR.env.hc=a.getComputedStyle("border-top-color")==a.getComputedStyle("border-right-color")}catch(c){CKEDITOR.env.hc=false}a.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
414
+ CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(a=CKEDITOR._.pending){delete CKEDITOR._.pending;for(var b=0;b<a.length;b++){CKEDITOR.editor.prototype.constructor.apply(a[b][0],a[b][1]);CKEDITOR.add(a[b][0])}}})();/*
415
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
416
+ For licensing, see LICENSE.html or http://ckeditor.com/license
417
+ */
418
+ CKEDITOR.skin.name="moono";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8,gecko";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8,opera";
419
+ CKEDITOR.skin.chameleon=function(){var b=function(){return function(b,e){for(var a=b.match(/[^#]./g),c=0;3>c;c++){var f=a,h=c,d;d=parseInt(a[c],16);d=("0"+(0>e?0|d*(1+e):0|d+(255-d)*e).toString(16)).slice(-2);f[h]=d}return"#"+a.join("")}}(),c=function(){var b=new CKEDITOR.template("background:#{to};background-image:-webkit-gradient(linear,lefttop,leftbottom,from({from}),to({to}));background-image:-moz-linear-gradient(top,{from},{to});background-image:-webkit-linear-gradient(top,{from},{to});background-image:-o-linear-gradient(top,{from},{to});background-image:-ms-linear-gradient(top,{from},{to});background-image:linear-gradient(top,{from},{to});filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='{from}',endColorstr='{to}');");return function(c,
420
+ a){return b.output({from:c,to:a})}}(),f={editor:new CKEDITOR.template("{id}.cke_chrome [border-color:{defaultBorder};] {id} .cke_top [ {defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_bottom [{defaultGradient}border-top-color:{defaultBorder};] {id} .cke_resizer [border-right-color:{ckeResizer}] {id} .cke_dialog_title [{defaultGradient}border-bottom-color:{defaultBorder};] {id} .cke_dialog_footer [{defaultGradient}outline-color:{defaultBorder};border-top-color:{defaultBorder};] {id} .cke_dialog_tab [{lightGradient}border-color:{defaultBorder};] {id} .cke_dialog_tab:hover [{mediumGradient}] {id} .cke_dialog_contents [border-top-color:{defaultBorder};] {id} .cke_dialog_tab_selected, {id} .cke_dialog_tab_selected:hover [background:{dialogTabSelected};border-bottom-color:{dialogTabSelectedBorder};] {id} .cke_dialog_body [background:{dialogBody};border-color:{defaultBorder};] {id} .cke_toolgroup [{lightGradient}border-color:{defaultBorder};] {id} a.cke_button_off:hover, {id} a.cke_button_off:focus, {id} a.cke_button_off:active [{mediumGradient}] {id} .cke_button_on [{ckeButtonOn}] {id} .cke_toolbar_separator [background-color: {ckeToolbarSeparator};] {id} .cke_combo_button [border-color:{defaultBorder};{lightGradient}] {id} a.cke_combo_button:hover, {id} a.cke_combo_button:focus, {id} .cke_combo_on a.cke_combo_button [border-color:{defaultBorder};{mediumGradient}] {id} .cke_path_item [color:{elementsPathColor};] {id} a.cke_path_item:hover, {id} a.cke_path_item:focus, {id} a.cke_path_item:active [background-color:{elementsPathBg};] {id}.cke_panel [border-color:{defaultBorder};] "),
421
+ panel:new CKEDITOR.template(".cke_panel_grouptitle [{lightGradient}border-color:{defaultBorder};] .cke_menubutton_icon [background-color:{menubuttonIcon};] .cke_menubutton:hover .cke_menubutton_icon, .cke_menubutton:focus .cke_menubutton_icon, .cke_menubutton:active .cke_menubutton_icon [background-color:{menubuttonIconHover};] .cke_menuseparator [background-color:{menubuttonIcon};] a:hover.cke_colorbox, a:focus.cke_colorbox, a:active.cke_colorbox [border-color:{defaultBorder};] a:hover.cke_colorauto, a:hover.cke_colormore, a:focus.cke_colorauto, a:focus.cke_colormore, a:active.cke_colorauto, a:active.cke_colormore [background-color:{ckeColorauto};border-color:{defaultBorder};] ")};
422
+ return function(g,e){var a=g.uiColor,a={id:"."+g.id,defaultBorder:b(a,-0.1),defaultGradient:c(b(a,0.9),a),lightGradient:c(b(a,1),b(a,0.7)),mediumGradient:c(b(a,0.8),b(a,0.5)),ckeButtonOn:c(b(a,0.6),b(a,0.7)),ckeResizer:b(a,-0.4),ckeToolbarSeparator:b(a,0.5),ckeColorauto:b(a,0.8),dialogBody:b(a,0.7),dialogTabSelected:c("#FFFFFF","#FFFFFF"),dialogTabSelectedBorder:"#FFF",elementsPathColor:b(a,-0.6),elementsPathBg:a,menubuttonIcon:b(a,0.5),menubuttonIconHover:b(a,0.3)};return f[e].output(a).replace(/\[/g,
423
+ "{").replace(/\]/g,"}")}}();CKEDITOR.plugins.add("dialogui",{onLoad:function(){var h=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;d<arguments.length;d++)a.push(arguments[d]);a.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,a);return this._},r={build:function(b,a,d){return new CKEDITOR.ui.dialog.textInput(b,a,d)}},l={build:function(b,a,d){return new CKEDITOR.ui.dialog[a.type](b,a,d)}},n={isChanged:function(){return this.getValue()!=
424
+ this.getInitValue()},reset:function(b){this.setValue(this.getInitValue(),b)},setInitValue:function(){this._.initValue=this.getValue()},resetInitValue:function(){this._.initValue=this._["default"]},getInitValue:function(){return this._.initValue}},o=CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onChange:function(b,a){this._.domOnChangeRegistered||(b.on("load",function(){this.getInputElement().on("change",function(){b.parts.dialog.isVisible()&&this.fire("change",{value:this.getValue()})},
425
+ this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},!0),s=/^on([A-Z]\w+)/,p=function(b){for(var a in b)(s.test(a)||"title"==a||"type"==a)&&delete b[a];return b};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(b,a,d,e){if(!(4>arguments.length)){var c=h.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+"_label";this._.children=[];CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,{role:"presentation"},function(){var f=[],d=a.required?" cke_required":"";"horizontal"!=
426
+ a.labelLayout?f.push('<label class="cke_dialog_ui_labeled_label'+d+'" ',' id="'+c.labelId+'"',c.inputId?' for="'+c.inputId+'"':"",(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",a.label,"</label>",'<div class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+' role="presentation">',e.call(this,b,a),"</div>"):(d={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'<label class="cke_dialog_ui_labeled_label'+d+'" id="'+c.labelId+'" for="'+c.inputId+'"'+
427
+ (a.labelStyle?' style="'+a.labelStyle+'"':"")+">"+CKEDITOR.tools.htmlEncode(a.label)+"</span>"},{type:"html",html:'<span class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+">"+e.call(this,b,a)+"</span>"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,d,f));return f.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:e,type:a.type};
428
+ a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var f=this,i=!1;b.on("load",function(){f.getInputElement().on("keydown",function(a){a.data.getKeystroke()==13&&(i=true)});f.getInputElement().on("keyup",function(a){if(a.data.getKeystroke()==13&&i){b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0);i=false}},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=
429
+ ['<div class="cke_dialog_ui_input_',a.type,'" role="presentation"'];a.width&&b.push('style="width:'+a.width+'" ');b.push("><input ");c["aria-labelledby"]=this._.labelId;this._.required&&(c["aria-required"]=this._.required);for(var f in c)b.push(f+'="'+c[f]+'" ');b.push(" /></div>");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",f={};a.validate&&(this.validate=a.validate);f.rows=a.rows||5;f.cols=
430
+ a.cols||20;f["class"]="cke_dialog_ui_input_textarea "+(a["class"]||"");"undefined"!=typeof a.inputStyle&&(f.style=a.inputStyle);a.dir&&(f.dir=a.dir);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);var a=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea id="',c,'" '],b;for(b in f)a.push(b+'="'+CKEDITOR.tools.htmlEncode(f[b])+'" ');a.push(">",CKEDITOR.tools.htmlEncode(e._["default"]),
431
+ "</textarea></div>");return a.join("")})}},checkbox:function(b,a,d){if(!(3>arguments.length)){var e=h.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},true),f=[],d=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":d};p(c);if(a["default"])g.checked=
432
+ "checked";if(typeof c.inputStyle!="undefined")c.style=c.inputStyle;e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,f,"input",null,g);f.push(' <label id="',d,'" for="',g.id,'"'+(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",CKEDITOR.tools.htmlEncode(a.label),"</label>");return f.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.valdiate);var e=[],c=this;CKEDITOR.ui.dialog.labeledElement.call(this,
433
+ b,a,d,function(){for(var f=[],d=[],g=a.id?a.id+"_radio":CKEDITOR.tools.getNextId()+"_radio",k=0;k<a.items.length;k++){var j=a.items[k],h=j[2]!==void 0?j[2]:j[0],l=j[1]!==void 0?j[1]:j[0],m=CKEDITOR.tools.getNextId()+"_radio_input",n=m+"_label",m=CKEDITOR.tools.extend({},a,{id:m,title:null,type:null},true),h=CKEDITOR.tools.extend({},m,{title:h},true),o={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:l,"aria-labelledby":n},q=[];if(c._["default"]==l)o.checked="checked";p(m);p(h);if(typeof m.inputStyle!=
434
+ "undefined")m.style=m.inputStyle;e.push(new CKEDITOR.ui.dialog.uiElement(b,m,q,"input",null,o));q.push(" ");new CKEDITOR.ui.dialog.uiElement(b,h,q,"label",null,{id:n,"for":o.id},j[0]);f.push(q.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,f,d);return d.join("")});this._.children=e}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));h.call(this,a,{disabled:a.disabled||!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();
435
+ (function(){a.on("click",e.click,e);a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var f=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true","class":a["class"],role:"button","aria-labelledby":f},'<span id="'+f+'" class="cke_dialog_ui_button">'+CKEDITOR.tools.htmlEncode(a.label)+
436
+ "</span>")}},select:function(b,a,d){if(!(3>arguments.length)){var e=h.call(this,a);a.validate&&(this.validate=a.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},true),d=[],i=[],g={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('<div class="cke_dialog_ui_input_',a.type,'" role="presentation"');
437
+ a.width&&d.push('style="width:'+a.width+'" ');d.push(">");if(a.size!=void 0)g.size=a.size;if(a.multiple!=void 0)g.multiple=a.multiple;p(c);for(var k=0,j;k<a.items.length&&(j=a.items[k]);k++)i.push('<option value="',CKEDITOR.tools.htmlEncode(j[1]!==void 0?j[1]:j[0]).replace(/"/g,"&quot;"),'" /> ',CKEDITOR.tools.htmlEncode(j[0]));if(typeof c.inputStyle!="undefined")c.style=c.inputStyle;e.select=new CKEDITOR.ui.dialog.uiElement(b,c,d,"select",null,g,i.join(""));d.push("</div>");return d.join("")})}},
438
+ file:function(b,a,d){if(!(3>arguments.length)){void 0===a["default"]&&(a["default"]="");var e=CKEDITOR.tools.extend(h.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=CKEDITOR.env.isCustomDomain(),d=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" role="presentation" id="',
439
+ e.frameId,'" title="',a.label,'" src="javascript:void('];d.push(b?"(function(){document.open();document.domain='"+document.domain+"';document.close();})()":"0");d.push(')"></iframe>');return d.join("")})}},fileButton:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this;a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),f=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=a["for"];if(!f||f.call(this,c)!==false){b.getContentElement(d[0],
440
+ d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,d=/\/$/;return function(e,c,f){if(!(3>arguments.length)){var i=[],g=c.html;"<"!=g.charAt(0)&&(g="<span>"+g+"</span>");var k=c.focus;if(k){var j=this.focus;this.focus=function(){("function"==typeof k?k:j).call(this);this.fire("focus")};c.isFocusable&&
441
+ (this.isFocusable=this.isFocusable);this.keyboardFocusable=!0}CKEDITOR.ui.dialog.uiElement.call(this,e,c,i,"span",null,null,"");i=i.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);f.push([g[1]," ",i[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,e,c){var f=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,e,"fieldset",null,null,function(){var a=[];f&&a.push("<legend"+(c.labelStyle?' style="'+c.labelStyle+'"':"")+">"+f+"</legend>");
442
+ for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setLabel:function(b){var a=CKEDITOR.document.getById(this._.labelId);1>a.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b=CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()?
443
+ "":b.getChild(0).getText()},eventProcessors:o},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return!this._.disabled?this.fire("click",{dialog:this._.dialog}):!1},enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},
444
+ eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var b=this.selectParentTab();
445
+ setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(b){!b&&(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,
446
+ {getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),c=this.getInputElement().$;e.$.text=b;e.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(e.$):c.add(e.$,null):c.add(e.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0<b.length;)b.remove(0);return this},keyboardFocusable:!0},
447
+ n,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(b,a){this.getInputElement().$.checked=b;!a&&this.fire("change",{value:b})},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return o.onChange.apply(this,arguments);b.on("load",
448
+ function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;"checked"==b.propertyName&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",a);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(b,a){for(var d=this._.children,e,c=0;c<d.length&&(e=d[c]);c++)e.getElement().$.checked=e.getValue()==b;!a&&this.fire("change",{value:b})},getValue:function(){for(var b=
449
+ this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},eventProcessors:{onChange:function(b,a){if(CKEDITOR.env.ie)b.on("load",function(){for(var a=this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&
450
+ b.fire("change",{value:this.getAttribute("value")})})},this),this.on("change",a);else return o.onChange.apply(this,arguments);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,n,{getInputElement:function(){var b=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();
451
+ return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,d,e=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,b[c]):e(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open();CKEDITOR.env.isCustomDomain()&&(d.$.domain=document.domain);var b="";e.size&&
452
+ (b=e.size-(CKEDITOR.env.ie?7:0));var h=a.frameId+"_input";d.$.write(['<html dir="'+g+'" lang="'+k+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+g+'" lang="'+k+'" action="',CKEDITOR.tools.htmlEncode(e.action),'"><label id="',a.labelId,'" for="',h,'" style="display:none">',CKEDITOR.tools.htmlEncode(e.label),'</label><input id="',h,'" aria-labelledby="',a.labelId,'" type="file" name="',CKEDITOR.tools.htmlEncode(e.id||
453
+ "cke_upload"),'" size="',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /></form></body></html>',"<script>window.parent.CKEDITOR.tools.callFunction("+f+");","window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction("+i+")}<\/script>"].join(""));d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),e=a.definition,c=a.buttons,f=this.formLoadedNumber,i=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,k=a.dialog._.editor.langCode;
454
+ f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),i=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);CKEDITOR.tools.removeFunction(i)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,
455
+ a){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",r);CKEDITOR.dialog.addUIElement("password",r);CKEDITOR.dialog.addUIElement("textarea",
456
+ l);CKEDITOR.dialog.addUIElement("checkbox",l);CKEDITOR.dialog.addUIElement("radio",l);CKEDITOR.dialog.addUIElement("button",l);CKEDITOR.dialog.addUIElement("select",l);CKEDITOR.dialog.addUIElement("file",l);CKEDITOR.dialog.addUIElement("fileButton",l);CKEDITOR.dialog.addUIElement("html",l);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var e=a.children,c,f=[],i=[],g=0;g<e.length&&(c=e[g]);g++){var h=[];f.push(h);i.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,h))}return new CKEDITOR.ui.dialog[a.type](b,
457
+ i,f,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;
458
+ (function(){function p(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function u(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function q(a,b){for(var c=a.$.getElementsByTagName("input"),
459
+ e=0,d=c.length;e<d;e++){var g=new CKEDITOR.dom.element(c[e]);"text"==g.getAttribute("type").toLowerCase()&&(b?(g.setAttribute("value",g.getCustomData("fake_value")||""),g.removeCustomData("fake_value")):(g.setCustomData("fake_value",g.getAttribute("value")),g.setAttribute("value","")))}}function P(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
460
+ function Q(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function R(a){var a=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",S).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close})),b=a.getChild([0,0,0,0,0]),c=b.getChild(0),e=b.getChild(1);if(CKEDITOR.env.ie&&!CKEDITOR.env.ie6Compat){var d=CKEDITOR.env.isCustomDomain(),
461
+ d="javascript:void(function(){"+encodeURIComponent("document.open();"+(d?'document.domain="'+document.domain+'";':"")+"document.close();")+"}())";CKEDITOR.dom.element.createFromHtml('<iframe frameBorder="0" class="cke_iframe_shim" src="'+d+'" tabIndex="-1"></iframe>').appendTo(b.getParent())}c.unselectable();e.unselectable();return{element:a,parts:{dialog:a.getChild(0),title:c,close:e,tabs:b.getChild(2),contents:b.getChild([3,0,0,0]),footer:b.getChild([3,0,1,0])}}}function H(a,b,c){this.element=b;
462
+ this.focusIndex=c;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function T(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();c.on("resize",b);a.on("hide",function(){c.removeListener("resize",
463
+ b)})}function I(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function U(a){function b(b){var c=a.getSize(),h=CKEDITOR.document.getWindow().getViewPaneSize(),o=b.data.$.screenX,i=b.data.$.screenY,n=o-e.x,l=i-e.y;e={x:o,y:i};d.x+=n;d.y+=l;a.move(d.x+k[3]<f?-k[3]:d.x-k[1]>h.width-c.width-f?h.width-c.width+("rtl"==g.lang.dir?0:k[1]):d.x,d.y+k[0]<f?-k[0]:d.y-k[2]>h.height-c.height-f?h.height-c.height+k[2]:d.y,1);b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mousemove",
464
+ b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var e=null,d=null;a.getElement().getFirst();var g=a.getParentEditor(),f=g.config.dialog_magnetDistance,k=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof f&&(f=20);a.parts.title.on("mousedown",function(f){e={x:f.data.$.screenX,y:f.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);d=
465
+ a.getPosition();if(CKEDITOR.env.ie6Compat){var g=r.getChild(0).getFrameDocument();g.on("mousemove",b);g.on("mouseup",c)}f.data.preventDefault()},a)}function V(a){var b,c;function e(d){var e="rtl"==k.lang.dir,i=o.width,D=o.height,E=i+(d.data.$.screenX-b)*(e?-1:1)*(a._.moved?1:2),n=D+(d.data.$.screenY-c)*(a._.moved?1:2),x=a._.element.getFirst(),x=e&&x.getComputedStyle("right"),y=a.getPosition();y.y+n>h.height&&(n=h.height-y.y);if((e?x:y.x)+E>h.width)E=h.width-(e?x:y.x);if(f==CKEDITOR.DIALOG_RESIZE_WIDTH||
466
+ f==CKEDITOR.DIALOG_RESIZE_BOTH)i=Math.max(g.minWidth||0,E-m);if(f==CKEDITOR.DIALOG_RESIZE_HEIGHT||f==CKEDITOR.DIALOG_RESIZE_BOTH)D=Math.max(g.minHeight||0,n-j);a.resize(i,D);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",d);CKEDITOR.document.removeListener("mousemove",e);i&&(i.remove(),i=null);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",e)}}var g=a.definition,f=g.resizable;
467
+ if(f!=CKEDITOR.DIALOG_RESIZE_NONE){var k=a.getParentEditor(),m,j,h,o,i,n=CKEDITOR.tools.addFunction(function(f){o=a.getSize();var g=a.parts.contents;g.$.getElementsByTagName("iframe").length&&(i=CKEDITOR.dom.element.createFromHtml('<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>'),g.append(i));j=o.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.opera||CKEDITOR.env.ie&&CKEDITOR.env.quirks));m=o.width-a.parts.contents.getSize("width",
468
+ 1);b=f.screenX;c=f.screenY;h=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",e);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&(g=r.getChild(0).getFrameDocument(),g.on("mousemove",e),g.on("mouseup",d));f.preventDefault&&f.preventDefault()});a.on("load",function(){var b="";f==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":f==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('<div class="cke_resizer'+
469
+ b+" cke_resizer_"+k.lang.dir+'" title="'+CKEDITOR.tools.htmlEncode(k.lang.common.resize)+'" onmousedown="CKEDITOR.tools.callFunction('+n+', event )">'+("ltr"==k.lang.dir?"◢":"◣")+"</div>");a.parts.footer.append(b,1)});k.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function F(a){a.data.preventDefault(1)}function J(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=c.dialog_backgroundCoverColor||"white",d=c.dialog_backgroundCoverOpacity,g=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(e,
470
+ d,g),f=w[c];if(f)f.show();else{g=['<div tabIndex="-1" style="position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",g,"; top: 0px; left: 0px; ",!CKEDITOR.env.ie6Compat?"background-color: "+e:"",'" class="cke_dialog_background_cover">'];if(CKEDITOR.env.ie6Compat){var k=CKEDITOR.env.isCustomDomain(),e="<html><body style=\\'background-color:"+e+";\\'></body></html>";g.push('<iframe hidefocus="true" frameborder="0" id="cke_dialog_background_iframe" src="javascript:');g.push("void((function(){document.open();"+
471
+ (k?"document.domain='"+document.domain+"';":"")+"document.write( '"+e+"' );document.close();})())");g.push('" style="position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)"></iframe>')}g.push("</div>");f=CKEDITOR.dom.element.createFromHtml(g.join(""));f.setOpacity(void 0!=d?d:0.5);f.on("keydown",F);f.on("keypress",F);f.on("keyup",F);f.appendTo(CKEDITOR.document.getBody());w[c]=f}a.focusManager.add(f);r=f;var a=function(){var a=b.getViewPaneSize();
472
+ f.setStyles({width:a.width+"px",height:a.height+"px"})},m=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;f.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};G=a;b.on("resize",a);a();(!CKEDITOR.env.mac||!CKEDITOR.env.webkit)&&f.focus();if(CKEDITOR.env.ie6Compat){var j=function(){m();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){j.prevScrollHandler=window.onscroll||function(){};
473
+ window.onscroll=j},0);m()}}function K(a){r&&(a.focusManager.remove(r),a=CKEDITOR.document.getWindow(),r.hide(),a.removeListener("resize",G),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),G=null)}var s=CKEDITOR.tools.cssLength,S='<div class="cke cke_reset_all {editorId} {editorDialogClass}" dir="{langDir}" lang="{langCode}" role="application"><table class="cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" aria-labelledby="cke_dialog_title_{id}" style="position:absolute" role="dialog"><tr><td role="presentation"><div class="cke_dialog_body" role="presentation"><div id="cke_dialog_title_{id}" class="cke_dialog_title" role="presentation"></div><a id="cke_dialog_close_button_{id}" class="cke_dialog_close_button" href="javascript:void(0)" title="{closeTitle}" role="button"><span class="cke_label">X</span></a><div id="cke_dialog_tabs_{id}" class="cke_dialog_tabs" role="tablist"></div><table class="cke_dialog_contents" role="presentation"><tr><td id="cke_dialog_contents_{id}" class="cke_dialog_contents_body" role="presentation"></td></tr><tr><td id="cke_dialog_footer_{id}" class="cke_dialog_footer" role="presentation"></td></tr></table></div></td></tr></table></div>';
474
+ CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function e(a){var b=l._.focusList,a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;try{b[c].getInputElement().$.blur()}catch(f){}for(var d=c=(c+a+b.length)%b.length;a&&!b[d].isFocusable()&&!(d=(d+a+b.length)%b.length,d==c););b[d].focus();"text"==b[d].type&&b[d].select()}}function d(b){if(l==
475
+ CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),d="rtl"==a.lang.dir;o=i=0;if(9==c||c==CKEDITOR.SHIFT+9)c=c==CKEDITOR.SHIFT+9,l._.tabBarMode?(c=c?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus()):e(c?-1:1),o=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),o=1;else if((37==c||39==c)&&l._.tabBarMode)c=c==(d?39:37)?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus(),o=1;else if((13==c||32==c)&&l._.tabBarMode)this.selectPage(this._.currentTabId),
476
+ this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1),o=1;else if(13==c){c=b.data.getTarget();if(!c.is("a","button","select","textarea")&&(!c.is("input")||"button"!=c.$.type))(c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),o=1;i=1}else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),i=1;else return;g(b)}}function g(a){o?a.data.preventDefault(1):i&&a.data.stopPropagation()}var f=CKEDITOR.dialog._.dialogDefinitions[b],
477
+ k=CKEDITOR.tools.clone(W),m=a.config.dialog_buttonsOrder||"OS",j=a.lang.dir,h={},o,i;("OS"==m&&CKEDITOR.env.mac||"rtl"==m&&"ltr"==j||"ltr"==m&&"rtl"==j)&&k.buttons.reverse();f=CKEDITOR.tools.extend(f(a),k);f=CKEDITOR.tools.clone(f);f=new L(this,f);k=R(a);this._={editor:a,element:k.element,name:b,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],
478
+ currentFocusIndex:0,hasFocus:!1};this.parts=k.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);k={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};k["rtl"==j?"right":"left"]=0;this.parts.dialog.setStyles(k);CKEDITOR.event.call(this);this.definition=f=CKEDITOR.fire("dialogDefinition",{name:b,definition:f},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){k=a.config.removeDialogTabs.split(";");for(j=0;j<
479
+ k.length;j++)if(m=k[j].split(":"),2==m.length){var n=m[0];h[n]||(h[n]=[]);h[n].push(m[1])}a._.removeDialogTabs=h}if(a._.removeDialogTabs&&(h=a._.removeDialogTabs[b]))for(j=0;j<h.length;j++)f.removeContents(h[j]);if(f.onLoad)this.on("load",f.onLoad);if(f.onShow)this.on("show",f.onShow);if(f.onHide)this.on("hide",f.onHide);if(f.onOk)this.on("ok",function(b){a.fire("saveSnapshot");setTimeout(function(){a.fire("saveSnapshot")},0);!1===f.onOk.call(this,b)&&(b.data.hide=!1)});if(f.onCancel)this.on("cancel",
480
+ function(a){!1===f.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,C=function(a){var b=l._.contents,c=!1,d;for(d in b)for(var f in b[d])if(c=a.call(this,b[d][f]))return};this.on("ok",function(a){C(function(b){if(b.validate){var c=b.validate(this),d="string"==typeof c||!1===c;d&&(a.data.hide=!1,a.stop());P.call(b,!d,"string"==typeof c?c:void 0);return d}})},this,null,0);this.on("cancel",function(b){C(function(c){if(c.isChanged())return confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},
481
+ this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=e;var v=this._.element;a.focusManager.add(v,1);this.on("show",function(){v.on("keydown",d,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko)v.on("keypress",g,this)});this.on("hide",function(){v.removeListener("keydown",d);(CKEDITOR.env.opera||CKEDITOR.env.gecko)&&v.removeListener("keypress",g);C(function(a){Q.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",
482
+ d,this,null,0)});this.on("show",function(){c();if(a.config.dialog_startupFocusTab&&1<l._.pageCount)l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus();else if(!this._.hasFocus)if(this._.currentFocusIndex=-1,f.onFocus){var b=f.onFocus.call(this);b&&b.focus()}else e(1)},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);U(this);V(this);(new CKEDITOR.dom.text(f.title,CKEDITOR.document)).appendTo(this.parts.title);
483
+ for(j=0;j<f.contents.length;j++)(h=f.contents[j])&&this.addPage(h);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1)),a.data.preventDefault())},this);j=[];h=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:f.buttons},j).getChild();this.parts.footer.setHtml(j.join(""));
484
+ for(j=0;j<h.length;j++)this._.buttons[h[j].id]=h[j]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){if(!this._.contentSize||!(this._.contentSize.width==a&&this._.contentSize.height==b))CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=
485
+ CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b}}}(),getSize:function(){var a=this._.element.getFirst();return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var e=this._.element.getFirst(),d="rtl"==this._.editor.lang.dir,g="fixed"==e.getComputedStyle("position");CKEDITOR.env.ie&&e.setStyle("zoom","100%");if(!g||!this._.position||!(this._.position.x==
486
+ a&&this._.position.y==b))this._.position={x:a,y:b},g||(g=CKEDITOR.document.getWindow().getScrollPosition(),a+=g.x,b+=g.y),d&&(g=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-g.width-a),b={top:(0<b?b:0)+"px"},b[d?"right":"left"]=(0<a?a:0)+"px",e.setStyles(b),c&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;!a.getParent()||!a.getParent().equals(CKEDITOR.document.getBody())?a.appendTo(CKEDITOR.document.getBody()):
487
+ a.setStyle("display","block");if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version){var c=this.parts.dialog;c.setStyle("position","absolute");setTimeout(function(){c.setStyle("position","fixed")},0)}this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);
488
+ this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,J(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",M);a.on(CKEDITOR.env.opera?"keypress":"keyup",N);this._.hasFocus=!1;CKEDITOR.tools.setTimeout(function(){this.layout();
489
+ T(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e=(c.width-b.width)/2,d=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<d?d:0)>c.height||
490
+ b.width+(0<e?e:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:e,this._.moved?this._.position.y:d)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
491
+ commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(X(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
492
+ if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else K(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",M);a.removeListener(CKEDITOR.env.opera?"keypress":"keyup",N);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock()},0)}delete this._.parentDialog;
493
+ this.foreach(function(a){a.resetInitValue&&a.resetInitValue()})}},addPage:function(a){if(!a.requiredContent||this._.editor.filter.check(a.requiredContent)){for(var b=[],c=a.label?' title="'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),d=this._.contents[a.id]={},g=e.getChild(),f=0;e=g.shift();)!e.notAllowed&&("hbox"!=
494
+ e.type&&"vbox"!=e.type)&&f++,d[e.id]=e,"function"==typeof e.getChild&&g.push.apply(g,e.getChild());f||(a.hidden=!0);b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");e=CKEDITOR.env;d="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber();c=CKEDITOR.dom.element.createFromHtml(['<a class="cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style="display:none"':"",' id="',d,'"',e.gecko&&10900<=e.version&&!e.hc?"":' href="javascript:void(0)"',' tabIndex="-1" hidefocus="true" role="tab">',
495
+ a.label,"</a>"].join(""));b.setAttribute("aria-labelledby",d);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(O(this,this,"CTRL+"+a.accessKey,Y,Z),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)}},selectPage:function(a){if(this._.currentTabId!=a&&!0!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=
496
+ this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),e.hide());e.setAttribute("aria-hidden",b!=a)}var d=this._.tabs[a];d[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(q(d[1]),d[1].show(),setTimeout(function(){q(d[1],1)},0)):d[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},
497
+ hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&(1!=this._.pageCount&&b.isVisible())&&(a==this._.currentTabId&&this.selectPage(p.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,
498
+ b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},
499
+ addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,this._.focusList.push(new H(this,a,b));else{this._.focusList.splice(b,0,new H(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){if(!this._.dialogDefinitions[a]||"function"==typeof b)this._.dialogDefinitions[a]=b},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},
500
+ isTabEnabled:function(a,b,c){a=a.config.removeDialogTabs;return!(a&&a.match(RegExp("(?:^|;)"+b+":"+c+"(?:$|;)","i")))},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=
501
+ function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};
502
+ CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var W={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},z=function(a,b,c){for(var e=0,d;d=a[e];e++)if(d.id==b||c&&d[c]&&(d=z(d[c],b,c)))return d;return null},A=function(a,b,c,e,d){if(c){for(var g=0,f;f=a[g];g++){if(f.id==c)return a.splice(g,0,b),b;if(e&&f[e]&&(f=A(f[e],b,c,e,!0)))return f}if(d)return null}a.push(b);return b},
503
+ B=function(a,b,c){for(var e=0,d;d=a[e];e++){if(d.id==b)return a.splice(e,1);if(c&&d[c]&&(d=B(d[c],b,c)))return d}return null},L=function(a,b){this.dialog=a;for(var c=b.contents,e=0,d;d=c[e];e++)c[e]=d&&new I(a,d);CKEDITOR.tools.extend(this,b)};L.prototype={getContents:function(a){return z(this.contents,a)},getButton:function(a){return z(this.buttons,a)},addContents:function(a,b){return A(this.contents,a,b)},addButton:function(a,b){return A(this.buttons,a,b)},removeContents:function(a){B(this.contents,
504
+ a)},removeButton:function(a){B(this.buttons,a)}};I.prototype={get:function(a){return z(this.elements,a,"children")},add:function(a,b){return A(this.elements,a,b,"children")},remove:function(a){B(this.elements,a,"children")}};var G,w={},r,t={},M=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length)b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,
505
+ b.key),a.data.preventDefault()},N=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length)b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},O=function(a,b,c,e,d){(t[c]||(t[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:d||a.accessKeyUp,keydown:e||a.accessKeyDown})},X=function(a){for(var b in t){for(var c=t[b],e=c.length-
506
+ 1;0<=e;e--)(c[e].dialog==a||c[e].uiElement==a)&&c.splice(e,1);0===c.length&&delete t[b]}},Z=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},Y=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,e,d,g,f){if(!(4>arguments.length)){var k=(e.call?e(b):e)||"div",m=["<",k," "],j=(d&&d.call?d(b):d)||{},h=(g&&g.call?g(b):g)||{},o=(f&&f.call?f.call(this,a,b):f)||"",i=this.domId=h.id||CKEDITOR.tools.getNextId()+"_uiElement";this.id=b.id;b.requiredContent&&!a.getParentEditor().filter.check(b.requiredContent)&&
507
+ (j.display="none",this.notAllowed=!0);h.id=i;var n={};b.type&&(n["cke_dialog_ui_"+b.type]=1);b.className&&(n[b.className]=1);b.disabled&&(n.cke_disabled=1);for(var l=h["class"]&&h["class"].split?h["class"].split(" "):[],i=0;i<l.length;i++)l[i]&&(n[l[i]]=1);l=[];for(i in n)l.push(i);h["class"]=l.join(" ");b.title&&(h.title=b.title);n=(b.style||"").split(";");b.align&&(l=b.align,j["margin-left"]="left"==l?0:"auto",j["margin-right"]="right"==l?0:"auto");for(i in j)n.push(i+":"+j[i]);b.hidden&&n.push("display:none");
508
+ for(i=n.length-1;0<=i;i--)""===n[i]&&n.splice(i,1);0<n.length&&(h.style=(h.style?h.style+"; ":"")+n.join("; "));for(i in h)m.push(i+'="'+CKEDITOR.tools.htmlEncode(h[i])+'" ');m.push(">",o,"</",k,">");c.push(m.join(""));(this._||(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,
509
+ b.setValue.call(this,c))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);this.registerEvents(b);this.accessKeyUp&&(this.accessKeyDown&&b.accessKey)&&O(this,a,"CTRL+"+b.accessKey);var p=this;a.on("load",function(){var b=p.getInputElement();if(b){var c=p.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&CKEDITOR.env.version<8?"cke_dialog_ui_focused":"";b.on("focus",
510
+ function(){a._.tabBarMode=false;a._.hasFocus=true;p.fire("focus");c&&this.addClass(c)});b.on("blur",function(){p.fire("blur");c&&this.removeClass(c)})}});this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=p.focusIndex}));CKEDITOR.tools.extend(this,b)}},hbox:function(a,b,c,e,d){if(!(4>arguments.length)){this._||(this._={});var g=this._.children=b,f=d&&d.widths||null,k=d&&d.height||null,m,j={role:"presentation"};
511
+ d&&d.align&&(j.align=d.align);CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"hbox"},e,"table",{},j,function(){var a=['<tbody><tr class="cke_dialog_ui_hbox">'];for(m=0;m<c.length;m++){var b="cke_dialog_ui_hbox_child",e=[];0===m&&(b="cke_dialog_ui_hbox_first");m==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('<td class="',b,'" role="presentation" ');f?f[m]&&e.push("width:"+s(f[m])):e.push("width:"+Math.floor(100/c.length)+"%");k&&e.push("height:"+s(k));d&&void 0!=d.padding&&e.push("padding:"+
512
+ s(d.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[m].align)&&e.push("text-align:"+g[m].align);0<e.length&&a.push('style="'+e.join("; ")+'" ');a.push(">",c[m],"</td>")}a.push("</tr></tbody>");return a.join("")})}},vbox:function(a,b,c,e,d){if(!(3>arguments.length)){this._||(this._={});var g=this._.children=b,f=d&&d.width||null,k=d&&d.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"vbox"},e,"div",null,{role:"presentation"},function(){var b=['<table role="presentation" cellspacing="0" border="0" '];
513
+ b.push('style="');d&&d.expand&&b.push("height:100%;");b.push("width:"+s(f||"100%"),";");CKEDITOR.env.webkit&&b.push("float:none;");b.push('"');b.push('align="',CKEDITOR.tools.htmlEncode(d&&d.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');b.push("><tbody>");for(var e=0;e<c.length;e++){var h=[];b.push('<tr><td role="presentation" ');f&&h.push("width:"+s(f||"100%"));k?h.push("height:"+s(k[e])):d&&d.expand&&h.push("height:"+Math.floor(100/c.length)+"%");d&&void 0!=d.padding&&h.push("padding:"+
514
+ s(d.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[e].align)&&h.push("text-align:"+g[e].align);0<h.length&&b.push('style="',h.join("; "),'" ');b.push(' class="cke_dialog_ui_vbox_child">',c[e],"</td></tr>")}b.push("</tbody></table>");return b.join("")})}}}})();CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);
515
+ !b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=
516
+ /^on([A-Z]\w+)/,c,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},d;for(d in a)if(c=d.match(b))this.eventProcessors[d]?this.eventProcessors[d].call(this,this._.dialog,a[d]):e(this,this._.dialog,c[1].toLowerCase(),a[d]);return this},eventProcessors:{onLoad:function(a,b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();
517
+ this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},isFocusable:function(){return!this.isEnabled()||!this.isVisible()?!1:!0}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,
518
+ {getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,c,e){for(var d=c.children,g,f=[],k=[],m=0;m<d.length&&(g=d[m]);m++){var j=[];f.push(j);k.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,j))}return new CKEDITOR.ui.dialog[c.type](a,
519
+ k,f,e,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){CKEDITOR.env.opera?CKEDITOR.tools.setTimeout(function(){a.openDialog(this.dialogName)},0,this):a.openDialog(this.dialogName)},canUndo:!1,editorFocus:1};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
520
+ g=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c=void 0,d=CKEDITOR.VALIDATE_AND,e=[],g;for(g=0;g<a.length;g++)if("function"==typeof a[g])e.push(a[g]);else break;g<a.length&&"string"==typeof a[g]&&(c=a[g],g++);g<a.length&&"number"==typeof a[g]&&(d=a[g]);var i=d==CKEDITOR.VALIDATE_AND?!0:!1;for(g=0;g<e.length;g++)i=d==CKEDITOR.VALIDATE_AND?
521
+ i&&e[g](b):i||e[g](b);return!i?c:!0}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return!a.test(c)?b:!0}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,a)},cssLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return g.test(CKEDITOR.tools.trim(a))},
522
+ a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=CKEDITOR.dialog._.currentTop;)b.hide();for(var c in w)w[c].remove();w={}}var a=a.editor._.storedDialogs,d;for(d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,e=CKEDITOR.dialog._.dialogDefinitions[a];
523
+ null===CKEDITOR.dialog._.currentTop&&J(this);if("function"==typeof e)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==e)throw K(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,
524
+ b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(p){p.on("contentDom",function(){var u=p.editable();u.attachListener(u,"dblclick",function(q){if(p.readOnly)return!1;q={element:q.data.getTarget()};p.fire("doubleclick",q);q.dialog&&p.openDialog(q.dialog);return 1})})}});CKEDITOR.plugins.add("about",{requires:"dialog",init:function(a){var b=a.addCommand("about",new CKEDITOR.dialogCommand("about"));b.modes={wysiwyg:1,source:1};b.canUndo=!1;b.readOnly=1;a.ui.addButton&&a.ui.addButton("About",{label:a.lang.about.title,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{en:1,ar:1,bg:1,ca:1,et:1,cs:1,cy:1,da:1,de:1,el:1,eo:1,es:1,fa:1,fi:1,fr:1,"fr-ca":1,gu:1,he:1,hi:1,hr:1,hu:1,it:1,ja:1,km:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,sk:1,sl:1,sq:1,sv:1,th:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{exec:function(){var a=b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";
525
+ CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js")}})})();(function(){function f(c){var a=this.att,c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function g(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}var i={id:1,dir:1,classes:1,styles:1};CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",allowedContent:function(c){c||(c=i);var a=[];c.id&&a.push("id");c.dir&&a.push("dir");var b=
526
+ "";a.length&&(b+="["+a.join(",")+"]");c.classes&&(b+="(*)");c.styles&&(b+="{*}");return b},createAdvancedTab:function(c,a,b){a||(a=i);var d=c.lang.common,h={id:"advanced",label:d.advancedTab,title:d.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},e=[];if(a.id||a.dir)a.id&&e.push({id:"advId",att:"id",type:"text",requiredContent:b?b+"[id]":null,label:d.id,setup:f,commit:g}),a.dir&&e.push({id:"advLangDir",att:"dir",type:"select",requiredContent:b?b+"[dir]":null,label:d.langDir,"default":"",
527
+ style:"width:100%",items:[[d.notSet,""],[d.langDirLTR,"ltr"],[d.langDirRTL,"rtl"]],setup:f,commit:g}),h.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(e)});if(a.styles||a.classes)e=[],a.styles&&e.push({id:"advStyles",att:"style",type:"text",requiredContent:b?b+"{cke-xyz}":null,label:d.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(d.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(RegExp("(?:^|;)\\s*"+a+
528
+ "\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:f,commit:g}),a.classes&&e.push({type:"hbox",widths:["45%","55%"],children:[{id:"advCSSClasses",att:"class",type:"text",requiredContent:b?b+"(cke-xyz)":null,label:d.cssClasses,"default":"",setup:f,commit:g}]}),h.elements[0].children.push({type:"hbox",
529
+ widths:["50%","50%"],children:[].concat(e)});return h}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var e=0,d=function(g,d,b,a){if(a){var a=new CKEDITOR.style(a),f=h[b];f.unshift(a);c.attachStyleStateChange(a,function(a){!c.readOnly&&c.getCommand(b).setState(a)});c.addCommand(b,new CKEDITOR.styleCommand(a,{contentForms:f}));c.ui.addButton&&c.ui.addButton(g,{label:d,command:b,toolbar:"basicstyles,"+(e+=10)})}},h={bold:["strong","b",["span",function(a){a=a.styles["font-weight"];return"bold"==a||700<=+a}]],italic:["em","i",["span",function(a){return"italic"==
530
+ a.styles["font-style"]}]],underline:["u",["span",function(a){return"underline"==a.styles["text-decoration"]}]],strike:["s","strike",["span",function(a){return"line-through"==a.styles["text-decoration"]}]],subscript:["sub"],superscript:["sup"]},b=c.config,a=c.lang.basicstyles;d("Bold",a.bold,"bold",b.coreStyles_bold);d("Italic",a.italic,"italic",b.coreStyles_italic);d("Underline",a.underline,"underline",b.coreStyles_underline);d("Strike",a.strike,"strike",b.coreStyles_strike);d("Subscript",a.subscript,
531
+ "subscript",b.coreStyles_subscript);d("Superscript",a.superscript,"superscript",b.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};CKEDITOR.config.coreStyles_strike={element:"s",overrides:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};
532
+ CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){function n(a,f,d,b){if(!a.isReadOnly()&&!a.equals(d.editable())){CKEDITOR.dom.element.setMarker(b,a,"bidi_processed",1);for(var b=a,c=d.editable();(b=b.getParent())&&!b.equals(c);)if(b.getCustomData("bidi_processed")){a.removeStyle("direction");a.removeAttribute("dir");return}b="useComputedState"in d.config?d.config.useComputedState:1;if((b?a.getComputedStyle("direction"):a.getStyle("direction")||a.hasAttribute("dir"))!=f)a.removeStyle("direction"),b?(a.removeAttribute("dir"),f!=a.getComputedStyle("direction")&&
533
+ a.setAttribute("dir",f)):a.setAttribute("dir",f),d.forceNextSelectionCheck()}}function r(a,f,d){var b=a.getCommonAncestor(!1,!0),a=a.clone();a.enlarge(d==CKEDITOR.ENTER_BR?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(a.checkBoundaryOfElement(b,CKEDITOR.START)&&a.checkBoundaryOfElement(b,CKEDITOR.END)){for(var c;b&&b.type==CKEDITOR.NODE_ELEMENT&&(c=b.getParent())&&1==c.getChildCount()&&!(b.getName()in f);)b=c;return b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in f&&b}}function m(a){return{context:"p",
534
+ allowedContent:{"h1 h2 h3 h4 h5 h6 table ul ol blockquote div tr p div li td":{propertiesOnly:!0,attributes:"dir"}},requiredContent:"p[dir]",refresh:function(a,d){var b=a.config.useComputedState,c,b=void 0===b||b;if(!b){c=d.lastElement;for(var h=a.editable();c&&!(c.getName()in q||c.equals(h));){var e=c.getParent();if(!e)break;c=e}}c=c||d.block||d.blockLimit;c.equals(a.editable())&&(h=a.getSelection().getRanges()[0].getEnclosedNode())&&h.type==CKEDITOR.NODE_ELEMENT&&(c=h);c&&(b=b?c.getComputedStyle("direction"):
535
+ c.getStyle("direction")||c.getAttribute("dir"),a.getCommand("bidirtl").setState("rtl"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),a.getCommand("bidiltr").setState("ltr"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF));b=(d.block||d.blockLimit||a.editable()).getDirection(1);if(b!=(a._.selDir||a.lang.dir))a._.selDir=b,a.fire("contentDirChanged",b)},exec:function(f){var d=f.getSelection(),b=f.config.enterMode,c=d.getRanges();if(c&&c.length){for(var h={},e=d.createBookmarks(),c=c.createIterator(),g,
536
+ j=0;g=c.getNextRange(1);){var i=g.getEnclosedNode();if(!i||i&&!(i.type==CKEDITOR.NODE_ELEMENT&&i.getName()in o))i=r(g,p,b);i&&n(i,a,f,h);var k=new CKEDITOR.dom.walker(g),l=e[j].startNode,m=e[j++].endNode;k.evaluator=function(a){return!!(a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in p&&!(a.getName()==(b==CKEDITOR.ENTER_P?"p":"div")&&a.getParent().type==CKEDITOR.NODE_ELEMENT&&"blockquote"==a.getParent().getName())&&a.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&(a.getPosition(m)&CKEDITOR.POSITION_PRECEDING+
537
+ CKEDITOR.POSITION_CONTAINS)==CKEDITOR.POSITION_PRECEDING)};for(;i=k.next();)n(i,a,f,h);g=g.createIterator();for(g.enlargeBr=b!=CKEDITOR.ENTER_BR;i=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)n(i,a,f,h)}CKEDITOR.dom.element.clearAllMarkers(h);f.forceNextSelectionCheck();d.selectBookmarks(e);f.focus()}}}}function s(a){var f=a==j.setAttribute,d=a==j.removeAttribute,b=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(c,h){if(!this.isReadOnly()){var e;if(e=c==(f||d?"dir":"direction")||"style"==
538
+ c&&(d||b.test(h))){a:{e=this;for(var g=e.getDocument().getBody().getParent();e;){if(e.equals(g)){e=!1;break a}e=e.getParent()}e=!0}e=!e}if(e&&(e=this.getDirection(1),g=a.apply(this,arguments),e!=this.getDirection(1)))return this.getDocument().fire("dirChanged",this),g}return a.apply(this,arguments)}}var p={table:1,ul:1,ol:1,blockquote:1,div:1},o={},q={};CKEDITOR.tools.extend(o,p,{tr:1,p:1,div:1,li:1});CKEDITOR.tools.extend(q,o,{td:1});CKEDITOR.plugins.add("bidi",{init:function(a){function f(b,c,d,
539
+ e,f){a.addCommand(d,new CKEDITOR.command(a,e));a.ui.addButton&&a.ui.addButton(b,{label:c,command:d,toolbar:"bidi,"+f})}if(!a.blockless){var d=a.lang.bidi;a.ui.addToolbarGroup&&a.ui.addToolbarGroup("bidi","align","paragraph");f("BidiLtr",d.ltr,"bidiltr",m("ltr"),10);f("BidiRtl",d.rtl,"bidirtl",m("rtl"),20);a.on("contentDom",function(){a.document.on("dirChanged",function(b){a.fire("dirChanged",{node:b.data,dir:b.data.getDirection(1)})})});a.on("contentDirChanged",function(b){var b=(a.lang.dir!=b.data?
540
+ "add":"remove")+"Class",c=a.ui.space(a.config.toolbarLocation);if(c)c[b]("cke_mixed_dir_content")})}}});for(var j=CKEDITOR.dom.element.prototype,l=["setStyle","removeStyle","setAttribute","removeAttribute"],k=0;k<l.length;k++)j[l[k]]=CKEDITOR.tools.override(j[l[k]],s)})();(function(){var k={exec:function(g){var a=g.getCommand("blockquote").state,i=g.getSelection(),c=i&&i.getRanges(!0)[0];if(c){var h=i.createBookmarks();if(CKEDITOR.env.ie){var e=h[0].startNode,b=h[0].endNode,d;if(e&&"blockquote"==e.getParent().getName())for(d=e;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){e.move(d,!0);break}if(b&&"blockquote"==b.getParent().getName())for(d=b;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){b.move(d);break}}var f=c.createIterator();
541
+ f.enlargeBr=g.config.enterMode!=CKEDITOR.ENTER_BR;if(a==CKEDITOR.TRISTATE_OFF){for(e=[];a=f.getNextParagraph();)e.push(a);1>e.length&&(a=g.document.createElement(g.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),b=h.shift(),c.insertNode(a),a.append(new CKEDITOR.dom.text("",g.document)),c.moveToBookmark(b),c.selectNodeContents(a),c.collapse(!0),b=c.createBookmark(),e.push(a),h.unshift(b));d=e[0].getParent();c=[];for(b=0;b<e.length;b++)a=e[b],d=d.getCommonAncestor(a.getParent());for(a={table:1,tbody:1,
542
+ tr:1,ol:1,ul:1};a[d.getName()];)d=d.getParent();for(b=null;0<e.length;){for(a=e.shift();!a.getParent().equals(d);)a=a.getParent();a.equals(b)||c.push(a);b=a}for(;0<c.length;)if(a=c.shift(),"blockquote"==a.getName()){for(b=new CKEDITOR.dom.documentFragment(g.document);a.getFirst();)b.append(a.getFirst().remove()),e.push(b.getLast());b.replace(a)}else e.push(a);c=g.document.createElement("blockquote");for(c.insertBefore(e[0]);0<e.length;)a=e.shift(),c.append(a)}else if(a==CKEDITOR.TRISTATE_ON){b=[];
543
+ for(d={};a=f.getNextParagraph();){for(e=c=null;a.getParent();){if("blockquote"==a.getParent().getName()){c=a.getParent();e=a;break}a=a.getParent()}c&&(e&&!e.getCustomData("blockquote_moveout"))&&(b.push(e),CKEDITOR.dom.element.setMarker(d,e,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);a=[];e=[];for(d={};0<b.length;)f=b.shift(),c=f.getParent(),f.getPrevious()?f.getNext()?(f.breakParent(f.getParent()),e.push(f.getNext())):f.remove().insertAfter(c):f.remove().insertBefore(c),c.getCustomData("blockquote_processed")||
544
+ (e.push(c),CKEDITOR.dom.element.setMarker(d,c,"blockquote_processed",!0)),a.push(f);CKEDITOR.dom.element.clearAllMarkers(d);for(b=e.length-1;0<=b;b--){c=e[b];a:{d=c;for(var f=0,k=d.getChildCount(),j=void 0;f<k&&(j=d.getChild(f));f++)if(j.type==CKEDITOR.NODE_ELEMENT&&j.isBlockBoundary()){d=!1;break a}d=!0}d&&c.remove()}if(g.config.enterMode==CKEDITOR.ENTER_BR)for(c=!0;a.length;)if(f=a.shift(),"div"==f.getName()){b=new CKEDITOR.dom.documentFragment(g.document);c&&(f.getPrevious()&&!(f.getPrevious().type==
545
+ CKEDITOR.NODE_ELEMENT&&f.getPrevious().isBlockBoundary()))&&b.append(g.document.createElement("br"));for(c=f.getNext()&&!(f.getNext().type==CKEDITOR.NODE_ELEMENT&&f.getNext().isBlockBoundary());f.getFirst();)f.getFirst().remove().appendTo(b);c&&b.append(g.document.createElement("br"));b.replace(f);c=!1}}i.selectBookmarks(h);g.focus()}},refresh:function(g,a){this.setState(g.elementPath(a.block||a.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote",
546
+ allowedContent:"blockquote",requiredContent:"blockquote"};CKEDITOR.plugins.add("blockquote",{init:function(g){g.blockless||(g.addCommand("blockquote",k),g.ui.addButton&&g.ui.addButton("Blockquote",{label:g.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})})();(function(){function w(a){function b(){var d=a.editable();d.on(q,function(a){(!CKEDITOR.env.ie||!m)&&u(a)});CKEDITOR.env.ie&&d.on("paste",function(d){r||(f(),d.data.preventDefault(),u(d),k("paste")||a.openDialog("paste"))});CKEDITOR.env.ie&&(d.on("contextmenu",h,null,null,0),d.on("beforepaste",function(a){a.data&&!a.data.$.ctrlKey&&h()},null,null,0));d.on("beforecut",function(){!m&&l(a)});var v;d.attachListener(CKEDITOR.env.ie?d:a.document.getDocumentElement(),"mouseup",function(){v=setTimeout(function(){s()},
547
+ 0)});a.on("destroy",function(){clearTimeout(v)});d.on("keyup",s)}function e(d){return{type:d,canUndo:"cut"==d,startDisabled:!0,exec:function(){"cut"==this.type&&l();var d;var b=this.type;if(CKEDITOR.env.ie)d=k(b);else try{d=a.document.$.execCommand(b,!1,null)}catch(c){d=!1}d||alert(a.lang.clipboard[this.type+"Error"]);return d}}}function c(){return{canUndo:!1,async:!0,exec:function(a,b){var c=function(b,c){b&&g(b.type,b.dataValue,!!c);a.fire("afterCommandExec",{name:"paste",command:e,returnValue:!!b})},
548
+ e=this;"string"==typeof b?c({type:"auto",dataValue:b},1):a.getClipboardData(c)}}}function f(){r=1;setTimeout(function(){r=0},100)}function h(){m=1;setTimeout(function(){m=0},10)}function k(d){var b=a.document,c=b.getBody(),e=!1,l=function(){e=!0};c.on(d,l);(7<CKEDITOR.env.version?b.$:b.$.selection.createRange()).execCommand(d);c.removeListener(d,l);return e}function g(d,b,c){d={type:d};if(c&&!a.fire("beforePaste",d)||!b)return!1;d.dataValue=b;return a.fire("paste",d)}function l(){if(CKEDITOR.env.ie&&
549
+ !CKEDITOR.env.quirks){var d=a.getSelection(),b,c,e;if(d.getType()==CKEDITOR.SELECTION_ELEMENT&&(b=d.getSelectedElement()))c=d.getRanges()[0],e=a.document.createText(""),e.insertBefore(b),c.setStartBefore(e),c.setEndAfter(b),d.selectRanges([c]),setTimeout(function(){b.getParent()&&(e.remove(),d.selectElement(b))},0)}}function j(d,b){var c=a.document,e=a.editable(),l=function(a){a.cancel()},j=CKEDITOR.env.gecko&&10902>=CKEDITOR.env.version;if(!c.getById("cke_pastebin")){var f=a.getSelection(),h=f.createBookmarks(),
550
+ i=new CKEDITOR.dom.element(e.is("body")&&!CKEDITOR.env.ie&&!CKEDITOR.env.opera?"body":"div",c);i.setAttribute("id","cke_pastebin");CKEDITOR.env.opera&&i.appendBogus();var o=0,c=c.getWindow();j?(i.insertAfter(h[0].startNode),i.setStyle("display","inline")):(CKEDITOR.env.webkit?(e.append(i),i.addClass("cke_editable"),o=(e.is("body")?e:CKEDITOR.dom.element.get(i.$.offsetParent)).getDocumentPosition().y):e.getAscendant(CKEDITOR.env.ie||CKEDITOR.env.opera?"body":"html",1).append(i),i.setStyles({position:"absolute",
551
+ top:c.getScrollPosition().y-o+10+"px",width:"1px",height:Math.max(1,c.getViewPaneSize().height-20)+"px",overflow:"hidden",margin:0,padding:0}));(j=i.getParent().isReadOnly())?(i.setOpacity(0),i.setAttribute("contenteditable",!0)):i.setStyle("ltr"==a.config.contentsLangDirection?"left":"right","-1000px");a.on("selectionChange",l,null,null,0);j&&i.focus();j=new CKEDITOR.dom.range(i);j.selectNodeContents(i);var g=j.select();if(CKEDITOR.env.ie)var k=e.once("blur",function(){a.lockSelection(g)});var m=
552
+ CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){if(CKEDITOR.env.webkit||CKEDITOR.env.opera)CKEDITOR.document[CKEDITOR.env.webkit?"getBody":"getDocumentElement"]().$.scrollTop=m;k&&k.removeListener();CKEDITOR.env.ie&&e.focus();f.selectBookmarks(h);i.remove();var d;if(CKEDITOR.env.webkit&&(d=i.getFirst())&&d.is&&d.hasClass("Apple-style-span"))i=d;a.removeListener("selectionChange",l);b(i.getHtml())},0)}}function o(){if(CKEDITOR.env.ie){a.focus();f();var d=a.focusManager;d.lock();
553
+ if(a.editable().fire(q)&&!k("paste"))return d.unlock(),!1;d.unlock()}else try{if(a.editable().fire(q)&&!a.document.$.execCommand("Paste",!1,null))throw 0;}catch(b){return!1}return!0}function p(d){if("wysiwyg"==a.mode)switch(d.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:d=a.editable();f();!CKEDITOR.env.ie&&d.fire("beforepaste");(CKEDITOR.env.opera||CKEDITOR.env.gecko&&10900>CKEDITOR.env.version)&&d.fire("paste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:a.fire("saveSnapshot"),
554
+ setTimeout(function(){a.fire("saveSnapshot")},0)}}function u(d){var b={type:"auto"},c=a.fire("beforePaste",b);j(d,function(a){a=a.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,"");c&&g(b.type,a,0,1)})}function s(){if("wysiwyg"==a.mode){var b=n("Paste");a.getCommand("cut").setState(n("Cut"));a.getCommand("copy").setState(n("Copy"));a.getCommand("paste").setState(b);a.fire("pasteState",b)}}function n(b){var c;if(t&&b in{Paste:1,Cut:1})return CKEDITOR.TRISTATE_DISABLED;if("Paste"==b){CKEDITOR.env.ie&&
555
+ (m=1);try{c=a.document.$.queryCommandEnabled(b)||CKEDITOR.env.webkit}catch(e){}m=0}else b=a.getSelection(),c=b.getRanges(),c=b.getType()!=CKEDITOR.SELECTION_NONE&&!(1==c.length&&c[0].collapsed);return c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}var m=0,r=0,t=0,q=CKEDITOR.env.ie?"beforepaste":"paste";(function(){a.on("key",p);a.on("contentDom",b);a.on("selectionChange",function(a){t=a.data.selection.getRanges()[0].checkReadOnly();s()});a.contextMenu&&a.contextMenu.addListener(function(a,b){t=
556
+ b.getRanges()[0].checkReadOnly();return{cut:n("Cut"),copy:n("Copy"),paste:n("Paste")}})})();(function(){function b(c,d,e,l,j){var f=a.lang.clipboard[d];a.addCommand(d,e);a.ui.addButton&&a.ui.addButton(c,{label:f,command:d,toolbar:"clipboard,"+l});a.addMenuItems&&a.addMenuItem(d,{label:f,command:d,group:"clipboard",order:j})}b("Cut","cut",e("cut"),10,1);b("Copy","copy",e("copy"),20,4);b("Paste","paste",c(),30,8)})();a.getClipboardData=function(b,c){function e(a){a.removeListener();a.cancel();c(a.data)}
557
+ function l(a){a.removeListener();a.cancel();g=!0;c({type:h,dataValue:a.data})}function j(){this.customTitle=b&&b.title}var f=!1,h="auto",g=!1;c||(c=b,b=null);a.on("paste",e,null,null,0);a.on("beforePaste",function(a){a.removeListener();f=true;h=a.data.type},null,null,1E3);!1===o()&&(a.removeListener("paste",e),f&&a.fire("pasteDialog",j)?(a.on("pasteDialogCommit",l),a.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",l);setTimeout(function(){g||c(null)},10)})):
558
+ c(null))}}function x(a){if(CKEDITOR.env.webkit){if(!a.match(/^[^<]*$/g)&&!a.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi)&&!a.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko||CKEDITOR.env.opera){if(!a.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";return"htmlifiedtext"}function y(a,b){function e(a){return CKEDITOR.tools.repeat("</p><p>",~~(a/2))+(1==
559
+ a%2?"<br>":"")}b=b.replace(/\s+/g," ").replace(/> +</g,"><").replace(/<br ?\/>/gi,"<br>");b=b.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(b.match(/^[^<]$/))return b;CKEDITOR.env.webkit&&-1<b.indexOf("<div>")&&(b=b.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"<br>").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"<div></div>"),b.match(/<div>(<br>|)<\/div>/)&&(b="<p>"+b.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return e(a.split("</div><div>").length+1)})+"</p>"),b=
560
+ b.replace(/<\/div><div>/g,"<br>"),b=b.replace(/<\/?div>/g,""));if((CKEDITOR.env.gecko||CKEDITOR.env.opera)&&a.enterMode!=CKEDITOR.ENTER_BR)CKEDITOR.env.gecko&&(b=b.replace(/^<br><br>$/,"<br>")),-1<b.indexOf("<br><br>")&&(b="<p>"+b.replace(/(<br>){2,}/g,function(a){return e(a.length/4)})+"</p>");return p(a,b)}function z(){var a=new CKEDITOR.htmlParser.filter,b={blockquote:1,dl:1,fieldset:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ol:1,p:1,table:1,ul:1},e=CKEDITOR.tools.extend({br:0},CKEDITOR.dtd.$inline),c={p:1,
561
+ br:1,"cke:br":1},f=CKEDITOR.dtd,h=CKEDITOR.tools.extend({area:1,basefont:1,embed:1,iframe:1,map:1,object:1,param:1},CKEDITOR.dtd.$nonBodyContent,CKEDITOR.dtd.$cdata),k=function(a){delete a.name;a.add(new CKEDITOR.htmlParser.text(" "))},g=function(a){for(var b=a,c;(b=b.next)&&b.name&&b.name.match(/^h\d$/);){c=new CKEDITOR.htmlParser.element("cke:br");c.isEmpty=!0;for(a.add(c);c=b.children.shift();)a.add(c)}};a.addRules({elements:{h1:g,h2:g,h3:g,h4:g,h5:g,h6:g,img:function(a){var a=CKEDITOR.tools.trim(a.attributes.alt||
562
+ ""),b=" ";a&&!a.match(/(^http|\.(jpe?g|gif|png))/i)&&(b=" ["+a+"] ");return new CKEDITOR.htmlParser.text(b)},td:k,th:k,$:function(a){var j=a.name,g;if(h[j])return!1;delete a.attributes;if("br"==j)return a;if(b[j])a.name="p";else if(e[j])delete a.name;else if(f[j]){g=new CKEDITOR.htmlParser.element("cke:br");g.isEmpty=!0;if(CKEDITOR.dtd.$empty[j])return g;a.add(g,0);g=g.clone();g.isEmpty=!0;a.add(g);delete a.name}c[a.name]||delete a.name;return a}}});return a}function A(a,b,e){var b=new CKEDITOR.htmlParser.fragment.fromHtml(b),
563
+ c=new CKEDITOR.htmlParser.basicWriter;b.writeHtml(c,e);var b=c.getHtml(),b=b.replace(/\s*(<\/?[a-z:]+ ?\/?>)\s*/g,"$1").replace(/(<cke:br \/>){2,}/g,"<cke:br />").replace(/(<cke:br \/>)(<\/?p>|<br \/>)/g,"$2").replace(/(<\/?p>|<br \/>)(<cke:br \/>)/g,"$1").replace(/<(cke:)?br( \/)?>/g,"<br>").replace(/<p><\/p>/g,""),f=0,b=b.replace(/<\/?p>/g,function(a){if("<p>"==a){if(1<++f)return"</p><p>"}else if(0<--f)return"</p><p>";return a}).replace(/<p><\/p>/g,"");return p(a,b)}function p(a,b){a.enterMode==
564
+ CKEDITOR.ENTER_BR?b=b.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("<br>",2*(a.length/7))}).replace(/<\/?p>/g,""):a.enterMode==CKEDITOR.ENTER_DIV&&(b=b.replace(/<(\/)?p>/g,"<$1div>"));return b}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(a){var b;w(a);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));a.on("paste",function(a){var b=a.data.dataValue,f=CKEDITOR.dtd.$block;-1<b.indexOf("Apple-")&&(b=b.replace(/<span class="Apple-converted-space">&nbsp;<\/span>/gi,
565
+ " "),"html"!=a.data.type&&(b=b.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g,"&nbsp;&nbsp; &nbsp;")})),-1<b.indexOf('<br class="Apple-interchange-newline">')&&(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/<br class="Apple-interchange-newline">/,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(b.match(/^<[^<]+cke_(editable|contents)/i)){var h,k,g=new CKEDITOR.dom.element("div");for(g.setHtml(b);1==g.getChildCount()&&(h=
566
+ g.getFirst())&&h.type==CKEDITOR.NODE_ELEMENT&&(h.hasClass("cke_editable")||h.hasClass("cke_contents"));)g=k=h;k&&(b=k.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?b=b.replace(/^&nbsp;(?: |\r\n)?<(\w+)/g,function(b,c){if(c.toLowerCase()in f){a.data.preSniffing="html";return"<"+c}return b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)><div><br><\/div>$/,function(b,c){if(c in f){a.data.endsWithEOL=1;return"</"+c+">"}return b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)<br>$/,"$1"));a.data.dataValue=b},null,
567
+ null,3);a.on("paste",function(e){var e=e.data,c=e.type,f=e.dataValue,h,k=a.config.clipboard_defaultContentType||"html";h="html"==c||"html"==e.preSniffing?"html":x(f);"htmlifiedtext"==h?f=y(a.config,f):"text"==c&&"html"==h&&(f=A(a.config,f,b||(b=z(a))));e.startsWithEOL&&(f='<br data-cke-eol="1">'+f);e.endsWithEOL&&(f+='<br data-cke-eol="1">');"auto"==c&&(c="html"==h||"html"==k?"html":"text");e.type=c;e.dataValue=f;delete e.preSniffing;delete e.startsWithEOL;delete e.endsWithEOL},null,null,6);a.on("paste",
568
+ function(b){b=b.data;a.insertHtml(b.dataValue,b.type);setTimeout(function(){a.fire("afterPaste")},0)},null,null,1E3);a.on("pasteDialog",function(b){setTimeout(function(){a.openDialog("paste",b.data)},0)})}})})();(function(){var c='<a id="{id}" class="cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' title="{title}" tabindex="-1" hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="{hasArrow}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)c+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var c=
569
+ c+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"'),c=c+'>&nbsp;</span><span id="{id}_label" class="cke_button_label cke_button__{name}_label">{label}</span>{arrowHtml}</a>',
570
+ m=CKEDITOR.addTemplate("buttonArrow",'<span class="cke_button_arrow">'+(CKEDITOR.env.hc?"&#9660;":"")+"</span>"),n=CKEDITOR.addTemplate("button",c);CKEDITOR.plugins.add("button",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(a){CKEDITOR.tools.extend(this,a,{title:a.label,click:a.click||function(b){b.execCommand(a.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(a){return new CKEDITOR.ui.button(a)}};
571
+ CKEDITOR.ui.button.prototype={render:function(a,b){var c=CKEDITOR.env,i=this._.id=CKEDITOR.tools.getNextId(),f="",e=this.command,l;this._.editor=a;var d={id:i,button:this,editor:a,focus:function(){CKEDITOR.document.getById(i).focus()},execute:function(){this.button.click(a)},attach:function(a){this.button.attach(a)}},o=CKEDITOR.tools.addFunction(function(a){if(d.onkey)return a=new CKEDITOR.dom.event(a),!1!==d.onkey(d,a.getKeystroke())}),p=CKEDITOR.tools.addFunction(function(a){var b;d.onfocus&&(b=
572
+ !1!==d.onfocus(d,new CKEDITOR.dom.event(a)));CKEDITOR.env.gecko&&10900>CKEDITOR.env.version&&a.preventBubble();return b}),j=0,q=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var b=a.editable();b.isInline()&&b.hasFocus&&(a.lockSelection(),j=1)}});d.clickFn=l=CKEDITOR.tools.addFunction(function(){j&&(a.unlockSelection(1),j=0);d.execute()});if(this.modes){var k={},g=function(){var b=a.mode;b&&(b=this.modes[b]?void 0!=k[b]?k[b]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,this.setState(a.readOnly&&
573
+ !this.readOnly?CKEDITOR.TRISTATE_DISABLED:b))};a.on("beforeModeUnload",function(){a.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[a.mode]=this._.state)},this);a.on("mode",g,this);!this.readOnly&&a.on("readOnly",g,this)}else if(e&&(e=a.getCommand(e)))e.on("state",function(){this.setState(e.state)},this),f+=e.state==CKEDITOR.TRISTATE_ON?"on":e.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";if(this.directional)a.on("contentDirChanged",function(b){var c=CKEDITOR.document.getById(this._.id),d=
574
+ c.getFirst(),b=b.data;b!=a.lang.dir?c.addClass("cke_"+b):c.removeClass("cke_ltr").removeClass("cke_rtl");d.setAttribute("style",CKEDITOR.skin.getIconStyle(h,"rtl"==b,this.icon,this.iconOffset))},this);e||(f+="off");var h=g=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(h=this.icon,this.icon=null);c={id:i,name:g,iconName:h,label:this.label,cls:this.className||"",state:f,title:this.title,titleJs:c.gecko&&10900<=c.version&&!c.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?
575
+ "true":"false",keydownFn:o,mousedownFn:q,focusFn:p,clickFn:l,style:CKEDITOR.skin.getIconStyle(h,"rtl"==a.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?m.output():""};n.output(c,b);if(this.onRender)this.onRender();return d},setState:function(a){if(this._.state==a)return!1;this._.state=a;var b=CKEDITOR.document.getById(this._.id);return b?(b.setState(a,"cke_button"),a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled"),a==CKEDITOR.TRISTATE_ON?
576
+ b.setAttribute("aria-pressed",!0):b.removeAttribute("aria-pressed"),!0):!1},toFeature:function(a){if(this._.feature)return this._.feature;var b=this;!this.allowedContent&&(!this.requiredContent&&this.command)&&(b=a.getCommand(this.command)||b);return this._.feature=b}};CKEDITOR.ui.prototype.addButton=function(a,b){this.add(a,CKEDITOR.UI_BUTTON,b)}})();CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated=
577
+ !0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()};
578
+ d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}});
579
+ CKEDITOR.UI_PANELBUTTON="panelbutton";(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var e=CKEDITOR.addTemplate("panel",
580
+ '<div lang="{langCode}" id="{id}" dir={dir} class="cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style="z-index:{z-index}" role="presentation">{frame}</div>'),f=CKEDITOR.addTemplate("panel-frame",'<iframe id="{id}" class="cke_panel_frame" role="application" frameborder="0" src="{src}"></iframe>'),g=CKEDITOR.addTemplate("panel-frame-inner",'<!DOCTYPE html><html class="cke_panel_container {env}" dir="{dir}" lang="{langCode}"><head>{css}</head><body class="cke_{dir}" style="margin:0;padding:0" onload="{onload}"></body></html>');
581
+ CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(g.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
582
+ b+");"},c)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("key"+(CKEDITOR.env.opera?"press":"down"),function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var c=
583
+ {editorId:a.id,id:this.id,langCode:a.langCode,dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};this.isFramed&&(c.frame=f.output({id:this.id+"_frame",src:"javascript:void(document.open(),"+(CKEDITOR.env.isCustomDomain()?"document.domain='"+document.domain+"',":"")+'document.close())">'}));var d=e.output(c);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
584
+ b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){var a=this._.blocks[a],b=this._.currentBlock,c=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&(c.removeAttributes(b.attributes),b.hide());this._.currentBlock=a;c.setAttributes(a.attributes);CKEDITOR.fire("ariaWidget",c);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&
585
+ this.element.remove()}};CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabIndex:-1,"class":"cke_panel_block",role:"presentation"},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.attributes.title||(this.attributes.title=this.attributes["aria-label"]);this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=
586
+ a),(CKEDITOR.env.webkit||CKEDITOR.env.opera)&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){(!this.onHide||!0!==this.onHide.call(this))&&this.element.setStyle("display","none")},onKeyDown:function(a){var b=this.keys[a];switch(b){case "next":for(var a=this._.focusIndex,b=this.element.getElementsByTag("a"),c;c=b.getItem(++a);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=
587
+ a;c.focus();break}return!1;case "prev":a=this._.focusIndex;for(b=this.element.getElementsByTag("a");0<a&&(c=b.getItem(--a));)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=a;c.focus();break}return!1;case "click":case "mouseup":return a=this._.focusIndex,(c=0<=a&&this.element.getElementsByTag("a").getItem(a))&&(c.$[b]?c.$[b]():c.$["on"+b]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
588
+ (function(){function o(a,b,c,h,g){var g=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",h.css||"",g||""),e=i[g];e||(e=i[g]=new CKEDITOR.ui.panel(b,h),e.element=c.append(CKEDITOR.dom.element.createFromHtml(e.render(a),b)),e.element.setStyles({display:"none",position:"absolute"}));return e}var i={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,h){function g(){j.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
589
+ (b=CKEDITOR.document.getById("cke_"+a.name));var e=b.getDocument(),h=o(a,e,b,c,h||0),k=h.element,d=k.getFirst(),j=this;k.disableContextMenu();k.setAttribute("role","application");this.element=k;this._={editor:a,panel:h,parentElement:b,definition:c,document:e,iframe:d,children:[],dir:a.lang.dir};a.on("mode",g);a.on("resize",g);e.getWindow().on("resize",g)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,b)},getBlock:function(a){return this._.panel.getBlock(a)},
590
+ showBlock:function(a,b,c,h,g){var e=this._.panel,k=e.showBlock(a);this.allowBlur(!1);a=this._.editor.editable();this._.returnFocus=a.hasFocus?a:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);var d=this.element,a=this._.iframe,a=CKEDITOR.env.ie?a:new CKEDITOR.dom.window(a.$.contentWindow),j=d.getDocument(),i=this._.parentElement.getPositionedAncestor(),n=b.getDocumentPosition(j),j=i?i.getDocumentPosition(j):{x:0,y:0},m="rtl"==this._.dir,f=n.x+(h||0)-j.x,l=n.y+(g||0)-j.y;if(m&&(1==c||4==
591
+ c))f+=b.$.offsetWidth;else if(!m&&(2==c||3==c))f+=b.$.offsetWidth-1;if(3==c||4==c)l+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();d.setStyles({top:l+"px",left:0,display:""});d.setOpacity(0);d.getFirst().removeStyle("width");this._.editor.focusManager.add(a);this._.blurSet||(CKEDITOR.event.useCapture=!0,a.on("blur",function(a){this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&(this.visible&&!this._.activeChild)&&(delete this._.returnFocus,this.hide())},this),a.on("focus",
592
+ function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.event.useCapture=!1,this._.blurSet=1);e.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&this.onEscape(a)===false)return false},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){d.removeStyle("width");if(k.autoSize){var a=k.element.getDocument(),a=(CKEDITOR.env.webkit?k.element:a.getBody()).$.scrollWidth;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetWidth||0)-(d.$.clientWidth||
593
+ 0)+3));d.setStyle("width",a+10+"px");a=k.element.$.scrollHeight;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetHeight||0)-(d.$.clientHeight||0)+3));d.setStyle("height",a+"px");e._.currentBlock.element.setStyle("display","none").removeStyle("display")}else d.removeStyle("height");m&&(f=f-d.$.offsetWidth);d.setStyle("left",f+"px");var b=e.element.getWindow(),a=d.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,g=a.height||a.bottom-a.top,h=m?a.right:b.width-a.left,
594
+ i=m?b.width-a.right:a.left;m?h<c&&(f=i>c?f+c:b.width>c?f-a.left:f-a.right+b.width):h<c&&(f=i>c?f-c:b.width>c?f-a.right+b.width:f-a.left);c=a.top;b.height-a.top<g&&(l=c>g?l-g:b.height>g?l-a.bottom+b.height:l-a.top);if(CKEDITOR.env.ie){b=a=new CKEDITOR.dom.element(d.$.offsetParent);b.getName()=="html"&&(b=b.getDocument().getBody());b.getComputedStyle("direction")=="rtl"&&(f=CKEDITOR.env.ie8Compat?f-d.getDocument().getDocumentElement().$.scrollLeft*2:f-(a.$.scrollWidth-a.$.clientWidth))}var a=d.getFirst(),
595
+ j;(j=a.getCustomData("activePanel"))&&j.onHide&&j.onHide.call(this,1);a.setCustomData("activePanel",this);d.setStyles({top:l+"px",left:f+"px"});d.setOpacity(1)},this);e.isLoaded?a():e.onLoad=a;CKEDITOR.tools.setTimeout(function(){this.focus();this.allowBlur(true);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||
596
+ this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),
597
+ a.focus();delete this._.lastFocused;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!=a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,h,g,e){this._.activeChild==a&&a._.panel._.offsetParentId==c.getId()||(this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,h,g,e),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&
598
+ setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100))},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in i){var c=i[b];a?c.destroy():c.element.hide()}a&&(i={})})})();CKEDITOR.plugins.add("colorbutton",{requires:"panelbutton,floatpanel",init:function(c){function m(l,g,e,h){var k=new CKEDITOR.style(i["colorButton_"+g+"Style"]),j=CKEDITOR.tools.getNextId()+"_colorBox";c.ui.add(l,CKEDITOR.UI_PANELBUTTON,{label:e,title:e,modes:{wysiwyg:1},editorFocus:1,toolbar:"colors,"+h,allowedContent:k,requiredContent:k,panel:{css:CKEDITOR.skin.getPath("editor"),attributes:{role:"listbox","aria-label":f.panelTitle}},onBlock:function(a,b){b.autoSize=!0;b.element.addClass("cke_colorblock");
599
+ b.element.setHtml(o(a,g,j));b.element.getDocument().getBody().setStyle("overflow","hidden");CKEDITOR.ui.fire("ready",this);var d=b.keys,e="rtl"==c.lang.dir;d[e?37:39]="next";d[40]="next";d[9]="next";d[e?39:37]="prev";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d[32]="click"},onOpen:function(){var a=c.getSelection(),a=a&&a.getStartElement(),a=c.elementPath(a),b,a=a.block||a.blockLimit||c.document.getBody();do b=a&&a.getComputedStyle("back"==g?"background-color":"color")||"transparent";while("back"==g&&
600
+ "transparent"==b&&a&&(a=a.getParent()));if(!b||"transparent"==b)b="#ffffff";this._.panel._.iframe.getFrameDocument().getById(j).setStyle("background-color",b);return b}})}function o(l,g,e){var h=[],k=i.colorButton_colors.split(","),j=CKEDITOR.tools.addFunction(function(a,b){if("?"==a){var e=arguments.callee,d=function(a){this.removeListener("ok",d);this.removeListener("cancel",d);"ok"==a.name&&e(this.getContentElement("picker","selectedColor").getValue(),b)};c.openDialog("colordialog",function(){this.on("ok",
601
+ d);this.on("cancel",d)})}else{c.focus();l.hide();c.fire("saveSnapshot");c.removeStyle(new CKEDITOR.style(i["colorButton_"+b+"Style"],{color:"inherit"}));if(a){var f=i["colorButton_"+b+"Style"];f.childRule="back"==b?function(a){return n(a)}:function(a){return!(a.is("a")||a.getElementsByTag("a").count())||n(a)};c.applyStyle(new CKEDITOR.style(f,{color:a}))}c.fire("saveSnapshot")}});h.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',f.auto,'" onclick="CKEDITOR.tools.callFunction(',
602
+ j,",null,'",g,"');return false;\" href=\"javascript:void('",f.auto,'\')" role="option"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',e,'"></span></td><td colspan=7 align=center>',f.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(e=0;e<k.length;e++){0===e%8&&h.push("</tr><tr>");var a=k[e].split("/"),b=a[0],d=a[1]||b;a[1]||(b="#"+b.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));a=c.lang.colorbutton.colors[d]||
603
+ d;h.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',a,'" onclick="CKEDITOR.tools.callFunction(',j,",'",b,"','",g,"'); return false;\" href=\"javascript:void('",a,'\')" role="option"><span class="cke_colorbox" style="background-color:#',d,'"></span></a></td>')}(c.plugins.colordialog&&void 0===i.colorButton_enableMore||i.colorButton_enableMore)&&h.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',f.more,'" onclick="CKEDITOR.tools.callFunction(',
604
+ j,",'?','",g,"');return false;\" href=\"javascript:void('",f.more,"')\"",' role="option">',f.more,"</a></td>");h.push("</tr></table>");return h.join("")}function n(c){return"false"==c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var i=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(m("TextColor","fore",f.textColorTitle,10),m("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF";
605
+ CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.plugins.colordialog={requires:"dialog",init:function(b){b.addCommand("colordialog",new CKEDITOR.dialogCommand("colordialog"));CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(e,f){var c=function(a){this.removeListener("ok",c);this.removeListener("cancel",c);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;e.call(f,a)},d=function(a){a.on("ok",c);a.on("cancel",c)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)d(b._.storedDialogs.colordialog);
606
+ else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){d(this);b.onLoad=a;"function"==typeof a&&a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog);(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&&a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=
607
+ [],b=0,c=a.length;b<c;b++)f[a[b]]||(e.push(a[b]),f[a[b]]=1);e.length?CKEDITOR.scriptLoader.load(e,d):setTimeout(d,0)}})();CKEDITOR.config.templates_files=[CKEDITOR.getUrl("plugins/templates/templates/default.js")];CKEDITOR.config.templates_replaceContent=!0;CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(k){for(var g=k.config.menu_groups.split(","),m=k._.menuGroups={},l=k._.menuItems={},a=0;a<g.length;a++)m[g[a]]=a+1;k.addMenuGroup=function(b,a){m[b]=a||100};k.addMenuItem=function(a,c){m[c.group]&&(l[a]=new CKEDITOR.menuItem(this,a,c))};k.addMenuItems=function(a){for(var c in a)this.addMenuItem(c,a[c])};k.getMenuItem=function(a){return l[a]};k.removeMenuItem=function(a){delete l[a]}}});
608
+ (function(){function k(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.order?1:0})}var g='<span class="cke_menuitem"><a id="{id}" class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}" title="{title}" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem" aria-haspopup="{hasPopup}" aria-disabled="{disabled}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)g+=' onkeypress="return false;"';CKEDITOR.env.gecko&&
609
+ (g+=' onblur="this.style.cssText = this.style.cssText;"');var g=g+(' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},{index}); return false;">'),m=CKEDITOR.addTemplate("menuItem",g+'<span class="cke_menubutton_inner"><span class="cke_menubutton_icon"><span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span></span><span class="cke_menubutton_label">{label}</span>{arrowHtml}</span></a></span>'),
610
+ l=CKEDITOR.addTemplate("menuArrow",'<span class="cke_menuarrow"><span>{label}</span></span>');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),j=c.block.attributes=c.attributes||{};!j.role&&(j.role="menu");this._.panelDefinition=c},_:{onShow:function(){var a=
611
+ this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),j=this._.listeners;this.removeAll();for(var e=0;e<j.length;e++){var i=j[e](b,a,c);if(i)for(var f in i){var h=this.editor.getMenuItem(f);if(h&&(!h.command||this.editor.getCommand(h.command).state))h.state=i[f],this.add(h)}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):27==a&&this.hide(1);return!1},
612
+ onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,c=this.items[a];if(c=c.getItems&&c.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var j in c){var e=this.editor.getMenuItem(j);e&&(e.state=c[j],b.add(e))}var i=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+(""+a));setTimeout(function(){b.show(i,
613
+ 2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,c,j){if(!this.parent&&(this._.onShow(),!this.items.length))return;var b=b||("rtl"==this.editor.lang.dir?2:1),e=this.items,i=this.editor,f=this._.panel,h=this._.element;if(!f){f=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);f.onEscape=CKEDITOR.tools.bind(function(a){if(!1===
614
+ this._.onEscape(a))return!1},this);f.onShow=function(){f._.panel.getHolderElement().getParent().addClass("cke cke_reset_all")};f.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);h=f.addBlock(this.id,this._.panelDefinition.block);h.autoSize=!0;var d=h.keys;d[40]="next";d[9]="next";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d["rtl"==i.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";d[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(d[13]="mouseup");h=this._.element=
615
+ h.element;d=h.getDocument();d.getBody().setStyle("overflow","hidden");d.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,i.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=
616
+ this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}k(e);for(var d=i.elementPath(),d=['<div class="cke_menu'+(d&&d.direction()!=i.lang.dir?" cke_mixed_dir_content":"")+'" role="presentation">'],g=e.length,m=g&&e[0].group,l=0;l<g;l++){var n=e[l];m!=n.group&&(d.push('<div class="cke_menuseparator" role="separator"></div>'),m=n.group);n.render(this,l,d)}d.push("</div>");h.setHtml(d.join(""));CKEDITOR.ui.fire("ready",
617
+ this);this.parent?this.parent._.panel.showAsChild(f,this.id,a,b,c,j):f.showBlock(this.id,a,b,c,j);i.fire("menuShow",[f])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,c){var g=a.id+(""+
618
+ b),e="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,i=e==CKEDITOR.TRISTATE_ON?"on":e==CKEDITOR.TRISTATE_DISABLED?"disabled":"off",f=this.getItems,h="&#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",d=this.name;this.icon&&!/\./.test(this.icon)&&(d=this.icon);a={id:g,name:this.name,iconName:d,label:this.label,cls:this.className||"",state:i,hasPopup:f?"true":"false",disabled:e==CKEDITOR.TRISTATE_DISABLED,title:this.label,href:"javascript:void('"+(this.label||"").replace("'")+"')",
619
+ hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(d,"rtl"==this.editor.lang.dir,d==this.icon?null:this.icon,this.iconOffset),arrowHtml:f?l.output({label:h}):""};m.output(a,c)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(b){this.base.call(this,b,{panel:{className:"cke_menu_panel",attributes:{"aria-label":b.lang.contextmenu.options}}})},proto:{addTarget:function(b,d){if(CKEDITOR.env.opera&&!("oncontextmenu"in document.body)){var c;b.on("mousedown",function(a){a=a.data;if(2!=a.$.button)a.getKeystroke()==CKEDITOR.CTRL+1&&b.fire("contextmenu",a);else if(!d||!(CKEDITOR.env.mac?
620
+ a.$.metaKey:a.$.ctrlKey)){var g=a.getTarget();c||(g=g.getDocument(),c=g.createElement("input"),c.$.type="button",g.getBody().append(c));c.setAttribute("style","position:absolute;top:"+(a.$.clientY-2)+"px;left:"+(a.$.clientX-2)+"px;width:5px;height:5px;opacity:0.01")}});b.on("mouseup",function(a){c&&(c.remove(),c=void 0,b.fire("contextmenu",a.data))})}b.on("contextmenu",function(a){a=a.data;if(!d||!(CKEDITOR.env.webkit?e:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey)){a.preventDefault();var b=a.getTarget().getDocument(),
621
+ c=a.getTarget().getDocument().getDocumentElement(),f=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),h=f?a.$.clientX:a.$.pageX||b.x+a.$.clientX,i=f?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(c,null,h,i)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.opera)b.on("keypress",function(a){a=a.data;0===a.$.keyCode&&a.preventDefault()});if(CKEDITOR.env.webkit){var e,f=function(){e=0};b.on("keydown",function(a){e=CKEDITOR.env.mac?a.data.$.metaKey:
622
+ a.data.$.ctrlKey});b.on("keyup",f);b.on("contextmenu",f)}},open:function(b,d,c,e){this.editor.focus();b=b||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);this.show(b,d,c,e)}}})},beforeInit:function(b){var d=b.contextMenu=new CKEDITOR.plugins.contextMenu(b);b.on("contentDom",function(){d.addTarget(b.editable(),!1!==b.config.browserContextMenuOnCtrl)});b.addCommand("contextMenu",{exec:function(){b.contextMenu.open(b.document.getBody())}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");
623
+ b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){CKEDITOR.plugins.add("div",{requires:"dialog",init:function(a){if(!a.blockless){var c=a.lang.div,b="div(*)";CKEDITOR.dialog.isTabEnabled(a,"editdiv","advanced")&&(b+=";div[dir,id,lang,title]{*}");a.addCommand("creatediv",new CKEDITOR.dialogCommand("creatediv",{allowedContent:b,requiredContent:"div",contextSensitive:!0,refresh:function(a,c){this.setState("div"in(a.config.div_wrapTable?c.root:c.blockLimit).getDtd()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}}));a.addCommand("editdiv",
624
+ new CKEDITOR.dialogCommand("editdiv",{requiredContent:"div"}));a.addCommand("removediv",{requiredContent:"div",exec:function(a){function c(b){if((b=CKEDITOR.plugins.div.getSurroundDiv(a,b))&&!b.data("cke-div-added"))f.push(b),b.data("cke-div-added")}for(var b=a.getSelection(),g=b&&b.getRanges(),e,h=b.createBookmarks(),f=[],d=0;d<g.length;d++)e=g[d],e.collapsed?c(b.getStartElement()):(e=new CKEDITOR.dom.walker(e),e.evaluator=c,e.lastForward());for(d=0;d<f.length;d++)f[d].remove(!0);b.selectBookmarks(h)}});
625
+ a.ui.addButton&&a.ui.addButton("CreateDiv",{label:c.toolbar,command:"creatediv",toolbar:"blocks,50"});a.addMenuItems&&(a.addMenuItems({editdiv:{label:c.edit,command:"editdiv",group:"div",order:1},removediv:{label:c.remove,command:"removediv",group:"div",order:5}}),a.contextMenu&&a.contextMenu.addListener(function(b){return!b||b.isReadOnly()?null:CKEDITOR.plugins.div.getSurroundDiv(a)?{editdiv:CKEDITOR.TRISTATE_OFF,removediv:CKEDITOR.TRISTATE_OFF}:null}));CKEDITOR.dialog.add("creatediv",this.path+
626
+ "dialogs/div.js");CKEDITOR.dialog.add("editdiv",this.path+"dialogs/div.js")}}});CKEDITOR.plugins.div={getSurroundDiv:function(a,c){var b=a.elementPath(c);return a.elementPath(b.blockLimit).contains("div",1)}}})();CKEDITOR.plugins.add("resize",{init:function(b){var f,g,n,o,a=b.config,q=b.ui.spaceId("resizer"),h=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0==a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0==a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0==a.resize_minWidth&&(a.resize_minWidth=750);void 0==a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var c=null,i=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,
627
+ l=("both"==a.resize_dir||"vertical"==a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,j=function(d){var e=f,m=g,c=e+(d.data.$.screenX-n)*("rtl"==h?-1:1),d=m+(d.data.$.screenY-o);i&&(e=Math.max(a.resize_minWidth,Math.min(c,a.resize_maxWidth)));l&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(i?e:null,m)},k=function(){CKEDITOR.document.removeListener("mousemove",j);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",j),b.document.removeListener("mouseup",
628
+ k))},p=CKEDITOR.tools.addFunction(function(d){c||(c=b.getResizable());f=c.$.offsetWidth||0;g=c.$.offsetHeight||0;n=d.screenX;o=d.screenY;a.resize_minWidth>f&&(a.resize_minWidth=f);a.resize_minHeight>g&&(a.resize_minHeight=g);CKEDITOR.document.on("mousemove",j);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",j),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",function(){CKEDITOR.tools.removeFunction(p)});b.on("uiSpace",function(a){if("bottom"==
629
+ a.data.space){var e="";i&&!l&&(e=" cke_resizer_horizontal");!i&&l&&(e=" cke_resizer_vertical");var c='<span id="'+q+'" class="cke_resizer'+e+" cke_resizer_"+h+'" title="'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown="CKEDITOR.tools.callFunction('+p+', event)">'+("ltr"==h?"◢":"◣")+"</span>";"ltr"==h&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){function w(a){function d(){for(var b=i(),e=CKEDITOR.tools.clone(a.config.toolbarGroups)||n(a),f=0;f<e.length;f++){var k=e[f];if("/"!=k){"string"==typeof k&&(k=e[f]={name:k});var j,d=k.groups;if(d)for(var h=0;h<d.length;h++)j=d[h],(j=b[j])&&c(k,j);(j=b[k.name])&&c(k,j)}}return e}function i(){var b={},c,f,e;for(c in a.ui.items)f=a.ui.items[c],e=f.toolbar||"others",e=e.split(","),f=e[0],e=parseInt(e[1]||-1,10),b[f]||(b[f]=[]),b[f].push({name:c,order:e});for(f in b)b[f]=b[f].sort(function(b,
630
+ a){return b.order==a.order?0:0>a.order?-1:0>b.order?1:b.order<a.order?-1:1});return b}function c(c,e){if(e.length){c.items?c.items.push(a.ui.create("-")):c.items=[];for(var f;f=e.shift();)if(f="string"==typeof f?f:f.name,!b||-1==CKEDITOR.tools.indexOf(b,f))(f=a.ui.create(f))&&a.addFeature(f)&&c.items.push(f)}}function h(b){var a=[],e,d,h;for(e=0;e<b.length;++e)d=b[e],h={},"/"==d?a.push(d):CKEDITOR.tools.isArray(d)?(c(h,CKEDITOR.tools.clone(d)),a.push(h)):d.items&&(c(h,CKEDITOR.tools.clone(d.items)),
631
+ h.name=d.name,a.push(h));return a}var b=a.config.removeButtons,b=b&&b.split(","),e=a.config.toolbar;"string"==typeof e&&(e=a.config["toolbar_"+e]);return a.toolbar=e?h(e):d()}function n(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list",
632
+ "indent","blocks","align"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var t=function(){this.toolbars=[];this.focusCommandExecuted=!1};t.prototype.focus=function(){for(var a=0,d;d=this.toolbars[a++];)for(var i=0,c;c=d.items[i++];)if(c.focus){c.focus();return}};var x={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},
633
+ 100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var d,i=function(c,h){var b,e="rtl"==a.lang.dir,g=a.config.toolbarGroupCycling,g=void 0===g||g;switch(h){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==h?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-1],b.items.length)for(c=b.items[d?b.items.length-1:0];c&&!c.focus;)(c=d?c.previous:c.next)||(b=0);c&&c.focus();
634
+ return!1;case e?37:39:case 40:b=c;do b=b.next,!b&&g&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():i(c,9);return!1;case e?39:37:case 38:b=c;do b=b.previous,!b&&g&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(d=1,i(c,CKEDITOR.SHIFT+9),d=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==a.config.toolbarLocation){c.removeListener();a.toolbox=new t;var d=CKEDITOR.tools.getNextId(),
635
+ b=['<span id="',d,'" class="cke_voice_label">',a.lang.toolbar.toolbars,"</span>",'<span id="'+a.ui.spaceId("toolbox")+'" class="cke_toolbox" role="group" aria-labelledby="',d,'" onmousedown="return false;">'],d=!1!==a.config.toolbarStartupExpanded,e,g;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&b.push('<span class="cke_toolbox_main"'+(d?">":' style="display:none">'));for(var n=a.toolbox.toolbars,f=w(a),k=0;k<f.length;k++){var j,l=0,q,m=f[k],r;if(m)if(e&&(b.push("</span>"),
636
+ g=e=0),"/"===m)b.push('<span class="cke_toolbar_break"></span>');else{r=m.items||m;for(var s=0;s<r.length;s++){var o=r[s],u;if(o)if(o.type==CKEDITOR.UI_SEPARATOR)g=e&&o;else{u=!1!==o.canGroup;if(!l){j=CKEDITOR.tools.getNextId();l={id:j,items:[]};q=m.name&&(a.lang.toolbar.toolbarGroups[m.name]||m.name);b.push('<span id="',j,'" class="cke_toolbar"',q?' aria-labelledby="'+j+'_label"':"",' role="toolbar">');q&&b.push('<span id="',j,'_label" class="cke_voice_label">',q,"</span>");b.push('<span class="cke_toolbar_start"></span>');
637
+ var p=n.push(l)-1;0<p&&(l.previous=n[p-1],l.previous.next=l)}u?e||(b.push('<span class="cke_toolgroup" role="presentation">'),e=1):e&&(b.push("</span>"),e=0);j=function(c){c=c.render(a,b);p=l.items.push(c)-1;if(p>0){c.previous=l.items[p-1];c.previous.next=c}c.toolbar=l;c.onkey=i;c.onfocus=function(){a.toolbox.focusCommandExecuted||a.focus()}};g&&(j(g),g=0);j(o)}}e&&(b.push("</span>"),g=e=0);l&&b.push('<span class="cke_toolbar_end"></span></span>')}}a.config.toolbarCanCollapse&&b.push("</span>");if(a.config.toolbarCanCollapse&&
638
+ a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var v=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(v)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(b){var a=b.ui.space("toolbar_collapser"),c=a.getPrevious(),e=b.ui.space("contents"),d=c.getParent(),f=parseInt(e.$.style.height,10),h=d.$.offsetHeight,g=a.hasClass("cke_toolbox_collapser_min");g?(c.show(),a.removeClass("cke_toolbox_collapser_min"),a.setAttribute("title",
639
+ b.lang.toolbar.toolbarCollapse)):(c.hide(),a.addClass("cke_toolbox_collapser_min"),a.setAttribute("title",b.lang.toolbar.toolbarExpand));a.getFirst().setText(g?"▲":"◀");e.setStyle("height",f-(d.$.offsetHeight-h)+"px");b.fire("resize")},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");b.push('<a title="'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id="'+a.ui.spaceId("toolbar_collapser")+'" tabIndex="-1" class="cke_toolbox_collapser');
640
+ d||b.push(" cke_toolbox_collapser_min");b.push('" onclick="CKEDITOR.tools.callFunction('+v+')">','<span class="cke_arrow">&#9650;</span>',"</a>")}b.push("</span>");c.data.html+=b.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,g;for(a=this.toolbox.toolbars;d<a.length;d++){e=a[d].items;for(b=0;b<e.length;b++)g=e[b],g.clickFn&&CKEDITOR.tools.removeFunction(g.clickFn),g.keyDownFn&&CKEDITOR.tools.removeFunction(g.keyDownFn)}}});a.on("uiReady",function(){var c=a.ui.space("toolbox");
641
+ c&&a.focusManager.add(c,1)});a.addCommand("toolbarFocus",x);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('<span class="cke_toolbar_separator" role="separator"></span>');return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,d,i){var c=n(this.editor),h=0===d,b={name:a};if(i){if(i=CKEDITOR.tools.search(c,function(a){return a.name==i})){!i.groups&&(i.groups=
642
+ []);if(d&&(d=CKEDITOR.tools.indexOf(i.groups,d),0<=d)){i.groups.splice(d+1,0,a);return}h?i.groups.splice(0,0,a):i.groups.push(a);return}d=null}d&&(d=CKEDITOR.tools.indexOf(c,function(a){return a.name==d}));h?c.splice(0,0,a):"number"==typeof d?c.splice(d+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";CKEDITOR.config.toolbarLocation="top";(function(){var h;function m(a,d){function o(b){b=a._.elementsPath.list[b];if(b.equals(a.editable())){var e=a.createRange();e.selectNodeContents(b);e.select()}else a.getSelection().selectElement(b);a.focus()}function p(){i&&i.setHtml(n);delete a._.elementsPath.list}var l=a.ui.spaceId("path"),i,q="cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_";a._.elementsPath={idBase:q,filters:[]};d.html+='<span id="'+l+'_label" class="cke_voice_label">'+a.lang.elementspath.eleLabel+'</span><span id="'+l+'" class="cke_path" role="group" aria-labelledby="'+
643
+ l+'_label">'+n+"</span>";a.on("uiReady",function(){var b=a.ui.space("path");b&&a.focusManager.add(b,1)});var m=CKEDITOR.tools.addFunction(o),r=CKEDITOR.tools.addFunction(function(b,e){var c=a._.elementsPath.idBase,f,e=new CKEDITOR.dom.event(e);f="rtl"==a.lang.dir;switch(e.getKeystroke()){case f?39:37:case 9:return(f=CKEDITOR.document.getById(c+(b+1)))||(f=CKEDITOR.document.getById(c+"0")),f.focus(),!1;case f?37:39:case CKEDITOR.SHIFT+9:return(f=CKEDITOR.document.getById(c+(b-1)))||(f=CKEDITOR.document.getById(c+
644
+ (a._.elementsPath.list.length-1))),f.focus(),!1;case 27:return a.focus(),!1;case 13:case 32:return o(b),!1}return!0});a.on("selectionChange",function(b){for(var e=a.editable(),c=b.data.selection.getStartElement(),b=[],f=a._.elementsPath.list=[],d=a._.elementsPath.filters;c;){var j=0,g;g=c.data("cke-display-name")?c.data("cke-display-name"):c.data("cke-real-element-type")?c.data("cke-real-element-type"):c.getName();for(var k=0;k<d.length;k++){var h=d[k](c,g);if(!1===h){j=1;break}g=h||g}j||(j=f.push(c)-
645
+ 1,k=a.lang.elementspath.eleTitle.replace(/%1/,g),g=s.output({id:q+j,label:k,text:g,jsTitle:"javascript:void('"+g+"')",index:j,keyDownFn:r,clickFn:m}),b.unshift(g));if(c.equals(e))break;c=c.getParent()}i||(i=CKEDITOR.document.getById(l));e=i;e.setHtml(b.join("")+n);a.fire("elementsPathUpdate",{space:e})});a.on("readOnly",p);a.on("contentDomUnload",p);a.addCommand("elementsPathFocus",h);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}h={editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+
646
+ "0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}};var n='<span class="cke_path_empty">&nbsp;</span>',d="";if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)d+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(d+=' onblur="this.style.cssText = this.style.cssText;"');var s=CKEDITOR.addTemplate("pathItem",'<a id="{id}" href="{jsTitle}" tabindex="-1" class="cke_path_item" title="{label}"'+(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version?' onfocus="event.preventBubble();"':"")+d+' hidefocus="true" onkeydown="return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick="CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role="button" aria-label="{label}">{text}</a>');
647
+ CKEDITOR.plugins.add("elementspath",{init:function(a){a.on("uiSpace",function(d){"bottom"==d.data.space&&m(a,d.data)})}})})();(function(){function C(c,j,f){function b(b){if((d=a[b?"getFirst":"getLast"]())&&(!d.is||!d.isBlockBoundary())&&(m=j.root[b?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))&&(!m.is||!m.isBlockBoundary({br:1})))c.document.createElement("br")[b?"insertBefore":"insertAfter"](d)}for(var i=CKEDITOR.plugins.list.listToArray(j.root,f),e=[],h=0;h<j.contents.length;h++){var g=j.contents[h];if((g=g.getAscendant("li",!0))&&!g.getCustomData("list_item_processed"))e.push(g),CKEDITOR.dom.element.setMarker(f,
648
+ g,"list_item_processed",!0)}g=null;for(h=0;h<e.length;h++)g=e[h].getCustomData("listarray_index"),i[g].indent=-1;for(h=g+1;h<i.length;h++)if(i[h].indent>i[h-1].indent+1){e=i[h-1].indent+1-i[h].indent;for(g=i[h].indent;i[h]&&i[h].indent>=g;)i[h].indent+=e,h++;h--}var a=CKEDITOR.plugins.list.arrayToList(i,f,null,c.config.enterMode,j.root.getAttribute("dir")).listNode,d,m;b(!0);b();a.replace(j.root)}function x(c,j){this.name=c;this.context=this.type=j;this.allowedContent=j+" li";this.requiredContent=
649
+ j}function y(c,j,f,b){for(var i,e;i=c[b?"getLast":"getFirst"](D);)(e=i.getDirection(1))!==j.getDirection(1)&&i.setAttribute("dir",e),i.remove(),f?i[b?"insertBefore":"insertAfter"](f):j.append(i,b)}function A(c){var j;(j=function(f){var b=c[f?"getPrevious":"getNext"](q);b&&(b.type==CKEDITOR.NODE_ELEMENT&&b.is(c.getName()))&&(y(c,b,null,!f),c.remove(),c=b)})();j(1)}function B(c){return c.type==CKEDITOR.NODE_ELEMENT&&(c.getName()in CKEDITOR.dtd.$block||c.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[c.getName()]["#"]}
650
+ function v(c,j,f){c.fire("saveSnapshot");f.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var b=f.extractContents();j.trim(!1,!0);var i=j.createBookmark(),e=new CKEDITOR.dom.elementPath(j.startContainer),h=e.block,e=e.lastElement.getAscendant("li",1)||h,g=new CKEDITOR.dom.elementPath(f.startContainer),a=g.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$list);h?(h=h.getBogus())&&h.remove():g&&(h=g.getPrevious(q))&&u(h)&&h.remove();(h=b.getLast())&&(h.type==CKEDITOR.NODE_ELEMENT&&h.is("br"))&&
651
+ h.remove();(h=j.startContainer.getChild(j.startOffset))?b.insertBefore(h):j.startContainer.append(b);if(a&&(b=w(a)))e.contains(a)?(y(b,a.getParent(),a),b.remove()):e.append(b);for(;f.checkStartOfBlock()&&f.checkEndOfBlock();)g=f.startPath(),b=g.block,b.is("li")&&(e=b.getParent(),b.equals(e.getLast(q))&&b.equals(e.getFirst(q))&&(b=e)),f.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b.remove();f=f.clone();b=c.editable();f.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);f=new CKEDITOR.dom.walker(f);f.evaluator=
652
+ function(a){return q(a)&&!u(a)};(f=f.next())&&(f.type==CKEDITOR.NODE_ELEMENT&&f.getName()in CKEDITOR.dtd.$list)&&A(f);j.moveToBookmark(i);j.select();c.fire("saveSnapshot")}function w(c){return(c=c.getLast(q))&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in r?c:null}var r={ol:1,ul:1},E=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark(),q=function(c){return!(E(c)||F(c))},u=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(c,j,f,b,i){if(!r[c.getName()])return[];b||
653
+ (b=0);f||(f=[]);for(var e=0,h=c.getChildCount();e<h;e++){var g=c.getChild(e);g.type==CKEDITOR.NODE_ELEMENT&&g.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(g,j,f,b+1);if("li"==g.$.nodeName.toLowerCase()){var a={parent:c,indent:b,element:g,contents:[]};i?a.grandparent=i:(a.grandparent=c.getParent(),a.grandparent&&"li"==a.grandparent.$.nodeName.toLowerCase()&&(a.grandparent=a.grandparent.getParent()));j&&CKEDITOR.dom.element.setMarker(j,g,"listarray_index",f.length);f.push(a);for(var d=
654
+ 0,m=g.getChildCount(),k;d<m;d++)k=g.getChild(d),k.type==CKEDITOR.NODE_ELEMENT&&r[k.getName()]?CKEDITOR.plugins.list.listToArray(k,j,f,b+1,a.grandparent):a.contents.push(k)}}return f},arrayToList:function(c,j,f,b,i){f||(f=0);if(!c||c.length<f+1)return null;for(var e,h=c[f].parent.getDocument(),g=new CKEDITOR.dom.documentFragment(h),a=null,d=f,m=Math.max(c[f].indent,0),k=null,n,l,p=b==CKEDITOR.ENTER_P?"p":"div";;){var o=c[d];e=o.grandparent;n=o.element.getDirection(1);if(o.indent==m){if(!a||c[d].parent.getName()!=
655
+ a.getName())a=c[d].parent.clone(!1,1),i&&a.setAttribute("dir",i),g.append(a);k=a.append(o.element.clone(0,1));n!=a.getDirection(1)&&k.setAttribute("dir",n);for(e=0;e<o.contents.length;e++)k.append(o.contents[e].clone(1,1));d++}else if(o.indent==Math.max(m,0)+1)l=c[d-1].element.getDirection(1),d=CKEDITOR.plugins.list.arrayToList(c,null,d,b,l!=n?n:null),!k.getChildCount()&&(CKEDITOR.env.ie&&!(7<h.$.documentMode))&&k.append(h.createText(" ")),k.append(d.listNode),d=d.nextIndex;else if(-1==o.indent&&
656
+ !f&&e){r[e.getName()]?(k=o.element.clone(!1,!0),n!=e.getDirection(1)&&k.setAttribute("dir",n)):k=new CKEDITOR.dom.documentFragment(h);var a=e.getDirection(1)!=n,s=o.element,z=s.getAttribute("class"),u=s.getAttribute("style"),w=k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(b!=CKEDITOR.ENTER_BR||a||u||z),t,x=o.contents.length;for(e=0;e<x;e++){t=o.contents[e];if(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary()){a&&!t.getDirection()&&t.setAttribute("dir",n);var v=t,y=s.getAttribute("style");y&&v.setAttribute("style",
657
+ y.replace(/([^;])$/,"$1;")+(v.getAttribute("style")||""));z&&t.addClass(z)}else w&&(l||(l=h.createElement(p),a&&l.setAttribute("dir",n)),u&&l.setAttribute("style",u),z&&l.setAttribute("class",z),l.append(t.clone(1,1)));k.append(l||t.clone(1,1))}k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&d!=c.length-1&&((n=k.getLast())&&(n.type==CKEDITOR.NODE_ELEMENT&&"_moz"==n.getAttribute("type"))&&n.remove(),(!k.getLast(q)||!(n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in CKEDITOR.dtd.$block))&&k.append(h.createElement("br")));
658
+ n=k.$.nodeName.toLowerCase();!CKEDITOR.env.ie&&("div"==n||"p"==n)&&k.appendBogus();g.append(k);a=null;d++}else return null;l=null;if(c.length<=d||Math.max(c[d].indent,0)<m)break}if(j)for(c=g.getFirst();c;){if(c.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(j,c),c.getName()in CKEDITOR.dtd.$listItem&&(f=c,h=i=b=void 0,b=f.getDirection()))){for(i=f.getParent();i&&!(h=i.getDirection());)i=i.getParent();b==h&&f.removeAttribute("dir")}c=c.getNextSourceNode()}return{listNode:g,nextIndex:d}}};
659
+ var G=/^h[1-6]$/,D=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);x.prototype={exec:function(c){this.refresh(c,c.elementPath());var j=c.config,f=c.getSelection(),b=f&&f.getRanges(!0);if(this.state==CKEDITOR.TRISTATE_OFF){var i=c.editable();if(i.getFirst(q)){var e=1==b.length&&b[0];(j=e&&e.getEnclosedNode())&&(j.is&&this.type==j.getName())&&this.setState(CKEDITOR.TRISTATE_ON)}else j.enterMode==CKEDITOR.ENTER_BR?i.appendBogus():b[0].fixBlock(1,j.enterMode==CKEDITOR.ENTER_P?"p":"div"),f.selectRanges(b)}for(var j=
660
+ f.createBookmarks(!0),i=[],h={},b=b.createIterator(),g=0;(e=b.getNextRange())&&++g;){var a=e.getBoundaryNodes(),d=a.startNode,m=a.endNode;d.type==CKEDITOR.NODE_ELEMENT&&"td"==d.getName()&&e.setStartAt(a.startNode,CKEDITOR.POSITION_AFTER_START);m.type==CKEDITOR.NODE_ELEMENT&&"td"==m.getName()&&e.setEndAt(a.endNode,CKEDITOR.POSITION_BEFORE_END);e=e.createIterator();for(e.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;a=e.getNextParagraph();)if(!a.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(h,
661
+ a,"list_block",1);for(var k=c.elementPath(a),d=k.elements,m=0,k=k.blockLimit,n,l=d.length-1;0<=l&&(n=d[l]);l--)if(r[n.getName()]&&k.contains(n)){k.removeCustomData("list_group_object_"+g);(d=n.getCustomData("list_group_object"))?d.contents.push(a):(d={root:n,contents:[a]},i.push(d),CKEDITOR.dom.element.setMarker(h,n,"list_group_object",d));m=1;break}m||(m=k,m.getCustomData("list_group_object_"+g)?m.getCustomData("list_group_object_"+g).contents.push(a):(d={root:m,contents:[a]},CKEDITOR.dom.element.setMarker(h,
662
+ m,"list_group_object_"+g,d),i.push(d)))}}for(n=[];0<i.length;)if(d=i.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(r[d.root.getName()]){a=c;b=d;d=h;g=n;m=CKEDITOR.plugins.list.listToArray(b.root,d);k=[];for(e=0;e<b.contents.length;e++)if(l=b.contents[e],(l=l.getAscendant("li",!0))&&!l.getCustomData("list_item_processed"))k.push(l),CKEDITOR.dom.element.setMarker(d,l,"list_item_processed",!0);for(var l=b.root.getDocument(),p=void 0,o=void 0,e=0;e<k.length;e++){var s=k[e].getCustomData("listarray_index"),
663
+ p=m[s].parent;p.is(this.type)||(o=l.createElement(this.type),p.copyAttributes(o,{start:1,type:1}),o.removeStyle("list-style-type"),m[s].parent=o)}a=CKEDITOR.plugins.list.arrayToList(m,d,null,a.config.enterMode);d=void 0;m=a.listNode.getChildCount();for(e=0;e<m&&(d=a.listNode.getChild(e));e++)d.getName()==this.type&&g.push(d);a.listNode.replace(b.root)}else{m=c;a=d;e=n;k=a.contents;b=a.root.getDocument();g=[];1==k.length&&k[0].equals(a.root)&&(d=b.createElement("div"),k[0].moveChildren&&k[0].moveChildren(d),
664
+ k[0].append(d),k[0]=d);a=a.contents[0].getParent();for(l=0;l<k.length;l++)a=a.getCommonAncestor(k[l].getParent());p=m.config.useComputedState;m=d=void 0;p=void 0===p||p;for(l=0;l<k.length;l++)for(o=k[l];s=o.getParent();){if(s.equals(a)){g.push(o);!m&&o.getDirection()&&(m=1);o=o.getDirection(p);null!==d&&(d=d&&d!=o?null:o);break}o=s}if(!(1>g.length)){k=g[g.length-1].getNext();l=b.createElement(this.type);e.push(l);for(p=e=void 0;g.length;)e=g.shift(),p=b.createElement("li"),e.is("pre")||G.test(e.getName())?
665
+ e.appendTo(p):(e.copyAttributes(p),d&&e.getDirection()&&(p.removeStyle("direction"),p.removeAttribute("dir")),e.moveChildren(p),e.remove()),p.appendTo(l);d&&m&&l.setAttribute("dir",d);k?l.insertBefore(k):l.appendTo(a)}}else this.state==CKEDITOR.TRISTATE_ON&&r[d.root.getName()]&&C.call(this,c,d,h);for(l=0;l<n.length;l++)A(n[l]);CKEDITOR.dom.element.clearAllMarkers(h);f.selectBookmarks(j);c.focus()},refresh:function(c,j){var f=j.contains(r,1),b=j.blockLimit||j.root;f&&b.contains(f)?this.setState(f.is(this.type)?
666
+ CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{requires:"indent",init:function(c){c.blockless||(c.addCommand("numberedlist",new x("numberedlist","ol")),c.addCommand("bulletedlist",new x("bulletedlist","ul")),c.ui.addButton&&(c.ui.addButton("NumberedList",{label:c.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),c.ui.addButton("BulletedList",{label:c.lang.list.bulletedlist,command:"bulletedlist",directional:!0,
667
+ toolbar:"list,20"})),c.on("key",function(j){var f=j.data.keyCode;if(c.mode=="wysiwyg"&&f in{8:1,46:1}){var b=c.getSelection().getRanges()[0],i=b.startPath();if(b.collapsed){var i=new CKEDITOR.dom.elementPath(b.startContainer),e=f==8,h=c.editable(),g=new CKEDITOR.dom.walker(b.clone());g.evaluator=function(a){return q(a)&&!u(a)};g.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};f=b.clone();if(e){var a,d;if((a=i.contains(r))&&b.checkBoundaryOfElement(a,CKEDITOR.START)&&
668
+ (a=a.getParent())&&a.is("li")&&(a=w(a))){d=a;a=a.getPrevious(q);f.moveToPosition(a&&u(a)?a:d,CKEDITOR.POSITION_BEFORE_START)}else{g.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START);g.range.setEnd(b.startContainer,b.startOffset);if((a=g.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in r||a.is("li"))){if(!a.is("li")){g.range.selectNodeContents(a);g.reset();g.evaluator=B;a=g.previous()}d=a;f.moveToElementEditEnd(d)}}if(d){v(c,f,b);j.cancel()}else if((f=i.contains(r))&&b.checkBoundaryOfElement(f,
669
+ CKEDITOR.START)){d=f.getFirst(q);if(b.checkBoundaryOfElement(d,CKEDITOR.START)){a=f.getPrevious(q);if(w(d)){if(a){b.moveToElementEditEnd(a);b.select()}}else c.execCommand("outdent");j.cancel()}}}else if(d=i.contains("li")){g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);h=(i=d.getLast(q))&&B(i)?i:d;d=0;if((a=g.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in r&&a.equals(i)){d=1;a=g.next()}else b.checkBoundaryOfElement(h,CKEDITOR.END)&&(d=1);if(d&&a){b=b.clone();b.moveToElementEditStart(a);v(c,
670
+ f,b);j.cancel()}}else{g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);if((a=g.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is(r)){a=a.getFirst(q);if(i.block&&b.checkStartOfBlock()&&b.checkEndOfBlock()){i.block.remove();b.moveToElementEditStart(a);b.select()}else if(w(a)){b.moveToElementEditStart(a);b.select()}else{b=b.clone();b.moveToElementEditStart(a);v(c,f,b)}j.cancel()}}setTimeout(function(){c.selectionChange(1)})}}}))}})})();(function(){function p(d,i){this.name=i;var a=this.useIndentClasses=d.config.indentClasses&&0<d.config.indentClasses.length;if(a){this.classNameRegex=RegExp("(?:^|\\s+)("+d.config.indentClasses.join("|")+")(?=$|\\s)");this.indentClassMap={};for(var f=0;f<d.config.indentClasses.length;f++)this.indentClassMap[d.config.indentClasses[f]]=f+1}this.startDisabled="outdent"==i;this.allowedContent={"div h1 h2 h3 h4 h5 h6 ol p pre ul":{propertiesOnly:!0,styles:!a?"margin-left,margin-right":null,classes:a?d.config.indentClasses:
671
+ null}};this.requiredContent=["p"+(a?"("+d.config.indentClasses[0]+")":"{margin-left}"),"li"]}function r(d,i){return"ltr"==(i||d.getComputedStyle("direction"))?"margin-left":"margin-right"}function q(d){return d.type==CKEDITOR.NODE_ELEMENT&&d.is("li")}var m={ol:1,ul:1},t=CKEDITOR.dom.walker.whitespaces(!0),u=CKEDITOR.dom.walker.bookmark(!1,!0);p.prototype={context:"p",refresh:function(d,i){var a=i&&i.contains(m),f=i.block||i.blockLimit;a?this.setState(CKEDITOR.TRISTATE_OFF):!this.useIndentClasses&&
672
+ "indent"==this.name?this.setState(CKEDITOR.TRISTATE_OFF):f?this.useIndentClasses?(a=f.$.className.match(this.classNameRegex),f=0,a&&(a=a[1],f=this.indentClassMap[a]),"outdent"==this.name&&!f||"indent"==this.name&&f==d.config.indentClasses.length?this.setState(CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_OFF)):(a=parseInt(f.getStyle(r(f)),10),isNaN(a)&&(a=0),0>=a?this.setState(CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_OFF)):this.setState(CKEDITOR.TRISTATE_DISABLED)},
673
+ exec:function(d){function i(n){for(var j=l.startContainer,b=l.endContainer;j&&!j.getParent().equals(n);)j=j.getParent();for(;b&&!b.getParent().equals(n);)b=b.getParent();if(j&&b){for(var c=j,j=[],a=!1;!a;)c.equals(b)&&(a=!0),j.push(c),c=c.getNext();if(!(1>j.length)){c=n.getParents(!0);for(b=0;b<c.length;b++)if(c[b].getName&&m[c[b].getName()]){n=c[b];break}for(var c="indent"==e.name?1:-1,b=j[0],j=j[j.length-1],a=CKEDITOR.plugins.list.listToArray(n,o),f=a[j.getCustomData("listarray_index")].indent,
674
+ b=b.getCustomData("listarray_index");b<=j.getCustomData("listarray_index");b++)if(a[b].indent+=c,0<c){var k=a[b].parent;a[b].parent=new CKEDITOR.dom.element(k.getName(),k.getDocument())}for(b=j.getCustomData("listarray_index")+1;b<a.length&&a[b].indent>f;b++)a[b].indent+=c;j=CKEDITOR.plugins.list.arrayToList(a,o,null,d.config.enterMode,n.getDirection());if("outdent"==e.name){var i;if((i=n.getParent())&&i.is("li"))for(var c=j.listNode.getChildren(),h=[],g,b=c.count()-1;0<=b;b--)(g=c.getItem(b))&&(g.is&&
675
+ g.is("li"))&&h.push(g)}j&&j.listNode.replace(n);if(h&&h.length)for(b=0;b<h.length;b++){for(g=n=h[b];(g=g.getNext())&&g.is&&g.getName()in m;)CKEDITOR.env.ie&&!n.getFirst(function(b){return t(b)&&u(b)})&&n.append(l.document.createText(" ")),n.append(g);n.insertAfter(i)}}}}function a(){var a=l.createIterator(),e=d.config.enterMode;a.enforceRealBlocks=!0;a.enlargeBr=e!=CKEDITOR.ENTER_BR;for(var b;b=a.getNextParagraph(e==CKEDITOR.ENTER_P?"p":"div");)f(b)}function f(a,g){if(a.getCustomData("indent_processed"))return!1;
676
+ if(e.useIndentClasses){var b=a.$.className.match(e.classNameRegex),c=0;b&&(b=b[1],c=e.indentClassMap[b]);"outdent"==e.name?c--:c++;if(0>c)return!1;c=Math.min(c,d.config.indentClasses.length);c=Math.max(c,0);a.$.className=CKEDITOR.tools.ltrim(a.$.className.replace(e.classNameRegex,""));0<c&&a.addClass(d.config.indentClasses[c-1])}else{b=r(a,g);c=parseInt(a.getStyle(b),10);isNaN(c)&&(c=0);var f=d.config.indentOffset||40,c=c+("indent"==e.name?1:-1)*f;if(0>c)return!1;c=Math.max(c,0);c=Math.ceil(c/f)*
677
+ f;a.setStyle(b,c?c+(d.config.indentUnit||"px"):"");""===a.getAttribute("style")&&a.removeAttribute("style")}CKEDITOR.dom.element.setMarker(o,a,"indent_processed",1);return!0}for(var e=this,o={},g=d.getSelection(),v=g.createBookmarks(1),l,p=(g&&g.getRanges(1)).createIterator();l=p.getNextRange();){for(var h=l.getCommonAncestor();h&&!(h.type==CKEDITOR.NODE_ELEMENT&&m[h.getName()]);)h=h.getParent();if(!h){var k=l.getEnclosedNode();k&&(k.type==CKEDITOR.NODE_ELEMENT&&k.getName()in m)&&(l.setStartAt(k,
678
+ CKEDITOR.POSITION_AFTER_START),l.setEndAt(k,CKEDITOR.POSITION_BEFORE_END),h=k)}h&&(l.startContainer.type==CKEDITOR.NODE_ELEMENT&&l.startContainer.getName()in m)&&(k=new CKEDITOR.dom.walker(l),k.evaluator=q,l.startContainer=k.next());h&&(l.endContainer.type==CKEDITOR.NODE_ELEMENT&&l.endContainer.getName()in m)&&(k=new CKEDITOR.dom.walker(l),k.evaluator=q,l.endContainer=k.previous());if(h){var k=h.getFirst(q),w=!!k.getNext(q),s=l.startContainer;(!k.equals(s)&&!k.contains(s)||!("indent"==e.name||e.useIndentClasses||
679
+ parseInt(h.getStyle(r(h)),10))||!f(h,!w&&k.getDirection()))&&i(h)}else a()}CKEDITOR.dom.element.clearAllMarkers(o);d.forceNextSelectionCheck();g.selectBookmarks(v)}};CKEDITOR.plugins.add("indent",{requires:"list",onLoad:function(){(CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat)&&CKEDITOR.addCss(".cke_editable ul,.cke_editable ol{\tmargin-left: 0px;\tpadding-left: 40px;}")},init:function(d){d.blockless||(d.addCommand("indent",new p(d,"indent")),d.addCommand("outdent",new p(d,"outdent")),d.ui.addButton&&
680
+ (d.ui.addButton("Indent",{label:d.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),d.ui.addButton("Outdent",{label:d.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"})),d.on("dirChanged",function(i){var a=d.createRange();a.setStartBefore(i.data.node);a.setEndAfter(i.data.node);for(var f=new CKEDITOR.dom.walker(a),e;e=f.next();)if(e.type==CKEDITOR.NODE_ELEMENT)if(!e.equals(i.data.node)&&e.getDirection()){a.setStartAfter(e);f=new CKEDITOR.dom.walker(a)}else{var o=
681
+ d.config.indentClasses;if(o)for(var g=i.data.dir=="ltr"?["_rtl",""]:["","_rtl"],m=0;m<o.length;m++)if(e.hasClass(o[m]+g[0])){e.removeClass(o[m]+g[0]);e.addClass(o[m]+g[1])}o=e.getStyle("margin-right");g=e.getStyle("margin-left");o?e.setStyle("margin-left",o):e.removeStyle("margin-left");g?e.setStyle("margin-right",g):e.removeStyle("margin-right")}}))}})})();(function(){function m(a,d,b){b=a.config.forceEnterMode||b;if("wysiwyg"!=a.mode)return!1;d||(d=a.config.enterMode);a.elementPath().isContextFor("p")||(d=CKEDITOR.ENTER_BR,b=1);a.fire("saveSnapshot");d==CKEDITOR.ENTER_BR?n(a,d,null,b):o(a,d,null,b);a.fire("saveSnapshot");return!0}function p(a){for(var a=a.getSelection().getRanges(!0),d=a.length-1;0<d;d--)a[d].deleteContents();return a[0]}CKEDITOR.plugins.add("enterkey",{requires:"indent",init:function(a){a.addCommand("enter",{modes:{wysiwyg:1},editorFocus:!1,
682
+ exec:function(a){m(a)}});a.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(a){"wysiwyg"==a.mode&&m(a,a.config.shiftEnterMode,1)}});a.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var s=CKEDITOR.dom.walker.whitespaces(),t=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,d,b,i){if(b=b||p(a)){var f=b.document,j=b.checkStartOfBlock(),h=b.checkEndOfBlock(),c=a.elementPath(b.startContainer).block;if(j&&h){if(c&&(c.is("li")||c.getParent().is("li"))){a.execCommand("outdent");
683
+ return}if(c&&c.getParent().is("blockquote")){c.breakParent(c.getParent());c.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getPrevious().remove();c.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getNext().remove();b.moveToElementEditStart(c);b.select();return}}else if(c&&c.is("pre")&&!h){n(a,d,b,i);return}var c=d==CKEDITOR.ENTER_DIV?"div":"p",l=b.splitBlock(c);if(l){var d=l.previousBlock,a=l.nextBlock,j=l.wasStartOfBlock,h=l.wasEndOfBlock,g;if(a)g=a.getParent(),g.is("li")&&(a.breakParent(g),
684
+ a.move(a.getNext(),1));else if(d&&(g=d.getParent())&&g.is("li"))d.breakParent(g),g=d.getNext(),b.moveToElementEditStart(g),d.move(d.getPrevious());if(!j&&!h){if(a.is("li")){var e=b.clone();e.selectNodeContents(a);e=new CKEDITOR.dom.walker(e);e.evaluator=function(a){return!(t(a)||s(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))};(g=e.next())&&(g.type==CKEDITOR.NODE_ELEMENT&&g.is("ul","ol"))&&(CKEDITOR.env.ie?f.createText(" "):f.createElement("br")).insertBefore(g)}a&&
685
+ b.moveToElementEditStart(a)}else{var k;if(d){if(d.is("li")||!q.test(d.getName())&&!d.is("pre"))e=d.clone()}else a&&(e=a.clone());e?i&&!e.is("li")&&e.renameNode(c):g&&g.is("li")?e=g:(e=f.createElement(c),d&&(k=d.getDirection())&&e.setAttribute("dir",k));if(f=l.elementPath){i=0;for(g=f.elements.length;i<g;i++){k=f.elements[i];if(k.equals(f.block)||k.equals(f.blockLimit))break;CKEDITOR.dtd.$removeEmpty[k.getName()]&&(k=k.clone(),e.moveChildren(k),e.append(k))}}CKEDITOR.env.ie||e.appendBogus();e.getParent()||
686
+ b.insertNode(e);e.is("li")&&e.removeAttribute("value");if(CKEDITOR.env.ie&&j&&(!h||!d.getChildCount()))b.moveToElementEditStart(h?d:e),b.select();b.moveToElementEditStart(j&&!h?a:e)}b.select();b.scrollIntoView()}}},enterBr:function(a,d,b,i){if(b=b||p(a)){var f=b.document,j=b.checkEndOfBlock(),h=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),c=h.block,h=c&&h.block.getName();!i&&"li"==h?o(a,d,b,i):(!i&&j&&q.test(h)?(j=c.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",
687
+ j),f.insertAfter(c),b.setStart(f,0)):(f.createElement("br").insertAfter(c),CKEDITOR.env.gecko&&f.createText("").insertAfter(c),b.setStartAt(c.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(c="pre"==h&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),b.deleteContents(),b.insertNode(c),CKEDITOR.env.ie?b.setStartAt(c,CKEDITOR.POSITION_AFTER_END):(f.createText("").insertAfter(c),j&&c.getParent().appendBogus(),c.getNext().$.nodeValue=
688
+ "",b.setStartAt(c.getNext(),CKEDITOR.POSITION_AFTER_START))),b.collapse(!0),b.select(),b.scrollIntoView())}}};var r=CKEDITOR.plugins.enterkey,n=r.enterBr,o=r.enterBlock,q=/^h[1-6]$/})();(function(){function j(a,b){var d={},e=[],f={nbsp:" ",shy:"­",gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,h){var c=b?"&"+h+";":f[h];d[c]=b?f[h]:"&"+h+";";e.push(c);return""});if(!b&&a){var a=a.split(","),c=document.createElement("div"),g;c.innerHTML="&"+a.join(";&")+";";g=c.innerHTML;c=null;for(c=0;c<g.length;c++){var i=g.charAt(c);d[i]="&"+a[c]+";";e.push(i)}}d.regex=e.join(b?"|":"");return d}CKEDITOR.plugins.add("entities",{afterInit:function(a){var b=
689
+ a.config;if(a=(a=a.dataProcessor)&&a.htmlFilter){var d=[];!1!==b.basicEntities&&d.push("nbsp,gt,lt,amp");b.entities&&(d.length&&d.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
690
+ b.entities_latin&&d.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml"),b.entities_greek&&d.push("Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv"),
691
+ b.entities_additional&&d.push(b.entities_additional));var e=j(d.join(",")),f=e.regex?"["+e.regex+"]":"a^";delete e.regex;b.entities&&b.entities_processNumerical&&(f="[^ -~]|"+f);var f=RegExp(f,"g"),c=function(a){return b.entities_processNumerical=="force"||!e[a]?"&#"+a.charCodeAt(0)+";":e[a]},g=j("nbsp,gt,lt,amp,shy",!0),i=RegExp(g.regex,"g"),k=function(a){return g[a]};a.addRules({text:function(a){return a.replace(i,k).replace(f,c)}})}}})})();CKEDITOR.config.basicEntities=!0;
692
+ CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0;CKEDITOR.config.entities_additional="#39";CKEDITOR.plugins.add("popup");
693
+ CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{popup:function(e,a,b,d){a=a||"80%";b=b||"70%";"string"==typeof a&&(1<a.length&&"%"==a.substr(a.length-1,1))&&(a=parseInt(window.screen.width*parseInt(a,10)/100,10));"string"==typeof b&&(1<b.length&&"%"==b.substr(b.length-1,1))&&(b=parseInt(window.screen.height*parseInt(b,10)/100,10));640>a&&(a=640);420>b&&(b=420);var f=parseInt((window.screen.height-b)/2,10),g=parseInt((window.screen.width-a)/2,10),d=(d||"location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes")+",width="+
694
+ a+",height="+b+",top="+f+",left="+g,c=window.open("",null,d,!0);if(!c)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(c.moveTo(g,f),c.resizeTo(a,b)),c.focus(),c.location.href=e}catch(h){window.open(e,null,d,!0)}return!0}});(function(){function g(a,c){var d=[];if(c)for(var b in c)d.push(b+"="+encodeURIComponent(c[b]));else return a;return a+(-1!=a.indexOf("?")?"&":"?")+d.join("&")}function i(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function k(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowserSe=this;var d=c.config["filebrowser"+i(a.getName())+"WindowWidth"]||c.config.filebrowserWindowWidth||"80%",a=c.config["filebrowser"+i(a.getName())+"WindowHeight"]||c.config.filebrowserWindowHeight||"70%",
695
+ b=this.filebrowser.params||{};b.CKEditor=c.name;b.CKEditorFuncNum=c._.filebrowserFn;b.langCode||(b.langCode=c.langCode);b=g(this.filebrowser.url,b);c.popup(b,d,a,c.config.filebrowserWindowFeatures||c.config.fileBrowserWindowFeatures)}function l(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=this;return!a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value||!a.getContentElement(this["for"][0],this["for"][1]).getAction()?!1:!0}function m(a,c,d){var b=d.params||{};
696
+ b.CKEditor=a.name;b.CKEditorFuncNum=a._.filebrowserFn;b.langCode||(b.langCode=a.langCode);c.action=g(d.url,b);c.filebrowser=d}function j(a,c,d,b){if(b&&b.length)for(var e,g=b.length;g--;)if(e=b[g],("hbox"==e.type||"vbox"==e.type||"fieldset"==e.type)&&j(a,c,d,e.children),e.filebrowser)if("string"==typeof e.filebrowser&&(e.filebrowser={action:"fileButton"==e.type?"QuickUpload":"Browse",target:e.filebrowser}),"Browse"==e.filebrowser.action){var f=e.filebrowser.url;void 0===f&&(f=a.config["filebrowser"+
697
+ i(c)+"BrowseUrl"],void 0===f&&(f=a.config.filebrowserBrowseUrl));f&&(e.onClick=k,e.filebrowser.url=f,e.hidden=!1)}else if("QuickUpload"==e.filebrowser.action&&e["for"]&&(f=e.filebrowser.url,void 0===f&&(f=a.config["filebrowser"+i(c)+"UploadUrl"],void 0===f&&(f=a.config.filebrowserUploadUrl)),f)){var h=e.onClick;e.onClick=function(a){var b=a.sender;return h&&h.call(b,a)===false?false:l.call(b,a)};e.filebrowser.url=f;e.hidden=!1;m(a,d.getContents(e["for"][0]).get(e["for"][1]),e.filebrowser)}}function h(a,
698
+ c,d){if(-1!==d.indexOf(";")){for(var d=d.split(";"),b=0;b<d.length;b++)if(h(a,c,d[b]))return!0;return!1}return(a=a.getContents(c).get(d).filebrowser)&&a.url}function n(a,c){var d=this._.filebrowserSe.getDialog(),b=this._.filebrowserSe["for"],e=this._.filebrowserSe.filebrowser.onSelect;b&&d.getContentElement(b[0],b[1]).reset();if(!("function"==typeof c&&!1===c.call(this._.filebrowserSe))&&!(e&&!1===e.call(this._.filebrowserSe,a,c))&&("string"==typeof c&&c&&alert(c),a&&(b=this._.filebrowserSe,d=b.getDialog(),
699
+ b=b.filebrowser.target||null)))if(b=b.split(":"),e=d.getContentElement(b[0],b[1]))e.setValue(a),d.selectPage(b[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(n,a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){for(var c=a.data.definition,d,b=0;b<c.contents.length;++b)if(d=c.contents[b])j(a.editor,a.data.name,c,d.elements),d.hidden&&d.filebrowser&&(d.hidden=
700
+ !h(c,d.id,d.filebrowser))})})();CKEDITOR.plugins.add("find",{requires:"dialog",init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&&(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("replace",this.path+
701
+ "dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}};(function(){function g(a,b){var c=j.exec(a),d=j.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var i=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,j=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,l={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new i(a)).rules,a=b.attributes,d=c.width,c=
702
+ c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}},k=CKEDITOR.plugins.add("fakeobjects",{afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(l)}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+
703
+ "images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new i,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),
704
+ "data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+"images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new i,c=d.width,d=d.height,void 0!=c&&(a.rules.width=h(c)),void 0!=d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement=function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;
705
+ var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width"),a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){function d(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||f.test(a.src||"")}function e(a,b){return a.createFakeParserElement(b,"cke_flash","flash",!0)}var f=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},
706
+ init:function(a){var b="object[classid,codebase,height,hspace,vspace,width];param[name,value];embed[height,hspace,pluginspage,src,type,vspace,width]";CKEDITOR.dialog.isTabEnabled(a,"flash","properties")&&(b+=";object[align]; embed[allowscriptaccess,quality,scale,wmode]");CKEDITOR.dialog.isTabEnabled(a,"flash","advanced")&&(b+=";object[id]{*}; embed[bgcolor]{*}(*)");a.addCommand("flash",new CKEDITOR.dialogCommand("flash",{allowedContent:b,requiredContent:"embed"}));a.ui.addButton&&a.ui.addButton("Flash",
707
+ {label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},
708
+ afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!d(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!d(b.children[c]))break;return e(a,b)}return null}return e(a,b)},"cke:embed":function(b){return!d(b)?null:e(a,b)}}},5)}})})();CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1});(function(){function t(a){var e="left"==a?"pageXOffset":"pageYOffset";return e in g.$?g.$[e]:CKEDITOR.document.$.documentElement["left"==a?"scrollLeft":"scrollTop"]}function p(a){var e,f=a.config,p=f.floatSpaceDockedOffsetX||0,o=f.floatSpaceDockedOffsetY||0,u=f.floatSpacePinnedOffsetX||0,q=f.floatSpacePinnedOffsetY||0,i=function(c){function f(a,c,b){d.setStyle(c,s(b));d.setStyle("position",a)}function j(a){var c=r.getDocumentPosition();switch(a){case "top":f("absolute","top",c.y-l-o);break;case "pin":f("fixed",
709
+ "top",q);break;case "bottom":f("absolute","top",c.y+(b.height||b.bottom-b.top)+o)}e=a}var r=a.editable();if(r){"focus"==c.name&&d.show();d.removeStyle("left");d.removeStyle("right");var k=d.getClientRect(),b=r.getClientRect(),l=k.height,n=t("left");if(e){"top"==e&&k.top<q?j("pin"):"pin"==e?b.top>o+l?j("top"):b.bottom-k.bottom<l&&j("bottom"):"bottom"==e&&(b.top>o+l?j("top"):b.bottom>2*l+q&&j("pin"));var c=g.getViewPaneSize(),h=c.width/2,h=0<b.left&&b.right<c.width&&b.width>k.width?"rtl"==a.config.contentsLangDirection?
710
+ "right":"left":h-b.left>b.right-h?"left":"right",m;k.width>c.width?(h="left",m=0):(m="left"==h?0<b.left?b.left:0:b.right<c.width?c.width-b.right:0,m+k.width>c.width&&(h="left"==h?"right":"left",m=0));d.setStyle(h,s(("pin"==e?u:p)+m+("pin"==e?0:"left"==h?n:-n)))}else e="pin",j("pin"),i(c)}},f=CKEDITOR.document.getBody(),v={id:a.id,name:a.name,langDir:a.lang.dir,langCode:a.langCode},n=a.fire("uiSpace",{space:"top",html:""}).html;if(n){var d=f.append(CKEDITOR.dom.element.createFromHtml(w.output(CKEDITOR.tools.extend({topId:a.ui.spaceId("top"),
711
+ content:n,style:"display:none;z-index:"+(a.config.baseFloatZIndex-1)},v))));d.unselectable();d.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});a.on("focus",function(a){i(a);g.on("scroll",i);g.on("resize",i)});a.on("blur",function(){d.hide();g.removeListener("scroll",i);g.removeListener("resize",i)});a.on("destroy",function(){g.removeListener("scroll",i);g.removeListener("resize",i);d.clearCustomData();d.remove()});a.focusManager.hasFocus&&d.show();a.focusManager.add(d,
712
+ 1)}}var w=CKEDITOR.addTemplate("floatcontainer",'<div id="cke_{name}" class="cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" title="'+(CKEDITOR.env.gecko?" ":"")+'" lang="{langCode}" role="application" style="{style}"><div class="cke_inner"><div id="{topId}" class="cke_top" role="presentation">{content}</div></div></div>');CKEDITOR.plugins.add("floatingspace",{init:function(a){a.on("loaded",function(){p(a)},null,null,20)}});var g=
713
+ CKEDITOR.document.getWindow(),s=CKEDITOR.tools.cssLength})();CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var e=CKEDITOR.addTemplate("panel-list",'<ul role="presentation" class="cke_panel_list">{items}</ul>'),f=CKEDITOR.addTemplate("panel-list-item",'<li id="{id}" class="cke_panel_listItem" role=presentation><a id="{id}_option" _cke_focus=1 hidefocus=true title="{title}" href="javascript:void(\'{val}\')" {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role="option">{text}</a></li>'),g=CKEDITOR.addTemplate("panel-list-group",
714
+ '<h1 id="{id}" class="cke_panel_grouptitle" role="presentation" >{label}</h1>');CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))};CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){var b=b||{},c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0);!c.role&&(c.role="listbox");this.base.apply(this,arguments);c=this.keys;c[40]="next";
715
+ c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(c[13]="mouseup");this._.pendingHtml=[];this._.pendingList=[];this._.items={};this._.groups={}},_:{close:function(){if(this._.started){var a=e.output({items:this._.pendingList.join("")});this._.pendingList=[];this._.pendingHtml.push(a);delete this._.started}},getClick:function(){this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,
716
+ b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;a={id:d,val:a,onclick:CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:c||a,text:b||a};this._.pendingList.push(f.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(g.output({id:b,label:a}))},commit:function(){this._.close();
717
+ this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=
718
+ this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();var a=this._.items[a],b=this.element.getDocument().getById(a);b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument(),
719
+ a=this._.items[a],c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=
720
+ -1;if(a){for(var b=this.element.getDocument().getById(this._.items[a]).getFirst(),a=this.element.getElementsByTag("a"),c,d=-1;c=a.getItem(++d);)if(c.equals(b)){this._.focusIndex=d;break}setTimeout(function(){b.focus()},0)}}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
721
+ (function(){var c='<span id="{id}" class="cke_combo cke_combo__{name} {cls}" role="presentation"><span id="{id}_label" class="cke_combo_label">{label}</span><a class="cke_combo_button" hidefocus=true title="{title}" tabindex="-1"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="true"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)c+=' onkeypress="return false;"';
722
+ CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var c=c+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span><span class="cke_combo_open"><span class="cke_combo_arrow">'+
723
+ (CKEDITOR.env.hc?"&#9660;":CKEDITOR.env.air?"&nbsp;":"")+"</span></span></a></span>"),h=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";a.block={multiSelect:a.multiSelect,
724
+ attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function j(){var d=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;this.setState(a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:d);this.setValue("")}var c=CKEDITOR.env,g="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){i&&(a.unlockSelection(1),i=0);d.execute(b)},this),f=this,d={id:g,combo:this,
725
+ focus:function(){CKEDITOR.document.getById(g).getChild(1).focus()},execute:function(d){var b=f._;if(b.state!=CKEDITOR.TRISTATE_DISABLED)if(f.createPanel(a),b.on)b.panel.hide();else{f.commit();var c=f.getValue();c?b.list.mark(c):b.list.unmarkAll();b.panel.showBlock(f.id,new CKEDITOR.dom.element(d),4)}},clickFn:e};a.on("mode",j,this);!this.readOnly&&a.on("readOnly",j,this);var k=CKEDITOR.tools.addFunction(function(a,b){var a=new CKEDITOR.dom.event(a),c=a.getKeystroke();switch(c){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,
726
+ b);break;default:d.onkey(d,c)}a.preventDefault()}),l=CKEDITOR.tools.addFunction(function(){d.onfocus&&d.onfocus()}),i=0,m=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var b=a.editable();b.isInline()&&b.hasFocus&&(a.lockSelection(),i=1)}});d.keyDownFn=k;c={id:g,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&10900<=c.version&&!c.hc?"":(this.title||"").replace("'",""),keydownFn:k,mousedownFn:m,focusFn:l,clickFn:e};h.output(c,b);
727
+ if(this.onRender)this.onRender();return d},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,h=b.parent||CKEDITOR.document.getBody(),g="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,h,b),f=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(g);d.setState(CKEDITOR.TRISTATE_ON);f.focus(!f.multiSelect&&d.getValue());d._.on=1;d.editorFocus&&a.focus();if(d.onOpen)d.onOpen()};e.onHide=function(b){this.element.removeClass(g);
728
+ d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};f.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=f;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&(!a&&!b?(b=this.label,c.addClass("cke_combo_inlinelabel")):
729
+ c.removeClass("cke_combo_inlinelabel"),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),
730
+ this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},
731
+ statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();(function(){function g(a,b,g,h,j,n,k,o){for(var p=a.config,l=new CKEDITOR.style(k),c=j.split(";"),j=[],f={},d=0;d<c.length;d++){var e=c[d];if(e){var e=e.split("/"),m={},i=c[d]=e[0];m[g]=j[d]=e[1]||i;f[i]=new CKEDITOR.style(k,m);f[i]._.definition.name=i}else c.splice(d--,1)}a.ui.addRichCombo(b,{label:h.label,title:h.panelTitle,toolbar:"styles,"+o,allowedContent:l,requiredContent:l,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(p.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}},
732
+ init:function(){this.startGroup(h.panelTitle);for(var a=0;a<c.length;a++){var b=c[a];this.add(b,f[b].buildPreview(),b)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var c=f[b];a[this.getValue()==b?"removeStyle":"applyStyle"](c);a.fire("saveSnapshot")},onRender:function(){a.on("selectionChange",function(a){for(var b=this.getValue(),a=a.data.path.elements,c=0,d;c<a.length;c++){d=a[c];for(var e in f)if(f[e].checkElementMatch(d,!0)){e!=b&&this.setValue(e);return}}this.setValue("",n)},this)}})}
733
+ CKEDITOR.plugins.add("font",{requires:"richcombo",init:function(a){var b=a.config;g(a,"Font","family",a.lang.font,b.font_names,b.font_defaultLabel,b.font_style,30);g(a,"FontSize","size",a.lang.font.fontSize,b.fontSize_sizes,b.fontSize_defaultLabel,b.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif";
734
+ CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]};CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n");CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(b){var a=b.lang,e=0,h={email:1,password:1,search:1,tel:1,text:1,url:1},j={checkbox:"input[type,name,checked]",
735
+ radio:"input[type,name,checked]",textfield:"input[type,name,value,size,maxlength]",textarea:"textarea[cols,rows,name]",select:"select[name,size,multiple]; option[value,selected]",button:"input[type,name,value]",form:"form[action,name,id,enctype,target,method]",hiddenfield:"input[type,name,value]",imagebutton:"input[type,alt,src]{width,height,border,border-width,border-style,margin,float}"},k={checkbox:"input",radio:"input",textfield:"input",textarea:"textarea",select:"select",button:"input",form:"form",
736
+ hiddenfield:"input",imagebutton:"input"},d=function(g,c,h){var d={allowedContent:j[c],requiredContent:k[c]};"form"==c&&(d.context="form");b.addCommand(c,new CKEDITOR.dialogCommand(c,d));b.ui.addButton&&b.ui.addButton(g,{label:a.common[g.charAt(0).toLowerCase()+g.slice(1)],command:c,toolbar:"forms,"+(e+=10)});CKEDITOR.dialog.add(c,h)},f=this.path+"dialogs/";!b.blockless&&d("Form","form",f+"form.js");d("Checkbox","checkbox",f+"checkbox.js");d("Radio","radio",f+"radio.js");d("TextField","textfield",
737
+ f+"textfield.js");d("Textarea","textarea",f+"textarea.js");d("Select","select",f+"select.js");d("Button","button",f+"button.js");var i=CKEDITOR.plugins.get("image");i&&d("ImageButton","imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");d("HiddenField","hiddenfield",f+"hiddenfield.js");b.addMenuItems&&(d={checkbox:{label:a.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:a.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:a.forms.textfield.title,
738
+ command:"textfield",group:"textfield"},hiddenfield:{label:a.forms.hidden.title,command:"hiddenfield",group:"hiddenfield"},imagebutton:{label:a.image.titleButton,command:"imagebutton",group:"imagebutton"},button:{label:a.forms.button.title,command:"button",group:"button"},select:{label:a.forms.select.title,command:"select",group:"select"},textarea:{label:a.forms.textarea.title,command:"textarea",group:"textarea"}},!b.blockless&&(d.form={label:a.forms.form.menu,command:"form",group:"form"}),b.addMenuItems(d));
739
+ b.contextMenu&&(!b.blockless&&b.contextMenu.addListener(function(g,c,a){if((g=a.contains("form",1))&&!g.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}),b.contextMenu.addListener(function(a){if(a&&!a.isReadOnly()){var c=a.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var b=a.getAttribute("type")||"text";switch(b){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};
740
+ case "radio":return{radio:CKEDITOR.TRISTATE_OFF};case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[b])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c=="img"&&a.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));b.on("doubleclick",function(a){var c=a.data.element;if(!b.blockless&&c.is("form"))a.data.dialog="form";else if(c.is("select"))a.data.dialog="select";else if(c.is("textarea"))a.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")==
741
+ "hiddenfield")a.data.dialog="hiddenfield";else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":a.data.dialog="button";break;case "checkbox":a.data.dialog="checkbox";break;case "radio":a.data.dialog="radio";break;case "image":a.data.dialog="imagebutton"}if(h[c])a.data.dialog="textfield"}})},afterInit:function(b){var a=b.dataProcessor,e=a&&a.htmlFilter,a=a&&a.dataFilter;CKEDITOR.env.ie&&e&&e.addRules({elements:{input:function(a){var a=a.attributes,
742
+ b=a.type;b||(a.type="text");("checkbox"==b||"radio"==b)&&"on"==a.value&&delete a.value}}});a&&a.addRules({elements:{input:function(a){if("hidden"==a.attributes.type)return b.createFakeParserElement(a,"cke_hidden","hiddenfield")}}})}});
743
+ CKEDITOR.env.ie&&(CKEDITOR.dom.element.prototype.hasAttribute=CKEDITOR.tools.override(CKEDITOR.dom.element.prototype.hasAttribute,function(b){return function(a){this.$.attributes.getNamedItem(a);if("input"==this.getName())switch(a){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":var e=this.getAttribute("type");return"checkbox"==e||"radio"==e?"on"!=this.$.value:this.$.value}return b.apply(this,arguments)}}));CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var g=a.config,c=a.lang.format,k=g.format_tags.split(";"),d={},l=0,m=[],h=0;h<k.length;h++){var i=k[h],j=new CKEDITOR.style(g["format_"+i]);if(!a.filter.customConfig||a.filter.check(j))l++,d[i]=j,d[i]._.enterMode=a.config.enterMode,m.push(j)}0!==l&&a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",allowedContent:m,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(g.contentsCss),
744
+ multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var b=d[b],e=a.elementPath();a[b.checkActive(e)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue(),b=b.data.path,c=!a.readOnly&&b.isContextFor("p");this[c?"enable":"disable"]();
745
+ if(c){for(var f in d)if(d[f].checkActive(b)){f!=e&&this.setValue(f,a.lang.format["tag_"+f]);return}this.setValue("")}},this)}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"};CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};
746
+ CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}});
747
+ CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,$:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" />";this.lineBreakChars="\n";this.sortAttributes=1;this._.indent=0;this._.indentation="";this._.inPre=0;this._.rules={};var b=CKEDITOR.dtd,a;for(a in CKEDITOR.tools.extend({},b.$nonBodyContent,b.$block,b.$listItem,b.$tableContent))this.setRules(a,{indent:!b[a]["#"],breakBeforeOpen:1,breakBeforeClose:!b[a]["#"],breakAfterClose:1,needsSpace:a in
748
+ b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&(a&&a.needsSpace&&this._.needsSpace)&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("<",b);this._.afterCloser=0},
749
+ openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push(">"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&amp;/g,"&")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'="',a,'"')},closeTag:function(b){var a=this._.rules[b];
750
+ a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("</",b,">");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&this.indentation();
751
+ this._.output.push("<\!--",b,"--\>")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=a}}});(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)},allowedContent:"hr",requiredContent:"hr"};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b=a.lang.iframe,c="iframe[align,longdesc,frameborder,height,name,scrolling,src,title,width]";a.plugins.dialogadvtab&&(c+=";iframe"+a.plugins.dialogadvtab.allowedContent({id:1,
752
+ classes:1,styles:1}));CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe",{allowedContent:c,requiredContent:"iframe"}));a.ui.addButton&&a.ui.addButton("Iframe",{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});
753
+ a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,"cke_iframe","iframe",!0)}}})}})})();(function(){function n(a){var c=this.editor,d=a.document,b=d.body;(a=d.getElementById("cke_actscrpt"))&&a.parentNode.removeChild(a);(a=d.getElementById("cke_shimscrpt"))&&a.parentNode.removeChild(a);CKEDITOR.env.gecko&&(b.contentEditable=!1,2E4>CKEDITOR.env.version&&(b.innerHTML=b.innerHTML.replace(/^.*<\!-- cke-content-start --\>/,""),setTimeout(function(){var a=new CKEDITOR.dom.range(new CKEDITOR.dom.document(d));a.setStart(new CKEDITOR.dom.node(b),0);c.getSelection().selectRanges([a])},0)));b.contentEditable=
754
+ !0;CKEDITOR.env.ie&&(b.hideFocus=!0,b.disabled=!0,b.removeAttribute("disabled"));delete this._.isLoadingData;this.$=b;d=new CKEDITOR.dom.document(d);this.setup();CKEDITOR.env.ie&&(d.getDocumentElement().addClass(d.$.compatMode),c.config.enterMode!=CKEDITOR.ENTER_P&&d.on("selectionchange",function(){var a=d.getBody(),b=c.getSelection(),e=b&&b.getRanges()[0];e&&(a.getHtml().match(/^<p>&nbsp;<\/p>$/i)&&e.startContainer.equals(a))&&setTimeout(function(){e=c.getSelection().getRanges()[0];if(!e.startContainer.equals("body")){a.getFirst().remove(1);
755
+ e.moveToElementEditEnd(a);e.select()}},0)}));CKEDITOR.env.gecko&&CKEDITOR.tools.setTimeout(o,0,this,c);try{c.document.$.execCommand("2D-position",!1,!0)}catch(e){}try{c.document.$.execCommand("enableInlineTableEditing",!1,!c.config.disableNativeTableHandles)}catch(f){}if(c.config.disableObjectResizing)try{this.getDocument().$.execCommand("enableObjectResizing",!1,!1)}catch(g){this.attachListener(this,CKEDITOR.env.ie?"resizestart":"resize",function(a){a.data.preventDefault()})}(CKEDITOR.env.gecko||
756
+ CKEDITOR.env.ie&&"CSS1Compat"==c.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(b==33||b==34)if(CKEDITOR.env.ie)setTimeout(function(){c.getSelection().scrollIntoView()},0);else if(c.window.$.innerHeight>this.$.offsetHeight){var d=c.createRange();d[b==33?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(d,"blur",function(){try{d.$.selection.empty()}catch(a){}});c.document.getElementsByTag("title").getItem(0).data("cke-title",
757
+ c.document.$.title);CKEDITOR.env.ie&&(c.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){c.fire("contentDom");if(this._.isPendingFocus){c.focus();this._.isPendingFocus=false}setTimeout(function(){c.fire("dataReady")},0);CKEDITOR.env.ie&&setTimeout(function(){if(c.document){var a=c.document.$.body;a.runtimeStyle.marginBottom="0px";a.runtimeStyle.marginBottom=""}},1E3)},0,this)}function p(a){a.checkDirty()||setTimeout(function(){a.resetDirty()},0)}function o(a){if(!a.readOnly){var c=
758
+ a.window,d=a.document,b=d.getBody(),e=b.getFirst(),f=b.getChildren().count();if(!f||1==f&&e.type==CKEDITOR.NODE_ELEMENT&&e.hasAttribute("_moz_editor_bogus_node")){p(a);var e=CKEDITOR.document,g=e.getDocumentElement(),h=g.$.scrollTop,i=g.$.scrollLeft,j=d.$.createEvent("KeyEvents");j.initKeyEvent("keypress",!0,!0,c.$,!1,!1,!1,!1,0,32);d.$.dispatchEvent(j);(h!=g.$.scrollTop||i!=g.$.scrollLeft)&&e.getWindow().$.scrollTo(i,h);f&&b.getFirst().remove();d.getBody().appendBogus();a=a.createRange();a.setStartAt(b,
759
+ CKEDITOR.POSITION_AFTER_START);a.select()}}}function q(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable=false]{min-height:0 !important}");var c=[],d;for(d in CKEDITOR.dtd.$removeEmpty)c.push("html.CSS1Compat "+d+"[contenteditable=false]");a.push(c.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");
760
+ a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.config.fullPage&&a.addFeature({allowedContent:"html head title; style [media,type]; body (*)[id]; meta link [*]",requiredContent:"body"});a.addMode("wysiwyg",function(c){function d(d){d&&d.removeListener();a.editable(new k(a,b.$.contentWindow.document.body));a.setData(a.getData(1),c)}var b=CKEDITOR.document.createElement("iframe");b.setStyles({width:"100%",height:"100%"});b.addClass("cke_wysiwyg_frame cke_reset");
761
+ var e=a.ui.space("contents");e.append(b);var f="document.open();"+(l?'document.domain="'+document.domain+'";':"")+"document.close();",f=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent(f)+"}())":"",g=CKEDITOR.env.ie||CKEDITOR.env.gecko;if(g)b.on("load",d);var h=[a.lang.editor,a.name].join(),i=a.lang.common.editorHelp;CKEDITOR.env.ie&&(h+=", "+i);var j=CKEDITOR.tools.getNextId(),m=CKEDITOR.dom.element.createFromHtml('<span id="'+j+'" class="cke_voice_label">'+
762
+ i+"</span>");e.append(m,1);a.on("beforeModeUnload",function(a){a.removeListener();m.remove()});b.setAttributes({frameBorder:0,"aria-describedby":j,title:h,src:f,tabIndex:a.tabIndex,allowTransparency:"true"});!g&&d();CKEDITOR.env.webkit&&(f=function(){e.setStyle("width","100%");b.hide();b.setSize("width",e.getSize("width"));e.removeStyle("width");b.show()},b.setCustomData("onResize",f),CKEDITOR.document.getWindow().on("resize",f));a.fire("ariaWidget",b)})}});var l=CKEDITOR.env.isCustomDomain(),k=CKEDITOR.tools.createClass({$:function(a){this.base.apply(this,
763
+ arguments);this._.frameLoadedHandler=CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(n,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,c){var d=this.editor;if(c)this.setHtml(a);else{this._.isLoadingData=!0;d._.dataStore={id:1};var b=d.config,e=b.fullPage,f=b.docType,g=CKEDITOR.tools.buildStyleHtml(q()).replace(/<style>/,'<style data-cke-temp="1">');e||(g+=CKEDITOR.tools.buildStyleHtml(d.config.contentsCss));
764
+ var h=b.baseHref?'<base href="'+b.baseHref+'" data-cke-temp="1" />':"";e&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){d.docType=f=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){d.xmlDeclaration=a;return""}));d.dataProcessor&&(a=d.dataProcessor.toHtml(a));e?(/<body[\s|>]/.test(a)||(a="<body>"+a),/<html[\s|>]/.test(a)||(a="<html>"+a+"</html>"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$&<title></title>")):a=a.replace(/<html[^>]*>/,"$&<head><title></title></head>"),
765
+ h&&(a=a.replace(/<head>/,"$&"+h)),a=a.replace(/<\/head\s*>/,g+"$&"),a=f+a):a=b.docType+'<html dir="'+b.contentsLangDirection+'" lang="'+(b.contentsLanguage||d.langCode)+'"><head><title>'+this._.docTitle+"</title>"+h+g+"</head><body"+(b.bodyId?' id="'+b.bodyId+'"':"")+(b.bodyClass?' class="'+b.bodyClass+'"':"")+">"+a+"</body></html>";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'<body contenteditable="true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$&<\!-- cke-content-start --\>")));b='<script id="cke_actscrpt" type="text/javascript"'+
766
+ (CKEDITOR.env.ie?' defer="defer" ':"")+">"+(l?'document.domain="'+document.domain+'";':"")+"var wasLoaded=0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded=1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"<\/script>";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(b+='<script id="cke_shimscrpt">(function(){var e="abbr,article,aside,audio,bdi,canvas,data,datalist,details,figcaption,figure,footer,header,hgroup,mark,meter,nav,output,progress,section,summary,time,video".split(","),i=e.length;while(i--){document.createElement(e[i])}})()<\/script>');
767
+ a=a.replace(/(?=\s*<\/(:?head)>)/,b);this.clearCustomData();this.clearListeners();d.fire("contentDomUnload");var i=this.getDocument();try{i.write(a)}catch(j){setTimeout(function(){i.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();var a=this.editor,c=a.config.fullPage,d=c&&a.docType,b=c&&a.xmlDeclaration,e=this.getDocument(),c=c?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&(c=c.replace(/<br>(?=\s*(:?$|<\/body>))/,""));a.dataProcessor&&(c=a.dataProcessor.toDataFormat(c));
768
+ b&&(c=b+"\n"+c);d&&(c=d+"\n"+c);return c},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:k.baseProto.focus.call(this)},detach:function(){var a=this.editor,c=a.document,d=a.window.getFrame();k.baseProto.detach.call(this);this.clearCustomData();c.getDocumentElement().clearCustomData();d.clearCustomData();CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);(c=d.removeCustomData("onResize"))&&c.removeListener();a.fire("contentDomUnload");d.remove()}}})})();
769
+ CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.contentsCss=CKEDITOR.basePath+"contents.css";(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");var a="img[alt,!src]{border-style,border-width,float,height,margin,margin-bottom,margin-left,margin-right,margin-top,width}";
770
+ CKEDITOR.dialog.isTabEnabled(b,"image","advanced")&&(a="img[alt,dir,id,lang,longdesc,!src,title]{*}(*)");b.addCommand("image",new CKEDITOR.dialogCommand("image",{allowedContent:a,requiredContent:"img[alt,src]",contentTransformations:[["img{width}: sizeToStyle","img[width]: sizeToAttribute"],["img{float}: alignmentToStyle","img[align]: alignmentToAttribute"]]}));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.common.image,command:"image",toolbar:"insert,10"});b.on("doubleclick",function(a){var b=
771
+ a.data.element;b.is("img")&&(!b.data("cke-realelement")&&!b.isReadOnly())&&(a.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")):
772
+ c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}a("left");a("right");a("center");a("block")}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;CKEDITOR.plugins.add("smiley",{requires:"dialog",init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley",{allowedContent:"img[alt,height,!src,title,width]",requiredContent:"img"}));a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.gif sad_smile.gif wink_smile.gif teeth_smile.gif confused_smile.gif tongue_smile.gif embarrassed_smile.gif omg_smile.gif whatchutalkingabout_smile.gif angry_smile.gif angel_smile.gif shades_smile.gif devil_smile.gif cry_smile.gif lightbulb.gif thumbs_down.gif thumbs_up.gif heart.gif broken_heart.gif kiss.gif envelope.gif".split(" ");
773
+ CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";");(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function f(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";var c=a.config.justifyClasses,g=a.config.enterMode==
774
+ CKEDITOR.ENTER_P?"p":"div";if(c){switch(b){case "left":this.cssClassName=c[0];break;case "center":this.cssClassName=c[1];break;case "right":this.cssClassName=c[2];break;case "justify":this.cssClassName=c[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+c.join("|")+")(?=$|\\s)");this.requiredContent=g+"("+this.cssClassName+")"}else this.requiredContent=g+"{text-align}";this.allowedContent={"caption div h1 h2 h3 h4 h5 h6 p pre td th li":{propertiesOnly:!0,styles:this.cssClassName?null:"text-align",classes:this.cssClassName||
775
+ null}};a.config.enterMode==CKEDITOR.ENTER_BR&&(this.allowedContent.div=!0)}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var g=new CKEDITOR.dom.walker(b),d;d=g.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),g=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0])));
776
+ e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}f.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var g=c.createBookmarks(),d=c.getRanges(!0),e=this.cssClassName,f,h,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){f=d[k].createIterator();for(f.enlargeBr=b!=CKEDITOR.ENTER_BR;h=f.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");){h.removeAttribute("align");h.removeStyle("text-align");
777
+ var j=e&&(h.$.className=CKEDITOR.tools.ltrim(h.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(h,!0)!=this.value);e?m?h.addClass(e):j||h.removeAttribute("class"):m&&h.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(g)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify",
778
+ {init:function(a){if(!a.blockless){var c=new f(a,"justifyleft","left"),b=new f(a,"justifycenter","center"),g=new f(a,"justifyright","right"),d=new f(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",g);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",
779
+ toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",j)}}})})();CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function b(b){return d.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var a="background:url("+CKEDITOR.getUrl(this.path+"images/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;",d=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+a+"padding-%1:18px;cursor:auto;}"+(CKEDITOR.env.ie?"a.cke_anchor_empty{display:inline-block;}":"")+".%2 img.cke_anchor{"+
780
+ a+"width:16px;min-height:15px;height:1.15em;vertical-align:"+(CKEDITOR.env.opera?"middle":"text-bottom")+";}";CKEDITOR.addCss(b("ltr")+b("rtl"))},init:function(b){var a="a[!href]";CKEDITOR.dialog.isTabEnabled(b,"link","advanced")&&(a=a.replace("]",",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)"));CKEDITOR.dialog.isTabEnabled(b,"link","target")&&(a=a.replace("]",",target,onclick]"));b.addCommand("link",new CKEDITOR.dialogCommand("link",{allowedContent:a,requiredContent:"a[href]"}));
781
+ b.addCommand("anchor",new CKEDITOR.dialogCommand("anchor",{allowedContent:"a[!name,id]",requiredContent:"a[name]"}));b.addCommand("unlink",new CKEDITOR.unlinkCommand);b.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);b.setKeystroke(CKEDITOR.CTRL+76,"link");b.ui.addButton&&(b.ui.addButton("Link",{label:b.lang.link.toolbar,command:"link",toolbar:"links,10"}),b.ui.addButton("Unlink",{label:b.lang.link.unlink,command:"unlink",toolbar:"links,20"}),b.ui.addButton("Anchor",{label:b.lang.link.anchor.toolbar,
782
+ command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");b.on("doubleclick",function(a){var c=CKEDITOR.plugins.link.getSelectedLink(b)||a.data.element;if(!c.isReadOnly())if(c.is("a")){a.data.dialog=c.getAttribute("name")&&(!c.getAttribute("href")||!c.getChildCount())?"anchor":"link";b.getSelection().selectElement(c)}else if(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,c))a.data.dialog="anchor"});b.addMenuItems&&
783
+ b.addMenuItems({anchor:{label:b.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:b.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:b.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:b.lang.link.unlink,command:"unlink",group:"link",order:5}});b.contextMenu&&b.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(b)))return null;
784
+ var c={};a.getAttribute("href")&&a.getChildCount()&&(c={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});if(a&&a.hasAttribute("name"))c.anchor=c.removeAnchor=CKEDITOR.TRISTATE_OFF;return c})},afterInit:function(b){var a=b.dataProcessor,d=a&&a.dataFilter,a=a&&a.htmlFilter,c=b._.elementsPath&&b._.elementsPath.filters;d&&d.addRules({elements:{a:function(a){var c=a.attributes;if(!c.name)return null;var d=!a.children.length;if(CKEDITOR.plugins.link.synAnchorSelector){var a=d?"cke_anchor_empty":
785
+ "cke_anchor",e=c["class"];if(c.name&&(!e||0>e.indexOf(a)))c["class"]=(e||"")+" "+a;d&&CKEDITOR.plugins.link.emptyAnchorFix&&(c.contenteditable="false",c["data-cke-editable"]=1)}else if(CKEDITOR.plugins.link.fakeAnchor&&d)return b.createFakeParserElement(a,"cke_anchor","anchor");return null}}});CKEDITOR.plugins.link.emptyAnchorFix&&a&&a.addRules({elements:{a:function(a){delete a.attributes.contenteditable}}});c&&c.push(function(a,c){if("a"==c&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,a)||a.getAttribute("name")&&
786
+ (!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});
787
+ CKEDITOR.plugins.link={getSelectedLink:function(b){var a=b.getSelection(),d=a.getSelectedElement();return d&&d.is("a")?d:(a=a.getRanges(!0)[0])?(a.shrink(CKEDITOR.SHRINK_TEXT),b.elementPath(a.getCommonAncestor()).contains("a",1)):null},fakeAnchor:CKEDITOR.env.opera||CKEDITOR.env.webkit,synAnchorSelector:CKEDITOR.env.ie,emptyAnchorFix:CKEDITOR.env.ie&&8>CKEDITOR.env.version,tryRestoreFakeAnchor:function(b,a){if(a&&a.data("cke-real-element-type")&&"anchor"==a.data("cke-real-element-type")){var d=b.restoreRealElement(a);
788
+ if(d.data("cke-saved-name"))return d}}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(b){var a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});b.removeStyle(a)},refresh:function(b,a){var d=a.lastElement&&a.lastElement.getAscendant("a",!0);d&&"a"==d.getName()&&d.getAttribute("href")&&d.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1,requiredContent:"a[href]"};
789
+ CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(b){var a=b.getSelection(),d=a.createBookmarks(),c;if(a&&(c=a.getSelectedElement())&&(CKEDITOR.plugins.link.fakeAnchor&&!c.getChildCount()?CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,c):c.is("a")))c.remove(1);else if(c=CKEDITOR.plugins.link.getSelectedLink(b))c.hasAttribute("href")?(c.removeAttributes({name:1,"data-cke-saved-name":1}),c.removeClass("cke_anchor")):c.remove(1);a.selectBookmarks(d)},requiredContent:"a[name]"};
790
+ CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0});(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){if(!a.blockless){var b;b=new CKEDITOR.dialogCommand("numberedListStyle",{requiredContent:"ol",allowedContent:"ol{list-style-type}[start]"});b=a.addCommand("numberedListStyle",b);a.addFeature(b);CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");b=new CKEDITOR.dialogCommand("bulletedListStyle",{requiredContent:"ul",allowedContent:"ul{list-style-type}"});b=a.addCommand("bulletedListStyle",b);
791
+ a.addFeature(b);CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};
792
+ a=a.getParent()}return null})}}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function N(a,b,d){return l(b)&&l(d)&&d.equals(b.getNext(function(a){return!(y(a)||z(a)||o(a))}))}function t(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function H(a){var b=a.element,d;return b&&l(b)?(d=b.getAscendant(a.triggers,!0))&&!d.contains(a.editable)&&!d.equals(a.editable)?d:null:null}function ba(a,b,d){m(a,b);m(a,d);a=b.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function q(a,b,d){return b=b[d?"getPrevious":"getNext"](function(e){return e&&e.type==
793
+ CKEDITOR.NODE_TEXT&&!y(e)||l(e)&&!o(e)&&!u(a,e)})}function ca(a){var b=a.doc,d=A('<span contenteditable="false" style="'+I+"position:absolute;border-top:1px dashed "+a.boxColor+'"></span>',b);p(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[p(A('<span title="'+a.editor.lang.magicline.title+'" contenteditable="false">&#8629;</span>',b),{base:I+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+this.path+"images/icon.png) center no-repeat "+
794
+ a.boxColor+";cursor:pointer;"+(n.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":""),looks:["top:-8px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px",1),"top:-17px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px 2px 0px 0px",1),"top:-1px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","0px 0px 2px 2px",1)]}),p(A(O,b),{base:P+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),
795
+ p(A(O,b),{base:P+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){m(a,this);var e=a.holdDistance,b=this.size;return b&&a.mouse.y>b.top-e&&a.mouse.y<b.bottom+e&&a.mouse.x>b.left-e&&a.mouse.x<b.right+e?!0:!1},place:function(){var e=a.view,b=a.editable,c=a.trigger,d=c.upper,i=c.lower,h=d||i,
796
+ k=h.getParent(),g={};this.trigger=c;d&&m(a,d,!0);i&&m(a,i,!0);m(a,k,!0);a.inInlineMode&&B(a,!0);k.equals(b)?(g.left=e.scroll.x,g.right=-e.scroll.x,g.width=""):(g.left=h.size.left-h.size.margin.left+e.scroll.x-(a.inInlineMode?e.editable.left+e.editable.border.left:0),g.width=h.size.outerWidth+h.size.margin.left+h.size.margin.right+e.scroll.x,g.right="");d&&i?g.top=d.size.margin.bottom===i.size.margin.top?0|d.size.bottom+d.size.margin.bottom/2:d.size.margin.bottom<i.size.margin.top?d.size.bottom+d.size.margin.bottom:
797
+ d.size.bottom+d.size.margin.bottom-i.size.margin.top:d?i||(g.top=d.size.bottom+d.size.margin.bottom):g.top=i.size.top-i.size.margin.top;c.is(w)||g.top>e.scroll.y-15&&g.top<e.scroll.y+5?(g.top=a.inInlineMode?0:e.scroll.y,this.look(w)):c.is(x)||g.top>e.pane.bottom-5&&g.top<e.pane.bottom+15?(g.top=a.inInlineMode?e.editable.height+e.editable.padding.top+e.editable.padding.bottom:e.pane.bottom-1,this.look(x)):(a.inInlineMode&&(g.top-=e.editable.top+e.editable.border.top),this.look(r));a.inInlineMode&&
798
+ (g.top--,g.top+=e.editable.scroll.top,g.left+=e.editable.scroll.left);for(var Q in g)g[Q]=CKEDITOR.tools.cssLength(g[Q]);this.setStyles(g)},look:function(a){if(this.oldLook!=a){for(var d=this.lineChildren.length,c;d--;)(c=this.lineChildren[d]).setAttribute("style",c.base+c.looks[0|a/2]);this.oldLook=a}},wrap:new J("span",a.doc)});for(b=d.lineChildren.length;b--;)d.lineChildren[b].appendTo(d);d.look(r);d.appendTo(d.wrap);d.unselectable();d.lineChildren[0].on("mouseup",function(b){d.detach();K(a,function(d){var c=
799
+ a.line.trigger;d[c.is(C)?"insertBefore":"insertAfter"](c.is(C)?c.lower:c.upper)},!0);a.editor.focus();!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();b.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function K(a,b,d){var e=new CKEDITOR.dom.range(a.doc),f=a.editor,c;n.ie&&a.enterMode==CKEDITOR.ENTER_BR?c=a.doc.createText(D):(c=new J(a.enterBehavior,a.doc),a.enterMode!=CKEDITOR.ENTER_BR&&a.doc.createText(D).appendTo(c));d&&f.fire("saveSnapshot");
800
+ b(c);e.moveToPosition(c,CKEDITOR.POSITION_AFTER_START);f.getSelection().selectRanges([e]);a.hotNode=c;d&&f.fire("saveSnapshot")}function R(a,b){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function d(d){var f=n.ie&&9>n.version?" ":D,c=a.hotNode&&a.hotNode.getText()==f&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!b;K(a,function(f){c&&a.hotNode&&a.hotNode.remove();f[b?"insertAfter":"insertBefore"](d);f.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!b});a.lastCmdDirection=
801
+ !!b});!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();a.line.detach()}return function(e){e=e.getSelection().getStartElement();if((e=e.getAscendant(S,1))&&!e.equals(a.editable)&&!e.contains(a.editable)){a.element=e;var f=q(a,e,!b),c;l(f)&&f.is(a.triggers)&&f.is(da)&&(!q(a,f,!b)||(c=q(a,f,!b))&&l(c)&&c.is(a.triggers))?d(f):(c=H(a,e),l(c)&&(q(a,c,!b)?(e=q(a,c,!b))&&(l(e)&&e.is(a.triggers))&&d(c):d(c)))}}}()}}function u(a,b){if(!b||!(b.type==CKEDITOR.NODE_ELEMENT&&b.$))return!1;var d=
802
+ a.line;return d.wrap.equals(b)||d.wrap.contains(b)}function l(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function o(a){if(!l(a))return!1;var b;if(!(b=T(a)))l(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1;return b}function T(a){return!!{absolute:1,fixed:1,relative:1}[a.getComputedStyle("position")]}function E(a,b){return l(b)?b.is(a.triggers):null}function ea(a,b,d){b=b[d?"getLast":"getFirst"](function(d){return a.isRelevant(d)&&!d.is(fa)});
803
+ if(!b)return!1;m(a,b);return d?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function U(a){var b=a.editable,d=a.mouse,e=a.view,f=a.triggerOffset;B(a);var c=d.y>(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),b=b[c?"getLast":"getFirst"](function(a){return!(y(a)||z(a))});if(!b)return null;u(a,b)&&(b=a.line.wrap[c?"getPrevious":"getNext"](function(a){return!(y(a)||z(a))}));if(!l(b)||o(b)||!E(a,b))return null;m(a,b);return!c&&0<=b.size.top&&0<d.y&&d.y<b.size.top+
804
+ f?(a=a.inInlineMode||0===e.scroll.y?w:r,new t([null,b,C,F,a])):c&&b.size.bottom<=e.pane.height&&d.y>b.size.bottom-f&&d.y<e.pane.height?(a=a.inInlineMode||b.size.bottom>e.pane.height-f&&b.size.bottom<e.pane.height?x:r,new t([b,null,V,F,a])):null}function W(a){var b=a.mouse,d=a.view,e=a.triggerOffset,f=H(a);if(!f)return null;m(a,f);var e=Math.min(e,0|f.size.outerHeight/2),c=[],j,i;if(b.y>f.size.top-1&&b.y<f.size.top+e)i=!1;else if(b.y>f.size.bottom-e&&b.y<f.size.bottom+1)i=!0;else return null;if(o(f)||
805
+ ea(a,f,i)||f.getParent().is(X))return null;var h=q(a,f,!i);if(h){if(h&&h.type==CKEDITOR.NODE_TEXT)return null;if(l(h)){if(o(h)||!E(a,h)||h.getParent().is(X))return null;c=[h,f][i?"reverse":"concat"]().concat([L,F])}}else f.equals(a.editable[i?"getLast":"getFirst"](a.isRelevant))?(B(a),i&&b.y>f.size.bottom-e&&b.y<d.pane.height&&f.size.bottom>d.pane.height-e&&f.size.bottom<d.pane.height?j=x:0<b.y&&b.y<f.size.top+e&&(j=w)):j=r,c=[null,f][i?"reverse":"concat"]().concat([i?V:C,F,j,f.equals(a.editable[i?
806
+ "getLast":"getFirst"](a.isRelevant))?i?x:w:r]);return 0 in c?new t(c):null}function M(a,b,d,e){for(var f=function(){var d=n.ie?b.$.currentStyle:a.win.$.getComputedStyle(b.$,"");return n.ie?function(a){return d[CKEDITOR.tools.cssStyleToDomStyle(a)]}:function(a){return d.getPropertyValue(a)}}(),c=b.getDocumentPosition(),j={},i={},h={},k={},g=s.length;g--;)j[s[g]]=parseInt(f("border-"+s[g]+"-width"),10)||0,h[s[g]]=parseInt(f("padding-"+s[g]),10)||0,i[s[g]]=parseInt(f("margin-"+s[g]),10)||0;(!d||e)&&
807
+ G(a,e);k.top=c.y-(d?0:a.view.scroll.y);k.left=c.x-(d?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+j.top+j.bottom);k.width=k.outerWidth-(h.left+h.right+j.left+j.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,left:b.$.scrollLeft});return p({border:j,padding:h,margin:i,ignoreScroll:d},k,!0)}function m(a,b,d){if(!l(b))return b.size=null;if(b.size){if(b.size.ignoreScroll==
808
+ d&&b.size.date>new Date-Y)return null}else b.size={};return p(b.size,M(a,b,d),{date:+new Date},!0)}function B(a,b){a.view.editable=M(a,a.editable,b,!0)}function G(a,b){a.view||(a.view={});var d=a.view;if(b||!(d&&d.date>new Date-Y)){var e=a.win,d=e.getScrollPosition(),e=e.getViewPaneSize();p(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-e.width,height:a.doc.$.documentElement.scrollHeight-e.height},pane:{width:e.width,height:e.height,bottom:e.height+d.y},date:+new Date},!0)}}
809
+ function ga(a,b,d,e){for(var f=e,c=e,j=0,i=!1,h=!1,k=a.view.pane.height,g=a.mouse;g.y+j<k&&0<g.y-j;){i||(i=b(f,e));h||(h=b(c,e));!i&&0<g.y-j&&(f=d(a,{x:g.x,y:g.y-j}));!h&&g.y+j<k&&(c=d(a,{x:g.x,y:g.y+j}));if(i&&h)break;j+=2}return new t([f,c,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var b={};b[CKEDITOR.ENTER_BR]="br";b[CKEDITOR.ENTER_P]="p";b[CKEDITOR.ENTER_DIV]="div";var d=a.config,e=d.magicline_triggerOffset||30,f=d.enterMode,c={editor:a,enterBehavior:b[f],enterMode:f,triggerOffset:e,
810
+ holdDistance:0|e*(d.magicline_holdDistance||0.5),boxColor:d.magicline_color||"#ff0000",rtl:"rtl"==d.contentsLangDirection,triggers:d.magicline_everywhere?S:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},j,i,h;c.isRelevant=function(a){return l(a)&&!u(c,a)&&!o(a)};a.on("contentDom",function(){var b=a.editable(),e=a.document,f=a.window;p(c,{editable:b,inInlineMode:b.isInline(),doc:e,win:f},!0);c.boundary=c.inInlineMode?c.editable:c.doc.getDocumentElement();b.is(v.$inline)||(c.inInlineMode&&
811
+ !T(b)&&b.setStyles({position:"relative",top:null,left:null}),ca.call(this,c),G(c),b.attachListener(a,"beforeUndoImage",function(){c.line.detach()}),b.attachListener(a,"beforeGetData",function(){c.line.wrap.getParent()&&(c.line.detach(),a.once("getData",function(){c.line.attach()},null,null,1E3))},null,null,0),b.attachListener(c.inInlineMode?e:e.getWindow().getFrame(),"mouseout",function(b){if("wysiwyg"==a.mode)if(c.inInlineMode){var d=b.data.$.clientX,b=b.data.$.clientY;G(c);B(c,!0);var e=c.view.editable,
812
+ f=c.view.scroll;if(!(d>e.left-f.x&&d<e.right-f.x)||!(b>e.top-f.y&&b<e.bottom-f.y))clearTimeout(h),h=null,c.line.detach()}else clearTimeout(h),h=null,c.line.detach()}),b.attachListener(b,"keyup",function(){c.hiddenMode=0}),b.attachListener(b,"keydown",function(b){if("wysiwyg"==a.mode)switch(b=b.data.getKeystroke(),a.getSelection().getStartElement(),b){case 2228240:case 16:c.hiddenMode=1,c.line.detach()}}),b.attachListener(c.inInlineMode?b:e,"mousemove",function(b){i=!0;if(!("wysiwyg"!=a.mode||a.readOnly||
813
+ h)){var d={x:b.data.$.clientX,y:b.data.$.clientY};h=setTimeout(function(){c.mouse=d;h=c.trigger=null;G(c);if(i&&!c.hiddenMode&&a.focusManager.hasFocus&&!c.line.mouseNear()&&(c.element=Z(c,!0)))(c.trigger=U(c)||W(c)||$(c))?c.line.attach().place():(c.trigger=null,c.line.detach()),i=!1},30)}}),b.attachListener(f,"scroll",function(){"wysiwyg"==a.mode&&(c.line.detach(),n.webkit&&(c.hiddenMode=1,clearTimeout(j),j=setTimeout(function(){c.hiddenMode=0},50)))}),b.attachListener(f,"mousedown",function(){"wysiwyg"==
814
+ a.mode&&(c.line.detach(),c.hiddenMode=1)}),b.attachListener(f,"mouseup",function(){c.hiddenMode=0}),a.addCommand("accessPreviousSpace",R(c)),a.addCommand("accessNextSpace",R(c,!0)),a.setKeystroke([[d.magicline_keystrokePrevious,"accessPreviousSpace"],[d.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){for(var b=a.document.getElementsByTag(c.enterBehavior),d,e=b.count();e--;)if((d=b.getItem(e)).hasAttribute("data-cke-magicline-hot")){c.hotNode=d;c.lastCmdDirection="true"===
815
+ d.getAttribute("data-cke-magicline-dir")?!0:!1;break}}),this.backdoor={accessFocusSpace:K,boxTrigger:t,isLine:u,getAscendantTrigger:H,getNonEmptyNeighbour:q,getSize:M,that:c,triggerEdge:W,triggerEditable:U,triggerExpand:$})},this)}});var p=CKEDITOR.tools.extend,J=CKEDITOR.dom.element,A=J.createFromHtml,n=CKEDITOR.env,v=CKEDITOR.dtd,C=128,V=64,L=32,F=16,aa=8,w=4,x=2,r=1,D=" ",X=v.$listItem,fa=v.$tableContent,da=p({},v.$nonEditable,v.$empty),S=v.$block,Y=100,I="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",
816
+ P=I+"border-color:transparent;display:block;border-style:solid;",O="<span>"+D+"</span>";t.prototype={set:function(a,b,d){this.properties=a+b+(d||r);return this},is:function(a){return(this.properties&a)==a}};var Z=function(){return function(a,b,d){if(!a.mouse)return null;var e=a.doc,f=a.line.wrap,d=d||a.mouse,c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y));b&&u(a,c)&&(f.hide(),c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y)),f.show());return!c||!(c.type==CKEDITOR.NODE_ELEMENT&&c.$)||
817
+ n.ie&&9>n.version&&!a.boundary.equals(c)&&!a.boundary.contains(c)?null:c}}(),y=CKEDITOR.dom.walker.whitespaces(),z=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),$=function(){function a(a){var e=a.element,f,c,j;if(!l(e)||e.contains(a.editable))return null;j=ga(a,function(a,b){return!b.equals(a)},function(a,b){return Z(a,!0,b)},e);f=j.upper;c=j.lower;if(N(a,f,c))return j.set(L,aa);if(f&&e.contains(f))for(;!f.getParent().equals(e);)f=f.getParent();else f=e.getFirst(function(c){return b(a,c)});
818
+ if(c&&e.contains(c))for(;!c.getParent().equals(e);)c=c.getParent();else c=e.getLast(function(c){return b(a,c)});if(!f||!c)return null;m(a,f);m(a,c);if(!(a.mouse.y>f.size.top&&a.mouse.y<c.size.bottom))return null;for(var e=Number.MAX_VALUE,i,h,k,g;c&&!c.equals(f)&&(h=f.getNext(a.isRelevant));)i=Math.abs(ba(a,f,h)-a.mouse.y),i<e&&(e=i,k=f,g=h),f=h,m(a,f);if(!k||!g||!(a.mouse.y>k.size.top&&a.mouse.y<g.size.bottom))return null;j.upper=k;j.lower=g;return j.set(L,aa)}function b(a,b){return!(b&&b.type==
819
+ CKEDITOR.NODE_TEXT||z(b)||o(b)||u(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(b){var e=a(b),f;if(f=e){f=e.upper;var c=e.lower;f=!f||!c||o(c)||o(f)||c.equals(f)||f.equals(c)||c.contains(f)||f.contains(c)?!1:E(b,f)&&E(b,c)&&N(b,f,c)?!0:!1}return f?e:null}}(),s=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.SHIFT+219;CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.SHIFT+221;(function(){function l(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var e=[],f=["style","className"],b=0;b<f.length;b++){var d=a.$.elements.namedItem(f[b]);d&&(d=new CKEDITOR.dom.element(d),e.push([d,d.nextSibling]),d.remove())}return e}function o(a,e){if(a&&!(a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())&&0<e.length)for(var f=e.length-1;0<=f;f--){var b=e[f][0],d=e[f][1];d?b.insertBefore(d):b.appendTo(a)}}function n(a,e){var f=l(a),b={},d=a.$;e||(b["class"]=d.className||
820
+ "",d.className="");b.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");o(f);return b}function p(a,e){var f=l(a),b=a.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=e.inline);o(f)}function q(a){if(!a.editable().isInline()){var e=CKEDITOR.instances,f;for(f in e){var b=e[f];"wysiwyg"==b.mode&&!b.readOnly&&(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),
821
+ a.focus())}}CKEDITOR.plugins.add("maximize",{init:function(a){function e(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=a.lang,b=CKEDITOR.document,d=b.getWindow(),j,k,m,l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var h=a.container.getChild(1),g=a.ui.space("contents");if("wysiwyg"==a.mode){var c=a.getSelection();j=c&&c.getRanges();
822
+ k=d.getScrollPosition()}else{var i=a.editable().$;j=!CKEDITOR.env.ie&&[i.selectionStart,i.selectionEnd];k=[i.scrollLeft,i.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",e);m=d.getScrollPosition();for(c=a.container;c=c.getParent();)c.setCustomData("maximize_saved_styles",n(c)),c.setStyle("z-index",a.config.baseFloatZIndex-5);g.setCustomData("maximize_saved_styles",n(g,!0));h.setCustomData("maximize_saved_styles",n(h,!0));g={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};
823
+ b.getDocumentElement().setStyles(g);!CKEDITOR.env.gecko&&b.getDocumentElement().setStyle("position","fixed");(!CKEDITOR.env.gecko||!CKEDITOR.env.quirks)&&b.getBody().setStyles(g);CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);h.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");h.$.offsetLeft;h.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});h.addClass("cke_maximized");e();g=h.getDocumentPosition();h.setStyles({left:-1*
824
+ g.x+"px",top:-1*g.y+"px"});CKEDITOR.env.gecko&&q(a)}else if(this.state==CKEDITOR.TRISTATE_ON){d.removeListener("resize",e);g=[g,h];for(c=0;c<g.length;c++)p(g[c],g[c].getCustomData("maximize_saved_styles")),g[c].removeCustomData("maximize_saved_styles");for(c=a.container;c=c.getParent();)p(c,c.getCustomData("maximize_saved_styles")),c.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(m.x,m.y)},0):d.$.scrollTo(m.x,m.y);h.removeClass("cke_maximized");CKEDITOR.env.webkit&&
825
+ (h.setStyle("display","inline"),setTimeout(function(){h.setStyle("display","block")},0));a.fire("resize")}this.toggleState();if(c=this.uiItems[0])g=this.state==CKEDITOR.TRISTATE_OFF?f.maximize.maximize:f.maximize.minimize,c=CKEDITOR.document.getById(c._.id),c.getChild(1).setHtml(g),c.setAttribute("title",g),c.setAttribute("href",'javascript:void("'+g+'");');"wysiwyg"==a.mode?j?(CKEDITOR.env.gecko&&q(a),a.getSelection().selectRanges(j),(i=a.getSelection().getStartElement())&&i.scrollIntoView(!0)):
826
+ d.$.scrollTo(k.x,k.y):(j&&(i.selectionStart=j[0],i.selectionEnd=j[1]),i.scrollLeft=k[0],i.scrollTop=k[1]);j=k=null;l=this.state;a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:f.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:l)},null,null,100)}}})})();CKEDITOR.plugins.add("newpage",{init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage",command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}});CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",onLoad:function(){var a=["{","background: url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;","clear: both;width:100%; _width:99.9%;border-top: #999999 1px dotted;border-bottom: #999999 1px dotted;padding:0;height: 5px;cursor: default;}"].join("").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak"+a)},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&
827
+ a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak",toolbar:"insert,70"}),CKEDITOR.env.opera&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){var b=a.lang.pagebreak.alt,c=a.dataProcessor,a=c&&c.dataFilter;(c=c&&c.htmlFilter)&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak","");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;">&nbsp;</span>').children[0];
828
+ b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},5);a&&a.addRules({elements:{div:function(a){var c=a.attributes,e=c&&c.style,d=e&&1==a.children.length&&a.children[0];if((d=d&&"span"==d.name&&d.attributes.style)&&/page-break-after\s*:\s*always/i.test(e)&&/display\s*:\s*none/i.test(d))c.contenteditable="false",c["class"]="cke_pagebreak",c["data-cke-display-name"]="pagebreak",c["aria-label"]=b,c.title=b,a.children.length=0}}})}});
829
+ CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b=a.lang.pagebreak.alt,b=CKEDITOR.dom.element.createFromHtml('<div style="page-break-after: always;"contenteditable="false" title="'+b+'" aria-label="'+b+'" data-cke-display-name="pagebreak" class="cke_pagebreak"></div>',a.document);a.insertElement(b)},context:"div",allowedContent:{div:{styles:"!page-break-after"},span:{match:function(a){return(a=a.parent)&&"div"==a.name&&a.styles["page-break-after"]},styles:"display"}},requiredContent:"div{page-break-after}"};(function(){var c={canUndo:!1,async:!0,exec:function(a){a.getClipboardData({title:a.lang.pastetext.title},function(b){b&&a.fire("paste",{type:"text",dataValue:b.dataValue});a.fire("afterCommandExec",{name:"pastetext",command:c,returnValue:!!b})})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(a){a.addCommand("pastetext",c);a.ui.addButton&&a.ui.addButton("PasteText",{label:a.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(a.config.forcePasteAsPlainText)a.on("beforePaste",
830
+ function(a){"html"!=a.data.type&&(a.data.type="text")});a.on("pasteState",function(b){a.getCommand("pastetext").setState(b.data)})}})})();(function(){function h(a,d,f){var b=CKEDITOR.cleanWord;b?f():(a=CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile||d+"filter/default.js"),CKEDITOR.scriptLoader.load(a,f,null,!0));return!b}function i(a){a.data.type="html"}CKEDITOR.plugins.add("pastefromword",{requires:"clipboard",init:function(a){var d=0,f=this.path;a.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a){var e=this;d=1;a.once("beforePaste",i);a.getClipboardData({title:a.lang.pastefromword.title},function(c){c&&a.fire("paste",
831
+ {type:"html",dataValue:c.dataValue});a.fire("afterCommandExec",{name:"pastefromword",command:e,returnValue:!!c})})}});a.ui.addButton&&a.ui.addButton("PasteFromWord",{label:a.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});a.on("pasteState",function(b){a.getCommand("pastefromword").setState(b.data)});a.on("paste",function(b){var e=b.data,c=e.dataValue;if(c&&(d||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(c))){var g=h(a,f,function(){if(g)a.fire("paste",e);
832
+ else if(!a.config.pasteFromWordPromptCleanup||d||confirm(a.lang.pastefromword.confirmCleanup))e.dataValue=CKEDITOR.cleanWord(c,a)});g&&b.cancel()}},null,null,3)}})})();(function(){var h,j={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var g,b=a.config,e=b.baseHref?'<base href="'+b.baseHref+'"/>':"",i=CKEDITOR.env.isCustomDomain();if(b.fullPage)g=a.getData().replace(/<head>/,"$&"+e).replace(/[^>]*(?=<\/title>)/,"$& &mdash; "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));g=a.config.docType+
833
+ '<html dir="'+a.config.contentsLangDirection+'"><head>'+e+"<title>"+a.lang.preview.preview+"</title>"+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+"</head>"+(b+">")+a.getData()+"</body></html>"}e=640;b=420;d=80;try{var c=window.screen,e=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(j){}if(!a.fire("contentPreview",a={dataValue:g}))return!1;c="";i&&(window._cke_htmlToLoad=a.dataValue,c='javascript:void( (function(){document.open();document.domain="'+document.domain+
834
+ '";document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )');CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a.dataValue,c=h+"preview.html");c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+e+",height="+b+",left="+d);if(!i&&!CKEDITOR.env.gecko){var f=c.document;f.open();f.write(a.dataValue);f.close();CKEDITOR.env.webkit&&setTimeout(function(){f.body.innerHTML=f.body.innerHTML+""},0)}return!0}};
835
+ CKEDITOR.plugins.add("preview",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(h=this.path,a.addCommand("preview",j),a.ui.addButton&&a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview",toolbar:"document,40"}))}})})();CKEDITOR.plugins.add("print",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}});CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.opera||(CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print"))},canUndo:!1,readOnly:1,modes:{wysiwyg:!CKEDITOR.env.opera}};CKEDITOR.plugins.add("removeformat",{init:function(a){a.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);a.ui.addButton&&a.ui.addButton("RemoveFormat",{label:a.lang.removeformat.toolbar,command:"removeFormat",toolbar:"cleanup,10"})}});
836
+ CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,k=a.getSelection().getRanges(1),l=k.createIterator(),c;c=l.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var i=c.createBookmark(),b=i.startNode,j=i.endNode,
837
+ d=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};d(b);if(j){d(j);for(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(j);)d=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),!("img"==b.getName()&&b.data("cke-realelement"))&&f(a,b)&&(h.test(b.getName())?b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=d}c.moveToBookmark(i)}a.forceNextSelectionCheck();a.getSelection().selectRanges(k)}}},
838
+ filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,code,del,dfn,em,font,i,ins,kbd,q,s,samp,small,span,strike,strong,sub,sup,tt,u,var";CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var b={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){if(a=a.element.$.form)try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save",b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})();(function(){CKEDITOR.plugins.add("selectall",{init:function(b){b.addCommand("selectAll",{modes:{wysiwyg:1,source:1},exec:function(a){var b=a.editable();if(b.is("textarea"))a=b.$,CKEDITOR.env.ie?a.createTextRange().execCommand("SelectAll"):(a.selectionStart=0,a.selectionEnd=a.value.length),a.focus();else{if(b.is("body"))a.document.$.execCommand("SelectAll",!1,null);else{var c=a.createRange();c.selectNodeContents(b);c.select()}a.forceNextSelectionCheck();a.selectionChange()}},canUndo:!1});b.ui.addButton&&
839
+ b.ui.addButton("SelectAll",{label:b.lang.selectall.toolbar,command:"selectAll",toolbar:"selection,10"})}})})();(function(){var d={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[b]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{onLoad:function(){function a(a){return".%1.%2 p,.%1.%2 div,.%1.%2 pre,.%1.%2 address,.%1.%2 blockquote,.%1.%2 h1,.%1.%2 h2,.%1.%2 h3,.%1.%2 h4,.%1.%2 h5,.%1.%2 h6{background-position: top %3;padding-%3: 8px;}".replace(/%1/g,
840
+ "cke_show_blocks").replace(/%2/g,"cke_contents_"+a).replace(/%3/g,"rtl"==a?"right":"left")}CKEDITOR.addCss(".%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;border: 1px dotted gray;padding-top: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}".replace(/%1/g,
841
+ "background-image: url("+CKEDITOR.getUrl(this.path)+"images/block_").replace(/%2/g,"cke_show_blocks ")+a("ltr")+a("rtl"))},init:function(a){if(!a.blockless){var b=a.addCommand("showblocks",d);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});if(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE){var c=
842
+ function(){b.refresh(a)};a.on("focus",c);a.on("blur",c)}a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)})}}})})();(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,;.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,;.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,;.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
843
+ "cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&(d.is("table")&&(!d.hasAttribute("border")||
844
+ 0>=parseInt(d.getAttribute("border"),10)))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor,a=b&&b.dataFilter,b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"],c=parseInt(a.border,10);if((!c||0>=c)&&(!b||-1==b.indexOf("cke_show_border")))a["class"]=(b||"")+" cke_show_border"}}});b&&b.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
845
+ ""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
846
+ arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments);parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})})})();(function(){CKEDITOR.plugins.add("sourcearea",{init:function(a){function d(){this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show()}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;a.addMode("source",function(e){var b=a.ui.space("contents").getDocument().createElement("textarea");b.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",
847
+ outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.setAttribute("dir","ltr");b.addClass("cke_source cke_reset cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget",this);e()});a.addCommand("source",e.commands.source);a.ui.addButton&&
848
+ a.ui.addButton("Source",{label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)})}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":
849
+ "remove")+"Attribute"]("readOnly","readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})();CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};CKEDITOR.plugins.add("specialchar",{availableLangs:{ca:1,cs:1,cy:1,de:1,en:1,eo:1,es:1,et:1,fa:1,fi:1,fr:1,"fr-ca":1,he:1,hr:1,it:1,ku:1,lv:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,sk:1,sq:1,sv:1,th:1,tr:1,ug:1,"zh-cn":1},requires:"dialog",init:function(a){var c=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js");a.addCommand("specialchar",{exec:function(){var b=a.langCode,b=c.availableLangs[b]?b:c.availableLangs[b.replace(/-.*/,"")]?b.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+
850
+ "dialogs/lang/"+b+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,c.langEntries[b]);a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1});a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}});CKEDITOR.config.specialChars="! &quot; # $ % &amp; ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; &lt; = &gt; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ &euro; &lsquo; &rsquo; &ldquo; &rdquo; &ndash; &mdash; &iexcl; &cent; &pound; &curren; &yen; &brvbar; &sect; &uml; &copy; &ordf; &laquo; &not; &reg; &macr; &deg; &sup2; &sup3; &acute; &micro; &para; &middot; &cedil; &sup1; &ordm; &raquo; &frac14; &frac12; &frac34; &iquest; &Agrave; &Aacute; &Acirc; &Atilde; &Auml; &Aring; &AElig; &Ccedil; &Egrave; &Eacute; &Ecirc; &Euml; &Igrave; &Iacute; &Icirc; &Iuml; &ETH; &Ntilde; &Ograve; &Oacute; &Ocirc; &Otilde; &Ouml; &times; &Oslash; &Ugrave; &Uacute; &Ucirc; &Uuml; &Yacute; &THORN; &szlig; &agrave; &aacute; &acirc; &atilde; &auml; &aring; &aelig; &ccedil; &egrave; &eacute; &ecirc; &euml; &igrave; &iacute; &icirc; &iuml; &eth; &ntilde; &ograve; &oacute; &ocirc; &otilde; &ouml; &divide; &oslash; &ugrave; &uacute; &ucirc; &uuml; &yacute; &thorn; &yuml; &OElig; &oelig; &#372; &#374 &#373 &#375; &sbquo; &#8219; &bdquo; &hellip; &trade; &#9658; &bull; &rarr; &rArr; &hArr; &diams; &asymp;".split(" ");CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var d=function(a){var b=this._;if(b.state!==CKEDITOR.TRISTATE_DISABLED){b.previousState=b.state;var c=b.menu;c||(c=b.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),c.onHide=CKEDITOR.tools.bind(function(){this.setState(this.modes&&this.modes[a.mode]?b.previousState:CKEDITOR.TRISTATE_DISABLED)},this),this.onMenu&&c.addListener(this.onMenu));b.on?c.hide():(this.setState(CKEDITOR.TRISTATE_ON),
851
+ setTimeout(function(){c.show(CKEDITOR.document.getById(b.id),4)},0))}};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(a){delete a.panel;this.base(a);this.hasArrow=!0;this.click=d},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}});CKEDITOR.UI_MENUBUTTON="menubutton";(function(){function k(a,c){var b=0,d;for(d in c)if(c[d]==a){b=1;break}return b}var i="",r=function(){function a(){b.once("focus",f);b.once("blur",c)}function c(b){var b=b.editor,c=d.getScayt(b),f=b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE;c&&(d.setPaused(b,!c.disabled),d.setControlId(b,c.id),c.destroy(!0),delete d.instances[b.name],f&&a())}var b=this,f=function(){if(!("undefined"!=typeof d.instances[b.name]||null!=d.instances[b.name])){var a=b.config,c={};c.srcNodeRef="BODY"==b.editable().$.nodeName?
852
+ b.document.getWindow().$.frameElement:b.editable().$;c.assocApp="CKEDITOR."+CKEDITOR.version+"@"+CKEDITOR.revision;c.customerid=a.scayt_customerid||"1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2";c.customDictionaryIds=a.scayt_customDictionaryIds||"";c.userDictionaryName=a.scayt_userDictionaryName||"";c.sLang=a.scayt_sLang||"en_US";c.onLoad=function(){CKEDITOR.env.ie&&8>CKEDITOR.env.version||this.addStyle(this.selectorCss(),"padding-bottom: 2px !important;");b.editable().hasFocus&&
853
+ !d.isControlRestored(b)&&this.focus()};c.onBeforeChange=function(){d.getScayt(b)&&!b.checkDirty()&&setTimeout(function(){b.resetDirty()},0)};a=window.scayt_custom_params;if("object"==typeof a)for(var f in a)c[f]=a[f];d.getControlId(b)&&(c.id=d.getControlId(b));var o=new window.scayt(c);o.afterMarkupRemove.push(function(a){(new CKEDITOR.dom.element(a,o.document)).mergeSiblings()});if(c=d.instances[b.name])o.sLang=c.sLang,o.option(c.option()),o.paused=c.paused;d.instances[b.name]=o;try{o.setDisabled(!1===
854
+ d.isPaused(b))}catch(e){}b.fire("showScaytState")}};b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a():b.on("contentDom",f);b.on("contentDomUnload",function(){for(var a=CKEDITOR.document.getElementsByTag("script"),b=/^dojoIoScript(\d+)$/i,c=/^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i,d=0;d<a.count();d++){var f=a.getItem(d),e=f.getId(),h=f.getAttribute("src");e&&(h&&e.match(b)&&h.match(c))&&f.remove()}});b.on("beforeCommandExec",function(a){"source"==a.data.name&&"source"==
855
+ b.mode&&d.markControlRestore(b)});b.on("afterCommandExec",function(a){d.isScaytEnabled(b)&&"wysiwyg"==b.mode&&("undo"==a.data.name||"redo"==a.data.name)&&window.setTimeout(function(){d.getScayt(b).refresh()},10)});b.on("destroy",c);b.on("setData",c);b.on("insertElement",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&(CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("insertHtml",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&
856
+ (CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("scaytDialog",function(a){a.data.djConfig=window.djConfig;a.data.scayt_control=d.getScayt(b);a.data.tab=i;a.data.scayt=window.scayt});var e=b.dataProcessor;(e=e&&e.htmlFilter)&&e.addRules({elements:{span:function(a){if(a.attributes["data-scayt_word"]&&a.attributes["data-scaytid"])return delete a.name,a}}});e=CKEDITOR.plugins.undo.Image.prototype;e.equals=CKEDITOR.tools.override(e.equals,
857
+ function(a){return function(b){var c=this.contents,f=b.contents,e=d.getScayt(this.editor);e&&d.isScaytReady(this.editor)&&(this.contents=e.reset(c)||"",b.contents=e.reset(f)||"");e=a.apply(this,arguments);this.contents=c;b.contents=f;return e}});b.document&&(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||b.focusManager.hasFocus)&&f()};CKEDITOR.plugins.scayt={engineLoaded:!1,instances:{},controlInfo:{},setControlInfo:function(a,c){a&&(a.name&&"object"!=typeof this.controlInfo[a.name])&&(this.controlInfo[a.name]=
858
+ {});for(var b in c)this.controlInfo[a.name][b]=c[b]},isControlRestored:function(a){return a&&a.name&&this.controlInfo[a.name]?this.controlInfo[a.name].restored:!1},markControlRestore:function(a){this.setControlInfo(a,{restored:!0})},setControlId:function(a,c){this.setControlInfo(a,{id:c})},getControlId:function(a){return a&&a.name&&this.controlInfo[a.name]&&this.controlInfo[a.name].id?this.controlInfo[a.name].id:null},setPaused:function(a,c){this.setControlInfo(a,{paused:c})},isPaused:function(a){if(a&&
859
+ a.name&&this.controlInfo[a.name])return this.controlInfo[a.name].paused},getScayt:function(a){return this.instances[a.name]},isScaytReady:function(a){return!0===this.engineLoaded&&"undefined"!==typeof window.scayt&&this.getScayt(a)},isScaytEnabled:function(a){return(a=this.getScayt(a))?!1===a.disabled:!1},getUiTabs:function(a){var c=[],b=a.config.scayt_uiTabs||"1,1,1",b=b.split(",");b[3]="1";for(var d=0;4>d;d++)c[d]="undefined"!=typeof window.scayt&&"undefined"!=typeof window.scayt.uiTags?parseInt(b[d],
860
+ 10)&&window.scayt.uiTags[d]:parseInt(b[d],10);"object"==typeof a.plugins.wsc?c.push(1):c.push(0);return c},loadEngine:function(a){if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version||CKEDITOR.env.opera||CKEDITOR.env.air)return a.fire("showScaytState");if(!0===this.engineLoaded)return r.apply(a);if(-1==this.engineLoaded)return CKEDITOR.on("scaytReady",function(){r.apply(a)});CKEDITOR.on("scaytReady",r,a);CKEDITOR.on("scaytReady",function(){this.engineLoaded=!0},this,null,0);this.engineLoaded=-1;var c=
861
+ document.location.protocol,c=-1!=c.search(/https?:/)?c:"http:",c=a.config.scayt_srcUrl||c+"//svc.webspellchecker.net/scayt26/loader__base.js",b=d.parseUrl(c).path+"/";void 0==window.scayt?(CKEDITOR._djScaytConfig={baseUrl:b,addOnLoad:[function(){CKEDITOR.fireOnce("scaytReady")}],isDebug:!1},CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",{attributes:{type:"text/javascript",async:"true",src:c}}))):CKEDITOR.fireOnce("scaytReady");return null},parseUrl:function(a){var c;return a.match&&
862
+ (c=a.match(/(.*)[\/\\](.*?\.\w+)$/))?{path:c[1],file:c[2]}:a}};var d=CKEDITOR.plugins.scayt,s=function(a,c,b,d,e,k,g){a.addCommand(d,e);a.addMenuItem(d,{label:b,command:d,group:k,order:g})},v={preserveState:!0,editorFocus:!1,canUndo:!1,exec:function(a){if(d.isScaytReady(a)){var c=d.isScaytEnabled(a);this.setState(c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_ON);a=d.getScayt(a);a.focus();a.setDisabled(c)}else!a.config.scayt_autoStartup&&0<=d.engineLoaded&&(a.focus(),this.setState(CKEDITOR.TRISTATE_DISABLED),
863
+ d.loadEngine(a))}};CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",beforeInit:function(a){var c=a.config.scayt_contextMenuItemsOrder||"suggest|moresuggest|control",b="";if((c=c.split("|"))&&c.length)for(var d=0;d<c.length;d++)b+="scayt_"+c[d]+(c.length!=parseInt(d,10)+1?",":"");a.config.menu_groups=b+","+a.config.menu_groups},checkEnvironment:function(){return CKEDITOR.env.opera||CKEDITOR.env.air?0:1},init:function(a){var c=a.dataProcessor&&a.dataProcessor.dataFilter,b={elements:{span:function(a){var b=
864
+ a.attributes;b&&b["data-scaytid"]&&delete a.name}}};c&&c.addRules(b);var f={},e={},p=a.addCommand("scaytcheck",v);CKEDITOR.dialog.add("scaytcheck",CKEDITOR.getUrl(this.path+"dialogs/options.js"));c=d.getUiTabs(a);a.addMenuGroup("scaytButton");a.addMenuGroup("scayt_suggest",-10);a.addMenuGroup("scayt_moresuggest",-9);a.addMenuGroup("scayt_control",-8);var b={},g=a.lang.scayt;b.scaytToggle={label:g.enable,command:"scaytcheck",group:"scaytButton"};1==c[0]&&(b.scaytOptions={label:g.options,group:"scaytButton",
865
+ onClick:function(){i="options";a.openDialog("scaytcheck")}});1==c[1]&&(b.scaytLangs={label:g.langs,group:"scaytButton",onClick:function(){i="langs";a.openDialog("scaytcheck")}});1==c[2]&&(b.scaytDict={label:g.dictionariesTab,group:"scaytButton",onClick:function(){i="dictionaries";a.openDialog("scaytcheck")}});b.scaytAbout={label:a.lang.scayt.about,group:"scaytButton",onClick:function(){i="about";a.openDialog("scaytcheck")}};1==c[4]&&(b.scaytWSC={label:a.lang.wsc.toolbar,group:"scaytButton",command:"checkspell"});
866
+ a.addMenuItems(b);a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,{label:g.title,title:CKEDITOR.env.opera?g.opera_title:g.title,modes:{wysiwyg:this.checkEnvironment()},toolbar:"spellchecker,20",onRender:function(){p.on("state",function(){this.setState(p.state)},this)},onMenu:function(){var b=d.isScaytEnabled(a);a.getMenuItem("scaytToggle").label=g[b?"disable":"enable"];var c=d.getUiTabs(a);return{scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b&&c[0]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b&&
867
+ c[1]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b&&c[2]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b&&c[3]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytWSC:c[4]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}});a.contextMenu&&a.addMenuItems&&a.contextMenu.addListener(function(b,c){if(!d.isScaytEnabled(a)||c.getRanges()[0].checkReadOnly())return null;var l=d.getScayt(a),q=l.getScaytNode();if(!q)return null;var h=l.getWord(q);if(!h)return null;var i=l.getLang(),
868
+ m=a.config.scayt_contextCommands||"all",h=window.scayt.getSuggestion(h,i),m=m.split("|"),n;for(n in f){delete a._.menuItems[n];delete a.commands[n]}for(n in e){delete a._.menuItems[n];delete a.commands[n]}if(!h||!h.length){s(a,"no_sugg",g.noSuggestions,"scayt_no_sugg",{exec:function(){}},"scayt_control",1,true);e.scayt_no_sugg=CKEDITOR.TRISTATE_OFF}else{f={};e={};n=a.config.scayt_moreSuggestions||"on";var i=false,u=a.config.scayt_maxSuggestions;typeof u!="number"&&(u=5);!u&&(u=h.length);for(var j=
869
+ 0,p=h.length;j<p;j=j+1){var t="scayt_suggestion_"+h[j].replace(" ","_"),r=function(a,b){return{exec:function(){l.replace(a,b)}}}(q,h[j]);if(j<u){s(a,"button_"+t,h[j],t,r,"scayt_suggest",j+1);e[t]=CKEDITOR.TRISTATE_OFF}else if(n=="on"){s(a,"button_"+t,h[j],t,r,"scayt_moresuggest",j+1);f[t]=CKEDITOR.TRISTATE_OFF;i=true}}if(i){a.addMenuItem("scayt_moresuggest",{label:g.moreSuggestions,group:"scayt_moresuggest",order:10,getItems:function(){return f}});e.scayt_moresuggest=CKEDITOR.TRISTATE_OFF}}if(k("all",
870
+ m)||k("ignore",m)){s(a,"ignore",g.ignore,"scayt_ignore",{exec:function(){l.ignore(q)}},"scayt_control",2);e.scayt_ignore=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("ignoreall",m)){s(a,"ignore_all",g.ignoreAll,"scayt_ignore_all",{exec:function(){l.ignoreAll(q)}},"scayt_control",3);e.scayt_ignore_all=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("add",m)){s(a,"add_word",g.addWord,"scayt_add_word",{exec:function(){window.scayt.addWordToUserDictionary(q)}},"scayt_control",4);e.scayt_add_word=CKEDITOR.TRISTATE_OFF}l.fireOnContextMenu&&
871
+ l.fireOnContextMenu(a);return e});c=function(b){b.removeListener();CKEDITOR.env.opera||CKEDITOR.env.air?p.setState(CKEDITOR.TRISTATE_DISABLED):p.setState(d.isScaytEnabled(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)};a.on("showScaytState",c);a.on("instanceReady",c);if(a.config.scayt_autoStartup)a.on("instanceReady",function(){d.loadEngine(a)})},afterInit:function(a){var c,b=function(a){if(a.hasAttribute("data-scaytid"))return!1};a._.elementsPath&&(c=a._.elementsPath.filters)&&c.push(b);a.addRemoveFormatFilter&&
872
+ a.addRemoveFormatFilter(b)}})})();(function(){CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(c){var j=c.config,f=c.lang.stylescombo,g={},i=[],k=[];c.on("stylesSet",function(b){if(b=b.data.styles){for(var a,h,d=0,e=b.length;d<e;d++)if(a=b[d],!(c.blockless&&a.element in CKEDITOR.dtd.$block)&&(h=a.name,a=new CKEDITOR.style(a),!c.filter.customConfig||c.filter.check(a)))a._name=h,a._.enterMode=j.enterMode,a._.weight=d+1E3*(a.type==CKEDITOR.STYLE_OBJECT?1:a.type==CKEDITOR.STYLE_BLOCK?2:3),g[h]=a,i.push(a),k.push(a);
873
+ i.sort(function(a,b){return a._.weight-b._.weight})}});c.ui.addRichCombo("Styles",{label:f.label,title:f.panelTitle,toolbar:"styles,10",allowedContent:k,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(j.contentsCss),multiSelect:!0,attributes:{"aria-label":f.panelTitle}},init:function(){var b,a,c,d,e,g;e=0;for(g=i.length;e<g;e++)b=i[e],a=b._name,d=b.type,d!=c&&(this.startGroup(f["panelTitle"+d]),c=d),this.add(a,b.type==CKEDITOR.STYLE_OBJECT?a:b.buildPreview(),a);this.commit()},onClick:function(b){c.focus();
874
+ c.fire("saveSnapshot");var b=g[b],a=c.elementPath();c[b.checkActive(a)?"removeStyle":"applyStyle"](b);c.fire("saveSnapshot")},onRender:function(){c.on("selectionChange",function(b){for(var a=this.getValue(),b=b.data.path.elements,c=0,d=b.length,e;c<d;c++){e=b[c];for(var f in g)if(g[f].checkElementRemovable(e,!0)){f!=a&&this.setValue(f);return}}this.setValue("")},this)},onOpen:function(){var b=c.getSelection().getSelectedElement(),b=c.elementPath(b),a=[0,0,0,0];this.showAll();this.unmarkAll();for(var h in g){var d=
875
+ g[h],e=d.type;e==CKEDITOR.STYLE_BLOCK&&!b.isContextFor(d.element)?this.hideItem(h):(d.checkActive(b)?this.mark(h):e==CKEDITOR.STYLE_OBJECT&&!d.checkApplicable(b)&&(this.hideItem(h),a[e]--),a[e]++)}a[CKEDITOR.STYLE_BLOCK]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_BLOCK]);a[CKEDITOR.STYLE_INLINE]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_INLINE]);a[CKEDITOR.STYLE_OBJECT]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_OBJECT])},reset:function(){g={};i=[]}})}})})();(function(){function i(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getCommonAncestor(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1:
876
+ 0]});if(!a&&!c){for(var f=b.getAscendant("table").$,a=b.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),d.document),g=0,h=a.length;g<h;g++){var i=f.append((new CKEDITOR.dom.element(a[g],d.document)).clone(!1,!1));!CKEDITOR.env.ie&&i.appendBogus()}e.moveToElementEditStart(f)}else if(a)a=new CKEDITOR.dom.element(a),e.moveToElementEditStart(a),(!e.checkStartOfBlock()||!e.checkEndOfBlock())&&e.selectNodeContents(a);else return!0;e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,
877
+ source:1}},g={exec:function(c){c.container.focusNext(!0,c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(c){for(var d=!1!==c.config.enableTabKeyTools,e=c.config.tabSpaces||0,b="";e--;)b+=" ";if(b)c.on("key",function(a){9==a.data.keyCode&&(c.insertHtml(b),a.cancel())});if(d)c.on("key",function(a){(9==a.data.keyCode&&c.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&c.execCommand("selectPreviousCell"))&&a.cancel()});
878
+ c.addCommand("blur",CKEDITOR.tools.extend(g,h));c.addCommand("blurBack",CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",i());c.addCommand("selectPreviousCell",i(!0))}})})();
879
+ CKEDITOR.dom.element.prototype.focusNext=function(i,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(i,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,i){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&&
880
+ (f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):!d&&0===a&&(d=b,e=a)}}d&&d.focus()};
881
+ CKEDITOR.dom.element.prototype.focusPrevious=function(i,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,i){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}if(b<g&&(!d||b>e))d=a,e=b}}d&&d.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,e){this.setState(e.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var b=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table",allowedContent:"table{width,height}[align,border,cellpadding,cellspacing,summary];caption tbody thead tfoot;th td tr[scope];"+(a.plugins.dialogadvtab?
882
+ "table"+a.plugins.dialogadvtab.allowedContent():""),requiredContent:"table",contentTransformations:[["table{width}: sizeToStyle","table[width]: sizeToAttribute"]]}));a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",d()));a.addCommand("tableDelete",d({exec:function(a){var c=a.elementPath().contains("table",1);if(c){var b=c.getParent();1==b.getChildCount()&&!b.is("body","td","th")&&(c=b);a=a.createRange();a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);c.remove();a.select()}}}));
883
+ a.ui.addButton&&a.ui.addButton("Table",{label:b.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");a.addMenuItems&&a.addMenuItems({table:{label:b.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:b.deleteTable,command:"tableDelete",group:"table",order:1}});a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")});a.contextMenu&&
884
+ a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function p(e){function d(a){!(0<b.length)&&(a.type==CKEDITOR.NODE_ELEMENT&&y.test(a.getName())&&!a.getCustomData("selected_cell"))&&(CKEDITOR.dom.element.setMarker(c,a,"selected_cell",!0),b.push(a))}for(var e=e.getRanges(),b=[],c={},a=0;a<e.length;a++){var f=e[a];if(f.collapsed)f=f.getCommonAncestor(),(f=f.getAscendant("td",!0)||f.getAscendant("th",!0))&&b.push(f);else{var f=new CKEDITOR.dom.walker(f),g;for(f.guard=d;g=f.next();)if(g.type!=CKEDITOR.NODE_ELEMENT||!g.is(CKEDITOR.dtd.table))if((g=
885
+ g.getAscendant("td",!0)||g.getAscendant("th",!0))&&!g.getCustomData("selected_cell"))CKEDITOR.dom.element.setMarker(c,g,"selected_cell",!0),b.push(g)}}CKEDITOR.dom.element.clearAllMarkers(c);return b}function o(e,d){for(var b=p(e),c=b[0],a=c.getAscendant("table"),c=c.getDocument(),f=b[0].getParent(),g=f.$.rowIndex,b=b[b.length-1],h=b.getParent().$.rowIndex+b.$.rowSpan-1,b=new CKEDITOR.dom.element(a.$.rows[h]),g=d?g:h,f=d?f:b,b=CKEDITOR.tools.buildTableMap(a),a=b[g],g=d?b[g-1]:b[g+1],b=b[0].length,
886
+ c=c.createElement("tr"),h=0;a[h]&&h<b;h++){var i;1<a[h].rowSpan&&g&&a[h]==g[h]?(i=a[h],i.rowSpan+=1):(i=(new CKEDITOR.dom.element(a[h])).clone(),i.removeAttribute("rowSpan"),!CKEDITOR.env.ie&&i.appendBogus(),c.append(i),i=i.$);h+=i.colSpan-1}d?c.insertBefore(f):c.insertAfter(f)}function q(e){if(e instanceof CKEDITOR.dom.selection){for(var d=p(e),b=d[0].getAscendant("table"),c=CKEDITOR.tools.buildTableMap(b),e=d[0].getParent().$.rowIndex,d=d[d.length-1],a=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[],
887
+ f=e;f<=a;f++){for(var g=c[f],h=new CKEDITOR.dom.element(b.$.rows[f]),i=0;i<g.length;i++){var j=new CKEDITOR.dom.element(g[i]),l=j.getParent().$.rowIndex;1==j.$.rowSpan?j.remove():(j.$.rowSpan-=1,l==f&&(l=c[f+1],l[i-1]?j.insertAfter(new CKEDITOR.dom.element(l[i-1])):(new CKEDITOR.dom.element(b.$.rows[f+1])).append(j,1)));i+=j.$.colSpan-1}d.push(h)}c=b.$.rows;b=new CKEDITOR.dom.element(c[a+1]||(0<e?c[e-1]:null)||b.$.parentNode);for(f=d.length;0<=f;f--)q(d[f]);return b}e instanceof CKEDITOR.dom.element&&
888
+ (b=e.getAscendant("table"),1==b.$.rows.length?b.remove():e.remove());return null}function r(e,d){for(var b=d?Infinity:0,c=0;c<e.length;c++){var a;a=e[c];for(var f=d,g=a.getParent().$.cells,h=0,i=0;i<g.length;i++){var j=g[i],h=h+(f?1:j.colSpan);if(j==a.$)break}a=h-1;if(d?a<b:a>b)b=a}return b}function k(e,d){for(var b=p(e),c=b[0].getAscendant("table"),a=r(b,1),b=r(b),a=d?a:b,f=CKEDITOR.tools.buildTableMap(c),c=[],b=[],g=f.length,h=0;h<g;h++)c.push(f[h][a]),b.push(d?f[h][a-1]:f[h][a+1]);for(h=0;h<g;h++)c[h]&&
889
+ (1<c[h].colSpan&&b[h]==c[h]?(a=c[h],a.colSpan+=1):(a=(new CKEDITOR.dom.element(c[h])).clone(),a.removeAttribute("colSpan"),!CKEDITOR.env.ie&&a.appendBogus(),a[d?"insertBefore":"insertAfter"].call(a,new CKEDITOR.dom.element(c[h])),a=a.$),h+=a.rowSpan-1)}function u(e,d){var b=e.getStartElement();if(b=b.getAscendant("td",1)||b.getAscendant("th",1)){var c=b.clone();CKEDITOR.env.ie||c.appendBogus();d?c.insertBefore(b):c.insertAfter(b)}}function t(e){if(e instanceof CKEDITOR.dom.selection){var e=p(e),d=
890
+ e[0]&&e[0].getAscendant("table"),b;a:{var c=0;b=e.length-1;for(var a={},f,g;f=e[c++];)CKEDITOR.dom.element.setMarker(a,f,"delete_cell",!0);for(c=0;f=e[c++];)if((g=f.getPrevious())&&!g.getCustomData("delete_cell")||(g=f.getNext())&&!g.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(a);b=g;break a}CKEDITOR.dom.element.clearAllMarkers(a);g=e[0].getParent();(g=g.getPrevious())?b=g.getLast():(g=e[b].getParent(),b=(g=g.getNext())?g.getChild(0):null)}for(g=e.length-1;0<=g;g--)t(e[g]);
891
+ b?m(b,!0):d&&d.remove()}else e instanceof CKEDITOR.dom.element&&(d=e.getParent(),1==d.getChildCount()?d.remove():e.remove())}function m(e,d){var b=new CKEDITOR.dom.range(e.getDocument());if(!b["moveToElementEdit"+(d?"End":"Start")](e))b.selectNodeContents(e),b.collapse(d?!1:!0);b.select(!0)}function v(e,d,b){e=e[d];if("undefined"==typeof b)return e;for(d=0;e&&d<e.length;d++){if(b.is&&e[d]==b.$)return d;if(d==b)return new CKEDITOR.dom.element(e[d])}return b.is?-1:null}function s(e,d,b){var c=p(e),
892
+ a;if((d?1!=c.length:2>c.length)||(a=e.getCommonAncestor())&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))return!1;var f,e=c[0];a=e.getAscendant("table");var g=CKEDITOR.tools.buildTableMap(a),h=g.length,i=g[0].length,j=e.getParent().$.rowIndex,l=v(g,j,e);if(d){var n;try{var m=parseInt(e.getAttribute("rowspan"),10)||1;f=parseInt(e.getAttribute("colspan"),10)||1;n=g["up"==d?j-m:"down"==d?j+m:j]["left"==d?l-f:"right"==d?l+f:l]}catch(z){return!1}if(!n||e.$==n)return!1;c["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(n))}for(var d=
893
+ e.getDocument(),o=j,m=n=0,q=!b&&new CKEDITOR.dom.documentFragment(d),s=0,d=0;d<c.length;d++){f=c[d];var k=f.getParent(),t=f.getFirst(),r=f.$.colSpan,u=f.$.rowSpan,k=k.$.rowIndex,w=v(g,k,f),s=s+r*u,m=Math.max(m,w-l+r);n=Math.max(n,k-j+u);if(!b){r=f;(u=r.getBogus())&&u.remove();r.trim();if(f.getChildren().count()){if(k!=o&&t&&(!t.isBlockBoundary||!t.isBlockBoundary({br:1})))(o=q.getLast(CKEDITOR.dom.walker.whitespaces(!0)))&&(!o.is||!o.is("br"))&&q.append("br");f.moveChildren(q)}d?f.remove():f.setHtml("")}o=
894
+ k}if(b)return n*m==s;q.moveChildren(e);CKEDITOR.env.ie||e.appendBogus();m>=i?e.removeAttribute("rowSpan"):e.$.rowSpan=n;n>=h?e.removeAttribute("colSpan"):e.$.colSpan=m;b=new CKEDITOR.dom.nodeList(a.$.rows);c=b.count();for(d=c-1;0<=d;d--)a=b.getItem(d),a.$.cells.length||(a.remove(),c++);return e}function w(e,d){var b=p(e);if(1<b.length)return!1;if(d)return!0;var b=b[0],c=b.getParent(),a=c.getAscendant("table"),f=CKEDITOR.tools.buildTableMap(a),g=c.$.rowIndex,h=v(f,g,b),i=b.$.rowSpan,j;if(1<i){j=Math.ceil(i/
895
+ 2);for(var i=Math.floor(i/2),c=g+j,a=new CKEDITOR.dom.element(a.$.rows[c]),f=v(f,c),l,c=b.clone(),g=0;g<f.length;g++)if(l=f[g],l.parentNode==a.$&&g>h){c.insertBefore(new CKEDITOR.dom.element(l));break}else l=null;l||a.append(c,!0)}else{i=j=1;a=c.clone();a.insertAfter(c);a.append(c=b.clone());l=v(f,g);for(h=0;h<l.length;h++)l[h].rowSpan++}CKEDITOR.env.ie||c.appendBogus();b.$.rowSpan=j;c.$.rowSpan=i;1==j&&b.removeAttribute("rowSpan");1==i&&c.removeAttribute("rowSpan");return c}function x(e,d){var b=
896
+ p(e);if(1<b.length)return!1;if(d)return!0;var b=b[0],c=b.getParent(),a=c.getAscendant("table"),a=CKEDITOR.tools.buildTableMap(a),f=v(a,c.$.rowIndex,b),g=b.$.colSpan;if(1<g)c=Math.ceil(g/2),g=Math.floor(g/2);else{for(var g=c=1,h=[],i=0;i<a.length;i++){var j=a[i];h.push(j[f]);1<j[f].rowSpan&&(i+=j[f].rowSpan-1)}for(a=0;a<h.length;a++)h[a].colSpan++}a=b.clone();a.insertAfter(b);CKEDITOR.env.ie||a.appendBogus();b.$.colSpan=c;a.$.colSpan=g;1==c&&b.removeAttribute("colSpan");1==g&&a.removeAttribute("colSpan");
897
+ return a}var y=/^(?:td|th)$/;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(e){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}function b(a,b){var c=e.addCommand(a,b);e.addFeature(c)}var c=e.lang.table;b("cellProperties",new CKEDITOR.dialogCommand("cellProperties",d({allowedContent:"td th{width,height,border-color,background-color,white-space,vertical-align,text-align}[colspan,rowspan]",
898
+ requiredContent:"table"})));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");b("rowDelete",d({requiredContent:"table",exec:function(a){a=a.getSelection();m(q(a))}}));b("rowInsertBefore",d({requiredContent:"table",exec:function(a){a=a.getSelection();o(a,!0)}}));b("rowInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();o(a)}}));b("columnDelete",d({requiredContent:"table",exec:function(a){for(var a=a.getSelection(),a=p(a),b=a[0],c=a[a.length-1],a=b.getAscendant("table"),
899
+ d=CKEDITOR.tools.buildTableMap(a),e,j,l=[],n=0,o=d.length;n<o;n++)for(var k=0,q=d[n].length;k<q;k++)d[n][k]==b.$&&(e=k),d[n][k]==c.$&&(j=k);for(n=e;n<=j;n++)for(k=0;k<d.length;k++)c=d[k],b=new CKEDITOR.dom.element(a.$.rows[k]),c=new CKEDITOR.dom.element(c[n]),c.$&&(1==c.$.colSpan?c.remove():c.$.colSpan-=1,k+=c.$.rowSpan-1,b.$.cells.length||l.push(b));j=a.$.rows[0]&&a.$.rows[0].cells;e=new CKEDITOR.dom.element(j[e]||(e?j[e-1]:a.$.parentNode));l.length==o&&a.remove();e&&m(e,!0)}}));b("columnInsertBefore",
900
+ d({requiredContent:"table",exec:function(a){a=a.getSelection();k(a,!0)}}));b("columnInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();k(a)}}));b("cellDelete",d({requiredContent:"table",exec:function(a){a=a.getSelection();t(a)}}));b("cellMerge",d({allowedContent:"td[colspan,rowspan]",requiredContent:"td[colspan,rowspan]",exec:function(a){m(s(a.getSelection()),!0)}}));b("cellMergeRight",d({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){m(s(a.getSelection(),
901
+ "right"),!0)}}));b("cellMergeDown",d({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){m(s(a.getSelection(),"down"),!0)}}));b("cellVerticalSplit",d({allowedContent:"td[rowspan]",requiredContent:"td[rowspan]",exec:function(a){m(w(a.getSelection()))}}));b("cellHorizontalSplit",d({allowedContent:"td[colspan]",requiredContent:"td[colspan]",exec:function(a){m(x(a.getSelection()))}}));b("cellInsertBefore",d({requiredContent:"table",exec:function(a){a=a.getSelection();u(a,!0)}}));
902
+ b("cellInsertAfter",d({requiredContent:"table",exec:function(a){a=a.getSelection();u(a)}}));e.addMenuItems&&e.addMenuItems({tablecell:{label:c.cell.menu,group:"tablecell",order:1,getItems:function(){var a=e.getSelection(),b=p(a);return{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:s(a,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:s(a,"right",!0)?CKEDITOR.TRISTATE_OFF:
903
+ CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:s(a,"down",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:w(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:x(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_properties:0<b.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}},tablecell_insertBefore:{label:c.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:c.cell.insertAfter,
904
+ group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:c.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:c.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:c.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:c.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:c.cell.splitHorizontal,group:"tablecell",
905
+ command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:c.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:c.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:c.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:c.row.insertBefore,
906
+ group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:c.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:c.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:c.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:c.column.insertBefore,
907
+ group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:c.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:c.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});e.contextMenu&&e.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getSelectedCells:p};
908
+ CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(p){for(var p=p.$.rows,o=-1,q=[],r=0;r<p.length;r++){o++;!q[o]&&(q[o]=[]);for(var k=-1,u=0;u<p[r].cells.length;u++){var t=p[r].cells[u];for(k++;q[o][k];)k++;for(var m=isNaN(t.colSpan)?1:t.colSpan,t=isNaN(t.rowSpan)?1:t.rowSpan,v=0;v<t;v++){q[o+v]||(q[o+v]=[]);for(var s=0;s<m;s++)q[o+v][k+s]=p[r].cells[u]}k+=m-1}}return q};(function(){function i(a){this.editor=a;this.reset()}CKEDITOR.plugins.add("undo",{init:function(a){function c(a){b.enabled&&!1!==a.data.command.canUndo&&b.save()}function d(){b.enabled=a.readOnly?!1:"wysiwyg"==a.mode;b.onChange()}var b=new i(a),e=a.addCommand("undo",{exec:function(){b.undo()&&(a.selectionChange(),this.fire("afterUndo"))},state:CKEDITOR.TRISTATE_DISABLED,canUndo:!1}),f=a.addCommand("redo",{exec:function(){b.redo()&&(a.selectionChange(),this.fire("afterRedo"))},state:CKEDITOR.TRISTATE_DISABLED,
909
+ canUndo:!1});a.setKeystroke([[CKEDITOR.CTRL+90,"undo"],[CKEDITOR.CTRL+89,"redo"],[CKEDITOR.CTRL+CKEDITOR.SHIFT+90,"redo"]]);b.onChange=function(){e.setState(b.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);f.setState(b.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",c);a.on("afterCommandExec",c);a.on("saveSnapshot",function(a){b.save(a.data&&a.data.contentOnly)});a.on("contentDom",function(){a.editable().on("keydown",function(a){!a.data.$.ctrlKey&&
910
+ !a.data.$.metaKey&&b.type(a)})});a.on("beforeModeUnload",function(){"wysiwyg"==a.mode&&b.save(!0)});a.on("mode",d);a.on("readOnly",d);a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){b.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){b.currentImage&&b.update()});a.on("lockSnapshot",b.lock,b);a.on("unlockSnapshot",b.unlock,b)}});CKEDITOR.plugins.undo=
911
+ {};var h=CKEDITOR.plugins.undo.Image=function(a){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot(),d=c&&a.getSelection();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=c;this.bookmarks=d&&d.createBookmarks2(!0);a.fire("afterUndoImage")},j=/\b(?:href|src|name)="[^"]*?"/gi;h.prototype={equals:function(a,c){var d=this.contents,b=a.contents;if(CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat))d=d.replace(j,""),b=b.replace(j,"");if(d!=b)return!1;
912
+ if(c)return!0;d=this.bookmarks;b=a.bookmarks;if(d||b){if(!d||!b||d.length!=b.length)return!1;for(var e=0;e<d.length;e++){var f=d[e],g=b[e];if(f.startOffset!=g.startOffset||f.endOffset!=g.endOffset||!CKEDITOR.tools.arrayCompare(f.start,g.start)||!CKEDITOR.tools.arrayCompare(f.end,g.end))return!1}}return!0}};var k={8:1,46:1},m={16:1,17:1,18:1},l={37:1,38:1,39:1,40:1};i.prototype={type:function(a){var a=a&&a.data.getKey(),c=a in k,d=this.lastKeystroke in k,b=c&&a==this.lastKeystroke,e=a in l,f=this.lastKeystroke in
913
+ l;if(!(a in m||this.typing)||!c&&!e&&(d||f)||c&&!b){var g=new h(this.editor),i=this.snapshots.length;CKEDITOR.tools.setTimeout(function(){var a=this.editor.getSnapshot();CKEDITOR.env.ie&&(a=a.replace(/\s+data-cke-expando=".*?"/g,""));g.contents!=a&&i==this.snapshots.length&&(this.typing=!0,this.save(!1,g,!1)||this.snapshots.splice(this.index+1,this.snapshots.length-this.index-1),this.hasUndo=!0,this.hasRedo=!1,this.modifiersCount=this.typesCount=1,this.onChange())},0,this)}this.lastKeystroke=a;c?
914
+ (this.typesCount=0,this.modifiersCount++,25<this.modifiersCount&&(this.save(!1,null,!1),this.modifiersCount=1)):e||(this.modifiersCount=0,this.typesCount++,25<this.typesCount&&(this.save(!1,null,!1),this.typesCount=1))},reset:function(){this.lastKeystroke=0;this.snapshots=[];this.index=-1;this.limit=this.editor.config.undoStackSize||20;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.typing=!1;delete this.lastKeystroke;this.modifiersCount=
915
+ this.typesCount=0},fireChange:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,c,d){if(this.locked)return!1;var b=this.snapshots;c||(c=new h(this.editor));if(!1===c.contents||this.currentImage&&c.equals(this.currentImage,a))return!1;b.splice(this.index+1,b.length-this.index-1);b.length==this.limit&&b.shift();this.index=b.push(c)-1;this.currentImage=c;!1!==d&&this.fireChange();return!0},restoreImage:function(a){var c=
916
+ this.editor,d;a.bookmarks&&(c.focus(),d=c.getSelection());this.locked=1;this.editor.loadSnapshot(a.contents);a.bookmarks?d.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=0;this.index=a.index;this.update();this.fireChange()},getNextImage:function(a){var c=this.snapshots,d=this.currentImage,b;if(d)if(a)for(b=this.index-1;0<=b;b--){if(a=c[b],!d.equals(a,!0))return a.index=b,a}else for(b=this.index+1;b<c.length;b++)if(a=
917
+ c[b],!d.equals(a,!0))return a.index=b,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(){this.locked||this.snapshots.splice(this.index,1,this.currentImage=
918
+ new h(this.editor))},lock:function(){if(this.locked)this.locked.level++;else{var a=new h(this.editor);this.locked={update:this.currentImage&&this.currentImage.equals(a,!0)?a:null,level:1}}},unlock:function(){if(this.locked&&!--this.locked.level){var a=this.locked.update;this.locked=null;a&&!a.equals(new h(this.editor),!0)&&this.update()}}}})();CKEDITOR.plugins.add("wsc",{requires:"dialog",init:function(a){a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!CKEDITOR.env.opera&&!CKEDITOR.env.air&&document.domain==window.location.hostname};"undefined"==typeof a.plugins.scayt&&a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar,command:"checkspell",toolbar:"spellchecker,10"});CKEDITOR.dialog.add("checkspell",this.path+"dialogs/wsc.js")}});
919
+ CKEDITOR.config.wsc_customerId=CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk";CKEDITOR.config.wsc_customLoaderScript=CKEDITOR.config.wsc_customLoaderScript||null;CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,list,indent,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,smiley,justify,link,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,undo,wsc';CKEDITOR.config.skin='moono';(function() {var icons = ( 'about,0,bold,32,italic,64,strike,96,subscript,128,superscript,160,underline,192,bidiltr,224,bidirtl,256,blockquote,288,copy-rtl,320,copy,352,cut-rtl,384,cut,416,paste-rtl,448,paste,480,bgcolor,512,textcolor,544,templates-rtl,576,templates,608,creatediv,640,bulletedlist-rtl,672,bulletedlist,704,numberedlist-rtl,736,numberedlist,768,indent-rtl,800,indent,832,outdent-rtl,864,outdent,896,find-rtl,928,find,960,replace,992,flash,1024,button,1056,checkbox,1088,form,1120,hiddenfield,1152,imagebutton,1184,radio,1216,select-rtl,1248,select,1280,textarea-rtl,1312,textarea,1344,textfield-rtl,1376,textfield,1408,horizontalrule,1440,iframe,1472,image,1504,smiley,1536,justifyblock,1568,justifycenter,1600,justifyleft,1632,justifyright,1664,anchor-rtl,1696,anchor,1728,link,1760,unlink,1792,maximize,1824,newpage-rtl,1856,newpage,1888,pagebreak-rtl,1920,pagebreak,1952,pastetext-rtl,1984,pastetext,2016,pastefromword-rtl,2048,pastefromword,2080,preview-rtl,2112,preview,2144,print,2176,removeformat,2208,save,2240,selectall,2272,showblocks-rtl,2304,showblocks,2336,source-rtl,2368,source,2400,specialchar,2432,scayt,2464,table,2496,redo-rtl,2528,redo,2560,undo-rtl,2592,undo,2624,spellchecker,2656' ),path = CKEDITOR.getUrl( 'plugins/icons.png' ),icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ] };})();CKEDITOR.lang.languages={"af":1,"sq":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
js/ckeditor/config.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ CKEDITOR.editorConfig = function( config ) {
7
+ config.toolbarGroups = [
8
+ { name: 'basicstyles', groups: [ 'basicstyles', 'list', 'align', 'links' ] },
9
+ { name: 'paragraph', groups: [ 'list', 'align' ] },
10
+ { name: 'document', groups: [ 'cleanup', 'mode' ] },
11
+ { name: 'others' },
12
+ '/',
13
+ { name: 'styles' },
14
+ { name: 'colors' }
15
+ ];
16
+
17
+ // Remove buttons
18
+ config.removeButtons = 'Underline,Subscript,Superscript,Anchor,Save,NewPage,Preview,Templates,Print,Styles';
19
+
20
+ // Set the most common block elements.
21
+ config.format_tags = 'p;h1;h2;h3;pre';
22
+
23
+ // Make dialogs simpler.
24
+ config.removeDialogTabs = 'link:advanced';
25
+
26
+ // Remove loading of styles.js since no Style dropdown is used
27
+ config.stylesSet = [];
28
+
29
+ config.language = 'en';
30
+ };
js/ckeditor/contents.css ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ body
7
+ {
8
+ /* Font */
9
+ font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
10
+ font-size: 12px;
11
+
12
+ /* Text color */
13
+ color: #333;
14
+
15
+ /* Remove the background color to make it transparent */
16
+ background-color: #fff;
17
+
18
+ margin: 20px;
19
+ }
20
+
21
+ .cke_editable
22
+ {
23
+ font-size: 13px;
24
+ line-height: 1.6em;
25
+ }
26
+
27
+ blockquote
28
+ {
29
+ font-style: italic;
30
+ font-family: Georgia, Times, "Times New Roman", serif;
31
+ padding: 2px 0;
32
+ border-style: solid;
33
+ border-color: #ccc;
34
+ border-width: 0;
35
+ }
36
+
37
+ .cke_contents_ltr blockquote
38
+ {
39
+ padding-left: 20px;
40
+ padding-right: 8px;
41
+ border-left-width: 5px;
42
+ }
43
+
44
+ .cke_contents_rtl blockquote
45
+ {
46
+ padding-left: 8px;
47
+ padding-right: 20px;
48
+ border-right-width: 5px;
49
+ }
50
+
51
+ a
52
+ {
53
+ color: #0782C1;
54
+ }
55
+
56
+ ol,ul,dl
57
+ {
58
+ /* IE7: reset rtl list margin. (#7334) */
59
+ *margin-right: 0px;
60
+ /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
61
+ padding: 0 40px;
62
+ }
63
+
64
+ h1,h2,h3,h4,h5,h6
65
+ {
66
+ font-weight: normal;
67
+ line-height: 1.2em;
68
+ }
69
+
70
+ hr
71
+ {
72
+ border: 0px;
73
+ border-top: 1px solid #ccc;
74
+ }
75
+
76
+ img.right {
77
+ border: 1px solid #ccc;
78
+ float: right;
79
+ margin-left: 15px;
80
+ padding: 5px;
81
+ }
82
+
83
+ img.left {
84
+ border: 1px solid #ccc;
85
+ float: left;
86
+ margin-right: 15px;
87
+ padding: 5px;
88
+ }
89
+
90
+ img:hover {
91
+ opacity: .9;
92
+ filter: alpha(opacity = 90);
93
+ }
94
+
95
+ pre
96
+ {
97
+ white-space: pre-wrap; /* CSS 2.1 */
98
+ word-wrap: break-word; /* IE7 */
99
+ }
100
+
101
+ .marker {
102
+ background-color: Yellow;
103
+ }
js/ckeditor/lang/en.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ CKEDITOR.lang['en']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright &copy; $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Color","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colors...","panelTitle":"Colors","textColorTitle":"Text Color"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","title":"Content Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background color","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash","hSpace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radio Button Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
js/ckeditor/plugins/dialog/dialogDefinition.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
js/ckeditor/plugins/icons.png ADDED
Binary file
js/ckeditor/plugins/link/dialogs/anchor.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ CKEDITOR.dialog.add("anchor",function(c){var d=function(a){this._.selectedElement=a;this.setValueOf("info","txtName",a.data("cke-saved-name")||"")};return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=c.document.createElement("a",{attributes:a}),c.createFakeElement(a,"cke_anchor","anchor").replace(this._.selectedElement)):
6
+ this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(CKEDITOR.plugins.link.synAnchorSelector&&(a["class"]="cke_anchor_empty"),CKEDITOR.plugins.link.emptyAnchorFix&&(a.contenteditable="false",a["data-cke-editable"]=1),a=c.document.createElement("a",{attributes:a}),CKEDITOR.plugins.link.fakeAnchor&&(a=c.createFakeElement(a,"cke_anchor","anchor")),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",
7
+ attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement();if(b)CKEDITOR.plugins.link.fakeAnchor?((a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b))&&d.call(this,a),this._.selectedElement=b):b.is("a")&&b.hasAttribute("name")&&d.call(this,b);else if(b=CKEDITOR.plugins.link.getSelectedLink(c))d.call(this,b),a.selectElement(b);this.getContentElement("info","txtName").focus()},contents:[{id:"info",
8
+ label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}});
js/ckeditor/plugins/link/dialogs/link.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ CKEDITOR.dialog.add("link",function(n){var p,q;function r(a){return a.replace(/'/g,"\\$&")}function t(a){var g,c=p,d,e;g=[q,"("];for(var b=0;b<c.length;b++)d=c[b].toLowerCase(),e=a[d],0<b&&g.push(","),g.push("'",e?r(encodeURIComponent(a[d])):"","'");g.push(")");return g.join("")}function u(a){for(var g,c=a.length,d=[],e=0;e<c;e++)g=a.charCodeAt(e),d.push(g);return"String.fromCharCode("+d.join(",")+")"}function v(a){return(a=a.getAttribute("class"))?a.replace(/\s*(?:cke_anchor_empty|cke_anchor)(?:\s*$)?/g,
6
+ ""):""}var w=CKEDITOR.plugins.link,s=function(){var a=this.getDialog(),g=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),c=this.getValue();if(g&&a)switch(g=g.getElement(),g.hide(),a.setValue(""),c){case "frame":a.setLabel(n.lang.link.targetFrameName);a.getElement().show();break;case "popup":g.show();a.setLabel(n.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(c),a.getElement().hide()}},x=/^javascript:/,y=/^mailto:([^?]+)(?:\?(.+))?$/,
7
+ z=/subject=([^;?:@&=$,\/]*)/,A=/body=([^;?:@&=$,\/]*)/,B=/^#(.*)$/,C=/^((?:http|https|ftp|news):\/\/)?(.*)$/,D=/^(_(?:self|top|parent|blank))$/,E=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,F=/^javascript:([^(]+)\(([^)]+)\)$/,G=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,H=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,I=function(a,g){var c=g&&(g.data("cke-saved-href")||g.getAttribute("href"))||"",d,e,b=
8
+ {};c.match(x)&&("encode"==o?c=c.replace(E,function(a,c,b){return"mailto:"+String.fromCharCode.apply(String,c.split(","))+(b&&b.replace(/\\'/g,"'"))}):o&&c.replace(F,function(a,c,d){if(c==q){b.type="email";for(var a=b.email={},c=/(^')|('$)/g,d=d.match(/[^,\s]+/g),e=d.length,g,f,h=0;h<e;h++)g=decodeURIComponent,f=d[h].replace(c,"").replace(/\\'/g,"'"),f=g(f),g=p[h].toLowerCase(),a[g]=f;a.address=[a.name,a.domain].join("@")}}));if(!b.type)if(d=c.match(B))b.type="anchor",b.anchor={},b.anchor.name=b.anchor.id=
9
+ d[1];else if(d=c.match(y)){e=c.match(z);c=c.match(A);b.type="email";var f=b.email={};f.address=d[1];e&&(f.subject=decodeURIComponent(e[1]));c&&(f.body=decodeURIComponent(c[1]))}else c&&(e=c.match(C))?(b.type="url",b.url={},b.url.protocol=e[1],b.url.url=e[2]):b.type="url";if(g){d=g.getAttribute("target");b.target={};b.adv={};if(d)d.match(D)?b.target.type=b.target.name=d:(b.target.type="frame",b.target.name=d);else if(d=(d=g.data("cke-pa-onclick")||g.getAttribute("onclick"))&&d.match(G)){b.target.type=
10
+ "popup";for(b.target.name=d[1];c=H.exec(d[2]);)("yes"==c[2]||"1"==c[2])&&!(c[1]in{height:1,width:1,top:1,left:1})?b.target[c[1]]=!0:isFinite(c[2])&&(b.target[c[1]]=c[2])}d=function(a,c){var d=g.getAttribute(c);null!==d&&(b.adv[a]=d||"")};d("advId","id");d("advLangDir","dir");d("advAccessKey","accessKey");b.adv.advName=g.data("cke-saved-name")||g.getAttribute("name")||"";d("advLangCode","lang");d("advTabIndex","tabindex");d("advTitle","title");d("advContentType","type");CKEDITOR.plugins.link.synAnchorSelector?
11
+ b.adv.advCSSClasses=v(g):d("advCSSClasses","class");d("advCharset","charset");d("advStyles","style");d("advRel","rel")}d=b.anchors=[];var h;if(CKEDITOR.plugins.link.emptyAnchorFix){f=a.document.getElementsByTag("a");c=0;for(e=f.count();c<e;c++)if(h=f.getItem(c),h.data("cke-saved-name")||h.hasAttribute("name"))d.push({name:h.data("cke-saved-name")||h.getAttribute("name"),id:h.getAttribute("id")})}else{f=new CKEDITOR.dom.nodeList(a.document.$.anchors);c=0;for(e=f.count();c<e;c++)h=f.getItem(c),d[c]=
12
+ {name:h.getAttribute("name"),id:h.getAttribute("id")}}if(CKEDITOR.plugins.link.fakeAnchor){f=a.document.getElementsByTag("img");c=0;for(e=f.count();c<e;c++)(h=CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,f.getItem(c)))&&d.push({name:h.getAttribute("name"),id:h.getAttribute("id")})}this._.selectedElement=g;return b},j=function(a){a.target&&this.setValue(a.target[this.id]||"")},k=function(a){a.adv&&this.setValue(a.adv[this.id]||"")},l=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||
13
+ ""},m=function(a){a.adv||(a.adv={});a.adv[this.id]=this.getValue()||""},o=n.config.emailProtection||"";o&&"encode"!=o&&(q=p=void 0,o.replace(/^([^(]+)\(([^)]+)\)$/,function(a,b,c){q=b;p=[];c.replace(/[^,\s]+/g,function(a){p.push(a)})}));var i=n.lang.common,b=n.lang.link;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=
14
+ this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],c=this.getValue(),d=a.definition.getContents("upload"),d=d&&d.hidden;if(c=="url"){n.config.linkShowTargetTab&&a.showPage("target");d||a.showPage("upload")}else{a.hidePage("target");d||a.hidePage("upload")}for(d=0;d<b.length;d++){var e=a.getContentElement("info",b[d]);if(e){e=e.getElement().getParent().getParent();b[d]==c+"Options"?e.show():e.hide()}}a.layout()},setup:function(a){a.type&&this.setValue(a.type)},commit:function(a){a.type=
15
+ this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:i.protocol,"default":"http://",items:[["http://‎","http://"],["https://‎","https://"],["ftp://‎","ftp://"],["news://‎","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){if(!a.url)a.url={};a.url.protocol=this.getValue()}},{type:"text",id:"url",label:i.url,required:!0,onLoad:function(){this.allowOnChange=true},onKeyUp:function(){this.allowOnChange=
16
+ false;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),c=/^((javascript:)|[#\/\.\?])/i,d=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);if(d){this.setValue(b.substr(d[0].length));a.setValue(d[0].toLowerCase())}else c.test(b)&&a.setValue("");this.allowOnChange=true},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();if(a.getContentElement("info","linkType")&&a.getValueOf("info","linkType")!="url")return true;if(/javascript\:/.test(this.getValue())){alert(i.invalidValue);
17
+ return false}return this.getDialog().fakeObj?true:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=false;a.url&&this.setValue(a.url.url);this.allowOnChange=true},commit:function(a){this.onChange();if(!a.url)a.url={};a.url.url=this.getValue();this.allowOnChange=false}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:i.browseServer}]},
18
+ {type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(a){a.anchors.length>0?this.getElement().show():this.getElement().hide()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");for(var b=0;b<a.anchors.length;b++)a.anchors[b].name&&this.add(a.anchors[b].name);a.anchor&&
19
+ this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&a.getValue()=="email"&&this.focus()},commit:function(a){if(!a.anchor)a.anchor={};a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");for(var b=0;b<a.anchors.length;b++)a.anchors[b].id&&this.add(a.anchors[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){if(!a.anchor)a.anchor={};a.anchor.id=
20
+ this.getValue()}}],setup:function(a){a.anchors.length>0?this.getElement().show():this.getElement().hide()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(a){a.anchors.length<1?this.getElement().show():this.getElement().hide()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",
21
+ id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||a.getValueOf("info","linkType")!="email"?true:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&a.getValue()=="email"&&this.select()},commit:function(a){if(!a.email)a.email={};a.email.address=this.getValue()}},{type:"text",id:"emailSubject",
22
+ label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){if(!a.email)a.email={};a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){if(!a.email)a.email={};a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",requiredContent:"a[target]",label:b.target,
23
+ title:b.target,elements:[{type:"hbox",widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:i.target,"default":"notSet",style:"width : 100%;",items:[[i.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[i.targetNew,"_blank"],[i.targetTop,"_top"],[i.targetSelf,"_self"],[i.targetParent,"_parent"]],onChange:s,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");s.call(this)},commit:function(a){if(!a.target)a.target={};a.target.type=this.getValue()}},{type:"text",
24
+ id:"linkTargetName",label:b.targetFrameName,"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){if(!a.target)a.target={};a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:j,commit:l},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:j,commit:l}]},
25
+ {type:"hbox",children:[{type:"checkbox",id:"location",label:b.popupLocationBar,setup:j,commit:l},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:j,commit:l}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:j,commit:l},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:j,commit:l}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:j,commit:l},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:j,commit:l}]},
26
+ {type:"hbox",children:[{type:"text",widths:["50%","50%"],labelLayout:"horizontal",label:i.width,id:"width",setup:j,commit:l},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:j,commit:l}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:i.height,id:"height",setup:j,commit:l},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:j,commit:l}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,
27
+ hidden:!0,filebrowser:"uploadButton",elements:[{type:"file",id:"upload",label:i.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:i.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",requiredContent:"a[id]",label:b.id,setup:k,commit:m},{type:"select",id:"advLangDir",requiredContent:"a[dir]",
28
+ label:b.langDir,"default":"",style:"width:110px",items:[[i.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:k,commit:m},{type:"text",id:"advAccessKey",requiredContent:"a[accesskey]",width:"80px",label:b.acccessKey,maxLength:1,setup:k,commit:m}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",requiredContent:"a[name]",setup:k,commit:m},{type:"text",label:b.langCode,id:"advLangCode",requiredContent:"a[lang]",width:"110px","default":"",setup:k,commit:m},
29
+ {type:"text",label:b.tabIndex,id:"advTabIndex",requiredContent:"a[tabindex]",width:"80px",maxLength:5,setup:k,commit:m}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.advisoryTitle,requiredContent:"a[title]","default":"",id:"advTitle",setup:k,commit:m},{type:"text",label:b.advisoryContentType,requiredContent:"a[type]","default":"",id:"advContentType",setup:k,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,
30
+ requiredContent:"a(cke-xyz)","default":"",id:"advCSSClasses",setup:k,commit:m},{type:"text",label:b.charset,requiredContent:"a[charset]","default":"",id:"advCharset",setup:k,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,requiredContent:"a[rel]","default":"",id:"advRel",setup:k,commit:m},{type:"text",label:b.styles,requiredContent:"a{cke-xyz}","default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(n.lang.common.invalidInlineStyle),setup:k,commit:m}]}]}]}],
31
+ onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=null;(c=w.getSelectedLink(a))&&c.hasAttribute("href")?b.selectElement(c):c=null;this.setupContent(I.apply(this,[a,c]))},onOk:function(){var a={},b=[],c={},d=this.getParentEditor();this.commitContent(c);switch(c.type||"url"){case "url":var e=c.url&&c.url.protocol!=void 0?c.url.protocol:"http://",i=c.url&&CKEDITOR.tools.trim(c.url.url)||"";a["data-cke-saved-href"]=i.indexOf("/")===0?i:e+i;break;case "anchor":e=c.anchor&&c.anchor.id;
32
+ a["data-cke-saved-href"]="#"+(c.anchor&&c.anchor.name||e||"");break;case "email":var f=c.email,e=f.address;switch(o){case "":case "encode":var i=encodeURIComponent(f.subject||""),h=encodeURIComponent(f.body||""),f=[];i&&f.push("subject="+i);h&&f.push("body="+h);f=f.length?"?"+f.join("&"):"";if(o=="encode"){e=["javascript:void(location.href='mailto:'+",u(e)];f&&e.push("+'",r(f),"'");e.push(")")}else e=["mailto:",e,f];break;default:e=e.split("@",2);f.name=e[0];f.domain=e[1];e=["javascript:",t(f)]}a["data-cke-saved-href"]=
33
+ e.join("")}if(c.target)if(c.target.type=="popup"){for(var e=["window.open(this.href, '",c.target.name||"","', '"],j=["resizable","status","location","toolbar","menubar","fullscreen","scrollbars","dependent"],i=j.length,f=function(a){c.target[a]&&j.push(a+"="+c.target[a])},h=0;h<i;h++)j[h]=j[h]+(c.target[j[h]]?"=yes":"=no");f("width");f("left");f("height");f("top");e.push(j.join(","),"'); return false;");a["data-cke-pa-onclick"]=e.join("");b.push("target")}else{c.target.type!="notSet"&&c.target.name?
34
+ a.target=c.target.name:b.push("target");b.push("data-cke-pa-onclick","onclick")}if(c.adv){e=function(d,e){var f=c.adv[d];f?a[e]=f:b.push(e)};e("advId","id");e("advLangDir","dir");e("advAccessKey","accessKey");c.adv.advName?a.name=a["data-cke-saved-name"]=c.adv.advName:b=b.concat(["data-cke-saved-name","name"]);e("advLangCode","lang");e("advTabIndex","tabindex");e("advTitle","title");e("advContentType","type");e("advCSSClasses","class");e("advCharset","charset");e("advStyles","style");e("advRel","rel")}e=
35
+ d.getSelection();a.href=a["data-cke-saved-href"];if(this._.selectedElement){d=this._.selectedElement;i=d.data("cke-saved-href");f=d.getHtml();d.setAttributes(a);d.removeAttributes(b);c.adv&&(c.adv.advName&&CKEDITOR.plugins.link.synAnchorSelector)&&d.addClass(d.getChildCount()?"cke_anchor":"cke_anchor_empty");if(i==f||c.type=="email"&&f.indexOf("@")!=-1)d.setHtml(c.type=="email"?c.email.address:a["data-cke-saved-href"]);e.selectElement(d);delete this._.selectedElement}else{e=e.getRanges(1)[0];if(e.collapsed){d=
36
+ new CKEDITOR.dom.text(c.type=="email"?c.email.address:a["data-cke-saved-href"],d.document);e.insertNode(d);e.selectNodeContents(d)}d=new CKEDITOR.style({element:"a",attributes:a});d.type=CKEDITOR.STYLE_INLINE;d.applyToRange(e);e.select()}},onLoad:function(){n.config.linkShowAdvancedTab||this.hidePage("advanced");n.config.linkShowTargetTab||this.hidePage("target")},onFocus:function(){var a=this.getContentElement("info","linkType");if(a&&a.getValue()=="url"){a=this.getContentElement("info","url");a.select()}}}});
js/ckeditor/plugins/link/images/anchor.png ADDED
Binary file
js/ckeditor/skins/moono/dialog.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}
js/ckeditor/skins/moono/dialog_ie.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}
js/ckeditor/skins/moono/dialog_ie7.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_title{zoom:1}.cke_dialog_footer{border-top:1px solid #bfbfbf}.cke_dialog_footer_buttons{position:static}.cke_dialog_footer_buttons a.cke_dialog_ui_button{vertical-align:top}.cke_dialog .cke_resizer_ltr{padding-left:4px}.cke_dialog .cke_resizer_rtl{padding-right:4px}.cke_dialog_ui_input_text,.cke_dialog_ui_input_password,.cke_dialog_ui_input_textarea,.cke_dialog_ui_input_select{padding:0!important}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}
js/ckeditor/skins/moono/dialog_ie8.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{display:block}
js/ckeditor/skins/moono/dialog_iequirks.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:}
js/ckeditor/skins/moono/dialog_opera.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#eaeaea;border:1px solid #b2b2b2;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_browser_gecko19 .cke_dialog_body{position:relative}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:13px;cursor:move;position:relative;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #999;padding:6px 10px;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:30px;border-top:1px solid #bfbfbf;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border:0;outline:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;-moz-border-radius:0 0 2px 2px;-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:24px;display:inline-block;margin:5px 0 0;position:absolute;z-index:2;left:10px}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{height:16px;padding:4px 8px;margin-right:3px;display:inline-block;cursor:pointer;line-height:16px;outline:0;color:#595959;border:1px solid #bfbfbf;-moz-border-radius:3px 3px 0 0;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;background:#d4d4d4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fafafa),to(#ededed));background-image:-moz-linear-gradient(top,#fafafa,#ededed);background-image:-webkit-linear-gradient(top,#fafafa,#ededed);background-image:-o-linear-gradient(top,#fafafa,#ededed);background-image:-ms-linear-gradient(top,#fafafa,#ededed);background-image:linear-gradient(top,#fafafa,#ededed);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fffafafa',endColorstr='#ffededed')}.cke_rtl a.cke_dialog_tab{margin-right:0;margin-left:3px}a.cke_dialog_tab:hover{background:#ebebeb;background:-moz-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ebebeb),color-stop(100%,#dfdfdf));background:-webkit-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-o-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:-ms-linear-gradient(top,#ebebeb 0,#dfdfdf 100%);background:linear-gradient(to bottom,#ebebeb 0,#dfdfdf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ebebeb',endColorstr='#dfdfdf',GradientType=0)}a.cke_dialog_tab_selected{background:#fff;color:#383838;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover{background:#ededed;background:-moz-linear-gradient(top,#ededed 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ededed),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#ededed 0,#fff 100%);background:-o-linear-gradient(top,#ededed 0,#fff 100%);background:-ms-linear-gradient(top,#ededed 0,#fff 100%);background:linear-gradient(to bottom,#ededed 0,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed',endColorstr='#ffffff',GradientType=0)}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:0 0;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;z-index:5}.cke_dialog_close_button span{display:none}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_ltr .cke_dialog_close_button{right:5px}.cke_rtl .cke_dialog_close_button{left:6px}.cke_dialog_close_button{top:4px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:4px 6px;outline:0;width:100%;*width:95%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9;border-top-color:#a0a6ad}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:1px solid #139ff7;border-top-color:#1392e9}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:3px 0;margin:0;text-align:center;color:#333;vertical-align:middle;cursor:pointer;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}span.cke_dialog_ui_button{padding:0 12px}a.cke_dialog_ui_button:hover{border-color:#9e9e9e;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border-color:#969696;outline:0;-moz-box-shadow:0 0 6px rgba(0,0,0,.4) inset;-webkit-box-shadow:0 0 6px rgba(0,0,0,.4) inset;box-shadow:0 0 6px rgba(0,0,0,.4) inset}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid;padding-top:1px;padding-bottom:1px}.cke_hc a.cke_dialog_ui_button:hover span,.cke_hc a.cke_dialog_ui_button:focus span,.cke_hc a.cke_dialog_ui_button:active span{padding-left:10px;padding-right:10px}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;line-height:20px}a.cke_dialog_ui_button_ok{color:#fff;text-shadow:0 -1px 0 #55830c;border-color:#62a60a #62a60a #4d9200;background:#69b10b;background-image:-webkit-gradient(linear,0 0,0 100%,from(#9ad717),to(#69b10b));background-image:-webkit-linear-gradient(top,#9ad717,#69b10b);background-image:-o-linear-gradient(top,#9ad717,#69b10b);background-image:linear-gradient(to bottom,#9ad717,#69b10b);background-image:-moz-linear-gradient(top,#9ad717,#69b10b);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ff9ad717',endColorstr='#ff69b10b')}a.cke_dialog_ui_button_ok:hover{border-color:#5b9909 #5b9909 #478500;background:#88be14;background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#88be14),color-stop(100%,#5d9c0a));background:-webkit-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:-o-linear-gradient(top,#88be14 0,#5d9c0a 100%);background:linear-gradient(to bottom,#88be14 0,#5d9c0a 100%);background:-moz-linear-gradient(top,#88be14 0,#5d9c0a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#88be14',endColorstr='#5d9c0a',GradientType=0)}a.cke_dialog_ui_button span{text-shadow:0 1px 0 #fff}a.cke_dialog_ui_button_ok span{text-shadow:0 -1px 0 #55830c}span.cke_dialog_ui_button{cursor:pointer}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active,a.cke_dialog_ui_button_cancel:focus,a.cke_dialog_ui_button_cancel:active{border-width:2px;padding:2px 0}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#568c0a}a.cke_dialog_ui_button_ok:focus span,a.cke_dialog_ui_button_ok:active span,a.cke_dialog_ui_button_cancel:focus span,a.cke_dialog_ui_button_cancel:active span{padding:0 11px}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:24px;line-height:24px;background-color:#fff;border:1px solid #c9cccf;border-top-color:#aeb3b9;padding:2px 6px;outline:0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.15) inset;box-shadow:0 1px 2px rgba(0,0,0,.15) inset}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog .cke_dark_background{background-color:#dedede}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.png);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.png)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:1px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_footer{display:block;height:38px}.cke_ltr .cke_dialog_footer>*{float:right}.cke_rtl .cke_dialog_footer>*{float:left}
js/ckeditor/skins/moono/editor.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/editor_gecko.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/editor_ie.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/editor_ie7.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:26px}.cke_toolgroup,.cke_combo{position:relative}a.cke_button{float:none;vertical-align:top}.cke_toolbar_separator{display:inline-block;float:none;vertical-align:top;background-color:#c0c0c0}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:5px;height:6px;padding:0;position:absolute;right:8px;top:10px;background-position:0 0}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{left:8px;right:auto;background-position:0 -24px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/editor_ie8.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/editor_iequirks.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+ .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;border:1px solid #b6b6b6;padding:0;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_inner{display:block;-webkit-touch-callout:none;background:#fff;padding:0}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #b6b6b6;padding:6px 8px 2px;white-space:normal;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_float .cke_top{border:1px solid #b6b6b6;border-bottom-color:#999}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #bfbfbf;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#cfd1cf));background-image:-moz-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-webkit-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-o-linear-gradient(top,#ebebeb,#cfd1cf);background-image:-ms-linear-gradient(top,#ebebeb,#cfd1cf);background-image:linear-gradient(top,#ebebeb,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffebebeb',endColorstr='#cfd1cf')}.cke_resizer{width:0;height:0;overflow:hidden;width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #666 transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #a5a5a5;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #b6b6b6;border-bottom-color:#999;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 3px rgba(0,0,0,.15);-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15)}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0;padding-bottom:1px}.cke_panel_listItem a{padding:3px 4px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#dedede;background-color:#f2f2f2;-moz-box-shadow:0 0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 0 2px rgba(0,0,0,.1) inset;box-shadow:0 0 2px rgba(0,0,0,.1) inset}.cke_hc .cke_panel_listItem a{border-style:none}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:1px 2px}.cke_panel_grouptitle{font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:4px 6px;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.75);border-bottom:1px solid #b6b6b6;-moz-border-radius:2px 2px 0 0;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0;-moz-box-shadow:0 1px 0 #fff inset;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;background:#cfd1cf;background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#cfd1cf));background-image:-moz-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-webkit-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-o-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:-ms-linear-gradient(top,#f5f5f5,#cfd1cf);background-image:linear-gradient(top,#f5f5f5,#cfd1cf);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff5f5f5',endColorstr='#ffcfd1cf')}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#b6b6b6 1px solid;background-color:#e5e5e5}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#b6b6b6 1px solid;background-color:#e5e5e5}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_hc .cke_toolgroup{border:0;margin-right:10px;margin-bottom:10px}.cke_rtl .cke_toolgroup *:first-child{-moz-border-radius:0 2px 2px 0;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}.cke_rtl .cke_toolgroup *:last-child{-moz-border-radius:2px 0 0 2px;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_button_on{-moz-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.6) inset,0 1px 0 rgba(0,0,0,.2);background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border-width:3px;padding:1px 3px}.cke_button_disabled .cke_button_icon{opacity:.3}.cke_hc .cke_button_disabled{opacity:.5}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{-moz-box-shadow:0 0 1px rgba(0,0,0,.3) inset;-webkit-box-shadow:0 0 1px rgba(0,0,0,.3) inset;box-shadow:0 0 1px rgba(0,0,0,.3) inset;background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5)}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 1px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px -2px 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#c0c0c0;background-color:rgba(0,0,0,.2);margin:5px 2px 0;height:18px;width:1px;-webkit-box-shadow:1px 0 1px rgba(255,255,255,.5);-moz-box-shadow:1px 0 1px rgba(255,255,255,.5);box-shadow:1px 0 1px rgba(255,255,255,.5)}.cke_rtl .cke_toolbar_separator{float:right;-webkit-box-shadow:-1px 0 1px rgba(255,255,255,.1);-moz-box-shadow:-1px 0 1px rgba(255,255,255,.1);box-shadow:-1px 0 1px rgba(255,255,255,.1)}.cke_hc .cke_toolbar_separator{width:0;border-left:1px solid;margin:1px 5px 0 0}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_toolbox_collapser:hover{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc')}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:3px solid #474747;border-top:3px solid transparent}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#474747}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton{padding:2px}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d7d8d7;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#d0d2d0}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#eff0ef}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:1px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/arrow.png);background-position:0 10px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:-2px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;float:left;margin:0 6px 5px 0;border:1px solid #a6a6a6;border-bottom-color:#979797;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.15) inset,0 1px 0 rgba(255,255,255,.15) inset;background:#e4e4e4;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e4e4e4));background-image:-moz-linear-gradient(top,#fff,#e4e4e4);background-image:-webkit-linear-gradient(top,#fff,#e4e4e4);background-image:-o-linear-gradient(top,#fff,#e4e4e4);background-image:-ms-linear-gradient(top,#fff,#e4e4e4);background-image:linear-gradient(top,#fff,#e4e4e4);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffffffff',endColorstr='#ffe4e4e4')}.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus{background:#ccc;background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#ccc));background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:-ms-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(top,#f2f2f2,#ccc);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#fff2f2f2',endColorstr='#ffcccccc');outline:0}.cke_combo_off a.cke_combo_button:active,.cke_combo_on a.cke_combo_button{border:1px solid #777;-moz-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;box-shadow:0 1px 0 rgba(255,255,255,.5),0 1px 5px rgba(0,0,0,.6) inset;background:#b5b5b5;background-image:-webkit-gradient(linear,left top,left bottom,from(#aaa),to(#cacaca));background-image:-moz-linear-gradient(top,#aaa,#cacaca);background-image:-webkit-linear-gradient(top,#aaa,#cacaca);background-image:-o-linear-gradient(top,#aaa,#cacaca);background-image:-ms-linear-gradient(top,#aaa,#cacaca);background-image:linear-gradient(top,#aaa,#cacaca);filter:progid:DXImageTransform.Microsoft.gradient(gradientType=0,startColorstr='#ffaaaaaa',endColorstr='#ffcacaca')}.cke_combo_on a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button:focus,.cke_combo_on a.cke_combo_button:active{-moz-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 6px rgba(0,0,0,.7) inset,0 1px 0 rgba(0,0,0,.2)}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc a.cke_combo_button{padding:3px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border-width:3px;padding:1px}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#474747;text-shadow:0 1px 0 rgba(255,255,255,.5);width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 7px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #474747}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#4c4c4c;text-shadow:0 1px 0 #fff;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#bfbfbf;color:#333;text-shadow:0 1px 0 rgba(255,255,255,.5);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5);box-shadow:0 0 4px rgba(0,0,0,.5) inset,0 1px 0 rgba(255,255,255,.5)}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
js/ckeditor/skins/moono/icons.png ADDED
Binary file
js/ckeditor/skins/moono/images/arrow.png ADDED
Binary file
js/ckeditor/skins/moono/images/close.png ADDED
Binary file
js/ckeditor/skins/moono/images/mini.png ADDED
Binary file
js/ckeditor/skins/moono/readme.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Moono" Skin
2
+ ====================
3
+
4
+ This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor
5
+ [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by
6
+ the CKEditor team. "Moono" is maintained by the core developers.
7
+
8
+ For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)
9
+ documentation.
10
+
11
+ Features
12
+ -------------------
13
+ "Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency.
14
+ It comes with the following features:
15
+
16
+ - Chameleon feature with brightness,
17
+ - high-contrast compatibility,
18
+ - graphics source provided in SVG.
19
+
20
+ Directory Structure
21
+ -------------------
22
+
23
+ CSS parts:
24
+ - **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance,
25
+ - **mainui.css**: the file contains styles of entire editor outline structures,
26
+ - **toolbar.css**: the file contains styles of the editor toolbar space (top),
27
+ - **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar,
28
+ - **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded
29
+ until the first panel open up,
30
+ - **elementspath.css**: the file contains styles of the editor elements path bar (bottom),
31
+ - **menu.css**: the file contains styles of all editor menus including context menu and button drop-down,
32
+ it's not loaded until the first menu open up,
33
+ - **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open,
34
+ - **reset.css**: the file defines the basis of style resets among all editor UI spaces,
35
+ - **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference,
36
+ - **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks.
37
+
38
+ Other parts:
39
+ - **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature,
40
+ - **icons/**: contains all skin defined icons,
41
+ - **images/**: contains a fill general used images,
42
+ - **dev/**: contains SVG source of the skin icons.
43
+
44
+ License
45
+ -------
46
+
47
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
48
+
49
+ Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
50
+
51
+ See LICENSE.md for more information.
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=G87A9
4
  Tags: form, forms, contact form, contact forms, form, forms, form to email, email form, email, input, validation, jquery, shortcode, form builder, contact form builder, form manager, form creator
5
  Requires at least: 3.5
6
  Tested up to: 3.6
7
- Stable tag: 2.7.4
8
  License: GPLv2 or later
9
 
10
  Build beautiful, fully functional contact forms in only a few minutes without writing PHP, CSS, or HTML.
@@ -171,7 +171,7 @@ Before following this process, make sure you have updated all plugins to their l
171
 
172
  If everything works with only Visual Form Builder activated, you have a plugin conflict. Re-activate the plugins one by one until you find the problematic plugin(s).
173
 
174
- If, after following the above procedures, you are still having problems please report this issue on the [Support Forum](http://wordpress.org/support/plugin/visual-form-builder).
175
 
176
  = Customizing the form design =
177
 
@@ -212,7 +212,7 @@ function my_scripts_method() {
212
  array( 'jquery', 'jquery-form-validation' ),
213
  '1.0',
214
  false );
215
-
216
  wp_enqueue_script( 'my-vfb-validation' );
217
  }`
218
 
@@ -225,7 +225,20 @@ function my_scripts_method() {
225
 
226
  == Changelog ==
227
 
228
- **Version 2.7.4 May 08, 2013**
 
 
 
 
 
 
 
 
 
 
 
 
 
229
 
230
  * Update Numbers field to allow either Digits or Number validation and sanitize as float instead of int
231
  * Update Entries Detail "Delete" link to a "Trash" link
@@ -235,11 +248,11 @@ function my_scripts_method() {
235
  * Fix bug on Entries List to properly display Today's Entries
236
  * Minor updates
237
 
238
- **Version 2.7.3 — May 07, 2013**
239
 
240
  * Fix bug where referer URL was not compatible with certain permalink structures
241
 
242
- **Version 2.7.2 — May 05, 2013**
243
 
244
  * Add form search in admin
245
  * Add 'Pages to Export' option when more than 1000 entries detected for a single form
@@ -533,6 +546,9 @@ function my_scripts_method() {
533
 
534
  == Upgrade Notice ==
535
 
 
 
 
536
  = 2.7.4 =
537
  Fix bug where referer URL did not match domains that prepended www. Fix bug where file uploads were not being sent. Other updates and fixes.
538
 
@@ -552,7 +568,7 @@ Add sidebar and dashboard widgets. Fix Export bugs.
552
  Fix bug where Validation would be removed on saving predefined fields
553
 
554
  = 2.6.8 =
555
- Add Reply-To to email headers for better compatibility with some email servers; updated CSV export
556
 
557
  = 2.6.7 =
558
  Fix bug where notification email did not send
4
  Tags: form, forms, contact form, contact forms, form, forms, form to email, email form, email, input, validation, jquery, shortcode, form builder, contact form builder, form manager, form creator
5
  Requires at least: 3.5
6
  Tested up to: 3.6
7
+ Stable tag: 2.7.5
8
  License: GPLv2 or later
9
 
10
  Build beautiful, fully functional contact forms in only a few minutes without writing PHP, CSS, or HTML.
171
 
172
  If everything works with only Visual Form Builder activated, you have a plugin conflict. Re-activate the plugins one by one until you find the problematic plugin(s).
173
 
174
+ If, after following the above procedures, you are still having problems please report this issue on the [Support Forum](http://wordpress.org/support/plugin/visual-form-builder).
175
 
176
  = Customizing the form design =
177
 
212
  array( 'jquery', 'jquery-form-validation' ),
213
  '1.0',
214
  false );
215
+
216
  wp_enqueue_script( 'my-vfb-validation' );
217
  }`
218
 
225
 
226
  == Changelog ==
227
 
228
+ **Version 2.7.5 Jun 06, 2013**
229
+
230
+ * Add Print button to Entry Detail view
231
+ * Add Duplicate link to Form List view
232
+ * Add meta keyword for plugin version number
233
+ * Update HTML field to use CKEditor instead of Quicktags
234
+ * Update CSS to include :focus styles
235
+ * Update Entry Detail to link File Uploads
236
+ * Fix bug during Export for duplicate field names
237
+ * Fix bug on Export page where Page to Export option may not appear
238
+ * Fix bug on Export page where Fields were not limited to 1000 in an edge case
239
+ * Fix bug where delete link did not work in Form List view
240
+
241
+ **Version 2.7.4 — May 08, 2013**
242
 
243
  * Update Numbers field to allow either Digits or Number validation and sanitize as float instead of int
244
  * Update Entries Detail "Delete" link to a "Trash" link
248
  * Fix bug on Entries List to properly display Today's Entries
249
  * Minor updates
250
 
251
+ **Version 2.7.3 — May 07, 2013**
252
 
253
  * Fix bug where referer URL was not compatible with certain permalink structures
254
 
255
+ **Version 2.7.2 — May 05, 2013**
256
 
257
  * Add form search in admin
258
  * Add 'Pages to Export' option when more than 1000 entries detected for a single form
546
 
547
  == Upgrade Notice ==
548
 
549
+ = 2.7.5 =
550
+ Update HTML field to use CKEditor. Fix Export bugs.
551
+
552
  = 2.7.4 =
553
  Fix bug where referer URL did not match domains that prepended www. Fix bug where file uploads were not being sent. Other updates and fixes.
554
 
568
  Fix bug where Validation would be removed on saving predefined fields
569
 
570
  = 2.6.8 =
571
+ Add Reply-To to email headers for better compatibility with some email servers; updated CSV export
572
 
573
  = 2.6.7 =
574
  Fix bug where notification email did not send
visual-form-builder.php CHANGED
@@ -4,22 +4,25 @@ Plugin Name: Visual Form Builder
4
  Description: Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
5
  Author: Matthew Muro
6
  Author URI: http://matthewmuro.com
7
- Version: 2.7.4
8
  */
9
 
 
 
 
10
  /*
11
- This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
  the Free Software Foundation; version 2 of the License.
14
 
15
- This program is distributed in the hope that it will be useful,
16
- but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- GNU General Public License for more details.
19
 
20
- You should have received a copy of the GNU General Public License
21
- along with this program; if not, write to the Free Software
22
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
  */
24
 
25
  // Instantiate new class
@@ -27,7 +30,7 @@ $visual_form_builder = new Visual_Form_Builder();
27
 
28
  // Visual Form Builder class
29
  class Visual_Form_Builder{
30
-
31
  /**
32
  * The DB version. Used for SQL install and upgrades.
33
  *
@@ -39,7 +42,7 @@ class Visual_Form_Builder{
39
  * @access protected
40
  */
41
  protected $vfb_db_version = '2.7';
42
-
43
  /**
44
  * Flag used to add scripts to front-end only once
45
  *
@@ -48,7 +51,7 @@ class Visual_Form_Builder{
48
  * @access protected
49
  */
50
  protected $add_scripts = false;
51
-
52
  /**
53
  * An array of countries to be used throughout plugin
54
  *
@@ -66,7 +69,7 @@ class Visual_Form_Builder{
66
  * @access private
67
  */
68
  private $_admin_pages = array();
69
-
70
  /**
71
  * Constructor. Register core filters and actions.
72
  *
@@ -74,19 +77,19 @@ class Visual_Form_Builder{
74
  */
75
  public function __construct(){
76
  global $wpdb;
77
-
78
  // Setup global database table names
79
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
80
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
81
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
82
-
83
  // Make sure we are in the admin before proceeding.
84
  if ( is_admin() ) {
85
  // Build options and settings pages.
86
  add_action( 'admin_menu', array( &$this, 'add_admin' ) );
87
  add_action( 'admin_init', array( &$this, 'save' ) );
88
  add_action( 'admin_menu', array( &$this, 'additional_plugin_setup' ) );
89
-
90
  // Register AJAX functions
91
  $actions = array(
92
  // Form Builder
@@ -94,39 +97,42 @@ class Visual_Form_Builder{
94
  'create_field',
95
  'delete_field',
96
  'form_settings',
97
-
98
  // Media button
99
  'media_button',
100
  );
101
-
102
- // Add all AJAX functions
103
  foreach( $actions as $name ) {
104
- add_action( "wp_ajax_visual_form_builder_$name", array( &$this, "ajax_$name" ) );
105
  }
106
 
107
  // Adds additional media button to insert form shortcode
108
  add_action( 'media_buttons', array( &$this, 'add_media_button' ), 999 );
109
-
110
  // Adds a Dashboard widget
111
  add_action( 'wp_dashboard_setup', array( &$this, 'add_dashboard_widget' ) );
112
-
113
  // Adds a Settings link to the Plugins page
114
  add_filter( 'plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2 );
115
-
116
  // Check the db version and run SQL install, if needed
117
  add_action( 'plugins_loaded', array( &$this, 'update_db_check' ) );
118
-
119
  // Display update messages
120
  add_action( 'admin_notices', array( &$this, 'admin_notices' ) );
121
  }
122
-
123
  // Load i18n
124
  add_action( 'plugins_loaded', array( &$this, 'languages' ) );
125
-
 
 
 
126
  add_shortcode( 'vfb', array( &$this, 'form_code' ) );
127
  add_action( 'init', array( &$this, 'email' ), 10 );
128
  add_action( 'init', array( &$this, 'confirmation' ), 12 );
129
-
130
  // Add CSS to the front-end
131
  add_action( 'wp_enqueue_scripts', array( &$this, 'css' ) );
132
  }
@@ -134,72 +140,81 @@ class Visual_Form_Builder{
134
  /**
135
  * Allow for additional plugin code to be run during admin_init
136
  * which is not available during the plugin __construct()
137
- *
138
  * @since 2.7
139
  */
140
  public function additional_plugin_setup() {
141
-
142
  $page_main = $this->_admin_pages[ 'vfb' ];
143
-
144
  if ( !get_option( 'vfb_dashboard_widget_options' ) ) {
145
  $widget_options['vfb_dashboard_recent_entries'] = array(
146
  'items' => 5,
147
  );
148
  update_option( 'vfb_dashboard_widget_options', $widget_options );
149
  }
150
-
151
  }
152
-
 
 
 
 
 
 
 
 
 
153
  /**
154
  * Load localization file
155
- *
156
  * @since 2.7
157
  */
158
  public function languages() {
159
  load_plugin_textdomain( 'visual-form-builder', false , 'visual-form-builder/languages' );
160
  }
161
-
162
  /**
163
  * Adds extra include files
164
- *
165
  * @since 1.2
166
  */
167
  public function includes(){
168
  global $entries_list, $entries_detail;
169
-
170
  // Load the Entries List class
171
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-entries-list.php' );
172
  $entries_list = new VisualFormBuilder_Entries_List();
173
-
174
  // Load the Entries Details class
175
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-entries-detail.php' );
176
- $entries_detail = new VisualFormBuilder_Entries_Detail();
177
  }
178
-
179
  public function include_forms_list() {
180
  global $forms_list;
181
-
182
  // Load the Forms List class
183
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-forms-list.php' );
184
  $forms_list = new VisualFormBuilder_Forms_List();
185
  }
186
-
187
  /**
188
  * Add Settings link to Plugins page
189
- *
190
- * @since 1.8
191
  * @return $links array Links to add to plugin name
192
  */
193
  public function plugin_action_links( $links, $file ) {
194
  if ( $file == plugin_basename( __FILE__ ) )
195
  $links[] = '<a href="admin.php?page=visual-form-builder">' . __( 'Settings' , 'visual-form-builder') . '</a>';
196
-
197
  return $links;
198
- }
199
-
200
  /**
201
  * Adds the media button image
202
- *
203
  * @since 2.3
204
  */
205
  public function add_media_button(){
@@ -211,33 +226,33 @@ class Visual_Form_Builder{
211
  <?php
212
  endif;
213
  }
214
-
215
  /**
216
  * Adds the dashboard widget
217
- *
218
  * @since 2.7
219
  */
220
  public function add_dashboard_widget() {
221
  wp_add_dashboard_widget( 'vfb-dashboard', __( 'Recent Visual Form Builder Entries', 'visual-form-builder' ), array( &$this, 'dashboard_widget' ), array( &$this, 'dashboard_widget_control' ) );
222
  }
223
-
224
  /**
225
  * Displays the dashboard widget content
226
- *
227
  * @since 2.7
228
  */
229
  public function dashboard_widget() {
230
  global $wpdb;
231
-
232
  // Get the date/time format that is saved in the options table
233
  $date_format = get_option( 'date_format' );
234
  $time_format = get_option( 'time_format' );
235
-
236
  $widgets = get_option( 'vfb_dashboard_widget_options' );
237
  $total_items = isset( $widgets['vfb_dashboard_recent_entries'] ) && isset( $widgets['vfb_dashboard_recent_entries']['items'] ) ? absint( $widgets['vfb_dashboard_recent_entries']['items'] ) : 5;
238
-
239
  $forms = $wpdb->get_var( "SELECT COUNT(*) FROM {$this->form_table_name}" );
240
-
241
  if ( !$forms ) :
242
  echo sprintf(
243
  '<p>%1$s <a href="%2$s">%3$s</a></p>',
@@ -245,20 +260,20 @@ class Visual_Form_Builder{
245
  esc_url( admin_url( 'admin.php?page=vfb-add-new' ) ),
246
  __( 'Get started!', 'visual-form-builder' )
247
  );
248
-
249
  return;
250
  endif;
251
-
252
  $entries = $wpdb->get_results( $wpdb->prepare( "SELECT forms.form_title, entries.entries_id, entries.form_id, entries.sender_name, entries.sender_email, entries.date_submitted FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id ORDER BY entries.date_submitted DESC LIMIT %d", $total_items ) );
253
-
254
  if ( !$entries ) :
255
  echo sprintf( '<p>%1$s</p>', __( 'You currently do not have any entries.', 'visual-form-builder' ) );
256
  else :
257
-
258
  $content = '';
259
-
260
  foreach ( $entries as $entry ) :
261
-
262
  $content .= sprintf(
263
  '<li><a href="%1$s">%4$s</a> via <a href="%2$s">%5$s</a> <span class="rss-date">%6$s</span><cite>%3$s</cite></li>',
264
  esc_url( add_query_arg( array( 'action' => 'view', 'entry' => absint( $entry->entries_id ) ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
@@ -268,34 +283,34 @@ class Visual_Form_Builder{
268
  esc_html( $entry->form_title ),
269
  date( "$date_format $time_format", strtotime( $entry->date_submitted ) )
270
  );
271
-
272
  endforeach;
273
-
274
  echo "<div class='rss-widget'><ul>$content</ul></div>";
275
-
276
  endif;
277
  }
278
-
279
  /**
280
  * Displays the dashboard widget form control
281
- *
282
  * @since 2.7
283
  */
284
  public function dashboard_widget_control() {
285
  if ( !$widget_options = get_option( 'vfb_dashboard_widget_options' ) )
286
  $widget_options = array();
287
-
288
  if ( !isset( $widget_options['vfb_dashboard_recent_entries'] ) )
289
  $widget_options['vfb_dashboard_recent_entries'] = array();
290
-
291
  if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['vfb-widget-recent-entries'] ) ) {
292
  $number = absint( $_POST['vfb-widget-recent-entries']['items'] );
293
  $widget_options['vfb_dashboard_recent_entries']['items'] = $number;
294
  update_option( 'vfb_dashboard_widget_options', $widget_options );
295
  }
296
-
297
  $number = isset( $widget_options['vfb_dashboard_recent_entries']['items'] ) ? (int) $widget_options['vfb_dashboard_recent_entries']['items'] : '';
298
-
299
  echo sprintf(
300
  '<p>
301
  <label for="comments-number">%1$s</label>
@@ -305,10 +320,10 @@ class Visual_Form_Builder{
305
  $number
306
  );
307
  }
308
-
309
  /**
310
  * Register contextual help. This is for the Help tab dropdown
311
- *
312
  * @since 1.0
313
  */
314
  public function help(){
@@ -345,7 +360,7 @@ class Visual_Form_Builder{
345
  'title' => 'Validation',
346
  'content' => "<p>Visual Form Builder uses the <a href='http://docs.jquery.com/Plugins/Validation/Validator'>jQuery Form Validation plugin</a> to perform clientside form validation.</p>
347
  <ul>
348
-
349
  <li><em>Email</em>: makes the element require a valid email.</li>
350
  <li><em>URL</em>: makes the element require a valid url.</li>
351
  <li><em>Date</em>: makes the element require a date. <a href='http://docs.jquery.com/Plugins/Validation/Methods/date'>Refer to documentation for various accepted formats</a>.
@@ -380,7 +395,7 @@ class Visual_Form_Builder{
380
  <li><em>Include a Copy of the User's Entry</em>: appends a copy of the user's submitted entry to the notification email.</li>
381
  </ul>"
382
  ) );
383
-
384
  $screen->add_help_tab( array(
385
  'id' => 'vfb-help-tab-tips',
386
  'title' => 'Tips',
@@ -392,31 +407,31 @@ class Visual_Form_Builder{
392
  </ul>"
393
  ) );
394
  }
395
-
396
  /**
397
  * Adds the Screen Options tab to the Entries screen
398
- *
399
  * @since 1.0
400
  */
401
  public function screen_options(){
402
  $screen = get_current_screen();
403
-
404
  $page_main = $this->_admin_pages[ 'vfb' ];
405
  $page_entries = $this->_admin_pages[ 'vfb-entries' ];
406
-
407
  switch( $screen->id ) {
408
  case $page_entries :
409
-
410
  add_screen_option( 'per_page', array(
411
  'label' => __( 'Entries per page', 'visual-form-builder' ),
412
  'default' => 20,
413
  'option' => 'vfb_entries_per_page'
414
  ) );
415
-
416
  break;
417
-
418
  case $page_main :
419
-
420
  if ( isset( $_REQUEST['form'] ) ) :
421
  add_screen_option( 'layout_columns', array(
422
  'max' => 2,
@@ -431,32 +446,32 @@ class Visual_Form_Builder{
431
  endif;
432
 
433
  break;
434
- }
435
  }
436
-
437
  /**
438
  * Saves the Screen Options
439
- *
440
  * @since 1.0
441
  */
442
  public function save_screen_options( $status, $option, $value ){
443
-
444
  if ( $option == 'vfb_entries_per_page' )
445
  return $value;
446
  elseif ( $option == 'vfb_forms_per_page' )
447
  return $value;
448
  }
449
-
450
  /**
451
  * Add meta boxes to form builder screen
452
- *
453
  * @since 1.8
454
  */
455
  public function add_meta_boxes() {
456
  global $current_screen;
457
-
458
  $page_main = $this->_admin_pages[ 'vfb' ];
459
-
460
  if ( $current_screen->id == $page_main && isset( $_REQUEST['form'] ) ) {
461
  add_meta_box( 'vfb_form_items_meta_box', __( 'Form Items', 'visual-form-builder' ), array( &$this, 'meta_box_form_items' ), $page_main, 'side', 'high' );
462
  add_meta_box( 'vfb_form_media_button_tip', __( 'Display Forms', 'visual-form-builder' ), array( &$this, 'meta_box_display_forms' ), $page_main, 'side', 'low' );
@@ -464,7 +479,7 @@ class Visual_Form_Builder{
464
  }
465
  /**
466
  * Output for Form Items meta box
467
- *
468
  * @since 1.8
469
  */
470
  public function meta_box_form_items() {
@@ -494,9 +509,9 @@ class Visual_Form_Builder{
494
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-email"><b></b>Email</a></li>
495
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-currency"><b></b>Currency</a></li>
496
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-time"><b></b>Time</a></li>
497
-
498
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-html"><b></b>HTML</a></li>
499
-
500
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-instructions"><b></b>Instructions</a></li>
501
  </ul>
502
  <div class="clear"></div>
@@ -508,7 +523,7 @@ class Visual_Form_Builder{
508
 
509
  /**
510
  * Output for the Display Forms meta box
511
- *
512
  * @since 1.8
513
  */
514
  public function meta_box_display_forms() {
@@ -519,11 +534,11 @@ class Visual_Form_Builder{
519
  <p><?php _e( 'You may also manually insert the shortcode into a post/page.', 'visual-form-builder' ); ?></p>
520
  <p><?php _e( 'Shortcode', 'visual-form-builder' ); ?> <code>[vfb id='<?php echo (int) $_REQUEST['form']; ?>']</code></p>
521
  <?php
522
- }
523
-
524
  /**
525
  * Check database version and run SQL install, if needed
526
- *
527
  * @since 2.1
528
  */
529
  public function update_db_check() {
@@ -532,32 +547,32 @@ class Visual_Form_Builder{
532
  update_option( 'vfb_db_version', $this->vfb_db_version );
533
  $this->install_db();
534
  }
535
-
536
  // If database version doesn't match, update and run SQL install
537
  if ( version_compare( get_option( 'vfb_db_version' ), $this->vfb_db_version, '<' ) ) {
538
  update_option( 'vfb_db_version', $this->vfb_db_version );
539
  $this->install_db();
540
  }
541
  }
542
-
543
  /**
544
  * Install database tables
545
- *
546
- * @since 1.0
547
  */
548
  static function install_db() {
549
  global $wpdb;
550
-
551
  $field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
552
  $form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
553
  $entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
554
-
555
  // Explicitly set the character set and collation when creating the tables
556
  $charset = ( defined( 'DB_CHARSET' && '' !== DB_CHARSET ) ) ? DB_CHARSET : 'utf8';
557
  $collate = ( defined( 'DB_COLLATE' && '' !== DB_COLLATE ) ) ? DB_COLLATE : 'utf8_general_ci';
558
-
559
- require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
560
-
561
  $field_sql = "CREATE TABLE $field_table_name (
562
  field_id BIGINT(20) NOT NULL AUTO_INCREMENT,
563
  form_id BIGINT(20) NOT NULL,
@@ -599,7 +614,7 @@ class Visual_Form_Builder{
599
  form_label_alignment VARCHAR(25),
600
  PRIMARY KEY (form_id)
601
  ) DEFAULT CHARACTER SET $charset COLLATE $collate;";
602
-
603
  $entries_sql = "CREATE TABLE $entries_table_name (
604
  entries_id BIGINT(20) NOT NULL AUTO_INCREMENT,
605
  form_id BIGINT(20) NOT NULL,
@@ -613,17 +628,17 @@ class Visual_Form_Builder{
613
  entry_approved VARCHAR(20) DEFAULT '1',
614
  PRIMARY KEY (entries_id)
615
  ) DEFAULT CHARACTER SET $charset COLLATE $collate;";
616
-
617
  // Create or Update database tables
618
  dbDelta( $field_sql );
619
  dbDelta( $form_sql );
620
  dbDelta( $entries_sql );
621
  }
622
-
623
  /**
624
  * Queue plugin scripts for sorting form fields
625
- *
626
- * @since 1.0
627
  */
628
  public function admin_scripts() {
629
  wp_enqueue_script( 'jquery-ui-sortable' );
@@ -631,74 +646,74 @@ class Visual_Form_Builder{
631
  wp_enqueue_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
632
  wp_enqueue_script( 'vfb-admin', plugins_url( '/js/vfb-admin.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
633
  wp_enqueue_script( 'nested-sortable', plugins_url( '/js/jquery.ui.nestedSortable.js', __FILE__ ) , array( 'jquery', 'jquery-ui-sortable' ), '1.3.5', true );
634
-
635
  wp_enqueue_style( 'visual-form-builder-style', plugins_url( '/css/visual-form-builder-admin.css', __FILE__ ) );
636
-
637
  wp_localize_script( 'vfb-admin', 'VfbAdminPages', array( 'vfb_pages' => $this->_admin_pages ) );
638
  }
639
-
640
  /**
641
  * Queue form validation scripts
642
- *
643
- * @since 1.0
644
  */
645
  public function scripts() {
646
  // Make sure scripts are only added once via shortcode
647
  $this->add_scripts = true;
648
-
649
  wp_register_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
650
  wp_register_script( 'visual-form-builder-validation', plugins_url( '/js/vfb-validation.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
651
  wp_register_script( 'visual-form-builder-metadata', plugins_url( '/js/jquery.metadata.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
652
-
 
653
  wp_enqueue_script( 'jquery-form-validation' );
654
  wp_enqueue_script( 'jquery-ui-datepicker' );
655
  wp_enqueue_script( 'visual-form-builder-validation' );
656
  wp_enqueue_script( 'visual-form-builder-metadata' );
 
657
  }
658
-
659
  /**
660
  * Add form CSS to wp_head
661
- *
662
- * @since 1.0
663
  */
664
  public function css() {
665
  wp_register_style( 'vfb-jqueryui-css', apply_filters( 'vfb-date-picker-css', plugins_url( '/css/smoothness/jquery-ui-1.9.2.min.css', __FILE__ ) ) );
666
  wp_register_style( 'visual-form-builder-css', apply_filters( 'visual-form-builder-css', plugins_url( '/css/visual-form-builder.css', __FILE__ ) ) );
667
- wp_register_script( 'visual-form-builder-quicktags', plugins_url( '/js/js_quicktags.js', __FILE__ ) );
668
-
669
  wp_enqueue_style( 'visual-form-builder-css' );
670
  wp_enqueue_style( 'vfb-jqueryui-css' );
671
- wp_enqueue_script( 'visual-form-builder-quicktags' );
672
  }
673
-
674
  /**
675
  * Actions to save, update, and delete forms/form fields
676
- *
677
- *
678
  * @since 1.0
679
  */
680
  public function save() {
681
  global $wpdb;
682
-
683
  if ( !isset( $_REQUEST['page'] ) )
684
  return;
685
-
686
  if ( !isset( $_REQUEST['action'] ) )
687
  return;
688
-
689
  if ( in_array( $_REQUEST['page'], array( 'visual-form-builder', 'vfb-add-new', 'vfb-entries' ) ) ) :
690
  switch ( $_REQUEST['action'] ) :
691
  case 'create_form' :
692
-
693
  check_admin_referer( 'create_form' );
694
-
695
  $form_key = sanitize_title( $_REQUEST['form_title'] );
696
  $form_title = esc_html( $_REQUEST['form_title'] );
697
  $form_from_name = esc_html( $_REQUEST['form_email_from_name'] );
698
  $form_subject = esc_html( $_REQUEST['form_email_subject'] );
699
  $form_from = esc_html( $_REQUEST['form_email_from'] );
700
  $form_to = serialize( $_REQUEST['form_email_to'] );
701
-
702
  $newdata = array(
703
  'form_key' => $form_key,
704
  'form_title' => $form_title,
@@ -707,14 +722,14 @@ class Visual_Form_Builder{
707
  'form_email_from' => $form_from,
708
  'form_email_to' => $form_to,
709
  'form_success_message' => '<p id="form_success">Your form was successfully submitted. Thank you for contacting us.</p>'
710
- );
711
-
712
  // Create the form
713
  $wpdb->insert( $this->form_table_name, $newdata );
714
-
715
  // Get form ID to add our first field
716
  $new_form_selected = $wpdb->insert_id;
717
-
718
  // Setup the initial fieldset
719
  $initial_fieldset = array(
720
  'form_id' => $wpdb->insert_id,
@@ -723,10 +738,10 @@ class Visual_Form_Builder{
723
  'field_name' => 'Fieldset',
724
  'field_sequence' => 0
725
  );
726
-
727
- // Add the first fieldset to get things started
728
  $wpdb->insert( $this->field_table_name, $initial_fieldset );
729
-
730
  $verification_fieldset = array(
731
  'form_id' => $new_form_selected,
732
  'field_key' => 'verification',
@@ -735,12 +750,12 @@ class Visual_Form_Builder{
735
  'field_description' => '(This is for preventing spam)',
736
  'field_sequence' => 1
737
  );
738
-
739
- // Insert the submit field
740
  $wpdb->insert( $this->field_table_name, $verification_fieldset );
741
-
742
  $verify_fieldset_parent_id = $wpdb->insert_id;
743
-
744
  $secret = array(
745
  'form_id' => $new_form_selected,
746
  'field_key' => 'secret',
@@ -751,10 +766,10 @@ class Visual_Form_Builder{
751
  'field_parent' => $verify_fieldset_parent_id,
752
  'field_sequence' => 2
753
  );
754
-
755
- // Insert the submit field
756
  $wpdb->insert( $this->field_table_name, $secret );
757
-
758
  // Make the submit last in the sequence
759
  $submit = array(
760
  'form_id' => $new_form_selected,
@@ -764,20 +779,20 @@ class Visual_Form_Builder{
764
  'field_parent' => $verify_fieldset_parent_id,
765
  'field_sequence' => 3
766
  );
767
-
768
- // Insert the submit field
769
  $wpdb->insert( $this->field_table_name, $submit );
770
-
771
  // Redirect to keep the URL clean (use AJAX in the future?)
772
  wp_redirect( 'admin.php?page=visual-form-builder&form=' . $new_form_selected );
773
  exit();
774
-
775
  break;
776
-
777
  case 'update_form' :
778
-
779
  check_admin_referer( 'vfb_update_form' );
780
-
781
  $form_id = absint( $_REQUEST['form_id'] );
782
  $form_key = sanitize_title( $_REQUEST['form_title'], $form_id );
783
  $form_title = $_REQUEST['form_title'];
@@ -796,7 +811,7 @@ class Visual_Form_Builder{
796
  $form_notification_message = isset( $_REQUEST['form_notification_message'] ) ? wp_richedit_pre( $_REQUEST['form_notification_message'] ) : '';
797
  $form_notification_entry = isset( $_REQUEST['form_notification_entry'] ) ? $_REQUEST['form_notification_entry'] : '';
798
  $form_label_alignment = $_REQUEST['form_label_alignment'];
799
-
800
  // Add confirmation based on which type was selected
801
  switch ( $form_success_type ) {
802
  case 'text' :
@@ -809,7 +824,7 @@ class Visual_Form_Builder{
809
  $form_success_message = $_REQUEST['form_success_message_redirect'];
810
  break;
811
  }
812
-
813
  $newdata = array(
814
  'form_key' => $form_key,
815
  'form_title' => $form_title,
@@ -830,19 +845,19 @@ class Visual_Form_Builder{
830
  'form_notification_entry' => $form_notification_entry,
831
  'form_label_alignment' => $form_label_alignment
832
  );
833
-
834
  $where = array( 'form_id' => $form_id );
835
-
836
  // Update form details
837
  $wpdb->update( $this->form_table_name, $newdata, $where );
838
-
839
  // Initialize field sequence
840
  $field_sequence = 0;
841
-
842
  // Loop through each field and update
843
  foreach ( $_REQUEST['field_id'] as $id ) :
844
  $id = absint( $id );
845
-
846
  $field_name = ( isset( $_REQUEST['field_name-' . $id] ) ) ? $_REQUEST['field_name-' . $id] : '';
847
  $field_key = sanitize_key( sanitize_title( $field_name, $id ) );
848
  $field_desc = ( isset( $_REQUEST['field_description-' . $id] ) ) ? $_REQUEST['field_description-' . $id] : '';
@@ -853,7 +868,7 @@ class Visual_Form_Builder{
853
  $field_css = ( isset( $_REQUEST['field_css-' . $id] ) ) ? $_REQUEST['field_css-' . $id] : '';
854
  $field_layout = ( isset( $_REQUEST['field_layout-' . $id] ) ) ? $_REQUEST['field_layout-' . $id] : '';
855
  $field_default = ( isset( $_REQUEST['field_default-' . $id] ) ) ? $_REQUEST['field_default-' . $id] : '';
856
-
857
  $field_data = array(
858
  'field_key' => $field_key,
859
  'field_name' => $field_name,
@@ -867,47 +882,47 @@ class Visual_Form_Builder{
867
  'field_sequence' => $field_sequence,
868
  'field_default' => $field_default
869
  );
870
-
871
  $where = array(
872
  'form_id' => $form_id,
873
  'field_id' => $id
874
  );
875
-
876
  // Update all fields
877
  $wpdb->update( $this->field_table_name, $field_data, $where );
878
-
879
  $field_sequence++;
880
  endforeach;
881
-
882
  break;
883
-
884
  case 'delete_form' :
885
  $id = absint( $_REQUEST['form'] );
886
-
887
  check_admin_referer( 'delete-form-' . $id );
888
-
889
  // Delete form and all fields
890
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->form_table_name WHERE form_id = %d", $id ) );
891
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE form_id = %d", $id ) );
892
-
893
  // Redirect to keep the URL clean (use AJAX in the future?)
894
  wp_redirect( add_query_arg( 'action', 'deleted', 'admin.php?page=visual-form-builder' ) );
895
  exit();
896
-
897
  break;
898
-
899
  case 'copy_form' :
900
  $id = absint( $_REQUEST['form'] );
901
-
902
  check_admin_referer( 'copy-form-' . $id );
903
-
904
- // Get all fields and data for the request form
905
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d", $id ) );
906
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d", $id ) );
907
  $override = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_override, form_email_from_name_override, form_notification_email FROM $this->form_table_name WHERE form_id = %d", $id ) );
908
  $from_name = $wpdb->get_var( null, 1 );
909
  $notify = $wpdb->get_var( null, 2 );
910
-
911
  // Copy this form and force the initial title to denote a copy
912
  foreach ( $forms as $form ) {
913
  $data = array(
@@ -930,13 +945,13 @@ class Visual_Form_Builder{
930
  'form_notification_entry' => $form->form_notification_entry,
931
  'form_label_alignment' => $form->form_label_alignment
932
  );
933
-
934
  $wpdb->insert( $this->form_table_name, $data );
935
  }
936
-
937
  // Get form ID to add our first field
938
  $new_form_selected = $wpdb->insert_id;
939
-
940
  // Copy each field and data
941
  foreach ( $fields as $field ) {
942
  $data = array(
@@ -954,46 +969,46 @@ class Visual_Form_Builder{
954
  'field_layout' => $field->field_layout,
955
  'field_parent' => $field->field_parent
956
  );
957
-
958
  $wpdb->insert( $this->field_table_name, $data );
959
 
960
  // If a parent field, save the old ID and the new ID to update new parent ID
961
  if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) )
962
  $parents[ $field->field_id ] = $wpdb->insert_id;
963
-
964
  if ( $override == $field->field_id )
965
  $wpdb->update( $this->form_table_name, array( 'form_email_from_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
966
-
967
  if ( $from_name == $field->field_id )
968
  $wpdb->update( $this->form_table_name, array( 'form_email_from_name_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
969
-
970
  if ( $notify == $field->field_id )
971
  $wpdb->update( $this->form_table_name, array( 'form_notification_email' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
972
  }
973
-
974
  // Loop through our parents and update them to their new IDs
975
  foreach ( $parents as $k => $v ) {
976
- $wpdb->update( $this->field_table_name, array( 'field_parent' => $v ), array( 'form_id' => $new_form_selected, 'field_parent' => $k ) );
977
  }
978
-
979
  break;
980
-
981
  case 'trash_entry' :
982
  $entry_id = absint( $_GET['entry'] );
983
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $entry_id ) );
984
  break;
985
  endswitch;
986
  endif;
987
- }
988
-
989
  /**
990
  * The jQuery field sorting callback
991
- *
992
  * @since 1.0
993
  */
994
  public function ajax_sort_field() {
995
  global $wpdb;
996
-
997
  $data = array();
998
 
999
  foreach ( $_REQUEST['order'] as $k ) {
@@ -1012,29 +1027,29 @@ class Visual_Form_Builder{
1012
 
1013
  wp_die();
1014
  }
1015
-
1016
  /**
1017
  * The jQuery create field callback
1018
- *
1019
  * @since 1.9
1020
  */
1021
  public function ajax_create_field() {
1022
  global $wpdb;
1023
-
1024
  $data = array();
1025
  $field_options = $field_validation = '';
1026
-
1027
  foreach ( $_REQUEST['data'] as $k ) {
1028
  $data[ $k['name'] ] = $k['value'];
1029
  }
1030
-
1031
  check_ajax_referer( 'create-field-' . $data['form_id'], 'nonce' );
1032
-
1033
  $form_id = absint( $data['form_id'] );
1034
  $field_key = sanitize_title( $_REQUEST['field_type'] );
1035
  $field_name = esc_html( $_REQUEST['field_type'] );
1036
  $field_type = strtolower( sanitize_title( $_REQUEST['field_type'] ) );
1037
-
1038
  // Set defaults for validation
1039
  switch ( $field_type ) {
1040
  case 'select' :
@@ -1042,37 +1057,37 @@ class Visual_Form_Builder{
1042
  case 'checkbox' :
1043
  $field_options = serialize( array( 'Option 1', 'Option 2', 'Option 3' ) );
1044
  break;
1045
-
1046
  case 'email' :
1047
  case 'url' :
1048
  case 'phone' :
1049
  $field_validation = $field_type;
1050
  break;
1051
-
1052
  case 'currency' :
1053
  $field_validation = 'number';
1054
  break;
1055
-
1056
  case 'number' :
1057
  $field_validation = 'digits';
1058
  break;
1059
-
1060
  case 'time' :
1061
  $field_validation = 'time-12';
1062
  break;
1063
-
1064
  case 'file-upload' :
1065
  $field_options = serialize( array( 'png|jpe?g|gif' ) );
1066
  break;
1067
  }
1068
-
1069
-
1070
  // Get the last row's sequence that isn't a Verification
1071
  $sequence_last_row = $wpdb->get_var( $wpdb->prepare( "SELECT field_sequence FROM $this->field_table_name WHERE form_id = %d AND field_type = 'verification' ORDER BY field_sequence DESC LIMIT 1", $form_id ) );
1072
-
1073
  // If it's not the first for this form, add 1
1074
  $field_sequence = ( !empty( $sequence_last_row ) ) ? $sequence_last_row : 0;
1075
-
1076
  $newdata = array(
1077
  'form_id' => $form_id,
1078
  'field_key' => $field_key,
@@ -1082,33 +1097,33 @@ class Visual_Form_Builder{
1082
  'field_sequence' => $field_sequence,
1083
  'field_validation' => $field_validation
1084
  );
1085
-
1086
  // Create the field
1087
  $wpdb->insert( $this->field_table_name, $newdata );
1088
  $insert_id = $wpdb->insert_id;
1089
-
1090
- // VIP fields
1091
  $vip_fields = array( 'verification', 'secret', 'submit' );
1092
-
1093
- // Move the VIPs
1094
  foreach ( $vip_fields as $update ) {
1095
  $field_sequence++;
1096
  $where = array(
1097
  'form_id' => absint( $data['form_id'] ),
1098
  'field_type' => $update
1099
- );
1100
  $wpdb->update( $this->field_table_name, array( 'field_sequence' => $field_sequence ), $where );
1101
-
1102
  }
1103
-
1104
  echo $this->field_output( $data['form_id'], $insert_id );
1105
-
1106
  die(1);
1107
  }
1108
-
1109
  /**
1110
  * The jQuery delete field callback
1111
- *
1112
  * @since 1.9
1113
  */
1114
  public function ajax_delete_field() {
@@ -1117,76 +1132,76 @@ class Visual_Form_Builder{
1117
  if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'visual_form_builder_delete_field' ) {
1118
  $form_id = absint( $_REQUEST['form'] );
1119
  $field_id = absint( $_REQUEST['field'] );
1120
-
1121
  check_ajax_referer( 'delete-field-' . $form_id, 'nonce' );
1122
-
1123
  if ( isset( $_REQUEST['child_ids'] ) ) {
1124
  foreach ( $_REQUEST['child_ids'] as $children ) {
1125
  $parent = absint( $_REQUEST['parent_id'] );
1126
-
1127
  // Update each child item with the new parent ID
1128
  $wpdb->update( $this->field_table_name, array( 'field_parent' => $parent ), array( 'field_id' => $children ) );
1129
  }
1130
  }
1131
-
1132
  // Delete the field
1133
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE field_id = %d", $field_id ) );
1134
  }
1135
-
1136
  die(1);
1137
  }
1138
-
1139
  /**
1140
  * The jQuery form settings callback
1141
- *
1142
  * @since 2.2
1143
  */
1144
  public function ajax_form_settings() {
1145
  global $current_user;
1146
  get_currentuserinfo();
1147
-
1148
  if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'visual_form_builder_form_settings' ) {
1149
  $form_id = absint( $_REQUEST['form'] );
1150
  $status = isset( $_REQUEST['status'] ) ? $_REQUEST['status'] : 'opened';
1151
  $accordion = isset( $_REQUEST['accordion'] ) ? $_REQUEST['accordion'] : 'general-settings';
1152
  $user_id = $current_user->ID;
1153
-
1154
  $form_settings = get_user_meta( $user_id, 'vfb-form-settings', true );
1155
-
1156
  $array = array(
1157
  'form_setting_tab' => $status,
1158
  'setting_accordion' => $accordion
1159
  );
1160
-
1161
- // Set defaults if meta key doesn't exist
1162
  if ( !$form_settings || $form_settings == '' ) {
1163
  $meta_value[ $form_id ] = $array;
1164
-
1165
  update_user_meta( $user_id, 'vfb-form-settings', $meta_value );
1166
  }
1167
  else {
1168
  $form_settings[ $form_id ] = $array;
1169
-
1170
  update_user_meta( $user_id, 'vfb-form-settings', $form_settings );
1171
  }
1172
  }
1173
-
1174
  die(1);
1175
  }
1176
 
1177
  /**
1178
  * Display the additional media button
1179
- *
1180
  * Used for inserting the form shortcode with desired form ID
1181
  *
1182
  * @since 2.3
1183
  */
1184
  public function ajax_media_button(){
1185
  global $wpdb;
1186
-
1187
  // Sanitize the sql orderby
1188
  $order = sanitize_sql_orderby( 'form_id ASC' );
1189
-
1190
  // Build our forms as an object
1191
  $forms = $wpdb->get_results( "SELECT form_id, form_title FROM $this->form_table_name ORDER BY $order" );
1192
  ?>
@@ -1194,9 +1209,9 @@ class Visual_Form_Builder{
1194
  jQuery(document).ready(function($) {
1195
  $( '#add_vfb_form' ).submit(function(e){
1196
  e.preventDefault();
1197
-
1198
  window.send_to_editor( '[vfb id=' + $( '#vfb_forms' ).val() + ']' );
1199
-
1200
  window.tb_remove();
1201
  });
1202
  });
@@ -1216,17 +1231,17 @@ class Visual_Form_Builder{
1216
  <?php
1217
  die(1);
1218
  }
1219
-
1220
  /**
1221
  * All Forms output in admin
1222
- *
1223
  * @since 2.5
1224
  */
1225
  public function all_forms() {
1226
  global $wpdb, $forms_list;
1227
-
1228
  $order = sanitize_sql_orderby( 'form_title ASC' );
1229
-
1230
  $where = apply_filters( 'vfb_pre_get_forms', '' );
1231
  $forms = $wpdb->get_results( "SELECT form_id, form_title FROM $this->form_table_name WHERE 1=1 $where ORDER BY $order" );
1232
 
@@ -1236,36 +1251,36 @@ class Visual_Form_Builder{
1236
  endif;
1237
 
1238
  echo '<form id="forms-filter" method="post" action="">';
1239
-
1240
  $forms_list->prepare_items();
1241
 
1242
  $forms_list->search_box( 'search', 'search_id' );
1243
  $forms_list->display();
1244
-
1245
  echo '</form>';
1246
- ?>
1247
-
1248
  <?php
1249
  }
1250
 
1251
  /**
1252
  * Build field output in admin
1253
- *
1254
  * @since 1.9
1255
  */
1256
  public function field_output( $form_nav_selected_id, $field_id = NULL ) {
1257
  global $wpdb;
1258
-
1259
  $field_where = ( isset( $field_id ) && !is_null( $field_id ) ) ? "AND field_id = $field_id" : '';
1260
  // Display all fields for the selected form
1261
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d $field_where ORDER BY field_sequence ASC", $form_nav_selected_id ) );
1262
-
1263
  $depth = 1;
1264
  $parent = $last = 0;
1265
  ob_start();
1266
-
1267
  // Loop through each field and display
1268
- foreach ( $fields as $field ) :
1269
  // If we are at the root level
1270
  if ( !$field->field_parent && $depth > 1 ) {
1271
  // If we've been down a level, close out the list
@@ -1273,14 +1288,14 @@ class Visual_Form_Builder{
1273
  echo '</li></ul>';
1274
  $depth--;
1275
  }
1276
-
1277
  // Close out the root item
1278
  echo '</li>';
1279
  }
1280
  // first item of <ul>, so move down a level
1281
  elseif ( $field->field_parent && $field->field_parent == $last ) {
1282
  echo '<ul class="parent">';
1283
- $depth++;
1284
  }
1285
  // Close up a <ul> and move up a level
1286
  elseif ( $field->field_parent && $field->field_parent != $parent ) {
@@ -1290,8 +1305,8 @@ class Visual_Form_Builder{
1290
  // Same level so close list item
1291
  elseif ( $field->field_parent && $field->field_parent == $parent )
1292
  echo '</li>';
1293
-
1294
- // Store item ID and parent ID to test for nesting
1295
  $last = $field->field_id;
1296
  $parent = $field->field_parent;
1297
  ?>
@@ -1308,7 +1323,7 @@ class Visual_Form_Builder{
1308
 
1309
  <div id="form-item-settings-<?php echo $field->field_id; ?>" class="menu-item-settings field-type-<?php echo $field->field_type; ?>" style="display: none;">
1310
  <?php if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) ) : ?>
1311
-
1312
  <p class="description description-wide">
1313
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>"><?php echo ( in_array( $field->field_type, array( 'fieldset', 'verification' ) ) ) ? 'Legend' : 'Name'; ?>
1314
  <span class="vfb-tooltip" rel="<?php esc_attr_e( 'For Fieldsets, a Legend is simply the name of that group. Use general terms that describe the fields included in this Fieldset.', 'visual-form-builder' ); ?>" title="<?php esc_attr_e( 'About Legend', 'visual-form-builder' ); ?>">(?)</span>
@@ -1324,7 +1339,7 @@ class Visual_Form_Builder{
1324
  <input type="text" value="<?php echo stripslashes( esc_attr( $field->field_css ) ); ?>" name="field_css-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-css-<?php echo $field->field_id; ?>" />
1325
  </label>
1326
  </p>
1327
-
1328
  <?php elseif( $field->field_type == 'instructions' ) : ?>
1329
  <!-- Instructions -->
1330
  <p class="description description-wide">
@@ -1343,9 +1358,9 @@ class Visual_Form_Builder{
1343
  <textarea name="field_description-<?php echo $field->field_id; ?>" class="widefat edit-menu-item-description" cols="20" rows="3" id="edit-form-item-description-<?php echo $field->field_id; ?>" /><?php echo stripslashes( $field->field_description ); ?></textarea>
1344
  </label>
1345
  </p>
1346
-
1347
  <?php else: ?>
1348
-
1349
  <!-- Name -->
1350
  <p class="description description-wide">
1351
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">
@@ -1375,7 +1390,7 @@ class Visual_Form_Builder{
1375
  <textarea name="field_description-<?php echo $field->field_id; ?>" class="widefat edit-menu-item-description" cols="20" rows="3" id="edit-form-item-description-<?php echo $field->field_id; ?>" /><?php echo stripslashes( $field->field_description ); ?></textarea>
1376
  </label>
1377
  </p>
1378
-
1379
  <?php
1380
  // Display the Options input only for radio, checkbox, and select fields
1381
  if ( in_array( $field->field_type, array( 'radio', 'checkbox', 'select' ) ) ) : ?>
@@ -1393,10 +1408,10 @@ class Visual_Form_Builder{
1393
  // Otherwise, present some default options
1394
  else
1395
  $opts_vals = array( 'Option 1', 'Option 2', 'Option 3' );
1396
-
1397
  // Basic count to keep track of multiple options
1398
  $count = 1;
1399
-
1400
  // Loop through the options
1401
  foreach ( $opts_vals as $options ) {
1402
  ?>
@@ -1405,10 +1420,10 @@ class Visual_Form_Builder{
1405
  <input type="radio" value="<?php echo esc_attr( $count ); ?>" name="field_default-<?php echo $field->field_id; ?>" <?php checked( $field->field_default, $count ); ?> />
1406
  <input type="text" value="<?php echo stripslashes( esc_attr( $options ) ); ?>" name="field_options-<?php echo $field->field_id; ?>[]" class="widefat" id="edit-form-item-options-<?php echo $field->field_id . "-$count"; ?>" />
1407
  </label>
1408
-
1409
  <a href="#" class="addOption" title="Add an Option"><?php _e( 'Add', 'visual-form-builder' ); ?></a> <a href="#" class="deleteOption" title="Delete Option"><?php _e( 'Delete', 'visual-form-builder' ); ?></a>
1410
  </div>
1411
- <?php
1412
  $count++;
1413
  }
1414
  ?>
@@ -1418,7 +1433,7 @@ class Visual_Form_Builder{
1418
  unset( $opts_vals );
1419
  endif;
1420
  ?>
1421
-
1422
  <?php
1423
  // Display the Options input only for radio, checkbox, select, and autocomplete fields
1424
  if ( in_array( $field->field_type, array( 'file-upload' ) ) ) :
@@ -1427,7 +1442,7 @@ class Visual_Form_Builder{
1427
  <p class="description description-wide">
1428
  <?php
1429
  $opts_vals = array( '' );
1430
-
1431
  // If the options field isn't empty, unserialize and build array
1432
  if ( !empty( $field->field_options ) ) {
1433
  if ( is_serialized( $field->field_options ) )
@@ -1456,7 +1471,7 @@ class Visual_Form_Builder{
1456
  <?php _e( 'Validation' , 'visual-form-builder'); ?>
1457
  <span class="vfb-tooltip" title="<?php esc_attr_e( 'About Validation', 'visual-form-builder' ); ?>" rel="<?php esc_attr_e( 'Ensures user-entered data is formatted properly. For more information on Validation, refer to the Help tab at the top of this page.', 'visual-form-builder' ); ?>">(?)</span>
1458
  <br />
1459
-
1460
  <?php if ( in_array( $field->field_type , array( 'text', 'time', 'number' ) ) ) : ?>
1461
  <select name="field_validation-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-validation-<?php echo $field->field_id; ?>">
1462
  <?php if ( $field->field_type == 'time' ) : ?>
@@ -1477,30 +1492,30 @@ class Visual_Form_Builder{
1477
  </select>
1478
  <?php else :
1479
  $field_validation = '';
1480
-
1481
  switch ( $field->field_type ) {
1482
  case 'email' :
1483
  case 'url' :
1484
  case 'phone' :
1485
  $field_validation = $field->field_type;
1486
  break;
1487
-
1488
  case 'currency' :
1489
  $field_validation = 'number';
1490
  break;
1491
-
1492
  case 'number' :
1493
  $field_validation = 'digits';
1494
  break;
1495
  }
1496
-
1497
  ?>
1498
  <input type="text" class="widefat" name="field_validation-<?php echo $field->field_id; ?>" value="<?php echo $field_validation; ?>" readonly="readonly" />
1499
  <?php endif; ?>
1500
-
1501
  </label>
1502
  </p>
1503
-
1504
  <!-- Required -->
1505
  <p class="field-link-target description description-thin">
1506
  <label for="edit-form-item-required">
@@ -1513,7 +1528,7 @@ class Visual_Form_Builder{
1513
  </select>
1514
  </label>
1515
  </p>
1516
-
1517
  <?php if ( !in_array( $field->field_type, array( 'radio', 'checkbox', 'time' ) ) ) : ?>
1518
  <!-- Size -->
1519
  <p class="description description-thin">
@@ -1544,7 +1559,7 @@ class Visual_Form_Builder{
1544
  </select>
1545
  </label>
1546
  </p>
1547
-
1548
  <?php endif; ?>
1549
  <!-- Field Layout -->
1550
  <p class="description description-thin">
@@ -1553,7 +1568,7 @@ class Visual_Form_Builder{
1553
  <span class="vfb-tooltip" title="<?php esc_attr_e( 'About Field Layout', 'visual-form-builder' ); ?>" rel="<?php esc_attr_e( 'Used to create advanced layouts. Align fields side by side in various configurations.', 'visual-form-builder' ); ?>">(?)</span>
1554
  <br />
1555
  <select name="field_layout-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-layout-<?php echo $field->field_id; ?>">
1556
-
1557
  <option value="" <?php selected( $field->field_layout, '' ); ?>><?php _e( 'Default' , 'visual-form-builder'); ?></option>
1558
  <optgroup label="------------">
1559
  <option value="left-half" <?php selected( $field->field_layout, 'left-half' ); ?>><?php _e( 'Left Half' , 'visual-form-builder'); ?></option>
@@ -1610,18 +1625,18 @@ class Visual_Form_Builder{
1610
 
1611
  <?php endif; ?>
1612
  <?php endif; ?>
1613
-
1614
  <?php if ( !in_array( $field->field_type, array( 'verification', 'secret', 'submit' ) ) ) : ?>
1615
  <div class="menu-item-actions description-wide submitbox">
1616
  <a href="<?php echo esc_url( wp_nonce_url( admin_url('admin.php?page=visual-form-builder&amp;action=delete_field&amp;form=' . $form_nav_selected_id . '&amp;field=' . $field->field_id ), 'delete-field-' . $form_nav_selected_id ) ); ?>" class="item-delete submitdelete deletion"><?php _e( 'Remove' , 'visual-form-builder'); ?></a>
1617
  </div>
1618
  <?php endif; ?>
1619
-
1620
  <input type="hidden" name="field_id[<?php echo $field->field_id; ?>]" value="<?php echo $field->field_id; ?>" />
1621
  </div>
1622
  <?php
1623
  endforeach;
1624
-
1625
  // This assures all of the <ul> and <li> are closed
1626
  if ( $depth > 1 ) {
1627
  while( $depth > 1 ) {
@@ -1630,15 +1645,15 @@ class Visual_Form_Builder{
1630
  $depth--;
1631
  }
1632
  }
1633
-
1634
  // Close out last item
1635
  echo '</li>';
1636
  echo ob_get_clean();
1637
  }
1638
-
1639
  /**
1640
  * Display admin notices
1641
- *
1642
  * @since 1.0
1643
  */
1644
  public function admin_notices(){
@@ -1657,59 +1672,59 @@ class Visual_Form_Builder{
1657
  echo '<div id="message" class="updated"><p>' . __( 'The form has been successfully duplicated.' , 'visual-form-builder') . '</p></div>';
1658
  break;
1659
  }
1660
-
1661
  }
1662
  }
1663
 
1664
  /**
1665
  * Add options page to Settings menu
1666
- *
1667
- *
1668
  * @since 1.0
1669
  * @uses add_options_page() Creates a menu item under the Settings menu.
1670
  */
1671
  public function add_admin() {
1672
  $current_pages = array();
1673
-
1674
  $current_pages[ 'vfb' ] = add_menu_page( __( 'Visual Form Builder', 'visual-form-builder' ), __( 'Visual Form Builder', 'visual-form-builder' ), 'manage_options', 'visual-form-builder', array( &$this, 'admin' ), plugins_url( 'visual-form-builder/images/vfb_icon.png' ) );
1675
-
1676
  add_submenu_page( 'visual-form-builder', __( 'Visual Form Builder', 'visual-form-builder' ), __( 'All Forms', 'visual-form-builder' ), 'manage_options', 'visual-form-builder', array( &$this, 'admin' ) );
1677
  $current_pages[ 'vfb-add-new' ] = add_submenu_page( 'visual-form-builder', __( 'Add New Form', 'visual-form-builder' ), __( 'Add New Form', 'visual-form-builder' ), 'manage_options', 'vfb-add-new', array( &$this, 'admin_add_new' ) );
1678
  $current_pages[ 'vfb-entries' ] = add_submenu_page( 'visual-form-builder', __( 'Entries', 'visual-form-builder' ), __( 'Entries', 'visual-form-builder' ), 'manage_options', 'vfb-entries', array( &$this, 'admin_entries' ) );
1679
  $current_pages[ 'vfb-export' ] = add_submenu_page( 'visual-form-builder', __( 'Export', 'visual-form-builder' ), __( 'Export', 'visual-form-builder' ), 'manage_options', 'vfb-export', array( &$this, 'admin_export' ) );
1680
-
1681
  // All plugin page load hooks
1682
  foreach ( $current_pages as $key => $page ) :
1683
  // Load the jQuery and CSS we need if we're on our plugin page
1684
  add_action( "load-$page", array( &$this, 'admin_scripts' ) );
1685
-
1686
  // Load the Help tab on all pages
1687
  add_action( "load-$page", array( &$this, 'help' ) );
1688
  endforeach;
1689
-
1690
  // Save pages array for filter/action use throughout plugin
1691
  $this->_admin_pages = $current_pages;
1692
-
1693
  // Adds a Screen Options tab to the Entries screen
1694
  add_filter( 'load-' . $current_pages['vfb'], array( &$this, 'screen_options' ) );
1695
  add_filter( 'load-' . $current_pages['vfb-entries'], array( &$this, 'screen_options' ) );
1696
-
1697
  // Add meta boxes to the form builder admin page
1698
  add_action( 'load-' . $current_pages['vfb'], array( &$this, 'add_meta_boxes' ) );
1699
-
1700
  // Include Entries and Import files
1701
  add_action( 'load-' . $current_pages['vfb-entries'], array( &$this, 'includes' ) );
1702
-
1703
  add_action( 'load-' . $current_pages['vfb'], array( &$this, 'include_forms_list' ) );
1704
  }
1705
 
1706
  /**
1707
  * Display Add New Form page
1708
- *
1709
- *
1710
  * @since 2.7.2
1711
  */
1712
- public function admin_add_new() {
1713
  ?>
1714
  <div class="wrap">
1715
  <?php screen_icon( 'options-general' ); ?>
@@ -1723,8 +1738,8 @@ class Visual_Form_Builder{
1723
 
1724
  /**
1725
  * Display Entries
1726
- *
1727
- *
1728
  * @since 2.7.2
1729
  */
1730
  public function admin_entries() {
@@ -1747,7 +1762,7 @@ class Visual_Form_Builder{
1747
  $entries_list->views();
1748
  $entries_list->prepare_items();
1749
  ?>
1750
- <form id="entries-filter" method="post" action="">
1751
  <?php
1752
  $entries_list->search_box( 'search', 'search_id' );
1753
  $entries_list->display();
@@ -1760,12 +1775,12 @@ class Visual_Form_Builder{
1760
 
1761
  /**
1762
  * Display Export
1763
- *
1764
- *
1765
  * @since 2.7.2
1766
  */
1767
  public function admin_export() {
1768
- global $export;
1769
  ?>
1770
  <div class="wrap">
1771
  <?php screen_icon( 'options-general' ); ?>
@@ -1776,20 +1791,20 @@ class Visual_Form_Builder{
1776
  </div>
1777
  <?php
1778
  }
1779
-
1780
  /**
1781
  * Builds the options settings page
1782
- *
1783
  * @since 1.0
1784
  */
1785
  public function admin() {
1786
  global $wpdb, $current_user;
1787
-
1788
  get_currentuserinfo();
1789
-
1790
  // Save current user ID
1791
  $user_id = $current_user->ID;
1792
-
1793
  // Set variables depending on which tab is selected
1794
  $form_nav_selected_id = ( isset( $_REQUEST['form'] ) ) ? $_REQUEST['form'] : '0';
1795
  ?>
@@ -1800,7 +1815,7 @@ class Visual_Form_Builder{
1800
  <?php
1801
  // Add New link
1802
  echo sprintf( ' <a href="%1$s" class="add-new-h2">%2$s</a>', esc_url( admin_url( 'admin.php?page=vfb-add-new' ) ), esc_html( __( 'Add New', 'visual-form-builder' ) ) );
1803
-
1804
  // If searched, output the query
1805
  if ( isset( $_REQUEST['s'] ) && !empty( $_REQUEST['s'] ) )
1806
  echo '<span class="subtitle">' . sprintf( __( 'Search results for "%s"' , 'visual-form-builder' ), $_REQUEST['s'] );
@@ -1808,11 +1823,12 @@ class Visual_Form_Builder{
1808
  </h2>
1809
  <?php if ( empty( $form_nav_selected_id ) ) : ?>
1810
  <div id="vfb-form-list">
1811
- <div id="vfb-sidebar">
1812
  <div id="vfb-upgrade-column">
1813
  <div class="vfb-pro-upgrade">
1814
  <h2><a href="http://vfb.matthewmuro.com">Visual Form Builder Pro</a></h2>
1815
  <p class="vfb-pro-call-to-action">
 
1816
  <a class="vfb-btn vfb-btn-primary" href="http://visualformbuilder.fetchapp.com/sell/dahdaeng/ppc"><?php _e( 'Buy Now' , 'visual-form-builder'); ?></a>
1817
  </p>
1818
  <h3><?php _e( 'New Features' , 'visual-form-builder'); ?></h3>
@@ -1839,10 +1855,10 @@ class Visual_Form_Builder{
1839
  <li><?php _e( 'No License Key' , 'visual-form-builder'); ?></li>
1840
  <li><?php _e( 'Automatic Updates' , 'visual-form-builder'); ?></li>
1841
  </ul>
1842
-
1843
  <p><a href="http://vfb.matthewmuro.com/#features"><?php _e( 'View all features' , 'visual-form-builder'); ?></a>.</p>
1844
  </div> <!-- .vfb-pro-upgrade -->
1845
-
1846
  <h3><?php _e( 'Promote Visual Form Builder' , 'visual-form-builder'); ?></h3>
1847
  <ul id="promote-vfb">
1848
  <li id="twitter"><?php _e( 'Follow me on Twitter' , 'visual-form-builder'); ?>: <a href="http://twitter.com/#!/matthewmuro">@matthewmuro</a></li>
@@ -1857,7 +1873,7 @@ class Visual_Form_Builder{
1857
  <?php $this->all_forms(); ?>
1858
  </div> <!-- #vfb-main -->
1859
  </div> <!-- #vfb-form-list -->
1860
-
1861
  <?php
1862
  elseif ( !empty( $form_nav_selected_id ) && $form_nav_selected_id !== '0' ) :
1863
  include_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/admin-form-creator.php' );
@@ -1866,22 +1882,22 @@ class Visual_Form_Builder{
1866
  </div>
1867
  <?php
1868
  }
1869
-
1870
  /**
1871
  * Handle confirmation when form is submitted
1872
- *
1873
  * @since 1.3
1874
  */
1875
  function confirmation(){
1876
  global $wpdb;
1877
-
1878
  $form_id = ( isset( $_REQUEST['form_id'] ) ) ? (int) esc_html( $_REQUEST['form_id'] ) : '';
1879
-
1880
  if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
1881
  // Get forms
1882
  $order = sanitize_sql_orderby( 'form_id DESC' );
1883
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
1884
-
1885
  foreach ( $forms as $form ) :
1886
  // If text, return output and format the HTML for display
1887
  if ( 'text' == $form->form_success_type )
@@ -1900,76 +1916,76 @@ class Visual_Form_Builder{
1900
  endforeach;
1901
  endif;
1902
  }
1903
-
1904
  /**
1905
  * Output form via shortcode
1906
- *
1907
  * @since 1.0
1908
  */
1909
  public function form_code( $atts, $output = '' ) {
1910
-
1911
  require( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/form-output.php' );
1912
-
1913
  return $output;
1914
  }
1915
-
1916
  /**
1917
  * Handle emailing the content
1918
- *
1919
  * @since 1.0
1920
  * @uses wp_mail() E-mails a message
1921
  */
1922
  public function email() {
1923
  require( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/email.php' );
1924
  }
1925
-
1926
  /**
1927
  * Validate the input
1928
- *
1929
  * @since 2.2
1930
  */
1931
  public function validate_input( $data, $name, $type, $required ) {
1932
-
1933
  if ( 'yes' == $required && strlen( $data ) == 0 )
1934
  wp_die( "<h1>$name</h1><br>" . __( 'This field is required and cannot be empty.', 'visual-form-builder' ), $name, array( 'back_link' => true ) );
1935
-
1936
  if ( strlen( $data ) > 0 ) :
1937
  switch( $type ) :
1938
-
1939
  case 'email' :
1940
  if ( !is_email( $data ) )
1941
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid email address', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1942
  break;
1943
-
1944
  case 'number' :
1945
  case 'currency' :
1946
  if ( !is_numeric( $data ) )
1947
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid number', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1948
  break;
1949
-
1950
  case 'phone' :
1951
  if ( strlen( $data ) > 9 && preg_match( '/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/', $data ) )
1952
- return true;
1953
  else
1954
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid phone number. Most US/Canada and International formats accepted.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1955
  break;
1956
-
1957
  case 'url' :
1958
  if ( !preg_match( '|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $data ) )
1959
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid URL.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1960
  break;
1961
-
1962
  default :
1963
  return true;
1964
  break;
1965
-
1966
  endswitch;
1967
  endif;
1968
  }
1969
 
1970
  /**
1971
  * Sanitize the input
1972
- *
1973
  * @since 2.5
1974
  */
1975
  public function sanitize_input( $data, $type ) {
@@ -1978,62 +1994,62 @@ class Visual_Form_Builder{
1978
  case 'text' :
1979
  return sanitize_text_field( $data );
1980
  break;
1981
-
1982
  case 'textarea' :
1983
  return wp_strip_all_tags( $data );
1984
  break;
1985
-
1986
  case 'email' :
1987
  return sanitize_email( $data );
1988
  break;
1989
-
1990
  case 'html' :
1991
  return wp_kses_data( force_balance_tags( $data ) );
1992
  break;
1993
-
1994
  case 'number' :
1995
  return floatval( $data );
1996
  break;
1997
-
1998
  case 'address' :
1999
  $allowed_html = array( 'br' => array() );
2000
  return wp_kses( $data, $allowed_html );
2001
  break;
2002
-
2003
  default :
2004
  return wp_kses_data( $data );
2005
  break;
2006
  endswitch;
2007
  endif;
2008
  }
2009
-
2010
  /**
2011
  * Make sure the User Agent string is not a SPAM bot
2012
- *
2013
  * @since 1.3
2014
  */
2015
  public function isBot() {
2016
  $bots = apply_filters( 'vfb_blocked_spam_bots', array( 'archiver', 'binlar', 'casper', 'checkprivacy', 'clshttp', 'cmsworldmap', 'comodo', 'curl', 'diavol', 'dotbot', 'email', 'extract', 'feedfinder', 'flicky', 'grab', 'harvest', 'httrack', 'ia_archiver', 'jakarta', 'kmccrew', 'libwww', 'loader', 'miner', 'nikto', 'nutch', 'planetwork', 'purebot', 'pycurl', 'python', 'scan', 'skygrid', 'sucker', 'turnit', 'vikspider', 'wget', 'winhttp', 'youda', 'zmeu', 'zune' ) );
2017
-
2018
  $isBot = false;
2019
-
2020
  $user_agent = wp_kses_data( $_SERVER['HTTP_USER_AGENT'] );
2021
-
2022
  foreach ( $bots as $bot ) {
2023
  if ( stripos( $user_agent, $bot ) !== false )
2024
  $isBot = true;
2025
  }
2026
-
2027
  if ( empty( $user_agent ) || $user_agent == ' ' )
2028
  $isBot = true;
2029
-
2030
  return $isBot;
2031
  }
2032
 
2033
  public function build_array_form_item( $value, $type = '' ) {
2034
-
2035
  $output = '';
2036
-
2037
  // Basic check for type when not set
2038
  if ( empty( $type ) ) :
2039
  if ( is_array( $value ) && array_key_exists( 'address', $value ) )
@@ -2045,25 +2061,25 @@ class Visual_Form_Builder{
2045
  else
2046
  $type = 'default';
2047
  endif;
2048
-
2049
  // Build array'd form item output
2050
  switch( $type ) :
2051
-
2052
  case 'time' :
2053
  $output = ( array_key_exists( 'ampm', $value ) ) ? substr_replace( implode( ':', $value ), ' ', 5, 1 ) : implode( ':', $value );
2054
  break;
2055
-
2056
  case 'address' :
2057
-
2058
  if ( !empty( $value['address'] ) )
2059
  $output .= $value['address'];
2060
-
2061
  if ( !empty( $value['address-2'] ) ) {
2062
  if ( !empty( $output ) )
2063
  $output .= '<br>';
2064
  $output .= $value['address-2'];
2065
  }
2066
-
2067
  if ( !empty( $value['city'] ) ) {
2068
  if ( !empty( $output ) )
2069
  $output .= '<br>';
@@ -2088,25 +2104,25 @@ class Visual_Form_Builder{
2088
  $output .= '<br>';
2089
  $output .= $value['country'];
2090
  }
2091
-
2092
  break;
2093
-
2094
  case 'checkbox' :
2095
-
2096
  $output = esc_html( implode( ', ', $value ) );
2097
-
2098
  break;
2099
-
2100
  default :
2101
-
2102
  $output = wp_specialchars_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES );
2103
-
2104
  break;
2105
-
2106
  endswitch;
2107
-
2108
  return $output;
2109
- }
2110
  }
2111
 
2112
  // The VFB widget
4
  Description: Dynamically build forms using a simple interface. Forms include jQuery validation, a basic logic-based verification system, and entry tracking.
5
  Author: Matthew Muro
6
  Author URI: http://matthewmuro.com
7
+ Version: 2.7.5
8
  */
9
 
10
+ // Version number to output as meta tag
11
+ define( 'VFB_VERSION', '2.7.5' );
12
+
13
  /*
14
+ This program is free software; you can redistribute it and/or modify
15
+ it under the terms of the GNU General Public License as published by
16
  the Free Software Foundation; version 2 of the License.
17
 
18
+ This program is distributed in the hope that it will be useful,
19
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
20
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
+ GNU General Public License for more details.
22
 
23
+ You should have received a copy of the GNU General Public License
24
+ along with this program; if not, write to the Free Software
25
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
  */
27
 
28
  // Instantiate new class
30
 
31
  // Visual Form Builder class
32
  class Visual_Form_Builder{
33
+
34
  /**
35
  * The DB version. Used for SQL install and upgrades.
36
  *
42
  * @access protected
43
  */
44
  protected $vfb_db_version = '2.7';
45
+
46
  /**
47
  * Flag used to add scripts to front-end only once
48
  *
51
  * @access protected
52
  */
53
  protected $add_scripts = false;
54
+
55
  /**
56
  * An array of countries to be used throughout plugin
57
  *
69
  * @access private
70
  */
71
  private $_admin_pages = array();
72
+
73
  /**
74
  * Constructor. Register core filters and actions.
75
  *
77
  */
78
  public function __construct(){
79
  global $wpdb;
80
+
81
  // Setup global database table names
82
  $this->field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
83
  $this->form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
84
  $this->entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
85
+
86
  // Make sure we are in the admin before proceeding.
87
  if ( is_admin() ) {
88
  // Build options and settings pages.
89
  add_action( 'admin_menu', array( &$this, 'add_admin' ) );
90
  add_action( 'admin_init', array( &$this, 'save' ) );
91
  add_action( 'admin_menu', array( &$this, 'additional_plugin_setup' ) );
92
+
93
  // Register AJAX functions
94
  $actions = array(
95
  // Form Builder
97
  'create_field',
98
  'delete_field',
99
  'form_settings',
100
+
101
  // Media button
102
  'media_button',
103
  );
104
+
105
+ // Add all AJAX functions
106
  foreach( $actions as $name ) {
107
+ add_action( "wp_ajax_visual_form_builder_$name", array( &$this, "ajax_$name" ) );
108
  }
109
 
110
  // Adds additional media button to insert form shortcode
111
  add_action( 'media_buttons', array( &$this, 'add_media_button' ), 999 );
112
+
113
  // Adds a Dashboard widget
114
  add_action( 'wp_dashboard_setup', array( &$this, 'add_dashboard_widget' ) );
115
+
116
  // Adds a Settings link to the Plugins page
117
  add_filter( 'plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2 );
118
+
119
  // Check the db version and run SQL install, if needed
120
  add_action( 'plugins_loaded', array( &$this, 'update_db_check' ) );
121
+
122
  // Display update messages
123
  add_action( 'admin_notices', array( &$this, 'admin_notices' ) );
124
  }
125
+
126
  // Load i18n
127
  add_action( 'plugins_loaded', array( &$this, 'languages' ) );
128
+
129
+ // Print meta keyword
130
+ add_action( 'wp_head', array( &$this, 'add_meta_keyword' ) );
131
+
132
  add_shortcode( 'vfb', array( &$this, 'form_code' ) );
133
  add_action( 'init', array( &$this, 'email' ), 10 );
134
  add_action( 'init', array( &$this, 'confirmation' ), 12 );
135
+
136
  // Add CSS to the front-end
137
  add_action( 'wp_enqueue_scripts', array( &$this, 'css' ) );
138
  }
140
  /**
141
  * Allow for additional plugin code to be run during admin_init
142
  * which is not available during the plugin __construct()
143
+ *
144
  * @since 2.7
145
  */
146
  public function additional_plugin_setup() {
147
+
148
  $page_main = $this->_admin_pages[ 'vfb' ];
149
+
150
  if ( !get_option( 'vfb_dashboard_widget_options' ) ) {
151
  $widget_options['vfb_dashboard_recent_entries'] = array(
152
  'items' => 5,
153
  );
154
  update_option( 'vfb_dashboard_widget_options', $widget_options );
155
  }
156
+
157
  }
158
+
159
+ /**
160
+ * Output plugin version number to help with troubleshooting
161
+ *
162
+ * @since 2.7.5
163
+ */
164
+ public function add_meta_keyword() {
165
+ echo sprintf( "\n<meta name='vfb-version' content='%s' />\n", VFB_VERSION );
166
+ }
167
+
168
  /**
169
  * Load localization file
170
+ *
171
  * @since 2.7
172
  */
173
  public function languages() {
174
  load_plugin_textdomain( 'visual-form-builder', false , 'visual-form-builder/languages' );
175
  }
176
+
177
  /**
178
  * Adds extra include files
179
+ *
180
  * @since 1.2
181
  */
182
  public function includes(){
183
  global $entries_list, $entries_detail;
184
+
185
  // Load the Entries List class
186
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-entries-list.php' );
187
  $entries_list = new VisualFormBuilder_Entries_List();
188
+
189
  // Load the Entries Details class
190
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-entries-detail.php' );
191
+ $entries_detail = new VisualFormBuilder_Entries_Detail();
192
  }
193
+
194
  public function include_forms_list() {
195
  global $forms_list;
196
+
197
  // Load the Forms List class
198
  require_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/class-forms-list.php' );
199
  $forms_list = new VisualFormBuilder_Forms_List();
200
  }
201
+
202
  /**
203
  * Add Settings link to Plugins page
204
+ *
205
+ * @since 1.8
206
  * @return $links array Links to add to plugin name
207
  */
208
  public function plugin_action_links( $links, $file ) {
209
  if ( $file == plugin_basename( __FILE__ ) )
210
  $links[] = '<a href="admin.php?page=visual-form-builder">' . __( 'Settings' , 'visual-form-builder') . '</a>';
211
+
212
  return $links;
213
+ }
214
+
215
  /**
216
  * Adds the media button image
217
+ *
218
  * @since 2.3
219
  */
220
  public function add_media_button(){
226
  <?php
227
  endif;
228
  }
229
+
230
  /**
231
  * Adds the dashboard widget
232
+ *
233
  * @since 2.7
234
  */
235
  public function add_dashboard_widget() {
236
  wp_add_dashboard_widget( 'vfb-dashboard', __( 'Recent Visual Form Builder Entries', 'visual-form-builder' ), array( &$this, 'dashboard_widget' ), array( &$this, 'dashboard_widget_control' ) );
237
  }
238
+
239
  /**
240
  * Displays the dashboard widget content
241
+ *
242
  * @since 2.7
243
  */
244
  public function dashboard_widget() {
245
  global $wpdb;
246
+
247
  // Get the date/time format that is saved in the options table
248
  $date_format = get_option( 'date_format' );
249
  $time_format = get_option( 'time_format' );
250
+
251
  $widgets = get_option( 'vfb_dashboard_widget_options' );
252
  $total_items = isset( $widgets['vfb_dashboard_recent_entries'] ) && isset( $widgets['vfb_dashboard_recent_entries']['items'] ) ? absint( $widgets['vfb_dashboard_recent_entries']['items'] ) : 5;
253
+
254
  $forms = $wpdb->get_var( "SELECT COUNT(*) FROM {$this->form_table_name}" );
255
+
256
  if ( !$forms ) :
257
  echo sprintf(
258
  '<p>%1$s <a href="%2$s">%3$s</a></p>',
260
  esc_url( admin_url( 'admin.php?page=vfb-add-new' ) ),
261
  __( 'Get started!', 'visual-form-builder' )
262
  );
263
+
264
  return;
265
  endif;
266
+
267
  $entries = $wpdb->get_results( $wpdb->prepare( "SELECT forms.form_title, entries.entries_id, entries.form_id, entries.sender_name, entries.sender_email, entries.date_submitted FROM $this->form_table_name AS forms INNER JOIN $this->entries_table_name AS entries ON entries.form_id = forms.form_id ORDER BY entries.date_submitted DESC LIMIT %d", $total_items ) );
268
+
269
  if ( !$entries ) :
270
  echo sprintf( '<p>%1$s</p>', __( 'You currently do not have any entries.', 'visual-form-builder' ) );
271
  else :
272
+
273
  $content = '';
274
+
275
  foreach ( $entries as $entry ) :
276
+
277
  $content .= sprintf(
278
  '<li><a href="%1$s">%4$s</a> via <a href="%2$s">%5$s</a> <span class="rss-date">%6$s</span><cite>%3$s</cite></li>',
279
  esc_url( add_query_arg( array( 'action' => 'view', 'entry' => absint( $entry->entries_id ) ), admin_url( 'admin.php?page=vfb-entries' ) ) ),
283
  esc_html( $entry->form_title ),
284
  date( "$date_format $time_format", strtotime( $entry->date_submitted ) )
285
  );
286
+
287
  endforeach;
288
+
289
  echo "<div class='rss-widget'><ul>$content</ul></div>";
290
+
291
  endif;
292
  }
293
+
294
  /**
295
  * Displays the dashboard widget form control
296
+ *
297
  * @since 2.7
298
  */
299
  public function dashboard_widget_control() {
300
  if ( !$widget_options = get_option( 'vfb_dashboard_widget_options' ) )
301
  $widget_options = array();
302
+
303
  if ( !isset( $widget_options['vfb_dashboard_recent_entries'] ) )
304
  $widget_options['vfb_dashboard_recent_entries'] = array();
305
+
306
  if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset( $_POST['vfb-widget-recent-entries'] ) ) {
307
  $number = absint( $_POST['vfb-widget-recent-entries']['items'] );
308
  $widget_options['vfb_dashboard_recent_entries']['items'] = $number;
309
  update_option( 'vfb_dashboard_widget_options', $widget_options );
310
  }
311
+
312
  $number = isset( $widget_options['vfb_dashboard_recent_entries']['items'] ) ? (int) $widget_options['vfb_dashboard_recent_entries']['items'] : '';
313
+
314
  echo sprintf(
315
  '<p>
316
  <label for="comments-number">%1$s</label>
320
  $number
321
  );
322
  }
323
+
324
  /**
325
  * Register contextual help. This is for the Help tab dropdown
326
+ *
327
  * @since 1.0
328
  */
329
  public function help(){
360
  'title' => 'Validation',
361
  'content' => "<p>Visual Form Builder uses the <a href='http://docs.jquery.com/Plugins/Validation/Validator'>jQuery Form Validation plugin</a> to perform clientside form validation.</p>
362
  <ul>
363
+
364
  <li><em>Email</em>: makes the element require a valid email.</li>
365
  <li><em>URL</em>: makes the element require a valid url.</li>
366
  <li><em>Date</em>: makes the element require a date. <a href='http://docs.jquery.com/Plugins/Validation/Methods/date'>Refer to documentation for various accepted formats</a>.
395
  <li><em>Include a Copy of the User's Entry</em>: appends a copy of the user's submitted entry to the notification email.</li>
396
  </ul>"
397
  ) );
398
+
399
  $screen->add_help_tab( array(
400
  'id' => 'vfb-help-tab-tips',
401
  'title' => 'Tips',
407
  </ul>"
408
  ) );
409
  }
410
+
411
  /**
412
  * Adds the Screen Options tab to the Entries screen
413
+ *
414
  * @since 1.0
415
  */
416
  public function screen_options(){
417
  $screen = get_current_screen();
418
+
419
  $page_main = $this->_admin_pages[ 'vfb' ];
420
  $page_entries = $this->_admin_pages[ 'vfb-entries' ];
421
+
422
  switch( $screen->id ) {
423
  case $page_entries :
424
+
425
  add_screen_option( 'per_page', array(
426
  'label' => __( 'Entries per page', 'visual-form-builder' ),
427
  'default' => 20,
428
  'option' => 'vfb_entries_per_page'
429
  ) );
430
+
431
  break;
432
+
433
  case $page_main :
434
+
435
  if ( isset( $_REQUEST['form'] ) ) :
436
  add_screen_option( 'layout_columns', array(
437
  'max' => 2,
446
  endif;
447
 
448
  break;
449
+ }
450
  }
451
+
452
  /**
453
  * Saves the Screen Options
454
+ *
455
  * @since 1.0
456
  */
457
  public function save_screen_options( $status, $option, $value ){
458
+
459
  if ( $option == 'vfb_entries_per_page' )
460
  return $value;
461
  elseif ( $option == 'vfb_forms_per_page' )
462
  return $value;
463
  }
464
+
465
  /**
466
  * Add meta boxes to form builder screen
467
+ *
468
  * @since 1.8
469
  */
470
  public function add_meta_boxes() {
471
  global $current_screen;
472
+
473
  $page_main = $this->_admin_pages[ 'vfb' ];
474
+
475
  if ( $current_screen->id == $page_main && isset( $_REQUEST['form'] ) ) {
476
  add_meta_box( 'vfb_form_items_meta_box', __( 'Form Items', 'visual-form-builder' ), array( &$this, 'meta_box_form_items' ), $page_main, 'side', 'high' );
477
  add_meta_box( 'vfb_form_media_button_tip', __( 'Display Forms', 'visual-form-builder' ), array( &$this, 'meta_box_display_forms' ), $page_main, 'side', 'low' );
479
  }
480
  /**
481
  * Output for Form Items meta box
482
+ *
483
  * @since 1.8
484
  */
485
  public function meta_box_form_items() {
509
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-email"><b></b>Email</a></li>
510
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-currency"><b></b>Currency</a></li>
511
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-time"><b></b>Time</a></li>
512
+
513
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-html"><b></b>HTML</a></li>
514
+
515
  <li><a href="#" class="vfb-draggable-form-items" id="form-element-instructions"><b></b>Instructions</a></li>
516
  </ul>
517
  <div class="clear"></div>
523
 
524
  /**
525
  * Output for the Display Forms meta box
526
+ *
527
  * @since 1.8
528
  */
529
  public function meta_box_display_forms() {
534
  <p><?php _e( 'You may also manually insert the shortcode into a post/page.', 'visual-form-builder' ); ?></p>
535
  <p><?php _e( 'Shortcode', 'visual-form-builder' ); ?> <code>[vfb id='<?php echo (int) $_REQUEST['form']; ?>']</code></p>
536
  <?php
537
+ }
538
+
539
  /**
540
  * Check database version and run SQL install, if needed
541
+ *
542
  * @since 2.1
543
  */
544
  public function update_db_check() {
547
  update_option( 'vfb_db_version', $this->vfb_db_version );
548
  $this->install_db();
549
  }
550
+
551
  // If database version doesn't match, update and run SQL install
552
  if ( version_compare( get_option( 'vfb_db_version' ), $this->vfb_db_version, '<' ) ) {
553
  update_option( 'vfb_db_version', $this->vfb_db_version );
554
  $this->install_db();
555
  }
556
  }
557
+
558
  /**
559
  * Install database tables
560
+ *
561
+ * @since 1.0
562
  */
563
  static function install_db() {
564
  global $wpdb;
565
+
566
  $field_table_name = $wpdb->prefix . 'visual_form_builder_fields';
567
  $form_table_name = $wpdb->prefix . 'visual_form_builder_forms';
568
  $entries_table_name = $wpdb->prefix . 'visual_form_builder_entries';
569
+
570
  // Explicitly set the character set and collation when creating the tables
571
  $charset = ( defined( 'DB_CHARSET' && '' !== DB_CHARSET ) ) ? DB_CHARSET : 'utf8';
572
  $collate = ( defined( 'DB_COLLATE' && '' !== DB_COLLATE ) ) ? DB_COLLATE : 'utf8_general_ci';
573
+
574
+ require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
575
+
576
  $field_sql = "CREATE TABLE $field_table_name (
577
  field_id BIGINT(20) NOT NULL AUTO_INCREMENT,
578
  form_id BIGINT(20) NOT NULL,
614
  form_label_alignment VARCHAR(25),
615
  PRIMARY KEY (form_id)
616
  ) DEFAULT CHARACTER SET $charset COLLATE $collate;";
617
+
618
  $entries_sql = "CREATE TABLE $entries_table_name (
619
  entries_id BIGINT(20) NOT NULL AUTO_INCREMENT,
620
  form_id BIGINT(20) NOT NULL,
628
  entry_approved VARCHAR(20) DEFAULT '1',
629
  PRIMARY KEY (entries_id)
630
  ) DEFAULT CHARACTER SET $charset COLLATE $collate;";
631
+
632
  // Create or Update database tables
633
  dbDelta( $field_sql );
634
  dbDelta( $form_sql );
635
  dbDelta( $entries_sql );
636
  }
637
+
638
  /**
639
  * Queue plugin scripts for sorting form fields
640
+ *
641
+ * @since 1.0
642
  */
643
  public function admin_scripts() {
644
  wp_enqueue_script( 'jquery-ui-sortable' );
646
  wp_enqueue_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
647
  wp_enqueue_script( 'vfb-admin', plugins_url( '/js/vfb-admin.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
648
  wp_enqueue_script( 'nested-sortable', plugins_url( '/js/jquery.ui.nestedSortable.js', __FILE__ ) , array( 'jquery', 'jquery-ui-sortable' ), '1.3.5', true );
649
+
650
  wp_enqueue_style( 'visual-form-builder-style', plugins_url( '/css/visual-form-builder-admin.css', __FILE__ ) );
651
+
652
  wp_localize_script( 'vfb-admin', 'VfbAdminPages', array( 'vfb_pages' => $this->_admin_pages ) );
653
  }
654
+
655
  /**
656
  * Queue form validation scripts
657
+ *
658
+ * @since 1.0
659
  */
660
  public function scripts() {
661
  // Make sure scripts are only added once via shortcode
662
  $this->add_scripts = true;
663
+
664
  wp_register_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
665
  wp_register_script( 'visual-form-builder-validation', plugins_url( '/js/vfb-validation.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
666
  wp_register_script( 'visual-form-builder-metadata', plugins_url( '/js/jquery.metadata.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '', true );
667
+ wp_register_script( 'vfb-ckeditor', plugins_url( '/js/ckeditor/ckeditor.js', __FILE__ ), array( 'jquery' ), '4.1', true );
668
+
669
  wp_enqueue_script( 'jquery-form-validation' );
670
  wp_enqueue_script( 'jquery-ui-datepicker' );
671
  wp_enqueue_script( 'visual-form-builder-validation' );
672
  wp_enqueue_script( 'visual-form-builder-metadata' );
673
+ wp_enqueue_script( 'vfb-ckeditor' );
674
  }
675
+
676
  /**
677
  * Add form CSS to wp_head
678
+ *
679
+ * @since 1.0
680
  */
681
  public function css() {
682
  wp_register_style( 'vfb-jqueryui-css', apply_filters( 'vfb-date-picker-css', plugins_url( '/css/smoothness/jquery-ui-1.9.2.min.css', __FILE__ ) ) );
683
  wp_register_style( 'visual-form-builder-css', apply_filters( 'visual-form-builder-css', plugins_url( '/css/visual-form-builder.css', __FILE__ ) ) );
684
+
 
685
  wp_enqueue_style( 'visual-form-builder-css' );
686
  wp_enqueue_style( 'vfb-jqueryui-css' );
 
687
  }
688
+
689
  /**
690
  * Actions to save, update, and delete forms/form fields
691
+ *
692
+ *
693
  * @since 1.0
694
  */
695
  public function save() {
696
  global $wpdb;
697
+
698
  if ( !isset( $_REQUEST['page'] ) )
699
  return;
700
+
701
  if ( !isset( $_REQUEST['action'] ) )
702
  return;
703
+
704
  if ( in_array( $_REQUEST['page'], array( 'visual-form-builder', 'vfb-add-new', 'vfb-entries' ) ) ) :
705
  switch ( $_REQUEST['action'] ) :
706
  case 'create_form' :
707
+
708
  check_admin_referer( 'create_form' );
709
+
710
  $form_key = sanitize_title( $_REQUEST['form_title'] );
711
  $form_title = esc_html( $_REQUEST['form_title'] );
712
  $form_from_name = esc_html( $_REQUEST['form_email_from_name'] );
713
  $form_subject = esc_html( $_REQUEST['form_email_subject'] );
714
  $form_from = esc_html( $_REQUEST['form_email_from'] );
715
  $form_to = serialize( $_REQUEST['form_email_to'] );
716
+
717
  $newdata = array(
718
  'form_key' => $form_key,
719
  'form_title' => $form_title,
722
  'form_email_from' => $form_from,
723
  'form_email_to' => $form_to,
724
  'form_success_message' => '<p id="form_success">Your form was successfully submitted. Thank you for contacting us.</p>'
725
+ );
726
+
727
  // Create the form
728
  $wpdb->insert( $this->form_table_name, $newdata );
729
+
730
  // Get form ID to add our first field
731
  $new_form_selected = $wpdb->insert_id;
732
+
733
  // Setup the initial fieldset
734
  $initial_fieldset = array(
735
  'form_id' => $wpdb->insert_id,
738
  'field_name' => 'Fieldset',
739
  'field_sequence' => 0
740
  );
741
+
742
+ // Add the first fieldset to get things started
743
  $wpdb->insert( $this->field_table_name, $initial_fieldset );
744
+
745
  $verification_fieldset = array(
746
  'form_id' => $new_form_selected,
747
  'field_key' => 'verification',
750
  'field_description' => '(This is for preventing spam)',
751
  'field_sequence' => 1
752
  );
753
+
754
+ // Insert the submit field
755
  $wpdb->insert( $this->field_table_name, $verification_fieldset );
756
+
757
  $verify_fieldset_parent_id = $wpdb->insert_id;
758
+
759
  $secret = array(
760
  'form_id' => $new_form_selected,
761
  'field_key' => 'secret',
766
  'field_parent' => $verify_fieldset_parent_id,
767
  'field_sequence' => 2
768
  );
769
+
770
+ // Insert the submit field
771
  $wpdb->insert( $this->field_table_name, $secret );
772
+
773
  // Make the submit last in the sequence
774
  $submit = array(
775
  'form_id' => $new_form_selected,
779
  'field_parent' => $verify_fieldset_parent_id,
780
  'field_sequence' => 3
781
  );
782
+
783
+ // Insert the submit field
784
  $wpdb->insert( $this->field_table_name, $submit );
785
+
786
  // Redirect to keep the URL clean (use AJAX in the future?)
787
  wp_redirect( 'admin.php?page=visual-form-builder&form=' . $new_form_selected );
788
  exit();
789
+
790
  break;
791
+
792
  case 'update_form' :
793
+
794
  check_admin_referer( 'vfb_update_form' );
795
+
796
  $form_id = absint( $_REQUEST['form_id'] );
797
  $form_key = sanitize_title( $_REQUEST['form_title'], $form_id );
798
  $form_title = $_REQUEST['form_title'];
811
  $form_notification_message = isset( $_REQUEST['form_notification_message'] ) ? wp_richedit_pre( $_REQUEST['form_notification_message'] ) : '';
812
  $form_notification_entry = isset( $_REQUEST['form_notification_entry'] ) ? $_REQUEST['form_notification_entry'] : '';
813
  $form_label_alignment = $_REQUEST['form_label_alignment'];
814
+
815
  // Add confirmation based on which type was selected
816
  switch ( $form_success_type ) {
817
  case 'text' :
824
  $form_success_message = $_REQUEST['form_success_message_redirect'];
825
  break;
826
  }
827
+
828
  $newdata = array(
829
  'form_key' => $form_key,
830
  'form_title' => $form_title,
845
  'form_notification_entry' => $form_notification_entry,
846
  'form_label_alignment' => $form_label_alignment
847
  );
848
+
849
  $where = array( 'form_id' => $form_id );
850
+
851
  // Update form details
852
  $wpdb->update( $this->form_table_name, $newdata, $where );
853
+
854
  // Initialize field sequence
855
  $field_sequence = 0;
856
+
857
  // Loop through each field and update
858
  foreach ( $_REQUEST['field_id'] as $id ) :
859
  $id = absint( $id );
860
+
861
  $field_name = ( isset( $_REQUEST['field_name-' . $id] ) ) ? $_REQUEST['field_name-' . $id] : '';
862
  $field_key = sanitize_key( sanitize_title( $field_name, $id ) );
863
  $field_desc = ( isset( $_REQUEST['field_description-' . $id] ) ) ? $_REQUEST['field_description-' . $id] : '';
868
  $field_css = ( isset( $_REQUEST['field_css-' . $id] ) ) ? $_REQUEST['field_css-' . $id] : '';
869
  $field_layout = ( isset( $_REQUEST['field_layout-' . $id] ) ) ? $_REQUEST['field_layout-' . $id] : '';
870
  $field_default = ( isset( $_REQUEST['field_default-' . $id] ) ) ? $_REQUEST['field_default-' . $id] : '';
871
+
872
  $field_data = array(
873
  'field_key' => $field_key,
874
  'field_name' => $field_name,
882
  'field_sequence' => $field_sequence,
883
  'field_default' => $field_default
884
  );
885
+
886
  $where = array(
887
  'form_id' => $form_id,
888
  'field_id' => $id
889
  );
890
+
891
  // Update all fields
892
  $wpdb->update( $this->field_table_name, $field_data, $where );
893
+
894
  $field_sequence++;
895
  endforeach;
896
+
897
  break;
898
+
899
  case 'delete_form' :
900
  $id = absint( $_REQUEST['form'] );
901
+
902
  check_admin_referer( 'delete-form-' . $id );
903
+
904
  // Delete form and all fields
905
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->form_table_name WHERE form_id = %d", $id ) );
906
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE form_id = %d", $id ) );
907
+
908
  // Redirect to keep the URL clean (use AJAX in the future?)
909
  wp_redirect( add_query_arg( 'action', 'deleted', 'admin.php?page=visual-form-builder' ) );
910
  exit();
911
+
912
  break;
913
+
914
  case 'copy_form' :
915
  $id = absint( $_REQUEST['form'] );
916
+
917
  check_admin_referer( 'copy-form-' . $id );
918
+
919
+ // Get all fields and data for the request form
920
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d", $id ) );
921
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d", $id ) );
922
  $override = $wpdb->get_var( $wpdb->prepare( "SELECT form_email_from_override, form_email_from_name_override, form_notification_email FROM $this->form_table_name WHERE form_id = %d", $id ) );
923
  $from_name = $wpdb->get_var( null, 1 );
924
  $notify = $wpdb->get_var( null, 2 );
925
+
926
  // Copy this form and force the initial title to denote a copy
927
  foreach ( $forms as $form ) {
928
  $data = array(
945
  'form_notification_entry' => $form->form_notification_entry,
946
  'form_label_alignment' => $form->form_label_alignment
947
  );
948
+
949
  $wpdb->insert( $this->form_table_name, $data );
950
  }
951
+
952
  // Get form ID to add our first field
953
  $new_form_selected = $wpdb->insert_id;
954
+
955
  // Copy each field and data
956
  foreach ( $fields as $field ) {
957
  $data = array(
969
  'field_layout' => $field->field_layout,
970
  'field_parent' => $field->field_parent
971
  );
972
+
973
  $wpdb->insert( $this->field_table_name, $data );
974
 
975
  // If a parent field, save the old ID and the new ID to update new parent ID
976
  if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) )
977
  $parents[ $field->field_id ] = $wpdb->insert_id;
978
+
979
  if ( $override == $field->field_id )
980
  $wpdb->update( $this->form_table_name, array( 'form_email_from_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
981
+
982
  if ( $from_name == $field->field_id )
983
  $wpdb->update( $this->form_table_name, array( 'form_email_from_name_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
984
+
985
  if ( $notify == $field->field_id )
986
  $wpdb->update( $this->form_table_name, array( 'form_notification_email' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
987
  }
988
+
989
  // Loop through our parents and update them to their new IDs
990
  foreach ( $parents as $k => $v ) {
991
+ $wpdb->update( $this->field_table_name, array( 'field_parent' => $v ), array( 'form_id' => $new_form_selected, 'field_parent' => $k ) );
992
  }
993
+
994
  break;
995
+
996
  case 'trash_entry' :
997
  $entry_id = absint( $_GET['entry'] );
998
  $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $entry_id ) );
999
  break;
1000
  endswitch;
1001
  endif;
1002
+ }
1003
+
1004
  /**
1005
  * The jQuery field sorting callback
1006
+ *
1007
  * @since 1.0
1008
  */
1009
  public function ajax_sort_field() {
1010
  global $wpdb;
1011
+
1012
  $data = array();
1013
 
1014
  foreach ( $_REQUEST['order'] as $k ) {
1027
 
1028
  wp_die();
1029
  }
1030
+
1031
  /**
1032
  * The jQuery create field callback
1033
+ *
1034
  * @since 1.9
1035
  */
1036
  public function ajax_create_field() {
1037
  global $wpdb;
1038
+
1039
  $data = array();
1040
  $field_options = $field_validation = '';
1041
+
1042
  foreach ( $_REQUEST['data'] as $k ) {
1043
  $data[ $k['name'] ] = $k['value'];
1044
  }
1045
+
1046
  check_ajax_referer( 'create-field-' . $data['form_id'], 'nonce' );
1047
+
1048
  $form_id = absint( $data['form_id'] );
1049
  $field_key = sanitize_title( $_REQUEST['field_type'] );
1050
  $field_name = esc_html( $_REQUEST['field_type'] );
1051
  $field_type = strtolower( sanitize_title( $_REQUEST['field_type'] ) );
1052
+
1053
  // Set defaults for validation
1054
  switch ( $field_type ) {
1055
  case 'select' :
1057
  case 'checkbox' :
1058
  $field_options = serialize( array( 'Option 1', 'Option 2', 'Option 3' ) );
1059
  break;
1060
+
1061
  case 'email' :
1062
  case 'url' :
1063
  case 'phone' :
1064
  $field_validation = $field_type;
1065
  break;
1066
+
1067
  case 'currency' :
1068
  $field_validation = 'number';
1069
  break;
1070
+
1071
  case 'number' :
1072
  $field_validation = 'digits';
1073
  break;
1074
+
1075
  case 'time' :
1076
  $field_validation = 'time-12';
1077
  break;
1078
+
1079
  case 'file-upload' :
1080
  $field_options = serialize( array( 'png|jpe?g|gif' ) );
1081
  break;
1082
  }
1083
+
1084
+
1085
  // Get the last row's sequence that isn't a Verification
1086
  $sequence_last_row = $wpdb->get_var( $wpdb->prepare( "SELECT field_sequence FROM $this->field_table_name WHERE form_id = %d AND field_type = 'verification' ORDER BY field_sequence DESC LIMIT 1", $form_id ) );
1087
+
1088
  // If it's not the first for this form, add 1
1089
  $field_sequence = ( !empty( $sequence_last_row ) ) ? $sequence_last_row : 0;
1090
+
1091
  $newdata = array(
1092
  'form_id' => $form_id,
1093
  'field_key' => $field_key,
1097
  'field_sequence' => $field_sequence,
1098
  'field_validation' => $field_validation
1099
  );
1100
+
1101
  // Create the field
1102
  $wpdb->insert( $this->field_table_name, $newdata );
1103
  $insert_id = $wpdb->insert_id;
1104
+
1105
+ // VIP fields
1106
  $vip_fields = array( 'verification', 'secret', 'submit' );
1107
+
1108
+ // Move the VIPs
1109
  foreach ( $vip_fields as $update ) {
1110
  $field_sequence++;
1111
  $where = array(
1112
  'form_id' => absint( $data['form_id'] ),
1113
  'field_type' => $update
1114
+ );
1115
  $wpdb->update( $this->field_table_name, array( 'field_sequence' => $field_sequence ), $where );
1116
+
1117
  }
1118
+
1119
  echo $this->field_output( $data['form_id'], $insert_id );
1120
+
1121
  die(1);
1122
  }
1123
+
1124
  /**
1125
  * The jQuery delete field callback
1126
+ *
1127
  * @since 1.9
1128
  */
1129
  public function ajax_delete_field() {
1132
  if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'visual_form_builder_delete_field' ) {
1133
  $form_id = absint( $_REQUEST['form'] );
1134
  $field_id = absint( $_REQUEST['field'] );
1135
+
1136
  check_ajax_referer( 'delete-field-' . $form_id, 'nonce' );
1137
+
1138
  if ( isset( $_REQUEST['child_ids'] ) ) {
1139
  foreach ( $_REQUEST['child_ids'] as $children ) {
1140
  $parent = absint( $_REQUEST['parent_id'] );
1141
+
1142
  // Update each child item with the new parent ID
1143
  $wpdb->update( $this->field_table_name, array( 'field_parent' => $parent ), array( 'field_id' => $children ) );
1144
  }
1145
  }
1146
+
1147
  // Delete the field
1148
  $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE field_id = %d", $field_id ) );
1149
  }
1150
+
1151
  die(1);
1152
  }
1153
+
1154
  /**
1155
  * The jQuery form settings callback
1156
+ *
1157
  * @since 2.2
1158
  */
1159
  public function ajax_form_settings() {
1160
  global $current_user;
1161
  get_currentuserinfo();
1162
+
1163
  if ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'visual_form_builder_form_settings' ) {
1164
  $form_id = absint( $_REQUEST['form'] );
1165
  $status = isset( $_REQUEST['status'] ) ? $_REQUEST['status'] : 'opened';
1166
  $accordion = isset( $_REQUEST['accordion'] ) ? $_REQUEST['accordion'] : 'general-settings';
1167
  $user_id = $current_user->ID;
1168
+
1169
  $form_settings = get_user_meta( $user_id, 'vfb-form-settings', true );
1170
+
1171
  $array = array(
1172
  'form_setting_tab' => $status,
1173
  'setting_accordion' => $accordion
1174
  );
1175
+
1176
+ // Set defaults if meta key doesn't exist
1177
  if ( !$form_settings || $form_settings == '' ) {
1178
  $meta_value[ $form_id ] = $array;
1179
+
1180
  update_user_meta( $user_id, 'vfb-form-settings', $meta_value );
1181
  }
1182
  else {
1183
  $form_settings[ $form_id ] = $array;
1184
+
1185
  update_user_meta( $user_id, 'vfb-form-settings', $form_settings );
1186
  }
1187
  }
1188
+
1189
  die(1);
1190
  }
1191
 
1192
  /**
1193
  * Display the additional media button
1194
+ *
1195
  * Used for inserting the form shortcode with desired form ID
1196
  *
1197
  * @since 2.3
1198
  */
1199
  public function ajax_media_button(){
1200
  global $wpdb;
1201
+
1202
  // Sanitize the sql orderby
1203
  $order = sanitize_sql_orderby( 'form_id ASC' );
1204
+
1205
  // Build our forms as an object
1206
  $forms = $wpdb->get_results( "SELECT form_id, form_title FROM $this->form_table_name ORDER BY $order" );
1207
  ?>
1209
  jQuery(document).ready(function($) {
1210
  $( '#add_vfb_form' ).submit(function(e){
1211
  e.preventDefault();
1212
+
1213
  window.send_to_editor( '[vfb id=' + $( '#vfb_forms' ).val() + ']' );
1214
+
1215
  window.tb_remove();
1216
  });
1217
  });
1231
  <?php
1232
  die(1);
1233
  }
1234
+
1235
  /**
1236
  * All Forms output in admin
1237
+ *
1238
  * @since 2.5
1239
  */
1240
  public function all_forms() {
1241
  global $wpdb, $forms_list;
1242
+
1243
  $order = sanitize_sql_orderby( 'form_title ASC' );
1244
+
1245
  $where = apply_filters( 'vfb_pre_get_forms', '' );
1246
  $forms = $wpdb->get_results( "SELECT form_id, form_title FROM $this->form_table_name WHERE 1=1 $where ORDER BY $order" );
1247
 
1251
  endif;
1252
 
1253
  echo '<form id="forms-filter" method="post" action="">';
1254
+
1255
  $forms_list->prepare_items();
1256
 
1257
  $forms_list->search_box( 'search', 'search_id' );
1258
  $forms_list->display();
1259
+
1260
  echo '</form>';
1261
+ ?>
1262
+
1263
  <?php
1264
  }
1265
 
1266
  /**
1267
  * Build field output in admin
1268
+ *
1269
  * @since 1.9
1270
  */
1271
  public function field_output( $form_nav_selected_id, $field_id = NULL ) {
1272
  global $wpdb;
1273
+
1274
  $field_where = ( isset( $field_id ) && !is_null( $field_id ) ) ? "AND field_id = $field_id" : '';
1275
  // Display all fields for the selected form
1276
  $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d $field_where ORDER BY field_sequence ASC", $form_nav_selected_id ) );
1277
+
1278
  $depth = 1;
1279
  $parent = $last = 0;
1280
  ob_start();
1281
+
1282
  // Loop through each field and display
1283
+ foreach ( $fields as $field ) :
1284
  // If we are at the root level
1285
  if ( !$field->field_parent && $depth > 1 ) {
1286
  // If we've been down a level, close out the list
1288
  echo '</li></ul>';
1289
  $depth--;
1290
  }
1291
+
1292
  // Close out the root item
1293
  echo '</li>';
1294
  }
1295
  // first item of <ul>, so move down a level
1296
  elseif ( $field->field_parent && $field->field_parent == $last ) {
1297
  echo '<ul class="parent">';
1298
+ $depth++;
1299
  }
1300
  // Close up a <ul> and move up a level
1301
  elseif ( $field->field_parent && $field->field_parent != $parent ) {
1305
  // Same level so close list item
1306
  elseif ( $field->field_parent && $field->field_parent == $parent )
1307
  echo '</li>';
1308
+
1309
+ // Store item ID and parent ID to test for nesting
1310
  $last = $field->field_id;
1311
  $parent = $field->field_parent;
1312
  ?>
1323
 
1324
  <div id="form-item-settings-<?php echo $field->field_id; ?>" class="menu-item-settings field-type-<?php echo $field->field_type; ?>" style="display: none;">
1325
  <?php if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) ) : ?>
1326
+
1327
  <p class="description description-wide">
1328
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>"><?php echo ( in_array( $field->field_type, array( 'fieldset', 'verification' ) ) ) ? 'Legend' : 'Name'; ?>
1329
  <span class="vfb-tooltip" rel="<?php esc_attr_e( 'For Fieldsets, a Legend is simply the name of that group. Use general terms that describe the fields included in this Fieldset.', 'visual-form-builder' ); ?>" title="<?php esc_attr_e( 'About Legend', 'visual-form-builder' ); ?>">(?)</span>
1339
  <input type="text" value="<?php echo stripslashes( esc_attr( $field->field_css ) ); ?>" name="field_css-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-css-<?php echo $field->field_id; ?>" />
1340
  </label>
1341
  </p>
1342
+
1343
  <?php elseif( $field->field_type == 'instructions' ) : ?>
1344
  <!-- Instructions -->
1345
  <p class="description description-wide">
1358
  <textarea name="field_description-<?php echo $field->field_id; ?>" class="widefat edit-menu-item-description" cols="20" rows="3" id="edit-form-item-description-<?php echo $field->field_id; ?>" /><?php echo stripslashes( $field->field_description ); ?></textarea>
1359
  </label>
1360
  </p>
1361
+
1362
  <?php else: ?>
1363
+
1364
  <!-- Name -->
1365
  <p class="description description-wide">
1366
  <label for="edit-form-item-name-<?php echo $field->field_id; ?>">
1390
  <textarea name="field_description-<?php echo $field->field_id; ?>" class="widefat edit-menu-item-description" cols="20" rows="3" id="edit-form-item-description-<?php echo $field->field_id; ?>" /><?php echo stripslashes( $field->field_description ); ?></textarea>
1391
  </label>
1392
  </p>
1393
+
1394
  <?php
1395
  // Display the Options input only for radio, checkbox, and select fields
1396
  if ( in_array( $field->field_type, array( 'radio', 'checkbox', 'select' ) ) ) : ?>
1408
  // Otherwise, present some default options
1409
  else
1410
  $opts_vals = array( 'Option 1', 'Option 2', 'Option 3' );
1411
+
1412
  // Basic count to keep track of multiple options
1413
  $count = 1;
1414
+
1415
  // Loop through the options
1416
  foreach ( $opts_vals as $options ) {
1417
  ?>
1420
  <input type="radio" value="<?php echo esc_attr( $count ); ?>" name="field_default-<?php echo $field->field_id; ?>" <?php checked( $field->field_default, $count ); ?> />
1421
  <input type="text" value="<?php echo stripslashes( esc_attr( $options ) ); ?>" name="field_options-<?php echo $field->field_id; ?>[]" class="widefat" id="edit-form-item-options-<?php echo $field->field_id . "-$count"; ?>" />
1422
  </label>
1423
+
1424
  <a href="#" class="addOption" title="Add an Option"><?php _e( 'Add', 'visual-form-builder' ); ?></a> <a href="#" class="deleteOption" title="Delete Option"><?php _e( 'Delete', 'visual-form-builder' ); ?></a>
1425
  </div>
1426
+ <?php
1427
  $count++;
1428
  }
1429
  ?>
1433
  unset( $opts_vals );
1434
  endif;
1435
  ?>
1436
+
1437
  <?php
1438
  // Display the Options input only for radio, checkbox, select, and autocomplete fields
1439
  if ( in_array( $field->field_type, array( 'file-upload' ) ) ) :
1442
  <p class="description description-wide">
1443
  <?php
1444
  $opts_vals = array( '' );
1445
+
1446
  // If the options field isn't empty, unserialize and build array
1447
  if ( !empty( $field->field_options ) ) {
1448
  if ( is_serialized( $field->field_options ) )
1471
  <?php _e( 'Validation' , 'visual-form-builder'); ?>
1472
  <span class="vfb-tooltip" title="<?php esc_attr_e( 'About Validation', 'visual-form-builder' ); ?>" rel="<?php esc_attr_e( 'Ensures user-entered data is formatted properly. For more information on Validation, refer to the Help tab at the top of this page.', 'visual-form-builder' ); ?>">(?)</span>
1473
  <br />
1474
+
1475
  <?php if ( in_array( $field->field_type , array( 'text', 'time', 'number' ) ) ) : ?>
1476
  <select name="field_validation-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-validation-<?php echo $field->field_id; ?>">
1477
  <?php if ( $field->field_type == 'time' ) : ?>
1492
  </select>
1493
  <?php else :
1494
  $field_validation = '';
1495
+
1496
  switch ( $field->field_type ) {
1497
  case 'email' :
1498
  case 'url' :
1499
  case 'phone' :
1500
  $field_validation = $field->field_type;
1501
  break;
1502
+
1503
  case 'currency' :
1504
  $field_validation = 'number';
1505
  break;
1506
+
1507
  case 'number' :
1508
  $field_validation = 'digits';
1509
  break;
1510
  }
1511
+
1512
  ?>
1513
  <input type="text" class="widefat" name="field_validation-<?php echo $field->field_id; ?>" value="<?php echo $field_validation; ?>" readonly="readonly" />
1514
  <?php endif; ?>
1515
+
1516
  </label>
1517
  </p>
1518
+
1519
  <!-- Required -->
1520
  <p class="field-link-target description description-thin">
1521
  <label for="edit-form-item-required">
1528
  </select>
1529
  </label>
1530
  </p>
1531
+
1532
  <?php if ( !in_array( $field->field_type, array( 'radio', 'checkbox', 'time' ) ) ) : ?>
1533
  <!-- Size -->
1534
  <p class="description description-thin">
1559
  </select>
1560
  </label>
1561
  </p>
1562
+
1563
  <?php endif; ?>
1564
  <!-- Field Layout -->
1565
  <p class="description description-thin">
1568
  <span class="vfb-tooltip" title="<?php esc_attr_e( 'About Field Layout', 'visual-form-builder' ); ?>" rel="<?php esc_attr_e( 'Used to create advanced layouts. Align fields side by side in various configurations.', 'visual-form-builder' ); ?>">(?)</span>
1569
  <br />
1570
  <select name="field_layout-<?php echo $field->field_id; ?>" class="widefat" id="edit-form-item-layout-<?php echo $field->field_id; ?>">
1571
+
1572
  <option value="" <?php selected( $field->field_layout, '' ); ?>><?php _e( 'Default' , 'visual-form-builder'); ?></option>
1573
  <optgroup label="------------">
1574
  <option value="left-half" <?php selected( $field->field_layout, 'left-half' ); ?>><?php _e( 'Left Half' , 'visual-form-builder'); ?></option>
1625
 
1626
  <?php endif; ?>
1627
  <?php endif; ?>
1628
+
1629
  <?php if ( !in_array( $field->field_type, array( 'verification', 'secret', 'submit' ) ) ) : ?>
1630
  <div class="menu-item-actions description-wide submitbox">
1631
  <a href="<?php echo esc_url( wp_nonce_url( admin_url('admin.php?page=visual-form-builder&amp;action=delete_field&amp;form=' . $form_nav_selected_id . '&amp;field=' . $field->field_id ), 'delete-field-' . $form_nav_selected_id ) ); ?>" class="item-delete submitdelete deletion"><?php _e( 'Remove' , 'visual-form-builder'); ?></a>
1632
  </div>
1633
  <?php endif; ?>
1634
+
1635
  <input type="hidden" name="field_id[<?php echo $field->field_id; ?>]" value="<?php echo $field->field_id; ?>" />
1636
  </div>
1637
  <?php
1638
  endforeach;
1639
+
1640
  // This assures all of the <ul> and <li> are closed
1641
  if ( $depth > 1 ) {
1642
  while( $depth > 1 ) {
1645
  $depth--;
1646
  }
1647
  }
1648
+
1649
  // Close out last item
1650
  echo '</li>';
1651
  echo ob_get_clean();
1652
  }
1653
+
1654
  /**
1655
  * Display admin notices
1656
+ *
1657
  * @since 1.0
1658
  */
1659
  public function admin_notices(){
1672
  echo '<div id="message" class="updated"><p>' . __( 'The form has been successfully duplicated.' , 'visual-form-builder') . '</p></div>';
1673
  break;
1674
  }
1675
+
1676
  }
1677
  }
1678
 
1679
  /**
1680
  * Add options page to Settings menu
1681
+ *
1682
+ *
1683
  * @since 1.0
1684
  * @uses add_options_page() Creates a menu item under the Settings menu.
1685
  */
1686
  public function add_admin() {
1687
  $current_pages = array();
1688
+
1689
  $current_pages[ 'vfb' ] = add_menu_page( __( 'Visual Form Builder', 'visual-form-builder' ), __( 'Visual Form Builder', 'visual-form-builder' ), 'manage_options', 'visual-form-builder', array( &$this, 'admin' ), plugins_url( 'visual-form-builder/images/vfb_icon.png' ) );
1690
+
1691
  add_submenu_page( 'visual-form-builder', __( 'Visual Form Builder', 'visual-form-builder' ), __( 'All Forms', 'visual-form-builder' ), 'manage_options', 'visual-form-builder', array( &$this, 'admin' ) );
1692
  $current_pages[ 'vfb-add-new' ] = add_submenu_page( 'visual-form-builder', __( 'Add New Form', 'visual-form-builder' ), __( 'Add New Form', 'visual-form-builder' ), 'manage_options', 'vfb-add-new', array( &$this, 'admin_add_new' ) );
1693
  $current_pages[ 'vfb-entries' ] = add_submenu_page( 'visual-form-builder', __( 'Entries', 'visual-form-builder' ), __( 'Entries', 'visual-form-builder' ), 'manage_options', 'vfb-entries', array( &$this, 'admin_entries' ) );
1694
  $current_pages[ 'vfb-export' ] = add_submenu_page( 'visual-form-builder', __( 'Export', 'visual-form-builder' ), __( 'Export', 'visual-form-builder' ), 'manage_options', 'vfb-export', array( &$this, 'admin_export' ) );
1695
+
1696
  // All plugin page load hooks
1697
  foreach ( $current_pages as $key => $page ) :
1698
  // Load the jQuery and CSS we need if we're on our plugin page
1699
  add_action( "load-$page", array( &$this, 'admin_scripts' ) );
1700
+
1701
  // Load the Help tab on all pages
1702
  add_action( "load-$page", array( &$this, 'help' ) );
1703
  endforeach;
1704
+
1705
  // Save pages array for filter/action use throughout plugin
1706
  $this->_admin_pages = $current_pages;
1707
+
1708
  // Adds a Screen Options tab to the Entries screen
1709
  add_filter( 'load-' . $current_pages['vfb'], array( &$this, 'screen_options' ) );
1710
  add_filter( 'load-' . $current_pages['vfb-entries'], array( &$this, 'screen_options' ) );
1711
+
1712
  // Add meta boxes to the form builder admin page
1713
  add_action( 'load-' . $current_pages['vfb'], array( &$this, 'add_meta_boxes' ) );
1714
+
1715
  // Include Entries and Import files
1716
  add_action( 'load-' . $current_pages['vfb-entries'], array( &$this, 'includes' ) );
1717
+
1718
  add_action( 'load-' . $current_pages['vfb'], array( &$this, 'include_forms_list' ) );
1719
  }
1720
 
1721
  /**
1722
  * Display Add New Form page
1723
+ *
1724
+ *
1725
  * @since 2.7.2
1726
  */
1727
+ public function admin_add_new() {
1728
  ?>
1729
  <div class="wrap">
1730
  <?php screen_icon( 'options-general' ); ?>
1738
 
1739
  /**
1740
  * Display Entries
1741
+ *
1742
+ *
1743
  * @since 2.7.2
1744
  */
1745
  public function admin_entries() {
1762
  $entries_list->views();
1763
  $entries_list->prepare_items();
1764
  ?>
1765
+ <form id="entries-filter" method="post" action="">
1766
  <?php
1767
  $entries_list->search_box( 'search', 'search_id' );
1768
  $entries_list->display();
1775
 
1776
  /**
1777
  * Display Export
1778
+ *
1779
+ *
1780
  * @since 2.7.2
1781
  */
1782
  public function admin_export() {
1783
+ global $export;
1784
  ?>
1785
  <div class="wrap">
1786
  <?php screen_icon( 'options-general' ); ?>
1791
  </div>
1792
  <?php
1793
  }
1794
+
1795
  /**
1796
  * Builds the options settings page
1797
+ *
1798
  * @since 1.0
1799
  */
1800
  public function admin() {
1801
  global $wpdb, $current_user;
1802
+
1803
  get_currentuserinfo();
1804
+
1805
  // Save current user ID
1806
  $user_id = $current_user->ID;
1807
+
1808
  // Set variables depending on which tab is selected
1809
  $form_nav_selected_id = ( isset( $_REQUEST['form'] ) ) ? $_REQUEST['form'] : '0';
1810
  ?>
1815
  <?php
1816
  // Add New link
1817
  echo sprintf( ' <a href="%1$s" class="add-new-h2">%2$s</a>', esc_url( admin_url( 'admin.php?page=vfb-add-new' ) ), esc_html( __( 'Add New', 'visual-form-builder' ) ) );
1818
+
1819
  // If searched, output the query
1820
  if ( isset( $_REQUEST['s'] ) && !empty( $_REQUEST['s'] ) )
1821
  echo '<span class="subtitle">' . sprintf( __( 'Search results for "%s"' , 'visual-form-builder' ), $_REQUEST['s'] );
1823
  </h2>
1824
  <?php if ( empty( $form_nav_selected_id ) ) : ?>
1825
  <div id="vfb-form-list">
1826
+ <div id="vfb-sidebar">
1827
  <div id="vfb-upgrade-column">
1828
  <div class="vfb-pro-upgrade">
1829
  <h2><a href="http://vfb.matthewmuro.com">Visual Form Builder Pro</a></h2>
1830
  <p class="vfb-pro-call-to-action">
1831
+ <a class="vfb-btn vfb-btn-inverse" href="http://vfb.matthewmuro.com/#pricing"><?php _e( 'View Pricing' , 'visual-form-builder'); ?></a>
1832
  <a class="vfb-btn vfb-btn-primary" href="http://visualformbuilder.fetchapp.com/sell/dahdaeng/ppc"><?php _e( 'Buy Now' , 'visual-form-builder'); ?></a>
1833
  </p>
1834
  <h3><?php _e( 'New Features' , 'visual-form-builder'); ?></h3>
1855
  <li><?php _e( 'No License Key' , 'visual-form-builder'); ?></li>
1856
  <li><?php _e( 'Automatic Updates' , 'visual-form-builder'); ?></li>
1857
  </ul>
1858
+
1859
  <p><a href="http://vfb.matthewmuro.com/#features"><?php _e( 'View all features' , 'visual-form-builder'); ?></a>.</p>
1860
  </div> <!-- .vfb-pro-upgrade -->
1861
+
1862
  <h3><?php _e( 'Promote Visual Form Builder' , 'visual-form-builder'); ?></h3>
1863
  <ul id="promote-vfb">
1864
  <li id="twitter"><?php _e( 'Follow me on Twitter' , 'visual-form-builder'); ?>: <a href="http://twitter.com/#!/matthewmuro">@matthewmuro</a></li>
1873
  <?php $this->all_forms(); ?>
1874
  </div> <!-- #vfb-main -->
1875
  </div> <!-- #vfb-form-list -->
1876
+
1877
  <?php
1878
  elseif ( !empty( $form_nav_selected_id ) && $form_nav_selected_id !== '0' ) :
1879
  include_once( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/admin-form-creator.php' );
1882
  </div>
1883
  <?php
1884
  }
1885
+
1886
  /**
1887
  * Handle confirmation when form is submitted
1888
+ *
1889
  * @since 1.3
1890
  */
1891
  function confirmation(){
1892
  global $wpdb;
1893
+
1894
  $form_id = ( isset( $_REQUEST['form_id'] ) ) ? (int) esc_html( $_REQUEST['form_id'] ) : '';
1895
+
1896
  if ( isset( $_REQUEST['visual-form-builder-submit'] ) ) :
1897
  // Get forms
1898
  $order = sanitize_sql_orderby( 'form_id DESC' );
1899
  $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d ORDER BY $order", $form_id ) );
1900
+
1901
  foreach ( $forms as $form ) :
1902
  // If text, return output and format the HTML for display
1903
  if ( 'text' == $form->form_success_type )
1916
  endforeach;
1917
  endif;
1918
  }
1919
+
1920
  /**
1921
  * Output form via shortcode
1922
+ *
1923
  * @since 1.0
1924
  */
1925
  public function form_code( $atts, $output = '' ) {
1926
+
1927
  require( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/form-output.php' );
1928
+
1929
  return $output;
1930
  }
1931
+
1932
  /**
1933
  * Handle emailing the content
1934
+ *
1935
  * @since 1.0
1936
  * @uses wp_mail() E-mails a message
1937
  */
1938
  public function email() {
1939
  require( trailingslashit( plugin_dir_path( __FILE__ ) ) . 'includes/email.php' );
1940
  }
1941
+
1942
  /**
1943
  * Validate the input
1944
+ *
1945
  * @since 2.2
1946
  */
1947
  public function validate_input( $data, $name, $type, $required ) {
1948
+
1949
  if ( 'yes' == $required && strlen( $data ) == 0 )
1950
  wp_die( "<h1>$name</h1><br>" . __( 'This field is required and cannot be empty.', 'visual-form-builder' ), $name, array( 'back_link' => true ) );
1951
+
1952
  if ( strlen( $data ) > 0 ) :
1953
  switch( $type ) :
1954
+
1955
  case 'email' :
1956
  if ( !is_email( $data ) )
1957
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid email address', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1958
  break;
1959
+
1960
  case 'number' :
1961
  case 'currency' :
1962
  if ( !is_numeric( $data ) )
1963
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid number', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1964
  break;
1965
+
1966
  case 'phone' :
1967
  if ( strlen( $data ) > 9 && preg_match( '/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/', $data ) )
1968
+ return true;
1969
  else
1970
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid phone number. Most US/Canada and International formats accepted.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1971
  break;
1972
+
1973
  case 'url' :
1974
  if ( !preg_match( '|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $data ) )
1975
  wp_die( "<h1>$name</h1><br>" . __( 'Not a valid URL.', 'visual-form-builder' ), '', array( 'back_link' => true ) );
1976
  break;
1977
+
1978
  default :
1979
  return true;
1980
  break;
1981
+
1982
  endswitch;
1983
  endif;
1984
  }
1985
 
1986
  /**
1987
  * Sanitize the input
1988
+ *
1989
  * @since 2.5
1990
  */
1991
  public function sanitize_input( $data, $type ) {
1994
  case 'text' :
1995
  return sanitize_text_field( $data );
1996
  break;
1997
+
1998
  case 'textarea' :
1999
  return wp_strip_all_tags( $data );
2000
  break;
2001
+
2002
  case 'email' :
2003
  return sanitize_email( $data );
2004
  break;
2005
+
2006
  case 'html' :
2007
  return wp_kses_data( force_balance_tags( $data ) );
2008
  break;
2009
+
2010
  case 'number' :
2011
  return floatval( $data );
2012
  break;
2013
+
2014
  case 'address' :
2015
  $allowed_html = array( 'br' => array() );
2016
  return wp_kses( $data, $allowed_html );
2017
  break;
2018
+
2019
  default :
2020
  return wp_kses_data( $data );
2021
  break;
2022
  endswitch;
2023
  endif;
2024
  }
2025
+
2026
  /**
2027
  * Make sure the User Agent string is not a SPAM bot
2028
+ *
2029
  * @since 1.3
2030
  */
2031
  public function isBot() {
2032
  $bots = apply_filters( 'vfb_blocked_spam_bots', array( 'archiver', 'binlar', 'casper', 'checkprivacy', 'clshttp', 'cmsworldmap', 'comodo', 'curl', 'diavol', 'dotbot', 'email', 'extract', 'feedfinder', 'flicky', 'grab', 'harvest', 'httrack', 'ia_archiver', 'jakarta', 'kmccrew', 'libwww', 'loader', 'miner', 'nikto', 'nutch', 'planetwork', 'purebot', 'pycurl', 'python', 'scan', 'skygrid', 'sucker', 'turnit', 'vikspider', 'wget', 'winhttp', 'youda', 'zmeu', 'zune' ) );
2033
+
2034
  $isBot = false;
2035
+
2036
  $user_agent = wp_kses_data( $_SERVER['HTTP_USER_AGENT'] );
2037
+
2038
  foreach ( $bots as $bot ) {
2039
  if ( stripos( $user_agent, $bot ) !== false )
2040
  $isBot = true;
2041
  }
2042
+
2043
  if ( empty( $user_agent ) || $user_agent == ' ' )
2044
  $isBot = true;
2045
+
2046
  return $isBot;
2047
  }
2048
 
2049
  public function build_array_form_item( $value, $type = '' ) {
2050
+
2051
  $output = '';
2052
+
2053
  // Basic check for type when not set
2054
  if ( empty( $type ) ) :
2055
  if ( is_array( $value ) && array_key_exists( 'address', $value ) )
2061
  else
2062
  $type = 'default';
2063
  endif;
2064
+
2065
  // Build array'd form item output
2066
  switch( $type ) :
2067
+
2068
  case 'time' :
2069
  $output = ( array_key_exists( 'ampm', $value ) ) ? substr_replace( implode( ':', $value ), ' ', 5, 1 ) : implode( ':', $value );
2070
  break;
2071
+
2072
  case 'address' :
2073
+
2074
  if ( !empty( $value['address'] ) )
2075
  $output .= $value['address'];
2076
+
2077
  if ( !empty( $value['address-2'] ) ) {
2078
  if ( !empty( $output ) )
2079
  $output .= '<br>';
2080
  $output .= $value['address-2'];
2081
  }
2082
+
2083
  if ( !empty( $value['city'] ) ) {
2084
  if ( !empty( $output ) )
2085
  $output .= '<br>';
2104
  $output .= '<br>';
2105
  $output .= $value['country'];
2106
  }
2107
+
2108
  break;
2109
+
2110
  case 'checkbox' :
2111
+
2112
  $output = esc_html( implode( ', ', $value ) );
2113
+
2114
  break;
2115
+
2116
  default :
2117
+
2118
  $output = wp_specialchars_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES );
2119
+
2120
  break;
2121
+
2122
  endswitch;
2123
+
2124
  return $output;
2125
+ }
2126
  }
2127
 
2128
  // The VFB widget